var Nq = Object.freeze, Dq = Object.defineProperty, MSe = Object.defineProperties;
var RSe = Object.getOwnPropertyDescriptors;
var MS = Object.getOwnPropertySymbols;
var Lq = Object.prototype.hasOwnProperty, Mq = Object.prototype.propertyIsEnumerable;
var YL = (e, t, r) => t in e ? Dq(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, $t = (e, t) => {
  for (var r in t || (t = {}))
    Lq.call(t, r) && YL(e, r, t[r]);
  if (MS)
    for (var r of MS(t))
      Mq.call(t, r) && YL(e, r, t[r]);
  return e;
}, zr = (e, t) => MSe(e, RSe(t));
var XL = (e, t) => {
  var r = {};
  for (var i in e)
    Lq.call(e, i) && t.indexOf(i) < 0 && (r[i] = e[i]);
  if (e != null && MS)
    for (var i of MS(e))
      t.indexOf(i) < 0 && Mq.call(e, i) && (r[i] = e[i]);
  return r;
};
var ti = (e, t, r) => (YL(e, typeof t != "symbol" ? t + "" : t, r), r);
var at = (e, t) => Nq(Dq(e, "raw", { value: Nq(t || e.slice()) })), hr = (e, t, r) => new Promise((i, n) => {
  var s = (l) => {
    try {
      o(r.next(l));
    } catch (u) {
      n(u);
    }
  }, a = (l) => {
    try {
      o(r.throw(l));
    } catch (u) {
      n(u);
    }
  }, o = (l) => l.done ? i(l.value) : Promise.resolve(l.value).then(s, a);
  o((r = r.apply(e, t)).next());
});
import xs, { dirname as BSe, isAbsolute as FSe } from "path";
import jSe from "os";
import $l from "fs";
import yo from "chalk";
import { parse as $Se, transform as USe } from "@vue/compiler-dom";
import qSe from "http";
import VSe from "portfinder";
import { launchIDE as WSe } from "launch-ide";
import { execSync as HSe } from "child_process";
function Es(e, t) {
  const r = /* @__PURE__ */ Object.create(null), i = e.split(",");
  for (let n = 0; n < i.length; n++)
    r[i[n]] = !0;
  return t ? (n) => !!r[n.toLowerCase()] : (n) => !!r[n];
}
const KSe = Object.freeze({}), Rq = () => {
}, JL = () => !1, zSe = /^on[^a-z]/, $oe = (e) => zSe.test(e), gf = Object.assign, GSe = Object.prototype.hasOwnProperty, YSe = (e, t) => GSe.call(e, t), Ul = Array.isArray, XSe = (e) => n4(e) === "[object Map]", JSe = (e) => n4(e) === "[object Set]", QSe = (e) => typeof e == "function", Ii = (e) => typeof e == "string", ST = (e) => typeof e == "symbol", ug = (e) => e !== null && typeof e == "object", Uoe = Object.prototype.toString, n4 = (e) => Uoe.call(e), ZSe = (e) => n4(e) === "[object Object]", Bq = /* @__PURE__ */ Es(
  // the leading comma is intentional so empty string "" is also included
  ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"
), qoe = /* @__PURE__ */ Es(
  "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"
), RA = (e) => {
  const t = /* @__PURE__ */ Object.create(null);
  return (r) => t[r] || (t[r] = e(r));
}, exe = /-(\w)/g, Dc = RA((e) => e.replace(exe, (t, r) => r ? r.toUpperCase() : "")), txe = /\B([A-Z])/g, Voe = RA(
  (e) => e.replace(txe, "-$1").toLowerCase()
), Vd = RA(
  (e) => e.charAt(0).toUpperCase() + e.slice(1)
), rxe = RA(
  (e) => e ? "on".concat(Vd(e)) : ""
), ixe = /^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/;
function Fq(e) {
  return ixe.test(e) ? "__props.".concat(e) : "__props[".concat(JSON.stringify(e), "]");
}
const pp = {
  [1]: "TEXT",
  [2]: "CLASS",
  [4]: "STYLE",
  [8]: "PROPS",
  [16]: "FULL_PROPS",
  [32]: "HYDRATE_EVENTS",
  [64]: "STABLE_FRAGMENT",
  [128]: "KEYED_FRAGMENT",
  [256]: "UNKEYED_FRAGMENT",
  [512]: "NEED_PATCH",
  [1024]: "DYNAMIC_SLOTS",
  [2048]: "DEV_ROOT_FRAGMENT",
  [-1]: "HOISTED",
  [-2]: "BAIL"
}, nxe = {
  [1]: "STABLE",
  [2]: "DYNAMIC",
  [3]: "FORWARDED"
}, sxe = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console", Woe = /* @__PURE__ */ Es(sxe), jq = 2;
function axe(e, t = 0, r = e.length) {
  let i = e.split(/(\r?\n)/);
  const n = i.filter((o, l) => l % 2 === 1);
  i = i.filter((o, l) => l % 2 === 0);
  let s = 0;
  const a = [];
  for (let o = 0; o < i.length; o++)
    if (s += i[o].length + (n[o] && n[o].length || 0), s >= t) {
      for (let l = o - jq; l <= o + jq || r > s; l++) {
        if (l < 0 || l >= i.length)
          continue;
        const u = l + 1;
        a.push(
          "".concat(u).concat(" ".repeat(Math.max(3 - String(u).length, 0)), "|  ").concat(i[l])
        );
        const c = i[l].length, f = n[l] && n[l].length || 0;
        if (l === o) {
          const h = t - (s - (c + f)), m = Math.max(
            1,
            r > s ? c - h : r - t
          );
          a.push("   |  " + " ".repeat(h) + "^".repeat(m));
        } else if (l > o) {
          if (r > s) {
            const h = Math.max(Math.min(r - s, c), 1);
            a.push("   |  " + "^".repeat(h));
          }
          s += c + f;
        }
      }
      break;
    }
  return a.join("\n");
}
function Hoe(e) {
  if (Ul(e)) {
    const t = {};
    for (let r = 0; r < e.length; r++) {
      const i = e[r], n = Ii(i) ? Koe(i) : Hoe(i);
      if (n)
        for (const s in n)
          t[s] = n[s];
    }
    return t;
  } else {
    if (Ii(e))
      return e;
    if (ug(e))
      return e;
  }
}
const oxe = /;(?![^(]*\))/g, lxe = /:([^]+)/, uxe = /\/\*[^]*?\*\//g;
function Koe(e) {
  const t = {};
  return e.replace(uxe, "").split(oxe).forEach((r) => {
    if (r) {
      const i = r.split(lxe);
      i.length > 1 && (t[i[0].trim()] = i[1].trim());
    }
  }), t;
}
function cxe(e) {
  let t = "";
  if (!e || Ii(e))
    return t;
  for (const r in e) {
    const i = e[r], n = r.startsWith("--") ? r : Voe(r);
    (Ii(i) || typeof i == "number") && (t += "".concat(n, ":").concat(i, ";"));
  }
  return t;
}
function zoe(e) {
  let t = "";
  if (Ii(e))
    t = e;
  else if (Ul(e))
    for (let r = 0; r < e.length; r++) {
      const i = zoe(e[r]);
      i && (t += i + " ");
    }
  else if (ug(e))
    for (const r in e)
      e[r] && (t += r + " ");
  return t.trim();
}
const pxe = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot", fxe = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view", hxe = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr", dxe = /* @__PURE__ */ Es(pxe), mxe = /* @__PURE__ */ Es(fxe), Goe = /* @__PURE__ */ Es(hxe), yxe = "itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly", gxe = /* @__PURE__ */ Es(
  yxe + ",async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected"
), bxe = /* @__PURE__ */ Es(
  "accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap"
), vxe = /* @__PURE__ */ Es(
  "xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan"
), Txe = /["'&<>]/;
function Ed(e) {
  const t = "" + e, r = Txe.exec(t);
  if (!r)
    return t;
  let i = "", n, s, a = 0;
  for (s = r.index; s < t.length; s++) {
    switch (t.charCodeAt(s)) {
      case 34:
        n = "&quot;";
        break;
      case 38:
        n = "&amp;";
        break;
      case 39:
        n = "&#39;";
        break;
      case 60:
        n = "&lt;";
        break;
      case 62:
        n = "&gt;";
        break;
      default:
        continue;
    }
    a !== s && (i += t.slice(a, s)), a = s + 1, i += n;
  }
  return a !== s ? i + t.slice(a, s) : i;
}
const s4 = (e) => Ii(e) ? e : e == null ? "" : Ul(e) || ug(e) && (e.toString === Uoe || !QSe(e.toString)) ? JSON.stringify(e, Yoe, 2) : String(e), Yoe = (e, t) => t && t.__v_isRef ? Yoe(e, t.value) : XSe(t) ? {
  ["Map(".concat(t.size, ")")]: [...t.entries()].reduce((r, [i, n]) => (r["".concat(i, " =>")] = n, r), {})
} : JSe(t) ? {
  ["Set(".concat(t.size, ")")]: [...t.values()]
} : ug(t) && !Ul(t) && !ZSe(t) ? String(t) : t;
function a4(e) {
  throw e;
}
function Xoe(e) {
  console.warn("[Vue warn] ".concat(e.message));
}
function Ni(e, t, r, i) {
  const n = (r || Sxe)[e] + (i || ""), s = new SyntaxError(String(n));
  return s.code = e, s.loc = t, s;
}
const Sxe = {
  // parse errors
  [0]: "Illegal comment.",
  [1]: "CDATA section is allowed only in XML context.",
  [2]: "Duplicate attribute.",
  [3]: "End tag cannot have attributes.",
  [4]: "Illegal '/' in tags.",
  [5]: "Unexpected EOF in tag.",
  [6]: "Unexpected EOF in CDATA section.",
  [7]: "Unexpected EOF in comment.",
  [8]: "Unexpected EOF in script.",
  [9]: "Unexpected EOF in tag.",
  [10]: "Incorrectly closed comment.",
  [11]: "Incorrectly opened comment.",
  [12]: "Illegal tag name. Use '&lt;' to print '<'.",
  [13]: "Attribute value was expected.",
  [14]: "End tag name was expected.",
  [15]: "Whitespace was expected.",
  [16]: "Unexpected '<!--' in comment.",
  [17]: "Attribute name cannot contain U+0022 (\"), U+0027 ('), and U+003C (<).",
  [18]: "Unquoted attribute value cannot contain U+0022 (\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).",
  [19]: "Attribute name cannot start with '='.",
  [21]: "'<?' is allowed only in XML context.",
  [20]: "Unexpected null character.",
  [22]: "Illegal '/' in tags.",
  // Vue-specific parse errors
  [23]: "Invalid end tag.",
  [24]: "Element is missing end tag.",
  [25]: "Interpolation end sign was not found.",
  [27]: "End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.",
  [26]: "Legal directive name was expected.",
  // transform errors
  [28]: "v-if/v-else-if is missing expression.",
  [29]: "v-if/else branches must use unique keys.",
  [30]: "v-else/v-else-if has no adjacent v-if or v-else-if.",
  [31]: "v-for is missing expression.",
  [32]: "v-for has invalid expression.",
  [33]: "<template v-for> key should be placed on the <template> tag.",
  [34]: "v-bind is missing expression.",
  [35]: "v-on is missing expression.",
  [36]: "Unexpected custom directive on <slot> outlet.",
  [37]: "Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.",
  [38]: "Duplicate slot names found. ",
  [39]: "Extraneous children found when component already has explicitly named default slot. These children will be ignored.",
  [40]: "v-slot can only be used on components or <template> tags.",
  [41]: "v-model is missing expression.",
  [42]: "v-model value must be a valid JavaScript member expression.",
  [43]: "v-model cannot be used on v-for or v-slot scope variables because they are not writable.",
  [44]: "v-model cannot be used on a prop, because local prop bindings are not writable.\nUse a v-bind binding combined with a v-on listener that emits update:x event instead.",
  [45]: "Error parsing JavaScript expression: ",
  [46]: "<KeepAlive> expects exactly one child component.",
  // generic errors
  [47]: '"prefixIdentifiers" option is not supported in this build of compiler.',
  [48]: "ES module mode is not supported in this build of compiler.",
  [49]: '"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.',
  [50]: '"scopeId" option is only supported in module mode.',
  // deprecations
  [51]: "@vnode-* hooks in templates are deprecated. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support will be removed in 3.4.",
  [52]: 'v-is="component-name" has been deprecated. Use is="vue:component-name" instead. v-is support will be removed in 3.4.',
  // just to fulfill types
  [53]: ""
}, jy = Symbol("Fragment"), xy = Symbol("Teleport"), BA = Symbol("Suspense"), yv = Symbol("KeepAlive"), o4 = Symbol("BaseTransition"), Rh = Symbol("openBlock"), l4 = Symbol("createBlock"), u4 = Symbol("createElementBlock"), FA = Symbol("createVNode"), jA = Symbol("createElementVNode"), cg = Symbol("createCommentVNode"), $A = Symbol("createTextVNode"), UA = Symbol("createStaticVNode"), gv = Symbol("resolveComponent"), bv = Symbol(
  "resolveDynamicComponent"
), qA = Symbol("resolveDirective"), Joe = Symbol("resolveFilter"), VA = Symbol("withDirectives"), WA = Symbol("renderList"), c4 = Symbol("renderSlot"), p4 = Symbol("createSlots"), xT = Symbol("toDisplayString"), vv = Symbol("mergeProps"), HA = Symbol("normalizeClass"), KA = Symbol("normalizeStyle"), $y = Symbol("normalizeProps"), pg = Symbol("guardReactiveProps"), zA = Symbol("toHandlers"), QP = Symbol("camelize"), Qoe = Symbol("capitalize"), ZP = Symbol("toHandlerKey"), Tv = Symbol("setBlockTracking"), GA = Symbol("pushScopeId"), YA = Symbol("popScopeId"), XA = Symbol("withCtx"), Sv = Symbol("unref"), xv = Symbol("isRef"), JA = Symbol("withMemo"), f4 = Symbol("isMemoSame"), Fa = {
  [jy]: "Fragment",
  [xy]: "Teleport",
  [BA]: "Suspense",
  [yv]: "KeepAlive",
  [o4]: "BaseTransition",
  [Rh]: "openBlock",
  [l4]: "createBlock",
  [u4]: "createElementBlock",
  [FA]: "createVNode",
  [jA]: "createElementVNode",
  [cg]: "createCommentVNode",
  [$A]: "createTextVNode",
  [UA]: "createStaticVNode",
  [gv]: "resolveComponent",
  [bv]: "resolveDynamicComponent",
  [qA]: "resolveDirective",
  [Joe]: "resolveFilter",
  [VA]: "withDirectives",
  [WA]: "renderList",
  [c4]: "renderSlot",
  [p4]: "createSlots",
  [xT]: "toDisplayString",
  [vv]: "mergeProps",
  [HA]: "normalizeClass",
  [KA]: "normalizeStyle",
  [$y]: "normalizeProps",
  [pg]: "guardReactiveProps",
  [zA]: "toHandlers",
  [QP]: "camelize",
  [Qoe]: "capitalize",
  [ZP]: "toHandlerKey",
  [Tv]: "setBlockTracking",
  [GA]: "pushScopeId",
  [YA]: "popScopeId",
  [XA]: "withCtx",
  [Sv]: "unref",
  [xv]: "isRef",
  [JA]: "withMemo",
  [f4]: "isMemoSame"
};
function h4(e) {
  Object.getOwnPropertySymbols(e).forEach((t) => {
    Fa[t] = e[t];
  });
}
const Hn = {
  source: "",
  start: { line: 1, column: 1, offset: 0 },
  end: { line: 1, column: 1, offset: 0 }
};
function d4(e, t = Hn) {
  return {
    type: 0,
    children: e,
    helpers: /* @__PURE__ */ new Set(),
    components: [],
    directives: [],
    hoists: [],
    imports: [],
    cached: 0,
    temps: 0,
    codegenNode: void 0,
    loc: t
  };
}
function Uy(e, t, r, i, n, s, a, o = !1, l = !1, u = !1, c = Hn) {
  return e && (o ? (e.helper(Rh), e.helper(Kd(e.inSSR, u))) : e.helper(Hd(e.inSSR, u)), a && e.helper(VA)), {
    type: 13,
    tag: t,
    props: r,
    children: i,
    patchFlag: n,
    dynamicProps: s,
    directives: a,
    isBlock: o,
    disableTracking: l,
    isComponent: u,
    loc: c
  };
}
function fg(e, t = Hn) {
  return {
    type: 17,
    loc: t,
    elements: e
  };
}
function vo(e, t = Hn) {
  return {
    type: 15,
    loc: t,
    properties: e
  };
}
function mn(e, t) {
  return {
    type: 16,
    loc: Hn,
    key: Ii(e) ? Pr(e, !0) : e,
    value: t
  };
}
function Pr(e, t = !1, r = Hn, i = 0) {
  return {
    type: 4,
    loc: r,
    content: e,
    isStatic: t,
    constType: t ? 3 : i
  };
}
function xxe(e, t) {
  return {
    type: 5,
    loc: t,
    content: Ii(e) ? Pr(e, !1, t) : e
  };
}
function aa(e, t = Hn) {
  return {
    type: 8,
    loc: t,
    children: e
  };
}
function In(e, t = [], r = Hn) {
  return {
    type: 14,
    loc: r,
    callee: e,
    arguments: t
  };
}
function Wd(e, t = void 0, r = !1, i = !1, n = Hn) {
  return {
    type: 18,
    params: e,
    returns: t,
    newline: r,
    isSlot: i,
    loc: n
  };
}
function ew(e, t, r, i = !0) {
  return {
    type: 19,
    test: e,
    consequent: t,
    alternate: r,
    newline: i,
    loc: Hn
  };
}
function Zoe(e, t, r = !1) {
  return {
    type: 20,
    index: e,
    value: t,
    isVNode: r,
    loc: Hn
  };
}
function ele(e) {
  return {
    type: 21,
    body: e,
    loc: Hn
  };
}
function Exe(e) {
  return {
    type: 22,
    elements: e,
    loc: Hn
  };
}
function Pxe(e, t, r) {
  return {
    type: 23,
    test: e,
    consequent: t,
    alternate: r,
    loc: Hn
  };
}
function wxe(e, t) {
  return {
    type: 24,
    left: e,
    right: t,
    loc: Hn
  };
}
function Axe(e) {
  return {
    type: 25,
    expressions: e,
    loc: Hn
  };
}
function Cxe(e) {
  return {
    type: 26,
    returns: e,
    loc: Hn
  };
}
function Hd(e, t) {
  return e || t ? FA : jA;
}
function Kd(e, t) {
  return e || t ? l4 : u4;
}
function QA(e, { helper: t, removeHelper: r, inSSR: i }) {
  e.isBlock || (e.isBlock = !0, r(Hd(i, e.isComponent)), t(Rh), t(Kd(i, e.isComponent)));
}
function ET(e) {
  if (e.__esModule)
    return e;
  var t = e.default;
  if (typeof t == "function") {
    var r = function i() {
      if (this instanceof i) {
        var n = [null];
        n.push.apply(n, arguments);
        var s = Function.bind.apply(t, n);
        return new s();
      }
      return t.apply(this, arguments);
    };
    r.prototype = t.prototype;
  } else
    r = {};
  return Object.defineProperty(r, "__esModule", { value: !0 }), Object.keys(e).forEach(function(i) {
    var n = Object.getOwnPropertyDescriptor(e, i);
    Object.defineProperty(r, i, n.get ? n : {
      enumerable: !0,
      get: function() {
        return e[i];
      }
    });
  }), r;
}
var ZA = {};
Object.defineProperty(ZA, "__esModule", {
  value: !0
});
const $q = {
  sourceType: "script",
  sourceFilename: void 0,
  startColumn: 0,
  startLine: 1,
  allowAwaitOutsideFunction: !1,
  allowReturnOutsideFunction: !1,
  allowNewTargetOutsideFunction: !1,
  allowImportExportEverywhere: !1,
  allowSuperOutsideMethod: !1,
  allowUndeclaredExports: !1,
  plugins: [],
  strictMode: null,
  ranges: !1,
  tokens: !1,
  createParenthesizedExpressions: !1,
  errorRecovery: !1,
  attachComment: !0,
  annexB: !0
};
function _xe(e) {
  if (e && e.annexB != null && e.annexB !== !1)
    throw new Error("The `annexB` option can only be set to `false`.");
  const t = {};
  for (const r of Object.keys($q))
    t[r] = e && e[r] != null ? e[r] : $q[r];
  return t;
}
let m0 = class {
  constructor(t, r) {
    this.token = void 0, this.preserveSpace = void 0, this.token = t, this.preserveSpace = !!r;
  }
};
const Vi = {
  brace: new m0("{"),
  j_oTag: new m0("<tag"),
  j_cTag: new m0("</tag"),
  j_expr: new m0("<tag>...</tag>", !0)
};
Vi.template = new m0("`", !0);
const Fr = !0, Bt = !0, QL = !0, Gg = !0, zf = !0, Ixe = !0;
let tle = class {
  constructor(t, r = {}) {
    this.label = void 0, this.keyword = void 0, this.beforeExpr = void 0, this.startsExpr = void 0, this.rightAssociative = void 0, this.isLoop = void 0, this.isAssign = void 0, this.prefix = void 0, this.postfix = void 0, this.binop = void 0, this.label = t, this.keyword = r.keyword, this.beforeExpr = !!r.beforeExpr, this.startsExpr = !!r.startsExpr, this.rightAssociative = !!r.rightAssociative, this.isLoop = !!r.isLoop, this.isAssign = !!r.isAssign, this.prefix = !!r.prefix, this.postfix = !!r.postfix, this.binop = r.binop != null ? r.binop : null, this.updateContext = null;
  }
};
const m4 = /* @__PURE__ */ new Map();
function ri(e, t = {}) {
  t.keyword = e;
  const r = rr(e, t);
  return m4.set(e, r), r;
}
function zs(e, t) {
  return rr(e, {
    beforeExpr: Fr,
    binop: t
  });
}
let V0 = -1;
const Xp = [], y4 = [], g4 = [], b4 = [], v4 = [], T4 = [];
function rr(e, t = {}) {
  var r, i, n, s;
  return ++V0, y4.push(e), g4.push((r = t.binop) != null ? r : -1), b4.push((i = t.beforeExpr) != null ? i : !1), v4.push((n = t.startsExpr) != null ? n : !1), T4.push((s = t.prefix) != null ? s : !1), Xp.push(new tle(e, t)), V0;
}
function Yr(e, t = {}) {
  var r, i, n, s;
  return ++V0, m4.set(e, V0), y4.push(e), g4.push((r = t.binop) != null ? r : -1), b4.push((i = t.beforeExpr) != null ? i : !1), v4.push((n = t.startsExpr) != null ? n : !1), T4.push((s = t.prefix) != null ? s : !1), Xp.push(new tle("name", t)), V0;
}
const kxe = {
  bracketL: rr("[", {
    beforeExpr: Fr,
    startsExpr: Bt
  }),
  bracketHashL: rr("#[", {
    beforeExpr: Fr,
    startsExpr: Bt
  }),
  bracketBarL: rr("[|", {
    beforeExpr: Fr,
    startsExpr: Bt
  }),
  bracketR: rr("]"),
  bracketBarR: rr("|]"),
  braceL: rr("{", {
    beforeExpr: Fr,
    startsExpr: Bt
  }),
  braceBarL: rr("{|", {
    beforeExpr: Fr,
    startsExpr: Bt
  }),
  braceHashL: rr("#{", {
    beforeExpr: Fr,
    startsExpr: Bt
  }),
  braceR: rr("}"),
  braceBarR: rr("|}"),
  parenL: rr("(", {
    beforeExpr: Fr,
    startsExpr: Bt
  }),
  parenR: rr(")"),
  comma: rr(",", {
    beforeExpr: Fr
  }),
  semi: rr(";", {
    beforeExpr: Fr
  }),
  colon: rr(":", {
    beforeExpr: Fr
  }),
  doubleColon: rr("::", {
    beforeExpr: Fr
  }),
  dot: rr("."),
  question: rr("?", {
    beforeExpr: Fr
  }),
  questionDot: rr("?."),
  arrow: rr("=>", {
    beforeExpr: Fr
  }),
  template: rr("template"),
  ellipsis: rr("...", {
    beforeExpr: Fr
  }),
  backQuote: rr("`", {
    startsExpr: Bt
  }),
  dollarBraceL: rr("${", {
    beforeExpr: Fr,
    startsExpr: Bt
  }),
  templateTail: rr("...`", {
    startsExpr: Bt
  }),
  templateNonTail: rr("...${", {
    beforeExpr: Fr,
    startsExpr: Bt
  }),
  at: rr("@"),
  hash: rr("#", {
    startsExpr: Bt
  }),
  interpreterDirective: rr("#!..."),
  eq: rr("=", {
    beforeExpr: Fr,
    isAssign: Gg
  }),
  assign: rr("_=", {
    beforeExpr: Fr,
    isAssign: Gg
  }),
  slashAssign: rr("_=", {
    beforeExpr: Fr,
    isAssign: Gg
  }),
  xorAssign: rr("_=", {
    beforeExpr: Fr,
    isAssign: Gg
  }),
  moduloAssign: rr("_=", {
    beforeExpr: Fr,
    isAssign: Gg
  }),
  incDec: rr("++/--", {
    prefix: zf,
    postfix: Ixe,
    startsExpr: Bt
  }),
  bang: rr("!", {
    beforeExpr: Fr,
    prefix: zf,
    startsExpr: Bt
  }),
  tilde: rr("~", {
    beforeExpr: Fr,
    prefix: zf,
    startsExpr: Bt
  }),
  doubleCaret: rr("^^", {
    startsExpr: Bt
  }),
  doubleAt: rr("@@", {
    startsExpr: Bt
  }),
  pipeline: zs("|>", 0),
  nullishCoalescing: zs("??", 1),
  logicalOR: zs("||", 1),
  logicalAND: zs("&&", 2),
  bitwiseOR: zs("|", 3),
  bitwiseXOR: zs("^", 4),
  bitwiseAND: zs("&", 5),
  equality: zs("==/!=/===/!==", 6),
  lt: zs("</>/<=/>=", 7),
  gt: zs("</>/<=/>=", 7),
  relational: zs("</>/<=/>=", 7),
  bitShift: zs("<</>>/>>>", 8),
  bitShiftL: zs("<</>>/>>>", 8),
  bitShiftR: zs("<</>>/>>>", 8),
  plusMin: rr("+/-", {
    beforeExpr: Fr,
    binop: 9,
    prefix: zf,
    startsExpr: Bt
  }),
  modulo: rr("%", {
    binop: 10,
    startsExpr: Bt
  }),
  star: rr("*", {
    binop: 10
  }),
  slash: zs("/", 10),
  exponent: rr("**", {
    beforeExpr: Fr,
    binop: 11,
    rightAssociative: !0
  }),
  _in: ri("in", {
    beforeExpr: Fr,
    binop: 7
  }),
  _instanceof: ri("instanceof", {
    beforeExpr: Fr,
    binop: 7
  }),
  _break: ri("break"),
  _case: ri("case", {
    beforeExpr: Fr
  }),
  _catch: ri("catch"),
  _continue: ri("continue"),
  _debugger: ri("debugger"),
  _default: ri("default", {
    beforeExpr: Fr
  }),
  _else: ri("else", {
    beforeExpr: Fr
  }),
  _finally: ri("finally"),
  _function: ri("function", {
    startsExpr: Bt
  }),
  _if: ri("if"),
  _return: ri("return", {
    beforeExpr: Fr
  }),
  _switch: ri("switch"),
  _throw: ri("throw", {
    beforeExpr: Fr,
    prefix: zf,
    startsExpr: Bt
  }),
  _try: ri("try"),
  _var: ri("var"),
  _const: ri("const"),
  _with: ri("with"),
  _new: ri("new", {
    beforeExpr: Fr,
    startsExpr: Bt
  }),
  _this: ri("this", {
    startsExpr: Bt
  }),
  _super: ri("super", {
    startsExpr: Bt
  }),
  _class: ri("class", {
    startsExpr: Bt
  }),
  _extends: ri("extends", {
    beforeExpr: Fr
  }),
  _export: ri("export"),
  _import: ri("import", {
    startsExpr: Bt
  }),
  _null: ri("null", {
    startsExpr: Bt
  }),
  _true: ri("true", {
    startsExpr: Bt
  }),
  _false: ri("false", {
    startsExpr: Bt
  }),
  _typeof: ri("typeof", {
    beforeExpr: Fr,
    prefix: zf,
    startsExpr: Bt
  }),
  _void: ri("void", {
    beforeExpr: Fr,
    prefix: zf,
    startsExpr: Bt
  }),
  _delete: ri("delete", {
    beforeExpr: Fr,
    prefix: zf,
    startsExpr: Bt
  }),
  _do: ri("do", {
    isLoop: QL,
    beforeExpr: Fr
  }),
  _for: ri("for", {
    isLoop: QL
  }),
  _while: ri("while", {
    isLoop: QL
  }),
  _as: Yr("as", {
    startsExpr: Bt
  }),
  _assert: Yr("assert", {
    startsExpr: Bt
  }),
  _async: Yr("async", {
    startsExpr: Bt
  }),
  _await: Yr("await", {
    startsExpr: Bt
  }),
  _from: Yr("from", {
    startsExpr: Bt
  }),
  _get: Yr("get", {
    startsExpr: Bt
  }),
  _let: Yr("let", {
    startsExpr: Bt
  }),
  _meta: Yr("meta", {
    startsExpr: Bt
  }),
  _of: Yr("of", {
    startsExpr: Bt
  }),
  _sent: Yr("sent", {
    startsExpr: Bt
  }),
  _set: Yr("set", {
    startsExpr: Bt
  }),
  _static: Yr("static", {
    startsExpr: Bt
  }),
  _using: Yr("using", {
    startsExpr: Bt
  }),
  _yield: Yr("yield", {
    startsExpr: Bt
  }),
  _asserts: Yr("asserts", {
    startsExpr: Bt
  }),
  _checks: Yr("checks", {
    startsExpr: Bt
  }),
  _exports: Yr("exports", {
    startsExpr: Bt
  }),
  _global: Yr("global", {
    startsExpr: Bt
  }),
  _implements: Yr("implements", {
    startsExpr: Bt
  }),
  _intrinsic: Yr("intrinsic", {
    startsExpr: Bt
  }),
  _infer: Yr("infer", {
    startsExpr: Bt
  }),
  _is: Yr("is", {
    startsExpr: Bt
  }),
  _mixins: Yr("mixins", {
    startsExpr: Bt
  }),
  _proto: Yr("proto", {
    startsExpr: Bt
  }),
  _require: Yr("require", {
    startsExpr: Bt
  }),
  _satisfies: Yr("satisfies", {
    startsExpr: Bt
  }),
  _keyof: Yr("keyof", {
    startsExpr: Bt
  }),
  _readonly: Yr("readonly", {
    startsExpr: Bt
  }),
  _unique: Yr("unique", {
    startsExpr: Bt
  }),
  _abstract: Yr("abstract", {
    startsExpr: Bt
  }),
  _declare: Yr("declare", {
    startsExpr: Bt
  }),
  _enum: Yr("enum", {
    startsExpr: Bt
  }),
  _module: Yr("module", {
    startsExpr: Bt
  }),
  _namespace: Yr("namespace", {
    startsExpr: Bt
  }),
  _interface: Yr("interface", {
    startsExpr: Bt
  }),
  _type: Yr("type", {
    startsExpr: Bt
  }),
  _opaque: Yr("opaque", {
    startsExpr: Bt
  }),
  name: rr("name", {
    startsExpr: Bt
  }),
  string: rr("string", {
    startsExpr: Bt
  }),
  num: rr("num", {
    startsExpr: Bt
  }),
  bigint: rr("bigint", {
    startsExpr: Bt
  }),
  decimal: rr("decimal", {
    startsExpr: Bt
  }),
  regexp: rr("regexp", {
    startsExpr: Bt
  }),
  privateName: rr("#name", {
    startsExpr: Bt
  }),
  eof: rr("eof"),
  jsxName: rr("jsxName"),
  jsxText: rr("jsxText", {
    beforeExpr: !0
  }),
  jsxTagStart: rr("jsxTagStart", {
    startsExpr: !0
  }),
  jsxTagEnd: rr("jsxTagEnd"),
  placeholder: rr("%%", {
    startsExpr: !0
  })
};
function gi(e) {
  return e >= 93 && e <= 130;
}
function Oxe(e) {
  return e <= 92;
}
function op(e) {
  return e >= 58 && e <= 130;
}
function rle(e) {
  return e >= 58 && e <= 134;
}
function Nxe(e) {
  return b4[e];
}
function FB(e) {
  return v4[e];
}
function Dxe(e) {
  return e >= 29 && e <= 33;
}
function Uq(e) {
  return e >= 127 && e <= 129;
}
function Lxe(e) {
  return e >= 90 && e <= 92;
}
function S4(e) {
  return e >= 58 && e <= 92;
}
function Mxe(e) {
  return e >= 39 && e <= 59;
}
function Rxe(e) {
  return e === 34;
}
function Bxe(e) {
  return T4[e];
}
function Fxe(e) {
  return e >= 119 && e <= 121;
}
function jxe(e) {
  return e >= 122 && e <= 128;
}
function Ch(e) {
  return y4[e];
}
function eP(e) {
  return g4[e];
}
function $xe(e) {
  return e === 57;
}
function tw(e) {
  return e >= 24 && e <= 25;
}
function Vp(e) {
  return Xp[e];
}
Xp[8].updateContext = (e) => {
  e.pop();
}, Xp[5].updateContext = Xp[7].updateContext = Xp[23].updateContext = (e) => {
  e.push(Vi.brace);
}, Xp[22].updateContext = (e) => {
  e[e.length - 1] === Vi.template ? e.pop() : e.push(Vi.template);
}, Xp[140].updateContext = (e) => {
  e.push(Vi.j_expr, Vi.j_oTag);
};
function rw(e, t) {
  if (e == null)
    return {};
  var r = {}, i = Object.keys(e), n, s;
  for (s = 0; s < i.length; s++)
    n = i[s], !(t.indexOf(n) >= 0) && (r[n] = e[n]);
  return r;
}
let _h = class {
  constructor(t, r, i) {
    this.line = void 0, this.column = void 0, this.index = void 0, this.line = t, this.column = r, this.index = i;
  }
}, iw = class {
  constructor(t, r) {
    this.start = void 0, this.end = void 0, this.filename = void 0, this.identifierName = void 0, this.start = t, this.end = r;
  }
};
function oa(e, t) {
  const {
    line: r,
    column: i,
    index: n
  } = e;
  return new _h(r, i + t, n + t);
}
var jB = {
  SyntaxError: "BABEL_PARSER_SYNTAX_ERROR",
  SourceTypeModuleError: "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED"
};
const Uxe = (e, t = e.length - 1) => ({
  get() {
    return e.reduce((r, i) => r[i], this);
  },
  set(r) {
    e.reduce((i, n, s) => s === t ? i[n] = r : i[n], this);
  }
}), qxe = (e, t, r) => Object.keys(r).map((i) => [i, r[i]]).filter(([, i]) => !!i).map(([i, n]) => [i, typeof n == "function" ? {
  value: n,
  enumerable: !1
} : typeof n.reflect == "string" ? Object.assign({}, n, Uxe(n.reflect.split("."))) : n]).reduce((i, [n, s]) => Object.defineProperty(i, n, Object.assign({
  configurable: !0
}, s)), Object.assign(new e(), t));
var Vxe = {
  ImportMetaOutsideModule: {
    message: "import.meta may appear only with 'sourceType: \"module\"'",
    code: jB.SourceTypeModuleError
  },
  ImportOutsideModule: {
    message: "'import' and 'export' may appear only with 'sourceType: \"module\"'",
    code: jB.SourceTypeModuleError
  }
};
const qq = {
  ArrayPattern: "array destructuring pattern",
  AssignmentExpression: "assignment expression",
  AssignmentPattern: "assignment expression",
  ArrowFunctionExpression: "arrow function expression",
  ConditionalExpression: "conditional expression",
  CatchClause: "catch clause",
  ForOfStatement: "for-of statement",
  ForInStatement: "for-in statement",
  ForStatement: "for-loop",
  FormalParameters: "function parameter list",
  Identifier: "identifier",
  ImportSpecifier: "import specifier",
  ImportDefaultSpecifier: "import default specifier",
  ImportNamespaceSpecifier: "import namespace specifier",
  ObjectPattern: "object destructuring pattern",
  ParenthesizedExpression: "parenthesized expression",
  RestElement: "rest element",
  UpdateExpression: {
    true: "prefix operation",
    false: "postfix operation"
  },
  VariableDeclarator: "variable declaration",
  YieldExpression: "yield expression"
}, $B = ({
  type: e,
  prefix: t
}) => e === "UpdateExpression" ? qq.UpdateExpression[String(t)] : qq[e];
var Wxe = {
  AccessorIsGenerator: ({
    kind: e
  }) => "A ".concat(e, "ter cannot be a generator."),
  ArgumentsInClass: "'arguments' is only allowed in functions and class methods.",
  AsyncFunctionInSingleStatementContext: "Async functions can only be declared at the top level or inside a block.",
  AwaitBindingIdentifier: "Can not use 'await' as identifier inside an async function.",
  AwaitBindingIdentifierInStaticBlock: "Can not use 'await' as identifier inside a static block.",
  AwaitExpressionFormalParameter: "'await' is not allowed in async function parameters.",
  AwaitInUsingBinding: "'await' is not allowed to be used as a name in 'using' declarations.",
  AwaitNotInAsyncContext: "'await' is only allowed within async functions and at the top levels of modules.",
  AwaitNotInAsyncFunction: "'await' is only allowed within async functions.",
  BadGetterArity: "A 'get' accessor must not have any formal parameters.",
  BadSetterArity: "A 'set' accessor must have exactly one formal parameter.",
  BadSetterRestParameter: "A 'set' accessor function argument must not be a rest parameter.",
  ConstructorClassField: "Classes may not have a field named 'constructor'.",
  ConstructorClassPrivateField: "Classes may not have a private field named '#constructor'.",
  ConstructorIsAccessor: "Class constructor may not be an accessor.",
  ConstructorIsAsync: "Constructor can't be an async function.",
  ConstructorIsGenerator: "Constructor can't be a generator.",
  DeclarationMissingInitializer: ({
    kind: e
  }) => "Missing initializer in ".concat(e, " declaration."),
  DecoratorArgumentsOutsideParentheses: "Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.",
  DecoratorBeforeExport: "Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.",
  DecoratorsBeforeAfterExport: "Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.",
  DecoratorConstructor: "Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?",
  DecoratorExportClass: "Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.",
  DecoratorSemicolon: "Decorators must not be followed by a semicolon.",
  DecoratorStaticBlock: "Decorators can't be used with a static block.",
  DeletePrivateField: "Deleting a private field is not allowed.",
  DestructureNamedImport: "ES2015 named imports do not destructure. Use another statement for destructuring after the import.",
  DuplicateConstructor: "Duplicate constructor in the same class.",
  DuplicateDefaultExport: "Only one default export allowed per module.",
  DuplicateExport: ({
    exportName: e
  }) => "`".concat(e, "` has already been exported. Exported identifiers must be unique."),
  DuplicateProto: "Redefinition of __proto__ property.",
  DuplicateRegExpFlags: "Duplicate regular expression flag.",
  ElementAfterRest: "Rest element must be last element.",
  EscapedCharNotAnIdentifier: "Invalid Unicode escape.",
  ExportBindingIsString: ({
    localName: e,
    exportName: t
  }) => "A string literal cannot be used as an exported binding without `from`.\n- Did you mean `export { '".concat(e, "' as '").concat(t, "' } from 'some-module'`?"),
  ExportDefaultFromAsIdentifier: "'from' is not allowed as an identifier after 'export default'.",
  ForInOfLoopInitializer: ({
    type: e
  }) => "'".concat(e === "ForInStatement" ? "for-in" : "for-of", "' loop variable declaration may not have an initializer."),
  ForInUsing: "For-in loop may not start with 'using' declaration.",
  ForOfAsync: "The left-hand side of a for-of loop may not be 'async'.",
  ForOfLet: "The left-hand side of a for-of loop may not start with 'let'.",
  GeneratorInSingleStatementContext: "Generators can only be declared at the top level or inside a block.",
  IllegalBreakContinue: ({
    type: e
  }) => "Unsyntactic ".concat(e === "BreakStatement" ? "break" : "continue", "."),
  IllegalLanguageModeDirective: "Illegal 'use strict' directive in function with non-simple parameter list.",
  IllegalReturn: "'return' outside of function.",
  ImportBindingIsString: ({
    importName: e
  }) => 'A string literal cannot be used as an imported binding.\n- Did you mean `import { "'.concat(e, '" as foo }`?'),
  ImportCallArgumentTrailingComma: "Trailing comma is disallowed inside import(...) arguments.",
  ImportCallArity: ({
    maxArgumentCount: e
  }) => "`import()` requires exactly ".concat(e === 1 ? "one argument" : "one or two arguments", "."),
  ImportCallNotNewExpression: "Cannot use new with import(...).",
  ImportCallSpreadArgument: "`...` is not allowed in `import()`.",
  ImportJSONBindingNotDefault: "A JSON module can only be imported with `default`.",
  ImportReflectionHasAssertion: "`import module x` cannot have assertions.",
  ImportReflectionNotBinding: 'Only `import module x from "./module"` is valid.',
  IncompatibleRegExpUVFlags: "The 'u' and 'v' regular expression flags cannot be enabled at the same time.",
  InvalidBigIntLiteral: "Invalid BigIntLiteral.",
  InvalidCodePoint: "Code point out of bounds.",
  InvalidCoverInitializedName: "Invalid shorthand property initializer.",
  InvalidDecimal: "Invalid decimal.",
  InvalidDigit: ({
    radix: e
  }) => "Expected number in radix ".concat(e, "."),
  InvalidEscapeSequence: "Bad character escape sequence.",
  InvalidEscapeSequenceTemplate: "Invalid escape sequence in template.",
  InvalidEscapedReservedWord: ({
    reservedWord: e
  }) => "Escape sequence in keyword ".concat(e, "."),
  InvalidIdentifier: ({
    identifierName: e
  }) => "Invalid identifier ".concat(e, "."),
  InvalidLhs: ({
    ancestor: e
  }) => "Invalid left-hand side in ".concat($B(e), "."),
  InvalidLhsBinding: ({
    ancestor: e
  }) => "Binding invalid left-hand side in ".concat($B(e), "."),
  InvalidNumber: "Invalid number.",
  InvalidOrMissingExponent: "Floating-point numbers require a valid exponent after the 'e'.",
  InvalidOrUnexpectedToken: ({
    unexpected: e
  }) => "Unexpected character '".concat(e, "'."),
  InvalidParenthesizedAssignment: "Invalid parenthesized assignment pattern.",
  InvalidPrivateFieldResolution: ({
    identifierName: e
  }) => "Private name #".concat(e, " is not defined."),
  InvalidPropertyBindingPattern: "Binding member expression.",
  InvalidRecordProperty: "Only properties and spread elements are allowed in record definitions.",
  InvalidRestAssignmentPattern: "Invalid rest operator's argument.",
  LabelRedeclaration: ({
    labelName: e
  }) => "Label '".concat(e, "' is already declared."),
  LetInLexicalBinding: "'let' is not allowed to be used as a name in 'let' or 'const' declarations.",
  LineTerminatorBeforeArrow: "No line break is allowed before '=>'.",
  MalformedRegExpFlags: "Invalid regular expression flag.",
  MissingClassName: "A class name is required.",
  MissingEqInAssignment: "Only '=' operator can be used for specifying default value.",
  MissingSemicolon: "Missing semicolon.",
  MissingPlugin: ({
    missingPlugin: e
  }) => "This experimental syntax requires enabling the parser plugin: ".concat(e.map((t) => JSON.stringify(t)).join(", "), "."),
  MissingOneOfPlugins: ({
    missingPlugin: e
  }) => "This experimental syntax requires enabling one of the following parser plugin(s): ".concat(e.map((t) => JSON.stringify(t)).join(", "), "."),
  MissingUnicodeEscape: "Expecting Unicode escape sequence \\uXXXX.",
  MixingCoalesceWithLogical: "Nullish coalescing operator(??) requires parens when mixing with logical operators.",
  ModuleAttributeDifferentFromType: "The only accepted module attribute is `type`.",
  ModuleAttributeInvalidValue: "Only string literals are allowed as module attribute values.",
  ModuleAttributesWithDuplicateKeys: ({
    key: e
  }) => 'Duplicate key "'.concat(e, '" is not allowed in module attributes.'),
  ModuleExportNameHasLoneSurrogate: ({
    surrogateCharCode: e
  }) => "An export name cannot include a lone surrogate, found '\\u".concat(e.toString(16), "'."),
  ModuleExportUndefined: ({
    localName: e
  }) => "Export '".concat(e, "' is not defined."),
  MultipleDefaultsInSwitch: "Multiple default clauses.",
  NewlineAfterThrow: "Illegal newline after throw.",
  NoCatchOrFinally: "Missing catch or finally clause.",
  NumberIdentifier: "Identifier directly after number.",
  NumericSeparatorInEscapeSequence: "Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.",
  ObsoleteAwaitStar: "'await*' has been removed from the async functions proposal. Use Promise.all() instead.",
  OptionalChainingNoNew: "Constructors in/after an Optional Chain are not allowed.",
  OptionalChainingNoTemplate: "Tagged Template Literals are not allowed in optionalChain.",
  OverrideOnConstructor: "'override' modifier cannot appear on a constructor declaration.",
  ParamDupe: "Argument name clash.",
  PatternHasAccessor: "Object pattern can't contain getter or setter.",
  PatternHasMethod: "Object pattern can't contain methods.",
  PrivateInExpectedIn: ({
    identifierName: e
  }) => "Private names are only allowed in property accesses (`obj.#".concat(e, "`) or in `in` expressions (`#").concat(e, " in obj`)."),
  PrivateNameRedeclaration: ({
    identifierName: e
  }) => "Duplicate private name #".concat(e, "."),
  RecordExpressionBarIncorrectEndSyntaxType: "Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
  RecordExpressionBarIncorrectStartSyntaxType: "Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
  RecordExpressionHashIncorrectStartSyntaxType: "Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",
  RecordNoProto: "'__proto__' is not allowed in Record expressions.",
  RestTrailingComma: "Unexpected trailing comma after rest element.",
  SloppyFunction: "In non-strict mode code, functions can only be declared at top level or inside a block.",
  SloppyFunctionAnnexB: "In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.",
  StaticPrototype: "Classes may not have static property named prototype.",
  SuperNotAllowed: "`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?",
  SuperPrivateField: "Private fields can't be accessed on super.",
  TrailingDecorator: "Decorators must be attached to a class element.",
  TupleExpressionBarIncorrectEndSyntaxType: "Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
  TupleExpressionBarIncorrectStartSyntaxType: "Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
  TupleExpressionHashIncorrectStartSyntaxType: "Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",
  UnexpectedArgumentPlaceholder: "Unexpected argument placeholder.",
  UnexpectedAwaitAfterPipelineBody: 'Unexpected "await" after pipeline body; await must have parentheses in minimal proposal.',
  UnexpectedDigitAfterHash: "Unexpected digit after hash token.",
  UnexpectedImportExport: "'import' and 'export' may only appear at the top level.",
  UnexpectedKeyword: ({
    keyword: e
  }) => "Unexpected keyword '".concat(e, "'."),
  UnexpectedLeadingDecorator: "Leading decorators must be attached to a class declaration.",
  UnexpectedLexicalDeclaration: "Lexical declaration cannot appear in a single-statement context.",
  UnexpectedNewTarget: "`new.target` can only be used in functions or class properties.",
  UnexpectedNumericSeparator: "A numeric separator is only allowed between two digits.",
  UnexpectedPrivateField: "Unexpected private name.",
  UnexpectedReservedWord: ({
    reservedWord: e
  }) => "Unexpected reserved word '".concat(e, "'."),
  UnexpectedSuper: "'super' is only allowed in object methods and classes.",
  UnexpectedToken: ({
    expected: e,
    unexpected: t
  }) => "Unexpected token".concat(t ? " '".concat(t, "'.") : "").concat(e ? ', expected "'.concat(e, '"') : ""),
  UnexpectedTokenUnaryExponentiation: "Illegal expression. Wrap left hand side or entire exponentiation in parentheses.",
  UnexpectedUsingDeclaration: "Using declaration cannot appear in the top level when source type is `script`.",
  UnsupportedBind: "Binding should be performed on object property.",
  UnsupportedDecoratorExport: "A decorated export must export a class declaration.",
  UnsupportedDefaultExport: "Only expressions, functions or classes are allowed as the `default` export.",
  UnsupportedImport: "`import` can only be used in `import()` or `import.meta`.",
  UnsupportedMetaProperty: ({
    target: e,
    onlyValidPropertyName: t
  }) => "The only valid meta property for ".concat(e, " is ").concat(e, ".").concat(t, "."),
  UnsupportedParameterDecorator: "Decorators cannot be used to decorate parameters.",
  UnsupportedPropertyDecorator: "Decorators cannot be used to decorate object literal properties.",
  UnsupportedSuper: "'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).",
  UnterminatedComment: "Unterminated comment.",
  UnterminatedRegExp: "Unterminated regular expression.",
  UnterminatedString: "Unterminated string constant.",
  UnterminatedTemplate: "Unterminated template.",
  UsingDeclarationHasBindingPattern: "Using declaration cannot have destructuring patterns.",
  VarRedeclaration: ({
    identifierName: e
  }) => "Identifier '".concat(e, "' has already been declared."),
  YieldBindingIdentifier: "Can not use 'yield' as identifier inside a generator.",
  YieldInParameter: "Yield expression is not allowed in formal parameters.",
  ZeroDigitNumericSeparator: "Numeric separator can not be used after leading 0."
}, Hxe = {
  StrictDelete: "Deleting local variable in strict mode.",
  StrictEvalArguments: ({
    referenceName: e
  }) => "Assigning to '".concat(e, "' in strict mode."),
  StrictEvalArgumentsBinding: ({
    bindingName: e
  }) => "Binding '".concat(e, "' in strict mode."),
  StrictFunction: "In strict mode code, functions can only be declared at top level or inside a block.",
  StrictNumericEscape: "The only valid numeric escape in strict mode is '\\0'.",
  StrictOctalLiteral: "Legacy octal literals are not allowed in strict mode.",
  StrictWith: "'with' in strict mode."
};
const Kxe = /* @__PURE__ */ new Set(["ArrowFunctionExpression", "AssignmentExpression", "ConditionalExpression", "YieldExpression"]);
var zxe = {
  PipeBodyIsTighter: "Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.",
  PipeTopicRequiresHackPipes: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.',
  PipeTopicUnbound: "Topic reference is unbound; it must be inside a pipe body.",
  PipeTopicUnconfiguredToken: ({
    token: e
  }) => "Invalid topic token ".concat(e, ". In order to use ").concat(e, ' as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "').concat(e, '" }.'),
  PipeTopicUnused: "Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.",
  PipeUnparenthesizedBody: ({
    type: e
  }) => "Hack-style pipe body cannot be an unparenthesized ".concat($B({
    type: e
  }), "; please wrap it in parentheses."),
  PipelineBodyNoArrow: 'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.',
  PipelineBodySequenceExpression: "Pipeline body may not be a comma-separated sequence expression.",
  PipelineHeadSequenceExpression: "Pipeline head should not be a comma-separated sequence expression.",
  PipelineTopicUnused: "Pipeline is in topic style but does not use topic reference.",
  PrimaryTopicNotAllowed: "Topic reference was used in a lexical context without topic binding.",
  PrimaryTopicRequiresSmartPipeline: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.'
};
const Gxe = ["toMessage"], Yxe = ["message"];
function Xxe(e) {
  let {
    toMessage: t
  } = e, r = rw(e, Gxe);
  return function i({
    loc: n,
    details: s
  }) {
    return qxe(SyntaxError, Object.assign({}, r, {
      loc: n
    }), {
      clone(a = {}) {
        const o = a.loc || {};
        return i({
          loc: new _h("line" in o ? o.line : this.loc.line, "column" in o ? o.column : this.loc.column, "index" in o ? o.index : this.loc.index),
          details: Object.assign({}, this.details, a.details)
        });
      },
      details: {
        value: s,
        enumerable: !1
      },
      message: {
        get() {
          return "".concat(t(this.details), " (").concat(this.loc.line, ":").concat(this.loc.column, ")");
        },
        set(a) {
          Object.defineProperty(this, "message", {
            value: a
          });
        }
      },
      pos: {
        reflect: "loc.index",
        enumerable: !0
      },
      missingPlugin: "missingPlugin" in s && {
        reflect: "details.missingPlugin",
        enumerable: !0
      }
    });
  };
}
function lf(e, t) {
  if (Array.isArray(e))
    return (i) => lf(i, e[0]);
  const r = {};
  for (const i of Object.keys(e)) {
    const n = e[i], s = typeof n == "string" ? {
      message: () => n
    } : typeof n == "function" ? {
      message: n
    } : n, {
      message: a
    } = s, o = rw(s, Yxe), l = typeof a == "string" ? () => a : a;
    r[i] = Xxe(Object.assign({
      code: jB.SyntaxError,
      reasonCode: i,
      toMessage: l
    }, t ? {
      syntaxPlugin: t
    } : {}, o));
  }
  return r;
}
var une;
const nt = Object.assign({}, lf(Vxe), lf(Wxe), lf(Hxe), lf(une || (une = at(["pipelineOperator"])))(zxe)), {
  defineProperty: Jxe
} = Object, Vq = (e, t) => Jxe(e, t, {
  enumerable: !1,
  value: e[t]
});
function Yg(e) {
  return e.loc.start && Vq(e.loc.start, "index"), e.loc.end && Vq(e.loc.end, "index"), e;
}
var Qxe = (e) => class extends e {
  parse() {
    const r = Yg(super.parse());
    return this.options.tokens && (r.tokens = r.tokens.map(Yg)), r;
  }
  parseRegExpLiteral({
    pattern: r,
    flags: i
  }) {
    let n = null;
    try {
      n = new RegExp(r, i);
    } catch (a) {
    }
    const s = this.estreeParseLiteral(n);
    return s.regex = {
      pattern: r,
      flags: i
    }, s;
  }
  parseBigIntLiteral(r) {
    let i;
    try {
      i = BigInt(r);
    } catch (s) {
      i = null;
    }
    const n = this.estreeParseLiteral(i);
    return n.bigint = String(n.value || r), n;
  }
  parseDecimalLiteral(r) {
    const n = this.estreeParseLiteral(null);
    return n.decimal = String(n.value || r), n;
  }
  estreeParseLiteral(r) {
    return this.parseLiteral(r, "Literal");
  }
  parseStringLiteral(r) {
    return this.estreeParseLiteral(r);
  }
  parseNumericLiteral(r) {
    return this.estreeParseLiteral(r);
  }
  parseNullLiteral() {
    return this.estreeParseLiteral(null);
  }
  parseBooleanLiteral(r) {
    return this.estreeParseLiteral(r);
  }
  directiveToStmt(r) {
    const i = r.value;
    delete r.value, i.type = "Literal", i.raw = i.extra.raw, i.value = i.extra.expressionValue;
    const n = r;
    return n.type = "ExpressionStatement", n.expression = i, n.directive = i.extra.rawValue, delete i.extra, n;
  }
  initFunction(r, i) {
    super.initFunction(r, i), r.expression = !1;
  }
  checkDeclaration(r) {
    r != null && this.isObjectProperty(r) ? this.checkDeclaration(r.value) : super.checkDeclaration(r);
  }
  getObjectOrClassMethodParams(r) {
    return r.value.params;
  }
  isValidDirective(r) {
    var i;
    return r.type === "ExpressionStatement" && r.expression.type === "Literal" && typeof r.expression.value == "string" && !((i = r.expression.extra) != null && i.parenthesized);
  }
  parseBlockBody(r, i, n, s, a) {
    super.parseBlockBody(r, i, n, s, a);
    const o = r.directives.map((l) => this.directiveToStmt(l));
    r.body = o.concat(r.body), delete r.directives;
  }
  pushClassMethod(r, i, n, s, a, o) {
    this.parseMethod(i, n, s, a, o, "ClassMethod", !0), i.typeParameters && (i.value.typeParameters = i.typeParameters, delete i.typeParameters), r.body.push(i);
  }
  parsePrivateName() {
    const r = super.parsePrivateName();
    return this.getPluginOption("estree", "classFeatures") ? this.convertPrivateNameToPrivateIdentifier(r) : r;
  }
  convertPrivateNameToPrivateIdentifier(r) {
    const i = super.getPrivateNameSV(r);
    return r = r, delete r.id, r.name = i, r.type = "PrivateIdentifier", r;
  }
  isPrivateName(r) {
    return this.getPluginOption("estree", "classFeatures") ? r.type === "PrivateIdentifier" : super.isPrivateName(r);
  }
  getPrivateNameSV(r) {
    return this.getPluginOption("estree", "classFeatures") ? r.name : super.getPrivateNameSV(r);
  }
  parseLiteral(r, i) {
    const n = super.parseLiteral(r, i);
    return n.raw = n.extra.raw, delete n.extra, n;
  }
  parseFunctionBody(r, i, n = !1) {
    super.parseFunctionBody(r, i, n), r.expression = r.body.type !== "BlockStatement";
  }
  parseMethod(r, i, n, s, a, o, l = !1) {
    let u = this.startNode();
    return u.kind = r.kind, u = super.parseMethod(u, i, n, s, a, o, l), u.type = "FunctionExpression", delete u.kind, r.value = u, o === "ClassPrivateMethod" && (r.computed = !1), this.finishNode(r, "MethodDefinition");
  }
  parseClassProperty(...r) {
    const i = super.parseClassProperty(...r);
    return this.getPluginOption("estree", "classFeatures") && (i.type = "PropertyDefinition"), i;
  }
  parseClassPrivateProperty(...r) {
    const i = super.parseClassPrivateProperty(...r);
    return this.getPluginOption("estree", "classFeatures") && (i.type = "PropertyDefinition", i.computed = !1), i;
  }
  parseObjectMethod(r, i, n, s, a) {
    const o = super.parseObjectMethod(r, i, n, s, a);
    return o && (o.type = "Property", o.kind === "method" && (o.kind = "init"), o.shorthand = !1), o;
  }
  parseObjectProperty(r, i, n, s) {
    const a = super.parseObjectProperty(r, i, n, s);
    return a && (a.kind = "init", a.type = "Property"), a;
  }
  isValidLVal(r, i, n) {
    return r === "Property" ? "value" : super.isValidLVal(r, i, n);
  }
  isAssignable(r, i) {
    return r != null && this.isObjectProperty(r) ? this.isAssignable(r.value, i) : super.isAssignable(r, i);
  }
  toAssignable(r, i = !1) {
    if (r != null && this.isObjectProperty(r)) {
      const {
        key: n,
        value: s
      } = r;
      this.isPrivateName(n) && this.classScope.usePrivateName(this.getPrivateNameSV(n), n.loc.start), this.toAssignable(s, i);
    } else
      super.toAssignable(r, i);
  }
  toAssignableObjectExpressionProp(r, i, n) {
    r.kind === "get" || r.kind === "set" ? this.raise(nt.PatternHasAccessor, {
      at: r.key
    }) : r.method ? this.raise(nt.PatternHasMethod, {
      at: r.key
    }) : super.toAssignableObjectExpressionProp(r, i, n);
  }
  finishCallExpression(r, i) {
    const n = super.finishCallExpression(r, i);
    if (n.callee.type === "Import") {
      if (n.type = "ImportExpression", n.source = n.arguments[0], this.hasPlugin("importAssertions")) {
        var s;
        n.attributes = (s = n.arguments[1]) != null ? s : null;
      }
      delete n.arguments, delete n.callee;
    }
    return n;
  }
  toReferencedArguments(r) {
    r.type !== "ImportExpression" && super.toReferencedArguments(r);
  }
  parseExport(r, i) {
    const n = this.state.lastTokStartLoc, s = super.parseExport(r, i);
    switch (s.type) {
      case "ExportAllDeclaration":
        s.exported = null;
        break;
      case "ExportNamedDeclaration":
        s.specifiers.length === 1 && s.specifiers[0].type === "ExportNamespaceSpecifier" && (s.type = "ExportAllDeclaration", s.exported = s.specifiers[0].exported, delete s.specifiers);
      case "ExportDefaultDeclaration":
        {
          var a;
          const {
            declaration: o
          } = s;
          (o == null ? void 0 : o.type) === "ClassDeclaration" && ((a = o.decorators) == null ? void 0 : a.length) > 0 && o.start === s.start && this.resetStartLocation(s, n);
        }
        break;
    }
    return s;
  }
  parseSubscript(r, i, n, s) {
    const a = super.parseSubscript(r, i, n, s);
    if (s.optionalChainMember) {
      if ((a.type === "OptionalMemberExpression" || a.type === "OptionalCallExpression") && (a.type = a.type.substring(8)), s.stop) {
        const o = this.startNodeAtNode(a);
        return o.expression = a, this.finishNode(o, "ChainExpression");
      }
    } else
      (a.type === "MemberExpression" || a.type === "CallExpression") && (a.optional = !1);
    return a;
  }
  hasPropertyAsPrivateName(r) {
    return r.type === "ChainExpression" && (r = r.expression), super.hasPropertyAsPrivateName(r);
  }
  isObjectProperty(r) {
    return r.type === "Property" && r.kind === "init" && !r.method;
  }
  isObjectMethod(r) {
    return r.method || r.kind === "get" || r.kind === "set";
  }
  finishNodeAt(r, i, n) {
    return Yg(super.finishNodeAt(r, i, n));
  }
  resetStartLocation(r, i) {
    super.resetStartLocation(r, i), Yg(r);
  }
  resetEndLocation(r, i = this.state.lastTokEndLoc) {
    super.resetEndLocation(r, i), Yg(r);
  }
};
let x4 = "ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢎࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೝೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꟊꟐꟑꟓꟕ-ꟙꟲ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ﬀ-ﬆﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼＡ-Ｚａ-ｚｦ-ﾾￂ-ￇￊ-ￏￒ-ￗￚ-ￜ", ile = "‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࢘-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-ᫎᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏０-９＿";
const Zxe = new RegExp("[" + x4 + "]"), eEe = new RegExp("[" + x4 + ile + "]");
x4 = ile = null;
const nle = [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, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 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, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 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, 16, 0, 30, 2, 3, 0, 15, 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, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 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, 4153, 7, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938, 6, 4191], tEe = [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, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 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, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 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, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
function UB(e, t) {
  let r = 65536;
  for (let i = 0, n = t.length; i < n; i += 2) {
    if (r += t[i], r > e)
      return !1;
    if (r += t[i + 1], r >= e)
      return !0;
  }
  return !1;
}
function rf(e) {
  return e < 65 ? e === 36 : e <= 90 ? !0 : e < 97 ? e === 95 : e <= 122 ? !0 : e <= 65535 ? e >= 170 && Zxe.test(String.fromCharCode(e)) : UB(e, nle);
}
function Ey(e) {
  return e < 48 ? e === 36 : e < 58 ? !0 : e < 65 ? !1 : e <= 90 ? !0 : e < 97 ? e === 95 : e <= 122 ? !0 : e <= 65535 ? e >= 170 && eEe.test(String.fromCharCode(e)) : UB(e, nle) || UB(e, tEe);
}
const E4 = {
  keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"],
  strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"],
  strictBind: ["eval", "arguments"]
}, rEe = new Set(E4.keyword), iEe = new Set(E4.strict), nEe = new Set(E4.strictBind);
function sle(e, t) {
  return t && e === "await" || e === "enum";
}
function ale(e, t) {
  return sle(e, t) || iEe.has(e);
}
function ole(e) {
  return nEe.has(e);
}
function lle(e, t) {
  return ale(e, t) || ole(e);
}
function sEe(e) {
  return rEe.has(e);
}
function aEe(e, t, r) {
  return e === 64 && t === 64 && rf(r);
}
const oEe = /* @__PURE__ */ new Set(["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete", "implements", "interface", "let", "package", "private", "protected", "public", "static", "yield", "eval", "arguments", "enum", "await"]);
function lEe(e) {
  return oEe.has(e);
}
const cy = 0, py = 1, uf = 2, P4 = 4, ule = 8, nw = 16, cle = 32, Pd = 64, sw = 128, Py = 256, RS = py | uf | sw | Py, hp = 1, zd = 2, ple = 4, Rd = 8, tP = 16, fle = 64, aw = 128, qB = 256, VB = 512, w4 = 1024, WB = 2048, W0 = 4096, eC = 8192, hle = hp | zd | Rd | aw | eC, wy = hp | 0 | Rd | eC, uEe = hp | 0 | Rd | 0, ow = hp | 0 | ple | 0, dle = hp | 0 | tP | 0, cEe = 0 | zd | 0 | aw, pEe = 0 | zd | 0 | 0, mle = hp | zd | Rd | qB | eC, Wq = 0 | w4, bh = 0 | fle, fEe = hp | 0 | 0 | fle, hEe = mle | VB, dEe = 0 | w4, Hq = 0 | zd | 0 | W0, mEe = WB, lw = 4, A4 = 2, C4 = 1, ZL = A4 | C4, yEe = A4 | lw, gEe = C4 | lw, bEe = A4, vEe = C4, eM = 0;
let _4 = class {
  constructor(t) {
    this.var = /* @__PURE__ */ new Set(), this.lexical = /* @__PURE__ */ new Set(), this.functions = /* @__PURE__ */ new Set(), this.flags = t;
  }
}, I4 = class {
  constructor(t, r) {
    this.parser = void 0, this.scopeStack = [], this.inModule = void 0, this.undefinedExports = /* @__PURE__ */ new Map(), this.parser = t, this.inModule = r;
  }
  get inTopLevel() {
    return (this.currentScope().flags & py) > 0;
  }
  get inFunction() {
    return (this.currentVarScopeFlags() & uf) > 0;
  }
  get allowSuper() {
    return (this.currentThisScopeFlags() & nw) > 0;
  }
  get allowDirectSuper() {
    return (this.currentThisScopeFlags() & cle) > 0;
  }
  get inClass() {
    return (this.currentThisScopeFlags() & Pd) > 0;
  }
  get inClassAndNotInNonArrowFunction() {
    const t = this.currentThisScopeFlags();
    return (t & Pd) > 0 && (t & uf) === 0;
  }
  get inStaticBlock() {
    for (let t = this.scopeStack.length - 1; ; t--) {
      const {
        flags: r
      } = this.scopeStack[t];
      if (r & sw)
        return !0;
      if (r & (RS | Pd))
        return !1;
    }
  }
  get inNonArrowFunction() {
    return (this.currentThisScopeFlags() & uf) > 0;
  }
  get treatFunctionsAsVar() {
    return this.treatFunctionsAsVarInScope(this.currentScope());
  }
  createScope(t) {
    return new _4(t);
  }
  enter(t) {
    this.scopeStack.push(this.createScope(t));
  }
  exit() {
    return this.scopeStack.pop().flags;
  }
  treatFunctionsAsVarInScope(t) {
    return !!(t.flags & (uf | sw) || !this.parser.inModule && t.flags & py);
  }
  declareName(t, r, i) {
    let n = this.currentScope();
    if (r & Rd || r & tP)
      this.checkRedeclarationInScope(n, t, r, i), r & tP ? n.functions.add(t) : n.lexical.add(t), r & Rd && this.maybeExportDefined(n, t);
    else if (r & ple)
      for (let s = this.scopeStack.length - 1; s >= 0 && (n = this.scopeStack[s], this.checkRedeclarationInScope(n, t, r, i), n.var.add(t), this.maybeExportDefined(n, t), !(n.flags & RS)); --s)
        ;
    this.parser.inModule && n.flags & py && this.undefinedExports.delete(t);
  }
  maybeExportDefined(t, r) {
    this.parser.inModule && t.flags & py && this.undefinedExports.delete(r);
  }
  checkRedeclarationInScope(t, r, i, n) {
    this.isRedeclaredInScope(t, r, i) && this.parser.raise(nt.VarRedeclaration, {
      at: n,
      identifierName: r
    });
  }
  isRedeclaredInScope(t, r, i) {
    return i & hp ? i & Rd ? t.lexical.has(r) || t.functions.has(r) || t.var.has(r) : i & tP ? t.lexical.has(r) || !this.treatFunctionsAsVarInScope(t) && t.var.has(r) : t.lexical.has(r) && !(t.flags & ule && t.lexical.values().next().value === r) || !this.treatFunctionsAsVarInScope(t) && t.functions.has(r) : !1;
  }
  checkLocalExport(t) {
    const {
      name: r
    } = t, i = this.scopeStack[0];
    !i.lexical.has(r) && !i.var.has(r) && !i.functions.has(r) && this.undefinedExports.set(r, t.loc.start);
  }
  currentScope() {
    return this.scopeStack[this.scopeStack.length - 1];
  }
  currentVarScopeFlags() {
    for (let t = this.scopeStack.length - 1; ; t--) {
      const {
        flags: r
      } = this.scopeStack[t];
      if (r & RS)
        return r;
    }
  }
  currentThisScopeFlags() {
    for (let t = this.scopeStack.length - 1; ; t--) {
      const {
        flags: r
      } = this.scopeStack[t];
      if (r & (RS | Pd) && !(r & P4))
        return r;
    }
  }
}, TEe = class extends _4 {
  constructor(...t) {
    super(...t), this.declareFunctions = /* @__PURE__ */ new Set();
  }
}, SEe = class extends I4 {
  createScope(t) {
    return new TEe(t);
  }
  declareName(t, r, i) {
    const n = this.currentScope();
    if (r & WB) {
      this.checkRedeclarationInScope(n, t, r, i), this.maybeExportDefined(n, t), n.declareFunctions.add(t);
      return;
    }
    super.declareName(t, r, i);
  }
  isRedeclaredInScope(t, r, i) {
    return super.isRedeclaredInScope(t, r, i) ? !0 : i & WB ? !t.declareFunctions.has(r) && (t.lexical.has(r) || t.functions.has(r)) : !1;
  }
  checkLocalExport(t) {
    this.scopeStack[0].declareFunctions.has(t.name) || super.checkLocalExport(t);
  }
}, xEe = class {
  constructor() {
    this.sawUnambiguousESM = !1, this.ambiguousScriptDifferentAst = !1;
  }
  hasPlugin(t) {
    if (typeof t == "string")
      return this.plugins.has(t);
    {
      const [r, i] = t;
      if (!this.hasPlugin(r))
        return !1;
      const n = this.plugins.get(r);
      for (const s of Object.keys(i))
        if ((n == null ? void 0 : n[s]) !== i[s])
          return !1;
      return !0;
    }
  }
  getPluginOption(t, r) {
    var i;
    return (i = this.plugins.get(t)) == null ? void 0 : i[r];
  }
};
function yle(e, t) {
  e.trailingComments === void 0 ? e.trailingComments = t : e.trailingComments.unshift(...t);
}
function EEe(e, t) {
  e.leadingComments === void 0 ? e.leadingComments = t : e.leadingComments.unshift(...t);
}
function Ev(e, t) {
  e.innerComments === void 0 ? e.innerComments = t : e.innerComments.unshift(...t);
}
function Xg(e, t, r) {
  let i = null, n = t.length;
  for (; i === null && n > 0; )
    i = t[--n];
  i === null || i.start > r.start ? Ev(e, r.comments) : yle(i, r.comments);
}
let PEe = class extends xEe {
  addComment(t) {
    this.filename && (t.loc.filename = this.filename), this.state.comments.push(t);
  }
  processComment(t) {
    const {
      commentStack: r
    } = this.state, i = r.length;
    if (i === 0)
      return;
    let n = i - 1;
    const s = r[n];
    s.start === t.end && (s.leadingNode = t, n--);
    const {
      start: a
    } = t;
    for (; n >= 0; n--) {
      const o = r[n], l = o.end;
      if (l > a)
        o.containingNode = t, this.finalizeComment(o), r.splice(n, 1);
      else {
        l === a && (o.trailingNode = t);
        break;
      }
    }
  }
  finalizeComment(t) {
    const {
      comments: r
    } = t;
    if (t.leadingNode !== null || t.trailingNode !== null)
      t.leadingNode !== null && yle(t.leadingNode, r), t.trailingNode !== null && EEe(t.trailingNode, r);
    else {
      const {
        containingNode: i,
        start: n
      } = t;
      if (this.input.charCodeAt(n - 1) === 44)
        switch (i.type) {
          case "ObjectExpression":
          case "ObjectPattern":
          case "RecordExpression":
            Xg(i, i.properties, t);
            break;
          case "CallExpression":
          case "OptionalCallExpression":
            Xg(i, i.arguments, t);
            break;
          case "FunctionDeclaration":
          case "FunctionExpression":
          case "ArrowFunctionExpression":
          case "ObjectMethod":
          case "ClassMethod":
          case "ClassPrivateMethod":
            Xg(i, i.params, t);
            break;
          case "ArrayExpression":
          case "ArrayPattern":
          case "TupleExpression":
            Xg(i, i.elements, t);
            break;
          case "ExportNamedDeclaration":
          case "ImportDeclaration":
            Xg(i, i.specifiers, t);
            break;
          default:
            Ev(i, r);
        }
      else
        Ev(i, r);
    }
  }
  finalizeRemainingComments() {
    const {
      commentStack: t
    } = this.state;
    for (let r = t.length - 1; r >= 0; r--)
      this.finalizeComment(t[r]);
    this.state.commentStack = [];
  }
  resetPreviousNodeTrailingComments(t) {
    const {
      commentStack: r
    } = this.state, {
      length: i
    } = r;
    if (i === 0)
      return;
    const n = r[i - 1];
    n.leadingNode === t && (n.leadingNode = null);
  }
  takeSurroundingComments(t, r, i) {
    const {
      commentStack: n
    } = this.state, s = n.length;
    if (s === 0)
      return;
    let a = s - 1;
    for (; a >= 0; a--) {
      const o = n[a], l = o.end;
      if (o.start === i)
        o.leadingNode = t;
      else if (l === r)
        o.trailingNode = t;
      else if (l < r)
        break;
    }
  }
};
const k4 = /\r\n?|[\n\u2028\u2029]/, BS = new RegExp(k4.source, "g");
function H0(e) {
  switch (e) {
    case 10:
    case 13:
    case 8232:
    case 8233:
      return !0;
    default:
      return !1;
  }
}
const tM = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g, wEe = /(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/y, Kq = new RegExp("(?=(" + wEe.source + "))\\1" + /(?=[\n\r\u2028\u2029]|\/\*(?!.*?\*\/)|$)/.source, "y");
function AEe(e) {
  switch (e) {
    case 9:
    case 11:
    case 12:
    case 32:
    case 160:
    case 5760:
    case 8192:
    case 8193:
    case 8194:
    case 8195:
    case 8196:
    case 8197:
    case 8198:
    case 8199:
    case 8200:
    case 8201:
    case 8202:
    case 8239:
    case 8287:
    case 12288:
    case 65279:
      return !0;
    default:
      return !1;
  }
}
let CEe = class gle {
  constructor() {
    this.strict = void 0, this.curLine = void 0, this.lineStart = void 0, this.startLoc = void 0, this.endLoc = void 0, this.errors = [], this.potentialArrowAt = -1, this.noArrowAt = [], this.noArrowParamsConversionAt = [], this.maybeInArrowParameters = !1, this.inType = !1, this.noAnonFunctionType = !1, this.hasFlowComment = !1, this.isAmbientContext = !1, this.inAbstractClass = !1, this.inDisallowConditionalTypesContext = !1, this.topicContext = {
      maxNumOfResolvableTopics: 0,
      maxTopicIndex: null
    }, this.soloAwait = !1, this.inFSharpPipelineDirectBody = !1, this.labels = [], this.comments = [], this.commentStack = [], this.pos = 0, this.type = 137, this.value = null, this.start = 0, this.end = 0, this.lastTokEndLoc = null, this.lastTokStartLoc = null, this.lastTokStart = 0, this.context = [Vi.brace], this.canStartJSXElement = !0, this.containsEsc = !1, this.firstInvalidTemplateEscapePos = null, this.strictErrors = /* @__PURE__ */ new Map(), this.tokensLength = 0;
  }
  init({
    strictMode: t,
    sourceType: r,
    startLine: i,
    startColumn: n
  }) {
    this.strict = t === !1 ? !1 : t === !0 ? !0 : r === "module", this.curLine = i, this.lineStart = -n, this.startLoc = this.endLoc = new _h(i, n, 0);
  }
  curPosition() {
    return new _h(this.curLine, this.pos - this.lineStart, this.pos);
  }
  clone(t) {
    const r = new gle(), i = Object.keys(this);
    for (let n = 0, s = i.length; n < s; n++) {
      const a = i[n];
      let o = this[a];
      !t && Array.isArray(o) && (o = o.slice()), r[a] = o;
    }
    return r;
  }
};
var _Ee = function(t) {
  return t >= 48 && t <= 57;
};
const zq = {
  decBinOct: /* @__PURE__ */ new Set([46, 66, 69, 79, 95, 98, 101, 111]),
  hex: /* @__PURE__ */ new Set([46, 88, 95, 120])
}, FS = {
  bin: (e) => e === 48 || e === 49,
  oct: (e) => e >= 48 && e <= 55,
  dec: (e) => e >= 48 && e <= 57,
  hex: (e) => e >= 48 && e <= 57 || e >= 65 && e <= 70 || e >= 97 && e <= 102
};
function Gq(e, t, r, i, n, s) {
  const a = r, o = i, l = n;
  let u = "", c = null, f = r;
  const {
    length: h
  } = t;
  for (; ; ) {
    if (r >= h) {
      s.unterminated(a, o, l), u += t.slice(f, r);
      break;
    }
    const m = t.charCodeAt(r);
    if (IEe(e, m, t, r)) {
      u += t.slice(f, r);
      break;
    }
    if (m === 92) {
      u += t.slice(f, r);
      const g = kEe(t, r, i, n, e === "template", s);
      g.ch === null && !c ? c = {
        pos: r,
        lineStart: i,
        curLine: n
      } : u += g.ch, {
        pos: r,
        lineStart: i,
        curLine: n
      } = g, f = r;
    } else
      m === 8232 || m === 8233 ? (++r, ++n, i = r) : m === 10 || m === 13 ? e === "template" ? (u += t.slice(f, r) + "\n", ++r, m === 13 && t.charCodeAt(r) === 10 && ++r, ++n, f = i = r) : s.unterminated(a, o, l) : ++r;
  }
  return {
    pos: r,
    str: u,
    firstInvalidLoc: c,
    lineStart: i,
    curLine: n,
    containsInvalid: !!c
  };
}
function IEe(e, t, r, i) {
  return e === "template" ? t === 96 || t === 36 && r.charCodeAt(i + 1) === 123 : t === (e === "double" ? 34 : 39);
}
function kEe(e, t, r, i, n, s) {
  const a = !n;
  t++;
  const o = (u) => ({
    pos: t,
    ch: u,
    lineStart: r,
    curLine: i
  }), l = e.charCodeAt(t++);
  switch (l) {
    case 110:
      return o("\n");
    case 114:
      return o("\r");
    case 120: {
      let u;
      return {
        code: u,
        pos: t
      } = HB(e, t, r, i, 2, !1, a, s), o(u === null ? null : String.fromCharCode(u));
    }
    case 117: {
      let u;
      return {
        code: u,
        pos: t
      } = vle(e, t, r, i, a, s), o(u === null ? null : String.fromCodePoint(u));
    }
    case 116:
      return o("	");
    case 98:
      return o("\b");
    case 118:
      return o("\v");
    case 102:
      return o("\f");
    case 13:
      e.charCodeAt(t) === 10 && ++t;
    case 10:
      r = t, ++i;
    case 8232:
    case 8233:
      return o("");
    case 56:
    case 57:
      if (n)
        return o(null);
      s.strictNumericEscape(t - 1, r, i);
    default:
      if (l >= 48 && l <= 55) {
        const u = t - 1;
        let f = e.slice(u, t + 2).match(/^[0-7]+/)[0], h = parseInt(f, 8);
        h > 255 && (f = f.slice(0, -1), h = parseInt(f, 8)), t += f.length - 1;
        const m = e.charCodeAt(t);
        if (f !== "0" || m === 56 || m === 57) {
          if (n)
            return o(null);
          s.strictNumericEscape(u, r, i);
        }
        return o(String.fromCharCode(h));
      }
      return o(String.fromCharCode(l));
  }
}
function HB(e, t, r, i, n, s, a, o) {
  const l = t;
  let u;
  return {
    n: u,
    pos: t
  } = ble(e, t, r, i, 16, n, s, !1, o, !a), u === null && (a ? o.invalidEscapeSequence(l, r, i) : t = l - 1), {
    code: u,
    pos: t
  };
}
function ble(e, t, r, i, n, s, a, o, l, u) {
  const c = t, f = n === 16 ? zq.hex : zq.decBinOct, h = n === 16 ? FS.hex : n === 10 ? FS.dec : n === 8 ? FS.oct : FS.bin;
  let m = !1, g = 0;
  for (let y = 0, v = s == null ? 1 / 0 : s; y < v; ++y) {
    const T = e.charCodeAt(t);
    let S;
    if (T === 95 && o !== "bail") {
      const P = e.charCodeAt(t - 1), x = e.charCodeAt(t + 1);
      if (o) {
        if (Number.isNaN(x) || !h(x) || f.has(P) || f.has(x)) {
          if (u)
            return {
              n: null,
              pos: t
            };
          l.unexpectedNumericSeparator(t, r, i);
        }
      } else {
        if (u)
          return {
            n: null,
            pos: t
          };
        l.numericSeparatorInEscapeSequence(t, r, i);
      }
      ++t;
      continue;
    }
    if (T >= 97 ? S = T - 97 + 10 : T >= 65 ? S = T - 65 + 10 : _Ee(T) ? S = T - 48 : S = 1 / 0, S >= n) {
      if (S <= 9 && u)
        return {
          n: null,
          pos: t
        };
      if (S <= 9 && l.invalidDigit(t, r, i, n))
        S = 0;
      else if (a)
        S = 0, m = !0;
      else
        break;
    }
    ++t, g = g * n + S;
  }
  return t === c || s != null && t - c !== s || m ? {
    n: null,
    pos: t
  } : {
    n: g,
    pos: t
  };
}
function vle(e, t, r, i, n, s) {
  const a = e.charCodeAt(t);
  let o;
  if (a === 123) {
    if (++t, {
      code: o,
      pos: t
    } = HB(e, t, r, i, e.indexOf("}", t) - t, !0, n, s), ++t, o !== null && o > 1114111)
      if (n)
        s.invalidCodePoint(t, r, i);
      else
        return {
          code: null,
          pos: t
        };
  } else
    ({
      code: o,
      pos: t
    } = HB(e, t, r, i, 4, !1, n, s));
  return {
    code: o,
    pos: t
  };
}
const OEe = ["at"], NEe = ["at"];
function Jg(e, t, r) {
  return new _h(r, e - t, e);
}
const DEe = /* @__PURE__ */ new Set([103, 109, 115, 105, 121, 117, 100, 118]);
let uh = class {
  constructor(t) {
    this.type = t.type, this.value = t.value, this.start = t.start, this.end = t.end, this.loc = new iw(t.startLoc, t.endLoc);
  }
}, LEe = class extends PEe {
  constructor(t, r) {
    super(), this.isLookahead = void 0, this.tokens = [], this.errorHandlers_readInt = {
      invalidDigit: (i, n, s, a) => this.options.errorRecovery ? (this.raise(nt.InvalidDigit, {
        at: Jg(i, n, s),
        radix: a
      }), !0) : !1,
      numericSeparatorInEscapeSequence: this.errorBuilder(nt.NumericSeparatorInEscapeSequence),
      unexpectedNumericSeparator: this.errorBuilder(nt.UnexpectedNumericSeparator)
    }, this.errorHandlers_readCodePoint = Object.assign({}, this.errorHandlers_readInt, {
      invalidEscapeSequence: this.errorBuilder(nt.InvalidEscapeSequence),
      invalidCodePoint: this.errorBuilder(nt.InvalidCodePoint)
    }), this.errorHandlers_readStringContents_string = Object.assign({}, this.errorHandlers_readCodePoint, {
      strictNumericEscape: (i, n, s) => {
        this.recordStrictModeErrors(nt.StrictNumericEscape, {
          at: Jg(i, n, s)
        });
      },
      unterminated: (i, n, s) => {
        throw this.raise(nt.UnterminatedString, {
          at: Jg(i - 1, n, s)
        });
      }
    }), this.errorHandlers_readStringContents_template = Object.assign({}, this.errorHandlers_readCodePoint, {
      strictNumericEscape: this.errorBuilder(nt.StrictNumericEscape),
      unterminated: (i, n, s) => {
        throw this.raise(nt.UnterminatedTemplate, {
          at: Jg(i, n, s)
        });
      }
    }), this.state = new CEe(), this.state.init(t), this.input = r, this.length = r.length, this.isLookahead = !1;
  }
  pushToken(t) {
    this.tokens.length = this.state.tokensLength, this.tokens.push(t), ++this.state.tokensLength;
  }
  next() {
    this.checkKeywordEscapes(), this.options.tokens && this.pushToken(new uh(this.state)), this.state.lastTokStart = this.state.start, this.state.lastTokEndLoc = this.state.endLoc, this.state.lastTokStartLoc = this.state.startLoc, this.nextToken();
  }
  eat(t) {
    return this.match(t) ? (this.next(), !0) : !1;
  }
  match(t) {
    return this.state.type === t;
  }
  createLookaheadState(t) {
    return {
      pos: t.pos,
      value: null,
      type: t.type,
      start: t.start,
      end: t.end,
      context: [this.curContext()],
      inType: t.inType,
      startLoc: t.startLoc,
      lastTokEndLoc: t.lastTokEndLoc,
      curLine: t.curLine,
      lineStart: t.lineStart,
      curPosition: t.curPosition
    };
  }
  lookahead() {
    const t = this.state;
    this.state = this.createLookaheadState(t), this.isLookahead = !0, this.nextToken(), this.isLookahead = !1;
    const r = this.state;
    return this.state = t, r;
  }
  nextTokenStart() {
    return this.nextTokenStartSince(this.state.pos);
  }
  nextTokenStartSince(t) {
    return tM.lastIndex = t, tM.test(this.input) ? tM.lastIndex : t;
  }
  lookaheadCharCode() {
    return this.input.charCodeAt(this.nextTokenStart());
  }
  codePointAtPos(t) {
    let r = this.input.charCodeAt(t);
    if ((r & 64512) === 55296 && ++t < this.input.length) {
      const i = this.input.charCodeAt(t);
      (i & 64512) === 56320 && (r = 65536 + ((r & 1023) << 10) + (i & 1023));
    }
    return r;
  }
  setStrict(t) {
    this.state.strict = t, t && (this.state.strictErrors.forEach(([r, i]) => this.raise(r, {
      at: i
    })), this.state.strictErrors.clear());
  }
  curContext() {
    return this.state.context[this.state.context.length - 1];
  }
  nextToken() {
    if (this.skipSpace(), this.state.start = this.state.pos, this.isLookahead || (this.state.startLoc = this.state.curPosition()), this.state.pos >= this.length) {
      this.finishToken(137);
      return;
    }
    this.getTokenFromCode(this.codePointAtPos(this.state.pos));
  }
  skipBlockComment(t) {
    let r;
    this.isLookahead || (r = this.state.curPosition());
    const i = this.state.pos, n = this.input.indexOf(t, i + 2);
    if (n === -1)
      throw this.raise(nt.UnterminatedComment, {
        at: this.state.curPosition()
      });
    for (this.state.pos = n + t.length, BS.lastIndex = i + 2; BS.test(this.input) && BS.lastIndex <= n; )
      ++this.state.curLine, this.state.lineStart = BS.lastIndex;
    if (this.isLookahead)
      return;
    const s = {
      type: "CommentBlock",
      value: this.input.slice(i + 2, n),
      start: i,
      end: n + t.length,
      loc: new iw(r, this.state.curPosition())
    };
    return this.options.tokens && this.pushToken(s), s;
  }
  skipLineComment(t) {
    const r = this.state.pos;
    let i;
    this.isLookahead || (i = this.state.curPosition());
    let n = this.input.charCodeAt(this.state.pos += t);
    if (this.state.pos < this.length)
      for (; !H0(n) && ++this.state.pos < this.length; )
        n = this.input.charCodeAt(this.state.pos);
    if (this.isLookahead)
      return;
    const s = this.state.pos, o = {
      type: "CommentLine",
      value: this.input.slice(r + t, s),
      start: r,
      end: s,
      loc: new iw(i, this.state.curPosition())
    };
    return this.options.tokens && this.pushToken(o), o;
  }
  skipSpace() {
    const t = this.state.pos, r = [];
    e:
      for (; this.state.pos < this.length; ) {
        const i = this.input.charCodeAt(this.state.pos);
        switch (i) {
          case 32:
          case 160:
          case 9:
            ++this.state.pos;
            break;
          case 13:
            this.input.charCodeAt(this.state.pos + 1) === 10 && ++this.state.pos;
          case 10:
          case 8232:
          case 8233:
            ++this.state.pos, ++this.state.curLine, this.state.lineStart = this.state.pos;
            break;
          case 47:
            switch (this.input.charCodeAt(this.state.pos + 1)) {
              case 42: {
                const n = this.skipBlockComment("*/");
                n !== void 0 && (this.addComment(n), this.options.attachComment && r.push(n));
                break;
              }
              case 47: {
                const n = this.skipLineComment(2);
                n !== void 0 && (this.addComment(n), this.options.attachComment && r.push(n));
                break;
              }
              default:
                break e;
            }
            break;
          default:
            if (AEe(i))
              ++this.state.pos;
            else if (i === 45 && !this.inModule && this.options.annexB) {
              const n = this.state.pos;
              if (this.input.charCodeAt(n + 1) === 45 && this.input.charCodeAt(n + 2) === 62 && (t === 0 || this.state.lineStart > t)) {
                const s = this.skipLineComment(3);
                s !== void 0 && (this.addComment(s), this.options.attachComment && r.push(s));
              } else
                break e;
            } else if (i === 60 && !this.inModule && this.options.annexB) {
              const n = this.state.pos;
              if (this.input.charCodeAt(n + 1) === 33 && this.input.charCodeAt(n + 2) === 45 && this.input.charCodeAt(n + 3) === 45) {
                const s = this.skipLineComment(4);
                s !== void 0 && (this.addComment(s), this.options.attachComment && r.push(s));
              } else
                break e;
            } else
              break e;
        }
      }
    if (r.length > 0) {
      const i = this.state.pos, n = {
        start: t,
        end: i,
        comments: r,
        leadingNode: null,
        trailingNode: null,
        containingNode: null
      };
      this.state.commentStack.push(n);
    }
  }
  finishToken(t, r) {
    this.state.end = this.state.pos, this.state.endLoc = this.state.curPosition();
    const i = this.state.type;
    this.state.type = t, this.state.value = r, this.isLookahead || this.updateContext(i);
  }
  replaceToken(t) {
    this.state.type = t, this.updateContext();
  }
  readToken_numberSign() {
    if (this.state.pos === 0 && this.readToken_interpreter())
      return;
    const t = this.state.pos + 1, r = this.codePointAtPos(t);
    if (r >= 48 && r <= 57)
      throw this.raise(nt.UnexpectedDigitAfterHash, {
        at: this.state.curPosition()
      });
    if (r === 123 || r === 91 && this.hasPlugin("recordAndTuple")) {
      if (this.expectPlugin("recordAndTuple"), this.getPluginOption("recordAndTuple", "syntaxType") === "bar")
        throw this.raise(r === 123 ? nt.RecordExpressionHashIncorrectStartSyntaxType : nt.TupleExpressionHashIncorrectStartSyntaxType, {
          at: this.state.curPosition()
        });
      this.state.pos += 2, r === 123 ? this.finishToken(7) : this.finishToken(1);
    } else
      rf(r) ? (++this.state.pos, this.finishToken(136, this.readWord1(r))) : r === 92 ? (++this.state.pos, this.finishToken(136, this.readWord1())) : this.finishOp(27, 1);
  }
  readToken_dot() {
    const t = this.input.charCodeAt(this.state.pos + 1);
    if (t >= 48 && t <= 57) {
      this.readNumber(!0);
      return;
    }
    t === 46 && this.input.charCodeAt(this.state.pos + 2) === 46 ? (this.state.pos += 3, this.finishToken(21)) : (++this.state.pos, this.finishToken(16));
  }
  readToken_slash() {
    this.input.charCodeAt(this.state.pos + 1) === 61 ? this.finishOp(31, 2) : this.finishOp(56, 1);
  }
  readToken_interpreter() {
    if (this.state.pos !== 0 || this.length < 2)
      return !1;
    let t = this.input.charCodeAt(this.state.pos + 1);
    if (t !== 33)
      return !1;
    const r = this.state.pos;
    for (this.state.pos += 1; !H0(t) && ++this.state.pos < this.length; )
      t = this.input.charCodeAt(this.state.pos);
    const i = this.input.slice(r + 2, this.state.pos);
    return this.finishToken(28, i), !0;
  }
  readToken_mult_modulo(t) {
    let r = t === 42 ? 55 : 54, i = 1, n = this.input.charCodeAt(this.state.pos + 1);
    t === 42 && n === 42 && (i++, n = this.input.charCodeAt(this.state.pos + 2), r = 57), n === 61 && !this.state.inType && (i++, r = t === 37 ? 33 : 30), this.finishOp(r, i);
  }
  readToken_pipe_amp(t) {
    const r = this.input.charCodeAt(this.state.pos + 1);
    if (r === t) {
      this.input.charCodeAt(this.state.pos + 2) === 61 ? this.finishOp(30, 3) : this.finishOp(t === 124 ? 41 : 42, 2);
      return;
    }
    if (t === 124) {
      if (r === 62) {
        this.finishOp(39, 2);
        return;
      }
      if (this.hasPlugin("recordAndTuple") && r === 125) {
        if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
          throw this.raise(nt.RecordExpressionBarIncorrectEndSyntaxType, {
            at: this.state.curPosition()
          });
        this.state.pos += 2, this.finishToken(9);
        return;
      }
      if (this.hasPlugin("recordAndTuple") && r === 93) {
        if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
          throw this.raise(nt.TupleExpressionBarIncorrectEndSyntaxType, {
            at: this.state.curPosition()
          });
        this.state.pos += 2, this.finishToken(4);
        return;
      }
    }
    if (r === 61) {
      this.finishOp(30, 2);
      return;
    }
    this.finishOp(t === 124 ? 43 : 45, 1);
  }
  readToken_caret() {
    const t = this.input.charCodeAt(this.state.pos + 1);
    t === 61 && !this.state.inType ? this.finishOp(32, 2) : t === 94 && this.hasPlugin(["pipelineOperator", {
      proposal: "hack",
      topicToken: "^^"
    }]) ? (this.finishOp(37, 2), this.input.codePointAt(this.state.pos) === 94 && this.unexpected()) : this.finishOp(44, 1);
  }
  readToken_atSign() {
    this.input.charCodeAt(this.state.pos + 1) === 64 && this.hasPlugin(["pipelineOperator", {
      proposal: "hack",
      topicToken: "@@"
    }]) ? this.finishOp(38, 2) : this.finishOp(26, 1);
  }
  readToken_plus_min(t) {
    const r = this.input.charCodeAt(this.state.pos + 1);
    if (r === t) {
      this.finishOp(34, 2);
      return;
    }
    r === 61 ? this.finishOp(30, 2) : this.finishOp(53, 1);
  }
  readToken_lt() {
    const {
      pos: t
    } = this.state, r = this.input.charCodeAt(t + 1);
    if (r === 60) {
      if (this.input.charCodeAt(t + 2) === 61) {
        this.finishOp(30, 3);
        return;
      }
      this.finishOp(51, 2);
      return;
    }
    if (r === 61) {
      this.finishOp(49, 2);
      return;
    }
    this.finishOp(47, 1);
  }
  readToken_gt() {
    const {
      pos: t
    } = this.state, r = this.input.charCodeAt(t + 1);
    if (r === 62) {
      const i = this.input.charCodeAt(t + 2) === 62 ? 3 : 2;
      if (this.input.charCodeAt(t + i) === 61) {
        this.finishOp(30, i + 1);
        return;
      }
      this.finishOp(52, i);
      return;
    }
    if (r === 61) {
      this.finishOp(49, 2);
      return;
    }
    this.finishOp(48, 1);
  }
  readToken_eq_excl(t) {
    const r = this.input.charCodeAt(this.state.pos + 1);
    if (r === 61) {
      this.finishOp(46, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2);
      return;
    }
    if (t === 61 && r === 62) {
      this.state.pos += 2, this.finishToken(19);
      return;
    }
    this.finishOp(t === 61 ? 29 : 35, 1);
  }
  readToken_question() {
    const t = this.input.charCodeAt(this.state.pos + 1), r = this.input.charCodeAt(this.state.pos + 2);
    t === 63 ? r === 61 ? this.finishOp(30, 3) : this.finishOp(40, 2) : t === 46 && !(r >= 48 && r <= 57) ? (this.state.pos += 2, this.finishToken(18)) : (++this.state.pos, this.finishToken(17));
  }
  getTokenFromCode(t) {
    switch (t) {
      case 46:
        this.readToken_dot();
        return;
      case 40:
        ++this.state.pos, this.finishToken(10);
        return;
      case 41:
        ++this.state.pos, this.finishToken(11);
        return;
      case 59:
        ++this.state.pos, this.finishToken(13);
        return;
      case 44:
        ++this.state.pos, this.finishToken(12);
        return;
      case 91:
        if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) {
          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
            throw this.raise(nt.TupleExpressionBarIncorrectStartSyntaxType, {
              at: this.state.curPosition()
            });
          this.state.pos += 2, this.finishToken(2);
        } else
          ++this.state.pos, this.finishToken(0);
        return;
      case 93:
        ++this.state.pos, this.finishToken(3);
        return;
      case 123:
        if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) {
          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
            throw this.raise(nt.RecordExpressionBarIncorrectStartSyntaxType, {
              at: this.state.curPosition()
            });
          this.state.pos += 2, this.finishToken(6);
        } else
          ++this.state.pos, this.finishToken(5);
        return;
      case 125:
        ++this.state.pos, this.finishToken(8);
        return;
      case 58:
        this.hasPlugin("functionBind") && this.input.charCodeAt(this.state.pos + 1) === 58 ? this.finishOp(15, 2) : (++this.state.pos, this.finishToken(14));
        return;
      case 63:
        this.readToken_question();
        return;
      case 96:
        this.readTemplateToken();
        return;
      case 48: {
        const r = this.input.charCodeAt(this.state.pos + 1);
        if (r === 120 || r === 88) {
          this.readRadixNumber(16);
          return;
        }
        if (r === 111 || r === 79) {
          this.readRadixNumber(8);
          return;
        }
        if (r === 98 || r === 66) {
          this.readRadixNumber(2);
          return;
        }
      }
      case 49:
      case 50:
      case 51:
      case 52:
      case 53:
      case 54:
      case 55:
      case 56:
      case 57:
        this.readNumber(!1);
        return;
      case 34:
      case 39:
        this.readString(t);
        return;
      case 47:
        this.readToken_slash();
        return;
      case 37:
      case 42:
        this.readToken_mult_modulo(t);
        return;
      case 124:
      case 38:
        this.readToken_pipe_amp(t);
        return;
      case 94:
        this.readToken_caret();
        return;
      case 43:
      case 45:
        this.readToken_plus_min(t);
        return;
      case 60:
        this.readToken_lt();
        return;
      case 62:
        this.readToken_gt();
        return;
      case 61:
      case 33:
        this.readToken_eq_excl(t);
        return;
      case 126:
        this.finishOp(36, 1);
        return;
      case 64:
        this.readToken_atSign();
        return;
      case 35:
        this.readToken_numberSign();
        return;
      case 92:
        this.readWord();
        return;
      default:
        if (rf(t)) {
          this.readWord(t);
          return;
        }
    }
    throw this.raise(nt.InvalidOrUnexpectedToken, {
      at: this.state.curPosition(),
      unexpected: String.fromCodePoint(t)
    });
  }
  finishOp(t, r) {
    const i = this.input.slice(this.state.pos, this.state.pos + r);
    this.state.pos += r, this.finishToken(t, i);
  }
  readRegexp() {
    const t = this.state.startLoc, r = this.state.start + 1;
    let i, n, {
      pos: s
    } = this.state;
    for (; ; ++s) {
      if (s >= this.length)
        throw this.raise(nt.UnterminatedRegExp, {
          at: oa(t, 1)
        });
      const u = this.input.charCodeAt(s);
      if (H0(u))
        throw this.raise(nt.UnterminatedRegExp, {
          at: oa(t, 1)
        });
      if (i)
        i = !1;
      else {
        if (u === 91)
          n = !0;
        else if (u === 93 && n)
          n = !1;
        else if (u === 47 && !n)
          break;
        i = u === 92;
      }
    }
    const a = this.input.slice(r, s);
    ++s;
    let o = "";
    const l = () => oa(t, s + 2 - r);
    for (; s < this.length; ) {
      const u = this.codePointAtPos(s), c = String.fromCharCode(u);
      if (DEe.has(u))
        u === 118 ? (this.expectPlugin("regexpUnicodeSets", l()), o.includes("u") && this.raise(nt.IncompatibleRegExpUVFlags, {
          at: l()
        })) : u === 117 && o.includes("v") && this.raise(nt.IncompatibleRegExpUVFlags, {
          at: l()
        }), o.includes(c) && this.raise(nt.DuplicateRegExpFlags, {
          at: l()
        });
      else if (Ey(u) || u === 92)
        this.raise(nt.MalformedRegExpFlags, {
          at: l()
        });
      else
        break;
      ++s, o += c;
    }
    this.state.pos = s, this.finishToken(135, {
      pattern: a,
      flags: o
    });
  }
  readInt(t, r, i = !1, n = !0) {
    const {
      n: s,
      pos: a
    } = ble(this.input, this.state.pos, this.state.lineStart, this.state.curLine, t, r, i, n, this.errorHandlers_readInt, !1);
    return this.state.pos = a, s;
  }
  readRadixNumber(t) {
    const r = this.state.curPosition();
    let i = !1;
    this.state.pos += 2;
    const n = this.readInt(t);
    n == null && this.raise(nt.InvalidDigit, {
      at: oa(r, 2),
      radix: t
    });
    const s = this.input.charCodeAt(this.state.pos);
    if (s === 110)
      ++this.state.pos, i = !0;
    else if (s === 109)
      throw this.raise(nt.InvalidDecimal, {
        at: r
      });
    if (rf(this.codePointAtPos(this.state.pos)))
      throw this.raise(nt.NumberIdentifier, {
        at: this.state.curPosition()
      });
    if (i) {
      const a = this.input.slice(r.index, this.state.pos).replace(/[_n]/g, "");
      this.finishToken(133, a);
      return;
    }
    this.finishToken(132, n);
  }
  readNumber(t) {
    const r = this.state.pos, i = this.state.curPosition();
    let n = !1, s = !1, a = !1, o = !1, l = !1;
    !t && this.readInt(10) === null && this.raise(nt.InvalidNumber, {
      at: this.state.curPosition()
    });
    const u = this.state.pos - r >= 2 && this.input.charCodeAt(r) === 48;
    if (u) {
      const m = this.input.slice(r, this.state.pos);
      if (this.recordStrictModeErrors(nt.StrictOctalLiteral, {
        at: i
      }), !this.state.strict) {
        const g = m.indexOf("_");
        g > 0 && this.raise(nt.ZeroDigitNumericSeparator, {
          at: oa(i, g)
        });
      }
      l = u && !/[89]/.test(m);
    }
    let c = this.input.charCodeAt(this.state.pos);
    if (c === 46 && !l && (++this.state.pos, this.readInt(10), n = !0, c = this.input.charCodeAt(this.state.pos)), (c === 69 || c === 101) && !l && (c = this.input.charCodeAt(++this.state.pos), (c === 43 || c === 45) && ++this.state.pos, this.readInt(10) === null && this.raise(nt.InvalidOrMissingExponent, {
      at: i
    }), n = !0, o = !0, c = this.input.charCodeAt(this.state.pos)), c === 110 && ((n || u) && this.raise(nt.InvalidBigIntLiteral, {
      at: i
    }), ++this.state.pos, s = !0), c === 109 && (this.expectPlugin("decimal", this.state.curPosition()), (o || u) && this.raise(nt.InvalidDecimal, {
      at: i
    }), ++this.state.pos, a = !0), rf(this.codePointAtPos(this.state.pos)))
      throw this.raise(nt.NumberIdentifier, {
        at: this.state.curPosition()
      });
    const f = this.input.slice(r, this.state.pos).replace(/[_mn]/g, "");
    if (s) {
      this.finishToken(133, f);
      return;
    }
    if (a) {
      this.finishToken(134, f);
      return;
    }
    const h = l ? parseInt(f, 8) : parseFloat(f);
    this.finishToken(132, h);
  }
  readCodePoint(t) {
    const {
      code: r,
      pos: i
    } = vle(this.input, this.state.pos, this.state.lineStart, this.state.curLine, t, this.errorHandlers_readCodePoint);
    return this.state.pos = i, r;
  }
  readString(t) {
    const {
      str: r,
      pos: i,
      curLine: n,
      lineStart: s
    } = Gq(t === 34 ? "double" : "single", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_string);
    this.state.pos = i + 1, this.state.lineStart = s, this.state.curLine = n, this.finishToken(131, r);
  }
  readTemplateContinuation() {
    this.match(8) || this.unexpected(null, 8), this.state.pos--, this.readTemplateToken();
  }
  readTemplateToken() {
    const t = this.input[this.state.pos], {
      str: r,
      firstInvalidLoc: i,
      pos: n,
      curLine: s,
      lineStart: a
    } = Gq("template", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_template);
    this.state.pos = n + 1, this.state.lineStart = a, this.state.curLine = s, i && (this.state.firstInvalidTemplateEscapePos = new _h(i.curLine, i.pos - i.lineStart, i.pos)), this.input.codePointAt(n) === 96 ? this.finishToken(24, i ? null : t + r + "`") : (this.state.pos++, this.finishToken(25, i ? null : t + r + "${"));
  }
  recordStrictModeErrors(t, {
    at: r
  }) {
    const i = r.index;
    this.state.strict && !this.state.strictErrors.has(i) ? this.raise(t, {
      at: r
    }) : this.state.strictErrors.set(i, [t, r]);
  }
  readWord1(t) {
    this.state.containsEsc = !1;
    let r = "";
    const i = this.state.pos;
    let n = this.state.pos;
    for (t !== void 0 && (this.state.pos += t <= 65535 ? 1 : 2); this.state.pos < this.length; ) {
      const s = this.codePointAtPos(this.state.pos);
      if (Ey(s))
        this.state.pos += s <= 65535 ? 1 : 2;
      else if (s === 92) {
        this.state.containsEsc = !0, r += this.input.slice(n, this.state.pos);
        const a = this.state.curPosition(), o = this.state.pos === i ? rf : Ey;
        if (this.input.charCodeAt(++this.state.pos) !== 117) {
          this.raise(nt.MissingUnicodeEscape, {
            at: this.state.curPosition()
          }), n = this.state.pos - 1;
          continue;
        }
        ++this.state.pos;
        const l = this.readCodePoint(!0);
        l !== null && (o(l) || this.raise(nt.EscapedCharNotAnIdentifier, {
          at: a
        }), r += String.fromCodePoint(l)), n = this.state.pos;
      } else
        break;
    }
    return r + this.input.slice(n, this.state.pos);
  }
  readWord(t) {
    const r = this.readWord1(t), i = m4.get(r);
    i !== void 0 ? this.finishToken(i, Ch(i)) : this.finishToken(130, r);
  }
  checkKeywordEscapes() {
    const {
      type: t
    } = this.state;
    S4(t) && this.state.containsEsc && this.raise(nt.InvalidEscapedReservedWord, {
      at: this.state.startLoc,
      reservedWord: Ch(t)
    });
  }
  raise(t, r) {
    const {
      at: i
    } = r, n = rw(r, OEe), s = i instanceof _h ? i : i.loc.start, a = t({
      loc: s,
      details: n
    });
    if (!this.options.errorRecovery)
      throw a;
    return this.isLookahead || this.state.errors.push(a), a;
  }
  raiseOverwrite(t, r) {
    const {
      at: i
    } = r, n = rw(r, NEe), s = i instanceof _h ? i : i.loc.start, a = s.index, o = this.state.errors;
    for (let l = o.length - 1; l >= 0; l--) {
      const u = o[l];
      if (u.loc.index === a)
        return o[l] = t({
          loc: s,
          details: n
        });
      if (u.loc.index < a)
        break;
    }
    return this.raise(t, r);
  }
  updateContext(t) {
  }
  unexpected(t, r) {
    throw this.raise(nt.UnexpectedToken, {
      expected: r ? Ch(r) : null,
      at: t != null ? t : this.state.startLoc
    });
  }
  expectPlugin(t, r) {
    if (this.hasPlugin(t))
      return !0;
    throw this.raise(nt.MissingPlugin, {
      at: r != null ? r : this.state.startLoc,
      missingPlugin: [t]
    });
  }
  expectOnePlugin(t) {
    if (!t.some((r) => this.hasPlugin(r)))
      throw this.raise(nt.MissingOneOfPlugins, {
        at: this.state.startLoc,
        missingPlugin: t
      });
  }
  errorBuilder(t) {
    return (r, i, n) => {
      this.raise(t, {
        at: Jg(r, i, n)
      });
    };
  }
}, MEe = class {
  constructor() {
    this.privateNames = /* @__PURE__ */ new Set(), this.loneAccessors = /* @__PURE__ */ new Map(), this.undefinedPrivateNames = /* @__PURE__ */ new Map();
  }
}, REe = class {
  constructor(t) {
    this.parser = void 0, this.stack = [], this.undefinedPrivateNames = /* @__PURE__ */ new Map(), this.parser = t;
  }
  current() {
    return this.stack[this.stack.length - 1];
  }
  enter() {
    this.stack.push(new MEe());
  }
  exit() {
    const t = this.stack.pop(), r = this.current();
    for (const [i, n] of Array.from(t.undefinedPrivateNames))
      r ? r.undefinedPrivateNames.has(i) || r.undefinedPrivateNames.set(i, n) : this.parser.raise(nt.InvalidPrivateFieldResolution, {
        at: n,
        identifierName: i
      });
  }
  declarePrivateName(t, r, i) {
    const {
      privateNames: n,
      loneAccessors: s,
      undefinedPrivateNames: a
    } = this.current();
    let o = n.has(t);
    if (r & ZL) {
      const l = o && s.get(t);
      if (l) {
        const u = l & lw, c = r & lw, f = l & ZL, h = r & ZL;
        o = f === h || u !== c, o || s.delete(t);
      } else
        o || s.set(t, r);
    }
    o && this.parser.raise(nt.PrivateNameRedeclaration, {
      at: i,
      identifierName: t
    }), n.add(t), a.delete(t);
  }
  usePrivateName(t, r) {
    let i;
    for (i of this.stack)
      if (i.privateNames.has(t))
        return;
    i ? i.undefinedPrivateNames.set(t, r) : this.parser.raise(nt.InvalidPrivateFieldResolution, {
      at: r,
      identifierName: t
    });
  }
};
const BEe = 0, Tle = 1, O4 = 2, Sle = 3;
let tC = class {
  constructor(t = BEe) {
    this.type = void 0, this.type = t;
  }
  canBeArrowParameterDeclaration() {
    return this.type === O4 || this.type === Tle;
  }
  isCertainlyParameterDeclaration() {
    return this.type === Sle;
  }
}, xle = class extends tC {
  constructor(t) {
    super(t), this.declarationErrors = /* @__PURE__ */ new Map();
  }
  recordDeclarationError(t, {
    at: r
  }) {
    const i = r.index;
    this.declarationErrors.set(i, [t, r]);
  }
  clearDeclarationError(t) {
    this.declarationErrors.delete(t);
  }
  iterateErrors(t) {
    this.declarationErrors.forEach(t);
  }
}, FEe = class {
  constructor(t) {
    this.parser = void 0, this.stack = [new tC()], this.parser = t;
  }
  enter(t) {
    this.stack.push(t);
  }
  exit() {
    this.stack.pop();
  }
  recordParameterInitializerError(t, {
    at: r
  }) {
    const i = {
      at: r.loc.start
    }, {
      stack: n
    } = this;
    let s = n.length - 1, a = n[s];
    for (; !a.isCertainlyParameterDeclaration(); ) {
      if (a.canBeArrowParameterDeclaration())
        a.recordDeclarationError(t, i);
      else
        return;
      a = n[--s];
    }
    this.parser.raise(t, i);
  }
  recordArrowParameterBindingError(t, {
    at: r
  }) {
    const {
      stack: i
    } = this, n = i[i.length - 1], s = {
      at: r.loc.start
    };
    if (n.isCertainlyParameterDeclaration())
      this.parser.raise(t, s);
    else if (n.canBeArrowParameterDeclaration())
      n.recordDeclarationError(t, s);
    else
      return;
  }
  recordAsyncArrowParametersError({
    at: t
  }) {
    const {
      stack: r
    } = this;
    let i = r.length - 1, n = r[i];
    for (; n.canBeArrowParameterDeclaration(); )
      n.type === O4 && n.recordDeclarationError(nt.AwaitBindingIdentifier, {
        at: t
      }), n = r[--i];
  }
  validateAsPattern() {
    const {
      stack: t
    } = this, r = t[t.length - 1];
    r.canBeArrowParameterDeclaration() && r.iterateErrors(([i, n]) => {
      this.parser.raise(i, {
        at: n
      });
      let s = t.length - 2, a = t[s];
      for (; a.canBeArrowParameterDeclaration(); )
        a.clearDeclarationError(n.index), a = t[--s];
    });
  }
};
function jEe() {
  return new tC(Sle);
}
function $Ee() {
  return new xle(Tle);
}
function UEe() {
  return new xle(O4);
}
function Ele() {
  return new tC();
}
const Ay = 0, Ple = 1, rC = 2, wle = 4, ey = 8;
let qEe = class {
  constructor() {
    this.stacks = [];
  }
  enter(t) {
    this.stacks.push(t);
  }
  exit() {
    this.stacks.pop();
  }
  currentFlags() {
    return this.stacks[this.stacks.length - 1];
  }
  get hasAwait() {
    return (this.currentFlags() & rC) > 0;
  }
  get hasYield() {
    return (this.currentFlags() & Ple) > 0;
  }
  get hasReturn() {
    return (this.currentFlags() & wle) > 0;
  }
  get hasIn() {
    return (this.currentFlags() & ey) > 0;
  }
};
function rP(e, t) {
  return (e ? rC : 0) | (t ? Ple : 0);
}
let VEe = class extends LEe {
  addExtra(t, r, i, n = !0) {
    if (!t)
      return;
    const s = t.extra = t.extra || {};
    n ? s[r] = i : Object.defineProperty(s, r, {
      enumerable: n,
      value: i
    });
  }
  isContextual(t) {
    return this.state.type === t && !this.state.containsEsc;
  }
  isUnparsedContextual(t, r) {
    const i = t + r.length;
    if (this.input.slice(t, i) === r) {
      const n = this.input.charCodeAt(i);
      return !(Ey(n) || (n & 64512) === 55296);
    }
    return !1;
  }
  isLookaheadContextual(t) {
    const r = this.nextTokenStart();
    return this.isUnparsedContextual(r, t);
  }
  eatContextual(t) {
    return this.isContextual(t) ? (this.next(), !0) : !1;
  }
  expectContextual(t, r) {
    if (!this.eatContextual(t)) {
      if (r != null)
        throw this.raise(r, {
          at: this.state.startLoc
        });
      this.unexpected(null, t);
    }
  }
  canInsertSemicolon() {
    return this.match(137) || this.match(8) || this.hasPrecedingLineBreak();
  }
  hasPrecedingLineBreak() {
    return k4.test(this.input.slice(this.state.lastTokEndLoc.index, this.state.start));
  }
  hasFollowingLineBreak() {
    return Kq.lastIndex = this.state.end, Kq.test(this.input);
  }
  isLineTerminator() {
    return this.eat(13) || this.canInsertSemicolon();
  }
  semicolon(t = !0) {
    (t ? this.isLineTerminator() : this.eat(13)) || this.raise(nt.MissingSemicolon, {
      at: this.state.lastTokEndLoc
    });
  }
  expect(t, r) {
    this.eat(t) || this.unexpected(r, t);
  }
  tryParse(t, r = this.state.clone()) {
    const i = {
      node: null
    };
    try {
      const n = t((s = null) => {
        throw i.node = s, i;
      });
      if (this.state.errors.length > r.errors.length) {
        const s = this.state;
        return this.state = r, this.state.tokensLength = s.tokensLength, {
          node: n,
          error: s.errors[r.errors.length],
          thrown: !1,
          aborted: !1,
          failState: s
        };
      }
      return {
        node: n,
        error: null,
        thrown: !1,
        aborted: !1,
        failState: null
      };
    } catch (n) {
      const s = this.state;
      if (this.state = r, n instanceof SyntaxError)
        return {
          node: null,
          error: n,
          thrown: !0,
          aborted: !1,
          failState: s
        };
      if (n === i)
        return {
          node: i.node,
          error: null,
          thrown: !1,
          aborted: !0,
          failState: s
        };
      throw n;
    }
  }
  checkExpressionErrors(t, r) {
    if (!t)
      return !1;
    const {
      shorthandAssignLoc: i,
      doubleProtoLoc: n,
      privateKeyLoc: s,
      optionalParametersLoc: a
    } = t, o = !!i || !!n || !!a || !!s;
    if (!r)
      return o;
    i != null && this.raise(nt.InvalidCoverInitializedName, {
      at: i
    }), n != null && this.raise(nt.DuplicateProto, {
      at: n
    }), s != null && this.raise(nt.UnexpectedPrivateField, {
      at: s
    }), a != null && this.unexpected(a);
  }
  isLiteralPropertyName() {
    return rle(this.state.type);
  }
  isPrivateName(t) {
    return t.type === "PrivateName";
  }
  getPrivateNameSV(t) {
    return t.id.name;
  }
  hasPropertyAsPrivateName(t) {
    return (t.type === "MemberExpression" || t.type === "OptionalMemberExpression") && this.isPrivateName(t.property);
  }
  isObjectProperty(t) {
    return t.type === "ObjectProperty";
  }
  isObjectMethod(t) {
    return t.type === "ObjectMethod";
  }
  initializeScopes(t = this.options.sourceType === "module") {
    const r = this.state.labels;
    this.state.labels = [];
    const i = this.exportedIdentifiers;
    this.exportedIdentifiers = /* @__PURE__ */ new Set();
    const n = this.inModule;
    this.inModule = t;
    const s = this.scope, a = this.getScopeHandler();
    this.scope = new a(this, t);
    const o = this.prodParam;
    this.prodParam = new qEe();
    const l = this.classScope;
    this.classScope = new REe(this);
    const u = this.expressionScope;
    return this.expressionScope = new FEe(this), () => {
      this.state.labels = r, this.exportedIdentifiers = i, this.inModule = n, this.scope = s, this.prodParam = o, this.classScope = l, this.expressionScope = u;
    };
  }
  enterInitialScopes() {
    let t = Ay;
    this.inModule && (t |= rC), this.scope.enter(py), this.prodParam.enter(t);
  }
  checkDestructuringPrivate(t) {
    const {
      privateKeyLoc: r
    } = t;
    r !== null && this.expectPlugin("destructuringPrivate", r);
  }
}, iP = class {
  constructor() {
    this.shorthandAssignLoc = null, this.doubleProtoLoc = null, this.privateKeyLoc = null, this.optionalParametersLoc = null;
  }
}, uw = class {
  constructor(t, r, i) {
    this.type = "", this.start = r, this.end = 0, this.loc = new iw(i), t != null && t.options.ranges && (this.range = [r, 0]), t != null && t.filename && (this.loc.filename = t.filename);
  }
};
const N4 = uw.prototype;
N4.__clone = function() {
  const e = new uw(void 0, this.start, this.loc.start), t = Object.keys(this);
  for (let r = 0, i = t.length; r < i; r++) {
    const n = t[r];
    n !== "leadingComments" && n !== "trailingComments" && n !== "innerComments" && (e[n] = this[n]);
  }
  return e;
};
function WEe(e) {
  return bf(e);
}
function bf(e) {
  const {
    type: t,
    start: r,
    end: i,
    loc: n,
    range: s,
    extra: a,
    name: o
  } = e, l = Object.create(N4);
  return l.type = t, l.start = r, l.end = i, l.loc = n, l.range = s, l.extra = a, l.name = o, t === "Placeholder" && (l.expectedNode = e.expectedNode), l;
}
function HEe(e) {
  const {
    type: t,
    start: r,
    end: i,
    loc: n,
    range: s,
    extra: a
  } = e;
  if (t === "Placeholder")
    return WEe(e);
  const o = Object.create(N4);
  return o.type = t, o.start = r, o.end = i, o.loc = n, o.range = s, e.raw !== void 0 ? o.raw = e.raw : o.extra = a, o.value = e.value, o;
}
let KEe = class extends VEe {
  startNode() {
    return new uw(this, this.state.start, this.state.startLoc);
  }
  startNodeAt(t) {
    return new uw(this, t.index, t);
  }
  startNodeAtNode(t) {
    return this.startNodeAt(t.loc.start);
  }
  finishNode(t, r) {
    return this.finishNodeAt(t, r, this.state.lastTokEndLoc);
  }
  finishNodeAt(t, r, i) {
    return t.type = r, t.end = i.index, t.loc.end = i, this.options.ranges && (t.range[1] = i.index), this.options.attachComment && this.processComment(t), t;
  }
  resetStartLocation(t, r) {
    t.start = r.index, t.loc.start = r, this.options.ranges && (t.range[0] = r.index);
  }
  resetEndLocation(t, r = this.state.lastTokEndLoc) {
    t.end = r.index, t.loc.end = r, this.options.ranges && (t.range[1] = r.index);
  }
  resetStartLocationFromNode(t, r) {
    this.resetStartLocation(t, r.loc.start);
  }
};
const zEe = /* @__PURE__ */ new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "static", "string", "true", "typeof", "void"]);
var cne;
const ur = lf(cne || (cne = at(["flow"])))({
  AmbiguousConditionalArrow: "Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.",
  AmbiguousDeclareModuleKind: "Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.",
  AssignReservedType: ({
    reservedType: e
  }) => "Cannot overwrite reserved type ".concat(e, "."),
  DeclareClassElement: "The `declare` modifier can only appear on class fields.",
  DeclareClassFieldInitializer: "Initializers are not allowed in fields with the `declare` modifier.",
  DuplicateDeclareModuleExports: "Duplicate `declare module.exports` statement.",
  EnumBooleanMemberNotInitialized: ({
    memberName: e,
    enumName: t
  }) => "Boolean enum members need to be initialized. Use either `".concat(e, " = true,` or `").concat(e, " = false,` in enum `").concat(t, "`."),
  EnumDuplicateMemberName: ({
    memberName: e,
    enumName: t
  }) => "Enum member names need to be unique, but the name `".concat(e, "` has already been used before in enum `").concat(t, "`."),
  EnumInconsistentMemberValues: ({
    enumName: e
  }) => "Enum `".concat(e, "` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers."),
  EnumInvalidExplicitType: ({
    invalidEnumType: e,
    enumName: t
  }) => "Enum type `".concat(e, "` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `").concat(t, "`."),
  EnumInvalidExplicitTypeUnknownSupplied: ({
    enumName: e
  }) => "Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `".concat(e, "`."),
  EnumInvalidMemberInitializerPrimaryType: ({
    enumName: e,
    memberName: t,
    explicitType: r
  }) => "Enum `".concat(e, "` has type `").concat(r, "`, so the initializer of `").concat(t, "` needs to be a ").concat(r, " literal."),
  EnumInvalidMemberInitializerSymbolType: ({
    enumName: e,
    memberName: t
  }) => "Symbol enum members cannot be initialized. Use `".concat(t, ",` in enum `").concat(e, "`."),
  EnumInvalidMemberInitializerUnknownType: ({
    enumName: e,
    memberName: t
  }) => "The enum member initializer for `".concat(t, "` needs to be a literal (either a boolean, number, or string) in enum `").concat(e, "`."),
  EnumInvalidMemberName: ({
    enumName: e,
    memberName: t,
    suggestion: r
  }) => "Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `".concat(t, "`, consider using `").concat(r, "`, in enum `").concat(e, "`."),
  EnumNumberMemberNotInitialized: ({
    enumName: e,
    memberName: t
  }) => "Number enum members need to be initialized, e.g. `".concat(t, " = 1` in enum `").concat(e, "`."),
  EnumStringMemberInconsistentlyInitailized: ({
    enumName: e
  }) => "String enum members need to consistently either all use initializers, or use no initializers, in enum `".concat(e, "`."),
  GetterMayNotHaveThisParam: "A getter cannot have a `this` parameter.",
  ImportReflectionHasImportType: "An `import module` declaration can not use `type` or `typeof` keyword.",
  ImportTypeShorthandOnlyInPureImport: "The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.",
  InexactInsideExact: "Explicit inexact syntax cannot appear inside an explicit exact object type.",
  InexactInsideNonObject: "Explicit inexact syntax cannot appear in class or interface definitions.",
  InexactVariance: "Explicit inexact syntax cannot have variance.",
  InvalidNonTypeImportInDeclareModule: "Imports within a `declare module` body must always be `import type` or `import typeof`.",
  MissingTypeParamDefault: "Type parameter declaration needs a default, since a preceding type parameter declaration has a default.",
  NestedDeclareModule: "`declare module` cannot be used inside another `declare module`.",
  NestedFlowComment: "Cannot have a flow comment inside another flow comment.",
  PatternIsOptional: Object.assign({
    message: "A binding pattern parameter cannot be optional in an implementation signature."
  }, {
    reasonCode: "OptionalBindingPattern"
  }),
  SetterMayNotHaveThisParam: "A setter cannot have a `this` parameter.",
  SpreadVariance: "Spread properties cannot have variance.",
  ThisParamAnnotationRequired: "A type annotation is required for the `this` parameter.",
  ThisParamBannedInConstructor: "Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.",
  ThisParamMayNotBeOptional: "The `this` parameter cannot be optional.",
  ThisParamMustBeFirst: "The `this` parameter must be the first function parameter.",
  ThisParamNoDefault: "The `this` parameter may not have a default value.",
  TypeBeforeInitializer: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",
  TypeCastInPattern: "The type cast expression is expected to be wrapped with parenthesis.",
  UnexpectedExplicitInexactInObject: "Explicit inexact syntax must appear at the end of an inexact object.",
  UnexpectedReservedType: ({
    reservedType: e
  }) => "Unexpected reserved type ".concat(e, "."),
  UnexpectedReservedUnderscore: "`_` is only allowed as a type argument to call or new.",
  UnexpectedSpaceBetweenModuloChecks: "Spaces between `%` and `checks` are not allowed here.",
  UnexpectedSpreadType: "Spread operator cannot appear in class or interface definitions.",
  UnexpectedSubtractionOperand: 'Unexpected token, expected "number" or "bigint".',
  UnexpectedTokenAfterTypeParameter: "Expected an arrow function after this type parameter declaration.",
  UnexpectedTypeParameterBeforeAsyncArrowFunction: "Type parameters must come after the async keyword, e.g. instead of `<T> async () => {}`, use `async <T>() => {}`.",
  UnsupportedDeclareExportKind: ({
    unsupportedExportKind: e,
    suggestion: t
  }) => "`declare export ".concat(e, "` is not supported. Use `").concat(t, "` instead."),
  UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.",
  UnterminatedFlowComment: "Unterminated flow-comment."
});
function GEe(e) {
  return e.type === "DeclareExportAllDeclaration" || e.type === "DeclareExportDeclaration" && (!e.declaration || e.declaration.type !== "TypeAlias" && e.declaration.type !== "InterfaceDeclaration");
}
function rM(e) {
  return e.importKind === "type" || e.importKind === "typeof";
}
function Yq(e) {
  return op(e) && e !== 97;
}
const YEe = {
  const: "declare export var",
  let: "declare export var",
  type: "export type",
  interface: "export interface"
};
function XEe(e, t) {
  const r = [], i = [];
  for (let n = 0; n < e.length; n++)
    (t(e[n], n, e) ? r : i).push(e[n]);
  return [r, i];
}
const JEe = /\*?\s*@((?:no)?flow)\b/;
var QEe = (e) => class extends e {
  constructor(...r) {
    super(...r), this.flowPragma = void 0;
  }
  getScopeHandler() {
    return SEe;
  }
  shouldParseTypes() {
    return this.getPluginOption("flow", "all") || this.flowPragma === "flow";
  }
  shouldParseEnums() {
    return !!this.getPluginOption("flow", "enums");
  }
  finishToken(r, i) {
    r !== 131 && r !== 13 && r !== 28 && this.flowPragma === void 0 && (this.flowPragma = null), super.finishToken(r, i);
  }
  addComment(r) {
    if (this.flowPragma === void 0) {
      const i = JEe.exec(r.value);
      if (i)
        if (i[1] === "flow")
          this.flowPragma = "flow";
        else if (i[1] === "noflow")
          this.flowPragma = "noflow";
        else
          throw new Error("Unexpected flow pragma");
    }
    super.addComment(r);
  }
  flowParseTypeInitialiser(r) {
    const i = this.state.inType;
    this.state.inType = !0, this.expect(r || 14);
    const n = this.flowParseType();
    return this.state.inType = i, n;
  }
  flowParsePredicate() {
    const r = this.startNode(), i = this.state.startLoc;
    return this.next(), this.expectContextual(108), this.state.lastTokStart > i.index + 1 && this.raise(ur.UnexpectedSpaceBetweenModuloChecks, {
      at: i
    }), this.eat(10) ? (r.value = super.parseExpression(), this.expect(11), this.finishNode(r, "DeclaredPredicate")) : this.finishNode(r, "InferredPredicate");
  }
  flowParseTypeAndPredicateInitialiser() {
    const r = this.state.inType;
    this.state.inType = !0, this.expect(14);
    let i = null, n = null;
    return this.match(54) ? (this.state.inType = r, n = this.flowParsePredicate()) : (i = this.flowParseType(), this.state.inType = r, this.match(54) && (n = this.flowParsePredicate())), [i, n];
  }
  flowParseDeclareClass(r) {
    return this.next(), this.flowParseInterfaceish(r, !0), this.finishNode(r, "DeclareClass");
  }
  flowParseDeclareFunction(r) {
    this.next();
    const i = r.id = this.parseIdentifier(), n = this.startNode(), s = this.startNode();
    this.match(47) ? n.typeParameters = this.flowParseTypeParameterDeclaration() : n.typeParameters = null, this.expect(10);
    const a = this.flowParseFunctionTypeParams();
    return n.params = a.params, n.rest = a.rest, n.this = a._this, this.expect(11), [n.returnType, r.predicate] = this.flowParseTypeAndPredicateInitialiser(), s.typeAnnotation = this.finishNode(n, "FunctionTypeAnnotation"), i.typeAnnotation = this.finishNode(s, "TypeAnnotation"), this.resetEndLocation(i), this.semicolon(), this.scope.declareName(r.id.name, mEe, r.id.loc.start), this.finishNode(r, "DeclareFunction");
  }
  flowParseDeclare(r, i) {
    if (this.match(80))
      return this.flowParseDeclareClass(r);
    if (this.match(68))
      return this.flowParseDeclareFunction(r);
    if (this.match(74))
      return this.flowParseDeclareVariable(r);
    if (this.eatContextual(125))
      return this.match(16) ? this.flowParseDeclareModuleExports(r) : (i && this.raise(ur.NestedDeclareModule, {
        at: this.state.lastTokStartLoc
      }), this.flowParseDeclareModule(r));
    if (this.isContextual(128))
      return this.flowParseDeclareTypeAlias(r);
    if (this.isContextual(129))
      return this.flowParseDeclareOpaqueType(r);
    if (this.isContextual(127))
      return this.flowParseDeclareInterface(r);
    if (this.match(82))
      return this.flowParseDeclareExportDeclaration(r, i);
    this.unexpected();
  }
  flowParseDeclareVariable(r) {
    return this.next(), r.id = this.flowParseTypeAnnotatableIdentifier(!0), this.scope.declareName(r.id.name, ow, r.id.loc.start), this.semicolon(), this.finishNode(r, "DeclareVariable");
  }
  flowParseDeclareModule(r) {
    this.scope.enter(cy), this.match(131) ? r.id = super.parseExprAtom() : r.id = this.parseIdentifier();
    const i = r.body = this.startNode(), n = i.body = [];
    for (this.expect(5); !this.match(8); ) {
      let o = this.startNode();
      this.match(83) ? (this.next(), !this.isContextual(128) && !this.match(87) && this.raise(ur.InvalidNonTypeImportInDeclareModule, {
        at: this.state.lastTokStartLoc
      }), super.parseImport(o)) : (this.expectContextual(123, ur.UnsupportedStatementInDeclareModule), o = this.flowParseDeclare(o, !0)), n.push(o);
    }
    this.scope.exit(), this.expect(8), this.finishNode(i, "BlockStatement");
    let s = null, a = !1;
    return n.forEach((o) => {
      GEe(o) ? (s === "CommonJS" && this.raise(ur.AmbiguousDeclareModuleKind, {
        at: o
      }), s = "ES") : o.type === "DeclareModuleExports" && (a && this.raise(ur.DuplicateDeclareModuleExports, {
        at: o
      }), s === "ES" && this.raise(ur.AmbiguousDeclareModuleKind, {
        at: o
      }), s = "CommonJS", a = !0);
    }), r.kind = s || "CommonJS", this.finishNode(r, "DeclareModule");
  }
  flowParseDeclareExportDeclaration(r, i) {
    if (this.expect(82), this.eat(65))
      return this.match(68) || this.match(80) ? r.declaration = this.flowParseDeclare(this.startNode()) : (r.declaration = this.flowParseType(), this.semicolon()), r.default = !0, this.finishNode(r, "DeclareExportDeclaration");
    if (this.match(75) || this.isLet() || (this.isContextual(128) || this.isContextual(127)) && !i) {
      const n = this.state.value;
      throw this.raise(ur.UnsupportedDeclareExportKind, {
        at: this.state.startLoc,
        unsupportedExportKind: n,
        suggestion: YEe[n]
      });
    }
    if (this.match(74) || this.match(68) || this.match(80) || this.isContextual(129))
      return r.declaration = this.flowParseDeclare(this.startNode()), r.default = !1, this.finishNode(r, "DeclareExportDeclaration");
    if (this.match(55) || this.match(5) || this.isContextual(127) || this.isContextual(128) || this.isContextual(129))
      return r = this.parseExport(r, null), r.type === "ExportNamedDeclaration" && (r.type = "ExportDeclaration", r.default = !1, delete r.exportKind), r.type = "Declare" + r.type, r;
    this.unexpected();
  }
  flowParseDeclareModuleExports(r) {
    return this.next(), this.expectContextual(109), r.typeAnnotation = this.flowParseTypeAnnotation(), this.semicolon(), this.finishNode(r, "DeclareModuleExports");
  }
  flowParseDeclareTypeAlias(r) {
    this.next();
    const i = this.flowParseTypeAlias(r);
    return i.type = "DeclareTypeAlias", i;
  }
  flowParseDeclareOpaqueType(r) {
    this.next();
    const i = this.flowParseOpaqueType(r, !0);
    return i.type = "DeclareOpaqueType", i;
  }
  flowParseDeclareInterface(r) {
    return this.next(), this.flowParseInterfaceish(r, !1), this.finishNode(r, "DeclareInterface");
  }
  flowParseInterfaceish(r, i) {
    if (r.id = this.flowParseRestrictedIdentifier(!i, !0), this.scope.declareName(r.id.name, i ? dle : wy, r.id.loc.start), this.match(47) ? r.typeParameters = this.flowParseTypeParameterDeclaration() : r.typeParameters = null, r.extends = [], r.implements = [], r.mixins = [], this.eat(81))
      do
        r.extends.push(this.flowParseInterfaceExtends());
      while (!i && this.eat(12));
    if (i) {
      if (this.eatContextual(115))
        do
          r.mixins.push(this.flowParseInterfaceExtends());
        while (this.eat(12));
      if (this.eatContextual(111))
        do
          r.implements.push(this.flowParseInterfaceExtends());
        while (this.eat(12));
    }
    r.body = this.flowParseObjectType({
      allowStatic: i,
      allowExact: !1,
      allowSpread: !1,
      allowProto: i,
      allowInexact: !1
    });
  }
  flowParseInterfaceExtends() {
    const r = this.startNode();
    return r.id = this.flowParseQualifiedTypeIdentifier(), this.match(47) ? r.typeParameters = this.flowParseTypeParameterInstantiation() : r.typeParameters = null, this.finishNode(r, "InterfaceExtends");
  }
  flowParseInterface(r) {
    return this.flowParseInterfaceish(r, !1), this.finishNode(r, "InterfaceDeclaration");
  }
  checkNotUnderscore(r) {
    r === "_" && this.raise(ur.UnexpectedReservedUnderscore, {
      at: this.state.startLoc
    });
  }
  checkReservedType(r, i, n) {
    zEe.has(r) && this.raise(n ? ur.AssignReservedType : ur.UnexpectedReservedType, {
      at: i,
      reservedType: r
    });
  }
  flowParseRestrictedIdentifier(r, i) {
    return this.checkReservedType(this.state.value, this.state.startLoc, i), this.parseIdentifier(r);
  }
  flowParseTypeAlias(r) {
    return r.id = this.flowParseRestrictedIdentifier(!1, !0), this.scope.declareName(r.id.name, wy, r.id.loc.start), this.match(47) ? r.typeParameters = this.flowParseTypeParameterDeclaration() : r.typeParameters = null, r.right = this.flowParseTypeInitialiser(29), this.semicolon(), this.finishNode(r, "TypeAlias");
  }
  flowParseOpaqueType(r, i) {
    return this.expectContextual(128), r.id = this.flowParseRestrictedIdentifier(!0, !0), this.scope.declareName(r.id.name, wy, r.id.loc.start), this.match(47) ? r.typeParameters = this.flowParseTypeParameterDeclaration() : r.typeParameters = null, r.supertype = null, this.match(14) && (r.supertype = this.flowParseTypeInitialiser(14)), r.impltype = null, i || (r.impltype = this.flowParseTypeInitialiser(29)), this.semicolon(), this.finishNode(r, "OpaqueType");
  }
  flowParseTypeParameter(r = !1) {
    const i = this.state.startLoc, n = this.startNode(), s = this.flowParseVariance(), a = this.flowParseTypeAnnotatableIdentifier();
    return n.name = a.name, n.variance = s, n.bound = a.typeAnnotation, this.match(29) ? (this.eat(29), n.default = this.flowParseType()) : r && this.raise(ur.MissingTypeParamDefault, {
      at: i
    }), this.finishNode(n, "TypeParameter");
  }
  flowParseTypeParameterDeclaration() {
    const r = this.state.inType, i = this.startNode();
    i.params = [], this.state.inType = !0, this.match(47) || this.match(140) ? this.next() : this.unexpected();
    let n = !1;
    do {
      const s = this.flowParseTypeParameter(n);
      i.params.push(s), s.default && (n = !0), this.match(48) || this.expect(12);
    } while (!this.match(48));
    return this.expect(48), this.state.inType = r, this.finishNode(i, "TypeParameterDeclaration");
  }
  flowParseTypeParameterInstantiation() {
    const r = this.startNode(), i = this.state.inType;
    r.params = [], this.state.inType = !0, this.expect(47);
    const n = this.state.noAnonFunctionType;
    for (this.state.noAnonFunctionType = !1; !this.match(48); )
      r.params.push(this.flowParseType()), this.match(48) || this.expect(12);
    return this.state.noAnonFunctionType = n, this.expect(48), this.state.inType = i, this.finishNode(r, "TypeParameterInstantiation");
  }
  flowParseTypeParameterInstantiationCallOrNew() {
    const r = this.startNode(), i = this.state.inType;
    for (r.params = [], this.state.inType = !0, this.expect(47); !this.match(48); )
      r.params.push(this.flowParseTypeOrImplicitInstantiation()), this.match(48) || this.expect(12);
    return this.expect(48), this.state.inType = i, this.finishNode(r, "TypeParameterInstantiation");
  }
  flowParseInterfaceType() {
    const r = this.startNode();
    if (this.expectContextual(127), r.extends = [], this.eat(81))
      do
        r.extends.push(this.flowParseInterfaceExtends());
      while (this.eat(12));
    return r.body = this.flowParseObjectType({
      allowStatic: !1,
      allowExact: !1,
      allowSpread: !1,
      allowProto: !1,
      allowInexact: !1
    }), this.finishNode(r, "InterfaceTypeAnnotation");
  }
  flowParseObjectPropertyKey() {
    return this.match(132) || this.match(131) ? super.parseExprAtom() : this.parseIdentifier(!0);
  }
  flowParseObjectTypeIndexer(r, i, n) {
    return r.static = i, this.lookahead().type === 14 ? (r.id = this.flowParseObjectPropertyKey(), r.key = this.flowParseTypeInitialiser()) : (r.id = null, r.key = this.flowParseType()), this.expect(3), r.value = this.flowParseTypeInitialiser(), r.variance = n, this.finishNode(r, "ObjectTypeIndexer");
  }
  flowParseObjectTypeInternalSlot(r, i) {
    return r.static = i, r.id = this.flowParseObjectPropertyKey(), this.expect(3), this.expect(3), this.match(47) || this.match(10) ? (r.method = !0, r.optional = !1, r.value = this.flowParseObjectTypeMethodish(this.startNodeAt(r.loc.start))) : (r.method = !1, this.eat(17) && (r.optional = !0), r.value = this.flowParseTypeInitialiser()), this.finishNode(r, "ObjectTypeInternalSlot");
  }
  flowParseObjectTypeMethodish(r) {
    for (r.params = [], r.rest = null, r.typeParameters = null, r.this = null, this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration()), this.expect(10), this.match(78) && (r.this = this.flowParseFunctionTypeParam(!0), r.this.name = null, this.match(11) || this.expect(12)); !this.match(11) && !this.match(21); )
      r.params.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
    return this.eat(21) && (r.rest = this.flowParseFunctionTypeParam(!1)), this.expect(11), r.returnType = this.flowParseTypeInitialiser(), this.finishNode(r, "FunctionTypeAnnotation");
  }
  flowParseObjectTypeCallProperty(r, i) {
    const n = this.startNode();
    return r.static = i, r.value = this.flowParseObjectTypeMethodish(n), this.finishNode(r, "ObjectTypeCallProperty");
  }
  flowParseObjectType({
    allowStatic: r,
    allowExact: i,
    allowSpread: n,
    allowProto: s,
    allowInexact: a
  }) {
    const o = this.state.inType;
    this.state.inType = !0;
    const l = this.startNode();
    l.callProperties = [], l.properties = [], l.indexers = [], l.internalSlots = [];
    let u, c, f = !1;
    for (i && this.match(6) ? (this.expect(6), u = 9, c = !0) : (this.expect(5), u = 8, c = !1), l.exact = c; !this.match(u); ) {
      let m = !1, g = null, y = null;
      const v = this.startNode();
      if (s && this.isContextual(116)) {
        const S = this.lookahead();
        S.type !== 14 && S.type !== 17 && (this.next(), g = this.state.startLoc, r = !1);
      }
      if (r && this.isContextual(104)) {
        const S = this.lookahead();
        S.type !== 14 && S.type !== 17 && (this.next(), m = !0);
      }
      const T = this.flowParseVariance();
      if (this.eat(0))
        g != null && this.unexpected(g), this.eat(0) ? (T && this.unexpected(T.loc.start), l.internalSlots.push(this.flowParseObjectTypeInternalSlot(v, m))) : l.indexers.push(this.flowParseObjectTypeIndexer(v, m, T));
      else if (this.match(10) || this.match(47))
        g != null && this.unexpected(g), T && this.unexpected(T.loc.start), l.callProperties.push(this.flowParseObjectTypeCallProperty(v, m));
      else {
        let S = "init";
        if (this.isContextual(98) || this.isContextual(103)) {
          const x = this.lookahead();
          rle(x.type) && (S = this.state.value, this.next());
        }
        const P = this.flowParseObjectTypeProperty(v, m, g, T, S, n, a != null ? a : !c);
        P === null ? (f = !0, y = this.state.lastTokStartLoc) : l.properties.push(P);
      }
      this.flowObjectTypeSemicolon(), y && !this.match(8) && !this.match(9) && this.raise(ur.UnexpectedExplicitInexactInObject, {
        at: y
      });
    }
    this.expect(u), n && (l.inexact = f);
    const h = this.finishNode(l, "ObjectTypeAnnotation");
    return this.state.inType = o, h;
  }
  flowParseObjectTypeProperty(r, i, n, s, a, o, l) {
    if (this.eat(21))
      return this.match(12) || this.match(13) || this.match(8) || this.match(9) ? (o ? l || this.raise(ur.InexactInsideExact, {
        at: this.state.lastTokStartLoc
      }) : this.raise(ur.InexactInsideNonObject, {
        at: this.state.lastTokStartLoc
      }), s && this.raise(ur.InexactVariance, {
        at: s
      }), null) : (o || this.raise(ur.UnexpectedSpreadType, {
        at: this.state.lastTokStartLoc
      }), n != null && this.unexpected(n), s && this.raise(ur.SpreadVariance, {
        at: s
      }), r.argument = this.flowParseType(), this.finishNode(r, "ObjectTypeSpreadProperty"));
    {
      r.key = this.flowParseObjectPropertyKey(), r.static = i, r.proto = n != null, r.kind = a;
      let u = !1;
      return this.match(47) || this.match(10) ? (r.method = !0, n != null && this.unexpected(n), s && this.unexpected(s.loc.start), r.value = this.flowParseObjectTypeMethodish(this.startNodeAt(r.loc.start)), (a === "get" || a === "set") && this.flowCheckGetterSetterParams(r), !o && r.key.name === "constructor" && r.value.this && this.raise(ur.ThisParamBannedInConstructor, {
        at: r.value.this
      })) : (a !== "init" && this.unexpected(), r.method = !1, this.eat(17) && (u = !0), r.value = this.flowParseTypeInitialiser(), r.variance = s), r.optional = u, this.finishNode(r, "ObjectTypeProperty");
    }
  }
  flowCheckGetterSetterParams(r) {
    const i = r.kind === "get" ? 0 : 1, n = r.value.params.length + (r.value.rest ? 1 : 0);
    r.value.this && this.raise(r.kind === "get" ? ur.GetterMayNotHaveThisParam : ur.SetterMayNotHaveThisParam, {
      at: r.value.this
    }), n !== i && this.raise(r.kind === "get" ? nt.BadGetterArity : nt.BadSetterArity, {
      at: r
    }), r.kind === "set" && r.value.rest && this.raise(nt.BadSetterRestParameter, {
      at: r
    });
  }
  flowObjectTypeSemicolon() {
    !this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9) && this.unexpected();
  }
  flowParseQualifiedTypeIdentifier(r, i) {
    var n;
    (n = r) != null || (r = this.state.startLoc);
    let s = i || this.flowParseRestrictedIdentifier(!0);
    for (; this.eat(16); ) {
      const a = this.startNodeAt(r);
      a.qualification = s, a.id = this.flowParseRestrictedIdentifier(!0), s = this.finishNode(a, "QualifiedTypeIdentifier");
    }
    return s;
  }
  flowParseGenericType(r, i) {
    const n = this.startNodeAt(r);
    return n.typeParameters = null, n.id = this.flowParseQualifiedTypeIdentifier(r, i), this.match(47) && (n.typeParameters = this.flowParseTypeParameterInstantiation()), this.finishNode(n, "GenericTypeAnnotation");
  }
  flowParseTypeofType() {
    const r = this.startNode();
    return this.expect(87), r.argument = this.flowParsePrimaryType(), this.finishNode(r, "TypeofTypeAnnotation");
  }
  flowParseTupleType() {
    const r = this.startNode();
    for (r.types = [], this.expect(0); this.state.pos < this.length && !this.match(3) && (r.types.push(this.flowParseType()), !this.match(3)); )
      this.expect(12);
    return this.expect(3), this.finishNode(r, "TupleTypeAnnotation");
  }
  flowParseFunctionTypeParam(r) {
    let i = null, n = !1, s = null;
    const a = this.startNode(), o = this.lookahead(), l = this.state.type === 78;
    return o.type === 14 || o.type === 17 ? (l && !r && this.raise(ur.ThisParamMustBeFirst, {
      at: a
    }), i = this.parseIdentifier(l), this.eat(17) && (n = !0, l && this.raise(ur.ThisParamMayNotBeOptional, {
      at: a
    })), s = this.flowParseTypeInitialiser()) : s = this.flowParseType(), a.name = i, a.optional = n, a.typeAnnotation = s, this.finishNode(a, "FunctionTypeParam");
  }
  reinterpretTypeAsFunctionTypeParam(r) {
    const i = this.startNodeAt(r.loc.start);
    return i.name = null, i.optional = !1, i.typeAnnotation = r, this.finishNode(i, "FunctionTypeParam");
  }
  flowParseFunctionTypeParams(r = []) {
    let i = null, n = null;
    for (this.match(78) && (n = this.flowParseFunctionTypeParam(!0), n.name = null, this.match(11) || this.expect(12)); !this.match(11) && !this.match(21); )
      r.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
    return this.eat(21) && (i = this.flowParseFunctionTypeParam(!1)), {
      params: r,
      rest: i,
      _this: n
    };
  }
  flowIdentToTypeAnnotation(r, i, n) {
    switch (n.name) {
      case "any":
        return this.finishNode(i, "AnyTypeAnnotation");
      case "bool":
      case "boolean":
        return this.finishNode(i, "BooleanTypeAnnotation");
      case "mixed":
        return this.finishNode(i, "MixedTypeAnnotation");
      case "empty":
        return this.finishNode(i, "EmptyTypeAnnotation");
      case "number":
        return this.finishNode(i, "NumberTypeAnnotation");
      case "string":
        return this.finishNode(i, "StringTypeAnnotation");
      case "symbol":
        return this.finishNode(i, "SymbolTypeAnnotation");
      default:
        return this.checkNotUnderscore(n.name), this.flowParseGenericType(r, n);
    }
  }
  flowParsePrimaryType() {
    const r = this.state.startLoc, i = this.startNode();
    let n, s, a = !1;
    const o = this.state.noAnonFunctionType;
    switch (this.state.type) {
      case 5:
        return this.flowParseObjectType({
          allowStatic: !1,
          allowExact: !1,
          allowSpread: !0,
          allowProto: !1,
          allowInexact: !0
        });
      case 6:
        return this.flowParseObjectType({
          allowStatic: !1,
          allowExact: !0,
          allowSpread: !0,
          allowProto: !1,
          allowInexact: !1
        });
      case 0:
        return this.state.noAnonFunctionType = !1, s = this.flowParseTupleType(), this.state.noAnonFunctionType = o, s;
      case 47:
        return i.typeParameters = this.flowParseTypeParameterDeclaration(), this.expect(10), n = this.flowParseFunctionTypeParams(), i.params = n.params, i.rest = n.rest, i.this = n._this, this.expect(11), this.expect(19), i.returnType = this.flowParseType(), this.finishNode(i, "FunctionTypeAnnotation");
      case 10:
        if (this.next(), !this.match(11) && !this.match(21))
          if (gi(this.state.type) || this.match(78)) {
            const l = this.lookahead().type;
            a = l !== 17 && l !== 14;
          } else
            a = !0;
        if (a) {
          if (this.state.noAnonFunctionType = !1, s = this.flowParseType(), this.state.noAnonFunctionType = o, this.state.noAnonFunctionType || !(this.match(12) || this.match(11) && this.lookahead().type === 19))
            return this.expect(11), s;
          this.eat(12);
        }
        return s ? n = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(s)]) : n = this.flowParseFunctionTypeParams(), i.params = n.params, i.rest = n.rest, i.this = n._this, this.expect(11), this.expect(19), i.returnType = this.flowParseType(), i.typeParameters = null, this.finishNode(i, "FunctionTypeAnnotation");
      case 131:
        return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation");
      case 85:
      case 86:
        return i.value = this.match(85), this.next(), this.finishNode(i, "BooleanLiteralTypeAnnotation");
      case 53:
        if (this.state.value === "-") {
          if (this.next(), this.match(132))
            return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", i);
          if (this.match(133))
            return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", i);
          throw this.raise(ur.UnexpectedSubtractionOperand, {
            at: this.state.startLoc
          });
        }
        this.unexpected();
        return;
      case 132:
        return this.parseLiteral(this.state.value, "NumberLiteralTypeAnnotation");
      case 133:
        return this.parseLiteral(this.state.value, "BigIntLiteralTypeAnnotation");
      case 88:
        return this.next(), this.finishNode(i, "VoidTypeAnnotation");
      case 84:
        return this.next(), this.finishNode(i, "NullLiteralTypeAnnotation");
      case 78:
        return this.next(), this.finishNode(i, "ThisTypeAnnotation");
      case 55:
        return this.next(), this.finishNode(i, "ExistsTypeAnnotation");
      case 87:
        return this.flowParseTypeofType();
      default:
        if (S4(this.state.type)) {
          const l = Ch(this.state.type);
          return this.next(), super.createIdentifier(i, l);
        } else if (gi(this.state.type))
          return this.isContextual(127) ? this.flowParseInterfaceType() : this.flowIdentToTypeAnnotation(r, i, this.parseIdentifier());
    }
    this.unexpected();
  }
  flowParsePostfixType() {
    const r = this.state.startLoc;
    let i = this.flowParsePrimaryType(), n = !1;
    for (; (this.match(0) || this.match(18)) && !this.canInsertSemicolon(); ) {
      const s = this.startNodeAt(r), a = this.eat(18);
      n = n || a, this.expect(0), !a && this.match(3) ? (s.elementType = i, this.next(), i = this.finishNode(s, "ArrayTypeAnnotation")) : (s.objectType = i, s.indexType = this.flowParseType(), this.expect(3), n ? (s.optional = a, i = this.finishNode(s, "OptionalIndexedAccessType")) : i = this.finishNode(s, "IndexedAccessType"));
    }
    return i;
  }
  flowParsePrefixType() {
    const r = this.startNode();
    return this.eat(17) ? (r.typeAnnotation = this.flowParsePrefixType(), this.finishNode(r, "NullableTypeAnnotation")) : this.flowParsePostfixType();
  }
  flowParseAnonFunctionWithoutParens() {
    const r = this.flowParsePrefixType();
    if (!this.state.noAnonFunctionType && this.eat(19)) {
      const i = this.startNodeAt(r.loc.start);
      return i.params = [this.reinterpretTypeAsFunctionTypeParam(r)], i.rest = null, i.this = null, i.returnType = this.flowParseType(), i.typeParameters = null, this.finishNode(i, "FunctionTypeAnnotation");
    }
    return r;
  }
  flowParseIntersectionType() {
    const r = this.startNode();
    this.eat(45);
    const i = this.flowParseAnonFunctionWithoutParens();
    for (r.types = [i]; this.eat(45); )
      r.types.push(this.flowParseAnonFunctionWithoutParens());
    return r.types.length === 1 ? i : this.finishNode(r, "IntersectionTypeAnnotation");
  }
  flowParseUnionType() {
    const r = this.startNode();
    this.eat(43);
    const i = this.flowParseIntersectionType();
    for (r.types = [i]; this.eat(43); )
      r.types.push(this.flowParseIntersectionType());
    return r.types.length === 1 ? i : this.finishNode(r, "UnionTypeAnnotation");
  }
  flowParseType() {
    const r = this.state.inType;
    this.state.inType = !0;
    const i = this.flowParseUnionType();
    return this.state.inType = r, i;
  }
  flowParseTypeOrImplicitInstantiation() {
    if (this.state.type === 130 && this.state.value === "_") {
      const r = this.state.startLoc, i = this.parseIdentifier();
      return this.flowParseGenericType(r, i);
    } else
      return this.flowParseType();
  }
  flowParseTypeAnnotation() {
    const r = this.startNode();
    return r.typeAnnotation = this.flowParseTypeInitialiser(), this.finishNode(r, "TypeAnnotation");
  }
  flowParseTypeAnnotatableIdentifier(r) {
    const i = r ? this.parseIdentifier() : this.flowParseRestrictedIdentifier();
    return this.match(14) && (i.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(i)), i;
  }
  typeCastToParameter(r) {
    return r.expression.typeAnnotation = r.typeAnnotation, this.resetEndLocation(r.expression, r.typeAnnotation.loc.end), r.expression;
  }
  flowParseVariance() {
    let r = null;
    return this.match(53) ? (r = this.startNode(), this.state.value === "+" ? r.kind = "plus" : r.kind = "minus", this.next(), this.finishNode(r, "Variance")) : r;
  }
  parseFunctionBody(r, i, n = !1) {
    if (i) {
      this.forwardNoArrowParamsConversionAt(r, () => super.parseFunctionBody(r, !0, n));
      return;
    }
    super.parseFunctionBody(r, !1, n);
  }
  parseFunctionBodyAndFinish(r, i, n = !1) {
    if (this.match(14)) {
      const s = this.startNode();
      [s.typeAnnotation, r.predicate] = this.flowParseTypeAndPredicateInitialiser(), r.returnType = s.typeAnnotation ? this.finishNode(s, "TypeAnnotation") : null;
    }
    return super.parseFunctionBodyAndFinish(r, i, n);
  }
  parseStatementLike(r) {
    if (this.state.strict && this.isContextual(127)) {
      const n = this.lookahead();
      if (op(n.type)) {
        const s = this.startNode();
        return this.next(), this.flowParseInterface(s);
      }
    } else if (this.shouldParseEnums() && this.isContextual(124)) {
      const n = this.startNode();
      return this.next(), this.flowParseEnumDeclaration(n);
    }
    const i = super.parseStatementLike(r);
    return this.flowPragma === void 0 && !this.isValidDirective(i) && (this.flowPragma = null), i;
  }
  parseExpressionStatement(r, i, n) {
    if (i.type === "Identifier") {
      if (i.name === "declare") {
        if (this.match(80) || gi(this.state.type) || this.match(68) || this.match(74) || this.match(82))
          return this.flowParseDeclare(r);
      } else if (gi(this.state.type)) {
        if (i.name === "interface")
          return this.flowParseInterface(r);
        if (i.name === "type")
          return this.flowParseTypeAlias(r);
        if (i.name === "opaque")
          return this.flowParseOpaqueType(r, !1);
      }
    }
    return super.parseExpressionStatement(r, i, n);
  }
  shouldParseExportDeclaration() {
    const {
      type: r
    } = this.state;
    return Uq(r) || this.shouldParseEnums() && r === 124 ? !this.state.containsEsc : super.shouldParseExportDeclaration();
  }
  isExportDefaultSpecifier() {
    const {
      type: r
    } = this.state;
    return Uq(r) || this.shouldParseEnums() && r === 124 ? this.state.containsEsc : super.isExportDefaultSpecifier();
  }
  parseExportDefaultExpression() {
    if (this.shouldParseEnums() && this.isContextual(124)) {
      const r = this.startNode();
      return this.next(), this.flowParseEnumDeclaration(r);
    }
    return super.parseExportDefaultExpression();
  }
  parseConditional(r, i, n) {
    if (!this.match(17))
      return r;
    if (this.state.maybeInArrowParameters) {
      const h = this.lookaheadCharCode();
      if (h === 44 || h === 61 || h === 58 || h === 41)
        return this.setOptionalParametersError(n), r;
    }
    this.expect(17);
    const s = this.state.clone(), a = this.state.noArrowAt, o = this.startNodeAt(i);
    let {
      consequent: l,
      failed: u
    } = this.tryParseConditionalConsequent(), [c, f] = this.getArrowLikeExpressions(l);
    if (u || f.length > 0) {
      const h = [...a];
      if (f.length > 0) {
        this.state = s, this.state.noArrowAt = h;
        for (let m = 0; m < f.length; m++)
          h.push(f[m].start);
        ({
          consequent: l,
          failed: u
        } = this.tryParseConditionalConsequent()), [c, f] = this.getArrowLikeExpressions(l);
      }
      u && c.length > 1 && this.raise(ur.AmbiguousConditionalArrow, {
        at: s.startLoc
      }), u && c.length === 1 && (this.state = s, h.push(c[0].start), this.state.noArrowAt = h, {
        consequent: l,
        failed: u
      } = this.tryParseConditionalConsequent());
    }
    return this.getArrowLikeExpressions(l, !0), this.state.noArrowAt = a, this.expect(14), o.test = r, o.consequent = l, o.alternate = this.forwardNoArrowParamsConversionAt(o, () => this.parseMaybeAssign(void 0, void 0)), this.finishNode(o, "ConditionalExpression");
  }
  tryParseConditionalConsequent() {
    this.state.noArrowParamsConversionAt.push(this.state.start);
    const r = this.parseMaybeAssignAllowIn(), i = !this.match(14);
    return this.state.noArrowParamsConversionAt.pop(), {
      consequent: r,
      failed: i
    };
  }
  getArrowLikeExpressions(r, i) {
    const n = [r], s = [];
    for (; n.length !== 0; ) {
      const a = n.pop();
      a.type === "ArrowFunctionExpression" ? (a.typeParameters || !a.returnType ? this.finishArrowValidation(a) : s.push(a), n.push(a.body)) : a.type === "ConditionalExpression" && (n.push(a.consequent), n.push(a.alternate));
    }
    return i ? (s.forEach((a) => this.finishArrowValidation(a)), [s, []]) : XEe(s, (a) => a.params.every((o) => this.isAssignable(o, !0)));
  }
  finishArrowValidation(r) {
    var i;
    this.toAssignableList(r.params, (i = r.extra) == null ? void 0 : i.trailingCommaLoc, !1), this.scope.enter(uf | P4), super.checkParams(r, !1, !0), this.scope.exit();
  }
  forwardNoArrowParamsConversionAt(r, i) {
    let n;
    return this.state.noArrowParamsConversionAt.indexOf(r.start) !== -1 ? (this.state.noArrowParamsConversionAt.push(this.state.start), n = i(), this.state.noArrowParamsConversionAt.pop()) : n = i(), n;
  }
  parseParenItem(r, i) {
    if (r = super.parseParenItem(r, i), this.eat(17) && (r.optional = !0, this.resetEndLocation(r)), this.match(14)) {
      const n = this.startNodeAt(i);
      return n.expression = r, n.typeAnnotation = this.flowParseTypeAnnotation(), this.finishNode(n, "TypeCastExpression");
    }
    return r;
  }
  assertModuleNodeAllowed(r) {
    r.type === "ImportDeclaration" && (r.importKind === "type" || r.importKind === "typeof") || r.type === "ExportNamedDeclaration" && r.exportKind === "type" || r.type === "ExportAllDeclaration" && r.exportKind === "type" || super.assertModuleNodeAllowed(r);
  }
  parseExport(r, i) {
    const n = super.parseExport(r, i);
    return (n.type === "ExportNamedDeclaration" || n.type === "ExportAllDeclaration") && (n.exportKind = n.exportKind || "value"), n;
  }
  parseExportDeclaration(r) {
    if (this.isContextual(128)) {
      r.exportKind = "type";
      const i = this.startNode();
      return this.next(), this.match(5) ? (r.specifiers = this.parseExportSpecifiers(!0), super.parseExportFrom(r), null) : this.flowParseTypeAlias(i);
    } else if (this.isContextual(129)) {
      r.exportKind = "type";
      const i = this.startNode();
      return this.next(), this.flowParseOpaqueType(i, !1);
    } else if (this.isContextual(127)) {
      r.exportKind = "type";
      const i = this.startNode();
      return this.next(), this.flowParseInterface(i);
    } else if (this.shouldParseEnums() && this.isContextual(124)) {
      r.exportKind = "value";
      const i = this.startNode();
      return this.next(), this.flowParseEnumDeclaration(i);
    } else
      return super.parseExportDeclaration(r);
  }
  eatExportStar(r) {
    return super.eatExportStar(r) ? !0 : this.isContextual(128) && this.lookahead().type === 55 ? (r.exportKind = "type", this.next(), this.next(), !0) : !1;
  }
  maybeParseExportNamespaceSpecifier(r) {
    const {
      startLoc: i
    } = this.state, n = super.maybeParseExportNamespaceSpecifier(r);
    return n && r.exportKind === "type" && this.unexpected(i), n;
  }
  parseClassId(r, i, n) {
    super.parseClassId(r, i, n), this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration());
  }
  parseClassMember(r, i, n) {
    const {
      startLoc: s
    } = this.state;
    if (this.isContextual(123)) {
      if (super.parseClassMemberFromModifier(r, i))
        return;
      i.declare = !0;
    }
    super.parseClassMember(r, i, n), i.declare && (i.type !== "ClassProperty" && i.type !== "ClassPrivateProperty" && i.type !== "PropertyDefinition" ? this.raise(ur.DeclareClassElement, {
      at: s
    }) : i.value && this.raise(ur.DeclareClassFieldInitializer, {
      at: i.value
    }));
  }
  isIterator(r) {
    return r === "iterator" || r === "asyncIterator";
  }
  readIterator() {
    const r = super.readWord1(), i = "@@" + r;
    (!this.isIterator(r) || !this.state.inType) && this.raise(nt.InvalidIdentifier, {
      at: this.state.curPosition(),
      identifierName: i
    }), this.finishToken(130, i);
  }
  getTokenFromCode(r) {
    const i = this.input.charCodeAt(this.state.pos + 1);
    r === 123 && i === 124 ? this.finishOp(6, 2) : this.state.inType && (r === 62 || r === 60) ? this.finishOp(r === 62 ? 48 : 47, 1) : this.state.inType && r === 63 ? i === 46 ? this.finishOp(18, 2) : this.finishOp(17, 1) : aEe(r, i, this.input.charCodeAt(this.state.pos + 2)) ? (this.state.pos += 2, this.readIterator()) : super.getTokenFromCode(r);
  }
  isAssignable(r, i) {
    return r.type === "TypeCastExpression" ? this.isAssignable(r.expression, i) : super.isAssignable(r, i);
  }
  toAssignable(r, i = !1) {
    !i && r.type === "AssignmentExpression" && r.left.type === "TypeCastExpression" && (r.left = this.typeCastToParameter(r.left)), super.toAssignable(r, i);
  }
  toAssignableList(r, i, n) {
    for (let s = 0; s < r.length; s++) {
      const a = r[s];
      (a == null ? void 0 : a.type) === "TypeCastExpression" && (r[s] = this.typeCastToParameter(a));
    }
    super.toAssignableList(r, i, n);
  }
  toReferencedList(r, i) {
    for (let s = 0; s < r.length; s++) {
      var n;
      const a = r[s];
      a && a.type === "TypeCastExpression" && !((n = a.extra) != null && n.parenthesized) && (r.length > 1 || !i) && this.raise(ur.TypeCastInPattern, {
        at: a.typeAnnotation
      });
    }
    return r;
  }
  parseArrayLike(r, i, n, s) {
    const a = super.parseArrayLike(r, i, n, s);
    return i && !this.state.maybeInArrowParameters && this.toReferencedList(a.elements), a;
  }
  isValidLVal(r, i, n) {
    return r === "TypeCastExpression" || super.isValidLVal(r, i, n);
  }
  parseClassProperty(r) {
    return this.match(14) && (r.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassProperty(r);
  }
  parseClassPrivateProperty(r) {
    return this.match(14) && (r.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassPrivateProperty(r);
  }
  isClassMethod() {
    return this.match(47) || super.isClassMethod();
  }
  isClassProperty() {
    return this.match(14) || super.isClassProperty();
  }
  isNonstaticConstructor(r) {
    return !this.match(14) && super.isNonstaticConstructor(r);
  }
  pushClassMethod(r, i, n, s, a, o) {
    if (i.variance && this.unexpected(i.variance.loc.start), delete i.variance, this.match(47) && (i.typeParameters = this.flowParseTypeParameterDeclaration()), super.pushClassMethod(r, i, n, s, a, o), i.params && a) {
      const l = i.params;
      l.length > 0 && this.isThisParam(l[0]) && this.raise(ur.ThisParamBannedInConstructor, {
        at: i
      });
    } else if (i.type === "MethodDefinition" && a && i.value.params) {
      const l = i.value.params;
      l.length > 0 && this.isThisParam(l[0]) && this.raise(ur.ThisParamBannedInConstructor, {
        at: i
      });
    }
  }
  pushClassPrivateMethod(r, i, n, s) {
    i.variance && this.unexpected(i.variance.loc.start), delete i.variance, this.match(47) && (i.typeParameters = this.flowParseTypeParameterDeclaration()), super.pushClassPrivateMethod(r, i, n, s);
  }
  parseClassSuper(r) {
    if (super.parseClassSuper(r), r.superClass && this.match(47) && (r.superTypeParameters = this.flowParseTypeParameterInstantiation()), this.isContextual(111)) {
      this.next();
      const i = r.implements = [];
      do {
        const n = this.startNode();
        n.id = this.flowParseRestrictedIdentifier(!0), this.match(47) ? n.typeParameters = this.flowParseTypeParameterInstantiation() : n.typeParameters = null, i.push(this.finishNode(n, "ClassImplements"));
      } while (this.eat(12));
    }
  }
  checkGetterSetterParams(r) {
    super.checkGetterSetterParams(r);
    const i = this.getObjectOrClassMethodParams(r);
    if (i.length > 0) {
      const n = i[0];
      this.isThisParam(n) && r.kind === "get" ? this.raise(ur.GetterMayNotHaveThisParam, {
        at: n
      }) : this.isThisParam(n) && this.raise(ur.SetterMayNotHaveThisParam, {
        at: n
      });
    }
  }
  parsePropertyNamePrefixOperator(r) {
    r.variance = this.flowParseVariance();
  }
  parseObjPropValue(r, i, n, s, a, o, l) {
    r.variance && this.unexpected(r.variance.loc.start), delete r.variance;
    let u;
    this.match(47) && !o && (u = this.flowParseTypeParameterDeclaration(), this.match(10) || this.unexpected());
    const c = super.parseObjPropValue(r, i, n, s, a, o, l);
    return u && ((c.value || c).typeParameters = u), c;
  }
  parseAssignableListItemTypes(r) {
    return this.eat(17) && (r.type !== "Identifier" && this.raise(ur.PatternIsOptional, {
      at: r
    }), this.isThisParam(r) && this.raise(ur.ThisParamMayNotBeOptional, {
      at: r
    }), r.optional = !0), this.match(14) ? r.typeAnnotation = this.flowParseTypeAnnotation() : this.isThisParam(r) && this.raise(ur.ThisParamAnnotationRequired, {
      at: r
    }), this.match(29) && this.isThisParam(r) && this.raise(ur.ThisParamNoDefault, {
      at: r
    }), this.resetEndLocation(r), r;
  }
  parseMaybeDefault(r, i) {
    const n = super.parseMaybeDefault(r, i);
    return n.type === "AssignmentPattern" && n.typeAnnotation && n.right.start < n.typeAnnotation.start && this.raise(ur.TypeBeforeInitializer, {
      at: n.typeAnnotation
    }), n;
  }
  shouldParseDefaultImport(r) {
    return rM(r) ? Yq(this.state.type) : super.shouldParseDefaultImport(r);
  }
  checkImportReflection(r) {
    super.checkImportReflection(r), r.module && r.importKind !== "value" && this.raise(ur.ImportReflectionHasImportType, {
      at: r.specifiers[0].loc.start
    });
  }
  parseImportSpecifierLocal(r, i, n) {
    i.local = rM(r) ? this.flowParseRestrictedIdentifier(!0, !0) : this.parseIdentifier(), r.specifiers.push(this.finishImportSpecifier(i, n));
  }
  maybeParseDefaultImportSpecifier(r) {
    r.importKind = "value";
    let i = null;
    if (this.match(87) ? i = "typeof" : this.isContextual(128) && (i = "type"), i) {
      const n = this.lookahead(), {
        type: s
      } = n;
      i === "type" && s === 55 && this.unexpected(null, n.type), (Yq(s) || s === 5 || s === 55) && (this.next(), r.importKind = i);
    }
    return super.maybeParseDefaultImportSpecifier(r);
  }
  parseImportSpecifier(r, i, n, s, a) {
    const o = r.imported;
    let l = null;
    o.type === "Identifier" && (o.name === "type" ? l = "type" : o.name === "typeof" && (l = "typeof"));
    let u = !1;
    if (this.isContextual(93) && !this.isLookaheadContextual("as")) {
      const f = this.parseIdentifier(!0);
      l !== null && !op(this.state.type) ? (r.imported = f, r.importKind = l, r.local = bf(f)) : (r.imported = o, r.importKind = null, r.local = this.parseIdentifier());
    } else {
      if (l !== null && op(this.state.type))
        r.imported = this.parseIdentifier(!0), r.importKind = l;
      else {
        if (i)
          throw this.raise(nt.ImportBindingIsString, {
            at: r,
            importName: o.value
          });
        r.imported = o, r.importKind = null;
      }
      this.eatContextual(93) ? r.local = this.parseIdentifier() : (u = !0, r.local = bf(r.imported));
    }
    const c = rM(r);
    return n && c && this.raise(ur.ImportTypeShorthandOnlyInPureImport, {
      at: r
    }), (n || c) && this.checkReservedType(r.local.name, r.local.loc.start, !0), u && !n && !c && this.checkReservedWord(r.local.name, r.loc.start, !0, !0), this.finishImportSpecifier(r, "ImportSpecifier");
  }
  parseBindingAtom() {
    switch (this.state.type) {
      case 78:
        return this.parseIdentifier(!0);
      default:
        return super.parseBindingAtom();
    }
  }
  parseFunctionParams(r, i) {
    const n = r.kind;
    n !== "get" && n !== "set" && this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration()), super.parseFunctionParams(r, i);
  }
  parseVarId(r, i) {
    super.parseVarId(r, i), this.match(14) && (r.id.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(r.id));
  }
  parseAsyncArrowFromCallExpression(r, i) {
    if (this.match(14)) {
      const n = this.state.noAnonFunctionType;
      this.state.noAnonFunctionType = !0, r.returnType = this.flowParseTypeAnnotation(), this.state.noAnonFunctionType = n;
    }
    return super.parseAsyncArrowFromCallExpression(r, i);
  }
  shouldParseAsyncArrow() {
    return this.match(14) || super.shouldParseAsyncArrow();
  }
  parseMaybeAssign(r, i) {
    var n;
    let s = null, a;
    if (this.hasPlugin("jsx") && (this.match(140) || this.match(47))) {
      if (s = this.state.clone(), a = this.tryParse(() => super.parseMaybeAssign(r, i), s), !a.error)
        return a.node;
      const {
        context: u
      } = this.state, c = u[u.length - 1];
      (c === Vi.j_oTag || c === Vi.j_expr) && u.pop();
    }
    if ((n = a) != null && n.error || this.match(47)) {
      var o, l;
      s = s || this.state.clone();
      let u;
      const c = this.tryParse((h) => {
        var m;
        u = this.flowParseTypeParameterDeclaration();
        const g = this.forwardNoArrowParamsConversionAt(u, () => {
          const v = super.parseMaybeAssign(r, i);
          return this.resetStartLocationFromNode(v, u), v;
        });
        (m = g.extra) != null && m.parenthesized && h();
        const y = this.maybeUnwrapTypeCastExpression(g);
        return y.type !== "ArrowFunctionExpression" && h(), y.typeParameters = u, this.resetStartLocationFromNode(y, u), g;
      }, s);
      let f = null;
      if (c.node && this.maybeUnwrapTypeCastExpression(c.node).type === "ArrowFunctionExpression") {
        if (!c.error && !c.aborted)
          return c.node.async && this.raise(ur.UnexpectedTypeParameterBeforeAsyncArrowFunction, {
            at: u
          }), c.node;
        f = c.node;
      }
      if ((o = a) != null && o.node)
        return this.state = a.failState, a.node;
      if (f)
        return this.state = c.failState, f;
      throw (l = a) != null && l.thrown ? a.error : c.thrown ? c.error : this.raise(ur.UnexpectedTokenAfterTypeParameter, {
        at: u
      });
    }
    return super.parseMaybeAssign(r, i);
  }
  parseArrow(r) {
    if (this.match(14)) {
      const i = this.tryParse(() => {
        const n = this.state.noAnonFunctionType;
        this.state.noAnonFunctionType = !0;
        const s = this.startNode();
        return [s.typeAnnotation, r.predicate] = this.flowParseTypeAndPredicateInitialiser(), this.state.noAnonFunctionType = n, this.canInsertSemicolon() && this.unexpected(), this.match(19) || this.unexpected(), s;
      });
      if (i.thrown)
        return null;
      i.error && (this.state = i.failState), r.returnType = i.node.typeAnnotation ? this.finishNode(i.node, "TypeAnnotation") : null;
    }
    return super.parseArrow(r);
  }
  shouldParseArrow(r) {
    return this.match(14) || super.shouldParseArrow(r);
  }
  setArrowFunctionParameters(r, i) {
    this.state.noArrowParamsConversionAt.indexOf(r.start) !== -1 ? r.params = i : super.setArrowFunctionParameters(r, i);
  }
  checkParams(r, i, n, s = !0) {
    if (!(n && this.state.noArrowParamsConversionAt.indexOf(r.start) !== -1)) {
      for (let a = 0; a < r.params.length; a++)
        this.isThisParam(r.params[a]) && a > 0 && this.raise(ur.ThisParamMustBeFirst, {
          at: r.params[a]
        });
      super.checkParams(r, i, n, s);
    }
  }
  parseParenAndDistinguishExpression(r) {
    return super.parseParenAndDistinguishExpression(r && this.state.noArrowAt.indexOf(this.state.start) === -1);
  }
  parseSubscripts(r, i, n) {
    if (r.type === "Identifier" && r.name === "async" && this.state.noArrowAt.indexOf(i.index) !== -1) {
      this.next();
      const s = this.startNodeAt(i);
      s.callee = r, s.arguments = super.parseCallExpressionArguments(11, !1), r = this.finishNode(s, "CallExpression");
    } else if (r.type === "Identifier" && r.name === "async" && this.match(47)) {
      const s = this.state.clone(), a = this.tryParse((l) => this.parseAsyncArrowWithTypeParameters(i) || l(), s);
      if (!a.error && !a.aborted)
        return a.node;
      const o = this.tryParse(() => super.parseSubscripts(r, i, n), s);
      if (o.node && !o.error)
        return o.node;
      if (a.node)
        return this.state = a.failState, a.node;
      if (o.node)
        return this.state = o.failState, o.node;
      throw a.error || o.error;
    }
    return super.parseSubscripts(r, i, n);
  }
  parseSubscript(r, i, n, s) {
    if (this.match(18) && this.isLookaheadToken_lt()) {
      if (s.optionalChainMember = !0, n)
        return s.stop = !0, r;
      this.next();
      const a = this.startNodeAt(i);
      return a.callee = r, a.typeArguments = this.flowParseTypeParameterInstantiation(), this.expect(10), a.arguments = this.parseCallExpressionArguments(11, !1), a.optional = !0, this.finishCallExpression(a, !0);
    } else if (!n && this.shouldParseTypes() && this.match(47)) {
      const a = this.startNodeAt(i);
      a.callee = r;
      const o = this.tryParse(() => (a.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(), this.expect(10), a.arguments = super.parseCallExpressionArguments(11, !1), s.optionalChainMember && (a.optional = !1), this.finishCallExpression(a, s.optionalChainMember)));
      if (o.node)
        return o.error && (this.state = o.failState), o.node;
    }
    return super.parseSubscript(r, i, n, s);
  }
  parseNewCallee(r) {
    super.parseNewCallee(r);
    let i = null;
    this.shouldParseTypes() && this.match(47) && (i = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node), r.typeArguments = i;
  }
  parseAsyncArrowWithTypeParameters(r) {
    const i = this.startNodeAt(r);
    if (this.parseFunctionParams(i, !1), !!this.parseArrow(i))
      return super.parseArrowExpression(i, void 0, !0);
  }
  readToken_mult_modulo(r) {
    const i = this.input.charCodeAt(this.state.pos + 1);
    if (r === 42 && i === 47 && this.state.hasFlowComment) {
      this.state.hasFlowComment = !1, this.state.pos += 2, this.nextToken();
      return;
    }
    super.readToken_mult_modulo(r);
  }
  readToken_pipe_amp(r) {
    const i = this.input.charCodeAt(this.state.pos + 1);
    if (r === 124 && i === 125) {
      this.finishOp(9, 2);
      return;
    }
    super.readToken_pipe_amp(r);
  }
  parseTopLevel(r, i) {
    const n = super.parseTopLevel(r, i);
    return this.state.hasFlowComment && this.raise(ur.UnterminatedFlowComment, {
      at: this.state.curPosition()
    }), n;
  }
  skipBlockComment() {
    if (this.hasPlugin("flowComments") && this.skipFlowComment()) {
      if (this.state.hasFlowComment)
        throw this.raise(ur.NestedFlowComment, {
          at: this.state.startLoc
        });
      this.hasFlowCommentCompletion();
      const r = this.skipFlowComment();
      r && (this.state.pos += r, this.state.hasFlowComment = !0);
      return;
    }
    return super.skipBlockComment(this.state.hasFlowComment ? "*-/" : "*/");
  }
  skipFlowComment() {
    const {
      pos: r
    } = this.state;
    let i = 2;
    for (; [32, 9].includes(this.input.charCodeAt(r + i)); )
      i++;
    const n = this.input.charCodeAt(i + r), s = this.input.charCodeAt(i + r + 1);
    return n === 58 && s === 58 ? i + 2 : this.input.slice(i + r, i + r + 12) === "flow-include" ? i + 12 : n === 58 && s !== 58 ? i : !1;
  }
  hasFlowCommentCompletion() {
    if (this.input.indexOf("*/", this.state.pos) === -1)
      throw this.raise(nt.UnterminatedComment, {
        at: this.state.curPosition()
      });
  }
  flowEnumErrorBooleanMemberNotInitialized(r, {
    enumName: i,
    memberName: n
  }) {
    this.raise(ur.EnumBooleanMemberNotInitialized, {
      at: r,
      memberName: n,
      enumName: i
    });
  }
  flowEnumErrorInvalidMemberInitializer(r, i) {
    return this.raise(i.explicitType ? i.explicitType === "symbol" ? ur.EnumInvalidMemberInitializerSymbolType : ur.EnumInvalidMemberInitializerPrimaryType : ur.EnumInvalidMemberInitializerUnknownType, Object.assign({
      at: r
    }, i));
  }
  flowEnumErrorNumberMemberNotInitialized(r, {
    enumName: i,
    memberName: n
  }) {
    this.raise(ur.EnumNumberMemberNotInitialized, {
      at: r,
      enumName: i,
      memberName: n
    });
  }
  flowEnumErrorStringMemberInconsistentlyInitailized(r, {
    enumName: i
  }) {
    this.raise(ur.EnumStringMemberInconsistentlyInitailized, {
      at: r,
      enumName: i
    });
  }
  flowEnumMemberInit() {
    const r = this.state.startLoc, i = () => this.match(12) || this.match(8);
    switch (this.state.type) {
      case 132: {
        const n = this.parseNumericLiteral(this.state.value);
        return i() ? {
          type: "number",
          loc: n.loc.start,
          value: n
        } : {
          type: "invalid",
          loc: r
        };
      }
      case 131: {
        const n = this.parseStringLiteral(this.state.value);
        return i() ? {
          type: "string",
          loc: n.loc.start,
          value: n
        } : {
          type: "invalid",
          loc: r
        };
      }
      case 85:
      case 86: {
        const n = this.parseBooleanLiteral(this.match(85));
        return i() ? {
          type: "boolean",
          loc: n.loc.start,
          value: n
        } : {
          type: "invalid",
          loc: r
        };
      }
      default:
        return {
          type: "invalid",
          loc: r
        };
    }
  }
  flowEnumMemberRaw() {
    const r = this.state.startLoc, i = this.parseIdentifier(!0), n = this.eat(29) ? this.flowEnumMemberInit() : {
      type: "none",
      loc: r
    };
    return {
      id: i,
      init: n
    };
  }
  flowEnumCheckExplicitTypeMismatch(r, i, n) {
    const {
      explicitType: s
    } = i;
    s !== null && s !== n && this.flowEnumErrorInvalidMemberInitializer(r, i);
  }
  flowEnumMembers({
    enumName: r,
    explicitType: i
  }) {
    const n = /* @__PURE__ */ new Set(), s = {
      booleanMembers: [],
      numberMembers: [],
      stringMembers: [],
      defaultedMembers: []
    };
    let a = !1;
    for (; !this.match(8); ) {
      if (this.eat(21)) {
        a = !0;
        break;
      }
      const o = this.startNode(), {
        id: l,
        init: u
      } = this.flowEnumMemberRaw(), c = l.name;
      if (c === "")
        continue;
      /^[a-z]/.test(c) && this.raise(ur.EnumInvalidMemberName, {
        at: l,
        memberName: c,
        suggestion: c[0].toUpperCase() + c.slice(1),
        enumName: r
      }), n.has(c) && this.raise(ur.EnumDuplicateMemberName, {
        at: l,
        memberName: c,
        enumName: r
      }), n.add(c);
      const f = {
        enumName: r,
        explicitType: i,
        memberName: c
      };
      switch (o.id = l, u.type) {
        case "boolean": {
          this.flowEnumCheckExplicitTypeMismatch(u.loc, f, "boolean"), o.init = u.value, s.booleanMembers.push(this.finishNode(o, "EnumBooleanMember"));
          break;
        }
        case "number": {
          this.flowEnumCheckExplicitTypeMismatch(u.loc, f, "number"), o.init = u.value, s.numberMembers.push(this.finishNode(o, "EnumNumberMember"));
          break;
        }
        case "string": {
          this.flowEnumCheckExplicitTypeMismatch(u.loc, f, "string"), o.init = u.value, s.stringMembers.push(this.finishNode(o, "EnumStringMember"));
          break;
        }
        case "invalid":
          throw this.flowEnumErrorInvalidMemberInitializer(u.loc, f);
        case "none":
          switch (i) {
            case "boolean":
              this.flowEnumErrorBooleanMemberNotInitialized(u.loc, f);
              break;
            case "number":
              this.flowEnumErrorNumberMemberNotInitialized(u.loc, f);
              break;
            default:
              s.defaultedMembers.push(this.finishNode(o, "EnumDefaultedMember"));
          }
      }
      this.match(8) || this.expect(12);
    }
    return {
      members: s,
      hasUnknownMembers: a
    };
  }
  flowEnumStringMembers(r, i, {
    enumName: n
  }) {
    if (r.length === 0)
      return i;
    if (i.length === 0)
      return r;
    if (i.length > r.length) {
      for (const s of r)
        this.flowEnumErrorStringMemberInconsistentlyInitailized(s, {
          enumName: n
        });
      return i;
    } else {
      for (const s of i)
        this.flowEnumErrorStringMemberInconsistentlyInitailized(s, {
          enumName: n
        });
      return r;
    }
  }
  flowEnumParseExplicitType({
    enumName: r
  }) {
    if (!this.eatContextual(101))
      return null;
    if (!gi(this.state.type))
      throw this.raise(ur.EnumInvalidExplicitTypeUnknownSupplied, {
        at: this.state.startLoc,
        enumName: r
      });
    const {
      value: i
    } = this.state;
    return this.next(), i !== "boolean" && i !== "number" && i !== "string" && i !== "symbol" && this.raise(ur.EnumInvalidExplicitType, {
      at: this.state.startLoc,
      enumName: r,
      invalidEnumType: i
    }), i;
  }
  flowEnumBody(r, i) {
    const n = i.name, s = i.loc.start, a = this.flowEnumParseExplicitType({
      enumName: n
    });
    this.expect(5);
    const {
      members: o,
      hasUnknownMembers: l
    } = this.flowEnumMembers({
      enumName: n,
      explicitType: a
    });
    switch (r.hasUnknownMembers = l, a) {
      case "boolean":
        return r.explicitType = !0, r.members = o.booleanMembers, this.expect(8), this.finishNode(r, "EnumBooleanBody");
      case "number":
        return r.explicitType = !0, r.members = o.numberMembers, this.expect(8), this.finishNode(r, "EnumNumberBody");
      case "string":
        return r.explicitType = !0, r.members = this.flowEnumStringMembers(o.stringMembers, o.defaultedMembers, {
          enumName: n
        }), this.expect(8), this.finishNode(r, "EnumStringBody");
      case "symbol":
        return r.members = o.defaultedMembers, this.expect(8), this.finishNode(r, "EnumSymbolBody");
      default: {
        const u = () => (r.members = [], this.expect(8), this.finishNode(r, "EnumStringBody"));
        r.explicitType = !1;
        const c = o.booleanMembers.length, f = o.numberMembers.length, h = o.stringMembers.length, m = o.defaultedMembers.length;
        if (!c && !f && !h && !m)
          return u();
        if (!c && !f)
          return r.members = this.flowEnumStringMembers(o.stringMembers, o.defaultedMembers, {
            enumName: n
          }), this.expect(8), this.finishNode(r, "EnumStringBody");
        if (!f && !h && c >= m) {
          for (const g of o.defaultedMembers)
            this.flowEnumErrorBooleanMemberNotInitialized(g.loc.start, {
              enumName: n,
              memberName: g.id.name
            });
          return r.members = o.booleanMembers, this.expect(8), this.finishNode(r, "EnumBooleanBody");
        } else if (!c && !h && f >= m) {
          for (const g of o.defaultedMembers)
            this.flowEnumErrorNumberMemberNotInitialized(g.loc.start, {
              enumName: n,
              memberName: g.id.name
            });
          return r.members = o.numberMembers, this.expect(8), this.finishNode(r, "EnumNumberBody");
        } else
          return this.raise(ur.EnumInconsistentMemberValues, {
            at: s,
            enumName: n
          }), u();
      }
    }
  }
  flowParseEnumDeclaration(r) {
    const i = this.parseIdentifier();
    return r.id = i, r.body = this.flowEnumBody(this.startNode(), i), this.finishNode(r, "EnumDeclaration");
  }
  isLookaheadToken_lt() {
    const r = this.nextTokenStart();
    if (this.input.charCodeAt(r) === 60) {
      const i = this.input.charCodeAt(r + 1);
      return i !== 60 && i !== 61;
    }
    return !1;
  }
  maybeUnwrapTypeCastExpression(r) {
    return r.type === "TypeCastExpression" ? r.expression : r;
  }
};
const ZEe = {
  __proto__: null,
  quot: '"',
  amp: "&",
  apos: "'",
  lt: "<",
  gt: ">",
  nbsp: " ",
  iexcl: "¡",
  cent: "¢",
  pound: "£",
  curren: "¤",
  yen: "¥",
  brvbar: "¦",
  sect: "§",
  uml: "¨",
  copy: "©",
  ordf: "ª",
  laquo: "«",
  not: "¬",
  shy: "­",
  reg: "®",
  macr: "¯",
  deg: "°",
  plusmn: "±",
  sup2: "²",
  sup3: "³",
  acute: "´",
  micro: "µ",
  para: "¶",
  middot: "·",
  cedil: "¸",
  sup1: "¹",
  ordm: "º",
  raquo: "»",
  frac14: "¼",
  frac12: "½",
  frac34: "¾",
  iquest: "¿",
  Agrave: "À",
  Aacute: "Á",
  Acirc: "Â",
  Atilde: "Ã",
  Auml: "Ä",
  Aring: "Å",
  AElig: "Æ",
  Ccedil: "Ç",
  Egrave: "È",
  Eacute: "É",
  Ecirc: "Ê",
  Euml: "Ë",
  Igrave: "Ì",
  Iacute: "Í",
  Icirc: "Î",
  Iuml: "Ï",
  ETH: "Ð",
  Ntilde: "Ñ",
  Ograve: "Ò",
  Oacute: "Ó",
  Ocirc: "Ô",
  Otilde: "Õ",
  Ouml: "Ö",
  times: "×",
  Oslash: "Ø",
  Ugrave: "Ù",
  Uacute: "Ú",
  Ucirc: "Û",
  Uuml: "Ü",
  Yacute: "Ý",
  THORN: "Þ",
  szlig: "ß",
  agrave: "à",
  aacute: "á",
  acirc: "â",
  atilde: "ã",
  auml: "ä",
  aring: "å",
  aelig: "æ",
  ccedil: "ç",
  egrave: "è",
  eacute: "é",
  ecirc: "ê",
  euml: "ë",
  igrave: "ì",
  iacute: "í",
  icirc: "î",
  iuml: "ï",
  eth: "ð",
  ntilde: "ñ",
  ograve: "ò",
  oacute: "ó",
  ocirc: "ô",
  otilde: "õ",
  ouml: "ö",
  divide: "÷",
  oslash: "ø",
  ugrave: "ù",
  uacute: "ú",
  ucirc: "û",
  uuml: "ü",
  yacute: "ý",
  thorn: "þ",
  yuml: "ÿ",
  OElig: "Œ",
  oelig: "œ",
  Scaron: "Š",
  scaron: "š",
  Yuml: "Ÿ",
  fnof: "ƒ",
  circ: "ˆ",
  tilde: "˜",
  Alpha: "Α",
  Beta: "Β",
  Gamma: "Γ",
  Delta: "Δ",
  Epsilon: "Ε",
  Zeta: "Ζ",
  Eta: "Η",
  Theta: "Θ",
  Iota: "Ι",
  Kappa: "Κ",
  Lambda: "Λ",
  Mu: "Μ",
  Nu: "Ν",
  Xi: "Ξ",
  Omicron: "Ο",
  Pi: "Π",
  Rho: "Ρ",
  Sigma: "Σ",
  Tau: "Τ",
  Upsilon: "Υ",
  Phi: "Φ",
  Chi: "Χ",
  Psi: "Ψ",
  Omega: "Ω",
  alpha: "α",
  beta: "β",
  gamma: "γ",
  delta: "δ",
  epsilon: "ε",
  zeta: "ζ",
  eta: "η",
  theta: "θ",
  iota: "ι",
  kappa: "κ",
  lambda: "λ",
  mu: "μ",
  nu: "ν",
  xi: "ξ",
  omicron: "ο",
  pi: "π",
  rho: "ρ",
  sigmaf: "ς",
  sigma: "σ",
  tau: "τ",
  upsilon: "υ",
  phi: "φ",
  chi: "χ",
  psi: "ψ",
  omega: "ω",
  thetasym: "ϑ",
  upsih: "ϒ",
  piv: "ϖ",
  ensp: " ",
  emsp: " ",
  thinsp: " ",
  zwnj: "‌",
  zwj: "‍",
  lrm: "‎",
  rlm: "‏",
  ndash: "–",
  mdash: "—",
  lsquo: "‘",
  rsquo: "’",
  sbquo: "‚",
  ldquo: "“",
  rdquo: "”",
  bdquo: "„",
  dagger: "†",
  Dagger: "‡",
  bull: "•",
  hellip: "…",
  permil: "‰",
  prime: "′",
  Prime: "″",
  lsaquo: "‹",
  rsaquo: "›",
  oline: "‾",
  frasl: "⁄",
  euro: "€",
  image: "ℑ",
  weierp: "℘",
  real: "ℜ",
  trade: "™",
  alefsym: "ℵ",
  larr: "←",
  uarr: "↑",
  rarr: "→",
  darr: "↓",
  harr: "↔",
  crarr: "↵",
  lArr: "⇐",
  uArr: "⇑",
  rArr: "⇒",
  dArr: "⇓",
  hArr: "⇔",
  forall: "∀",
  part: "∂",
  exist: "∃",
  empty: "∅",
  nabla: "∇",
  isin: "∈",
  notin: "∉",
  ni: "∋",
  prod: "∏",
  sum: "∑",
  minus: "−",
  lowast: "∗",
  radic: "√",
  prop: "∝",
  infin: "∞",
  ang: "∠",
  and: "∧",
  or: "∨",
  cap: "∩",
  cup: "∪",
  int: "∫",
  there4: "∴",
  sim: "∼",
  cong: "≅",
  asymp: "≈",
  ne: "≠",
  equiv: "≡",
  le: "≤",
  ge: "≥",
  sub: "⊂",
  sup: "⊃",
  nsub: "⊄",
  sube: "⊆",
  supe: "⊇",
  oplus: "⊕",
  otimes: "⊗",
  perp: "⊥",
  sdot: "⋅",
  lceil: "⌈",
  rceil: "⌉",
  lfloor: "⌊",
  rfloor: "⌋",
  lang: "〈",
  rang: "〉",
  loz: "◊",
  spades: "♠",
  clubs: "♣",
  hearts: "♥",
  diams: "♦"
};
var pne;
const Qh = lf(pne || (pne = at(["jsx"])))({
  AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.",
  MissingClosingTagElement: ({
    openingTagName: e
  }) => "Expected corresponding JSX closing tag for <".concat(e, ">."),
  MissingClosingTagFragment: "Expected corresponding JSX closing tag for <>.",
  UnexpectedSequenceExpression: "Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?",
  UnexpectedToken: ({
    unexpected: e,
    HTMLEntity: t
  }) => "Unexpected token `".concat(e, "`. Did you mean `").concat(t, "` or `{'").concat(e, "'}`?"),
  UnsupportedJsxValue: "JSX value should be either an expression or a quoted JSX text.",
  UnterminatedJsxContent: "Unterminated JSX contents.",
  UnwrappedAdjacentJSXElements: "Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?"
});
function Gf(e) {
  return e ? e.type === "JSXOpeningFragment" || e.type === "JSXClosingFragment" : !1;
}
function fy(e) {
  if (e.type === "JSXIdentifier")
    return e.name;
  if (e.type === "JSXNamespacedName")
    return e.namespace.name + ":" + e.name.name;
  if (e.type === "JSXMemberExpression")
    return fy(e.object) + "." + fy(e.property);
  throw new Error("Node had unexpected type: " + e.type);
}
var e1e = (e) => class extends e {
  jsxReadToken() {
    let r = "", i = this.state.pos;
    for (; ; ) {
      if (this.state.pos >= this.length)
        throw this.raise(Qh.UnterminatedJsxContent, {
          at: this.state.startLoc
        });
      const n = this.input.charCodeAt(this.state.pos);
      switch (n) {
        case 60:
        case 123:
          if (this.state.pos === this.state.start) {
            n === 60 && this.state.canStartJSXElement ? (++this.state.pos, this.finishToken(140)) : super.getTokenFromCode(n);
            return;
          }
          r += this.input.slice(i, this.state.pos), this.finishToken(139, r);
          return;
        case 38:
          r += this.input.slice(i, this.state.pos), r += this.jsxReadEntity(), i = this.state.pos;
          break;
        case 62:
        case 125:
        default:
          H0(n) ? (r += this.input.slice(i, this.state.pos), r += this.jsxReadNewLine(!0), i = this.state.pos) : ++this.state.pos;
      }
    }
  }
  jsxReadNewLine(r) {
    const i = this.input.charCodeAt(this.state.pos);
    let n;
    return ++this.state.pos, i === 13 && this.input.charCodeAt(this.state.pos) === 10 ? (++this.state.pos, n = r ? "\n" : "\r\n") : n = String.fromCharCode(i), ++this.state.curLine, this.state.lineStart = this.state.pos, n;
  }
  jsxReadString(r) {
    let i = "", n = ++this.state.pos;
    for (; ; ) {
      if (this.state.pos >= this.length)
        throw this.raise(nt.UnterminatedString, {
          at: this.state.startLoc
        });
      const s = this.input.charCodeAt(this.state.pos);
      if (s === r)
        break;
      s === 38 ? (i += this.input.slice(n, this.state.pos), i += this.jsxReadEntity(), n = this.state.pos) : H0(s) ? (i += this.input.slice(n, this.state.pos), i += this.jsxReadNewLine(!1), n = this.state.pos) : ++this.state.pos;
    }
    i += this.input.slice(n, this.state.pos++), this.finishToken(131, i);
  }
  jsxReadEntity() {
    const r = ++this.state.pos;
    if (this.codePointAtPos(this.state.pos) === 35) {
      ++this.state.pos;
      let i = 10;
      this.codePointAtPos(this.state.pos) === 120 && (i = 16, ++this.state.pos);
      const n = this.readInt(i, void 0, !1, "bail");
      if (n !== null && this.codePointAtPos(this.state.pos) === 59)
        return ++this.state.pos, String.fromCodePoint(n);
    } else {
      let i = 0, n = !1;
      for (; i++ < 10 && this.state.pos < this.length && !(n = this.codePointAtPos(this.state.pos) == 59); )
        ++this.state.pos;
      if (n) {
        const s = this.input.slice(r, this.state.pos), a = ZEe[s];
        if (++this.state.pos, a)
          return a;
      }
    }
    return this.state.pos = r, "&";
  }
  jsxReadWord() {
    let r;
    const i = this.state.pos;
    do
      r = this.input.charCodeAt(++this.state.pos);
    while (Ey(r) || r === 45);
    this.finishToken(138, this.input.slice(i, this.state.pos));
  }
  jsxParseIdentifier() {
    const r = this.startNode();
    return this.match(138) ? r.name = this.state.value : S4(this.state.type) ? r.name = Ch(this.state.type) : this.unexpected(), this.next(), this.finishNode(r, "JSXIdentifier");
  }
  jsxParseNamespacedName() {
    const r = this.state.startLoc, i = this.jsxParseIdentifier();
    if (!this.eat(14))
      return i;
    const n = this.startNodeAt(r);
    return n.namespace = i, n.name = this.jsxParseIdentifier(), this.finishNode(n, "JSXNamespacedName");
  }
  jsxParseElementName() {
    const r = this.state.startLoc;
    let i = this.jsxParseNamespacedName();
    if (i.type === "JSXNamespacedName")
      return i;
    for (; this.eat(16); ) {
      const n = this.startNodeAt(r);
      n.object = i, n.property = this.jsxParseIdentifier(), i = this.finishNode(n, "JSXMemberExpression");
    }
    return i;
  }
  jsxParseAttributeValue() {
    let r;
    switch (this.state.type) {
      case 5:
        return r = this.startNode(), this.setContext(Vi.brace), this.next(), r = this.jsxParseExpressionContainer(r, Vi.j_oTag), r.expression.type === "JSXEmptyExpression" && this.raise(Qh.AttributeIsEmpty, {
          at: r
        }), r;
      case 140:
      case 131:
        return this.parseExprAtom();
      default:
        throw this.raise(Qh.UnsupportedJsxValue, {
          at: this.state.startLoc
        });
    }
  }
  jsxParseEmptyExpression() {
    const r = this.startNodeAt(this.state.lastTokEndLoc);
    return this.finishNodeAt(r, "JSXEmptyExpression", this.state.startLoc);
  }
  jsxParseSpreadChild(r) {
    return this.next(), r.expression = this.parseExpression(), this.setContext(Vi.j_expr), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(r, "JSXSpreadChild");
  }
  jsxParseExpressionContainer(r, i) {
    if (this.match(8))
      r.expression = this.jsxParseEmptyExpression();
    else {
      const n = this.parseExpression();
      r.expression = n;
    }
    return this.setContext(i), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(r, "JSXExpressionContainer");
  }
  jsxParseAttribute() {
    const r = this.startNode();
    return this.match(5) ? (this.setContext(Vi.brace), this.next(), this.expect(21), r.argument = this.parseMaybeAssignAllowIn(), this.setContext(Vi.j_oTag), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(r, "JSXSpreadAttribute")) : (r.name = this.jsxParseNamespacedName(), r.value = this.eat(29) ? this.jsxParseAttributeValue() : null, this.finishNode(r, "JSXAttribute"));
  }
  jsxParseOpeningElementAt(r) {
    const i = this.startNodeAt(r);
    return this.eat(141) ? this.finishNode(i, "JSXOpeningFragment") : (i.name = this.jsxParseElementName(), this.jsxParseOpeningElementAfterName(i));
  }
  jsxParseOpeningElementAfterName(r) {
    const i = [];
    for (; !this.match(56) && !this.match(141); )
      i.push(this.jsxParseAttribute());
    return r.attributes = i, r.selfClosing = this.eat(56), this.expect(141), this.finishNode(r, "JSXOpeningElement");
  }
  jsxParseClosingElementAt(r) {
    const i = this.startNodeAt(r);
    return this.eat(141) ? this.finishNode(i, "JSXClosingFragment") : (i.name = this.jsxParseElementName(), this.expect(141), this.finishNode(i, "JSXClosingElement"));
  }
  jsxParseElementAt(r) {
    const i = this.startNodeAt(r), n = [], s = this.jsxParseOpeningElementAt(r);
    let a = null;
    if (!s.selfClosing) {
      e:
        for (; ; )
          switch (this.state.type) {
            case 140:
              if (r = this.state.startLoc, this.next(), this.eat(56)) {
                a = this.jsxParseClosingElementAt(r);
                break e;
              }
              n.push(this.jsxParseElementAt(r));
              break;
            case 139:
              n.push(this.parseExprAtom());
              break;
            case 5: {
              const o = this.startNode();
              this.setContext(Vi.brace), this.next(), this.match(21) ? n.push(this.jsxParseSpreadChild(o)) : n.push(this.jsxParseExpressionContainer(o, Vi.j_expr));
              break;
            }
            default:
              this.unexpected();
          }
      Gf(s) && !Gf(a) && a !== null ? this.raise(Qh.MissingClosingTagFragment, {
        at: a
      }) : !Gf(s) && Gf(a) ? this.raise(Qh.MissingClosingTagElement, {
        at: a,
        openingTagName: fy(s.name)
      }) : !Gf(s) && !Gf(a) && fy(a.name) !== fy(s.name) && this.raise(Qh.MissingClosingTagElement, {
        at: a,
        openingTagName: fy(s.name)
      });
    }
    if (Gf(s) ? (i.openingFragment = s, i.closingFragment = a) : (i.openingElement = s, i.closingElement = a), i.children = n, this.match(47))
      throw this.raise(Qh.UnwrappedAdjacentJSXElements, {
        at: this.state.startLoc
      });
    return Gf(s) ? this.finishNode(i, "JSXFragment") : this.finishNode(i, "JSXElement");
  }
  jsxParseElement() {
    const r = this.state.startLoc;
    return this.next(), this.jsxParseElementAt(r);
  }
  setContext(r) {
    const {
      context: i
    } = this.state;
    i[i.length - 1] = r;
  }
  parseExprAtom(r) {
    return this.match(139) ? this.parseLiteral(this.state.value, "JSXText") : this.match(140) ? this.jsxParseElement() : this.match(47) && this.input.charCodeAt(this.state.pos) !== 33 ? (this.replaceToken(140), this.jsxParseElement()) : super.parseExprAtom(r);
  }
  skipSpace() {
    this.curContext().preserveSpace || super.skipSpace();
  }
  getTokenFromCode(r) {
    const i = this.curContext();
    if (i === Vi.j_expr) {
      this.jsxReadToken();
      return;
    }
    if (i === Vi.j_oTag || i === Vi.j_cTag) {
      if (rf(r)) {
        this.jsxReadWord();
        return;
      }
      if (r === 62) {
        ++this.state.pos, this.finishToken(141);
        return;
      }
      if ((r === 34 || r === 39) && i === Vi.j_oTag) {
        this.jsxReadString(r);
        return;
      }
    }
    if (r === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) {
      ++this.state.pos, this.finishToken(140);
      return;
    }
    super.getTokenFromCode(r);
  }
  updateContext(r) {
    const {
      context: i,
      type: n
    } = this.state;
    if (n === 56 && r === 140)
      i.splice(-2, 2, Vi.j_cTag), this.state.canStartJSXElement = !1;
    else if (n === 140)
      i.push(Vi.j_oTag);
    else if (n === 141) {
      const s = i[i.length - 1];
      s === Vi.j_oTag && r === 56 || s === Vi.j_cTag ? (i.pop(), this.state.canStartJSXElement = i[i.length - 1] === Vi.j_expr) : (this.setContext(Vi.j_expr), this.state.canStartJSXElement = !0);
    } else
      this.state.canStartJSXElement = Nxe(n);
  }
};
let t1e = class extends _4 {
  constructor(...t) {
    super(...t), this.types = /* @__PURE__ */ new Set(), this.enums = /* @__PURE__ */ new Set(), this.constEnums = /* @__PURE__ */ new Set(), this.classes = /* @__PURE__ */ new Set(), this.exportOnlyBindings = /* @__PURE__ */ new Set();
  }
}, r1e = class extends I4 {
  constructor(...t) {
    super(...t), this.importsStack = [];
  }
  createScope(t) {
    return this.importsStack.push(/* @__PURE__ */ new Set()), new t1e(t);
  }
  enter(t) {
    t == Py && this.importsStack.push(/* @__PURE__ */ new Set()), super.enter(t);
  }
  exit() {
    const t = super.exit();
    return t == Py && this.importsStack.pop(), t;
  }
  hasImport(t, r) {
    const i = this.importsStack.length;
    if (this.importsStack[i - 1].has(t))
      return !0;
    if (!r && i > 1) {
      for (let n = 0; n < i - 1; n++)
        if (this.importsStack[n].has(t))
          return !0;
    }
    return !1;
  }
  declareName(t, r, i) {
    if (r & W0) {
      this.hasImport(t, !0) && this.parser.raise(nt.VarRedeclaration, {
        at: i,
        identifierName: t
      }), this.importsStack[this.importsStack.length - 1].add(t);
      return;
    }
    const n = this.currentScope();
    if (r & w4) {
      this.maybeExportDefined(n, t), n.exportOnlyBindings.add(t);
      return;
    }
    super.declareName(t, r, i), r & zd && (r & hp || (this.checkRedeclarationInScope(n, t, r, i), this.maybeExportDefined(n, t)), n.types.add(t)), r & qB && n.enums.add(t), r & VB && n.constEnums.add(t), r & aw && n.classes.add(t);
  }
  isRedeclaredInScope(t, r, i) {
    if (t.enums.has(r)) {
      if (i & qB) {
        const n = !!(i & VB), s = t.constEnums.has(r);
        return n !== s;
      }
      return !0;
    }
    return i & aw && t.classes.has(r) ? t.lexical.has(r) ? !!(i & hp) : !1 : i & zd && t.types.has(r) ? !0 : super.isRedeclaredInScope(t, r, i);
  }
  checkLocalExport(t) {
    const {
      name: r
    } = t;
    if (this.hasImport(r))
      return;
    const i = this.scopeStack.length;
    for (let n = i - 1; n >= 0; n--) {
      const s = this.scopeStack[n];
      if (s.types.has(r) || s.exportOnlyBindings.has(r))
        return;
    }
    super.checkLocalExport(t);
  }
};
const i1e = (e, t) => Object.hasOwnProperty.call(e, t) && e[t], Ale = (e) => e.type === "ParenthesizedExpression" ? Ale(e.expression) : e;
let n1e = class extends KEe {
  toAssignable(t, r = !1) {
    var i, n;
    let s;
    switch ((t.type === "ParenthesizedExpression" || (i = t.extra) != null && i.parenthesized) && (s = Ale(t), r ? s.type === "Identifier" ? this.expressionScope.recordArrowParameterBindingError(nt.InvalidParenthesizedAssignment, {
      at: t
    }) : s.type !== "MemberExpression" && this.raise(nt.InvalidParenthesizedAssignment, {
      at: t
    }) : this.raise(nt.InvalidParenthesizedAssignment, {
      at: t
    })), t.type) {
      case "Identifier":
      case "ObjectPattern":
      case "ArrayPattern":
      case "AssignmentPattern":
      case "RestElement":
        break;
      case "ObjectExpression":
        t.type = "ObjectPattern";
        for (let o = 0, l = t.properties.length, u = l - 1; o < l; o++) {
          var a;
          const c = t.properties[o], f = o === u;
          this.toAssignableObjectExpressionProp(c, f, r), f && c.type === "RestElement" && (a = t.extra) != null && a.trailingCommaLoc && this.raise(nt.RestTrailingComma, {
            at: t.extra.trailingCommaLoc
          });
        }
        break;
      case "ObjectProperty": {
        const {
          key: o,
          value: l
        } = t;
        this.isPrivateName(o) && this.classScope.usePrivateName(this.getPrivateNameSV(o), o.loc.start), this.toAssignable(l, r);
        break;
      }
      case "SpreadElement":
        throw new Error("Internal @babel/parser error (this is a bug, please report it). SpreadElement should be converted by .toAssignable's caller.");
      case "ArrayExpression":
        t.type = "ArrayPattern", this.toAssignableList(t.elements, (n = t.extra) == null ? void 0 : n.trailingCommaLoc, r);
        break;
      case "AssignmentExpression":
        t.operator !== "=" && this.raise(nt.MissingEqInAssignment, {
          at: t.left.loc.end
        }), t.type = "AssignmentPattern", delete t.operator, this.toAssignable(t.left, r);
        break;
      case "ParenthesizedExpression":
        this.toAssignable(s, r);
        break;
    }
  }
  toAssignableObjectExpressionProp(t, r, i) {
    if (t.type === "ObjectMethod")
      this.raise(t.kind === "get" || t.kind === "set" ? nt.PatternHasAccessor : nt.PatternHasMethod, {
        at: t.key
      });
    else if (t.type === "SpreadElement") {
      t.type = "RestElement";
      const n = t.argument;
      this.checkToRestConversion(n, !1), this.toAssignable(n, i), r || this.raise(nt.RestTrailingComma, {
        at: t
      });
    } else
      this.toAssignable(t, i);
  }
  toAssignableList(t, r, i) {
    const n = t.length - 1;
    for (let s = 0; s <= n; s++) {
      const a = t[s];
      if (a) {
        if (a.type === "SpreadElement") {
          a.type = "RestElement";
          const o = a.argument;
          this.checkToRestConversion(o, !0), this.toAssignable(o, i);
        } else
          this.toAssignable(a, i);
        a.type === "RestElement" && (s < n ? this.raise(nt.RestTrailingComma, {
          at: a
        }) : r && this.raise(nt.RestTrailingComma, {
          at: r
        }));
      }
    }
  }
  isAssignable(t, r) {
    switch (t.type) {
      case "Identifier":
      case "ObjectPattern":
      case "ArrayPattern":
      case "AssignmentPattern":
      case "RestElement":
        return !0;
      case "ObjectExpression": {
        const i = t.properties.length - 1;
        return t.properties.every((n, s) => n.type !== "ObjectMethod" && (s === i || n.type !== "SpreadElement") && this.isAssignable(n));
      }
      case "ObjectProperty":
        return this.isAssignable(t.value);
      case "SpreadElement":
        return this.isAssignable(t.argument);
      case "ArrayExpression":
        return t.elements.every((i) => i === null || this.isAssignable(i));
      case "AssignmentExpression":
        return t.operator === "=";
      case "ParenthesizedExpression":
        return this.isAssignable(t.expression);
      case "MemberExpression":
      case "OptionalMemberExpression":
        return !r;
      default:
        return !1;
    }
  }
  toReferencedList(t, r) {
    return t;
  }
  toReferencedListDeep(t, r) {
    this.toReferencedList(t, r);
    for (const i of t)
      (i == null ? void 0 : i.type) === "ArrayExpression" && this.toReferencedListDeep(i.elements);
  }
  parseSpread(t) {
    const r = this.startNode();
    return this.next(), r.argument = this.parseMaybeAssignAllowIn(t, void 0), this.finishNode(r, "SpreadElement");
  }
  parseRestBinding() {
    const t = this.startNode();
    return this.next(), t.argument = this.parseBindingAtom(), this.finishNode(t, "RestElement");
  }
  parseBindingAtom() {
    switch (this.state.type) {
      case 0: {
        const t = this.startNode();
        return this.next(), t.elements = this.parseBindingList(3, 93, 1), this.finishNode(t, "ArrayPattern");
      }
      case 5:
        return this.parseObjectLike(8, !0);
    }
    return this.parseIdentifier();
  }
  parseBindingList(t, r, i) {
    const n = i & 1, s = [];
    let a = !0;
    for (; !this.eat(t); )
      if (a ? a = !1 : this.expect(12), n && this.match(12))
        s.push(null);
      else {
        if (this.eat(t))
          break;
        if (this.match(21)) {
          if (s.push(this.parseAssignableListItemTypes(this.parseRestBinding(), i)), !this.checkCommaAfterRest(r)) {
            this.expect(t);
            break;
          }
        } else {
          const o = [];
          for (this.match(26) && this.hasPlugin("decorators") && this.raise(nt.UnsupportedParameterDecorator, {
            at: this.state.startLoc
          }); this.match(26); )
            o.push(this.parseDecorator());
          s.push(this.parseAssignableListItem(i, o));
        }
      }
    return s;
  }
  parseBindingRestProperty(t) {
    return this.next(), t.argument = this.parseIdentifier(), this.checkCommaAfterRest(125), this.finishNode(t, "RestElement");
  }
  parseBindingProperty() {
    const t = this.startNode(), {
      type: r,
      startLoc: i
    } = this.state;
    return r === 21 ? this.parseBindingRestProperty(t) : (r === 136 ? (this.expectPlugin("destructuringPrivate", i), this.classScope.usePrivateName(this.state.value, i), t.key = this.parsePrivateName()) : this.parsePropertyName(t), t.method = !1, this.parseObjPropValue(t, i, !1, !1, !0, !1));
  }
  parseAssignableListItem(t, r) {
    const i = this.parseMaybeDefault();
    this.parseAssignableListItemTypes(i, t);
    const n = this.parseMaybeDefault(i.loc.start, i);
    return r.length && (i.decorators = r), n;
  }
  parseAssignableListItemTypes(t, r) {
    return t;
  }
  parseMaybeDefault(t, r) {
    var i, n;
    if ((i = t) != null || (t = this.state.startLoc), r = (n = r) != null ? n : this.parseBindingAtom(), !this.eat(29))
      return r;
    const s = this.startNodeAt(t);
    return s.left = r, s.right = this.parseMaybeAssignAllowIn(), this.finishNode(s, "AssignmentPattern");
  }
  isValidLVal(t, r, i) {
    return i1e({
      AssignmentPattern: "left",
      RestElement: "argument",
      ObjectProperty: "value",
      ParenthesizedExpression: "expression",
      ArrayPattern: "elements",
      ObjectPattern: "properties"
    }, t);
  }
  checkLVal(t, {
    in: r,
    binding: i = bh,
    checkClashes: n = !1,
    strictModeChanged: s = !1,
    hasParenthesizedAncestor: a = !1
  }) {
    var o;
    const l = t.type;
    if (this.isObjectMethod(t))
      return;
    if (l === "MemberExpression") {
      i !== bh && this.raise(nt.InvalidPropertyBindingPattern, {
        at: t
      });
      return;
    }
    if (l === "Identifier") {
      this.checkIdentifier(t, i, s);
      const {
        name: m
      } = t;
      n && (n.has(m) ? this.raise(nt.ParamDupe, {
        at: t
      }) : n.add(m));
      return;
    }
    const u = this.isValidLVal(l, !(a || (o = t.extra) != null && o.parenthesized) && r.type === "AssignmentExpression", i);
    if (u === !0)
      return;
    if (u === !1) {
      const m = i === bh ? nt.InvalidLhs : nt.InvalidLhsBinding;
      this.raise(m, {
        at: t,
        ancestor: r
      });
      return;
    }
    const [c, f] = Array.isArray(u) ? u : [u, l === "ParenthesizedExpression"], h = l === "ArrayPattern" || l === "ObjectPattern" || l === "ParenthesizedExpression" ? {
      type: l
    } : r;
    for (const m of [].concat(t[c]))
      m && this.checkLVal(m, {
        in: h,
        binding: i,
        checkClashes: n,
        strictModeChanged: s,
        hasParenthesizedAncestor: f
      });
  }
  checkIdentifier(t, r, i = !1) {
    this.state.strict && (i ? lle(t.name, this.inModule) : ole(t.name)) && (r === bh ? this.raise(nt.StrictEvalArguments, {
      at: t,
      referenceName: t.name
    }) : this.raise(nt.StrictEvalArgumentsBinding, {
      at: t,
      bindingName: t.name
    })), r & eC && t.name === "let" && this.raise(nt.LetInLexicalBinding, {
      at: t
    }), r & bh || this.declareNameFromIdentifier(t, r);
  }
  declareNameFromIdentifier(t, r) {
    this.scope.declareName(t.name, r, t.loc.start);
  }
  checkToRestConversion(t, r) {
    switch (t.type) {
      case "ParenthesizedExpression":
        this.checkToRestConversion(t.expression, r);
        break;
      case "Identifier":
      case "MemberExpression":
        break;
      case "ArrayExpression":
      case "ObjectExpression":
        if (r)
          break;
      default:
        this.raise(nt.InvalidRestAssignmentPattern, {
          at: t
        });
    }
  }
  checkCommaAfterRest(t) {
    return this.match(12) ? (this.raise(this.lookaheadCharCode() === t ? nt.RestTrailingComma : nt.ElementAfterRest, {
      at: this.state.startLoc
    }), !0) : !1;
  }
};
const s1e = (e, t) => Object.hasOwnProperty.call(e, t) && e[t];
function a1e(e) {
  if (e == null)
    throw new Error("Unexpected ".concat(e, " value."));
  return e;
}
function Xq(e) {
  if (!e)
    throw new Error("Assert fail");
}
var fne;
const Kt = lf(fne || (fne = at(["typescript"])))({
  AbstractMethodHasImplementation: ({
    methodName: e
  }) => "Method '".concat(e, "' cannot have an implementation because it is marked abstract."),
  AbstractPropertyHasInitializer: ({
    propertyName: e
  }) => "Property '".concat(e, "' cannot have an initializer because it is marked abstract."),
  AccesorCannotDeclareThisParameter: "'get' and 'set' accessors cannot declare 'this' parameters.",
  AccesorCannotHaveTypeParameters: "An accessor cannot have type parameters.",
  AccessorCannotBeOptional: "An 'accessor' property cannot be declared optional.",
  ClassMethodHasDeclare: "Class methods cannot have the 'declare' modifier.",
  ClassMethodHasReadonly: "Class methods cannot have the 'readonly' modifier.",
  ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference: "A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.",
  ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.",
  DeclareAccessor: ({
    kind: e
  }) => "'declare' is not allowed in ".concat(e, "ters."),
  DeclareClassFieldHasInitializer: "Initializers are not allowed in ambient contexts.",
  DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.",
  DuplicateAccessibilityModifier: ({
    modifier: e
  }) => "Accessibility modifier already seen.",
  DuplicateModifier: ({
    modifier: e
  }) => "Duplicate modifier: '".concat(e, "'."),
  EmptyHeritageClauseType: ({
    token: e
  }) => "'".concat(e, "' list cannot be empty."),
  EmptyTypeArguments: "Type argument list cannot be empty.",
  EmptyTypeParameters: "Type parameter list cannot be empty.",
  ExpectedAmbientAfterExportDeclare: "'export declare' must be followed by an ambient declaration.",
  ImportAliasHasImportType: "An import alias can not use 'import type'.",
  ImportReflectionHasImportType: "An `import module` declaration can not use `type` modifier",
  IncompatibleModifiers: ({
    modifiers: e
  }) => "'".concat(e[0], "' modifier cannot be used with '").concat(e[1], "' modifier."),
  IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier.",
  IndexSignatureHasAccessibility: ({
    modifier: e
  }) => "Index signatures cannot have an accessibility modifier ('".concat(e, "')."),
  IndexSignatureHasDeclare: "Index signatures cannot have the 'declare' modifier.",
  IndexSignatureHasOverride: "'override' modifier cannot appear on an index signature.",
  IndexSignatureHasStatic: "Index signatures cannot have the 'static' modifier.",
  InitializerNotAllowedInAmbientContext: "Initializers are not allowed in ambient contexts.",
  InvalidModifierOnTypeMember: ({
    modifier: e
  }) => "'".concat(e, "' modifier cannot appear on a type member."),
  InvalidModifierOnTypeParameter: ({
    modifier: e
  }) => "'".concat(e, "' modifier cannot appear on a type parameter."),
  InvalidModifierOnTypeParameterPositions: ({
    modifier: e
  }) => "'".concat(e, "' modifier can only appear on a type parameter of a class, interface or type alias."),
  InvalidModifiersOrder: ({
    orderedModifiers: e
  }) => "'".concat(e[0], "' modifier must precede '").concat(e[1], "' modifier."),
  InvalidPropertyAccessAfterInstantiationExpression: "Invalid property access after an instantiation expression. You can either wrap the instantiation expression in parentheses, or delete the type arguments.",
  InvalidTupleMemberLabel: "Tuple members must be labeled with a simple identifier.",
  MissingInterfaceName: "'interface' declarations must be followed by an identifier.",
  MixedLabeledAndUnlabeledElements: "Tuple members must all have names or all not have names.",
  NonAbstractClassHasAbstractMethod: "Abstract methods can only appear within an abstract class.",
  NonClassMethodPropertyHasAbstractModifer: "'abstract' modifier can only appear on a class, method, or property declaration.",
  OptionalTypeBeforeRequired: "A required element cannot follow an optional element.",
  OverrideNotInSubClass: "This member cannot have an 'override' modifier because its containing class does not extend another class.",
  PatternIsOptional: "A binding pattern parameter cannot be optional in an implementation signature.",
  PrivateElementHasAbstract: "Private elements cannot have the 'abstract' modifier.",
  PrivateElementHasAccessibility: ({
    modifier: e
  }) => "Private elements cannot have an accessibility modifier ('".concat(e, "')."),
  ReadonlyForMethodSignature: "'readonly' modifier can only appear on a property declaration or index signature.",
  ReservedArrowTypeParam: "This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `<T,>() => ...`.",
  ReservedTypeAssertion: "This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.",
  SetAccesorCannotHaveOptionalParameter: "A 'set' accessor cannot have an optional parameter.",
  SetAccesorCannotHaveRestParameter: "A 'set' accessor cannot have rest parameter.",
  SetAccesorCannotHaveReturnType: "A 'set' accessor cannot have a return type annotation.",
  SingleTypeParameterWithoutTrailingComma: ({
    typeParameterName: e
  }) => "Single type parameter ".concat(e, " should have a trailing comma. Example usage: <").concat(e, ",>."),
  StaticBlockCannotHaveModifier: "Static class blocks cannot have any modifier.",
  TupleOptionalAfterType: "A labeled tuple optional element must be declared using a question mark after the name and before the colon (`name?: type`), rather than after the type (`name: type?`).",
  TypeAnnotationAfterAssign: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",
  TypeImportCannotSpecifyDefaultAndNamed: "A type-only import can specify a default import or named bindings, but not both.",
  TypeModifierIsUsedInTypeExports: "The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.",
  TypeModifierIsUsedInTypeImports: "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.",
  UnexpectedParameterModifier: "A parameter property is only allowed in a constructor implementation.",
  UnexpectedReadonly: "'readonly' type modifier is only permitted on array and tuple literal types.",
  UnexpectedTypeAnnotation: "Did not expect a type annotation here.",
  UnexpectedTypeCastInParameter: "Unexpected type cast in parameter position.",
  UnsupportedImportTypeArgument: "Argument in a type import must be a string literal.",
  UnsupportedParameterPropertyKind: "A parameter property may not be declared using a binding pattern.",
  UnsupportedSignatureParameterKind: ({
    type: e
  }) => "Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ".concat(e, ".")
});
function o1e(e) {
  switch (e) {
    case "any":
      return "TSAnyKeyword";
    case "boolean":
      return "TSBooleanKeyword";
    case "bigint":
      return "TSBigIntKeyword";
    case "never":
      return "TSNeverKeyword";
    case "number":
      return "TSNumberKeyword";
    case "object":
      return "TSObjectKeyword";
    case "string":
      return "TSStringKeyword";
    case "symbol":
      return "TSSymbolKeyword";
    case "undefined":
      return "TSUndefinedKeyword";
    case "unknown":
      return "TSUnknownKeyword";
    default:
      return;
  }
}
function Jq(e) {
  return e === "private" || e === "public" || e === "protected";
}
function l1e(e) {
  return e === "in" || e === "out";
}
var u1e = (e) => class extends e {
  constructor(...r) {
    super(...r), this.tsParseInOutModifiers = this.tsParseModifiers.bind(this, {
      allowedModifiers: ["in", "out"],
      disallowedModifiers: ["const", "public", "private", "protected", "readonly", "declare", "abstract", "override"],
      errorTemplate: Kt.InvalidModifierOnTypeParameter
    }), this.tsParseConstModifier = this.tsParseModifiers.bind(this, {
      allowedModifiers: ["const"],
      disallowedModifiers: ["in", "out"],
      errorTemplate: Kt.InvalidModifierOnTypeParameterPositions
    }), this.tsParseInOutConstModifiers = this.tsParseModifiers.bind(this, {
      allowedModifiers: ["in", "out", "const"],
      disallowedModifiers: ["public", "private", "protected", "readonly", "declare", "abstract", "override"],
      errorTemplate: Kt.InvalidModifierOnTypeParameter
    });
  }
  getScopeHandler() {
    return r1e;
  }
  tsIsIdentifier() {
    return gi(this.state.type);
  }
  tsTokenCanFollowModifier() {
    return (this.match(0) || this.match(5) || this.match(55) || this.match(21) || this.match(136) || this.isLiteralPropertyName()) && !this.hasPrecedingLineBreak();
  }
  tsNextTokenCanFollowModifier() {
    return this.next(), this.tsTokenCanFollowModifier();
  }
  tsParseModifier(r, i) {
    if (!gi(this.state.type) && this.state.type !== 58 && this.state.type !== 75)
      return;
    const n = this.state.value;
    if (r.indexOf(n) !== -1) {
      if (i && this.tsIsStartOfStaticBlocks())
        return;
      if (this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))
        return n;
    }
  }
  tsParseModifiers({
    allowedModifiers: r,
    disallowedModifiers: i,
    stopOnStartOfClassStaticBlock: n,
    errorTemplate: s = Kt.InvalidModifierOnTypeMember
  }, a) {
    const o = (u, c, f, h) => {
      c === f && a[h] && this.raise(Kt.InvalidModifiersOrder, {
        at: u,
        orderedModifiers: [f, h]
      });
    }, l = (u, c, f, h) => {
      (a[f] && c === h || a[h] && c === f) && this.raise(Kt.IncompatibleModifiers, {
        at: u,
        modifiers: [f, h]
      });
    };
    for (; ; ) {
      const {
        startLoc: u
      } = this.state, c = this.tsParseModifier(r.concat(i != null ? i : []), n);
      if (!c)
        break;
      Jq(c) ? a.accessibility ? this.raise(Kt.DuplicateAccessibilityModifier, {
        at: u,
        modifier: c
      }) : (o(u, c, c, "override"), o(u, c, c, "static"), o(u, c, c, "readonly"), a.accessibility = c) : l1e(c) ? (a[c] && this.raise(Kt.DuplicateModifier, {
        at: u,
        modifier: c
      }), a[c] = !0, o(u, c, "in", "out")) : (Object.hasOwnProperty.call(a, c) ? this.raise(Kt.DuplicateModifier, {
        at: u,
        modifier: c
      }) : (o(u, c, "static", "readonly"), o(u, c, "static", "override"), o(u, c, "override", "readonly"), o(u, c, "abstract", "override"), l(u, c, "declare", "override"), l(u, c, "static", "abstract")), a[c] = !0), i != null && i.includes(c) && this.raise(s, {
        at: u,
        modifier: c
      });
    }
  }
  tsIsListTerminator(r) {
    switch (r) {
      case "EnumMembers":
      case "TypeMembers":
        return this.match(8);
      case "HeritageClauseElement":
        return this.match(5);
      case "TupleElementTypes":
        return this.match(3);
      case "TypeParametersOrArguments":
        return this.match(48);
    }
  }
  tsParseList(r, i) {
    const n = [];
    for (; !this.tsIsListTerminator(r); )
      n.push(i());
    return n;
  }
  tsParseDelimitedList(r, i, n) {
    return a1e(this.tsParseDelimitedListWorker(r, i, !0, n));
  }
  tsParseDelimitedListWorker(r, i, n, s) {
    const a = [];
    let o = -1;
    for (; !this.tsIsListTerminator(r); ) {
      o = -1;
      const l = i();
      if (l == null)
        return;
      if (a.push(l), this.eat(12)) {
        o = this.state.lastTokStart;
        continue;
      }
      if (this.tsIsListTerminator(r))
        break;
      n && this.expect(12);
      return;
    }
    return s && (s.value = o), a;
  }
  tsParseBracketedList(r, i, n, s, a) {
    s || (n ? this.expect(0) : this.expect(47));
    const o = this.tsParseDelimitedList(r, i, a);
    return n ? this.expect(3) : this.expect(48), o;
  }
  tsParseImportType() {
    const r = this.startNode();
    return this.expect(83), this.expect(10), this.match(131) || this.raise(Kt.UnsupportedImportTypeArgument, {
      at: this.state.startLoc
    }), r.argument = super.parseExprAtom(), this.expect(11), this.eat(16) && (r.qualifier = this.tsParseEntityName()), this.match(47) && (r.typeParameters = this.tsParseTypeArguments()), this.finishNode(r, "TSImportType");
  }
  tsParseEntityName(r = !0) {
    let i = this.parseIdentifier(r);
    for (; this.eat(16); ) {
      const n = this.startNodeAtNode(i);
      n.left = i, n.right = this.parseIdentifier(r), i = this.finishNode(n, "TSQualifiedName");
    }
    return i;
  }
  tsParseTypeReference() {
    const r = this.startNode();
    return r.typeName = this.tsParseEntityName(), !this.hasPrecedingLineBreak() && this.match(47) && (r.typeParameters = this.tsParseTypeArguments()), this.finishNode(r, "TSTypeReference");
  }
  tsParseThisTypePredicate(r) {
    this.next();
    const i = this.startNodeAtNode(r);
    return i.parameterName = r, i.typeAnnotation = this.tsParseTypeAnnotation(!1), i.asserts = !1, this.finishNode(i, "TSTypePredicate");
  }
  tsParseThisTypeNode() {
    const r = this.startNode();
    return this.next(), this.finishNode(r, "TSThisType");
  }
  tsParseTypeQuery() {
    const r = this.startNode();
    return this.expect(87), this.match(83) ? r.exprName = this.tsParseImportType() : r.exprName = this.tsParseEntityName(), !this.hasPrecedingLineBreak() && this.match(47) && (r.typeParameters = this.tsParseTypeArguments()), this.finishNode(r, "TSTypeQuery");
  }
  tsParseTypeParameter(r) {
    const i = this.startNode();
    return r(i), i.name = this.tsParseTypeParameterName(), i.constraint = this.tsEatThenParseType(81), i.default = this.tsEatThenParseType(29), this.finishNode(i, "TSTypeParameter");
  }
  tsTryParseTypeParameters(r) {
    if (this.match(47))
      return this.tsParseTypeParameters(r);
  }
  tsParseTypeParameters(r) {
    const i = this.startNode();
    this.match(47) || this.match(140) ? this.next() : this.unexpected();
    const n = {
      value: -1
    };
    return i.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this, r), !1, !0, n), i.params.length === 0 && this.raise(Kt.EmptyTypeParameters, {
      at: i
    }), n.value !== -1 && this.addExtra(i, "trailingComma", n.value), this.finishNode(i, "TSTypeParameterDeclaration");
  }
  tsFillSignature(r, i) {
    const n = r === 19, s = "parameters", a = "typeAnnotation";
    i.typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier), this.expect(10), i[s] = this.tsParseBindingListForSignature(), n ? i[a] = this.tsParseTypeOrTypePredicateAnnotation(r) : this.match(r) && (i[a] = this.tsParseTypeOrTypePredicateAnnotation(r));
  }
  tsParseBindingListForSignature() {
    return super.parseBindingList(11, 41, 2).map((r) => (r.type !== "Identifier" && r.type !== "RestElement" && r.type !== "ObjectPattern" && r.type !== "ArrayPattern" && this.raise(Kt.UnsupportedSignatureParameterKind, {
      at: r,
      type: r.type
    }), r));
  }
  tsParseTypeMemberSemicolon() {
    !this.eat(12) && !this.isLineTerminator() && this.expect(13);
  }
  tsParseSignatureMember(r, i) {
    return this.tsFillSignature(14, i), this.tsParseTypeMemberSemicolon(), this.finishNode(i, r);
  }
  tsIsUnambiguouslyIndexSignature() {
    return this.next(), gi(this.state.type) ? (this.next(), this.match(14)) : !1;
  }
  tsTryParseIndexSignature(r) {
    if (!(this.match(0) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))))
      return;
    this.expect(0);
    const i = this.parseIdentifier();
    i.typeAnnotation = this.tsParseTypeAnnotation(), this.resetEndLocation(i), this.expect(3), r.parameters = [i];
    const n = this.tsTryParseTypeAnnotation();
    return n && (r.typeAnnotation = n), this.tsParseTypeMemberSemicolon(), this.finishNode(r, "TSIndexSignature");
  }
  tsParsePropertyOrMethodSignature(r, i) {
    this.eat(17) && (r.optional = !0);
    const n = r;
    if (this.match(10) || this.match(47)) {
      i && this.raise(Kt.ReadonlyForMethodSignature, {
        at: r
      });
      const s = n;
      s.kind && this.match(47) && this.raise(Kt.AccesorCannotHaveTypeParameters, {
        at: this.state.curPosition()
      }), this.tsFillSignature(14, s), this.tsParseTypeMemberSemicolon();
      const a = "parameters", o = "typeAnnotation";
      if (s.kind === "get")
        s[a].length > 0 && (this.raise(nt.BadGetterArity, {
          at: this.state.curPosition()
        }), this.isThisParam(s[a][0]) && this.raise(Kt.AccesorCannotDeclareThisParameter, {
          at: this.state.curPosition()
        }));
      else if (s.kind === "set") {
        if (s[a].length !== 1)
          this.raise(nt.BadSetterArity, {
            at: this.state.curPosition()
          });
        else {
          const l = s[a][0];
          this.isThisParam(l) && this.raise(Kt.AccesorCannotDeclareThisParameter, {
            at: this.state.curPosition()
          }), l.type === "Identifier" && l.optional && this.raise(Kt.SetAccesorCannotHaveOptionalParameter, {
            at: this.state.curPosition()
          }), l.type === "RestElement" && this.raise(Kt.SetAccesorCannotHaveRestParameter, {
            at: this.state.curPosition()
          });
        }
        s[o] && this.raise(Kt.SetAccesorCannotHaveReturnType, {
          at: s[o]
        });
      } else
        s.kind = "method";
      return this.finishNode(s, "TSMethodSignature");
    } else {
      const s = n;
      i && (s.readonly = !0);
      const a = this.tsTryParseTypeAnnotation();
      return a && (s.typeAnnotation = a), this.tsParseTypeMemberSemicolon(), this.finishNode(s, "TSPropertySignature");
    }
  }
  tsParseTypeMember() {
    const r = this.startNode();
    if (this.match(10) || this.match(47))
      return this.tsParseSignatureMember("TSCallSignatureDeclaration", r);
    if (this.match(77)) {
      const n = this.startNode();
      return this.next(), this.match(10) || this.match(47) ? this.tsParseSignatureMember("TSConstructSignatureDeclaration", r) : (r.key = this.createIdentifier(n, "new"), this.tsParsePropertyOrMethodSignature(r, !1));
    }
    this.tsParseModifiers({
      allowedModifiers: ["readonly"],
      disallowedModifiers: ["declare", "abstract", "private", "protected", "public", "static", "override"]
    }, r);
    const i = this.tsTryParseIndexSignature(r);
    return i || (super.parsePropertyName(r), !r.computed && r.key.type === "Identifier" && (r.key.name === "get" || r.key.name === "set") && this.tsTokenCanFollowModifier() && (r.kind = r.key.name, super.parsePropertyName(r)), this.tsParsePropertyOrMethodSignature(r, !!r.readonly));
  }
  tsParseTypeLiteral() {
    const r = this.startNode();
    return r.members = this.tsParseObjectTypeMembers(), this.finishNode(r, "TSTypeLiteral");
  }
  tsParseObjectTypeMembers() {
    this.expect(5);
    const r = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this));
    return this.expect(8), r;
  }
  tsIsStartOfMappedType() {
    return this.next(), this.eat(53) ? this.isContextual(120) : (this.isContextual(120) && this.next(), !this.match(0) || (this.next(), !this.tsIsIdentifier()) ? !1 : (this.next(), this.match(58)));
  }
  tsParseMappedTypeParameter() {
    const r = this.startNode();
    return r.name = this.tsParseTypeParameterName(), r.constraint = this.tsExpectThenParseType(58), this.finishNode(r, "TSTypeParameter");
  }
  tsParseMappedType() {
    const r = this.startNode();
    return this.expect(5), this.match(53) ? (r.readonly = this.state.value, this.next(), this.expectContextual(120)) : this.eatContextual(120) && (r.readonly = !0), this.expect(0), r.typeParameter = this.tsParseMappedTypeParameter(), r.nameType = this.eatContextual(93) ? this.tsParseType() : null, this.expect(3), this.match(53) ? (r.optional = this.state.value, this.next(), this.expect(17)) : this.eat(17) && (r.optional = !0), r.typeAnnotation = this.tsTryParseType(), this.semicolon(), this.expect(8), this.finishNode(r, "TSMappedType");
  }
  tsParseTupleType() {
    const r = this.startNode();
    r.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), !0, !1);
    let i = !1, n = null;
    return r.elementTypes.forEach((s) => {
      var a;
      const {
        type: o
      } = s;
      i && o !== "TSRestType" && o !== "TSOptionalType" && !(o === "TSNamedTupleMember" && s.optional) && this.raise(Kt.OptionalTypeBeforeRequired, {
        at: s
      }), i || (i = o === "TSNamedTupleMember" && s.optional || o === "TSOptionalType");
      let l = o;
      o === "TSRestType" && (s = s.typeAnnotation, l = s.type);
      const u = l === "TSNamedTupleMember";
      (a = n) != null || (n = u), n !== u && this.raise(Kt.MixedLabeledAndUnlabeledElements, {
        at: s
      });
    }), this.finishNode(r, "TSTupleType");
  }
  tsParseTupleElementType() {
    const {
      startLoc: r
    } = this.state, i = this.eat(21);
    let n, s, a, o;
    const u = op(this.state.type) ? this.lookaheadCharCode() : null;
    if (u === 58)
      n = !0, a = !1, s = this.parseIdentifier(!0), this.expect(14), o = this.tsParseType();
    else if (u === 63) {
      a = !0;
      const c = this.state.startLoc, f = this.state.value, h = this.tsParseNonArrayType();
      this.lookaheadCharCode() === 58 ? (n = !0, s = this.createIdentifier(this.startNodeAt(c), f), this.expect(17), this.expect(14), o = this.tsParseType()) : (n = !1, o = h, this.expect(17));
    } else
      o = this.tsParseType(), a = this.eat(17), n = this.eat(14);
    if (n) {
      let c;
      s ? (c = this.startNodeAtNode(s), c.optional = a, c.label = s, c.elementType = o, this.eat(17) && (c.optional = !0, this.raise(Kt.TupleOptionalAfterType, {
        at: this.state.lastTokStartLoc
      }))) : (c = this.startNodeAtNode(o), c.optional = a, this.raise(Kt.InvalidTupleMemberLabel, {
        at: o
      }), c.label = o, c.elementType = this.tsParseType()), o = this.finishNode(c, "TSNamedTupleMember");
    } else if (a) {
      const c = this.startNodeAtNode(o);
      c.typeAnnotation = o, o = this.finishNode(c, "TSOptionalType");
    }
    if (i) {
      const c = this.startNodeAt(r);
      c.typeAnnotation = o, o = this.finishNode(c, "TSRestType");
    }
    return o;
  }
  tsParseParenthesizedType() {
    const r = this.startNode();
    return this.expect(10), r.typeAnnotation = this.tsParseType(), this.expect(11), this.finishNode(r, "TSParenthesizedType");
  }
  tsParseFunctionOrConstructorType(r, i) {
    const n = this.startNode();
    return r === "TSConstructorType" && (n.abstract = !!i, i && this.next(), this.next()), this.tsInAllowConditionalTypesContext(() => this.tsFillSignature(19, n)), this.finishNode(n, r);
  }
  tsParseLiteralTypeNode() {
    const r = this.startNode();
    return r.literal = (() => {
      switch (this.state.type) {
        case 132:
        case 133:
        case 131:
        case 85:
        case 86:
          return super.parseExprAtom();
        default:
          this.unexpected();
      }
    })(), this.finishNode(r, "TSLiteralType");
  }
  tsParseTemplateLiteralType() {
    const r = this.startNode();
    return r.literal = super.parseTemplate(!1), this.finishNode(r, "TSLiteralType");
  }
  parseTemplateSubstitution() {
    return this.state.inType ? this.tsParseType() : super.parseTemplateSubstitution();
  }
  tsParseThisTypeOrThisTypePredicate() {
    const r = this.tsParseThisTypeNode();
    return this.isContextual(114) && !this.hasPrecedingLineBreak() ? this.tsParseThisTypePredicate(r) : r;
  }
  tsParseNonArrayType() {
    switch (this.state.type) {
      case 131:
      case 132:
      case 133:
      case 85:
      case 86:
        return this.tsParseLiteralTypeNode();
      case 53:
        if (this.state.value === "-") {
          const r = this.startNode(), i = this.lookahead();
          return i.type !== 132 && i.type !== 133 && this.unexpected(), r.literal = this.parseMaybeUnary(), this.finishNode(r, "TSLiteralType");
        }
        break;
      case 78:
        return this.tsParseThisTypeOrThisTypePredicate();
      case 87:
        return this.tsParseTypeQuery();
      case 83:
        return this.tsParseImportType();
      case 5:
        return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this)) ? this.tsParseMappedType() : this.tsParseTypeLiteral();
      case 0:
        return this.tsParseTupleType();
      case 10:
        return this.tsParseParenthesizedType();
      case 25:
      case 24:
        return this.tsParseTemplateLiteralType();
      default: {
        const {
          type: r
        } = this.state;
        if (gi(r) || r === 88 || r === 84) {
          const i = r === 88 ? "TSVoidKeyword" : r === 84 ? "TSNullKeyword" : o1e(this.state.value);
          if (i !== void 0 && this.lookaheadCharCode() !== 46) {
            const n = this.startNode();
            return this.next(), this.finishNode(n, i);
          }
          return this.tsParseTypeReference();
        }
      }
    }
    this.unexpected();
  }
  tsParseArrayTypeOrHigher() {
    let r = this.tsParseNonArrayType();
    for (; !this.hasPrecedingLineBreak() && this.eat(0); )
      if (this.match(3)) {
        const i = this.startNodeAtNode(r);
        i.elementType = r, this.expect(3), r = this.finishNode(i, "TSArrayType");
      } else {
        const i = this.startNodeAtNode(r);
        i.objectType = r, i.indexType = this.tsParseType(), this.expect(3), r = this.finishNode(i, "TSIndexedAccessType");
      }
    return r;
  }
  tsParseTypeOperator() {
    const r = this.startNode(), i = this.state.value;
    return this.next(), r.operator = i, r.typeAnnotation = this.tsParseTypeOperatorOrHigher(), i === "readonly" && this.tsCheckTypeAnnotationForReadOnly(r), this.finishNode(r, "TSTypeOperator");
  }
  tsCheckTypeAnnotationForReadOnly(r) {
    switch (r.typeAnnotation.type) {
      case "TSTupleType":
      case "TSArrayType":
        return;
      default:
        this.raise(Kt.UnexpectedReadonly, {
          at: r
        });
    }
  }
  tsParseInferType() {
    const r = this.startNode();
    this.expectContextual(113);
    const i = this.startNode();
    return i.name = this.tsParseTypeParameterName(), i.constraint = this.tsTryParse(() => this.tsParseConstraintForInferType()), r.typeParameter = this.finishNode(i, "TSTypeParameter"), this.finishNode(r, "TSInferType");
  }
  tsParseConstraintForInferType() {
    if (this.eat(81)) {
      const r = this.tsInDisallowConditionalTypesContext(() => this.tsParseType());
      if (this.state.inDisallowConditionalTypesContext || !this.match(17))
        return r;
    }
  }
  tsParseTypeOperatorOrHigher() {
    return Fxe(this.state.type) && !this.state.containsEsc ? this.tsParseTypeOperator() : this.isContextual(113) ? this.tsParseInferType() : this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher());
  }
  tsParseUnionOrIntersectionType(r, i, n) {
    const s = this.startNode(), a = this.eat(n), o = [];
    do
      o.push(i());
    while (this.eat(n));
    return o.length === 1 && !a ? o[0] : (s.types = o, this.finishNode(s, r));
  }
  tsParseIntersectionTypeOrHigher() {
    return this.tsParseUnionOrIntersectionType("TSIntersectionType", this.tsParseTypeOperatorOrHigher.bind(this), 45);
  }
  tsParseUnionTypeOrHigher() {
    return this.tsParseUnionOrIntersectionType("TSUnionType", this.tsParseIntersectionTypeOrHigher.bind(this), 43);
  }
  tsIsStartOfFunctionType() {
    return this.match(47) ? !0 : this.match(10) && this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this));
  }
  tsSkipParameterStart() {
    if (gi(this.state.type) || this.match(78))
      return this.next(), !0;
    if (this.match(5)) {
      const {
        errors: r
      } = this.state, i = r.length;
      try {
        return this.parseObjectLike(8, !0), r.length === i;
      } catch (n) {
        return !1;
      }
    }
    if (this.match(0)) {
      this.next();
      const {
        errors: r
      } = this.state, i = r.length;
      try {
        return super.parseBindingList(3, 93, 1), r.length === i;
      } catch (n) {
        return !1;
      }
    }
    return !1;
  }
  tsIsUnambiguouslyStartOfFunctionType() {
    return this.next(), !!(this.match(11) || this.match(21) || this.tsSkipParameterStart() && (this.match(14) || this.match(12) || this.match(17) || this.match(29) || this.match(11) && (this.next(), this.match(19))));
  }
  tsParseTypeOrTypePredicateAnnotation(r) {
    return this.tsInType(() => {
      const i = this.startNode();
      this.expect(r);
      const n = this.startNode(), s = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));
      if (s && this.match(78)) {
        let l = this.tsParseThisTypeOrThisTypePredicate();
        return l.type === "TSThisType" ? (n.parameterName = l, n.asserts = !0, n.typeAnnotation = null, l = this.finishNode(n, "TSTypePredicate")) : (this.resetStartLocationFromNode(l, n), l.asserts = !0), i.typeAnnotation = l, this.finishNode(i, "TSTypeAnnotation");
      }
      const a = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));
      if (!a)
        return s ? (n.parameterName = this.parseIdentifier(), n.asserts = s, n.typeAnnotation = null, i.typeAnnotation = this.finishNode(n, "TSTypePredicate"), this.finishNode(i, "TSTypeAnnotation")) : this.tsParseTypeAnnotation(!1, i);
      const o = this.tsParseTypeAnnotation(!1);
      return n.parameterName = a, n.typeAnnotation = o, n.asserts = s, i.typeAnnotation = this.finishNode(n, "TSTypePredicate"), this.finishNode(i, "TSTypeAnnotation");
    });
  }
  tsTryParseTypeOrTypePredicateAnnotation() {
    return this.match(14) ? this.tsParseTypeOrTypePredicateAnnotation(14) : void 0;
  }
  tsTryParseTypeAnnotation() {
    return this.match(14) ? this.tsParseTypeAnnotation() : void 0;
  }
  tsTryParseType() {
    return this.tsEatThenParseType(14);
  }
  tsParseTypePredicatePrefix() {
    const r = this.parseIdentifier();
    if (this.isContextual(114) && !this.hasPrecedingLineBreak())
      return this.next(), r;
  }
  tsParseTypePredicateAsserts() {
    if (this.state.type !== 107)
      return !1;
    const r = this.state.containsEsc;
    return this.next(), !gi(this.state.type) && !this.match(78) ? !1 : (r && this.raise(nt.InvalidEscapedReservedWord, {
      at: this.state.lastTokStartLoc,
      reservedWord: "asserts"
    }), !0);
  }
  tsParseTypeAnnotation(r = !0, i = this.startNode()) {
    return this.tsInType(() => {
      r && this.expect(14), i.typeAnnotation = this.tsParseType();
    }), this.finishNode(i, "TSTypeAnnotation");
  }
  tsParseType() {
    Xq(this.state.inType);
    const r = this.tsParseNonConditionalType();
    if (this.state.inDisallowConditionalTypesContext || this.hasPrecedingLineBreak() || !this.eat(81))
      return r;
    const i = this.startNodeAtNode(r);
    return i.checkType = r, i.extendsType = this.tsInDisallowConditionalTypesContext(() => this.tsParseNonConditionalType()), this.expect(17), i.trueType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()), this.expect(14), i.falseType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()), this.finishNode(i, "TSConditionalType");
  }
  isAbstractConstructorSignature() {
    return this.isContextual(122) && this.lookahead().type === 77;
  }
  tsParseNonConditionalType() {
    return this.tsIsStartOfFunctionType() ? this.tsParseFunctionOrConstructorType("TSFunctionType") : this.match(77) ? this.tsParseFunctionOrConstructorType("TSConstructorType") : this.isAbstractConstructorSignature() ? this.tsParseFunctionOrConstructorType("TSConstructorType", !0) : this.tsParseUnionTypeOrHigher();
  }
  tsParseTypeAssertion() {
    this.getPluginOption("typescript", "disallowAmbiguousJSXLike") && this.raise(Kt.ReservedTypeAssertion, {
      at: this.state.startLoc
    });
    const r = this.startNode();
    return r.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? this.tsParseTypeReference() : this.tsParseType())), this.expect(48), r.expression = this.parseMaybeUnary(), this.finishNode(r, "TSTypeAssertion");
  }
  tsParseHeritageClause(r) {
    const i = this.state.startLoc, n = this.tsParseDelimitedList("HeritageClauseElement", () => {
      const s = this.startNode();
      return s.expression = this.tsParseEntityName(), this.match(47) && (s.typeParameters = this.tsParseTypeArguments()), this.finishNode(s, "TSExpressionWithTypeArguments");
    });
    return n.length || this.raise(Kt.EmptyHeritageClauseType, {
      at: i,
      token: r
    }), n;
  }
  tsParseInterfaceDeclaration(r, i = {}) {
    if (this.hasFollowingLineBreak())
      return null;
    this.expectContextual(127), i.declare && (r.declare = !0), gi(this.state.type) ? (r.id = this.parseIdentifier(), this.checkIdentifier(r.id, cEe)) : (r.id = null, this.raise(Kt.MissingInterfaceName, {
      at: this.state.startLoc
    })), r.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers), this.eat(81) && (r.extends = this.tsParseHeritageClause("extends"));
    const n = this.startNode();
    return n.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this)), r.body = this.finishNode(n, "TSInterfaceBody"), this.finishNode(r, "TSInterfaceDeclaration");
  }
  tsParseTypeAliasDeclaration(r) {
    return r.id = this.parseIdentifier(), this.checkIdentifier(r.id, pEe), r.typeAnnotation = this.tsInType(() => {
      if (r.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers), this.expect(29), this.isContextual(112) && this.lookahead().type !== 16) {
        const i = this.startNode();
        return this.next(), this.finishNode(i, "TSIntrinsicKeyword");
      }
      return this.tsParseType();
    }), this.semicolon(), this.finishNode(r, "TSTypeAliasDeclaration");
  }
  tsInNoContext(r) {
    const i = this.state.context;
    this.state.context = [i[0]];
    try {
      return r();
    } finally {
      this.state.context = i;
    }
  }
  tsInType(r) {
    const i = this.state.inType;
    this.state.inType = !0;
    try {
      return r();
    } finally {
      this.state.inType = i;
    }
  }
  tsInDisallowConditionalTypesContext(r) {
    const i = this.state.inDisallowConditionalTypesContext;
    this.state.inDisallowConditionalTypesContext = !0;
    try {
      return r();
    } finally {
      this.state.inDisallowConditionalTypesContext = i;
    }
  }
  tsInAllowConditionalTypesContext(r) {
    const i = this.state.inDisallowConditionalTypesContext;
    this.state.inDisallowConditionalTypesContext = !1;
    try {
      return r();
    } finally {
      this.state.inDisallowConditionalTypesContext = i;
    }
  }
  tsEatThenParseType(r) {
    return this.match(r) ? this.tsNextThenParseType() : void 0;
  }
  tsExpectThenParseType(r) {
    return this.tsDoThenParseType(() => this.expect(r));
  }
  tsNextThenParseType() {
    return this.tsDoThenParseType(() => this.next());
  }
  tsDoThenParseType(r) {
    return this.tsInType(() => (r(), this.tsParseType()));
  }
  tsParseEnumMember() {
    const r = this.startNode();
    return r.id = this.match(131) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(!0), this.eat(29) && (r.initializer = super.parseMaybeAssignAllowIn()), this.finishNode(r, "TSEnumMember");
  }
  tsParseEnumDeclaration(r, i = {}) {
    return i.const && (r.const = !0), i.declare && (r.declare = !0), this.expectContextual(124), r.id = this.parseIdentifier(), this.checkIdentifier(r.id, r.const ? hEe : mle), this.expect(5), r.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)), this.expect(8), this.finishNode(r, "TSEnumDeclaration");
  }
  tsParseModuleBlock() {
    const r = this.startNode();
    return this.scope.enter(cy), this.expect(5), super.parseBlockOrModuleBlockBody(r.body = [], void 0, !0, 8), this.scope.exit(), this.finishNode(r, "TSModuleBlock");
  }
  tsParseModuleOrNamespaceDeclaration(r, i = !1) {
    if (r.id = this.parseIdentifier(), i || this.checkIdentifier(r.id, dEe), this.eat(16)) {
      const n = this.startNode();
      this.tsParseModuleOrNamespaceDeclaration(n, !0), r.body = n;
    } else
      this.scope.enter(Py), this.prodParam.enter(Ay), r.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit();
    return this.finishNode(r, "TSModuleDeclaration");
  }
  tsParseAmbientExternalModuleDeclaration(r) {
    return this.isContextual(110) ? (r.global = !0, r.id = this.parseIdentifier()) : this.match(131) ? r.id = super.parseStringLiteral(this.state.value) : this.unexpected(), this.match(5) ? (this.scope.enter(Py), this.prodParam.enter(Ay), r.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit()) : this.semicolon(), this.finishNode(r, "TSModuleDeclaration");
  }
  tsParseImportEqualsDeclaration(r, i) {
    r.isExport = i || !1, r.id = this.parseIdentifier(), this.checkIdentifier(r.id, W0), this.expect(29);
    const n = this.tsParseModuleReference();
    return r.importKind === "type" && n.type !== "TSExternalModuleReference" && this.raise(Kt.ImportAliasHasImportType, {
      at: n
    }), r.moduleReference = n, this.semicolon(), this.finishNode(r, "TSImportEqualsDeclaration");
  }
  tsIsExternalModuleReference() {
    return this.isContextual(117) && this.lookaheadCharCode() === 40;
  }
  tsParseModuleReference() {
    return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(!1);
  }
  tsParseExternalModuleReference() {
    const r = this.startNode();
    return this.expectContextual(117), this.expect(10), this.match(131) || this.unexpected(), r.expression = super.parseExprAtom(), this.expect(11), this.finishNode(r, "TSExternalModuleReference");
  }
  tsLookAhead(r) {
    const i = this.state.clone(), n = r();
    return this.state = i, n;
  }
  tsTryParseAndCatch(r) {
    const i = this.tryParse((n) => r() || n());
    if (!(i.aborted || !i.node))
      return i.error && (this.state = i.failState), i.node;
  }
  tsTryParse(r) {
    const i = this.state.clone(), n = r();
    if (n !== void 0 && n !== !1)
      return n;
    this.state = i;
  }
  tsTryParseDeclare(r) {
    if (this.isLineTerminator())
      return;
    let i = this.state.type, n;
    return this.isContextual(99) && (i = 74, n = "let"), this.tsInAmbientContext(() => {
      if (i === 68)
        return r.declare = !0, super.parseFunctionStatement(r, !1, !1);
      if (i === 80)
        return r.declare = !0, this.parseClass(r, !0, !1);
      if (i === 124)
        return this.tsParseEnumDeclaration(r, {
          declare: !0
        });
      if (i === 110)
        return this.tsParseAmbientExternalModuleDeclaration(r);
      if (i === 75 || i === 74)
        return !this.match(75) || !this.isLookaheadContextual("enum") ? (r.declare = !0, this.parseVarStatement(r, n || this.state.value, !0)) : (this.expect(75), this.tsParseEnumDeclaration(r, {
          const: !0,
          declare: !0
        }));
      if (i === 127) {
        const s = this.tsParseInterfaceDeclaration(r, {
          declare: !0
        });
        if (s)
          return s;
      }
      if (gi(i))
        return this.tsParseDeclaration(r, this.state.value, !0, null);
    });
  }
  tsTryParseExportDeclaration() {
    return this.tsParseDeclaration(this.startNode(), this.state.value, !0, null);
  }
  tsParseExpressionStatement(r, i, n) {
    switch (i.name) {
      case "declare": {
        const s = this.tsTryParseDeclare(r);
        if (s)
          return s.declare = !0, s;
        break;
      }
      case "global":
        if (this.match(5)) {
          this.scope.enter(Py), this.prodParam.enter(Ay);
          const s = r;
          return s.global = !0, s.id = i, s.body = this.tsParseModuleBlock(), this.scope.exit(), this.prodParam.exit(), this.finishNode(s, "TSModuleDeclaration");
        }
        break;
      default:
        return this.tsParseDeclaration(r, i.name, !1, n);
    }
  }
  tsParseDeclaration(r, i, n, s) {
    switch (i) {
      case "abstract":
        if (this.tsCheckLineTerminator(n) && (this.match(80) || gi(this.state.type)))
          return this.tsParseAbstractDeclaration(r, s);
        break;
      case "module":
        if (this.tsCheckLineTerminator(n)) {
          if (this.match(131))
            return this.tsParseAmbientExternalModuleDeclaration(r);
          if (gi(this.state.type))
            return this.tsParseModuleOrNamespaceDeclaration(r);
        }
        break;
      case "namespace":
        if (this.tsCheckLineTerminator(n) && gi(this.state.type))
          return this.tsParseModuleOrNamespaceDeclaration(r);
        break;
      case "type":
        if (this.tsCheckLineTerminator(n) && gi(this.state.type))
          return this.tsParseTypeAliasDeclaration(r);
        break;
    }
  }
  tsCheckLineTerminator(r) {
    return r ? this.hasFollowingLineBreak() ? !1 : (this.next(), !0) : !this.isLineTerminator();
  }
  tsTryParseGenericAsyncArrowFunction(r) {
    if (!this.match(47))
      return;
    const i = this.state.maybeInArrowParameters;
    this.state.maybeInArrowParameters = !0;
    const n = this.tsTryParseAndCatch(() => {
      const s = this.startNodeAt(r);
      return s.typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier), super.parseFunctionParams(s), s.returnType = this.tsTryParseTypeOrTypePredicateAnnotation(), this.expect(19), s;
    });
    if (this.state.maybeInArrowParameters = i, !!n)
      return super.parseArrowExpression(n, null, !0);
  }
  tsParseTypeArgumentsInExpression() {
    if (this.reScan_lt() === 47)
      return this.tsParseTypeArguments();
  }
  tsParseTypeArguments() {
    const r = this.startNode();
    return r.params = this.tsInType(() => this.tsInNoContext(() => (this.expect(47), this.tsParseDelimitedList("TypeParametersOrArguments", this.tsParseType.bind(this))))), r.params.length === 0 && this.raise(Kt.EmptyTypeArguments, {
      at: r
    }), this.expect(48), this.finishNode(r, "TSTypeParameterInstantiation");
  }
  tsIsDeclarationStart() {
    return jxe(this.state.type);
  }
  isExportDefaultSpecifier() {
    return this.tsIsDeclarationStart() ? !1 : super.isExportDefaultSpecifier();
  }
  parseAssignableListItem(r, i) {
    const n = this.state.startLoc, s = {};
    this.tsParseModifiers({
      allowedModifiers: ["public", "private", "protected", "override", "readonly"]
    }, s);
    const a = s.accessibility, o = s.override, l = s.readonly;
    !(r & 4) && (a || l || o) && this.raise(Kt.UnexpectedParameterModifier, {
      at: n
    });
    const u = this.parseMaybeDefault();
    this.parseAssignableListItemTypes(u, r);
    const c = this.parseMaybeDefault(u.loc.start, u);
    if (a || l || o) {
      const f = this.startNodeAt(n);
      return i.length && (f.decorators = i), a && (f.accessibility = a), l && (f.readonly = l), o && (f.override = o), c.type !== "Identifier" && c.type !== "AssignmentPattern" && this.raise(Kt.UnsupportedParameterPropertyKind, {
        at: f
      }), f.parameter = c, this.finishNode(f, "TSParameterProperty");
    }
    return i.length && (u.decorators = i), c;
  }
  isSimpleParameter(r) {
    return r.type === "TSParameterProperty" && super.isSimpleParameter(r.parameter) || super.isSimpleParameter(r);
  }
  tsDisallowOptionalPattern(r) {
    for (const i of r.params)
      i.type !== "Identifier" && i.optional && !this.state.isAmbientContext && this.raise(Kt.PatternIsOptional, {
        at: i
      });
  }
  setArrowFunctionParameters(r, i, n) {
    super.setArrowFunctionParameters(r, i, n), this.tsDisallowOptionalPattern(r);
  }
  parseFunctionBodyAndFinish(r, i, n = !1) {
    this.match(14) && (r.returnType = this.tsParseTypeOrTypePredicateAnnotation(14));
    const s = i === "FunctionDeclaration" ? "TSDeclareFunction" : i === "ClassMethod" || i === "ClassPrivateMethod" ? "TSDeclareMethod" : void 0;
    return s && !this.match(5) && this.isLineTerminator() ? this.finishNode(r, s) : s === "TSDeclareFunction" && this.state.isAmbientContext && (this.raise(Kt.DeclareFunctionHasImplementation, {
      at: r
    }), r.declare) ? super.parseFunctionBodyAndFinish(r, s, n) : (this.tsDisallowOptionalPattern(r), super.parseFunctionBodyAndFinish(r, i, n));
  }
  registerFunctionStatementId(r) {
    !r.body && r.id ? this.checkIdentifier(r.id, Wq) : super.registerFunctionStatementId(r);
  }
  tsCheckForInvalidTypeCasts(r) {
    r.forEach((i) => {
      (i == null ? void 0 : i.type) === "TSTypeCastExpression" && this.raise(Kt.UnexpectedTypeAnnotation, {
        at: i.typeAnnotation
      });
    });
  }
  toReferencedList(r, i) {
    return this.tsCheckForInvalidTypeCasts(r), r;
  }
  parseArrayLike(r, i, n, s) {
    const a = super.parseArrayLike(r, i, n, s);
    return a.type === "ArrayExpression" && this.tsCheckForInvalidTypeCasts(a.elements), a;
  }
  parseSubscript(r, i, n, s) {
    if (!this.hasPrecedingLineBreak() && this.match(35)) {
      this.state.canStartJSXElement = !1, this.next();
      const o = this.startNodeAt(i);
      return o.expression = r, this.finishNode(o, "TSNonNullExpression");
    }
    let a = !1;
    if (this.match(18) && this.lookaheadCharCode() === 60) {
      if (n)
        return s.stop = !0, r;
      s.optionalChainMember = a = !0, this.next();
    }
    if (this.match(47) || this.match(51)) {
      let o;
      const l = this.tsTryParseAndCatch(() => {
        if (!n && this.atPossibleAsyncArrow(r)) {
          const h = this.tsTryParseGenericAsyncArrowFunction(i);
          if (h)
            return h;
        }
        const u = this.tsParseTypeArgumentsInExpression();
        if (!u)
          return;
        if (a && !this.match(10)) {
          o = this.state.curPosition();
          return;
        }
        if (tw(this.state.type)) {
          const h = super.parseTaggedTemplateExpression(r, i, s);
          return h.typeParameters = u, h;
        }
        if (!n && this.eat(10)) {
          const h = this.startNodeAt(i);
          return h.callee = r, h.arguments = this.parseCallExpressionArguments(11, !1), this.tsCheckForInvalidTypeCasts(h.arguments), h.typeParameters = u, s.optionalChainMember && (h.optional = a), this.finishCallExpression(h, s.optionalChainMember);
        }
        const c = this.state.type;
        if (c === 48 || c === 52 || c !== 10 && FB(c) && !this.hasPrecedingLineBreak())
          return;
        const f = this.startNodeAt(i);
        return f.expression = r, f.typeParameters = u, this.finishNode(f, "TSInstantiationExpression");
      });
      if (o && this.unexpected(o, 10), l)
        return l.type === "TSInstantiationExpression" && (this.match(16) || this.match(18) && this.lookaheadCharCode() !== 40) && this.raise(Kt.InvalidPropertyAccessAfterInstantiationExpression, {
          at: this.state.startLoc
        }), l;
    }
    return super.parseSubscript(r, i, n, s);
  }
  parseNewCallee(r) {
    var i;
    super.parseNewCallee(r);
    const {
      callee: n
    } = r;
    n.type === "TSInstantiationExpression" && !((i = n.extra) != null && i.parenthesized) && (r.typeParameters = n.typeParameters, r.callee = n.expression);
  }
  parseExprOp(r, i, n) {
    let s;
    if (eP(58) > n && !this.hasPrecedingLineBreak() && (this.isContextual(93) || (s = this.isContextual(118)))) {
      const a = this.startNodeAt(i);
      return a.expression = r, a.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? (s && this.raise(nt.UnexpectedKeyword, {
        at: this.state.startLoc,
        keyword: "const"
      }), this.tsParseTypeReference()) : this.tsParseType())), this.finishNode(a, s ? "TSSatisfiesExpression" : "TSAsExpression"), this.reScan_lt_gt(), this.parseExprOp(a, i, n);
    }
    return super.parseExprOp(r, i, n);
  }
  checkReservedWord(r, i, n, s) {
    this.state.isAmbientContext || super.checkReservedWord(r, i, n, s);
  }
  checkImportReflection(r) {
    super.checkImportReflection(r), r.module && r.importKind !== "value" && this.raise(Kt.ImportReflectionHasImportType, {
      at: r.specifiers[0].loc.start
    });
  }
  checkDuplicateExports() {
  }
  parseImport(r) {
    if (r.importKind = "value", gi(this.state.type) || this.match(55) || this.match(5)) {
      let n = this.lookahead();
      if (this.isContextual(128) && n.type !== 12 && n.type !== 97 && n.type !== 29 && (r.importKind = "type", this.next(), n = this.lookahead()), gi(this.state.type) && n.type === 29)
        return this.tsParseImportEqualsDeclaration(r);
    }
    const i = super.parseImport(r);
    return i.importKind === "type" && i.specifiers.length > 1 && i.specifiers[0].type === "ImportDefaultSpecifier" && this.raise(Kt.TypeImportCannotSpecifyDefaultAndNamed, {
      at: i
    }), i;
  }
  parseExport(r, i) {
    if (this.match(83))
      return this.next(), this.isContextual(128) && this.lookaheadCharCode() !== 61 ? (r.importKind = "type", this.next()) : r.importKind = "value", this.tsParseImportEqualsDeclaration(r, !0);
    if (this.eat(29)) {
      const n = r;
      return n.expression = super.parseExpression(), this.semicolon(), this.finishNode(n, "TSExportAssignment");
    } else if (this.eatContextual(93)) {
      const n = r;
      return this.expectContextual(126), n.id = this.parseIdentifier(), this.semicolon(), this.finishNode(n, "TSNamespaceExportDeclaration");
    } else {
      if (r.exportKind = "value", this.isContextual(128)) {
        const n = this.lookaheadCharCode();
        (n === 123 || n === 42) && (this.next(), r.exportKind = "type");
      }
      return super.parseExport(r, i);
    }
  }
  isAbstractClass() {
    return this.isContextual(122) && this.lookahead().type === 80;
  }
  parseExportDefaultExpression() {
    if (this.isAbstractClass()) {
      const r = this.startNode();
      return this.next(), r.abstract = !0, this.parseClass(r, !0, !0);
    }
    if (this.match(127)) {
      const r = this.tsParseInterfaceDeclaration(this.startNode());
      if (r)
        return r;
    }
    return super.parseExportDefaultExpression();
  }
  parseVarStatement(r, i, n = !1) {
    const {
      isAmbientContext: s
    } = this.state, a = super.parseVarStatement(r, i, n || s);
    if (!s)
      return a;
    for (const {
      id: o,
      init: l
    } of a.declarations)
      l && (i !== "const" || o.typeAnnotation ? this.raise(Kt.InitializerNotAllowedInAmbientContext, {
        at: l
      }) : p1e(l, this.hasPlugin("estree")) || this.raise(Kt.ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference, {
        at: l
      }));
    return a;
  }
  parseStatementContent(r, i) {
    if (this.match(75) && this.isLookaheadContextual("enum")) {
      const n = this.startNode();
      return this.expect(75), this.tsParseEnumDeclaration(n, {
        const: !0
      });
    }
    if (this.isContextual(124))
      return this.tsParseEnumDeclaration(this.startNode());
    if (this.isContextual(127)) {
      const n = this.tsParseInterfaceDeclaration(this.startNode());
      if (n)
        return n;
    }
    return super.parseStatementContent(r, i);
  }
  parseAccessModifier() {
    return this.tsParseModifier(["public", "protected", "private"]);
  }
  tsHasSomeModifiers(r, i) {
    return i.some((n) => Jq(n) ? r.accessibility === n : !!r[n]);
  }
  tsIsStartOfStaticBlocks() {
    return this.isContextual(104) && this.lookaheadCharCode() === 123;
  }
  parseClassMember(r, i, n) {
    const s = ["declare", "private", "public", "protected", "override", "abstract", "readonly", "static"];
    this.tsParseModifiers({
      allowedModifiers: s,
      disallowedModifiers: ["in", "out"],
      stopOnStartOfClassStaticBlock: !0,
      errorTemplate: Kt.InvalidModifierOnTypeParameterPositions
    }, i);
    const a = () => {
      this.tsIsStartOfStaticBlocks() ? (this.next(), this.next(), this.tsHasSomeModifiers(i, s) && this.raise(Kt.StaticBlockCannotHaveModifier, {
        at: this.state.curPosition()
      }), super.parseClassStaticBlock(r, i)) : this.parseClassMemberWithIsStatic(r, i, n, !!i.static);
    };
    i.declare ? this.tsInAmbientContext(a) : a();
  }
  parseClassMemberWithIsStatic(r, i, n, s) {
    const a = this.tsTryParseIndexSignature(i);
    if (a) {
      r.body.push(a), i.abstract && this.raise(Kt.IndexSignatureHasAbstract, {
        at: i
      }), i.accessibility && this.raise(Kt.IndexSignatureHasAccessibility, {
        at: i,
        modifier: i.accessibility
      }), i.declare && this.raise(Kt.IndexSignatureHasDeclare, {
        at: i
      }), i.override && this.raise(Kt.IndexSignatureHasOverride, {
        at: i
      });
      return;
    }
    !this.state.inAbstractClass && i.abstract && this.raise(Kt.NonAbstractClassHasAbstractMethod, {
      at: i
    }), i.override && (n.hadSuperClass || this.raise(Kt.OverrideNotInSubClass, {
      at: i
    })), super.parseClassMemberWithIsStatic(r, i, n, s);
  }
  parsePostMemberNameModifiers(r) {
    this.eat(17) && (r.optional = !0), r.readonly && this.match(10) && this.raise(Kt.ClassMethodHasReadonly, {
      at: r
    }), r.declare && this.match(10) && this.raise(Kt.ClassMethodHasDeclare, {
      at: r
    });
  }
  parseExpressionStatement(r, i, n) {
    return (i.type === "Identifier" ? this.tsParseExpressionStatement(r, i, n) : void 0) || super.parseExpressionStatement(r, i, n);
  }
  shouldParseExportDeclaration() {
    return this.tsIsDeclarationStart() ? !0 : super.shouldParseExportDeclaration();
  }
  parseConditional(r, i, n) {
    if (!this.state.maybeInArrowParameters || !this.match(17))
      return super.parseConditional(r, i, n);
    const s = this.tryParse(() => super.parseConditional(r, i));
    return s.node ? (s.error && (this.state = s.failState), s.node) : (s.error && super.setOptionalParametersError(n, s.error), r);
  }
  parseParenItem(r, i) {
    if (r = super.parseParenItem(r, i), this.eat(17) && (r.optional = !0, this.resetEndLocation(r)), this.match(14)) {
      const n = this.startNodeAt(i);
      return n.expression = r, n.typeAnnotation = this.tsParseTypeAnnotation(), this.finishNode(n, "TSTypeCastExpression");
    }
    return r;
  }
  parseExportDeclaration(r) {
    if (!this.state.isAmbientContext && this.isContextual(123))
      return this.tsInAmbientContext(() => this.parseExportDeclaration(r));
    const i = this.state.startLoc, n = this.eatContextual(123);
    if (n && (this.isContextual(123) || !this.shouldParseExportDeclaration()))
      throw this.raise(Kt.ExpectedAmbientAfterExportDeclare, {
        at: this.state.startLoc
      });
    const a = gi(this.state.type) && this.tsTryParseExportDeclaration() || super.parseExportDeclaration(r);
    return a ? ((a.type === "TSInterfaceDeclaration" || a.type === "TSTypeAliasDeclaration" || n) && (r.exportKind = "type"), n && (this.resetStartLocation(a, i), a.declare = !0), a) : null;
  }
  parseClassId(r, i, n, s) {
    if ((!i || n) && this.isContextual(111))
      return;
    super.parseClassId(r, i, n, r.declare ? Wq : hle);
    const a = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);
    a && (r.typeParameters = a);
  }
  parseClassPropertyAnnotation(r) {
    r.optional || (this.eat(35) ? r.definite = !0 : this.eat(17) && (r.optional = !0));
    const i = this.tsTryParseTypeAnnotation();
    i && (r.typeAnnotation = i);
  }
  parseClassProperty(r) {
    if (this.parseClassPropertyAnnotation(r), this.state.isAmbientContext && !(r.readonly && !r.typeAnnotation) && this.match(29) && this.raise(Kt.DeclareClassFieldHasInitializer, {
      at: this.state.startLoc
    }), r.abstract && this.match(29)) {
      const {
        key: i
      } = r;
      this.raise(Kt.AbstractPropertyHasInitializer, {
        at: this.state.startLoc,
        propertyName: i.type === "Identifier" && !r.computed ? i.name : "[".concat(this.input.slice(i.start, i.end), "]")
      });
    }
    return super.parseClassProperty(r);
  }
  parseClassPrivateProperty(r) {
    return r.abstract && this.raise(Kt.PrivateElementHasAbstract, {
      at: r
    }), r.accessibility && this.raise(Kt.PrivateElementHasAccessibility, {
      at: r,
      modifier: r.accessibility
    }), this.parseClassPropertyAnnotation(r), super.parseClassPrivateProperty(r);
  }
  parseClassAccessorProperty(r) {
    return this.parseClassPropertyAnnotation(r), r.optional && this.raise(Kt.AccessorCannotBeOptional, {
      at: r
    }), super.parseClassAccessorProperty(r);
  }
  pushClassMethod(r, i, n, s, a, o) {
    const l = this.tsTryParseTypeParameters(this.tsParseConstModifier);
    l && a && this.raise(Kt.ConstructorHasTypeParameters, {
      at: l
    });
    const {
      declare: u = !1,
      kind: c
    } = i;
    u && (c === "get" || c === "set") && this.raise(Kt.DeclareAccessor, {
      at: i,
      kind: c
    }), l && (i.typeParameters = l), super.pushClassMethod(r, i, n, s, a, o);
  }
  pushClassPrivateMethod(r, i, n, s) {
    const a = this.tsTryParseTypeParameters(this.tsParseConstModifier);
    a && (i.typeParameters = a), super.pushClassPrivateMethod(r, i, n, s);
  }
  declareClassPrivateMethodInScope(r, i) {
    r.type !== "TSDeclareMethod" && (r.type === "MethodDefinition" && !r.value.body || super.declareClassPrivateMethodInScope(r, i));
  }
  parseClassSuper(r) {
    super.parseClassSuper(r), r.superClass && (this.match(47) || this.match(51)) && (r.superTypeParameters = this.tsParseTypeArgumentsInExpression()), this.eatContextual(111) && (r.implements = this.tsParseHeritageClause("implements"));
  }
  parseObjPropValue(r, i, n, s, a, o, l) {
    const u = this.tsTryParseTypeParameters(this.tsParseConstModifier);
    return u && (r.typeParameters = u), super.parseObjPropValue(r, i, n, s, a, o, l);
  }
  parseFunctionParams(r, i) {
    const n = this.tsTryParseTypeParameters(this.tsParseConstModifier);
    n && (r.typeParameters = n), super.parseFunctionParams(r, i);
  }
  parseVarId(r, i) {
    super.parseVarId(r, i), r.id.type === "Identifier" && !this.hasPrecedingLineBreak() && this.eat(35) && (r.definite = !0);
    const n = this.tsTryParseTypeAnnotation();
    n && (r.id.typeAnnotation = n, this.resetEndLocation(r.id));
  }
  parseAsyncArrowFromCallExpression(r, i) {
    return this.match(14) && (r.returnType = this.tsParseTypeAnnotation()), super.parseAsyncArrowFromCallExpression(r, i);
  }
  parseMaybeAssign(r, i) {
    var n, s, a, o, l, u, c;
    let f, h, m;
    if (this.hasPlugin("jsx") && (this.match(140) || this.match(47))) {
      if (f = this.state.clone(), h = this.tryParse(() => super.parseMaybeAssign(r, i), f), !h.error)
        return h.node;
      const {
        context: v
      } = this.state, T = v[v.length - 1];
      (T === Vi.j_oTag || T === Vi.j_expr) && v.pop();
    }
    if (!((n = h) != null && n.error) && !this.match(47))
      return super.parseMaybeAssign(r, i);
    (!f || f === this.state) && (f = this.state.clone());
    let g;
    const y = this.tryParse((v) => {
      var T, S;
      g = this.tsParseTypeParameters(this.tsParseConstModifier);
      const P = super.parseMaybeAssign(r, i);
      return (P.type !== "ArrowFunctionExpression" || (T = P.extra) != null && T.parenthesized) && v(), ((S = g) == null ? void 0 : S.params.length) !== 0 && this.resetStartLocationFromNode(P, g), P.typeParameters = g, P;
    }, f);
    if (!y.error && !y.aborted)
      return g && this.reportReservedArrowTypeParam(g), y.node;
    if (!h && (Xq(!this.hasPlugin("jsx")), m = this.tryParse(() => super.parseMaybeAssign(r, i), f), !m.error))
      return m.node;
    if ((s = h) != null && s.node)
      return this.state = h.failState, h.node;
    if (y.node)
      return this.state = y.failState, g && this.reportReservedArrowTypeParam(g), y.node;
    if ((a = m) != null && a.node)
      return this.state = m.failState, m.node;
    throw (o = h) != null && o.thrown ? h.error : y.thrown ? y.error : (l = m) != null && l.thrown ? m.error : ((u = h) == null ? void 0 : u.error) || y.error || ((c = m) == null ? void 0 : c.error);
  }
  reportReservedArrowTypeParam(r) {
    var i;
    r.params.length === 1 && !r.params[0].constraint && !((i = r.extra) != null && i.trailingComma) && this.getPluginOption("typescript", "disallowAmbiguousJSXLike") && this.raise(Kt.ReservedArrowTypeParam, {
      at: r
    });
  }
  parseMaybeUnary(r, i) {
    return !this.hasPlugin("jsx") && this.match(47) ? this.tsParseTypeAssertion() : super.parseMaybeUnary(r, i);
  }
  parseArrow(r) {
    if (this.match(14)) {
      const i = this.tryParse((n) => {
        const s = this.tsParseTypeOrTypePredicateAnnotation(14);
        return (this.canInsertSemicolon() || !this.match(19)) && n(), s;
      });
      if (i.aborted)
        return;
      i.thrown || (i.error && (this.state = i.failState), r.returnType = i.node);
    }
    return super.parseArrow(r);
  }
  parseAssignableListItemTypes(r, i) {
    if (!(i & 2))
      return r;
    this.eat(17) && (r.optional = !0);
    const n = this.tsTryParseTypeAnnotation();
    return n && (r.typeAnnotation = n), this.resetEndLocation(r), r;
  }
  isAssignable(r, i) {
    switch (r.type) {
      case "TSTypeCastExpression":
        return this.isAssignable(r.expression, i);
      case "TSParameterProperty":
        return !0;
      default:
        return super.isAssignable(r, i);
    }
  }
  toAssignable(r, i = !1) {
    switch (r.type) {
      case "ParenthesizedExpression":
        this.toAssignableParenthesizedExpression(r, i);
        break;
      case "TSAsExpression":
      case "TSSatisfiesExpression":
      case "TSNonNullExpression":
      case "TSTypeAssertion":
        i ? this.expressionScope.recordArrowParameterBindingError(Kt.UnexpectedTypeCastInParameter, {
          at: r
        }) : this.raise(Kt.UnexpectedTypeCastInParameter, {
          at: r
        }), this.toAssignable(r.expression, i);
        break;
      case "AssignmentExpression":
        !i && r.left.type === "TSTypeCastExpression" && (r.left = this.typeCastToParameter(r.left));
      default:
        super.toAssignable(r, i);
    }
  }
  toAssignableParenthesizedExpression(r, i) {
    switch (r.expression.type) {
      case "TSAsExpression":
      case "TSSatisfiesExpression":
      case "TSNonNullExpression":
      case "TSTypeAssertion":
      case "ParenthesizedExpression":
        this.toAssignable(r.expression, i);
        break;
      default:
        super.toAssignable(r, i);
    }
  }
  checkToRestConversion(r, i) {
    switch (r.type) {
      case "TSAsExpression":
      case "TSSatisfiesExpression":
      case "TSTypeAssertion":
      case "TSNonNullExpression":
        this.checkToRestConversion(r.expression, !1);
        break;
      default:
        super.checkToRestConversion(r, i);
    }
  }
  isValidLVal(r, i, n) {
    return s1e({
      TSTypeCastExpression: !0,
      TSParameterProperty: "parameter",
      TSNonNullExpression: "expression",
      TSAsExpression: (n !== bh || !i) && ["expression", !0],
      TSSatisfiesExpression: (n !== bh || !i) && ["expression", !0],
      TSTypeAssertion: (n !== bh || !i) && ["expression", !0]
    }, r) || super.isValidLVal(r, i, n);
  }
  parseBindingAtom() {
    switch (this.state.type) {
      case 78:
        return this.parseIdentifier(!0);
      default:
        return super.parseBindingAtom();
    }
  }
  parseMaybeDecoratorArguments(r) {
    if (this.match(47) || this.match(51)) {
      const i = this.tsParseTypeArgumentsInExpression();
      if (this.match(10)) {
        const n = super.parseMaybeDecoratorArguments(r);
        return n.typeParameters = i, n;
      }
      this.unexpected(null, 10);
    }
    return super.parseMaybeDecoratorArguments(r);
  }
  checkCommaAfterRest(r) {
    return this.state.isAmbientContext && this.match(12) && this.lookaheadCharCode() === r ? (this.next(), !1) : super.checkCommaAfterRest(r);
  }
  isClassMethod() {
    return this.match(47) || super.isClassMethod();
  }
  isClassProperty() {
    return this.match(35) || this.match(14) || super.isClassProperty();
  }
  parseMaybeDefault(r, i) {
    const n = super.parseMaybeDefault(r, i);
    return n.type === "AssignmentPattern" && n.typeAnnotation && n.right.start < n.typeAnnotation.start && this.raise(Kt.TypeAnnotationAfterAssign, {
      at: n.typeAnnotation
    }), n;
  }
  getTokenFromCode(r) {
    if (this.state.inType) {
      if (r === 62) {
        this.finishOp(48, 1);
        return;
      }
      if (r === 60) {
        this.finishOp(47, 1);
        return;
      }
    }
    super.getTokenFromCode(r);
  }
  reScan_lt_gt() {
    const {
      type: r
    } = this.state;
    r === 47 ? (this.state.pos -= 1, this.readToken_lt()) : r === 48 && (this.state.pos -= 1, this.readToken_gt());
  }
  reScan_lt() {
    const {
      type: r
    } = this.state;
    return r === 51 ? (this.state.pos -= 2, this.finishOp(47, 1), 47) : r;
  }
  toAssignableList(r, i, n) {
    for (let s = 0; s < r.length; s++) {
      const a = r[s];
      (a == null ? void 0 : a.type) === "TSTypeCastExpression" && (r[s] = this.typeCastToParameter(a));
    }
    super.toAssignableList(r, i, n);
  }
  typeCastToParameter(r) {
    return r.expression.typeAnnotation = r.typeAnnotation, this.resetEndLocation(r.expression, r.typeAnnotation.loc.end), r.expression;
  }
  shouldParseArrow(r) {
    return this.match(14) ? r.every((i) => this.isAssignable(i, !0)) : super.shouldParseArrow(r);
  }
  shouldParseAsyncArrow() {
    return this.match(14) || super.shouldParseAsyncArrow();
  }
  canHaveLeadingDecorator() {
    return super.canHaveLeadingDecorator() || this.isAbstractClass();
  }
  jsxParseOpeningElementAfterName(r) {
    if (this.match(47) || this.match(51)) {
      const i = this.tsTryParseAndCatch(() => this.tsParseTypeArgumentsInExpression());
      i && (r.typeParameters = i);
    }
    return super.jsxParseOpeningElementAfterName(r);
  }
  getGetterSetterExpectedParamCount(r) {
    const i = super.getGetterSetterExpectedParamCount(r), s = this.getObjectOrClassMethodParams(r)[0];
    return s && this.isThisParam(s) ? i + 1 : i;
  }
  parseCatchClauseParam() {
    const r = super.parseCatchClauseParam(), i = this.tsTryParseTypeAnnotation();
    return i && (r.typeAnnotation = i, this.resetEndLocation(r)), r;
  }
  tsInAmbientContext(r) {
    const i = this.state.isAmbientContext;
    this.state.isAmbientContext = !0;
    try {
      return r();
    } finally {
      this.state.isAmbientContext = i;
    }
  }
  parseClass(r, i, n) {
    const s = this.state.inAbstractClass;
    this.state.inAbstractClass = !!r.abstract;
    try {
      return super.parseClass(r, i, n);
    } finally {
      this.state.inAbstractClass = s;
    }
  }
  tsParseAbstractDeclaration(r, i) {
    if (this.match(80))
      return r.abstract = !0, this.maybeTakeDecorators(i, this.parseClass(r, !0, !1));
    if (this.isContextual(127)) {
      if (!this.hasFollowingLineBreak())
        return r.abstract = !0, this.raise(Kt.NonClassMethodPropertyHasAbstractModifer, {
          at: r
        }), this.tsParseInterfaceDeclaration(r);
    } else
      this.unexpected(null, 80);
  }
  parseMethod(r, i, n, s, a, o, l) {
    const u = super.parseMethod(r, i, n, s, a, o, l);
    if (u.abstract && (this.hasPlugin("estree") ? !!u.value.body : !!u.body)) {
      const {
        key: f
      } = u;
      this.raise(Kt.AbstractMethodHasImplementation, {
        at: u,
        methodName: f.type === "Identifier" && !u.computed ? f.name : "[".concat(this.input.slice(f.start, f.end), "]")
      });
    }
    return u;
  }
  tsParseTypeParameterName() {
    return this.parseIdentifier().name;
  }
  shouldParseAsAmbientContext() {
    return !!this.getPluginOption("typescript", "dts");
  }
  parse() {
    return this.shouldParseAsAmbientContext() && (this.state.isAmbientContext = !0), super.parse();
  }
  getExpression() {
    return this.shouldParseAsAmbientContext() && (this.state.isAmbientContext = !0), super.getExpression();
  }
  parseExportSpecifier(r, i, n, s) {
    return !i && s ? (this.parseTypeOnlyImportExportSpecifier(r, !1, n), this.finishNode(r, "ExportSpecifier")) : (r.exportKind = "value", super.parseExportSpecifier(r, i, n, s));
  }
  parseImportSpecifier(r, i, n, s, a) {
    return !i && s ? (this.parseTypeOnlyImportExportSpecifier(r, !0, n), this.finishNode(r, "ImportSpecifier")) : (r.importKind = "value", super.parseImportSpecifier(r, i, n, s, n ? Hq : W0));
  }
  parseTypeOnlyImportExportSpecifier(r, i, n) {
    const s = i ? "imported" : "local", a = i ? "local" : "exported";
    let o = r[s], l, u = !1, c = !0;
    const f = o.loc.start;
    if (this.isContextual(93)) {
      const m = this.parseIdentifier();
      if (this.isContextual(93)) {
        const g = this.parseIdentifier();
        op(this.state.type) ? (u = !0, o = m, l = i ? this.parseIdentifier() : this.parseModuleExportName(), c = !1) : (l = g, c = !1);
      } else
        op(this.state.type) ? (c = !1, l = i ? this.parseIdentifier() : this.parseModuleExportName()) : (u = !0, o = m);
    } else
      op(this.state.type) && (u = !0, i ? (o = this.parseIdentifier(!0), this.isContextual(93) || this.checkReservedWord(o.name, o.loc.start, !0, !0)) : o = this.parseModuleExportName());
    u && n && this.raise(i ? Kt.TypeModifierIsUsedInTypeImports : Kt.TypeModifierIsUsedInTypeExports, {
      at: f
    }), r[s] = o, r[a] = l;
    const h = i ? "importKind" : "exportKind";
    r[h] = u ? "type" : "value", c && this.eatContextual(93) && (r[a] = i ? this.parseIdentifier() : this.parseModuleExportName()), r[a] || (r[a] = bf(r[s])), i && this.checkIdentifier(r[a], u ? Hq : W0);
  }
};
function c1e(e) {
  if (e.type !== "MemberExpression")
    return !1;
  const {
    computed: t,
    property: r
  } = e;
  return t && r.type !== "StringLiteral" && (r.type !== "TemplateLiteral" || r.expressions.length > 0) ? !1 : _le(e.object);
}
function p1e(e, t) {
  var r;
  const {
    type: i
  } = e;
  if ((r = e.extra) != null && r.parenthesized)
    return !1;
  if (t) {
    if (i === "Literal") {
      const {
        value: n
      } = e;
      if (typeof n == "string" || typeof n == "boolean")
        return !0;
    }
  } else if (i === "StringLiteral" || i === "BooleanLiteral")
    return !0;
  return !!(Cle(e, t) || f1e(e, t) || i === "TemplateLiteral" && e.expressions.length === 0 || c1e(e));
}
function Cle(e, t) {
  return t ? e.type === "Literal" && (typeof e.value == "number" || "bigint" in e) : e.type === "NumericLiteral" || e.type === "BigIntLiteral";
}
function f1e(e, t) {
  if (e.type === "UnaryExpression") {
    const {
      operator: r,
      argument: i
    } = e;
    if (r === "-" && Cle(i, t))
      return !0;
  }
  return !1;
}
function _le(e) {
  return e.type === "Identifier" ? !0 : e.type !== "MemberExpression" || e.computed ? !1 : _le(e.object);
}
var hne;
const Qq = lf(hne || (hne = at(["placeholders"])))({
  ClassNameIsRequired: "A class name is required.",
  UnexpectedSpace: "Unexpected space in placeholder."
});
var h1e = (e) => class extends e {
  parsePlaceholder(r) {
    if (this.match(142)) {
      const i = this.startNode();
      return this.next(), this.assertNoSpace(), i.name = super.parseIdentifier(!0), this.assertNoSpace(), this.expect(142), this.finishPlaceholder(i, r);
    }
  }
  finishPlaceholder(r, i) {
    const n = !!(r.expectedNode && r.type === "Placeholder");
    return r.expectedNode = i, n ? r : this.finishNode(r, "Placeholder");
  }
  getTokenFromCode(r) {
    r === 37 && this.input.charCodeAt(this.state.pos + 1) === 37 ? this.finishOp(142, 2) : super.getTokenFromCode(r);
  }
  parseExprAtom(r) {
    return this.parsePlaceholder("Expression") || super.parseExprAtom(r);
  }
  parseIdentifier(r) {
    return this.parsePlaceholder("Identifier") || super.parseIdentifier(r);
  }
  checkReservedWord(r, i, n, s) {
    r !== void 0 && super.checkReservedWord(r, i, n, s);
  }
  parseBindingAtom() {
    return this.parsePlaceholder("Pattern") || super.parseBindingAtom();
  }
  isValidLVal(r, i, n) {
    return r === "Placeholder" || super.isValidLVal(r, i, n);
  }
  toAssignable(r, i) {
    r && r.type === "Placeholder" && r.expectedNode === "Expression" ? r.expectedNode = "Pattern" : super.toAssignable(r, i);
  }
  chStartsBindingIdentifier(r, i) {
    return !!(super.chStartsBindingIdentifier(r, i) || this.lookahead().type === 142);
  }
  verifyBreakContinue(r, i) {
    r.label && r.label.type === "Placeholder" || super.verifyBreakContinue(r, i);
  }
  parseExpressionStatement(r, i) {
    if (i.type !== "Placeholder" || i.extra && i.extra.parenthesized)
      return super.parseExpressionStatement(r, i);
    if (this.match(14)) {
      const n = r;
      return n.label = this.finishPlaceholder(i, "Identifier"), this.next(), n.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration(), this.finishNode(n, "LabeledStatement");
    }
    return this.semicolon(), r.name = i.name, this.finishPlaceholder(r, "Statement");
  }
  parseBlock(r, i, n) {
    return this.parsePlaceholder("BlockStatement") || super.parseBlock(r, i, n);
  }
  parseFunctionId(r) {
    return this.parsePlaceholder("Identifier") || super.parseFunctionId(r);
  }
  parseClass(r, i, n) {
    const s = i ? "ClassDeclaration" : "ClassExpression";
    this.next();
    const a = this.state.strict, o = this.parsePlaceholder("Identifier");
    if (o)
      if (this.match(81) || this.match(142) || this.match(5))
        r.id = o;
      else {
        if (n || !i)
          return r.id = null, r.body = this.finishPlaceholder(o, "ClassBody"), this.finishNode(r, s);
        throw this.raise(Qq.ClassNameIsRequired, {
          at: this.state.startLoc
        });
      }
    else
      this.parseClassId(r, i, n);
    return super.parseClassSuper(r), r.body = this.parsePlaceholder("ClassBody") || super.parseClassBody(!!r.superClass, a), this.finishNode(r, s);
  }
  parseExport(r, i) {
    const n = this.parsePlaceholder("Identifier");
    if (!n)
      return super.parseExport(r, i);
    if (!this.isContextual(97) && !this.match(12))
      return r.specifiers = [], r.source = null, r.declaration = this.finishPlaceholder(n, "Declaration"), this.finishNode(r, "ExportNamedDeclaration");
    this.expectPlugin("exportDefaultFrom");
    const s = this.startNode();
    return s.exported = n, r.specifiers = [this.finishNode(s, "ExportDefaultSpecifier")], super.parseExport(r, i);
  }
  isExportDefaultSpecifier() {
    if (this.match(65)) {
      const r = this.nextTokenStart();
      if (this.isUnparsedContextual(r, "from") && this.input.startsWith(Ch(142), this.nextTokenStartSince(r + 4)))
        return !0;
    }
    return super.isExportDefaultSpecifier();
  }
  maybeParseExportDefaultSpecifier(r) {
    return r.specifiers && r.specifiers.length > 0 ? !0 : super.maybeParseExportDefaultSpecifier(r);
  }
  checkExport(r) {
    const {
      specifiers: i
    } = r;
    i != null && i.length && (r.specifiers = i.filter((n) => n.exported.type === "Placeholder")), super.checkExport(r), r.specifiers = i;
  }
  parseImport(r) {
    const i = this.parsePlaceholder("Identifier");
    if (!i)
      return super.parseImport(r);
    if (r.specifiers = [], !this.isContextual(97) && !this.match(12))
      return r.source = this.finishPlaceholder(i, "StringLiteral"), this.semicolon(), this.finishNode(r, "ImportDeclaration");
    const n = this.startNodeAtNode(i);
    return n.local = i, r.specifiers.push(this.finishNode(n, "ImportDefaultSpecifier")), this.eat(12) && (this.maybeParseStarImportSpecifier(r) || this.parseNamedImportSpecifiers(r)), this.expectContextual(97), r.source = this.parseImportSource(), this.semicolon(), this.finishNode(r, "ImportDeclaration");
  }
  parseImportSource() {
    return this.parsePlaceholder("StringLiteral") || super.parseImportSource();
  }
  assertNoSpace() {
    this.state.start > this.state.lastTokEndLoc.index && this.raise(Qq.UnexpectedSpace, {
      at: this.state.lastTokEndLoc
    });
  }
}, d1e = (e) => class extends e {
  parseV8Intrinsic() {
    if (this.match(54)) {
      const r = this.state.startLoc, i = this.startNode();
      if (this.next(), gi(this.state.type)) {
        const n = this.parseIdentifierName(), s = this.createIdentifier(i, n);
        if (s.type = "V8IntrinsicIdentifier", this.match(10))
          return s;
      }
      this.unexpected(r);
    }
  }
  parseExprAtom(r) {
    return this.parseV8Intrinsic() || super.parseExprAtom(r);
  }
};
function Ns(e, t) {
  const [r, i] = typeof t == "string" ? [t, {}] : t, n = Object.keys(i), s = n.length === 0;
  return e.some((a) => {
    if (typeof a == "string")
      return s && a === r;
    {
      const [o, l] = a;
      if (o !== r)
        return !1;
      for (const u of n)
        if (l[u] !== i[u])
          return !1;
      return !0;
    }
  });
}
function Zh(e, t, r) {
  const i = e.find((n) => Array.isArray(n) ? n[0] === t : n === t);
  return i && Array.isArray(i) && i.length > 1 ? i[1][r] : null;
}
const Zq = ["minimal", "fsharp", "hack", "smart"], eV = ["^^", "@@", "^", "%", "#"], tV = ["hash", "bar"];
function m1e(e) {
  if (Ns(e, "decorators")) {
    if (Ns(e, "decorators-legacy"))
      throw new Error("Cannot use the decorators and decorators-legacy plugin together");
    const t = Zh(e, "decorators", "decoratorsBeforeExport");
    if (t != null && typeof t != "boolean")
      throw new Error("'decoratorsBeforeExport' must be a boolean, if specified.");
    const r = Zh(e, "decorators", "allowCallParenthesized");
    if (r != null && typeof r != "boolean")
      throw new Error("'allowCallParenthesized' must be a boolean.");
  }
  if (Ns(e, "flow") && Ns(e, "typescript"))
    throw new Error("Cannot combine flow and typescript plugins.");
  if (Ns(e, "placeholders") && Ns(e, "v8intrinsic"))
    throw new Error("Cannot combine placeholders and v8intrinsic plugins.");
  if (Ns(e, "pipelineOperator")) {
    const t = Zh(e, "pipelineOperator", "proposal");
    if (!Zq.includes(t)) {
      const i = Zq.map((n) => '"'.concat(n, '"')).join(", ");
      throw new Error('"pipelineOperator" requires "proposal" option whose value must be one of: '.concat(i, "."));
    }
    const r = Ns(e, ["recordAndTuple", {
      syntaxType: "hash"
    }]);
    if (t === "hack") {
      if (Ns(e, "placeholders"))
        throw new Error("Cannot combine placeholders plugin and Hack-style pipes.");
      if (Ns(e, "v8intrinsic"))
        throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes.");
      const i = Zh(e, "pipelineOperator", "topicToken");
      if (!eV.includes(i)) {
        const n = eV.map((s) => '"'.concat(s, '"')).join(", ");
        throw new Error('"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: '.concat(n, "."));
      }
      if (i === "#" && r)
        throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "hack", topicToken: "#" }]` and `["recordAndtuple", { syntaxType: "hash"}]`.');
    } else if (t === "smart" && r)
      throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "smart" }]` and `["recordAndtuple", { syntaxType: "hash"}]`.');
  }
  if (Ns(e, "moduleAttributes")) {
    if (Ns(e, "importAssertions"))
      throw new Error("Cannot combine importAssertions and moduleAttributes plugins.");
    if (Zh(e, "moduleAttributes", "version") !== "may-2020")
      throw new Error("The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is 'may-2020'.");
  }
  if (Ns(e, "recordAndTuple") && Zh(e, "recordAndTuple", "syntaxType") != null && !tV.includes(Zh(e, "recordAndTuple", "syntaxType")))
    throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: " + tV.map((t) => "'".concat(t, "'")).join(", "));
  if (Ns(e, "asyncDoExpressions") && !Ns(e, "doExpressions")) {
    const t = new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.");
    throw t.missingPlugins = "doExpressions", t;
  }
}
const Ile = {
  estree: Qxe,
  jsx: e1e,
  flow: QEe,
  typescript: u1e,
  v8intrinsic: d1e,
  placeholders: h1e
}, y1e = Object.keys(Ile);
let g1e = class extends n1e {
  checkProto(t, r, i, n) {
    if (t.type === "SpreadElement" || this.isObjectMethod(t) || t.computed || t.shorthand)
      return;
    const s = t.key;
    if ((s.type === "Identifier" ? s.name : s.value) === "__proto__") {
      if (r) {
        this.raise(nt.RecordNoProto, {
          at: s
        });
        return;
      }
      i.used && (n ? n.doubleProtoLoc === null && (n.doubleProtoLoc = s.loc.start) : this.raise(nt.DuplicateProto, {
        at: s
      })), i.used = !0;
    }
  }
  shouldExitDescending(t, r) {
    return t.type === "ArrowFunctionExpression" && t.start === r;
  }
  getExpression() {
    this.enterInitialScopes(), this.nextToken();
    const t = this.parseExpression();
    return this.match(137) || this.unexpected(), this.finalizeRemainingComments(), t.comments = this.state.comments, t.errors = this.state.errors, this.options.tokens && (t.tokens = this.tokens), t;
  }
  parseExpression(t, r) {
    return t ? this.disallowInAnd(() => this.parseExpressionBase(r)) : this.allowInAnd(() => this.parseExpressionBase(r));
  }
  parseExpressionBase(t) {
    const r = this.state.startLoc, i = this.parseMaybeAssign(t);
    if (this.match(12)) {
      const n = this.startNodeAt(r);
      for (n.expressions = [i]; this.eat(12); )
        n.expressions.push(this.parseMaybeAssign(t));
      return this.toReferencedList(n.expressions), this.finishNode(n, "SequenceExpression");
    }
    return i;
  }
  parseMaybeAssignDisallowIn(t, r) {
    return this.disallowInAnd(() => this.parseMaybeAssign(t, r));
  }
  parseMaybeAssignAllowIn(t, r) {
    return this.allowInAnd(() => this.parseMaybeAssign(t, r));
  }
  setOptionalParametersError(t, r) {
    var i;
    t.optionalParametersLoc = (i = r == null ? void 0 : r.loc) != null ? i : this.state.startLoc;
  }
  parseMaybeAssign(t, r) {
    const i = this.state.startLoc;
    if (this.isContextual(106) && this.prodParam.hasYield) {
      let o = this.parseYield();
      return r && (o = r.call(this, o, i)), o;
    }
    let n;
    t ? n = !1 : (t = new iP(), n = !0);
    const {
      type: s
    } = this.state;
    (s === 10 || gi(s)) && (this.state.potentialArrowAt = this.state.start);
    let a = this.parseMaybeConditional(t);
    if (r && (a = r.call(this, a, i)), Dxe(this.state.type)) {
      const o = this.startNodeAt(i), l = this.state.value;
      if (o.operator = l, this.match(29)) {
        this.toAssignable(a, !0), o.left = a;
        const u = i.index;
        t.doubleProtoLoc != null && t.doubleProtoLoc.index >= u && (t.doubleProtoLoc = null), t.shorthandAssignLoc != null && t.shorthandAssignLoc.index >= u && (t.shorthandAssignLoc = null), t.privateKeyLoc != null && t.privateKeyLoc.index >= u && (this.checkDestructuringPrivate(t), t.privateKeyLoc = null);
      } else
        o.left = a;
      return this.next(), o.right = this.parseMaybeAssign(), this.checkLVal(a, {
        in: this.finishNode(o, "AssignmentExpression")
      }), o;
    } else
      n && this.checkExpressionErrors(t, !0);
    return a;
  }
  parseMaybeConditional(t) {
    const r = this.state.startLoc, i = this.state.potentialArrowAt, n = this.parseExprOps(t);
    return this.shouldExitDescending(n, i) ? n : this.parseConditional(n, r, t);
  }
  parseConditional(t, r, i) {
    if (this.eat(17)) {
      const n = this.startNodeAt(r);
      return n.test = t, n.consequent = this.parseMaybeAssignAllowIn(), this.expect(14), n.alternate = this.parseMaybeAssign(), this.finishNode(n, "ConditionalExpression");
    }
    return t;
  }
  parseMaybeUnaryOrPrivate(t) {
    return this.match(136) ? this.parsePrivateName() : this.parseMaybeUnary(t);
  }
  parseExprOps(t) {
    const r = this.state.startLoc, i = this.state.potentialArrowAt, n = this.parseMaybeUnaryOrPrivate(t);
    return this.shouldExitDescending(n, i) ? n : this.parseExprOp(n, r, -1);
  }
  parseExprOp(t, r, i) {
    if (this.isPrivateName(t)) {
      const s = this.getPrivateNameSV(t);
      (i >= eP(58) || !this.prodParam.hasIn || !this.match(58)) && this.raise(nt.PrivateInExpectedIn, {
        at: t,
        identifierName: s
      }), this.classScope.usePrivateName(s, t.loc.start);
    }
    const n = this.state.type;
    if (Mxe(n) && (this.prodParam.hasIn || !this.match(58))) {
      let s = eP(n);
      if (s > i) {
        if (n === 39) {
          if (this.expectPlugin("pipelineOperator"), this.state.inFSharpPipelineDirectBody)
            return t;
          this.checkPipelineAtInfixOperator(t, r);
        }
        const a = this.startNodeAt(r);
        a.left = t, a.operator = this.state.value;
        const o = n === 41 || n === 42, l = n === 40;
        if (l && (s = eP(42)), this.next(), n === 39 && this.hasPlugin(["pipelineOperator", {
          proposal: "minimal"
        }]) && this.state.type === 96 && this.prodParam.hasAwait)
          throw this.raise(nt.UnexpectedAwaitAfterPipelineBody, {
            at: this.state.startLoc
          });
        a.right = this.parseExprOpRightExpr(n, s);
        const u = this.finishNode(a, o || l ? "LogicalExpression" : "BinaryExpression"), c = this.state.type;
        if (l && (c === 41 || c === 42) || o && c === 40)
          throw this.raise(nt.MixingCoalesceWithLogical, {
            at: this.state.startLoc
          });
        return this.parseExprOp(u, r, i);
      }
    }
    return t;
  }
  parseExprOpRightExpr(t, r) {
    const i = this.state.startLoc;
    switch (t) {
      case 39:
        switch (this.getPluginOption("pipelineOperator", "proposal")) {
          case "hack":
            return this.withTopicBindingContext(() => this.parseHackPipeBody());
          case "smart":
            return this.withTopicBindingContext(() => {
              if (this.prodParam.hasYield && this.isContextual(106))
                throw this.raise(nt.PipeBodyIsTighter, {
                  at: this.state.startLoc
                });
              return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(t, r), i);
            });
          case "fsharp":
            return this.withSoloAwaitPermittingContext(() => this.parseFSharpPipelineBody(r));
        }
      default:
        return this.parseExprOpBaseRightExpr(t, r);
    }
  }
  parseExprOpBaseRightExpr(t, r) {
    const i = this.state.startLoc;
    return this.parseExprOp(this.parseMaybeUnaryOrPrivate(), i, $xe(t) ? r - 1 : r);
  }
  parseHackPipeBody() {
    var t;
    const {
      startLoc: r
    } = this.state, i = this.parseMaybeAssign();
    return Kxe.has(i.type) && !((t = i.extra) != null && t.parenthesized) && this.raise(nt.PipeUnparenthesizedBody, {
      at: r,
      type: i.type
    }), this.topicReferenceWasUsedInCurrentContext() || this.raise(nt.PipeTopicUnused, {
      at: r
    }), i;
  }
  checkExponentialAfterUnary(t) {
    this.match(57) && this.raise(nt.UnexpectedTokenUnaryExponentiation, {
      at: t.argument
    });
  }
  parseMaybeUnary(t, r) {
    const i = this.state.startLoc, n = this.isContextual(96);
    if (n && this.isAwaitAllowed()) {
      this.next();
      const l = this.parseAwait(i);
      return r || this.checkExponentialAfterUnary(l), l;
    }
    const s = this.match(34), a = this.startNode();
    if (Bxe(this.state.type)) {
      a.operator = this.state.value, a.prefix = !0, this.match(72) && this.expectPlugin("throwExpressions");
      const l = this.match(89);
      if (this.next(), a.argument = this.parseMaybeUnary(null, !0), this.checkExpressionErrors(t, !0), this.state.strict && l) {
        const u = a.argument;
        u.type === "Identifier" ? this.raise(nt.StrictDelete, {
          at: a
        }) : this.hasPropertyAsPrivateName(u) && this.raise(nt.DeletePrivateField, {
          at: a
        });
      }
      if (!s)
        return r || this.checkExponentialAfterUnary(a), this.finishNode(a, "UnaryExpression");
    }
    const o = this.parseUpdate(a, s, t);
    if (n) {
      const {
        type: l
      } = this.state;
      if ((this.hasPlugin("v8intrinsic") ? FB(l) : FB(l) && !this.match(54)) && !this.isAmbiguousAwait())
        return this.raiseOverwrite(nt.AwaitNotInAsyncContext, {
          at: i
        }), this.parseAwait(i);
    }
    return o;
  }
  parseUpdate(t, r, i) {
    if (r) {
      const a = t;
      return this.checkLVal(a.argument, {
        in: this.finishNode(a, "UpdateExpression")
      }), t;
    }
    const n = this.state.startLoc;
    let s = this.parseExprSubscripts(i);
    if (this.checkExpressionErrors(i, !1))
      return s;
    for (; Rxe(this.state.type) && !this.canInsertSemicolon(); ) {
      const a = this.startNodeAt(n);
      a.operator = this.state.value, a.prefix = !1, a.argument = s, this.next(), this.checkLVal(s, {
        in: s = this.finishNode(a, "UpdateExpression")
      });
    }
    return s;
  }
  parseExprSubscripts(t) {
    const r = this.state.startLoc, i = this.state.potentialArrowAt, n = this.parseExprAtom(t);
    return this.shouldExitDescending(n, i) ? n : this.parseSubscripts(n, r);
  }
  parseSubscripts(t, r, i) {
    const n = {
      optionalChainMember: !1,
      maybeAsyncArrow: this.atPossibleAsyncArrow(t),
      stop: !1
    };
    do
      t = this.parseSubscript(t, r, i, n), n.maybeAsyncArrow = !1;
    while (!n.stop);
    return t;
  }
  parseSubscript(t, r, i, n) {
    const {
      type: s
    } = this.state;
    if (!i && s === 15)
      return this.parseBind(t, r, i, n);
    if (tw(s))
      return this.parseTaggedTemplateExpression(t, r, n);
    let a = !1;
    if (s === 18) {
      if (i && (this.raise(nt.OptionalChainingNoNew, {
        at: this.state.startLoc
      }), this.lookaheadCharCode() === 40))
        return n.stop = !0, t;
      n.optionalChainMember = a = !0, this.next();
    }
    if (!i && this.match(10))
      return this.parseCoverCallAndAsyncArrowHead(t, r, n, a);
    {
      const o = this.eat(0);
      return o || a || this.eat(16) ? this.parseMember(t, r, n, o, a) : (n.stop = !0, t);
    }
  }
  parseMember(t, r, i, n, s) {
    const a = this.startNodeAt(r);
    return a.object = t, a.computed = n, n ? (a.property = this.parseExpression(), this.expect(3)) : this.match(136) ? (t.type === "Super" && this.raise(nt.SuperPrivateField, {
      at: r
    }), this.classScope.usePrivateName(this.state.value, this.state.startLoc), a.property = this.parsePrivateName()) : a.property = this.parseIdentifier(!0), i.optionalChainMember ? (a.optional = s, this.finishNode(a, "OptionalMemberExpression")) : this.finishNode(a, "MemberExpression");
  }
  parseBind(t, r, i, n) {
    const s = this.startNodeAt(r);
    return s.object = t, this.next(), s.callee = this.parseNoCallExpr(), n.stop = !0, this.parseSubscripts(this.finishNode(s, "BindExpression"), r, i);
  }
  parseCoverCallAndAsyncArrowHead(t, r, i, n) {
    const s = this.state.maybeInArrowParameters;
    let a = null;
    this.state.maybeInArrowParameters = !0, this.next();
    const o = this.startNodeAt(r);
    o.callee = t;
    const {
      maybeAsyncArrow: l,
      optionalChainMember: u
    } = i;
    l && (this.expressionScope.enter(UEe()), a = new iP()), u && (o.optional = n), n ? o.arguments = this.parseCallExpressionArguments(11) : o.arguments = this.parseCallExpressionArguments(11, t.type === "Import", t.type !== "Super", o, a);
    let c = this.finishCallExpression(o, u);
    return l && this.shouldParseAsyncArrow() && !n ? (i.stop = !0, this.checkDestructuringPrivate(a), this.expressionScope.validateAsPattern(), this.expressionScope.exit(), c = this.parseAsyncArrowFromCallExpression(this.startNodeAt(r), c)) : (l && (this.checkExpressionErrors(a, !0), this.expressionScope.exit()), this.toReferencedArguments(c)), this.state.maybeInArrowParameters = s, c;
  }
  toReferencedArguments(t, r) {
    this.toReferencedListDeep(t.arguments, r);
  }
  parseTaggedTemplateExpression(t, r, i) {
    const n = this.startNodeAt(r);
    return n.tag = t, n.quasi = this.parseTemplate(!0), i.optionalChainMember && this.raise(nt.OptionalChainingNoTemplate, {
      at: r
    }), this.finishNode(n, "TaggedTemplateExpression");
  }
  atPossibleAsyncArrow(t) {
    return t.type === "Identifier" && t.name === "async" && this.state.lastTokEndLoc.index === t.end && !this.canInsertSemicolon() && t.end - t.start === 5 && t.start === this.state.potentialArrowAt;
  }
  finishCallExpression(t, r) {
    if (t.callee.type === "Import")
      if (t.arguments.length === 2 && (this.hasPlugin("moduleAttributes") || this.expectPlugin("importAssertions")), t.arguments.length === 0 || t.arguments.length > 2)
        this.raise(nt.ImportCallArity, {
          at: t,
          maxArgumentCount: this.hasPlugin("importAssertions") || this.hasPlugin("moduleAttributes") ? 2 : 1
        });
      else
        for (const i of t.arguments)
          i.type === "SpreadElement" && this.raise(nt.ImportCallSpreadArgument, {
            at: i
          });
    return this.finishNode(t, r ? "OptionalCallExpression" : "CallExpression");
  }
  parseCallExpressionArguments(t, r, i, n, s) {
    const a = [];
    let o = !0;
    const l = this.state.inFSharpPipelineDirectBody;
    for (this.state.inFSharpPipelineDirectBody = !1; !this.eat(t); ) {
      if (o)
        o = !1;
      else if (this.expect(12), this.match(t)) {
        r && !this.hasPlugin("importAssertions") && !this.hasPlugin("moduleAttributes") && this.raise(nt.ImportCallArgumentTrailingComma, {
          at: this.state.lastTokStartLoc
        }), n && this.addTrailingCommaExtraToNode(n), this.next();
        break;
      }
      a.push(this.parseExprListItem(!1, s, i));
    }
    return this.state.inFSharpPipelineDirectBody = l, a;
  }
  shouldParseAsyncArrow() {
    return this.match(19) && !this.canInsertSemicolon();
  }
  parseAsyncArrowFromCallExpression(t, r) {
    var i;
    return this.resetPreviousNodeTrailingComments(r), this.expect(19), this.parseArrowExpression(t, r.arguments, !0, (i = r.extra) == null ? void 0 : i.trailingCommaLoc), r.innerComments && Ev(t, r.innerComments), r.callee.trailingComments && Ev(t, r.callee.trailingComments), t;
  }
  parseNoCallExpr() {
    const t = this.state.startLoc;
    return this.parseSubscripts(this.parseExprAtom(), t, !0);
  }
  parseExprAtom(t) {
    let r, i = null;
    const {
      type: n
    } = this.state;
    switch (n) {
      case 79:
        return this.parseSuper();
      case 83:
        return r = this.startNode(), this.next(), this.match(16) ? this.parseImportMetaProperty(r) : (this.match(10) || this.raise(nt.UnsupportedImport, {
          at: this.state.lastTokStartLoc
        }), this.finishNode(r, "Import"));
      case 78:
        return r = this.startNode(), this.next(), this.finishNode(r, "ThisExpression");
      case 90:
        return this.parseDo(this.startNode(), !1);
      case 56:
      case 31:
        return this.readRegexp(), this.parseRegExpLiteral(this.state.value);
      case 132:
        return this.parseNumericLiteral(this.state.value);
      case 133:
        return this.parseBigIntLiteral(this.state.value);
      case 134:
        return this.parseDecimalLiteral(this.state.value);
      case 131:
        return this.parseStringLiteral(this.state.value);
      case 84:
        return this.parseNullLiteral();
      case 85:
        return this.parseBooleanLiteral(!0);
      case 86:
        return this.parseBooleanLiteral(!1);
      case 10: {
        const s = this.state.potentialArrowAt === this.state.start;
        return this.parseParenAndDistinguishExpression(s);
      }
      case 2:
      case 1:
        return this.parseArrayLike(this.state.type === 2 ? 4 : 3, !1, !0);
      case 0:
        return this.parseArrayLike(3, !0, !1, t);
      case 6:
      case 7:
        return this.parseObjectLike(this.state.type === 6 ? 9 : 8, !1, !0);
      case 5:
        return this.parseObjectLike(8, !1, !1, t);
      case 68:
        return this.parseFunctionOrFunctionSent();
      case 26:
        i = this.parseDecorators();
      case 80:
        return this.parseClass(this.maybeTakeDecorators(i, this.startNode()), !1);
      case 77:
        return this.parseNewOrNewTarget();
      case 25:
      case 24:
        return this.parseTemplate(!1);
      case 15: {
        r = this.startNode(), this.next(), r.object = null;
        const s = r.callee = this.parseNoCallExpr();
        if (s.type === "MemberExpression")
          return this.finishNode(r, "BindExpression");
        throw this.raise(nt.UnsupportedBind, {
          at: s
        });
      }
      case 136:
        return this.raise(nt.PrivateInExpectedIn, {
          at: this.state.startLoc,
          identifierName: this.state.value
        }), this.parsePrivateName();
      case 33:
        return this.parseTopicReferenceThenEqualsSign(54, "%");
      case 32:
        return this.parseTopicReferenceThenEqualsSign(44, "^");
      case 37:
      case 38:
        return this.parseTopicReference("hack");
      case 44:
      case 54:
      case 27: {
        const s = this.getPluginOption("pipelineOperator", "proposal");
        if (s)
          return this.parseTopicReference(s);
        this.unexpected();
        break;
      }
      case 47: {
        const s = this.input.codePointAt(this.nextTokenStart());
        rf(s) || s === 62 ? this.expectOnePlugin(["jsx", "flow", "typescript"]) : this.unexpected();
        break;
      }
      default:
        if (gi(n)) {
          if (this.isContextual(125) && this.lookaheadCharCode() === 123 && !this.hasFollowingLineBreak())
            return this.parseModuleExpression();
          const s = this.state.potentialArrowAt === this.state.start, a = this.state.containsEsc, o = this.parseIdentifier();
          if (!a && o.name === "async" && !this.canInsertSemicolon()) {
            const {
              type: l
            } = this.state;
            if (l === 68)
              return this.resetPreviousNodeTrailingComments(o), this.next(), this.parseAsyncFunctionExpression(this.startNodeAtNode(o));
            if (gi(l))
              return this.lookaheadCharCode() === 61 ? this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(o)) : o;
            if (l === 90)
              return this.resetPreviousNodeTrailingComments(o), this.parseDo(this.startNodeAtNode(o), !0);
          }
          return s && this.match(19) && !this.canInsertSemicolon() ? (this.next(), this.parseArrowExpression(this.startNodeAtNode(o), [o], !1)) : o;
        } else
          this.unexpected();
    }
  }
  parseTopicReferenceThenEqualsSign(t, r) {
    const i = this.getPluginOption("pipelineOperator", "proposal");
    if (i)
      return this.state.type = t, this.state.value = r, this.state.pos--, this.state.end--, this.state.endLoc = oa(this.state.endLoc, -1), this.parseTopicReference(i);
    this.unexpected();
  }
  parseTopicReference(t) {
    const r = this.startNode(), i = this.state.startLoc, n = this.state.type;
    return this.next(), this.finishTopicReference(r, i, t, n);
  }
  finishTopicReference(t, r, i, n) {
    if (this.testTopicReferenceConfiguration(i, r, n)) {
      const s = i === "smart" ? "PipelinePrimaryTopicReference" : "TopicReference";
      return this.topicReferenceIsAllowedInCurrentContext() || this.raise(i === "smart" ? nt.PrimaryTopicNotAllowed : nt.PipeTopicUnbound, {
        at: r
      }), this.registerTopicReference(), this.finishNode(t, s);
    } else
      throw this.raise(nt.PipeTopicUnconfiguredToken, {
        at: r,
        token: Ch(n)
      });
  }
  testTopicReferenceConfiguration(t, r, i) {
    switch (t) {
      case "hack":
        return this.hasPlugin(["pipelineOperator", {
          topicToken: Ch(i)
        }]);
      case "smart":
        return i === 27;
      default:
        throw this.raise(nt.PipeTopicRequiresHackPipes, {
          at: r
        });
    }
  }
  parseAsyncArrowUnaryFunction(t) {
    this.prodParam.enter(rP(!0, this.prodParam.hasYield));
    const r = [this.parseIdentifier()];
    return this.prodParam.exit(), this.hasPrecedingLineBreak() && this.raise(nt.LineTerminatorBeforeArrow, {
      at: this.state.curPosition()
    }), this.expect(19), this.parseArrowExpression(t, r, !0);
  }
  parseDo(t, r) {
    this.expectPlugin("doExpressions"), r && this.expectPlugin("asyncDoExpressions"), t.async = r, this.next();
    const i = this.state.labels;
    return this.state.labels = [], r ? (this.prodParam.enter(rC), t.body = this.parseBlock(), this.prodParam.exit()) : t.body = this.parseBlock(), this.state.labels = i, this.finishNode(t, "DoExpression");
  }
  parseSuper() {
    const t = this.startNode();
    return this.next(), this.match(10) && !this.scope.allowDirectSuper && !this.options.allowSuperOutsideMethod ? this.raise(nt.SuperNotAllowed, {
      at: t
    }) : !this.scope.allowSuper && !this.options.allowSuperOutsideMethod && this.raise(nt.UnexpectedSuper, {
      at: t
    }), !this.match(10) && !this.match(0) && !this.match(16) && this.raise(nt.UnsupportedSuper, {
      at: t
    }), this.finishNode(t, "Super");
  }
  parsePrivateName() {
    const t = this.startNode(), r = this.startNodeAt(oa(this.state.startLoc, 1)), i = this.state.value;
    return this.next(), t.id = this.createIdentifier(r, i), this.finishNode(t, "PrivateName");
  }
  parseFunctionOrFunctionSent() {
    const t = this.startNode();
    if (this.next(), this.prodParam.hasYield && this.match(16)) {
      const r = this.createIdentifier(this.startNodeAtNode(t), "function");
      return this.next(), this.match(102) ? this.expectPlugin("functionSent") : this.hasPlugin("functionSent") || this.unexpected(), this.parseMetaProperty(t, r, "sent");
    }
    return this.parseFunction(t);
  }
  parseMetaProperty(t, r, i) {
    t.meta = r;
    const n = this.state.containsEsc;
    return t.property = this.parseIdentifier(!0), (t.property.name !== i || n) && this.raise(nt.UnsupportedMetaProperty, {
      at: t.property,
      target: r.name,
      onlyValidPropertyName: i
    }), this.finishNode(t, "MetaProperty");
  }
  parseImportMetaProperty(t) {
    const r = this.createIdentifier(this.startNodeAtNode(t), "import");
    return this.next(), this.isContextual(100) && (this.inModule || this.raise(nt.ImportMetaOutsideModule, {
      at: r
    }), this.sawUnambiguousESM = !0), this.parseMetaProperty(t, r, "meta");
  }
  parseLiteralAtNode(t, r, i) {
    return this.addExtra(i, "rawValue", t), this.addExtra(i, "raw", this.input.slice(i.start, this.state.end)), i.value = t, this.next(), this.finishNode(i, r);
  }
  parseLiteral(t, r) {
    const i = this.startNode();
    return this.parseLiteralAtNode(t, r, i);
  }
  parseStringLiteral(t) {
    return this.parseLiteral(t, "StringLiteral");
  }
  parseNumericLiteral(t) {
    return this.parseLiteral(t, "NumericLiteral");
  }
  parseBigIntLiteral(t) {
    return this.parseLiteral(t, "BigIntLiteral");
  }
  parseDecimalLiteral(t) {
    return this.parseLiteral(t, "DecimalLiteral");
  }
  parseRegExpLiteral(t) {
    const r = this.parseLiteral(t.value, "RegExpLiteral");
    return r.pattern = t.pattern, r.flags = t.flags, r;
  }
  parseBooleanLiteral(t) {
    const r = this.startNode();
    return r.value = t, this.next(), this.finishNode(r, "BooleanLiteral");
  }
  parseNullLiteral() {
    const t = this.startNode();
    return this.next(), this.finishNode(t, "NullLiteral");
  }
  parseParenAndDistinguishExpression(t) {
    const r = this.state.startLoc;
    let i;
    this.next(), this.expressionScope.enter($Ee());
    const n = this.state.maybeInArrowParameters, s = this.state.inFSharpPipelineDirectBody;
    this.state.maybeInArrowParameters = !0, this.state.inFSharpPipelineDirectBody = !1;
    const a = this.state.startLoc, o = [], l = new iP();
    let u = !0, c, f;
    for (; !this.match(11); ) {
      if (u)
        u = !1;
      else if (this.expect(12, l.optionalParametersLoc === null ? null : l.optionalParametersLoc), this.match(11)) {
        f = this.state.startLoc;
        break;
      }
      if (this.match(21)) {
        const g = this.state.startLoc;
        if (c = this.state.startLoc, o.push(this.parseParenItem(this.parseRestBinding(), g)), !this.checkCommaAfterRest(41))
          break;
      } else
        o.push(this.parseMaybeAssignAllowIn(l, this.parseParenItem));
    }
    const h = this.state.lastTokEndLoc;
    this.expect(11), this.state.maybeInArrowParameters = n, this.state.inFSharpPipelineDirectBody = s;
    let m = this.startNodeAt(r);
    return t && this.shouldParseArrow(o) && (m = this.parseArrow(m)) ? (this.checkDestructuringPrivate(l), this.expressionScope.validateAsPattern(), this.expressionScope.exit(), this.parseArrowExpression(m, o, !1), m) : (this.expressionScope.exit(), o.length || this.unexpected(this.state.lastTokStartLoc), f && this.unexpected(f), c && this.unexpected(c), this.checkExpressionErrors(l, !0), this.toReferencedListDeep(o, !0), o.length > 1 ? (i = this.startNodeAt(a), i.expressions = o, this.finishNode(i, "SequenceExpression"), this.resetEndLocation(i, h)) : i = o[0], this.wrapParenthesis(r, i));
  }
  wrapParenthesis(t, r) {
    if (!this.options.createParenthesizedExpressions)
      return this.addExtra(r, "parenthesized", !0), this.addExtra(r, "parenStart", t.index), this.takeSurroundingComments(r, t.index, this.state.lastTokEndLoc.index), r;
    const i = this.startNodeAt(t);
    return i.expression = r, this.finishNode(i, "ParenthesizedExpression");
  }
  shouldParseArrow(t) {
    return !this.canInsertSemicolon();
  }
  parseArrow(t) {
    if (this.eat(19))
      return t;
  }
  parseParenItem(t, r) {
    return t;
  }
  parseNewOrNewTarget() {
    const t = this.startNode();
    if (this.next(), this.match(16)) {
      const r = this.createIdentifier(this.startNodeAtNode(t), "new");
      this.next();
      const i = this.parseMetaProperty(t, r, "target");
      return !this.scope.inNonArrowFunction && !this.scope.inClass && !this.options.allowNewTargetOutsideFunction && this.raise(nt.UnexpectedNewTarget, {
        at: i
      }), i;
    }
    return this.parseNew(t);
  }
  parseNew(t) {
    if (this.parseNewCallee(t), this.eat(10)) {
      const r = this.parseExprList(11);
      this.toReferencedList(r), t.arguments = r;
    } else
      t.arguments = [];
    return this.finishNode(t, "NewExpression");
  }
  parseNewCallee(t) {
    t.callee = this.parseNoCallExpr(), t.callee.type === "Import" && this.raise(nt.ImportCallNotNewExpression, {
      at: t.callee
    });
  }
  parseTemplateElement(t) {
    const {
      start: r,
      startLoc: i,
      end: n,
      value: s
    } = this.state, a = r + 1, o = this.startNodeAt(oa(i, 1));
    s === null && (t || this.raise(nt.InvalidEscapeSequenceTemplate, {
      at: oa(this.state.firstInvalidTemplateEscapePos, 1)
    }));
    const l = this.match(24), u = l ? -1 : -2, c = n + u;
    o.value = {
      raw: this.input.slice(a, c).replace(/\r\n?/g, "\n"),
      cooked: s === null ? null : s.slice(1, u)
    }, o.tail = l, this.next();
    const f = this.finishNode(o, "TemplateElement");
    return this.resetEndLocation(f, oa(this.state.lastTokEndLoc, u)), f;
  }
  parseTemplate(t) {
    const r = this.startNode();
    r.expressions = [];
    let i = this.parseTemplateElement(t);
    for (r.quasis = [i]; !i.tail; )
      r.expressions.push(this.parseTemplateSubstitution()), this.readTemplateContinuation(), r.quasis.push(i = this.parseTemplateElement(t));
    return this.finishNode(r, "TemplateLiteral");
  }
  parseTemplateSubstitution() {
    return this.parseExpression();
  }
  parseObjectLike(t, r, i, n) {
    i && this.expectPlugin("recordAndTuple");
    const s = this.state.inFSharpPipelineDirectBody;
    this.state.inFSharpPipelineDirectBody = !1;
    const a = /* @__PURE__ */ Object.create(null);
    let o = !0;
    const l = this.startNode();
    for (l.properties = [], this.next(); !this.match(t); ) {
      if (o)
        o = !1;
      else if (this.expect(12), this.match(t)) {
        this.addTrailingCommaExtraToNode(l);
        break;
      }
      let c;
      r ? c = this.parseBindingProperty() : (c = this.parsePropertyDefinition(n), this.checkProto(c, i, a, n)), i && !this.isObjectProperty(c) && c.type !== "SpreadElement" && this.raise(nt.InvalidRecordProperty, {
        at: c
      }), c.shorthand && this.addExtra(c, "shorthand", !0), l.properties.push(c);
    }
    this.next(), this.state.inFSharpPipelineDirectBody = s;
    let u = "ObjectExpression";
    return r ? u = "ObjectPattern" : i && (u = "RecordExpression"), this.finishNode(l, u);
  }
  addTrailingCommaExtraToNode(t) {
    this.addExtra(t, "trailingComma", this.state.lastTokStart), this.addExtra(t, "trailingCommaLoc", this.state.lastTokStartLoc, !1);
  }
  maybeAsyncOrAccessorProp(t) {
    return !t.computed && t.key.type === "Identifier" && (this.isLiteralPropertyName() || this.match(0) || this.match(55));
  }
  parsePropertyDefinition(t) {
    let r = [];
    if (this.match(26))
      for (this.hasPlugin("decorators") && this.raise(nt.UnsupportedPropertyDecorator, {
        at: this.state.startLoc
      }); this.match(26); )
        r.push(this.parseDecorator());
    const i = this.startNode();
    let n = !1, s = !1, a;
    if (this.match(21))
      return r.length && this.unexpected(), this.parseSpread();
    r.length && (i.decorators = r, r = []), i.method = !1, t && (a = this.state.startLoc);
    let o = this.eat(55);
    this.parsePropertyNamePrefixOperator(i);
    const l = this.state.containsEsc, u = this.parsePropertyName(i, t);
    if (!o && !l && this.maybeAsyncOrAccessorProp(i)) {
      const c = u.name;
      c === "async" && !this.hasPrecedingLineBreak() && (n = !0, this.resetPreviousNodeTrailingComments(u), o = this.eat(55), this.parsePropertyName(i)), (c === "get" || c === "set") && (s = !0, this.resetPreviousNodeTrailingComments(u), i.kind = c, this.match(55) && (o = !0, this.raise(nt.AccessorIsGenerator, {
        at: this.state.curPosition(),
        kind: c
      }), this.next()), this.parsePropertyName(i));
    }
    return this.parseObjPropValue(i, a, o, n, !1, s, t);
  }
  getGetterSetterExpectedParamCount(t) {
    return t.kind === "get" ? 0 : 1;
  }
  getObjectOrClassMethodParams(t) {
    return t.params;
  }
  checkGetterSetterParams(t) {
    var r;
    const i = this.getGetterSetterExpectedParamCount(t), n = this.getObjectOrClassMethodParams(t);
    n.length !== i && this.raise(t.kind === "get" ? nt.BadGetterArity : nt.BadSetterArity, {
      at: t
    }), t.kind === "set" && ((r = n[n.length - 1]) == null ? void 0 : r.type) === "RestElement" && this.raise(nt.BadSetterRestParameter, {
      at: t
    });
  }
  parseObjectMethod(t, r, i, n, s) {
    if (s) {
      const a = this.parseMethod(t, r, !1, !1, !1, "ObjectMethod");
      return this.checkGetterSetterParams(a), a;
    }
    if (i || r || this.match(10))
      return n && this.unexpected(), t.kind = "method", t.method = !0, this.parseMethod(t, r, i, !1, !1, "ObjectMethod");
  }
  parseObjectProperty(t, r, i, n) {
    if (t.shorthand = !1, this.eat(14))
      return t.value = i ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowIn(n), this.finishNode(t, "ObjectProperty");
    if (!t.computed && t.key.type === "Identifier") {
      if (this.checkReservedWord(t.key.name, t.key.loc.start, !0, !1), i)
        t.value = this.parseMaybeDefault(r, bf(t.key));
      else if (this.match(29)) {
        const s = this.state.startLoc;
        n != null ? n.shorthandAssignLoc === null && (n.shorthandAssignLoc = s) : this.raise(nt.InvalidCoverInitializedName, {
          at: s
        }), t.value = this.parseMaybeDefault(r, bf(t.key));
      } else
        t.value = bf(t.key);
      return t.shorthand = !0, this.finishNode(t, "ObjectProperty");
    }
  }
  parseObjPropValue(t, r, i, n, s, a, o) {
    const l = this.parseObjectMethod(t, i, n, s, a) || this.parseObjectProperty(t, r, s, o);
    return l || this.unexpected(), l;
  }
  parsePropertyName(t, r) {
    if (this.eat(0))
      t.computed = !0, t.key = this.parseMaybeAssignAllowIn(), this.expect(3);
    else {
      const {
        type: i,
        value: n
      } = this.state;
      let s;
      if (op(i))
        s = this.parseIdentifier(!0);
      else
        switch (i) {
          case 132:
            s = this.parseNumericLiteral(n);
            break;
          case 131:
            s = this.parseStringLiteral(n);
            break;
          case 133:
            s = this.parseBigIntLiteral(n);
            break;
          case 134:
            s = this.parseDecimalLiteral(n);
            break;
          case 136: {
            const a = this.state.startLoc;
            r != null ? r.privateKeyLoc === null && (r.privateKeyLoc = a) : this.raise(nt.UnexpectedPrivateField, {
              at: a
            }), s = this.parsePrivateName();
            break;
          }
          default:
            this.unexpected();
        }
      t.key = s, i !== 136 && (t.computed = !1);
    }
    return t.key;
  }
  initFunction(t, r) {
    t.id = null, t.generator = !1, t.async = r;
  }
  parseMethod(t, r, i, n, s, a, o = !1) {
    this.initFunction(t, i), t.generator = r, this.scope.enter(uf | nw | (o ? Pd : 0) | (s ? cle : 0)), this.prodParam.enter(rP(i, t.generator)), this.parseFunctionParams(t, n);
    const l = this.parseFunctionBodyAndFinish(t, a, !0);
    return this.prodParam.exit(), this.scope.exit(), l;
  }
  parseArrayLike(t, r, i, n) {
    i && this.expectPlugin("recordAndTuple");
    const s = this.state.inFSharpPipelineDirectBody;
    this.state.inFSharpPipelineDirectBody = !1;
    const a = this.startNode();
    return this.next(), a.elements = this.parseExprList(t, !i, n, a), this.state.inFSharpPipelineDirectBody = s, this.finishNode(a, i ? "TupleExpression" : "ArrayExpression");
  }
  parseArrowExpression(t, r, i, n) {
    this.scope.enter(uf | P4);
    let s = rP(i, !1);
    !this.match(5) && this.prodParam.hasIn && (s |= ey), this.prodParam.enter(s), this.initFunction(t, i);
    const a = this.state.maybeInArrowParameters;
    return r && (this.state.maybeInArrowParameters = !0, this.setArrowFunctionParameters(t, r, n)), this.state.maybeInArrowParameters = !1, this.parseFunctionBody(t, !0), this.prodParam.exit(), this.scope.exit(), this.state.maybeInArrowParameters = a, this.finishNode(t, "ArrowFunctionExpression");
  }
  setArrowFunctionParameters(t, r, i) {
    this.toAssignableList(r, i, !1), t.params = r;
  }
  parseFunctionBodyAndFinish(t, r, i = !1) {
    return this.parseFunctionBody(t, !1, i), this.finishNode(t, r);
  }
  parseFunctionBody(t, r, i = !1) {
    const n = r && !this.match(5);
    if (this.expressionScope.enter(Ele()), n)
      t.body = this.parseMaybeAssign(), this.checkParams(t, !1, r, !1);
    else {
      const s = this.state.strict, a = this.state.labels;
      this.state.labels = [], this.prodParam.enter(this.prodParam.currentFlags() | wle), t.body = this.parseBlock(!0, !1, (o) => {
        const l = !this.isSimpleParamList(t.params);
        o && l && this.raise(nt.IllegalLanguageModeDirective, {
          at: (t.kind === "method" || t.kind === "constructor") && t.key ? t.key.loc.end : t
        });
        const u = !s && this.state.strict;
        this.checkParams(t, !this.state.strict && !r && !i && !l, r, u), this.state.strict && t.id && this.checkIdentifier(t.id, fEe, u);
      }), this.prodParam.exit(), this.state.labels = a;
    }
    this.expressionScope.exit();
  }
  isSimpleParameter(t) {
    return t.type === "Identifier";
  }
  isSimpleParamList(t) {
    for (let r = 0, i = t.length; r < i; r++)
      if (!this.isSimpleParameter(t[r]))
        return !1;
    return !0;
  }
  checkParams(t, r, i, n = !0) {
    const s = !r && /* @__PURE__ */ new Set(), a = {
      type: "FormalParameters"
    };
    for (const o of t.params)
      this.checkLVal(o, {
        in: a,
        binding: ow,
        checkClashes: s,
        strictModeChanged: n
      });
  }
  parseExprList(t, r, i, n) {
    const s = [];
    let a = !0;
    for (; !this.eat(t); ) {
      if (a)
        a = !1;
      else if (this.expect(12), this.match(t)) {
        n && this.addTrailingCommaExtraToNode(n), this.next();
        break;
      }
      s.push(this.parseExprListItem(r, i));
    }
    return s;
  }
  parseExprListItem(t, r, i) {
    let n;
    if (this.match(12))
      t || this.raise(nt.UnexpectedToken, {
        at: this.state.curPosition(),
        unexpected: ","
      }), n = null;
    else if (this.match(21)) {
      const s = this.state.startLoc;
      n = this.parseParenItem(this.parseSpread(r), s);
    } else if (this.match(17)) {
      this.expectPlugin("partialApplication"), i || this.raise(nt.UnexpectedArgumentPlaceholder, {
        at: this.state.startLoc
      });
      const s = this.startNode();
      this.next(), n = this.finishNode(s, "ArgumentPlaceholder");
    } else
      n = this.parseMaybeAssignAllowIn(r, this.parseParenItem);
    return n;
  }
  parseIdentifier(t) {
    const r = this.startNode(), i = this.parseIdentifierName(t);
    return this.createIdentifier(r, i);
  }
  createIdentifier(t, r) {
    return t.name = r, t.loc.identifierName = r, this.finishNode(t, "Identifier");
  }
  parseIdentifierName(t) {
    let r;
    const {
      startLoc: i,
      type: n
    } = this.state;
    op(n) ? r = this.state.value : this.unexpected();
    const s = Oxe(n);
    return t ? s && this.replaceToken(130) : this.checkReservedWord(r, i, s, !1), this.next(), r;
  }
  checkReservedWord(t, r, i, n) {
    if (t.length > 10 || !lEe(t))
      return;
    if (i && sEe(t)) {
      this.raise(nt.UnexpectedKeyword, {
        at: r,
        keyword: t
      });
      return;
    }
    if ((this.state.strict ? n ? lle : ale : sle)(t, this.inModule)) {
      this.raise(nt.UnexpectedReservedWord, {
        at: r,
        reservedWord: t
      });
      return;
    } else if (t === "yield") {
      if (this.prodParam.hasYield) {
        this.raise(nt.YieldBindingIdentifier, {
          at: r
        });
        return;
      }
    } else if (t === "await") {
      if (this.prodParam.hasAwait) {
        this.raise(nt.AwaitBindingIdentifier, {
          at: r
        });
        return;
      }
      if (this.scope.inStaticBlock) {
        this.raise(nt.AwaitBindingIdentifierInStaticBlock, {
          at: r
        });
        return;
      }
      this.expressionScope.recordAsyncArrowParametersError({
        at: r
      });
    } else if (t === "arguments" && this.scope.inClassAndNotInNonArrowFunction) {
      this.raise(nt.ArgumentsInClass, {
        at: r
      });
      return;
    }
  }
  isAwaitAllowed() {
    return !!(this.prodParam.hasAwait || this.options.allowAwaitOutsideFunction && !this.scope.inFunction);
  }
  parseAwait(t) {
    const r = this.startNodeAt(t);
    return this.expressionScope.recordParameterInitializerError(nt.AwaitExpressionFormalParameter, {
      at: r
    }), this.eat(55) && this.raise(nt.ObsoleteAwaitStar, {
      at: r
    }), !this.scope.inFunction && !this.options.allowAwaitOutsideFunction && (this.isAmbiguousAwait() ? this.ambiguousScriptDifferentAst = !0 : this.sawUnambiguousESM = !0), this.state.soloAwait || (r.argument = this.parseMaybeUnary(null, !0)), this.finishNode(r, "AwaitExpression");
  }
  isAmbiguousAwait() {
    if (this.hasPrecedingLineBreak())
      return !0;
    const {
      type: t
    } = this.state;
    return t === 53 || t === 10 || t === 0 || tw(t) || t === 101 && !this.state.containsEsc || t === 135 || t === 56 || this.hasPlugin("v8intrinsic") && t === 54;
  }
  parseYield() {
    const t = this.startNode();
    this.expressionScope.recordParameterInitializerError(nt.YieldInParameter, {
      at: t
    }), this.next();
    let r = !1, i = null;
    if (!this.hasPrecedingLineBreak())
      switch (r = this.eat(55), this.state.type) {
        case 13:
        case 137:
        case 8:
        case 11:
        case 3:
        case 9:
        case 14:
        case 12:
          if (!r)
            break;
        default:
          i = this.parseMaybeAssign();
      }
    return t.delegate = r, t.argument = i, this.finishNode(t, "YieldExpression");
  }
  checkPipelineAtInfixOperator(t, r) {
    this.hasPlugin(["pipelineOperator", {
      proposal: "smart"
    }]) && t.type === "SequenceExpression" && this.raise(nt.PipelineHeadSequenceExpression, {
      at: r
    });
  }
  parseSmartPipelineBodyInStyle(t, r) {
    if (this.isSimpleReference(t)) {
      const i = this.startNodeAt(r);
      return i.callee = t, this.finishNode(i, "PipelineBareFunction");
    } else {
      const i = this.startNodeAt(r);
      return this.checkSmartPipeTopicBodyEarlyErrors(r), i.expression = t, this.finishNode(i, "PipelineTopicExpression");
    }
  }
  isSimpleReference(t) {
    switch (t.type) {
      case "MemberExpression":
        return !t.computed && this.isSimpleReference(t.object);
      case "Identifier":
        return !0;
      default:
        return !1;
    }
  }
  checkSmartPipeTopicBodyEarlyErrors(t) {
    if (this.match(19))
      throw this.raise(nt.PipelineBodyNoArrow, {
        at: this.state.startLoc
      });
    this.topicReferenceWasUsedInCurrentContext() || this.raise(nt.PipelineTopicUnused, {
      at: t
    });
  }
  withTopicBindingContext(t) {
    const r = this.state.topicContext;
    this.state.topicContext = {
      maxNumOfResolvableTopics: 1,
      maxTopicIndex: null
    };
    try {
      return t();
    } finally {
      this.state.topicContext = r;
    }
  }
  withSmartMixTopicForbiddingContext(t) {
    if (this.hasPlugin(["pipelineOperator", {
      proposal: "smart"
    }])) {
      const r = this.state.topicContext;
      this.state.topicContext = {
        maxNumOfResolvableTopics: 0,
        maxTopicIndex: null
      };
      try {
        return t();
      } finally {
        this.state.topicContext = r;
      }
    } else
      return t();
  }
  withSoloAwaitPermittingContext(t) {
    const r = this.state.soloAwait;
    this.state.soloAwait = !0;
    try {
      return t();
    } finally {
      this.state.soloAwait = r;
    }
  }
  allowInAnd(t) {
    const r = this.prodParam.currentFlags();
    if (ey & ~r) {
      this.prodParam.enter(r | ey);
      try {
        return t();
      } finally {
        this.prodParam.exit();
      }
    }
    return t();
  }
  disallowInAnd(t) {
    const r = this.prodParam.currentFlags();
    if (ey & r) {
      this.prodParam.enter(r & ~ey);
      try {
        return t();
      } finally {
        this.prodParam.exit();
      }
    }
    return t();
  }
  registerTopicReference() {
    this.state.topicContext.maxTopicIndex = 0;
  }
  topicReferenceIsAllowedInCurrentContext() {
    return this.state.topicContext.maxNumOfResolvableTopics >= 1;
  }
  topicReferenceWasUsedInCurrentContext() {
    return this.state.topicContext.maxTopicIndex != null && this.state.topicContext.maxTopicIndex >= 0;
  }
  parseFSharpPipelineBody(t) {
    const r = this.state.startLoc;
    this.state.potentialArrowAt = this.state.start;
    const i = this.state.inFSharpPipelineDirectBody;
    this.state.inFSharpPipelineDirectBody = !0;
    const n = this.parseExprOp(this.parseMaybeUnaryOrPrivate(), r, t);
    return this.state.inFSharpPipelineDirectBody = i, n;
  }
  parseModuleExpression() {
    this.expectPlugin("moduleBlocks");
    const t = this.startNode();
    this.next(), this.match(5) || this.unexpected(null, 5);
    const r = this.startNodeAt(this.state.endLoc);
    this.next();
    const i = this.initializeScopes(!0);
    this.enterInitialScopes();
    try {
      t.body = this.parseProgram(r, 8, "module");
    } finally {
      i();
    }
    return this.finishNode(t, "ModuleExpression");
  }
  parsePropertyNamePrefixOperator(t) {
  }
};
const iM = {
  kind: "loop"
}, b1e = {
  kind: "switch"
}, v1e = /[\uD800-\uDFFF]/u, nM = /in(?:stanceof)?/y;
function T1e(e, t) {
  for (let r = 0; r < e.length; r++) {
    const i = e[r], {
      type: n
    } = i;
    if (typeof n == "number") {
      {
        if (n === 136) {
          const {
            loc: s,
            start: a,
            value: o,
            end: l
          } = i, u = a + 1, c = oa(s.start, 1);
          e.splice(r, 1, new uh({
            type: Vp(27),
            value: "#",
            start: a,
            end: u,
            startLoc: s.start,
            endLoc: c
          }), new uh({
            type: Vp(130),
            value: o,
            start: u,
            end: l,
            startLoc: c,
            endLoc: s.end
          })), r++;
          continue;
        }
        if (tw(n)) {
          const {
            loc: s,
            start: a,
            value: o,
            end: l
          } = i, u = a + 1, c = oa(s.start, 1);
          let f;
          t.charCodeAt(a) === 96 ? f = new uh({
            type: Vp(22),
            value: "`",
            start: a,
            end: u,
            startLoc: s.start,
            endLoc: c
          }) : f = new uh({
            type: Vp(8),
            value: "}",
            start: a,
            end: u,
            startLoc: s.start,
            endLoc: c
          });
          let h, m, g, y;
          n === 24 ? (m = l - 1, g = oa(s.end, -1), h = o === null ? null : o.slice(1, -1), y = new uh({
            type: Vp(22),
            value: "`",
            start: m,
            end: l,
            startLoc: g,
            endLoc: s.end
          })) : (m = l - 2, g = oa(s.end, -2), h = o === null ? null : o.slice(1, -2), y = new uh({
            type: Vp(23),
            value: "${",
            start: m,
            end: l,
            startLoc: g,
            endLoc: s.end
          })), e.splice(r, 1, f, new uh({
            type: Vp(20),
            value: h,
            start: u,
            end: m,
            startLoc: c,
            endLoc: g
          }), y), r += 2;
          continue;
        }
      }
      i.type = Vp(n);
    }
  }
  return e;
}
let S1e = class extends g1e {
  parseTopLevel(t, r) {
    return t.program = this.parseProgram(r), t.comments = this.state.comments, this.options.tokens && (t.tokens = T1e(this.tokens, this.input)), this.finishNode(t, "File");
  }
  parseProgram(t, r = 137, i = this.options.sourceType) {
    if (t.sourceType = i, t.interpreter = this.parseInterpreterDirective(), this.parseBlockBody(t, !0, !0, r), this.inModule && !this.options.allowUndeclaredExports && this.scope.undefinedExports.size > 0)
      for (const [s, a] of Array.from(this.scope.undefinedExports))
        this.raise(nt.ModuleExportUndefined, {
          at: a,
          localName: s
        });
    let n;
    return r === 137 ? n = this.finishNode(t, "Program") : n = this.finishNodeAt(t, "Program", oa(this.state.startLoc, -1)), n;
  }
  stmtToDirective(t) {
    const r = t;
    r.type = "Directive", r.value = r.expression, delete r.expression;
    const i = r.value, n = i.value, s = this.input.slice(i.start, i.end), a = i.value = s.slice(1, -1);
    return this.addExtra(i, "raw", s), this.addExtra(i, "rawValue", a), this.addExtra(i, "expressionValue", n), i.type = "DirectiveLiteral", r;
  }
  parseInterpreterDirective() {
    if (!this.match(28))
      return null;
    const t = this.startNode();
    return t.value = this.state.value, this.next(), this.finishNode(t, "InterpreterDirective");
  }
  isLet() {
    return this.isContextual(99) ? this.hasFollowingBindingAtom() : !1;
  }
  chStartsBindingIdentifier(t, r) {
    if (rf(t)) {
      if (nM.lastIndex = r, nM.test(this.input)) {
        const i = this.codePointAtPos(nM.lastIndex);
        if (!Ey(i) && i !== 92)
          return !1;
      }
      return !0;
    } else
      return t === 92;
  }
  chStartsBindingPattern(t) {
    return t === 91 || t === 123;
  }
  hasFollowingBindingAtom() {
    const t = this.nextTokenStart(), r = this.codePointAtPos(t);
    return this.chStartsBindingPattern(r) || this.chStartsBindingIdentifier(r, t);
  }
  hasFollowingBindingIdentifier() {
    const t = this.nextTokenStart(), r = this.codePointAtPos(t);
    return this.chStartsBindingIdentifier(r, t);
  }
  startsUsingForOf() {
    const t = this.lookahead();
    return t.type === 101 && !t.containsEsc ? !1 : (this.expectPlugin("explicitResourceManagement"), !0);
  }
  parseModuleItem() {
    return this.parseStatementLike(15);
  }
  parseStatementListItem() {
    return this.parseStatementLike(6 | (!this.options.annexB || this.state.strict ? 0 : 8));
  }
  parseStatementOrSloppyAnnexBFunctionDeclaration(t = !1) {
    let r = 0;
    return this.options.annexB && !this.state.strict && (r |= 4, t && (r |= 8)), this.parseStatementLike(r);
  }
  parseStatement() {
    return this.parseStatementLike(0);
  }
  parseStatementLike(t) {
    let r = null;
    return this.match(26) && (r = this.parseDecorators(!0)), this.parseStatementContent(t, r);
  }
  parseStatementContent(t, r) {
    const i = this.state.type, n = this.startNode(), s = !!(t & 2), a = !!(t & 4), o = t & 1;
    switch (i) {
      case 60:
        return this.parseBreakContinueStatement(n, !0);
      case 63:
        return this.parseBreakContinueStatement(n, !1);
      case 64:
        return this.parseDebuggerStatement(n);
      case 90:
        return this.parseDoWhileStatement(n);
      case 91:
        return this.parseForStatement(n);
      case 68:
        if (this.lookaheadCharCode() === 46)
          break;
        return a || this.raise(this.state.strict ? nt.StrictFunction : this.options.annexB ? nt.SloppyFunctionAnnexB : nt.SloppyFunction, {
          at: this.state.startLoc
        }), this.parseFunctionStatement(n, !1, !s && a);
      case 80:
        return s || this.unexpected(), this.parseClass(this.maybeTakeDecorators(r, n), !0);
      case 69:
        return this.parseIfStatement(n);
      case 70:
        return this.parseReturnStatement(n);
      case 71:
        return this.parseSwitchStatement(n);
      case 72:
        return this.parseThrowStatement(n);
      case 73:
        return this.parseTryStatement(n);
      case 105:
        if (this.hasFollowingLineBreak() || this.state.containsEsc || !this.hasFollowingBindingIdentifier())
          break;
        return this.expectPlugin("explicitResourceManagement"), !this.scope.inModule && this.scope.inTopLevel ? this.raise(nt.UnexpectedUsingDeclaration, {
          at: this.state.startLoc
        }) : s || this.raise(nt.UnexpectedLexicalDeclaration, {
          at: this.state.startLoc
        }), this.parseVarStatement(n, "using");
      case 99: {
        if (this.state.containsEsc)
          break;
        const c = this.nextTokenStart(), f = this.codePointAtPos(c);
        if (f !== 91 && (!s && this.hasFollowingLineBreak() || !this.chStartsBindingIdentifier(f, c) && f !== 123))
          break;
      }
      case 75:
        s || this.raise(nt.UnexpectedLexicalDeclaration, {
          at: this.state.startLoc
        });
      case 74: {
        const c = this.state.value;
        return this.parseVarStatement(n, c);
      }
      case 92:
        return this.parseWhileStatement(n);
      case 76:
        return this.parseWithStatement(n);
      case 5:
        return this.parseBlock();
      case 13:
        return this.parseEmptyStatement(n);
      case 83: {
        const c = this.lookaheadCharCode();
        if (c === 40 || c === 46)
          break;
      }
      case 82: {
        !this.options.allowImportExportEverywhere && !o && this.raise(nt.UnexpectedImportExport, {
          at: this.state.startLoc
        }), this.next();
        let c;
        return i === 83 ? (c = this.parseImport(n), c.type === "ImportDeclaration" && (!c.importKind || c.importKind === "value") && (this.sawUnambiguousESM = !0)) : (c = this.parseExport(n, r), (c.type === "ExportNamedDeclaration" && (!c.exportKind || c.exportKind === "value") || c.type === "ExportAllDeclaration" && (!c.exportKind || c.exportKind === "value") || c.type === "ExportDefaultDeclaration") && (this.sawUnambiguousESM = !0)), this.assertModuleNodeAllowed(c), c;
      }
      default:
        if (this.isAsyncFunction())
          return s || this.raise(nt.AsyncFunctionInSingleStatementContext, {
            at: this.state.startLoc
          }), this.next(), this.parseFunctionStatement(n, !0, !s && a);
    }
    const l = this.state.value, u = this.parseExpression();
    return gi(i) && u.type === "Identifier" && this.eat(14) ? this.parseLabeledStatement(n, l, u, t) : this.parseExpressionStatement(n, u, r);
  }
  assertModuleNodeAllowed(t) {
    !this.options.allowImportExportEverywhere && !this.inModule && this.raise(nt.ImportOutsideModule, {
      at: t
    });
  }
  decoratorsEnabledBeforeExport() {
    return this.hasPlugin("decorators-legacy") ? !0 : this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") !== !1;
  }
  maybeTakeDecorators(t, r, i) {
    return t && (r.decorators && r.decorators.length > 0 ? (typeof this.getPluginOption("decorators", "decoratorsBeforeExport") != "boolean" && this.raise(nt.DecoratorsBeforeAfterExport, {
      at: r.decorators[0]
    }), r.decorators.unshift(...t)) : r.decorators = t, this.resetStartLocationFromNode(r, t[0]), i && this.resetStartLocationFromNode(i, r)), r;
  }
  canHaveLeadingDecorator() {
    return this.match(80);
  }
  parseDecorators(t) {
    const r = [];
    do
      r.push(this.parseDecorator());
    while (this.match(26));
    if (this.match(82))
      t || this.unexpected(), this.decoratorsEnabledBeforeExport() || this.raise(nt.DecoratorExportClass, {
        at: this.state.startLoc
      });
    else if (!this.canHaveLeadingDecorator())
      throw this.raise(nt.UnexpectedLeadingDecorator, {
        at: this.state.startLoc
      });
    return r;
  }
  parseDecorator() {
    this.expectOnePlugin(["decorators", "decorators-legacy"]);
    const t = this.startNode();
    if (this.next(), this.hasPlugin("decorators")) {
      const r = this.state.startLoc;
      let i;
      if (this.match(10)) {
        const n = this.state.startLoc;
        this.next(), i = this.parseExpression(), this.expect(11), i = this.wrapParenthesis(n, i);
        const s = this.state.startLoc;
        t.expression = this.parseMaybeDecoratorArguments(i), this.getPluginOption("decorators", "allowCallParenthesized") === !1 && t.expression !== i && this.raise(nt.DecoratorArgumentsOutsideParentheses, {
          at: s
        });
      } else {
        for (i = this.parseIdentifier(!1); this.eat(16); ) {
          const n = this.startNodeAt(r);
          n.object = i, this.match(136) ? (this.classScope.usePrivateName(this.state.value, this.state.startLoc), n.property = this.parsePrivateName()) : n.property = this.parseIdentifier(!0), n.computed = !1, i = this.finishNode(n, "MemberExpression");
        }
        t.expression = this.parseMaybeDecoratorArguments(i);
      }
    } else
      t.expression = this.parseExprSubscripts();
    return this.finishNode(t, "Decorator");
  }
  parseMaybeDecoratorArguments(t) {
    if (this.eat(10)) {
      const r = this.startNodeAtNode(t);
      return r.callee = t, r.arguments = this.parseCallExpressionArguments(11, !1), this.toReferencedList(r.arguments), this.finishNode(r, "CallExpression");
    }
    return t;
  }
  parseBreakContinueStatement(t, r) {
    return this.next(), this.isLineTerminator() ? t.label = null : (t.label = this.parseIdentifier(), this.semicolon()), this.verifyBreakContinue(t, r), this.finishNode(t, r ? "BreakStatement" : "ContinueStatement");
  }
  verifyBreakContinue(t, r) {
    let i;
    for (i = 0; i < this.state.labels.length; ++i) {
      const n = this.state.labels[i];
      if ((t.label == null || n.name === t.label.name) && (n.kind != null && (r || n.kind === "loop") || t.label && r))
        break;
    }
    if (i === this.state.labels.length) {
      const n = r ? "BreakStatement" : "ContinueStatement";
      this.raise(nt.IllegalBreakContinue, {
        at: t,
        type: n
      });
    }
  }
  parseDebuggerStatement(t) {
    return this.next(), this.semicolon(), this.finishNode(t, "DebuggerStatement");
  }
  parseHeaderExpression() {
    this.expect(10);
    const t = this.parseExpression();
    return this.expect(11), t;
  }
  parseDoWhileStatement(t) {
    return this.next(), this.state.labels.push(iM), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.state.labels.pop(), this.expect(92), t.test = this.parseHeaderExpression(), this.eat(13), this.finishNode(t, "DoWhileStatement");
  }
  parseForStatement(t) {
    this.next(), this.state.labels.push(iM);
    let r = null;
    if (this.isAwaitAllowed() && this.eatContextual(96) && (r = this.state.lastTokStartLoc), this.scope.enter(cy), this.expect(10), this.match(13))
      return r !== null && this.unexpected(r), this.parseFor(t, null);
    const i = this.isContextual(99), n = this.isContextual(105) && !this.hasFollowingLineBreak(), s = i && this.hasFollowingBindingAtom() || n && this.hasFollowingBindingIdentifier() && this.startsUsingForOf();
    if (this.match(74) || this.match(75) || s) {
      const c = this.startNode(), f = this.state.value;
      this.next(), this.parseVar(c, !0, f);
      const h = this.finishNode(c, "VariableDeclaration"), m = this.match(58);
      return m && n && this.raise(nt.ForInUsing, {
        at: h
      }), (m || this.isContextual(101)) && h.declarations.length === 1 ? this.parseForIn(t, h, r) : (r !== null && this.unexpected(r), this.parseFor(t, h));
    }
    const a = this.isContextual(95), o = new iP(), l = this.parseExpression(!0, o), u = this.isContextual(101);
    if (u && (i && this.raise(nt.ForOfLet, {
      at: l
    }), r === null && a && l.type === "Identifier" && this.raise(nt.ForOfAsync, {
      at: l
    })), u || this.match(58)) {
      this.checkDestructuringPrivate(o), this.toAssignable(l, !0);
      const c = u ? "ForOfStatement" : "ForInStatement";
      return this.checkLVal(l, {
        in: {
          type: c
        }
      }), this.parseForIn(t, l, r);
    } else
      this.checkExpressionErrors(o, !0);
    return r !== null && this.unexpected(r), this.parseFor(t, l);
  }
  parseFunctionStatement(t, r, i) {
    return this.next(), this.parseFunction(t, 1 | (i ? 2 : 0) | (r ? 8 : 0));
  }
  parseIfStatement(t) {
    return this.next(), t.test = this.parseHeaderExpression(), t.consequent = this.parseStatementOrSloppyAnnexBFunctionDeclaration(), t.alternate = this.eat(66) ? this.parseStatementOrSloppyAnnexBFunctionDeclaration() : null, this.finishNode(t, "IfStatement");
  }
  parseReturnStatement(t) {
    return !this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction && this.raise(nt.IllegalReturn, {
      at: this.state.startLoc
    }), this.next(), this.isLineTerminator() ? t.argument = null : (t.argument = this.parseExpression(), this.semicolon()), this.finishNode(t, "ReturnStatement");
  }
  parseSwitchStatement(t) {
    this.next(), t.discriminant = this.parseHeaderExpression();
    const r = t.cases = [];
    this.expect(5), this.state.labels.push(b1e), this.scope.enter(cy);
    let i;
    for (let n; !this.match(8); )
      if (this.match(61) || this.match(65)) {
        const s = this.match(61);
        i && this.finishNode(i, "SwitchCase"), r.push(i = this.startNode()), i.consequent = [], this.next(), s ? i.test = this.parseExpression() : (n && this.raise(nt.MultipleDefaultsInSwitch, {
          at: this.state.lastTokStartLoc
        }), n = !0, i.test = null), this.expect(14);
      } else
        i ? i.consequent.push(this.parseStatementListItem()) : this.unexpected();
    return this.scope.exit(), i && this.finishNode(i, "SwitchCase"), this.next(), this.state.labels.pop(), this.finishNode(t, "SwitchStatement");
  }
  parseThrowStatement(t) {
    return this.next(), this.hasPrecedingLineBreak() && this.raise(nt.NewlineAfterThrow, {
      at: this.state.lastTokEndLoc
    }), t.argument = this.parseExpression(), this.semicolon(), this.finishNode(t, "ThrowStatement");
  }
  parseCatchClauseParam() {
    const t = this.parseBindingAtom();
    return this.scope.enter(this.options.annexB && t.type === "Identifier" ? ule : 0), this.checkLVal(t, {
      in: {
        type: "CatchClause"
      },
      binding: uEe
    }), t;
  }
  parseTryStatement(t) {
    if (this.next(), t.block = this.parseBlock(), t.handler = null, this.match(62)) {
      const r = this.startNode();
      this.next(), this.match(10) ? (this.expect(10), r.param = this.parseCatchClauseParam(), this.expect(11)) : (r.param = null, this.scope.enter(cy)), r.body = this.withSmartMixTopicForbiddingContext(() => this.parseBlock(!1, !1)), this.scope.exit(), t.handler = this.finishNode(r, "CatchClause");
    }
    return t.finalizer = this.eat(67) ? this.parseBlock() : null, !t.handler && !t.finalizer && this.raise(nt.NoCatchOrFinally, {
      at: t
    }), this.finishNode(t, "TryStatement");
  }
  parseVarStatement(t, r, i = !1) {
    return this.next(), this.parseVar(t, !1, r, i), this.semicolon(), this.finishNode(t, "VariableDeclaration");
  }
  parseWhileStatement(t) {
    return this.next(), t.test = this.parseHeaderExpression(), this.state.labels.push(iM), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.state.labels.pop(), this.finishNode(t, "WhileStatement");
  }
  parseWithStatement(t) {
    return this.state.strict && this.raise(nt.StrictWith, {
      at: this.state.startLoc
    }), this.next(), t.object = this.parseHeaderExpression(), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.finishNode(t, "WithStatement");
  }
  parseEmptyStatement(t) {
    return this.next(), this.finishNode(t, "EmptyStatement");
  }
  parseLabeledStatement(t, r, i, n) {
    for (const a of this.state.labels)
      a.name === r && this.raise(nt.LabelRedeclaration, {
        at: i,
        labelName: r
      });
    const s = Lxe(this.state.type) ? "loop" : this.match(71) ? "switch" : null;
    for (let a = this.state.labels.length - 1; a >= 0; a--) {
      const o = this.state.labels[a];
      if (o.statementStart === t.start)
        o.statementStart = this.state.start, o.kind = s;
      else
        break;
    }
    return this.state.labels.push({
      name: r,
      kind: s,
      statementStart: this.state.start
    }), t.body = n & 8 ? this.parseStatementOrSloppyAnnexBFunctionDeclaration(!0) : this.parseStatement(), this.state.labels.pop(), t.label = i, this.finishNode(t, "LabeledStatement");
  }
  parseExpressionStatement(t, r, i) {
    return t.expression = r, this.semicolon(), this.finishNode(t, "ExpressionStatement");
  }
  parseBlock(t = !1, r = !0, i) {
    const n = this.startNode();
    return t && this.state.strictErrors.clear(), this.expect(5), r && this.scope.enter(cy), this.parseBlockBody(n, t, !1, 8, i), r && this.scope.exit(), this.finishNode(n, "BlockStatement");
  }
  isValidDirective(t) {
    return t.type === "ExpressionStatement" && t.expression.type === "StringLiteral" && !t.expression.extra.parenthesized;
  }
  parseBlockBody(t, r, i, n, s) {
    const a = t.body = [], o = t.directives = [];
    this.parseBlockOrModuleBlockBody(a, r ? o : void 0, i, n, s);
  }
  parseBlockOrModuleBlockBody(t, r, i, n, s) {
    const a = this.state.strict;
    let o = !1, l = !1;
    for (; !this.match(n); ) {
      const u = i ? this.parseModuleItem() : this.parseStatementListItem();
      if (r && !l) {
        if (this.isValidDirective(u)) {
          const c = this.stmtToDirective(u);
          r.push(c), !o && c.value.value === "use strict" && (o = !0, this.setStrict(!0));
          continue;
        }
        l = !0, this.state.strictErrors.clear();
      }
      t.push(u);
    }
    s && s.call(this, o), a || this.setStrict(!1), this.next();
  }
  parseFor(t, r) {
    return t.init = r, this.semicolon(!1), t.test = this.match(13) ? null : this.parseExpression(), this.semicolon(!1), t.update = this.match(11) ? null : this.parseExpression(), this.expect(11), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.scope.exit(), this.state.labels.pop(), this.finishNode(t, "ForStatement");
  }
  parseForIn(t, r, i) {
    const n = this.match(58);
    return this.next(), n ? i !== null && this.unexpected(i) : t.await = i !== null, r.type === "VariableDeclaration" && r.declarations[0].init != null && (!n || !this.options.annexB || this.state.strict || r.kind !== "var" || r.declarations[0].id.type !== "Identifier") && this.raise(nt.ForInOfLoopInitializer, {
      at: r,
      type: n ? "ForInStatement" : "ForOfStatement"
    }), r.type === "AssignmentPattern" && this.raise(nt.InvalidLhs, {
      at: r,
      ancestor: {
        type: "ForStatement"
      }
    }), t.left = r, t.right = n ? this.parseExpression() : this.parseMaybeAssignAllowIn(), this.expect(11), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.scope.exit(), this.state.labels.pop(), this.finishNode(t, n ? "ForInStatement" : "ForOfStatement");
  }
  parseVar(t, r, i, n = !1) {
    const s = t.declarations = [];
    for (t.kind = i; ; ) {
      const a = this.startNode();
      if (this.parseVarId(a, i), a.init = this.eat(29) ? r ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn() : null, a.init === null && !n && (a.id.type !== "Identifier" && !(r && (this.match(58) || this.isContextual(101))) ? this.raise(nt.DeclarationMissingInitializer, {
        at: this.state.lastTokEndLoc,
        kind: "destructuring"
      }) : i === "const" && !(this.match(58) || this.isContextual(101)) && this.raise(nt.DeclarationMissingInitializer, {
        at: this.state.lastTokEndLoc,
        kind: "const"
      })), s.push(this.finishNode(a, "VariableDeclarator")), !this.eat(12))
        break;
    }
    return t;
  }
  parseVarId(t, r) {
    r === "using" && !this.inModule && this.match(96) && this.raise(nt.AwaitInUsingBinding, {
      at: this.state.startLoc
    });
    const i = this.parseBindingAtom();
    this.checkLVal(i, {
      in: {
        type: "VariableDeclarator"
      },
      binding: r === "var" ? ow : wy
    }), t.id = i;
  }
  parseAsyncFunctionExpression(t) {
    return this.parseFunction(t, 8);
  }
  parseFunction(t, r = 0) {
    const i = r & 2, n = !!(r & 1), s = n && !(r & 4), a = !!(r & 8);
    this.initFunction(t, a), this.match(55) && (i && this.raise(nt.GeneratorInSingleStatementContext, {
      at: this.state.startLoc
    }), this.next(), t.generator = !0), n && (t.id = this.parseFunctionId(s));
    const o = this.state.maybeInArrowParameters;
    return this.state.maybeInArrowParameters = !1, this.scope.enter(uf), this.prodParam.enter(rP(a, t.generator)), n || (t.id = this.parseFunctionId()), this.parseFunctionParams(t, !1), this.withSmartMixTopicForbiddingContext(() => {
      this.parseFunctionBodyAndFinish(t, n ? "FunctionDeclaration" : "FunctionExpression");
    }), this.prodParam.exit(), this.scope.exit(), n && !i && this.registerFunctionStatementId(t), this.state.maybeInArrowParameters = o, t;
  }
  parseFunctionId(t) {
    return t || gi(this.state.type) ? this.parseIdentifier() : null;
  }
  parseFunctionParams(t, r) {
    this.expect(10), this.expressionScope.enter(jEe()), t.params = this.parseBindingList(11, 41, 2 | (r ? 4 : 0)), this.expressionScope.exit();
  }
  registerFunctionStatementId(t) {
    t.id && this.scope.declareName(t.id.name, !this.options.annexB || this.state.strict || t.generator || t.async ? this.scope.treatFunctionsAsVar ? ow : wy : dle, t.id.loc.start);
  }
  parseClass(t, r, i) {
    this.next();
    const n = this.state.strict;
    return this.state.strict = !0, this.parseClassId(t, r, i), this.parseClassSuper(t), t.body = this.parseClassBody(!!t.superClass, n), this.finishNode(t, r ? "ClassDeclaration" : "ClassExpression");
  }
  isClassProperty() {
    return this.match(29) || this.match(13) || this.match(8);
  }
  isClassMethod() {
    return this.match(10);
  }
  isNonstaticConstructor(t) {
    return !t.computed && !t.static && (t.key.name === "constructor" || t.key.value === "constructor");
  }
  parseClassBody(t, r) {
    this.classScope.enter();
    const i = {
      hadConstructor: !1,
      hadSuperClass: t
    };
    let n = [];
    const s = this.startNode();
    if (s.body = [], this.expect(5), this.withSmartMixTopicForbiddingContext(() => {
      for (; !this.match(8); ) {
        if (this.eat(13)) {
          if (n.length > 0)
            throw this.raise(nt.DecoratorSemicolon, {
              at: this.state.lastTokEndLoc
            });
          continue;
        }
        if (this.match(26)) {
          n.push(this.parseDecorator());
          continue;
        }
        const a = this.startNode();
        n.length && (a.decorators = n, this.resetStartLocationFromNode(a, n[0]), n = []), this.parseClassMember(s, a, i), a.kind === "constructor" && a.decorators && a.decorators.length > 0 && this.raise(nt.DecoratorConstructor, {
          at: a
        });
      }
    }), this.state.strict = r, this.next(), n.length)
      throw this.raise(nt.TrailingDecorator, {
        at: this.state.startLoc
      });
    return this.classScope.exit(), this.finishNode(s, "ClassBody");
  }
  parseClassMemberFromModifier(t, r) {
    const i = this.parseIdentifier(!0);
    if (this.isClassMethod()) {
      const n = r;
      return n.kind = "method", n.computed = !1, n.key = i, n.static = !1, this.pushClassMethod(t, n, !1, !1, !1, !1), !0;
    } else if (this.isClassProperty()) {
      const n = r;
      return n.computed = !1, n.key = i, n.static = !1, t.body.push(this.parseClassProperty(n)), !0;
    }
    return this.resetPreviousNodeTrailingComments(i), !1;
  }
  parseClassMember(t, r, i) {
    const n = this.isContextual(104);
    if (n) {
      if (this.parseClassMemberFromModifier(t, r))
        return;
      if (this.eat(5)) {
        this.parseClassStaticBlock(t, r);
        return;
      }
    }
    this.parseClassMemberWithIsStatic(t, r, i, n);
  }
  parseClassMemberWithIsStatic(t, r, i, n) {
    const s = r, a = r, o = r, l = r, u = r, c = s, f = s;
    if (r.static = n, this.parsePropertyNamePrefixOperator(r), this.eat(55)) {
      c.kind = "method";
      const v = this.match(136);
      if (this.parseClassElementName(c), v) {
        this.pushClassPrivateMethod(t, a, !0, !1);
        return;
      }
      this.isNonstaticConstructor(s) && this.raise(nt.ConstructorIsGenerator, {
        at: s.key
      }), this.pushClassMethod(t, s, !0, !1, !1, !1);
      return;
    }
    const h = gi(this.state.type) && !this.state.containsEsc, m = this.match(136), g = this.parseClassElementName(r), y = this.state.startLoc;
    if (this.parsePostMemberNameModifiers(f), this.isClassMethod()) {
      if (c.kind = "method", m) {
        this.pushClassPrivateMethod(t, a, !1, !1);
        return;
      }
      const v = this.isNonstaticConstructor(s);
      let T = !1;
      v && (s.kind = "constructor", i.hadConstructor && !this.hasPlugin("typescript") && this.raise(nt.DuplicateConstructor, {
        at: g
      }), v && this.hasPlugin("typescript") && r.override && this.raise(nt.OverrideOnConstructor, {
        at: g
      }), i.hadConstructor = !0, T = i.hadSuperClass), this.pushClassMethod(t, s, !1, !1, v, T);
    } else if (this.isClassProperty())
      m ? this.pushClassPrivateProperty(t, l) : this.pushClassProperty(t, o);
    else if (h && g.name === "async" && !this.isLineTerminator()) {
      this.resetPreviousNodeTrailingComments(g);
      const v = this.eat(55);
      f.optional && this.unexpected(y), c.kind = "method";
      const T = this.match(136);
      this.parseClassElementName(c), this.parsePostMemberNameModifiers(f), T ? this.pushClassPrivateMethod(t, a, v, !0) : (this.isNonstaticConstructor(s) && this.raise(nt.ConstructorIsAsync, {
        at: s.key
      }), this.pushClassMethod(t, s, v, !0, !1, !1));
    } else if (h && (g.name === "get" || g.name === "set") && !(this.match(55) && this.isLineTerminator())) {
      this.resetPreviousNodeTrailingComments(g), c.kind = g.name;
      const v = this.match(136);
      this.parseClassElementName(s), v ? this.pushClassPrivateMethod(t, a, !1, !1) : (this.isNonstaticConstructor(s) && this.raise(nt.ConstructorIsAccessor, {
        at: s.key
      }), this.pushClassMethod(t, s, !1, !1, !1, !1)), this.checkGetterSetterParams(s);
    } else if (h && g.name === "accessor" && !this.isLineTerminator()) {
      this.expectPlugin("decoratorAutoAccessors"), this.resetPreviousNodeTrailingComments(g);
      const v = this.match(136);
      this.parseClassElementName(o), this.pushClassAccessorProperty(t, u, v);
    } else
      this.isLineTerminator() ? m ? this.pushClassPrivateProperty(t, l) : this.pushClassProperty(t, o) : this.unexpected();
  }
  parseClassElementName(t) {
    const {
      type: r,
      value: i
    } = this.state;
    if ((r === 130 || r === 131) && t.static && i === "prototype" && this.raise(nt.StaticPrototype, {
      at: this.state.startLoc
    }), r === 136) {
      i === "constructor" && this.raise(nt.ConstructorClassPrivateField, {
        at: this.state.startLoc
      });
      const n = this.parsePrivateName();
      return t.key = n, n;
    }
    return this.parsePropertyName(t);
  }
  parseClassStaticBlock(t, r) {
    var i;
    this.scope.enter(Pd | sw | nw);
    const n = this.state.labels;
    this.state.labels = [], this.prodParam.enter(Ay);
    const s = r.body = [];
    this.parseBlockOrModuleBlockBody(s, void 0, !1, 8), this.prodParam.exit(), this.scope.exit(), this.state.labels = n, t.body.push(this.finishNode(r, "StaticBlock")), (i = r.decorators) != null && i.length && this.raise(nt.DecoratorStaticBlock, {
      at: r
    });
  }
  pushClassProperty(t, r) {
    !r.computed && (r.key.name === "constructor" || r.key.value === "constructor") && this.raise(nt.ConstructorClassField, {
      at: r.key
    }), t.body.push(this.parseClassProperty(r));
  }
  pushClassPrivateProperty(t, r) {
    const i = this.parseClassPrivateProperty(r);
    t.body.push(i), this.classScope.declarePrivateName(this.getPrivateNameSV(i.key), eM, i.key.loc.start);
  }
  pushClassAccessorProperty(t, r, i) {
    if (!i && !r.computed) {
      const s = r.key;
      (s.name === "constructor" || s.value === "constructor") && this.raise(nt.ConstructorClassField, {
        at: s
      });
    }
    const n = this.parseClassAccessorProperty(r);
    t.body.push(n), i && this.classScope.declarePrivateName(this.getPrivateNameSV(n.key), eM, n.key.loc.start);
  }
  pushClassMethod(t, r, i, n, s, a) {
    t.body.push(this.parseMethod(r, i, n, s, a, "ClassMethod", !0));
  }
  pushClassPrivateMethod(t, r, i, n) {
    const s = this.parseMethod(r, i, n, !1, !1, "ClassPrivateMethod", !0);
    t.body.push(s);
    const a = s.kind === "get" ? s.static ? yEe : bEe : s.kind === "set" ? s.static ? gEe : vEe : eM;
    this.declareClassPrivateMethodInScope(s, a);
  }
  declareClassPrivateMethodInScope(t, r) {
    this.classScope.declarePrivateName(this.getPrivateNameSV(t.key), r, t.key.loc.start);
  }
  parsePostMemberNameModifiers(t) {
  }
  parseClassPrivateProperty(t) {
    return this.parseInitializer(t), this.semicolon(), this.finishNode(t, "ClassPrivateProperty");
  }
  parseClassProperty(t) {
    return this.parseInitializer(t), this.semicolon(), this.finishNode(t, "ClassProperty");
  }
  parseClassAccessorProperty(t) {
    return this.parseInitializer(t), this.semicolon(), this.finishNode(t, "ClassAccessorProperty");
  }
  parseInitializer(t) {
    this.scope.enter(Pd | nw), this.expressionScope.enter(Ele()), this.prodParam.enter(Ay), t.value = this.eat(29) ? this.parseMaybeAssignAllowIn() : null, this.expressionScope.exit(), this.prodParam.exit(), this.scope.exit();
  }
  parseClassId(t, r, i, n = hle) {
    if (gi(this.state.type))
      t.id = this.parseIdentifier(), r && this.declareNameFromIdentifier(t.id, n);
    else if (i || !r)
      t.id = null;
    else
      throw this.raise(nt.MissingClassName, {
        at: this.state.startLoc
      });
  }
  parseClassSuper(t) {
    t.superClass = this.eat(81) ? this.parseExprSubscripts() : null;
  }
  parseExport(t, r) {
    const i = this.maybeParseExportDefaultSpecifier(t), n = !i || this.eat(12), s = n && this.eatExportStar(t), a = s && this.maybeParseExportNamespaceSpecifier(t), o = n && (!a || this.eat(12)), l = i || s;
    if (s && !a) {
      if (i && this.unexpected(), r)
        throw this.raise(nt.UnsupportedDecoratorExport, {
          at: t
        });
      return this.parseExportFrom(t, !0), this.finishNode(t, "ExportAllDeclaration");
    }
    const u = this.maybeParseExportNamedSpecifiers(t);
    i && n && !s && !u && this.unexpected(null, 5), a && o && this.unexpected(null, 97);
    let c;
    if (l || u) {
      if (c = !1, r)
        throw this.raise(nt.UnsupportedDecoratorExport, {
          at: t
        });
      this.parseExportFrom(t, l);
    } else
      c = this.maybeParseExportDeclaration(t);
    if (l || u || c) {
      var f;
      const h = t;
      if (this.checkExport(h, !0, !1, !!h.source), ((f = h.declaration) == null ? void 0 : f.type) === "ClassDeclaration")
        this.maybeTakeDecorators(r, h.declaration, h);
      else if (r)
        throw this.raise(nt.UnsupportedDecoratorExport, {
          at: t
        });
      return this.finishNode(h, "ExportNamedDeclaration");
    }
    if (this.eat(65)) {
      const h = t, m = this.parseExportDefaultExpression();
      if (h.declaration = m, m.type === "ClassDeclaration")
        this.maybeTakeDecorators(r, m, h);
      else if (r)
        throw this.raise(nt.UnsupportedDecoratorExport, {
          at: t
        });
      return this.checkExport(h, !0, !0), this.finishNode(h, "ExportDefaultDeclaration");
    }
    this.unexpected(null, 5);
  }
  eatExportStar(t) {
    return this.eat(55);
  }
  maybeParseExportDefaultSpecifier(t) {
    if (this.isExportDefaultSpecifier()) {
      this.expectPlugin("exportDefaultFrom");
      const r = this.startNode();
      return r.exported = this.parseIdentifier(!0), t.specifiers = [this.finishNode(r, "ExportDefaultSpecifier")], !0;
    }
    return !1;
  }
  maybeParseExportNamespaceSpecifier(t) {
    if (this.isContextual(93)) {
      t.specifiers || (t.specifiers = []);
      const r = this.startNodeAt(this.state.lastTokStartLoc);
      return this.next(), r.exported = this.parseModuleExportName(), t.specifiers.push(this.finishNode(r, "ExportNamespaceSpecifier")), !0;
    }
    return !1;
  }
  maybeParseExportNamedSpecifiers(t) {
    if (this.match(5)) {
      t.specifiers || (t.specifiers = []);
      const r = t.exportKind === "type";
      return t.specifiers.push(...this.parseExportSpecifiers(r)), t.source = null, t.declaration = null, this.hasPlugin("importAssertions") && (t.assertions = []), !0;
    }
    return !1;
  }
  maybeParseExportDeclaration(t) {
    return this.shouldParseExportDeclaration() ? (t.specifiers = [], t.source = null, this.hasPlugin("importAssertions") && (t.assertions = []), t.declaration = this.parseExportDeclaration(t), !0) : !1;
  }
  isAsyncFunction() {
    if (!this.isContextual(95))
      return !1;
    const t = this.nextTokenStart();
    return !k4.test(this.input.slice(this.state.pos, t)) && this.isUnparsedContextual(t, "function");
  }
  parseExportDefaultExpression() {
    const t = this.startNode();
    if (this.match(68))
      return this.next(), this.parseFunction(t, 5);
    if (this.isAsyncFunction())
      return this.next(), this.next(), this.parseFunction(t, 13);
    if (this.match(80))
      return this.parseClass(t, !0, !0);
    if (this.match(26))
      return this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") === !0 && this.raise(nt.DecoratorBeforeExport, {
        at: this.state.startLoc
      }), this.parseClass(this.maybeTakeDecorators(this.parseDecorators(!1), this.startNode()), !0, !0);
    if (this.match(75) || this.match(74) || this.isLet())
      throw this.raise(nt.UnsupportedDefaultExport, {
        at: this.state.startLoc
      });
    const r = this.parseMaybeAssignAllowIn();
    return this.semicolon(), r;
  }
  parseExportDeclaration(t) {
    return this.match(80) ? this.parseClass(this.startNode(), !0, !1) : this.parseStatementListItem();
  }
  isExportDefaultSpecifier() {
    const {
      type: t
    } = this.state;
    if (gi(t)) {
      if (t === 95 && !this.state.containsEsc || t === 99)
        return !1;
      if ((t === 128 || t === 127) && !this.state.containsEsc) {
        const {
          type: n
        } = this.lookahead();
        if (gi(n) && n !== 97 || n === 5)
          return this.expectOnePlugin(["flow", "typescript"]), !1;
      }
    } else if (!this.match(65))
      return !1;
    const r = this.nextTokenStart(), i = this.isUnparsedContextual(r, "from");
    if (this.input.charCodeAt(r) === 44 || gi(this.state.type) && i)
      return !0;
    if (this.match(65) && i) {
      const n = this.input.charCodeAt(this.nextTokenStartSince(r + 4));
      return n === 34 || n === 39;
    }
    return !1;
  }
  parseExportFrom(t, r) {
    if (this.eatContextual(97)) {
      t.source = this.parseImportSource(), this.checkExport(t);
      const i = this.maybeParseImportAssertions();
      i && (t.assertions = i, this.checkJSONModuleImport(t));
    } else
      r && this.unexpected();
    this.semicolon();
  }
  shouldParseExportDeclaration() {
    const {
      type: t
    } = this.state;
    return t === 26 && (this.expectOnePlugin(["decorators", "decorators-legacy"]), this.hasPlugin("decorators")) ? (this.getPluginOption("decorators", "decoratorsBeforeExport") === !0 && this.raise(nt.DecoratorBeforeExport, {
      at: this.state.startLoc
    }), !0) : t === 74 || t === 75 || t === 68 || t === 80 || this.isLet() || this.isAsyncFunction();
  }
  checkExport(t, r, i, n) {
    if (r) {
      if (i) {
        if (this.checkDuplicateExports(t, "default"), this.hasPlugin("exportDefaultFrom")) {
          var s;
          const a = t.declaration;
          a.type === "Identifier" && a.name === "from" && a.end - a.start === 4 && !((s = a.extra) != null && s.parenthesized) && this.raise(nt.ExportDefaultFromAsIdentifier, {
            at: a
          });
        }
      } else if (t.specifiers && t.specifiers.length)
        for (const a of t.specifiers) {
          const {
            exported: o
          } = a, l = o.type === "Identifier" ? o.name : o.value;
          if (this.checkDuplicateExports(a, l), !n && a.local) {
            const {
              local: u
            } = a;
            u.type !== "Identifier" ? this.raise(nt.ExportBindingIsString, {
              at: a,
              localName: u.value,
              exportName: l
            }) : (this.checkReservedWord(u.name, u.loc.start, !0, !1), this.scope.checkLocalExport(u));
          }
        }
      else if (t.declaration) {
        if (t.declaration.type === "FunctionDeclaration" || t.declaration.type === "ClassDeclaration") {
          const a = t.declaration.id;
          if (!a)
            throw new Error("Assertion failure");
          this.checkDuplicateExports(t, a.name);
        } else if (t.declaration.type === "VariableDeclaration")
          for (const a of t.declaration.declarations)
            this.checkDeclaration(a.id);
      }
    }
  }
  checkDeclaration(t) {
    if (t.type === "Identifier")
      this.checkDuplicateExports(t, t.name);
    else if (t.type === "ObjectPattern")
      for (const r of t.properties)
        this.checkDeclaration(r);
    else if (t.type === "ArrayPattern")
      for (const r of t.elements)
        r && this.checkDeclaration(r);
    else
      t.type === "ObjectProperty" ? this.checkDeclaration(t.value) : t.type === "RestElement" ? this.checkDeclaration(t.argument) : t.type === "AssignmentPattern" && this.checkDeclaration(t.left);
  }
  checkDuplicateExports(t, r) {
    this.exportedIdentifiers.has(r) && (r === "default" ? this.raise(nt.DuplicateDefaultExport, {
      at: t
    }) : this.raise(nt.DuplicateExport, {
      at: t,
      exportName: r
    })), this.exportedIdentifiers.add(r);
  }
  parseExportSpecifiers(t) {
    const r = [];
    let i = !0;
    for (this.expect(5); !this.eat(8); ) {
      if (i)
        i = !1;
      else if (this.expect(12), this.eat(8))
        break;
      const n = this.isContextual(128), s = this.match(131), a = this.startNode();
      a.local = this.parseModuleExportName(), r.push(this.parseExportSpecifier(a, s, t, n));
    }
    return r;
  }
  parseExportSpecifier(t, r, i, n) {
    return this.eatContextual(93) ? t.exported = this.parseModuleExportName() : r ? t.exported = HEe(t.local) : t.exported || (t.exported = bf(t.local)), this.finishNode(t, "ExportSpecifier");
  }
  parseModuleExportName() {
    if (this.match(131)) {
      const t = this.parseStringLiteral(this.state.value), r = t.value.match(v1e);
      return r && this.raise(nt.ModuleExportNameHasLoneSurrogate, {
        at: t,
        surrogateCharCode: r[0].charCodeAt(0)
      }), t;
    }
    return this.parseIdentifier(!0);
  }
  isJSONModuleImport(t) {
    return t.assertions != null ? t.assertions.some(({
      key: r,
      value: i
    }) => i.value === "json" && (r.type === "Identifier" ? r.name === "type" : r.value === "type")) : !1;
  }
  checkImportReflection(t) {
    if (t.module) {
      var r;
      (t.specifiers.length !== 1 || t.specifiers[0].type !== "ImportDefaultSpecifier") && this.raise(nt.ImportReflectionNotBinding, {
        at: t.specifiers[0].loc.start
      }), ((r = t.assertions) == null ? void 0 : r.length) > 0 && this.raise(nt.ImportReflectionHasAssertion, {
        at: t.specifiers[0].loc.start
      });
    }
  }
  checkJSONModuleImport(t) {
    if (this.isJSONModuleImport(t) && t.type !== "ExportAllDeclaration") {
      const {
        specifiers: r
      } = t;
      if (r != null) {
        const i = r.find((n) => {
          let s;
          if (n.type === "ExportSpecifier" ? s = n.local : n.type === "ImportSpecifier" && (s = n.imported), s !== void 0)
            return s.type === "Identifier" ? s.name !== "default" : s.value !== "default";
        });
        i !== void 0 && this.raise(nt.ImportJSONBindingNotDefault, {
          at: i.loc.start
        });
      }
    }
  }
  parseMaybeImportReflection(t) {
    let r = !1;
    if (this.isContextual(125)) {
      const i = this.lookahead(), n = i.type;
      gi(n) ? (n !== 97 || this.input.charCodeAt(this.nextTokenStartSince(i.end)) === 102) && (r = !0) : n !== 12 && (r = !0);
    }
    r ? (this.expectPlugin("importReflection"), this.next(), t.module = !0) : this.hasPlugin("importReflection") && (t.module = !1);
  }
  parseImport(t) {
    if (t.specifiers = [], !this.match(131)) {
      this.parseMaybeImportReflection(t);
      const n = !this.maybeParseDefaultImportSpecifier(t) || this.eat(12), s = n && this.maybeParseStarImportSpecifier(t);
      n && !s && this.parseNamedImportSpecifiers(t), this.expectContextual(97);
    }
    t.source = this.parseImportSource();
    const r = this.maybeParseImportAssertions();
    if (r)
      t.assertions = r;
    else {
      const i = this.maybeParseModuleAttributes();
      i && (t.attributes = i);
    }
    return this.checkImportReflection(t), this.checkJSONModuleImport(t), this.semicolon(), this.finishNode(t, "ImportDeclaration");
  }
  parseImportSource() {
    return this.match(131) || this.unexpected(), this.parseExprAtom();
  }
  shouldParseDefaultImport(t) {
    return gi(this.state.type);
  }
  parseImportSpecifierLocal(t, r, i) {
    r.local = this.parseIdentifier(), t.specifiers.push(this.finishImportSpecifier(r, i));
  }
  finishImportSpecifier(t, r, i = wy) {
    return this.checkLVal(t.local, {
      in: {
        type: r
      },
      binding: i
    }), this.finishNode(t, r);
  }
  parseAssertEntries() {
    const t = [], r = /* @__PURE__ */ new Set();
    do {
      if (this.match(8))
        break;
      const i = this.startNode(), n = this.state.value;
      if (r.has(n) && this.raise(nt.ModuleAttributesWithDuplicateKeys, {
        at: this.state.startLoc,
        key: n
      }), r.add(n), this.match(131) ? i.key = this.parseStringLiteral(n) : i.key = this.parseIdentifier(!0), this.expect(14), !this.match(131))
        throw this.raise(nt.ModuleAttributeInvalidValue, {
          at: this.state.startLoc
        });
      i.value = this.parseStringLiteral(this.state.value), t.push(this.finishNode(i, "ImportAttribute"));
    } while (this.eat(12));
    return t;
  }
  maybeParseModuleAttributes() {
    if (this.match(76) && !this.hasPrecedingLineBreak())
      this.expectPlugin("moduleAttributes"), this.next();
    else
      return this.hasPlugin("moduleAttributes") ? [] : null;
    const t = [], r = /* @__PURE__ */ new Set();
    do {
      const i = this.startNode();
      if (i.key = this.parseIdentifier(!0), i.key.name !== "type" && this.raise(nt.ModuleAttributeDifferentFromType, {
        at: i.key
      }), r.has(i.key.name) && this.raise(nt.ModuleAttributesWithDuplicateKeys, {
        at: i.key,
        key: i.key.name
      }), r.add(i.key.name), this.expect(14), !this.match(131))
        throw this.raise(nt.ModuleAttributeInvalidValue, {
          at: this.state.startLoc
        });
      i.value = this.parseStringLiteral(this.state.value), this.finishNode(i, "ImportAttribute"), t.push(i);
    } while (this.eat(12));
    return t;
  }
  maybeParseImportAssertions() {
    if (this.isContextual(94) && !this.hasPrecedingLineBreak())
      this.expectPlugin("importAssertions"), this.next();
    else
      return this.hasPlugin("importAssertions") ? [] : null;
    this.eat(5);
    const t = this.parseAssertEntries();
    return this.eat(8), t;
  }
  maybeParseDefaultImportSpecifier(t) {
    return this.shouldParseDefaultImport(t) ? (this.parseImportSpecifierLocal(t, this.startNode(), "ImportDefaultSpecifier"), !0) : !1;
  }
  maybeParseStarImportSpecifier(t) {
    if (this.match(55)) {
      const r = this.startNode();
      return this.next(), this.expectContextual(93), this.parseImportSpecifierLocal(t, r, "ImportNamespaceSpecifier"), !0;
    }
    return !1;
  }
  parseNamedImportSpecifiers(t) {
    let r = !0;
    for (this.expect(5); !this.eat(8); ) {
      if (r)
        r = !1;
      else {
        if (this.eat(14))
          throw this.raise(nt.DestructureNamedImport, {
            at: this.state.startLoc
          });
        if (this.expect(12), this.eat(8))
          break;
      }
      const i = this.startNode(), n = this.match(131), s = this.isContextual(128);
      i.imported = this.parseModuleExportName();
      const a = this.parseImportSpecifier(i, n, t.importKind === "type" || t.importKind === "typeof", s, void 0);
      t.specifiers.push(a);
    }
  }
  parseImportSpecifier(t, r, i, n, s) {
    if (this.eatContextual(93))
      t.local = this.parseIdentifier();
    else {
      const {
        imported: a
      } = t;
      if (r)
        throw this.raise(nt.ImportBindingIsString, {
          at: t,
          importName: a.value
        });
      this.checkReservedWord(a.name, t.loc.start, !0, !0), t.local || (t.local = bf(a));
    }
    return this.finishImportSpecifier(t, "ImportSpecifier", s);
  }
  isThisParam(t) {
    return t.type === "Identifier" && t.name === "this";
  }
}, kle = class extends S1e {
  constructor(t, r) {
    t = _xe(t), super(t, r), this.options = t, this.initializeScopes(), this.plugins = x1e(this.options.plugins), this.filename = t.sourceFilename;
  }
  getScopeHandler() {
    return I4;
  }
  parse() {
    this.enterInitialScopes();
    const t = this.startNode(), r = this.startNode();
    return this.nextToken(), t.errors = null, this.parseTopLevel(t, r), t.errors = this.state.errors, t;
  }
};
function x1e(e) {
  const t = /* @__PURE__ */ new Map();
  for (const r of e) {
    const [i, n] = Array.isArray(r) ? r : [r, {}];
    t.has(i) || t.set(i, n || {});
  }
  return t;
}
function E1e(e, t) {
  var r;
  if (((r = t) == null ? void 0 : r.sourceType) === "unambiguous") {
    t = Object.assign({}, t);
    try {
      t.sourceType = "module";
      const i = y0(t, e), n = i.parse();
      if (i.sawUnambiguousESM)
        return n;
      if (i.ambiguousScriptDifferentAst)
        try {
          return t.sourceType = "script", y0(t, e).parse();
        } catch (s) {
        }
      else
        n.program.sourceType = "script";
      return n;
    } catch (i) {
      try {
        return t.sourceType = "script", y0(t, e).parse();
      } catch (n) {
      }
      throw i;
    }
  } else
    return y0(t, e).parse();
}
function P1e(e, t) {
  const r = y0(t, e);
  return r.options.strictMode && (r.state.strict = !0), r.getExpression();
}
function w1e(e) {
  const t = {};
  for (const r of Object.keys(e))
    t[r] = Vp(e[r]);
  return t;
}
const A1e = w1e(kxe);
function y0(e, t) {
  let r = kle;
  return e != null && e.plugins && (m1e(e.plugins), r = C1e(e.plugins)), new r(e, t);
}
const rV = {};
function C1e(e) {
  const t = y1e.filter((n) => Ns(e, n)), r = t.join("/");
  let i = rV[r];
  if (!i) {
    i = kle;
    for (const n of t)
      i = Ile[n](i);
    rV[r] = i;
  }
  return i;
}
var _1e = ZA.parse = E1e, Ole = ZA.parseExpression = P1e;
ZA.tokTypes = A1e;
const pa = (e) => e.type === 4 && e.isStatic, Sh = (e, t) => e === t || e === Voe(t);
function D4(e) {
  if (Sh(e, "Teleport"))
    return xy;
  if (Sh(e, "Suspense"))
    return BA;
  if (Sh(e, "KeepAlive"))
    return yv;
  if (Sh(e, "BaseTransition"))
    return o4;
}
const I1e = /^\d|[^\$\w]/, Bh = (e) => !I1e.test(e), k1e = /[A-Za-z_$\xA0-\uFFFF]/, O1e = /[\.\?\w$\xA0-\uFFFF]/, N1e = /\s+[.[]\s*|\s*[.[]\s+/g, D1e = (e) => {
  e = e.trim().replace(N1e, (a) => a.trim());
  let t = 0, r = [], i = 0, n = 0, s = null;
  for (let a = 0; a < e.length; a++) {
    const o = e.charAt(a);
    switch (t) {
      case 0:
        if (o === "[")
          r.push(t), t = 1, i++;
        else if (o === "(")
          r.push(t), t = 2, n++;
        else if (!(a === 0 ? k1e : O1e).test(o))
          return !1;
        break;
      case 1:
        o === "'" || o === '"' || o === "`" ? (r.push(t), t = 3, s = o) : o === "[" ? i++ : o === "]" && (--i || (t = r.pop()));
        break;
      case 2:
        if (o === "'" || o === '"' || o === "`")
          r.push(t), t = 3, s = o;
        else if (o === "(")
          n++;
        else if (o === ")") {
          if (a === e.length - 1)
            return !1;
          --n || (t = r.pop());
        }
        break;
      case 3:
        o === s && (t = r.pop(), s = null);
        break;
    }
  }
  return !i && !n;
}, Nle = (e, t) => {
  try {
    let r = Ole(e, {
      plugins: t.expressionPlugins
    });
    return (r.type === "TSAsExpression" || r.type === "TSTypeAssertion") && (r = r.expression), r.type === "MemberExpression" || r.type === "OptionalMemberExpression" || r.type === "Identifier";
  } catch (r) {
    return !1;
  }
}, L4 = Nle;
function M4(e, t, r) {
  const n = {
    source: e.source.slice(t, t + r),
    start: Gd(e.start, e.source, t),
    end: e.end
  };
  return r != null && (n.end = Gd(
    e.start,
    e.source,
    t + r
  )), n;
}
function Gd(e, t, r = t.length) {
  return qy(
    gf({}, e),
    t,
    r
  );
}
function qy(e, t, r = t.length) {
  let i = 0, n = -1;
  for (let s = 0; s < r; s++)
    t.charCodeAt(s) === 10 && (i++, n = s);
  return e.offset += r, e.line += i, e.column = n === -1 ? e.column + r : r - n, e;
}
function KB(e, t) {
  if (!e)
    throw new Error(t || "unexpected compiler condition");
}
function ja(e, t, r = !1) {
  for (let i = 0; i < e.props.length; i++) {
    const n = e.props[i];
    if (n.type === 7 && (r || n.exp) && (Ii(t) ? n.name === t : t.test(n.name)))
      return n;
  }
}
function Yd(e, t, r = !1, i = !1) {
  for (let n = 0; n < e.props.length; n++) {
    const s = e.props[n];
    if (s.type === 6) {
      if (r)
        continue;
      if (s.name === t && (s.value || i))
        return s;
    } else if (s.name === "bind" && (s.exp || i) && xh(s.arg, t))
      return s;
  }
}
function xh(e, t) {
  return !!(e && pa(e) && e.content === t);
}
function Dle(e) {
  return e.props.some(
    (t) => t.type === 7 && t.name === "bind" && (!t.arg || // v-bind="obj"
    t.arg.type !== 4 || // v-bind:[_ctx.foo]
    !t.arg.isStatic)
    // v-bind:[foo]
  );
}
function nP(e) {
  return e.type === 5 || e.type === 2;
}
function R4(e) {
  return e.type === 7 && e.name === "slot";
}
function Vy(e) {
  return e.type === 1 && e.tagType === 3;
}
function Pv(e) {
  return e.type === 1 && e.tagType === 2;
}
const L1e = /* @__PURE__ */ new Set([$y, pg]);
function Lle(e, t = []) {
  if (e && !Ii(e) && e.type === 14) {
    const r = e.callee;
    if (!Ii(r) && L1e.has(r))
      return Lle(
        e.arguments[0],
        t.concat(e)
      );
  }
  return [e, t];
}
function wv(e, t, r) {
  let i, n = e.type === 13 ? e.props : e.arguments[2], s = [], a;
  if (n && !Ii(n) && n.type === 14) {
    const o = Lle(n);
    n = o[0], s = o[1], a = s[s.length - 1];
  }
  if (n == null || Ii(n))
    i = vo([t]);
  else if (n.type === 14) {
    const o = n.arguments[0];
    !Ii(o) && o.type === 15 ? iV(t, o) || o.properties.unshift(t) : n.callee === zA ? i = In(r.helper(vv), [
      vo([t]),
      n
    ]) : n.arguments.unshift(vo([t])), !i && (i = n);
  } else
    n.type === 15 ? (iV(t, n) || n.properties.unshift(t), i = n) : (i = In(r.helper(vv), [
      vo([t]),
      n
    ]), a && a.callee === pg && (a = s[s.length - 2]));
  e.type === 13 ? a ? a.arguments[0] = i : e.props = i : a ? a.arguments[0] = i : e.arguments[2] = i;
}
function iV(e, t) {
  let r = !1;
  if (e.key.type === 4) {
    const i = e.key.content;
    r = t.properties.some(
      (n) => n.key.type === 4 && n.key.content === i
    );
  }
  return r;
}
function Av(e, t) {
  return "_".concat(t, "_").concat(e.replace(/[^\w]/g, (r, i) => r === "-" ? "_" : e.charCodeAt(i).toString()));
}
function Ma(e, t) {
  if (!e || Object.keys(t).length === 0)
    return !1;
  switch (e.type) {
    case 1:
      for (let r = 0; r < e.props.length; r++) {
        const i = e.props[r];
        if (i.type === 7 && (Ma(i.arg, t) || Ma(i.exp, t)))
          return !0;
      }
      return e.children.some((r) => Ma(r, t));
    case 11:
      return Ma(e.source, t) ? !0 : e.children.some((r) => Ma(r, t));
    case 9:
      return e.branches.some((r) => Ma(r, t));
    case 10:
      return Ma(e.condition, t) ? !0 : e.children.some((r) => Ma(r, t));
    case 4:
      return !e.isStatic && Bh(e.content) && !!t[e.content];
    case 8:
      return e.children.some((r) => ug(r) && Ma(r, t));
    case 5:
    case 12:
      return Ma(e.content, t);
    case 2:
    case 3:
      return !1;
    default:
      return !1;
  }
}
function Mle(e) {
  return e.type === 14 && e.callee === JA ? e.arguments[1].returns : e;
}
const M1e = {
  COMPILER_IS_ON_ELEMENT: {
    message: 'Platform-native elements with "is" prop will no longer be treated as components in Vue 3 unless the "is" value is explicitly prefixed with "vue:".',
    link: "https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html"
  },
  COMPILER_V_BIND_SYNC: {
    message: (e) => ".sync modifier for v-bind has been removed. Use v-model with argument instead. `v-bind:".concat(e, ".sync` should be changed to `v-model:").concat(e, "`."),
    link: "https://v3-migration.vuejs.org/breaking-changes/v-model.html"
  },
  COMPILER_V_BIND_PROP: {
    message: ".prop modifier for v-bind has been removed and no longer necessary. Vue 3 will automatically set a binding as DOM property when appropriate."
  },
  COMPILER_V_BIND_OBJECT_ORDER: {
    message: 'v-bind="obj" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.',
    link: "https://v3-migration.vuejs.org/breaking-changes/v-bind.html"
  },
  COMPILER_V_ON_NATIVE: {
    message: ".native modifier for v-on has been removed as is no longer necessary.",
    link: "https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html"
  },
  COMPILER_V_IF_V_FOR_PRECEDENCE: {
    message: "v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with <template> tags or use a computed property that filters v-for data source.",
    link: "https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html"
  },
  COMPILER_NATIVE_TEMPLATE: {
    message: "<template> with no special directives will render as a native template element instead of its inner content in Vue 3."
  },
  COMPILER_INLINE_TEMPLATE: {
    message: '"inline-template" has been removed in Vue 3.',
    link: "https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html"
  },
  COMPILER_FILTER: {
    message: 'filters have been removed in Vue 3. The "|" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.',
    link: "https://v3-migration.vuejs.org/breaking-changes/filters.html"
  }
};
function zB(e, t) {
  const r = t.options ? t.options.compatConfig : t.compatConfig, i = r && r[e];
  return e === "MODE" ? i || 3 : i;
}
function R1e(e, t) {
  const r = zB("MODE", t), i = zB(e, t);
  return r === 3 ? i === !0 : i !== !1;
}
function B1e(e, t, r, ...i) {
  const n = R1e(e, t);
  return n && Rle(e, t, r, ...i), n;
}
function Rle(e, t, r, ...i) {
  if (zB(e, t) === "suppress-warning")
    return;
  const { message: s, link: a } = M1e[e], o = "(deprecation ".concat(e, ") ").concat(typeof s == "function" ? s(...i) : s).concat(a ? "\n  Details: ".concat(a) : ""), l = new SyntaxError(o);
  l.code = e, r && (l.loc = r), t.onWarn(l);
}
const F1e = /&(gt|lt|amp|apos|quot);/g, j1e = {
  gt: ">",
  lt: "<",
  amp: "&",
  apos: "'",
  quot: '"'
}, nV = {
  delimiters: ["{{", "}}"],
  getNamespace: () => 0,
  getTextMode: () => 0,
  isVoidTag: JL,
  isPreTag: JL,
  isCustomElement: JL,
  decodeEntities: (e) => e.replace(F1e, (t, r) => j1e[r]),
  onError: a4,
  onWarn: Xoe,
  comments: !0
};
function B4(e, t = {}) {
  const r = $1e(e, t), i = Po(r);
  return d4(
    F4(r, 0, []),
    Mc(r, i)
  );
}
function $1e(e, t) {
  const r = gf({}, nV);
  let i;
  for (i in t)
    r[i] = t[i] === void 0 ? nV[i] : t[i];
  return {
    options: r,
    column: 1,
    line: 1,
    offset: 0,
    originalSource: e,
    source: e,
    inPre: !1,
    inVPre: !1,
    onWarn: r.onWarn
  };
}
function F4(e, t, r) {
  const i = iC(r), n = i ? i.ns : 0, s = [];
  for (; !X1e(e, t, r); ) {
    const o = e.source;
    let l;
    if (t === 0 || t === 1) {
      if (!e.inVPre && Rs(o, e.options.delimiters[0]))
        l = G1e(e, t);
      else if (t === 0 && o[0] === "<")
        if (o.length === 1)
          ji(e, 5, 1);
        else if (o[1] === "!")
          Rs(o, "<!--") ? l = q1e(e) : Rs(o, "<!DOCTYPE") ? l = Qg(e) : Rs(o, "<![CDATA[") ? n !== 0 ? l = U1e(e, r) : (ji(e, 1), l = Qg(e)) : (ji(e, 11), l = Qg(e));
        else if (o[1] === "/")
          if (o.length === 2)
            ji(e, 5, 2);
          else if (o[2] === ">") {
            ji(e, 14, 2), Xn(e, 3);
            continue;
          } else if (/[a-z]/i.test(o[2])) {
            ji(e, 23), GB(e, cw.End, i);
            continue;
          } else
            ji(
              e,
              12,
              2
            ), l = Qg(e);
        else
          /[a-z]/i.test(o[1]) ? l = V1e(e, r) : o[1] === "?" ? (ji(
            e,
            21,
            1
          ), l = Qg(e)) : ji(e, 12, 1);
    }
    if (l || (l = Y1e(e, t)), Ul(l))
      for (let u = 0; u < l.length; u++)
        sV(s, l[u]);
    else
      sV(s, l);
  }
  let a = !1;
  if (t !== 2 && t !== 1) {
    const o = e.options.whitespace !== "preserve";
    for (let l = 0; l < s.length; l++) {
      const u = s[l];
      if (u.type === 2)
        if (e.inPre)
          u.content = u.content.replace(/\r\n/g, "\n");
        else if (/[^\t\r\n\f ]/.test(u.content))
          o && (u.content = u.content.replace(/[\t\r\n\f ]+/g, " "));
        else {
          const c = s[l - 1], f = s[l + 1];
          !c || !f || o && (c.type === 3 && f.type === 3 || c.type === 3 && f.type === 1 || c.type === 1 && f.type === 3 || c.type === 1 && f.type === 1 && /[\r\n]/.test(u.content)) ? (a = !0, s[l] = null) : u.content = " ";
        }
      else
        u.type === 3 && !e.options.comments && (a = !0, s[l] = null);
    }
    if (e.inPre && i && e.options.isPreTag(i.tag)) {
      const l = s[0];
      l && l.type === 2 && (l.content = l.content.replace(/^\r?\n/, ""));
    }
  }
  return a ? s.filter(Boolean) : s;
}
function sV(e, t) {
  if (t.type === 2) {
    const r = iC(e);
    if (r && r.type === 2 && r.loc.end.offset === t.loc.start.offset) {
      r.content += t.content, r.loc.end = t.loc.end, r.loc.source += t.loc.source;
      return;
    }
  }
  e.push(t);
}
function U1e(e, t) {
  Xn(e, 9);
  const r = F4(e, 3, t);
  return e.source.length === 0 ? ji(e, 6) : Xn(e, 3), r;
}
function q1e(e) {
  const t = Po(e);
  let r;
  const i = /--(\!)?>/.exec(e.source);
  if (!i)
    r = e.source.slice(4), Xn(e, e.source.length), ji(e, 7);
  else {
    i.index <= 3 && ji(e, 0), i[1] && ji(e, 10), r = e.source.slice(4, i.index);
    const n = e.source.slice(0, i.index);
    let s = 1, a = 0;
    for (; (a = n.indexOf("<!--", s)) !== -1; )
      Xn(e, a - s + 1), a + 4 < n.length && ji(e, 16), s = a + 1;
    Xn(e, i.index + i[0].length - s + 1);
  }
  return {
    type: 3,
    content: r,
    loc: Mc(e, t)
  };
}
function Qg(e) {
  const t = Po(e), r = e.source[1] === "?" ? 1 : 2;
  let i;
  const n = e.source.indexOf(">");
  return n === -1 ? (i = e.source.slice(r), Xn(e, e.source.length)) : (i = e.source.slice(r, n), Xn(e, n + 1)), {
    type: 3,
    content: i,
    loc: Mc(e, t)
  };
}
function V1e(e, t) {
  const r = e.inPre, i = e.inVPre, n = iC(t), s = GB(e, cw.Start, n), a = e.inPre && !r, o = e.inVPre && !i;
  if (s.isSelfClosing || e.options.isVoidTag(s.tag))
    return a && (e.inPre = !1), o && (e.inVPre = !1), s;
  t.push(s);
  const l = e.options.getTextMode(s, n), u = F4(e, l, t);
  if (t.pop(), s.children = u, YB(e.source, s.tag))
    GB(e, cw.End, n);
  else if (ji(e, 24, 0, s.loc.start), e.source.length === 0 && s.tag.toLowerCase() === "script") {
    const c = u[0];
    c && Rs(c.loc.source, "<!--") && ji(e, 8);
  }
  return s.loc = Mc(e, s.loc.start), a && (e.inPre = !1), o && (e.inVPre = !1), s;
}
var cw = /* @__PURE__ */ ((e) => (e[e.Start = 0] = "Start", e[e.End = 1] = "End", e))(cw || {});
const W1e = /* @__PURE__ */ Es(
  "if,else,else-if,for,slot"
);
function GB(e, t, r) {
  const i = Po(e), n = /^<\/?([a-z][^\t\r\n\f />]*)/i.exec(e.source), s = n[1], a = e.options.getNamespace(s, r);
  Xn(e, n[0].length), Cv(e);
  const o = Po(e), l = e.source;
  e.options.isPreTag(s) && (e.inPre = !0);
  let u = aV(e, t);
  t === 0 && !e.inVPre && u.some((h) => h.type === 7 && h.name === "pre") && (e.inVPre = !0, gf(e, o), e.source = l, u = aV(e, t).filter((h) => h.name !== "v-pre"));
  let c = !1;
  if (e.source.length === 0 ? ji(e, 9) : (c = Rs(e.source, "/>"), t === 1 && c && ji(e, 4), Xn(e, c ? 2 : 1)), t === 1)
    return;
  let f = 0;
  return e.inVPre || (s === "slot" ? f = 2 : s === "template" ? u.some(
    (h) => h.type === 7 && W1e(h.name)
  ) && (f = 3) : H1e(s, u, e) && (f = 1)), {
    type: 1,
    ns: a,
    tag: s,
    tagType: f,
    props: u,
    isSelfClosing: c,
    children: [],
    loc: Mc(e, i),
    codegenNode: void 0
    // to be created during transform phase
  };
}
function H1e(e, t, r) {
  const i = r.options;
  if (i.isCustomElement(e))
    return !1;
  if (e === "component" || /^[A-Z]/.test(e) || D4(e) || i.isBuiltInComponent && i.isBuiltInComponent(e) || i.isNativeTag && !i.isNativeTag(e))
    return !0;
  for (let n = 0; n < t.length; n++) {
    const s = t[n];
    if (s.type === 6) {
      if (s.name === "is" && s.value && s.value.content.startsWith("vue:"))
        return !0;
    } else {
      if (s.name === "is")
        return !0;
      // :is on plain element - only treat as component in compat mode
      s.name === "bind" && xh(s.arg, "is");
    }
  }
}
function aV(e, t) {
  const r = [], i = /* @__PURE__ */ new Set();
  for (; e.source.length > 0 && !Rs(e.source, ">") && !Rs(e.source, "/>"); ) {
    if (Rs(e.source, "/")) {
      ji(e, 22), Xn(e, 1), Cv(e);
      continue;
    }
    t === 1 && ji(e, 3);
    const n = K1e(e, i);
    n.type === 6 && n.value && n.name === "class" && (n.value.content = n.value.content.replace(/\s+/g, " ").trim()), t === 0 && r.push(n), /^[^\t\r\n\f />]/.test(e.source) && ji(e, 15), Cv(e);
  }
  return r;
}
function K1e(e, t) {
  var r;
  const i = Po(e), s = /^[^\t\r\n\f />][^\t\r\n\f />=]*/.exec(e.source)[0];
  t.has(s) && ji(e, 2), t.add(s), s[0] === "=" && ji(e, 19);
  {
    const l = /["'<]/g;
    let u;
    for (; u = l.exec(s); )
      ji(
        e,
        17,
        u.index
      );
  }
  Xn(e, s.length);
  let a;
  /^[\t\r\n\f ]*=/.test(e.source) && (Cv(e), Xn(e, 1), Cv(e), a = z1e(e), a || ji(e, 13));
  const o = Mc(e, i);
  if (!e.inVPre && /^(v-[A-Za-z0-9-]|:|\.|@|#)/.test(s)) {
    const l = /(?:^v-([a-z0-9-]+))?(?:(?::|^\.|^@|^#)(\[[^\]]+\]|[^\.]+))?(.+)?$/i.exec(
      s
    );
    let u = Rs(s, "."), c = l[1] || (u || Rs(s, ":") ? "bind" : Rs(s, "@") ? "on" : "slot"), f;
    if (l[2]) {
      const m = c === "slot", g = s.lastIndexOf(
        l[2],
        s.length - (((r = l[3]) == null ? void 0 : r.length) || 0)
      ), y = Mc(
        e,
        oV(e, i, g),
        oV(
          e,
          i,
          g + l[2].length + (m && l[3] || "").length
        )
      );
      let v = l[2], T = !0;
      v.startsWith("[") ? (T = !1, v.endsWith("]") ? v = v.slice(1, v.length - 1) : (ji(
        e,
        27
      ), v = v.slice(1))) : m && (v += l[3] || ""), f = {
        type: 4,
        content: v,
        isStatic: T,
        constType: T ? 3 : 0,
        loc: y
      };
    }
    if (a && a.isQuoted) {
      const m = a.loc;
      m.start.offset++, m.start.column++, m.end = Gd(m.start, a.content), m.source = m.source.slice(1, -1);
    }
    const h = l[3] ? l[3].slice(1).split(".") : [];
    return u && h.push("prop"), {
      type: 7,
      name: c,
      exp: a && {
        type: 4,
        content: a.content,
        isStatic: !1,
        // Treat as non-constant by default. This can be potentially set to
        // other values by `transformExpression` to make it eligible for hoisting.
        constType: 0,
        loc: a.loc
      },
      arg: f,
      modifiers: h,
      loc: o
    };
  }
  return !e.inVPre && Rs(s, "v-") && ji(e, 26), {
    type: 6,
    name: s,
    value: a && {
      type: 2,
      content: a.content,
      loc: a.loc
    },
    loc: o
  };
}
function z1e(e) {
  const t = Po(e);
  let r;
  const i = e.source[0], n = i === '"' || i === "'";
  if (n) {
    Xn(e, 1);
    const s = e.source.indexOf(i);
    s === -1 ? r = K0(
      e,
      e.source.length,
      4
    ) : (r = K0(e, s, 4), Xn(e, 1));
  } else {
    const s = /^[^\t\r\n\f >]+/.exec(e.source);
    if (!s)
      return;
    const a = /["'<=`]/g;
    let o;
    for (; o = a.exec(s[0]); )
      ji(
        e,
        18,
        o.index
      );
    r = K0(e, s[0].length, 4);
  }
  return { content: r, isQuoted: n, loc: Mc(e, t) };
}
function G1e(e, t) {
  const [r, i] = e.options.delimiters, n = e.source.indexOf(i, r.length);
  if (n === -1) {
    ji(e, 25);
    return;
  }
  const s = Po(e);
  Xn(e, r.length);
  const a = Po(e), o = Po(e), l = n - r.length, u = e.source.slice(0, l), c = K0(e, l, t), f = c.trim(), h = c.indexOf(f);
  h > 0 && qy(a, u, h);
  const m = l - (c.length - f.length - h);
  return qy(o, u, m), Xn(e, i.length), {
    type: 5,
    content: {
      type: 4,
      isStatic: !1,
      // Set `isConstant` to false by default and will decide in transformExpression
      constType: 0,
      content: f,
      loc: Mc(e, a, o)
    },
    loc: Mc(e, s)
  };
}
function Y1e(e, t) {
  const r = t === 3 ? ["]]>"] : ["<", e.options.delimiters[0]];
  let i = e.source.length;
  for (let a = 0; a < r.length; a++) {
    const o = e.source.indexOf(r[a], 1);
    o !== -1 && i > o && (i = o);
  }
  const n = Po(e);
  return {
    type: 2,
    content: K0(e, i, t),
    loc: Mc(e, n)
  };
}
function K0(e, t, r) {
  const i = e.source.slice(0, t);
  return Xn(e, t), r === 2 || r === 3 || !i.includes("&") ? i : e.options.decodeEntities(
    i,
    r === 4
  );
}
function Po(e) {
  const { column: t, line: r, offset: i } = e;
  return { column: t, line: r, offset: i };
}
function Mc(e, t, r) {
  return r = r || Po(e), {
    start: t,
    end: r,
    source: e.originalSource.slice(t.offset, r.offset)
  };
}
function iC(e) {
  return e[e.length - 1];
}
function Rs(e, t) {
  return e.startsWith(t);
}
function Xn(e, t) {
  const { source: r } = e;
  qy(e, r, t), e.source = r.slice(t);
}
function Cv(e) {
  const t = /^[\t\r\n\f ]+/.exec(e.source);
  t && Xn(e, t[0].length);
}
function oV(e, t, r) {
  return Gd(
    t,
    e.originalSource.slice(t.offset, r),
    r
  );
}
function ji(e, t, r, i = Po(e)) {
  r && (i.offset += r, i.column += r), e.options.onError(
    Ni(t, {
      start: i,
      end: i,
      source: ""
    })
  );
}
function X1e(e, t, r) {
  const i = e.source;
  switch (t) {
    case 0:
      if (Rs(i, "</")) {
        for (let n = r.length - 1; n >= 0; --n)
          if (YB(i, r[n].tag))
            return !0;
      }
      break;
    case 1:
    case 2: {
      const n = iC(r);
      if (n && YB(i, n.tag))
        return !0;
      break;
    }
    case 3:
      if (Rs(i, "]]>"))
        return !0;
      break;
  }
  return !i;
}
function YB(e, t) {
  return Rs(e, "</") && e.slice(2, 2 + t.length).toLowerCase() === t.toLowerCase() && /[\t\r\n\f />]/.test(e[2 + t.length] || ">");
}
function J1e(e, t) {
  sP(
    e,
    t,
    // Root node is unfortunately non-hoistable due to potential parent
    // fallthrough attributes.
    Ble(e, e.children[0])
  );
}
function Ble(e, t) {
  const { children: r } = e;
  return r.length === 1 && t.type === 1 && !Pv(t);
}
function sP(e, t, r = !1) {
  const { children: i } = e, n = i.length;
  let s = 0;
  for (let a = 0; a < i.length; a++) {
    const o = i[a];
    if (o.type === 1 && o.tagType === 0) {
      const l = r ? 0 : To(o, t);
      if (l > 0) {
        if (l >= 2) {
          o.codegenNode.patchFlag = "-1 /* HOISTED */", o.codegenNode = t.hoist(o.codegenNode), s++;
          continue;
        }
      } else {
        const u = o.codegenNode;
        if (u.type === 13) {
          const c = Ule(u);
          if ((!c || c === 512 || c === 1) && jle(o, t) >= 2) {
            const f = $le(o);
            f && (u.props = t.hoist(f));
          }
          u.dynamicProps && (u.dynamicProps = t.hoist(u.dynamicProps));
        }
      }
    }
    if (o.type === 1) {
      const l = o.tagType === 1;
      l && t.scopes.vSlot++, sP(o, t), l && t.scopes.vSlot--;
    } else if (o.type === 11)
      sP(o, t, o.children.length === 1);
    else if (o.type === 9)
      for (let l = 0; l < o.branches.length; l++)
        sP(
          o.branches[l],
          t,
          o.branches[l].children.length === 1
        );
  }
  s && t.transformHoist && t.transformHoist(i, t, e), s && s === n && e.type === 1 && e.tagType === 0 && e.codegenNode && e.codegenNode.type === 13 && Ul(e.codegenNode.children) && (e.codegenNode.children = t.hoist(
    fg(e.codegenNode.children)
  ));
}
function To(e, t) {
  const { constantCache: r } = t;
  switch (e.type) {
    case 1:
      if (e.tagType !== 0)
        return 0;
      const i = r.get(e);
      if (i !== void 0)
        return i;
      const n = e.codegenNode;
      if (n.type !== 13 || n.isBlock && e.tag !== "svg" && e.tag !== "foreignObject")
        return 0;
      if (Ule(n))
        return r.set(e, 0), 0;
      {
        let o = 3;
        const l = jle(e, t);
        if (l === 0)
          return r.set(e, 0), 0;
        l < o && (o = l);
        for (let u = 0; u < e.children.length; u++) {
          const c = To(e.children[u], t);
          if (c === 0)
            return r.set(e, 0), 0;
          c < o && (o = c);
        }
        if (o > 1)
          for (let u = 0; u < e.props.length; u++) {
            const c = e.props[u];
            if (c.type === 7 && c.name === "bind" && c.exp) {
              const f = To(c.exp, t);
              if (f === 0)
                return r.set(e, 0), 0;
              f < o && (o = f);
            }
          }
        if (n.isBlock) {
          for (let u = 0; u < e.props.length; u++)
            if (e.props[u].type === 7)
              return r.set(e, 0), 0;
          t.removeHelper(Rh), t.removeHelper(
            Kd(t.inSSR, n.isComponent)
          ), n.isBlock = !1, t.helper(Hd(t.inSSR, n.isComponent));
        }
        return r.set(e, o), o;
      }
    case 2:
    case 3:
      return 3;
    case 9:
    case 11:
    case 10:
      return 0;
    case 5:
    case 12:
      return To(e.content, t);
    case 4:
      return e.constType;
    case 8:
      let a = 3;
      for (let o = 0; o < e.children.length; o++) {
        const l = e.children[o];
        if (Ii(l) || ST(l))
          continue;
        const u = To(l, t);
        if (u === 0)
          return 0;
        u < a && (a = u);
      }
      return a;
    default:
      return 0;
  }
}
const Q1e = /* @__PURE__ */ new Set([
  HA,
  KA,
  $y,
  pg
]);
function Fle(e, t) {
  if (e.type === 14 && !Ii(e.callee) && Q1e.has(e.callee)) {
    const r = e.arguments[0];
    if (r.type === 4)
      return To(r, t);
    if (r.type === 14)
      return Fle(r, t);
  }
  return 0;
}
function jle(e, t) {
  let r = 3;
  const i = $le(e);
  if (i && i.type === 15) {
    const { properties: n } = i;
    for (let s = 0; s < n.length; s++) {
      const { key: a, value: o } = n[s], l = To(a, t);
      if (l === 0)
        return l;
      l < r && (r = l);
      let u;
      if (o.type === 4 ? u = To(o, t) : o.type === 14 ? u = Fle(o, t) : u = 0, u === 0)
        return u;
      u < r && (r = u);
    }
  }
  return r;
}
function $le(e) {
  const t = e.codegenNode;
  if (t.type === 13)
    return t.props;
}
function Ule(e) {
  const t = e.patchFlag;
  return t ? parseInt(t, 10) : void 0;
}
function qle(e, {
  filename: t = "",
  prefixIdentifiers: r = !1,
  hoistStatic: i = !1,
  cacheHandlers: n = !1,
  nodeTransforms: s = [],
  directiveTransforms: a = {},
  transformHoist: o = null,
  isBuiltInComponent: l = Rq,
  isCustomElement: u = Rq,
  expressionPlugins: c = [],
  scopeId: f = null,
  slotted: h = !0,
  ssr: m = !1,
  inSSR: g = !1,
  ssrCssVars: y = "",
  bindingMetadata: v = KSe,
  inline: T = !1,
  isTS: S = !1,
  onError: P = a4,
  onWarn: x = Xoe,
  compatConfig: C
}) {
  const D = t.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/), w = {
    // options
    selfName: D && Vd(Dc(D[1])),
    prefixIdentifiers: r,
    hoistStatic: i,
    cacheHandlers: n,
    nodeTransforms: s,
    directiveTransforms: a,
    transformHoist: o,
    isBuiltInComponent: l,
    isCustomElement: u,
    expressionPlugins: c,
    scopeId: f,
    slotted: h,
    ssr: m,
    inSSR: g,
    ssrCssVars: y,
    bindingMetadata: v,
    inline: T,
    isTS: S,
    onError: P,
    onWarn: x,
    compatConfig: C,
    // state
    root: e,
    helpers: /* @__PURE__ */ new Map(),
    components: /* @__PURE__ */ new Set(),
    directives: /* @__PURE__ */ new Set(),
    hoists: [],
    imports: [],
    constantCache: /* @__PURE__ */ new Map(),
    temps: 0,
    cached: 0,
    identifiers: /* @__PURE__ */ Object.create(null),
    scopes: {
      vFor: 0,
      vSlot: 0,
      vPre: 0,
      vOnce: 0
    },
    parent: null,
    currentNode: e,
    childIndex: 0,
    inVOnce: !1,
    // methods
    helper(L) {
      const O = w.helpers.get(L) || 0;
      return w.helpers.set(L, O + 1), L;
    },
    removeHelper(L) {
      const O = w.helpers.get(L);
      if (O) {
        const F = O - 1;
        F ? w.helpers.set(L, F) : w.helpers.delete(L);
      }
    },
    helperString(L) {
      return "_".concat(Fa[w.helper(L)]);
    },
    replaceNode(L) {
      {
        if (!w.currentNode)
          throw new Error("Node being replaced is already removed.");
        if (!w.parent)
          throw new Error("Cannot replace root node.");
      }
      w.parent.children[w.childIndex] = w.currentNode = L;
    },
    removeNode(L) {
      if (!w.parent)
        throw new Error("Cannot remove root node.");
      const O = w.parent.children, F = L ? O.indexOf(L) : w.currentNode ? w.childIndex : -1;
      if (F < 0)
        throw new Error("node being removed is not a child of current parent");
      !L || L === w.currentNode ? (w.currentNode = null, w.onNodeRemoved()) : w.childIndex > F && (w.childIndex--, w.onNodeRemoved()), w.parent.children.splice(F, 1);
    },
    onNodeRemoved: () => {
    },
    addIdentifiers(L) {
      Ii(L) ? A(L) : L.identifiers ? L.identifiers.forEach(A) : L.type === 4 && A(L.content);
    },
    removeIdentifiers(L) {
      Ii(L) ? I(L) : L.identifiers ? L.identifiers.forEach(I) : L.type === 4 && I(L.content);
    },
    hoist(L) {
      Ii(L) && (L = Pr(L)), w.hoists.push(L);
      const O = Pr(
        "_hoisted_".concat(w.hoists.length),
        !1,
        L.loc,
        2
      );
      return O.hoisted = L, O;
    },
    cache(L, O = !1) {
      return Zoe(w.cached++, L, O);
    }
  };
  function A(L) {
    const { identifiers: O } = w;
    O[L] === void 0 && (O[L] = 0), O[L]++;
  }
  function I(L) {
    w.identifiers[L]--;
  }
  return w;
}
function j4(e, t) {
  const r = qle(e, t);
  PT(e, r), t.hoistStatic && J1e(e, r), t.ssr || Z1e(e, r), e.helpers = /* @__PURE__ */ new Set([...r.helpers.keys()]), e.components = [...r.components], e.directives = [...r.directives], e.imports = r.imports, e.hoists = r.hoists, e.temps = r.temps, e.cached = r.cached;
}
function Z1e(e, t) {
  const { helper: r } = t, { children: i } = e;
  if (i.length === 1) {
    const n = i[0];
    if (Ble(e, n) && n.codegenNode) {
      const s = n.codegenNode;
      s.type === 13 && QA(s, t), e.codegenNode = s;
    } else
      e.codegenNode = n;
  } else if (i.length > 1) {
    let n = 64, s = pp[64];
    i.filter((a) => a.type !== 3).length === 1 && (n |= 2048, s += ", ".concat(pp[2048])), e.codegenNode = Uy(
      t,
      r(jy),
      void 0,
      e.children,
      n + " /* ".concat(s, " */"),
      void 0,
      void 0,
      !0,
      void 0,
      !1
      /* isComponent */
    );
  }
}
function ePe(e, t) {
  let r = 0;
  const i = () => {
    r--;
  };
  for (; r < e.children.length; r++) {
    const n = e.children[r];
    Ii(n) || (t.parent = e, t.childIndex = r, t.onNodeRemoved = i, PT(n, t));
  }
}
function PT(e, t) {
  t.currentNode = e;
  const { nodeTransforms: r } = t, i = [];
  for (let s = 0; s < r.length; s++) {
    const a = r[s](e, t);
    if (a && (Ul(a) ? i.push(...a) : i.push(a)), t.currentNode)
      e = t.currentNode;
    else
      return;
  }
  switch (e.type) {
    case 3:
      t.ssr || t.helper(cg);
      break;
    case 5:
      t.ssr || t.helper(xT);
      break;
    case 9:
      for (let s = 0; s < e.branches.length; s++)
        PT(e.branches[s], t);
      break;
    case 10:
    case 11:
    case 1:
    case 0:
      ePe(e, t);
      break;
  }
  t.currentNode = e;
  let n = i.length;
  for (; n--; )
    i[n]();
}
function $4(e, t) {
  const r = Ii(e) ? (i) => i === e : (i) => e.test(i);
  return (i, n) => {
    if (i.type === 1) {
      const { props: s } = i;
      if (i.tagType === 3 && s.some(R4))
        return;
      const a = [];
      for (let o = 0; o < s.length; o++) {
        const l = s[o];
        if (l.type === 7 && r(l.name)) {
          s.splice(o, 1), o--;
          const u = t(i, l, n);
          u && a.push(u);
        }
      }
      return a;
    }
  };
}
var hg = {}, U4 = {}, nC = {}, q4 = {}, lV = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");
q4.encode = function(e) {
  if (0 <= e && e < lV.length)
    return lV[e];
  throw new TypeError("Must be between 0 and 63: " + e);
};
q4.decode = function(e) {
  var t = 65, r = 90, i = 97, n = 122, s = 48, a = 57, o = 43, l = 47, u = 26, c = 52;
  return t <= e && e <= r ? e - t : i <= e && e <= n ? e - i + u : s <= e && e <= a ? e - s + c : e == o ? 62 : e == l ? 63 : -1;
};
var Vle = q4, V4 = 5, Wle = 1 << V4, Hle = Wle - 1, Kle = Wle;
function tPe(e) {
  return e < 0 ? (-e << 1) + 1 : (e << 1) + 0;
}
function rPe(e) {
  var t = (e & 1) === 1, r = e >> 1;
  return t ? -r : r;
}
nC.encode = function(t) {
  var r = "", i, n = tPe(t);
  do
    i = n & Hle, n >>>= V4, n > 0 && (i |= Kle), r += Vle.encode(i);
  while (n > 0);
  return r;
};
nC.decode = function(t, r, i) {
  var n = t.length, s = 0, a = 0, o, l;
  do {
    if (r >= n)
      throw new Error("Expected more digits in base 64 VLQ value.");
    if (l = Vle.decode(t.charCodeAt(r++)), l === -1)
      throw new Error("Invalid base64 digit: " + t.charAt(r - 1));
    o = !!(l & Kle), l &= Hle, s = s + (l << a), a += V4;
  } while (o);
  i.value = rPe(s), i.rest = r;
};
var dg = {};
(function(e) {
  function t(A, I, L) {
    if (I in A)
      return A[I];
    if (arguments.length === 3)
      return L;
    throw new Error('"' + I + '" is a required argument.');
  }
  e.getArg = t;
  var r = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/, i = /^data:.+\,.+$/;
  function n(A) {
    var I = A.match(r);
    return I ? {
      scheme: I[1],
      auth: I[2],
      host: I[3],
      port: I[4],
      path: I[5]
    } : null;
  }
  e.urlParse = n;
  function s(A) {
    var I = "";
    return A.scheme && (I += A.scheme + ":"), I += "//", A.auth && (I += A.auth + "@"), A.host && (I += A.host), A.port && (I += ":" + A.port), A.path && (I += A.path), I;
  }
  e.urlGenerate = s;
  var a = 32;
  function o(A) {
    var I = [];
    return function(L) {
      for (var O = 0; O < I.length; O++)
        if (I[O].input === L) {
          var F = I[0];
          return I[0] = I[O], I[O] = F, I[0].result;
        }
      var q = A(L);
      return I.unshift({
        input: L,
        result: q
      }), I.length > a && I.pop(), q;
    };
  }
  var l = o(function(I) {
    var L = I, O = n(I);
    if (O) {
      if (!O.path)
        return I;
      L = O.path;
    }
    for (var F = e.isAbsolute(L), q = [], j = 0, N = 0; ; )
      if (j = N, N = L.indexOf("/", j), N === -1) {
        q.push(L.slice(j));
        break;
      } else
        for (q.push(L.slice(j, N)); N < L.length && L[N] === "/"; )
          N++;
    for (var M, R = 0, N = q.length - 1; N >= 0; N--)
      M = q[N], M === "." ? q.splice(N, 1) : M === ".." ? R++ : R > 0 && (M === "" ? (q.splice(N + 1, R), R = 0) : (q.splice(N, 2), R--));
    return L = q.join("/"), L === "" && (L = F ? "/" : "."), O ? (O.path = L, s(O)) : L;
  });
  e.normalize = l;
  function u(A, I) {
    A === "" && (A = "."), I === "" && (I = ".");
    var L = n(I), O = n(A);
    if (O && (A = O.path || "/"), L && !L.scheme)
      return O && (L.scheme = O.scheme), s(L);
    if (L || I.match(i))
      return I;
    if (O && !O.host && !O.path)
      return O.host = I, s(O);
    var F = I.charAt(0) === "/" ? I : l(A.replace(/\/+$/, "") + "/" + I);
    return O ? (O.path = F, s(O)) : F;
  }
  e.join = u, e.isAbsolute = function(A) {
    return A.charAt(0) === "/" || r.test(A);
  };
  function c(A, I) {
    A === "" && (A = "."), A = A.replace(/\/$/, "");
    for (var L = 0; I.indexOf(A + "/") !== 0; ) {
      var O = A.lastIndexOf("/");
      if (O < 0 || (A = A.slice(0, O), A.match(/^([^\/]+:\/)?\/*$/)))
        return I;
      ++L;
    }
    return Array(L + 1).join("../") + I.substr(A.length + 1);
  }
  e.relative = c;
  var f = function() {
    var A = /* @__PURE__ */ Object.create(null);
    return !("__proto__" in A);
  }();
  function h(A) {
    return A;
  }
  function m(A) {
    return y(A) ? "$" + A : A;
  }
  e.toSetString = f ? h : m;
  function g(A) {
    return y(A) ? A.slice(1) : A;
  }
  e.fromSetString = f ? h : g;
  function y(A) {
    if (!A)
      return !1;
    var I = A.length;
    if (I < 9 || A.charCodeAt(I - 1) !== 95 || A.charCodeAt(I - 2) !== 95 || A.charCodeAt(I - 3) !== 111 || A.charCodeAt(I - 4) !== 116 || A.charCodeAt(I - 5) !== 111 || A.charCodeAt(I - 6) !== 114 || A.charCodeAt(I - 7) !== 112 || A.charCodeAt(I - 8) !== 95 || A.charCodeAt(I - 9) !== 95)
      return !1;
    for (var L = I - 10; L >= 0; L--)
      if (A.charCodeAt(L) !== 36)
        return !1;
    return !0;
  }
  function v(A, I, L) {
    var O = x(A.source, I.source);
    return O !== 0 || (O = A.originalLine - I.originalLine, O !== 0) || (O = A.originalColumn - I.originalColumn, O !== 0 || L) || (O = A.generatedColumn - I.generatedColumn, O !== 0) || (O = A.generatedLine - I.generatedLine, O !== 0) ? O : x(A.name, I.name);
  }
  e.compareByOriginalPositions = v;
  function T(A, I, L) {
    var O;
    return O = A.originalLine - I.originalLine, O !== 0 || (O = A.originalColumn - I.originalColumn, O !== 0 || L) || (O = A.generatedColumn - I.generatedColumn, O !== 0) || (O = A.generatedLine - I.generatedLine, O !== 0) ? O : x(A.name, I.name);
  }
  e.compareByOriginalPositionsNoSource = T;
  function S(A, I, L) {
    var O = A.generatedLine - I.generatedLine;
    return O !== 0 || (O = A.generatedColumn - I.generatedColumn, O !== 0 || L) || (O = x(A.source, I.source), O !== 0) || (O = A.originalLine - I.originalLine, O !== 0) || (O = A.originalColumn - I.originalColumn, O !== 0) ? O : x(A.name, I.name);
  }
  e.compareByGeneratedPositionsDeflated = S;
  function P(A, I, L) {
    var O = A.generatedColumn - I.generatedColumn;
    return O !== 0 || L || (O = x(A.source, I.source), O !== 0) || (O = A.originalLine - I.originalLine, O !== 0) || (O = A.originalColumn - I.originalColumn, O !== 0) ? O : x(A.name, I.name);
  }
  e.compareByGeneratedPositionsDeflatedNoLine = P;
  function x(A, I) {
    return A === I ? 0 : A === null ? 1 : I === null ? -1 : A > I ? 1 : -1;
  }
  function C(A, I) {
    var L = A.generatedLine - I.generatedLine;
    return L !== 0 || (L = A.generatedColumn - I.generatedColumn, L !== 0) || (L = x(A.source, I.source), L !== 0) || (L = A.originalLine - I.originalLine, L !== 0) || (L = A.originalColumn - I.originalColumn, L !== 0) ? L : x(A.name, I.name);
  }
  e.compareByGeneratedPositionsInflated = C;
  function D(A) {
    return JSON.parse(A.replace(/^\)]}'[^\n]*\n/, ""));
  }
  e.parseSourceMapInput = D;
  function w(A, I, L) {
    if (I = I || "", A && (A[A.length - 1] !== "/" && I[0] !== "/" && (A += "/"), I = A + I), L) {
      var O = n(L);
      if (!O)
        throw new Error("sourceMapURL could not be parsed");
      if (O.path) {
        var F = O.path.lastIndexOf("/");
        F >= 0 && (O.path = O.path.substring(0, F + 1));
      }
      I = u(s(O), I);
    }
    return l(I);
  }
  e.computeSourceURL = w;
})(dg);
var W4 = {}, H4 = dg, K4 = Object.prototype.hasOwnProperty, Bd = typeof Map != "undefined";
function Ef() {
  this._array = [], this._set = Bd ? /* @__PURE__ */ new Map() : /* @__PURE__ */ Object.create(null);
}
Ef.fromArray = function(t, r) {
  for (var i = new Ef(), n = 0, s = t.length; n < s; n++)
    i.add(t[n], r);
  return i;
};
Ef.prototype.size = function() {
  return Bd ? this._set.size : Object.getOwnPropertyNames(this._set).length;
};
Ef.prototype.add = function(t, r) {
  var i = Bd ? t : H4.toSetString(t), n = Bd ? this.has(t) : K4.call(this._set, i), s = this._array.length;
  (!n || r) && this._array.push(t), n || (Bd ? this._set.set(t, s) : this._set[i] = s);
};
Ef.prototype.has = function(t) {
  if (Bd)
    return this._set.has(t);
  var r = H4.toSetString(t);
  return K4.call(this._set, r);
};
Ef.prototype.indexOf = function(t) {
  if (Bd) {
    var r = this._set.get(t);
    if (r >= 0)
      return r;
  } else {
    var i = H4.toSetString(t);
    if (K4.call(this._set, i))
      return this._set[i];
  }
  throw new Error('"' + t + '" is not in the set.');
};
Ef.prototype.at = function(t) {
  if (t >= 0 && t < this._array.length)
    return this._array[t];
  throw new Error("No element indexed by " + t);
};
Ef.prototype.toArray = function() {
  return this._array.slice();
};
W4.ArraySet = Ef;
var zle = {}, Gle = dg;
function iPe(e, t) {
  var r = e.generatedLine, i = t.generatedLine, n = e.generatedColumn, s = t.generatedColumn;
  return i > r || i == r && s >= n || Gle.compareByGeneratedPositionsInflated(e, t) <= 0;
}
function sC() {
  this._array = [], this._sorted = !0, this._last = { generatedLine: -1, generatedColumn: 0 };
}
sC.prototype.unsortedForEach = function(t, r) {
  this._array.forEach(t, r);
};
sC.prototype.add = function(t) {
  iPe(this._last, t) ? (this._last = t, this._array.push(t)) : (this._sorted = !1, this._array.push(t));
};
sC.prototype.toArray = function() {
  return this._sorted || (this._array.sort(Gle.compareByGeneratedPositionsInflated), this._sorted = !0), this._array;
};
zle.MappingList = sC;
var Zg = nC, qn = dg, pw = W4.ArraySet, nPe = zle.MappingList;
function ql(e) {
  e || (e = {}), this._file = qn.getArg(e, "file", null), this._sourceRoot = qn.getArg(e, "sourceRoot", null), this._skipValidation = qn.getArg(e, "skipValidation", !1), this._sources = new pw(), this._names = new pw(), this._mappings = new nPe(), this._sourcesContents = null;
}
ql.prototype._version = 3;
ql.fromSourceMap = function(t) {
  var r = t.sourceRoot, i = new ql({
    file: t.file,
    sourceRoot: r
  });
  return t.eachMapping(function(n) {
    var s = {
      generated: {
        line: n.generatedLine,
        column: n.generatedColumn
      }
    };
    n.source != null && (s.source = n.source, r != null && (s.source = qn.relative(r, s.source)), s.original = {
      line: n.originalLine,
      column: n.originalColumn
    }, n.name != null && (s.name = n.name)), i.addMapping(s);
  }), t.sources.forEach(function(n) {
    var s = n;
    r !== null && (s = qn.relative(r, n)), i._sources.has(s) || i._sources.add(s);
    var a = t.sourceContentFor(n);
    a != null && i.setSourceContent(n, a);
  }), i;
};
ql.prototype.addMapping = function(t) {
  var r = qn.getArg(t, "generated"), i = qn.getArg(t, "original", null), n = qn.getArg(t, "source", null), s = qn.getArg(t, "name", null);
  this._skipValidation || this._validateMapping(r, i, n, s), n != null && (n = String(n), this._sources.has(n) || this._sources.add(n)), s != null && (s = String(s), this._names.has(s) || this._names.add(s)), this._mappings.add({
    generatedLine: r.line,
    generatedColumn: r.column,
    originalLine: i != null && i.line,
    originalColumn: i != null && i.column,
    source: n,
    name: s
  });
};
ql.prototype.setSourceContent = function(t, r) {
  var i = t;
  this._sourceRoot != null && (i = qn.relative(this._sourceRoot, i)), r != null ? (this._sourcesContents || (this._sourcesContents = /* @__PURE__ */ Object.create(null)), this._sourcesContents[qn.toSetString(i)] = r) : this._sourcesContents && (delete this._sourcesContents[qn.toSetString(i)], Object.keys(this._sourcesContents).length === 0 && (this._sourcesContents = null));
};
ql.prototype.applySourceMap = function(t, r, i) {
  var n = r;
  if (r == null) {
    if (t.file == null)
      throw new Error(
        'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.'
      );
    n = t.file;
  }
  var s = this._sourceRoot;
  s != null && (n = qn.relative(s, n));
  var a = new pw(), o = new pw();
  this._mappings.unsortedForEach(function(l) {
    if (l.source === n && l.originalLine != null) {
      var u = t.originalPositionFor({
        line: l.originalLine,
        column: l.originalColumn
      });
      u.source != null && (l.source = u.source, i != null && (l.source = qn.join(i, l.source)), s != null && (l.source = qn.relative(s, l.source)), l.originalLine = u.line, l.originalColumn = u.column, u.name != null && (l.name = u.name));
    }
    var c = l.source;
    c != null && !a.has(c) && a.add(c);
    var f = l.name;
    f != null && !o.has(f) && o.add(f);
  }, this), this._sources = a, this._names = o, t.sources.forEach(function(l) {
    var u = t.sourceContentFor(l);
    u != null && (i != null && (l = qn.join(i, l)), s != null && (l = qn.relative(s, l)), this.setSourceContent(l, u));
  }, this);
};
ql.prototype._validateMapping = function(t, r, i, n) {
  if (r && typeof r.line != "number" && typeof r.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 (!(t && "line" in t && "column" in t && t.line > 0 && t.column >= 0 && !r && !i && !n)) {
    if (t && "line" in t && "column" in t && r && "line" in r && "column" in r && t.line > 0 && t.column >= 0 && r.line > 0 && r.column >= 0 && i)
      return;
    throw new Error("Invalid mapping: " + JSON.stringify({
      generated: t,
      source: i,
      original: r,
      name: n
    }));
  }
};
ql.prototype._serializeMappings = function() {
  for (var t = 0, r = 1, i = 0, n = 0, s = 0, a = 0, o = "", l, u, c, f, h = this._mappings.toArray(), m = 0, g = h.length; m < g; m++) {
    if (u = h[m], l = "", u.generatedLine !== r)
      for (t = 0; u.generatedLine !== r; )
        l += ";", r++;
    else if (m > 0) {
      if (!qn.compareByGeneratedPositionsInflated(u, h[m - 1]))
        continue;
      l += ",";
    }
    l += Zg.encode(u.generatedColumn - t), t = u.generatedColumn, u.source != null && (f = this._sources.indexOf(u.source), l += Zg.encode(f - a), a = f, l += Zg.encode(u.originalLine - 1 - n), n = u.originalLine - 1, l += Zg.encode(u.originalColumn - i), i = u.originalColumn, u.name != null && (c = this._names.indexOf(u.name), l += Zg.encode(c - s), s = c)), o += l;
  }
  return o;
};
ql.prototype._generateSourcesContent = function(t, r) {
  return t.map(function(i) {
    if (!this._sourcesContents)
      return null;
    r != null && (i = qn.relative(r, i));
    var n = qn.toSetString(i);
    return Object.prototype.hasOwnProperty.call(this._sourcesContents, n) ? this._sourcesContents[n] : null;
  }, this);
};
ql.prototype.toJSON = function() {
  var t = {
    version: this._version,
    sources: this._sources.toArray(),
    names: this._names.toArray(),
    mappings: this._serializeMappings()
  };
  return this._file != null && (t.file = this._file), this._sourceRoot != null && (t.sourceRoot = this._sourceRoot), this._sourcesContents && (t.sourcesContent = this._generateSourcesContent(t.sources, t.sourceRoot)), t;
};
ql.prototype.toString = function() {
  return JSON.stringify(this.toJSON());
};
U4.SourceMapGenerator = ql;
var aC = {}, Yle = {};
(function(e) {
  e.GREATEST_LOWER_BOUND = 1, e.LEAST_UPPER_BOUND = 2;
  function t(r, i, n, s, a, o) {
    var l = Math.floor((i - r) / 2) + r, u = a(n, s[l], !0);
    return u === 0 ? l : u > 0 ? i - l > 1 ? t(l, i, n, s, a, o) : o == e.LEAST_UPPER_BOUND ? i < s.length ? i : -1 : l : l - r > 1 ? t(r, l, n, s, a, o) : o == e.LEAST_UPPER_BOUND ? l : r < 0 ? -1 : r;
  }
  e.search = function(i, n, s, a) {
    if (n.length === 0)
      return -1;
    var o = t(
      -1,
      n.length,
      i,
      n,
      s,
      a || e.GREATEST_LOWER_BOUND
    );
    if (o < 0)
      return -1;
    for (; o - 1 >= 0 && s(n[o], n[o - 1], !0) === 0; )
      --o;
    return o;
  };
})(Yle);
var Xle = {};
function sPe(e) {
  function t(n, s, a) {
    var o = n[s];
    n[s] = n[a], n[a] = o;
  }
  function r(n, s) {
    return Math.round(n + Math.random() * (s - n));
  }
  function i(n, s, a, o) {
    if (a < o) {
      var l = r(a, o), u = a - 1;
      t(n, l, o);
      for (var c = n[o], f = a; f < o; f++)
        s(n[f], c, !1) <= 0 && (u += 1, t(n, u, f));
      t(n, u + 1, f);
      var h = u + 1;
      i(n, s, a, h - 1), i(n, s, h + 1, o);
    }
  }
  return i;
}
function aPe(e) {
  let t = sPe.toString();
  return new Function("return ".concat(t))()(e);
}
let uV = /* @__PURE__ */ new WeakMap();
Xle.quickSort = function(e, t, r = 0) {
  let i = uV.get(t);
  i === void 0 && (i = aPe(t), uV.set(t, i)), i(e, t, r, e.length - 1);
};
var Qt = dg, z4 = Yle, Wy = W4.ArraySet, oPe = nC, _v = Xle.quickSort;
function nn(e, t) {
  var r = e;
  return typeof e == "string" && (r = Qt.parseSourceMapInput(e)), r.sections != null ? new $c(r, t) : new gs(r, t);
}
nn.fromSourceMap = function(e, t) {
  return gs.fromSourceMap(e, t);
};
nn.prototype._version = 3;
nn.prototype.__generatedMappings = null;
Object.defineProperty(nn.prototype, "_generatedMappings", {
  configurable: !0,
  enumerable: !0,
  get: function() {
    return this.__generatedMappings || this._parseMappings(this._mappings, this.sourceRoot), this.__generatedMappings;
  }
});
nn.prototype.__originalMappings = null;
Object.defineProperty(nn.prototype, "_originalMappings", {
  configurable: !0,
  enumerable: !0,
  get: function() {
    return this.__originalMappings || this._parseMappings(this._mappings, this.sourceRoot), this.__originalMappings;
  }
});
nn.prototype._charIsMappingSeparator = function(t, r) {
  var i = t.charAt(r);
  return i === ";" || i === ",";
};
nn.prototype._parseMappings = function(t, r) {
  throw new Error("Subclasses must implement _parseMappings");
};
nn.GENERATED_ORDER = 1;
nn.ORIGINAL_ORDER = 2;
nn.GREATEST_LOWER_BOUND = 1;
nn.LEAST_UPPER_BOUND = 2;
nn.prototype.eachMapping = function(t, r, i) {
  var n = r || null, s = i || nn.GENERATED_ORDER, a;
  switch (s) {
    case nn.GENERATED_ORDER:
      a = this._generatedMappings;
      break;
    case nn.ORIGINAL_ORDER:
      a = this._originalMappings;
      break;
    default:
      throw new Error("Unknown order of iteration.");
  }
  for (var o = this.sourceRoot, l = t.bind(n), u = this._names, c = this._sources, f = this._sourceMapURL, h = 0, m = a.length; h < m; h++) {
    var g = a[h], y = g.source === null ? null : c.at(g.source);
    y = Qt.computeSourceURL(o, y, f), l({
      source: y,
      generatedLine: g.generatedLine,
      generatedColumn: g.generatedColumn,
      originalLine: g.originalLine,
      originalColumn: g.originalColumn,
      name: g.name === null ? null : u.at(g.name)
    });
  }
};
nn.prototype.allGeneratedPositionsFor = function(t) {
  var r = Qt.getArg(t, "line"), i = {
    source: Qt.getArg(t, "source"),
    originalLine: r,
    originalColumn: Qt.getArg(t, "column", 0)
  };
  if (i.source = this._findSourceIndex(i.source), i.source < 0)
    return [];
  var n = [], s = this._findMapping(
    i,
    this._originalMappings,
    "originalLine",
    "originalColumn",
    Qt.compareByOriginalPositions,
    z4.LEAST_UPPER_BOUND
  );
  if (s >= 0) {
    var a = this._originalMappings[s];
    if (t.column === void 0)
      for (var o = a.originalLine; a && a.originalLine === o; )
        n.push({
          line: Qt.getArg(a, "generatedLine", null),
          column: Qt.getArg(a, "generatedColumn", null),
          lastColumn: Qt.getArg(a, "lastGeneratedColumn", null)
        }), a = this._originalMappings[++s];
    else
      for (var l = a.originalColumn; a && a.originalLine === r && a.originalColumn == l; )
        n.push({
          line: Qt.getArg(a, "generatedLine", null),
          column: Qt.getArg(a, "generatedColumn", null),
          lastColumn: Qt.getArg(a, "lastGeneratedColumn", null)
        }), a = this._originalMappings[++s];
  }
  return n;
};
aC.SourceMapConsumer = nn;
function gs(e, t) {
  var r = e;
  typeof e == "string" && (r = Qt.parseSourceMapInput(e));
  var i = Qt.getArg(r, "version"), n = Qt.getArg(r, "sources"), s = Qt.getArg(r, "names", []), a = Qt.getArg(r, "sourceRoot", null), o = Qt.getArg(r, "sourcesContent", null), l = Qt.getArg(r, "mappings"), u = Qt.getArg(r, "file", null);
  if (i != this._version)
    throw new Error("Unsupported version: " + i);
  a && (a = Qt.normalize(a)), n = n.map(String).map(Qt.normalize).map(function(c) {
    return a && Qt.isAbsolute(a) && Qt.isAbsolute(c) ? Qt.relative(a, c) : c;
  }), this._names = Wy.fromArray(s.map(String), !0), this._sources = Wy.fromArray(n, !0), this._absoluteSources = this._sources.toArray().map(function(c) {
    return Qt.computeSourceURL(a, c, t);
  }), this.sourceRoot = a, this.sourcesContent = o, this._mappings = l, this._sourceMapURL = t, this.file = u;
}
gs.prototype = Object.create(nn.prototype);
gs.prototype.consumer = nn;
gs.prototype._findSourceIndex = function(e) {
  var t = e;
  if (this.sourceRoot != null && (t = Qt.relative(this.sourceRoot, t)), this._sources.has(t))
    return this._sources.indexOf(t);
  var r;
  for (r = 0; r < this._absoluteSources.length; ++r)
    if (this._absoluteSources[r] == e)
      return r;
  return -1;
};
gs.fromSourceMap = function(t, r) {
  var i = Object.create(gs.prototype), n = i._names = Wy.fromArray(t._names.toArray(), !0), s = i._sources = Wy.fromArray(t._sources.toArray(), !0);
  i.sourceRoot = t._sourceRoot, i.sourcesContent = t._generateSourcesContent(
    i._sources.toArray(),
    i.sourceRoot
  ), i.file = t._file, i._sourceMapURL = r, i._absoluteSources = i._sources.toArray().map(function(m) {
    return Qt.computeSourceURL(i.sourceRoot, m, r);
  });
  for (var a = t._mappings.toArray().slice(), o = i.__generatedMappings = [], l = i.__originalMappings = [], u = 0, c = a.length; u < c; u++) {
    var f = a[u], h = new Jle();
    h.generatedLine = f.generatedLine, h.generatedColumn = f.generatedColumn, f.source && (h.source = s.indexOf(f.source), h.originalLine = f.originalLine, h.originalColumn = f.originalColumn, f.name && (h.name = n.indexOf(f.name)), l.push(h)), o.push(h);
  }
  return _v(i.__originalMappings, Qt.compareByOriginalPositions), i;
};
gs.prototype._version = 3;
Object.defineProperty(gs.prototype, "sources", {
  get: function() {
    return this._absoluteSources.slice();
  }
});
function Jle() {
  this.generatedLine = 0, this.generatedColumn = 0, this.source = null, this.originalLine = null, this.originalColumn = null, this.name = null;
}
const sM = Qt.compareByGeneratedPositionsDeflatedNoLine;
function cV(e, t) {
  let r = e.length, i = e.length - t;
  if (!(i <= 1))
    if (i == 2) {
      let n = e[t], s = e[t + 1];
      sM(n, s) > 0 && (e[t] = s, e[t + 1] = n);
    } else if (i < 20)
      for (let n = t; n < r; n++)
        for (let s = n; s > t; s--) {
          let a = e[s - 1], o = e[s];
          if (sM(a, o) <= 0)
            break;
          e[s - 1] = o, e[s] = a;
        }
    else
      _v(e, sM, t);
}
gs.prototype._parseMappings = function(t, r) {
  var i = 1, n = 0, s = 0, a = 0, o = 0, l = 0, u = t.length, c = 0, f = {}, h = [], m = [], g, y, v, T;
  let S = 0;
  for (; c < u; )
    if (t.charAt(c) === ";")
      i++, c++, n = 0, cV(m, S), S = m.length;
    else if (t.charAt(c) === ",")
      c++;
    else {
      for (g = new Jle(), g.generatedLine = i, v = c; v < u && !this._charIsMappingSeparator(t, v); v++)
        ;
      for (t.slice(c, v), y = []; c < v; )
        oPe.decode(t, c, f), T = f.value, c = f.rest, y.push(T);
      if (y.length === 2)
        throw new Error("Found a source, but no line and column");
      if (y.length === 3)
        throw new Error("Found a source and line, but no column");
      if (g.generatedColumn = n + y[0], n = g.generatedColumn, y.length > 1 && (g.source = o + y[1], o += y[1], g.originalLine = s + y[2], s = g.originalLine, g.originalLine += 1, g.originalColumn = a + y[3], a = g.originalColumn, y.length > 4 && (g.name = l + y[4], l += y[4])), m.push(g), typeof g.originalLine == "number") {
        let x = g.source;
        for (; h.length <= x; )
          h.push(null);
        h[x] === null && (h[x] = []), h[x].push(g);
      }
    }
  cV(m, S), this.__generatedMappings = m;
  for (var P = 0; P < h.length; P++)
    h[P] != null && _v(h[P], Qt.compareByOriginalPositionsNoSource);
  this.__originalMappings = [].concat(...h);
};
gs.prototype._findMapping = function(t, r, i, n, s, a) {
  if (t[i] <= 0)
    throw new TypeError("Line must be greater than or equal to 1, got " + t[i]);
  if (t[n] < 0)
    throw new TypeError("Column must be greater than or equal to 0, got " + t[n]);
  return z4.search(t, r, s, a);
};
gs.prototype.computeColumnSpans = function() {
  for (var t = 0; t < this._generatedMappings.length; ++t) {
    var r = this._generatedMappings[t];
    if (t + 1 < this._generatedMappings.length) {
      var i = this._generatedMappings[t + 1];
      if (r.generatedLine === i.generatedLine) {
        r.lastGeneratedColumn = i.generatedColumn - 1;
        continue;
      }
    }
    r.lastGeneratedColumn = 1 / 0;
  }
};
gs.prototype.originalPositionFor = function(t) {
  var r = {
    generatedLine: Qt.getArg(t, "line"),
    generatedColumn: Qt.getArg(t, "column")
  }, i = this._findMapping(
    r,
    this._generatedMappings,
    "generatedLine",
    "generatedColumn",
    Qt.compareByGeneratedPositionsDeflated,
    Qt.getArg(t, "bias", nn.GREATEST_LOWER_BOUND)
  );
  if (i >= 0) {
    var n = this._generatedMappings[i];
    if (n.generatedLine === r.generatedLine) {
      var s = Qt.getArg(n, "source", null);
      s !== null && (s = this._sources.at(s), s = Qt.computeSourceURL(this.sourceRoot, s, this._sourceMapURL));
      var a = Qt.getArg(n, "name", null);
      return a !== null && (a = this._names.at(a)), {
        source: s,
        line: Qt.getArg(n, "originalLine", null),
        column: Qt.getArg(n, "originalColumn", null),
        name: a
      };
    }
  }
  return {
    source: null,
    line: null,
    column: null,
    name: null
  };
};
gs.prototype.hasContentsOfAllSources = function() {
  return this.sourcesContent ? this.sourcesContent.length >= this._sources.size() && !this.sourcesContent.some(function(t) {
    return t == null;
  }) : !1;
};
gs.prototype.sourceContentFor = function(t, r) {
  if (!this.sourcesContent)
    return null;
  var i = this._findSourceIndex(t);
  if (i >= 0)
    return this.sourcesContent[i];
  var n = t;
  this.sourceRoot != null && (n = Qt.relative(this.sourceRoot, n));
  var s;
  if (this.sourceRoot != null && (s = Qt.urlParse(this.sourceRoot))) {
    var a = n.replace(/^file:\/\//, "");
    if (s.scheme == "file" && this._sources.has(a))
      return this.sourcesContent[this._sources.indexOf(a)];
    if ((!s.path || s.path == "/") && this._sources.has("/" + n))
      return this.sourcesContent[this._sources.indexOf("/" + n)];
  }
  if (r)
    return null;
  throw new Error('"' + n + '" is not in the SourceMap.');
};
gs.prototype.generatedPositionFor = function(t) {
  var r = Qt.getArg(t, "source");
  if (r = this._findSourceIndex(r), r < 0)
    return {
      line: null,
      column: null,
      lastColumn: null
    };
  var i = {
    source: r,
    originalLine: Qt.getArg(t, "line"),
    originalColumn: Qt.getArg(t, "column")
  }, n = this._findMapping(
    i,
    this._originalMappings,
    "originalLine",
    "originalColumn",
    Qt.compareByOriginalPositions,
    Qt.getArg(t, "bias", nn.GREATEST_LOWER_BOUND)
  );
  if (n >= 0) {
    var s = this._originalMappings[n];
    if (s.source === i.source)
      return {
        line: Qt.getArg(s, "generatedLine", null),
        column: Qt.getArg(s, "generatedColumn", null),
        lastColumn: Qt.getArg(s, "lastGeneratedColumn", null)
      };
  }
  return {
    line: null,
    column: null,
    lastColumn: null
  };
};
aC.BasicSourceMapConsumer = gs;
function $c(e, t) {
  var r = e;
  typeof e == "string" && (r = Qt.parseSourceMapInput(e));
  var i = Qt.getArg(r, "version"), n = Qt.getArg(r, "sections");
  if (i != this._version)
    throw new Error("Unsupported version: " + i);
  this._sources = new Wy(), this._names = new Wy();
  var s = {
    line: -1,
    column: 0
  };
  this._sections = n.map(function(a) {
    if (a.url)
      throw new Error("Support for url field in sections not implemented.");
    var o = Qt.getArg(a, "offset"), l = Qt.getArg(o, "line"), u = Qt.getArg(o, "column");
    if (l < s.line || l === s.line && u < s.column)
      throw new Error("Section offsets must be ordered and non-overlapping.");
    return s = o, {
      generatedOffset: {
        // The offset fields are 0-based, but we use 1-based indices when
        // encoding/decoding from VLQ.
        generatedLine: l + 1,
        generatedColumn: u + 1
      },
      consumer: new nn(Qt.getArg(a, "map"), t)
    };
  });
}
$c.prototype = Object.create(nn.prototype);
$c.prototype.constructor = nn;
$c.prototype._version = 3;
Object.defineProperty($c.prototype, "sources", {
  get: function() {
    for (var e = [], t = 0; t < this._sections.length; t++)
      for (var r = 0; r < this._sections[t].consumer.sources.length; r++)
        e.push(this._sections[t].consumer.sources[r]);
    return e;
  }
});
$c.prototype.originalPositionFor = function(t) {
  var r = {
    generatedLine: Qt.getArg(t, "line"),
    generatedColumn: Qt.getArg(t, "column")
  }, i = z4.search(
    r,
    this._sections,
    function(s, a) {
      var o = s.generatedLine - a.generatedOffset.generatedLine;
      return o || s.generatedColumn - a.generatedOffset.generatedColumn;
    }
  ), n = this._sections[i];
  return n ? n.consumer.originalPositionFor({
    line: r.generatedLine - (n.generatedOffset.generatedLine - 1),
    column: r.generatedColumn - (n.generatedOffset.generatedLine === r.generatedLine ? n.generatedOffset.generatedColumn - 1 : 0),
    bias: t.bias
  }) : {
    source: null,
    line: null,
    column: null,
    name: null
  };
};
$c.prototype.hasContentsOfAllSources = function() {
  return this._sections.every(function(t) {
    return t.consumer.hasContentsOfAllSources();
  });
};
$c.prototype.sourceContentFor = function(t, r) {
  for (var i = 0; i < this._sections.length; i++) {
    var n = this._sections[i], s = n.consumer.sourceContentFor(t, !0);
    if (s)
      return s;
  }
  if (r)
    return null;
  throw new Error('"' + t + '" is not in the SourceMap.');
};
$c.prototype.generatedPositionFor = function(t) {
  for (var r = 0; r < this._sections.length; r++) {
    var i = this._sections[r];
    if (i.consumer._findSourceIndex(Qt.getArg(t, "source")) !== -1) {
      var n = i.consumer.generatedPositionFor(t);
      if (n) {
        var s = {
          line: n.line + (i.generatedOffset.generatedLine - 1),
          column: n.column + (i.generatedOffset.generatedLine === n.line ? i.generatedOffset.generatedColumn - 1 : 0)
        };
        return s;
      }
    }
  }
  return {
    line: null,
    column: null
  };
};
$c.prototype._parseMappings = function(t, r) {
  this.__generatedMappings = [], this.__originalMappings = [];
  for (var i = 0; i < this._sections.length; i++)
    for (var n = this._sections[i], s = n.consumer._generatedMappings, a = 0; a < s.length; a++) {
      var o = s[a], l = n.consumer._sources.at(o.source);
      l = Qt.computeSourceURL(n.consumer.sourceRoot, l, this._sourceMapURL), this._sources.add(l), l = this._sources.indexOf(l);
      var u = null;
      o.name && (u = n.consumer._names.at(o.name), this._names.add(u), u = this._names.indexOf(u));
      var c = {
        source: l,
        generatedLine: o.generatedLine + (n.generatedOffset.generatedLine - 1),
        generatedColumn: o.generatedColumn + (n.generatedOffset.generatedLine === o.generatedLine ? n.generatedOffset.generatedColumn - 1 : 0),
        originalLine: o.originalLine,
        originalColumn: o.originalColumn,
        name: u
      };
      this.__generatedMappings.push(c), typeof c.originalLine == "number" && this.__originalMappings.push(c);
    }
  _v(this.__generatedMappings, Qt.compareByGeneratedPositionsDeflated), _v(this.__originalMappings, Qt.compareByOriginalPositions);
};
aC.IndexedSourceMapConsumer = $c;
var Qle = {}, lPe = U4.SourceMapGenerator, fw = dg, uPe = /(\r?\n)/, cPe = 10, mg = "$$$isSourceNode$$$";
function wo(e, t, r, i, n) {
  this.children = [], this.sourceContents = {}, this.line = e == null ? null : e, this.column = t == null ? null : t, this.source = r == null ? null : r, this.name = n == null ? null : n, this[mg] = !0, i != null && this.add(i);
}
wo.fromStringWithSourceMap = function(t, r, i) {
  var n = new wo(), s = t.split(uPe), a = 0, o = function() {
    var h = g(), m = g() || "";
    return h + m;
    function g() {
      return a < s.length ? s[a++] : void 0;
    }
  }, l = 1, u = 0, c = null;
  return r.eachMapping(function(h) {
    if (c !== null)
      if (l < h.generatedLine)
        f(c, o()), l++, u = 0;
      else {
        var m = s[a] || "", g = m.substr(0, h.generatedColumn - u);
        s[a] = m.substr(h.generatedColumn - u), u = h.generatedColumn, f(c, g), c = h;
        return;
      }
    for (; l < h.generatedLine; )
      n.add(o()), l++;
    if (u < h.generatedColumn) {
      var m = s[a] || "";
      n.add(m.substr(0, h.generatedColumn)), s[a] = m.substr(h.generatedColumn), u = h.generatedColumn;
    }
    c = h;
  }, this), a < s.length && (c && f(c, o()), n.add(s.splice(a).join(""))), r.sources.forEach(function(h) {
    var m = r.sourceContentFor(h);
    m != null && (i != null && (h = fw.join(i, h)), n.setSourceContent(h, m));
  }), n;
  function f(h, m) {
    if (h === null || h.source === void 0)
      n.add(m);
    else {
      var g = i ? fw.join(i, h.source) : h.source;
      n.add(new wo(
        h.originalLine,
        h.originalColumn,
        g,
        m,
        h.name
      ));
    }
  }
};
wo.prototype.add = function(t) {
  if (Array.isArray(t))
    t.forEach(function(r) {
      this.add(r);
    }, this);
  else if (t[mg] || typeof t == "string")
    t && this.children.push(t);
  else
    throw new TypeError(
      "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + t
    );
  return this;
};
wo.prototype.prepend = function(t) {
  if (Array.isArray(t))
    for (var r = t.length - 1; r >= 0; r--)
      this.prepend(t[r]);
  else if (t[mg] || typeof t == "string")
    this.children.unshift(t);
  else
    throw new TypeError(
      "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + t
    );
  return this;
};
wo.prototype.walk = function(t) {
  for (var r, i = 0, n = this.children.length; i < n; i++)
    r = this.children[i], r[mg] ? r.walk(t) : r !== "" && t(r, {
      source: this.source,
      line: this.line,
      column: this.column,
      name: this.name
    });
};
wo.prototype.join = function(t) {
  var r, i, n = this.children.length;
  if (n > 0) {
    for (r = [], i = 0; i < n - 1; i++)
      r.push(this.children[i]), r.push(t);
    r.push(this.children[i]), this.children = r;
  }
  return this;
};
wo.prototype.replaceRight = function(t, r) {
  var i = this.children[this.children.length - 1];
  return i[mg] ? i.replaceRight(t, r) : typeof i == "string" ? this.children[this.children.length - 1] = i.replace(t, r) : this.children.push("".replace(t, r)), this;
};
wo.prototype.setSourceContent = function(t, r) {
  this.sourceContents[fw.toSetString(t)] = r;
};
wo.prototype.walkSourceContents = function(t) {
  for (var r = 0, i = this.children.length; r < i; r++)
    this.children[r][mg] && this.children[r].walkSourceContents(t);
  for (var n = Object.keys(this.sourceContents), r = 0, i = n.length; r < i; r++)
    t(fw.fromSetString(n[r]), this.sourceContents[n[r]]);
};
wo.prototype.toString = function() {
  var t = "";
  return this.walk(function(r) {
    t += r;
  }), t;
};
wo.prototype.toStringWithSourceMap = function(t) {
  var r = {
    code: "",
    line: 1,
    column: 0
  }, i = new lPe(t), n = !1, s = null, a = null, o = null, l = null;
  return this.walk(function(u, c) {
    r.code += u, c.source !== null && c.line !== null && c.column !== null ? ((s !== c.source || a !== c.line || o !== c.column || l !== c.name) && i.addMapping({
      source: c.source,
      original: {
        line: c.line,
        column: c.column
      },
      generated: {
        line: r.line,
        column: r.column
      },
      name: c.name
    }), s = c.source, a = c.line, o = c.column, l = c.name, n = !0) : n && (i.addMapping({
      generated: {
        line: r.line,
        column: r.column
      }
    }), s = null, n = !1);
    for (var f = 0, h = u.length; f < h; f++)
      u.charCodeAt(f) === cPe ? (r.line++, r.column = 0, f + 1 === h ? (s = null, n = !1) : n && i.addMapping({
        source: c.source,
        original: {
          line: c.line,
          column: c.column
        },
        generated: {
          line: r.line,
          column: r.column
        },
        name: c.name
      })) : r.column++;
  }), this.walkSourceContents(function(u, c) {
    i.setSourceContent(u, c);
  }), { code: r.code, map: i };
};
Qle.SourceNode = wo;
var Zle = hg.SourceMapGenerator = U4.SourceMapGenerator;
hg.SourceMapConsumer = aC.SourceMapConsumer;
hg.SourceNode = Qle.SourceNode;
const wT = "/*#__PURE__*/", aP = (e) => "".concat(Fa[e], ": _").concat(Fa[e]);
function pV(e, {
  mode: t = "function",
  prefixIdentifiers: r = t === "module",
  sourceMap: i = !1,
  filename: n = "template.vue.html",
  scopeId: s = null,
  optimizeImports: a = !1,
  runtimeGlobalName: o = "Vue",
  runtimeModuleName: l = "vue",
  ssrRuntimeModuleName: u = "vue/server-renderer",
  ssr: c = !1,
  isTS: f = !1,
  inSSR: h = !1
}) {
  const m = {
    mode: t,
    prefixIdentifiers: r,
    sourceMap: i,
    filename: n,
    scopeId: s,
    optimizeImports: a,
    runtimeGlobalName: o,
    runtimeModuleName: l,
    ssrRuntimeModuleName: u,
    ssr: c,
    isTS: f,
    inSSR: h,
    source: e.loc.source,
    code: "",
    column: 1,
    line: 1,
    offset: 0,
    indentLevel: 0,
    pure: !1,
    map: void 0,
    helper(v) {
      return "_".concat(Fa[v]);
    },
    push(v, T) {
      if (m.code += v, m.map) {
        if (T) {
          let S;
          if (T.type === 4 && !T.isStatic) {
            const P = T.content.replace(/^_ctx\./, "");
            P !== T.content && Bh(P) && (S = P);
          }
          y(T.loc.start, S);
        }
        qy(m, v), T && T.loc !== Hn && y(T.loc.end);
      }
    },
    indent() {
      g(++m.indentLevel);
    },
    deindent(v = !1) {
      v ? --m.indentLevel : g(--m.indentLevel);
    },
    newline() {
      g(m.indentLevel);
    }
  };
  function g(v) {
    m.push("\n" + "  ".repeat(v));
  }
  function y(v, T) {
    m.map.addMapping({
      name: T,
      source: m.filename,
      original: {
        line: v.line,
        column: v.column - 1
        // source-map column is 0 based
      },
      generated: {
        line: m.line,
        column: m.column - 1
      }
    });
  }
  return i && (m.map = new Zle(), m.map.setSourceContent(n, m.source)), m;
}
function eue(e, t = {}) {
  const r = pV(e, t);
  t.onContextCreated && t.onContextCreated(r);
  const {
    mode: i,
    push: n,
    prefixIdentifiers: s,
    indent: a,
    deindent: o,
    newline: l,
    scopeId: u,
    ssr: c
  } = r, f = Array.from(e.helpers), h = f.length > 0, m = !s && i !== "module", g = u != null && i === "module", y = !!t.inline, v = y ? pV(e, t) : r;
  i === "module" ? fPe(e, v, g, y) : pPe(e, v);
  const T = c ? "ssrRender" : "render", S = c ? ["_ctx", "_push", "_parent", "_attrs"] : ["_ctx", "_cache"];
  t.bindingMetadata && !t.inline && S.push("$props", "$setup", "$data", "$options");
  const P = t.isTS ? S.map((x) => "".concat(x, ": any")).join(",") : S.join(", ");
  if (n(y ? "(".concat(P, ") => {") : "function ".concat(T, "(").concat(P, ") {")), a(), m && (n("with (_ctx) {"), a(), h && (n("const { ".concat(f.map(aP).join(", "), " } = _Vue")), n("\n"), l())), e.components.length && (fV(e.components, "component", r), (e.directives.length || e.temps > 0) && l()), e.directives.length && (fV(e.directives, "directive", r), e.temps > 0 && l()), e.temps > 0) {
    n("let ");
    for (let x = 0; x < e.temps; x++)
      n("".concat(x > 0 ? ", " : "", "_temp").concat(x));
  }
  return (e.components.length || e.directives.length || e.temps) && (n("\n"), l()), c || n("return "), e.codegenNode ? gn(e.codegenNode, r) : n("null"), m && (o(), n("}")), o(), n("}"), {
    ast: e,
    code: r.code,
    preamble: y ? v.code : "",
    // SourceMapGenerator does have toJSON() method but it's not in the types
    map: r.map ? r.map.toJSON() : void 0
  };
}
function pPe(e, t) {
  const {
    ssr: r,
    prefixIdentifiers: i,
    push: n,
    newline: s,
    runtimeModuleName: a,
    runtimeGlobalName: o,
    ssrRuntimeModuleName: l
  } = t, u = r ? "require(".concat(JSON.stringify(a), ")") : o, c = Array.from(e.helpers);
  if (c.length > 0) {
    if (i)
      n("const { ".concat(c.map(aP).join(", "), " } = ").concat(u, "\n"));
    else if (n("const _Vue = ".concat(u, "\n")), e.hoists.length) {
      const f = [
        FA,
        jA,
        cg,
        $A,
        UA
      ].filter((h) => c.includes(h)).map(aP).join(", ");
      n("const { ".concat(f, " } = _Vue\n"));
    }
  }
  e.ssrHelpers && e.ssrHelpers.length && n(
    "const { ".concat(e.ssrHelpers.map(aP).join(", "), ' } = require("').concat(l, '")\n')
  ), tue(e.hoists, t), s(), n("return ");
}
function fPe(e, t, r, i) {
  const {
    push: n,
    newline: s,
    optimizeImports: a,
    runtimeModuleName: o,
    ssrRuntimeModuleName: l
  } = t;
  if (r && e.hoists.length && (e.helpers.add(GA), e.helpers.add(YA)), e.helpers.size) {
    const u = Array.from(e.helpers);
    a ? (n(
      "import { ".concat(u.map((c) => Fa[c]).join(", "), " } from ").concat(JSON.stringify(o), "\n")
    ), n(
      "\n// Binding optimization for webpack code-split\nconst ".concat(u.map((c) => "_".concat(Fa[c], " = ").concat(Fa[c])).join(", "), "\n")
    )) : n(
      "import { ".concat(u.map((c) => "".concat(Fa[c], " as _").concat(Fa[c])).join(", "), " } from ").concat(JSON.stringify(o), "\n")
    );
  }
  e.ssrHelpers && e.ssrHelpers.length && n(
    "import { ".concat(e.ssrHelpers.map((u) => "".concat(Fa[u], " as _").concat(Fa[u])).join(", "), ' } from "').concat(l, '"\n')
  ), e.imports.length && (hPe(e.imports, t), s()), tue(e.hoists, t), s(), i || n("export ");
}
function fV(e, t, { helper: r, push: i, newline: n, isTS: s }) {
  const a = r(
    t === "component" ? gv : qA
  );
  for (let o = 0; o < e.length; o++) {
    let l = e[o];
    const u = l.endsWith("__self");
    u && (l = l.slice(0, -6)), i(
      "const ".concat(Av(l, t), " = ").concat(a, "(").concat(JSON.stringify(l)).concat(u ? ", true" : "", ")").concat(s ? "!" : "")
    ), o < e.length - 1 && n();
  }
}
function tue(e, t) {
  if (!e.length)
    return;
  t.pure = !0;
  const { push: r, newline: i, helper: n, scopeId: s, mode: a } = t, o = s != null && a !== "function";
  i(), o && (r(
    "const _withScopeId = n => (".concat(n(
      GA
    ), '("').concat(s, '"),n=n(),').concat(n(YA), "(),n)")
  ), i());
  for (let l = 0; l < e.length; l++) {
    const u = e[l];
    if (u) {
      const c = o && u.type === 13;
      r(
        "const _hoisted_".concat(l + 1, " = ").concat(c ? "".concat(wT, " _withScopeId(() => ") : "")
      ), gn(u, t), c && r(")"), i();
    }
  }
  t.pure = !1;
}
function hPe(e, t) {
  e.length && e.forEach((r) => {
    t.push("import "), gn(r.exp, t), t.push(" from '".concat(r.path, "'")), t.newline();
  });
}
function dPe(e) {
  return Ii(e) || e.type === 4 || e.type === 2 || e.type === 5 || e.type === 8;
}
function oC(e, t) {
  const r = e.length > 3 || e.some((i) => Ul(i) || !dPe(i));
  t.push("["), r && t.indent(), yg(e, t, r), r && t.deindent(), t.push("]");
}
function yg(e, t, r = !1, i = !0) {
  const { push: n, newline: s } = t;
  for (let a = 0; a < e.length; a++) {
    const o = e[a];
    Ii(o) ? n(o) : Ul(o) ? oC(o, t) : gn(o, t), a < e.length - 1 && (r ? (i && n(","), s()) : i && n(", "));
  }
}
function gn(e, t) {
  if (Ii(e)) {
    t.push(e);
    return;
  }
  if (ST(e)) {
    t.push(t.helper(e));
    return;
  }
  switch (e.type) {
    case 1:
    case 9:
    case 11:
      KB(
        e.codegenNode != null,
        "Codegen node is missing for element/if/for node. Apply appropriate transforms first."
      ), gn(e.codegenNode, t);
      break;
    case 2:
      mPe(e, t);
      break;
    case 4:
      rue(e, t);
      break;
    case 5:
      yPe(e, t);
      break;
    case 12:
      gn(e.codegenNode, t);
      break;
    case 8:
      iue(e, t);
      break;
    case 3:
      bPe(e, t);
      break;
    case 13:
      vPe(e, t);
      break;
    case 14:
      SPe(e, t);
      break;
    case 15:
      xPe(e, t);
      break;
    case 17:
      EPe(e, t);
      break;
    case 18:
      PPe(e, t);
      break;
    case 19:
      wPe(e, t);
      break;
    case 20:
      APe(e, t);
      break;
    case 21:
      yg(e.body, t, !0, !1);
      break;
    case 22:
      CPe(e, t);
      break;
    case 23:
      nue(e, t);
      break;
    case 24:
      _Pe(e, t);
      break;
    case 25:
      IPe(e, t);
      break;
    case 26:
      kPe(e, t);
      break;
    case 10:
      break;
    default:
      return KB(!1, "unhandled codegen node type: ".concat(e.type)), e;
  }
}
function mPe(e, t) {
  t.push(JSON.stringify(e.content), e);
}
function rue(e, t) {
  const { content: r, isStatic: i } = e;
  t.push(i ? JSON.stringify(r) : r, e);
}
function yPe(e, t) {
  const { push: r, helper: i, pure: n } = t;
  n && r(wT), r("".concat(i(xT), "(")), gn(e.content, t), r(")");
}
function iue(e, t) {
  for (let r = 0; r < e.children.length; r++) {
    const i = e.children[r];
    Ii(i) ? t.push(i) : gn(i, t);
  }
}
function gPe(e, t) {
  const { push: r } = t;
  if (e.type === 8)
    r("["), iue(e, t), r("]");
  else if (e.isStatic) {
    const i = Bh(e.content) ? e.content : JSON.stringify(e.content);
    r(i, e);
  } else
    r("[".concat(e.content, "]"), e);
}
function bPe(e, t) {
  const { push: r, helper: i, pure: n } = t;
  n && r(wT), r("".concat(i(cg), "(").concat(JSON.stringify(e.content), ")"), e);
}
function vPe(e, t) {
  const { push: r, helper: i, pure: n } = t, {
    tag: s,
    props: a,
    children: o,
    patchFlag: l,
    dynamicProps: u,
    directives: c,
    isBlock: f,
    disableTracking: h,
    isComponent: m
  } = e;
  c && r(i(VA) + "("), f && r("(".concat(i(Rh), "(").concat(h ? "true" : "", "), ")), n && r(wT);
  const g = f ? Kd(t.inSSR, m) : Hd(t.inSSR, m);
  r(i(g) + "(", e), yg(
    TPe([s, a, o, l, u]),
    t
  ), r(")"), f && r(")"), c && (r(", "), gn(c, t), r(")"));
}
function TPe(e) {
  let t = e.length;
  for (; t-- && e[t] == null; )
    ;
  return e.slice(0, t + 1).map((r) => r || "null");
}
function SPe(e, t) {
  const { push: r, helper: i, pure: n } = t, s = Ii(e.callee) ? e.callee : i(e.callee);
  n && r(wT), r(s + "(", e), yg(e.arguments, t), r(")");
}
function xPe(e, t) {
  const { push: r, indent: i, deindent: n, newline: s } = t, { properties: a } = e;
  if (!a.length) {
    r("{}", e);
    return;
  }
  const o = a.length > 1 || a.some((l) => l.value.type !== 4);
  r(o ? "{" : "{ "), o && i();
  for (let l = 0; l < a.length; l++) {
    const { key: u, value: c } = a[l];
    gPe(u, t), r(": "), gn(c, t), l < a.length - 1 && (r(","), s());
  }
  o && n(), r(o ? "}" : " }");
}
function EPe(e, t) {
  oC(e.elements, t);
}
function PPe(e, t) {
  const { push: r, indent: i, deindent: n } = t, { params: s, returns: a, body: o, newline: l, isSlot: u } = e;
  u && r("_".concat(Fa[XA], "(")), r("(", e), Ul(s) ? yg(s, t) : s && gn(s, t), r(") => "), (l || o) && (r("{"), i()), a ? (l && r("return "), Ul(a) ? oC(a, t) : gn(a, t)) : o && gn(o, t), (l || o) && (n(), r("}")), u && r(")");
}
function wPe(e, t) {
  const { test: r, consequent: i, alternate: n, newline: s } = e, { push: a, indent: o, deindent: l, newline: u } = t;
  if (r.type === 4) {
    const f = !Bh(r.content);
    f && a("("), rue(r, t), f && a(")");
  } else
    a("("), gn(r, t), a(")");
  s && o(), t.indentLevel++, s || a(" "), a("? "), gn(i, t), t.indentLevel--, s && u(), s || a(" "), a(": ");
  const c = n.type === 19;
  c || t.indentLevel++, gn(n, t), c || t.indentLevel--, s && l(
    !0
    /* without newline */
  );
}
function APe(e, t) {
  const { push: r, helper: i, indent: n, deindent: s, newline: a } = t;
  r("_cache[".concat(e.index, "] || (")), e.isVNode && (n(), r("".concat(i(Tv), "(-1),")), a()), r("_cache[".concat(e.index, "] = ")), gn(e.value, t), e.isVNode && (r(","), a(), r("".concat(i(Tv), "(1),")), a(), r("_cache[".concat(e.index, "]")), s()), r(")");
}
function CPe(e, t) {
  const { push: r, indent: i, deindent: n } = t;
  r("`");
  const s = e.elements.length, a = s > 3;
  for (let o = 0; o < s; o++) {
    const l = e.elements[o];
    Ii(l) ? r(l.replace(/(`|\$|\\)/g, "\\$1")) : (r("${"), a && i(), gn(l, t), a && n(), r("}"));
  }
  r("`");
}
function nue(e, t) {
  const { push: r, indent: i, deindent: n } = t, { test: s, consequent: a, alternate: o } = e;
  r("if ("), gn(s, t), r(") {"), i(), gn(a, t), n(), r("}"), o && (r(" else "), o.type === 23 ? nue(o, t) : (r("{"), i(), gn(o, t), n(), r("}")));
}
function _Pe(e, t) {
  gn(e.left, t), t.push(" = "), gn(e.right, t);
}
function IPe(e, t) {
  t.push("("), yg(e.expressions, t), t.push(")");
}
function kPe({ returns: e }, t) {
  t.push("return "), Ul(e) ? oC(e, t) : gn(e, t);
}
let OPe = class {
  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
    };
  }
  /**
   *
   * @param {any} parent
   * @param {string} prop
   * @param {number} index
   * @param {BaseNode} node
   */
  replace(t, r, i, n) {
    t && (i !== null ? t[r][i] = n : t[r] = n);
  }
  /**
   *
   * @param {any} parent
   * @param {string} prop
   * @param {number} index
   */
  remove(t, r, i) {
    t && (i !== null ? t[r].splice(i, 1) : delete t[r]);
  }
}, NPe = class extends OPe {
  /**
   *
   * @param {SyncHandler} enter
   * @param {SyncHandler} leave
   */
  constructor(t, r) {
    super(), this.enter = t, this.leave = r;
  }
  /**
   *
   * @param {BaseNode} node
   * @param {BaseNode} parent
   * @param {string} [prop]
   * @param {number} [index]
   * @returns {BaseNode}
   */
  visit(t, r, i, n) {
    if (t) {
      if (this.enter) {
        const s = this.should_skip, a = this.should_remove, o = this.replacement;
        this.should_skip = !1, this.should_remove = !1, this.replacement = null, this.enter.call(this.context, t, r, i, n), this.replacement && (t = this.replacement, this.replace(r, i, n, t)), this.should_remove && this.remove(r, i, n);
        const l = this.should_skip, u = this.should_remove;
        if (this.should_skip = s, this.should_remove = a, this.replacement = o, l)
          return t;
        if (u)
          return null;
      }
      for (const s in t) {
        const a = t[s];
        if (typeof a == "object")
          if (Array.isArray(a))
            for (let o = 0; o < a.length; o += 1)
              a[o] !== null && typeof a[o].type == "string" && (this.visit(a[o], t, s, o) || o--);
          else
            a !== null && typeof a.type == "string" && this.visit(a, t, s, null);
      }
      if (this.leave) {
        const s = this.replacement, a = this.should_remove;
        this.replacement = null, this.should_remove = !1, this.leave.call(this.context, t, r, i, n), this.replacement && (t = this.replacement, this.replace(r, i, n, t)), this.should_remove && this.remove(r, i, n);
        const o = this.should_remove;
        if (this.replacement = s, this.should_remove = a, o)
          return null;
      }
    }
    return t;
  }
};
function DPe(e, { enter: t, leave: r }) {
  return new NPe(t, r).visit(e, null);
}
function G4(e, t, r = !1, i = [], n = /* @__PURE__ */ Object.create(null)) {
  const s = e.type === "Program" && e.body[0].type === "ExpressionStatement" && e.body[0].expression;
  DPe(e, {
    enter(a, o) {
      if (o && i.push(o), o && o.type.startsWith("TS") && !cue.includes(o.type))
        return this.skip();
      if (a.type === "Identifier") {
        const l = !!n[a.name], u = sue(a, o, i);
        (r || u && !l) && t(a, o, i, u, l);
      } else
        a.type === "ObjectProperty" && o.type === "ObjectPattern" ? a.inPattern = !0 : lue(a) ? aue(a, (l) => hV(a, l, n)) : a.type === "BlockStatement" && oue(
          a,
          (l) => hV(a, l, n)
        );
    },
    leave(a, o) {
      if (o && i.pop(), a !== s && a.scopeIds)
        for (const l of a.scopeIds)
          n[l]--, n[l] === 0 && delete n[l];
    }
  });
}
function sue(e, t, r) {
  if (!t)
    return !0;
  if (e.name === "arguments")
    return !1;
  if (LPe(e, t))
    return !0;
  switch (t.type) {
    case "AssignmentExpression":
    case "AssignmentPattern":
      return !0;
    case "ObjectPattern":
    case "ArrayPattern":
      return Y4(t, r);
  }
  return !1;
}
function Y4(e, t) {
  if (e && (e.type === "ObjectProperty" || e.type === "ArrayPattern")) {
    let r = t.length;
    for (; r--; ) {
      const i = t[r];
      if (i.type === "AssignmentExpression")
        return !0;
      if (i.type !== "ObjectProperty" && !i.type.endsWith("Pattern"))
        break;
    }
  }
  return !1;
}
function aue(e, t) {
  for (const r of e.params)
    for (const i of vh(r))
      t(i);
}
function oue(e, t) {
  for (const r of e.body)
    if (r.type === "VariableDeclaration") {
      if (r.declare)
        continue;
      for (const i of r.declarations)
        for (const n of vh(i.id))
          t(n);
    } else if (r.type === "FunctionDeclaration" || r.type === "ClassDeclaration") {
      if (r.declare || !r.id)
        continue;
      t(r.id);
    }
}
function vh(e, t = []) {
  switch (e.type) {
    case "Identifier":
      t.push(e);
      break;
    case "MemberExpression":
      let r = e;
      for (; r.type === "MemberExpression"; )
        r = r.object;
      t.push(r);
      break;
    case "ObjectPattern":
      for (const i of e.properties)
        i.type === "RestElement" ? vh(i.argument, t) : vh(i.value, t);
      break;
    case "ArrayPattern":
      e.elements.forEach((i) => {
        i && vh(i, t);
      });
      break;
    case "RestElement":
      vh(e.argument, t);
      break;
    case "AssignmentPattern":
      vh(e.left, t);
      break;
  }
  return t;
}
function hV(e, t, r) {
  const { name: i } = t;
  e.scopeIds && e.scopeIds.has(i) || (i in r ? r[i]++ : r[i] = 1, (e.scopeIds || (e.scopeIds = /* @__PURE__ */ new Set())).add(i));
}
const lue = (e) => /Function(?:Expression|Declaration)$|Method$/.test(e.type), X4 = (e) => e && (e.type === "ObjectProperty" || e.type === "ObjectMethod") && !e.computed, uue = (e, t) => X4(t) && t.key === e;
function LPe(e, t, r) {
  switch (t.type) {
    case "MemberExpression":
    case "OptionalMemberExpression":
      return t.property === e ? !!t.computed : t.object === e;
    case "JSXMemberExpression":
      return t.object === e;
    case "VariableDeclarator":
      return t.init === e;
    case "ArrowFunctionExpression":
      return t.body === e;
    case "PrivateName":
      return !1;
    case "ClassMethod":
    case "ClassPrivateMethod":
    case "ObjectMethod":
      return t.key === e ? !!t.computed : !1;
    case "ObjectProperty":
      return t.key === e ? !!t.computed : !r || r.type !== "ObjectPattern";
    case "ClassProperty":
      return t.key === e ? !!t.computed : !0;
    case "ClassPrivateProperty":
      return t.key !== e;
    case "ClassDeclaration":
    case "ClassExpression":
      return t.superClass === e;
    case "AssignmentExpression":
      return t.right === e;
    case "AssignmentPattern":
      return t.right === e;
    case "LabeledStatement":
      return !1;
    case "CatchClause":
      return !1;
    case "RestElement":
      return !1;
    case "BreakStatement":
    case "ContinueStatement":
      return !1;
    case "FunctionDeclaration":
    case "FunctionExpression":
      return !1;
    case "ExportNamespaceSpecifier":
    case "ExportDefaultSpecifier":
      return !1;
    case "ExportSpecifier":
      return r != null && r.source ? !1 : t.local === e;
    case "ImportDefaultSpecifier":
    case "ImportNamespaceSpecifier":
    case "ImportSpecifier":
      return !1;
    case "ImportAttribute":
      return !1;
    case "JSXAttribute":
      return !1;
    case "ObjectPattern":
    case "ArrayPattern":
      return !1;
    case "MetaProperty":
      return !1;
    case "ObjectTypeProperty":
      return t.key !== e;
    case "TSEnumMember":
      return t.id !== e;
    case "TSPropertySignature":
      return t.key === e ? !!t.computed : !0;
  }
  return !0;
}
const cue = [
  "TSAsExpression",
  // foo as number
  "TSTypeAssertion",
  // (<number>foo)
  "TSNonNullExpression",
  // foo!
  "TSInstantiationExpression",
  // foo<string>
  "TSSatisfiesExpression"
  // foo satisfies T
], MPe = /* @__PURE__ */ Es("true,false,null,this"), RPe = /\w\s*\(|\.[^\d]/, pue = (e, t) => {
  if (e.type === 5)
    e.content = So(
      e.content,
      t
    );
  else if (e.type === 1)
    for (let r = 0; r < e.props.length; r++) {
      const i = e.props[r];
      if (i.type === 7 && i.name !== "for") {
        const n = i.exp, s = i.arg;
        n && n.type === 4 && !(i.name === "on" && s) && (i.exp = So(
          n,
          t,
          // slot args must be processed as function params
          i.name === "slot"
        )), s && s.type === 4 && !s.isStatic && (i.arg = So(s, t));
      }
    }
};
function So(e, t, r = !1, i = !1, n = Object.create(t.identifiers)) {
  if (!t.prefixIdentifiers || !e.content.trim())
    return e;
  const { inline: s, bindingMetadata: a } = t, o = (T, S, P) => {
    const x = YSe(a, T) && a[T];
    if (s) {
      const C = S && S.type === "AssignmentExpression" && S.left === P, D = S && S.type === "UpdateExpression" && S.argument === P, w = S && Y4(S, m);
      if (dV(x) || x === "setup-reactive-const" || n[T])
        return T;
      if (x === "setup-ref")
        return "".concat(T, ".value");
      if (x === "setup-maybe-ref")
        return C || D || w ? "".concat(T, ".value") : "".concat(t.helperString(Sv), "(").concat(T, ")");
      if (x === "setup-let")
        if (C) {
          const { right: A, operator: I } = S, L = l.slice(A.start - 1, A.end - 1), O = J4(
            So(
              Pr(L, !1),
              t,
              !1,
              !1,
              g
            )
          );
          return "".concat(t.helperString(xv), "(").concat(T, ")").concat(t.isTS ? " //@ts-ignore\n" : "", " ? ").concat(T, ".value ").concat(I, " ").concat(O, " : ").concat(T);
        } else if (D) {
          P.start = S.start, P.end = S.end;
          const { prefix: A, operator: I } = S, L = A ? I : "", O = A ? "" : I;
          return "".concat(t.helperString(xv), "(").concat(T, ")").concat(t.isTS ? " //@ts-ignore\n" : "", " ? ").concat(L).concat(T, ".value").concat(O, " : ").concat(L).concat(T).concat(O);
        } else
          return w ? T : "".concat(t.helperString(Sv), "(").concat(T, ")");
      else {
        if (x === "props")
          return Fq(T);
        if (x === "props-aliased")
          return Fq(a.__propsAliases[T]);
      }
    } else {
      if (x && x.startsWith("setup") || x === "literal-const")
        return "$setup.".concat(T);
      if (x === "props-aliased")
        return "$props['".concat(a.__propsAliases[T], "']");
      if (x)
        return "$".concat(x, ".").concat(T);
    }
    return "_ctx.".concat(T);
  }, l = e.content, u = RPe.test(l);
  if (Bh(l)) {
    const T = t.identifiers[l], S = Woe(l), P = MPe(l);
    return !r && !T && !S && !P ? (dV(a[e.content]) && (e.constType = 1), e.content = o(l)) : T || (P ? e.constType = 3 : e.constType = 2), e;
  }
  let c;
  const f = i ? " ".concat(l, " ") : "(".concat(l, ")").concat(r ? "=>{}" : "");
  try {
    c = _1e(f, {
      plugins: t.expressionPlugins
    }).program;
  } catch (T) {
    return t.onError(
      Ni(
        45,
        e.loc,
        void 0,
        T.message
      )
    ), e;
  }
  const h = [], m = [], g = Object.create(t.identifiers);
  G4(
    c,
    (T, S, P, x, C) => {
      if (uue(T, S))
        return;
      const D = x && BPe(T);
      D && !C ? (X4(S) && S.shorthand && (T.prefix = "".concat(T.name, ": ")), T.name = o(T.name, S, T), h.push(T)) : (!(D && C) && !u && (T.isConstant = !0), h.push(T));
    },
    !0,
    // invoke on ALL identifiers
    m,
    g
  );
  const y = [];
  h.sort((T, S) => T.start - S.start), h.forEach((T, S) => {
    const P = T.start - 1, x = T.end - 1, C = h[S - 1], D = l.slice(C ? C.end - 1 : 0, P);
    (D.length || T.prefix) && y.push(D + (T.prefix || ""));
    const w = l.slice(P, x);
    y.push(
      Pr(
        T.name,
        !1,
        {
          source: w,
          start: Gd(e.loc.start, w, P),
          end: Gd(e.loc.start, w, x)
        },
        T.isConstant ? 3 : 0
      )
    ), S === h.length - 1 && x < l.length && y.push(l.slice(x));
  });
  let v;
  return y.length ? v = aa(y, e.loc) : (v = e, v.constType = u ? 0 : 3), v.identifiers = Object.keys(g), v;
}
function BPe(e) {
  return !(Woe(e.name) || e.name === "require");
}
function J4(e) {
  return Ii(e) ? e : e.type === 4 ? e.content : e.children.map(J4).join("");
}
function dV(e) {
  return e === "setup-const" || e === "literal-const";
}
const FPe = $4(
  /^(if|else|else-if)$/,
  (e, t, r) => fue(e, t, r, (i, n, s) => {
    const a = r.parent.children;
    let o = a.indexOf(i), l = 0;
    for (; o-- >= 0; ) {
      const u = a[o];
      u && u.type === 9 && (l += u.branches.length);
    }
    return () => {
      if (s)
        i.codegenNode = yV(
          n,
          l,
          r
        );
      else {
        const u = $Pe(i.codegenNode);
        u.alternate = yV(
          n,
          l + i.branches.length - 1,
          r
        );
      }
    };
  })
);
function fue(e, t, r, i) {
  if (t.name !== "else" && (!t.exp || !t.exp.content.trim())) {
    const n = t.exp ? t.exp.loc : e.loc;
    r.onError(
      Ni(28, t.loc)
    ), t.exp = Pr("true", !1, n);
  }
  if (r.prefixIdentifiers && t.exp && (t.exp = So(t.exp, r)), t.name === "if") {
    const n = mV(e, t), s = {
      type: 9,
      loc: e.loc,
      branches: [n]
    };
    if (r.replaceNode(s), i)
      return i(s, n, !0);
  } else {
    const n = r.parent.children, s = [];
    let a = n.indexOf(e);
    for (; a-- >= -1; ) {
      const o = n[a];
      if (o && o.type === 3) {
        r.removeNode(o), s.unshift(o);
        continue;
      }
      if (o && o.type === 2 && !o.content.trim().length) {
        r.removeNode(o);
        continue;
      }
      if (o && o.type === 9) {
        t.name === "else-if" && o.branches[o.branches.length - 1].condition === void 0 && r.onError(
          Ni(30, e.loc)
        ), r.removeNode();
        const l = mV(e, t);
        s.length && // #3619 ignore comments if the v-if is direct child of <transition>
        !(r.parent && r.parent.type === 1 && Sh(r.parent.tag, "transition")) && (l.children = [...s, ...l.children]);
        {
          const c = l.userKey;
          c && o.branches.forEach(({ userKey: f }) => {
            jPe(f, c) && r.onError(
              Ni(
                29,
                l.userKey.loc
              )
            );
          });
        }
        o.branches.push(l);
        const u = i && i(o, l, !1);
        PT(l, r), u && u(), r.currentNode = null;
      } else
        r.onError(
          Ni(30, e.loc)
        );
      break;
    }
  }
}
function mV(e, t) {
  const r = e.tagType === 3;
  return {
    type: 10,
    loc: e.loc,
    condition: t.name === "else" ? void 0 : t.exp,
    children: r && !ja(e, "for") ? e.children : [e],
    userKey: Yd(e, "key"),
    isTemplateIf: r
  };
}
function yV(e, t, r) {
  return e.condition ? ew(
    e.condition,
    gV(e, t, r),
    // make sure to pass in asBlock: true so that the comment node call
    // closes the current block.
    In(r.helper(cg), [
      '"v-if"',
      "true"
    ])
  ) : gV(e, t, r);
}
function gV(e, t, r) {
  const { helper: i } = r, n = mn(
    "key",
    Pr(
      "".concat(t),
      !1,
      Hn,
      2
    )
  ), { children: s } = e, a = s[0];
  if (s.length !== 1 || a.type !== 1)
    if (s.length === 1 && a.type === 11) {
      const l = a.codegenNode;
      return wv(l, n, r), l;
    } else {
      let l = 64, u = pp[64];
      return !e.isTemplateIf && s.filter((c) => c.type !== 3).length === 1 && (l |= 2048, u += ", ".concat(pp[2048])), Uy(
        r,
        i(jy),
        vo([n]),
        s,
        l + " /* ".concat(u, " */"),
        void 0,
        void 0,
        !0,
        !1,
        !1,
        e.loc
      );
    }
  else {
    const l = a.codegenNode, u = Mle(l);
    return u.type === 13 && QA(u, r), wv(u, n, r), l;
  }
}
function jPe(e, t) {
  if (!e || e.type !== t.type)
    return !1;
  if (e.type === 6) {
    if (e.value.content !== t.value.content)
      return !1;
  } else {
    const r = e.exp, i = t.exp;
    if (r.type !== i.type || r.type !== 4 || r.isStatic !== i.isStatic || r.content !== i.content)
      return !1;
  }
  return !0;
}
function $Pe(e) {
  for (; ; )
    if (e.type === 19)
      if (e.alternate.type === 19)
        e = e.alternate;
      else
        return e;
    else
      e.type === 20 && (e = e.value);
}
const UPe = $4(
  "for",
  (e, t, r) => {
    const { helper: i, removeHelper: n } = r;
    return hue(e, t, r, (s) => {
      const a = In(i(WA), [
        s.source
      ]), o = Vy(e), l = ja(e, "memo"), u = Yd(e, "key"), c = u && (u.type === 6 ? Pr(u.value.content, !0) : u.exp), f = u ? mn("key", c) : null;
      o && (l && (l.exp = So(
        l.exp,
        r
      )), f && u.type !== 6 && (f.value = So(
        f.value,
        r
      )));
      const h = s.source.type === 4 && s.source.constType > 0, m = h ? 64 : u ? 128 : 256;
      return s.codegenNode = Uy(
        r,
        i(jy),
        void 0,
        a,
        m + " /* ".concat(pp[m], " */"),
        void 0,
        void 0,
        !0,
        !h,
        !1,
        e.loc
      ), () => {
        let g;
        const { children: y } = s;
        o && e.children.some((S) => {
          if (S.type === 1) {
            const P = Yd(S, "key");
            if (P)
              return r.onError(
                Ni(
                  33,
                  P.loc
                )
              ), !0;
          }
        });
        const v = y.length !== 1 || y[0].type !== 1, T = Pv(e) ? e : o && e.children.length === 1 && Pv(e.children[0]) ? e.children[0] : null;
        if (T ? (g = T.codegenNode, o && f && wv(g, f, r)) : v ? g = Uy(
          r,
          i(jy),
          f ? vo([f]) : void 0,
          e.children,
          64 + " /* ".concat(pp[64], " */"),
          void 0,
          void 0,
          !0,
          void 0,
          !1
          /* isComponent */
        ) : (g = y[0].codegenNode, o && f && wv(g, f, r), g.isBlock !== !h && (g.isBlock ? (n(Rh), n(
          Kd(r.inSSR, g.isComponent)
        )) : n(
          Hd(r.inSSR, g.isComponent)
        )), g.isBlock = !h, g.isBlock ? (i(Rh), i(Kd(r.inSSR, g.isComponent))) : i(Hd(r.inSSR, g.isComponent))), l) {
          const S = Wd(
            hw(s.parseResult, [
              Pr("_cached")
            ])
          );
          S.body = ele([
            aa(["const _memo = (", l.exp, ")"]),
            aa([
              "if (_cached",
              ...c ? [" && _cached.key === ", c] : [],
              " && ".concat(r.helperString(
                f4
              ), "(_cached, _memo)) return _cached")
            ]),
            aa(["const _item = ", g]),
            Pr("_item.memo = _memo"),
            Pr("return _item")
          ]), a.arguments.push(
            S,
            Pr("_cache"),
            Pr(String(r.cached++))
          );
        } else
          a.arguments.push(
            Wd(
              hw(s.parseResult),
              g,
              !0
              /* force newline */
            )
          );
      };
    });
  }
);
function hue(e, t, r, i) {
  if (!t.exp) {
    r.onError(
      Ni(31, t.loc)
    );
    return;
  }
  const n = Q4(
    // can only be simple expression because vFor transform is applied
    // before expression transform.
    t.exp,
    r
  );
  if (!n) {
    r.onError(
      Ni(32, t.loc)
    );
    return;
  }
  const { addIdentifiers: s, removeIdentifiers: a, scopes: o } = r, { source: l, value: u, key: c, index: f } = n, h = {
    type: 11,
    loc: t.loc,
    source: l,
    valueAlias: u,
    keyAlias: c,
    objectIndexAlias: f,
    parseResult: n,
    children: Vy(e) ? e.children : [e]
  };
  r.replaceNode(h), o.vFor++, r.prefixIdentifiers && (u && s(u), c && s(c), f && s(f));
  const m = i && i(h);
  return () => {
    o.vFor--, r.prefixIdentifiers && (u && a(u), c && a(c), f && a(f)), m && m();
  };
}
const qPe = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/, bV = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/, VPe = /^\(|\)$/g;
function Q4(e, t) {
  const r = e.loc, i = e.content, n = i.match(qPe);
  if (!n)
    return;
  const [, s, a] = n, o = {
    source: jS(
      r,
      a.trim(),
      i.indexOf(a, s.length)
    ),
    value: void 0,
    key: void 0,
    index: void 0
  };
  t.prefixIdentifiers && (o.source = So(
    o.source,
    t
  ));
  let l = s.trim().replace(VPe, "").trim();
  const u = s.indexOf(l), c = l.match(bV);
  if (c) {
    l = l.replace(bV, "").trim();
    const f = c[1].trim();
    let h;
    if (f && (h = i.indexOf(f, u + l.length), o.key = jS(r, f, h), t.prefixIdentifiers && (o.key = So(o.key, t, !0))), c[2]) {
      const m = c[2].trim();
      m && (o.index = jS(
        r,
        m,
        i.indexOf(
          m,
          o.key ? h + f.length : u + l.length
        )
      ), t.prefixIdentifiers && (o.index = So(o.index, t, !0)));
    }
  }
  return l && (o.value = jS(r, l, u), t.prefixIdentifiers && (o.value = So(o.value, t, !0))), o;
}
function jS(e, t, r) {
  return Pr(
    t,
    !1,
    M4(e, r, t.length)
  );
}
function hw({ value: e, key: t, index: r }, i = []) {
  return WPe([e, t, r, ...i]);
}
function WPe(e) {
  let t = e.length;
  for (; t-- && !e[t]; )
    ;
  return e.slice(0, t + 1).map((r, i) => r || Pr("_".repeat(i + 1), !1));
}
const vV = Pr("undefined", !1), due = (e, t) => {
  if (e.type === 1 && (e.tagType === 1 || e.tagType === 3)) {
    const r = ja(e, "slot");
    if (r) {
      const i = r.exp;
      return t.prefixIdentifiers && i && t.addIdentifiers(i), t.scopes.vSlot++, () => {
        t.prefixIdentifiers && i && t.removeIdentifiers(i), t.scopes.vSlot--;
      };
    }
  }
}, mue = (e, t) => {
  let r;
  if (Vy(e) && e.props.some(R4) && (r = ja(e, "for"))) {
    const i = r.parseResult = Q4(
      r.exp,
      t
    );
    if (i) {
      const { value: n, key: s, index: a } = i, { addIdentifiers: o, removeIdentifiers: l } = t;
      return n && o(n), s && o(s), a && o(a), () => {
        n && l(n), s && l(s), a && l(a);
      };
    }
  }
}, HPe = (e, t, r) => Wd(
  e,
  t,
  !1,
  !0,
  t.length ? t[0].loc : r
);
function yue(e, t, r = HPe) {
  t.helper(XA);
  const { children: i, loc: n } = e, s = [], a = [];
  let o = t.scopes.vSlot > 0 || t.scopes.vFor > 0;
  !t.ssr && t.prefixIdentifiers && (o = Ma(e, t.identifiers));
  const l = ja(e, "slot", !0);
  if (l) {
    const { arg: v, exp: T } = l;
    v && !pa(v) && (o = !0), s.push(
      mn(
        v || Pr("default", !0),
        r(T, i, n)
      )
    );
  }
  let u = !1, c = !1;
  const f = [], h = /* @__PURE__ */ new Set();
  let m = 0;
  for (let v = 0; v < i.length; v++) {
    const T = i[v];
    let S;
    if (!Vy(T) || !(S = ja(T, "slot", !0))) {
      T.type !== 3 && f.push(T);
      continue;
    }
    if (l) {
      t.onError(
        Ni(37, S.loc)
      );
      break;
    }
    u = !0;
    const { children: P, loc: x } = T, {
      arg: C = Pr("default", !0),
      exp: D,
      loc: w
    } = S;
    let A;
    pa(C) ? A = C ? C.content : "default" : o = !0;
    const I = r(D, P, x);
    let L, O, F;
    if (L = ja(T, "if"))
      o = !0, a.push(
        ew(
          L.exp,
          $S(C, I, m++),
          vV
        )
      );
    else if (O = ja(
      T,
      /^else(-if)?$/,
      !0
      /* allowEmpty */
    )) {
      let q = v, j;
      for (; q-- && (j = i[q], j.type === 3); )
        ;
      if (j && Vy(j) && ja(j, "if")) {
        i.splice(v, 1), v--;
        let N = a[a.length - 1];
        for (; N.alternate.type === 19; )
          N = N.alternate;
        N.alternate = O.exp ? ew(
          O.exp,
          $S(
            C,
            I,
            m++
          ),
          vV
        ) : $S(C, I, m++);
      } else
        t.onError(
          Ni(30, O.loc)
        );
    } else if (F = ja(T, "for")) {
      o = !0;
      const q = F.parseResult || Q4(F.exp, t);
      q ? a.push(
        In(t.helper(WA), [
          q.source,
          Wd(
            hw(q),
            $S(C, I),
            !0
            /* force newline */
          )
        ])
      ) : t.onError(
        Ni(32, F.loc)
      );
    } else {
      if (A) {
        if (h.has(A)) {
          t.onError(
            Ni(
              38,
              w
            )
          );
          continue;
        }
        h.add(A), A === "default" && (c = !0);
      }
      s.push(mn(C, I));
    }
  }
  if (!l) {
    const v = (T, S) => {
      const P = r(T, S, n);
      return mn("default", P);
    };
    u ? f.length && // #3766
    // with whitespace: 'preserve', whitespaces between slots will end up in
    // implicitDefaultChildren. Ignore if all implicit children are whitespaces.
    f.some((T) => gue(T)) && (c ? t.onError(
      Ni(
        39,
        f[0].loc
      )
    ) : s.push(
      v(void 0, f)
    )) : s.push(v(void 0, i));
  }
  const g = o ? 2 : oP(e.children) ? 3 : 1;
  let y = vo(
    s.concat(
      mn(
        "_",
        // 2 = compiled but dynamic = can skip normalization, but must run diff
        // 1 = compiled and static = can skip normalization AND diff as optimized
        Pr(
          g + " /* ".concat(nxe[g], " */"),
          !1
        )
      )
    ),
    n
  );
  return a.length && (y = In(t.helper(p4), [
    y,
    fg(a)
  ])), {
    slots: y,
    hasDynamicSlots: o
  };
}
function $S(e, t, r) {
  const i = [
    mn("name", e),
    mn("fn", t)
  ];
  return r != null && i.push(
    mn("key", Pr(String(r), !0))
  ), vo(i);
}
function oP(e) {
  for (let t = 0; t < e.length; t++) {
    const r = e[t];
    switch (r.type) {
      case 1:
        if (r.tagType === 2 || oP(r.children))
          return !0;
        break;
      case 9:
        if (oP(r.branches))
          return !0;
        break;
      case 10:
      case 11:
        if (oP(r.children))
          return !0;
        break;
    }
  }
  return !1;
}
function gue(e) {
  return e.type !== 2 && e.type !== 12 ? !0 : e.type === 2 ? !!e.content.trim() : gue(e.content);
}
const bue = /* @__PURE__ */ new WeakMap(), vue = (e, t) => function() {
  if (e = t.currentNode, !(e.type === 1 && (e.tagType === 0 || e.tagType === 1)))
    return;
  const { tag: i, props: n } = e, s = e.tagType === 1;
  let a = s ? Tue(e, t) : '"'.concat(i, '"');
  const o = ug(a) && a.callee === bv;
  let l, u, c, f = 0, h, m, g, y = (
    // dynamic component may resolve to plain elements
    o || a === xy || a === BA || !s && // <svg> and <foreignObject> must be forced into blocks so that block
    // updates inside get proper isSVG flag at runtime. (#639, #643)
    // This is technically web-specific, but splitting the logic out of core
    // leads to too much unnecessary complexity.
    (i === "svg" || i === "foreignObject")
  );
  if (n.length > 0) {
    const v = Z4(
      e,
      t,
      void 0,
      s,
      o
    );
    l = v.props, f = v.patchFlag, m = v.dynamicPropNames;
    const T = v.directives;
    g = T && T.length ? fg(
      T.map((S) => Sue(S, t))
    ) : void 0, v.shouldUseBlock && (y = !0);
  }
  if (e.children.length > 0)
    if (a === yv && (y = !0, f |= 1024, e.children.length > 1 && t.onError(
      Ni(46, {
        start: e.children[0].loc.start,
        end: e.children[e.children.length - 1].loc.end,
        source: ""
      })
    )), s && // Teleport is not a real component and has dedicated runtime handling
    a !== xy && // explained above.
    a !== yv) {
      const { slots: T, hasDynamicSlots: S } = yue(e, t);
      u = T, S && (f |= 1024);
    } else if (e.children.length === 1 && a !== xy) {
      const T = e.children[0], S = T.type, P = S === 5 || S === 8;
      P && To(T, t) === 0 && (f |= 1), P || S === 2 ? u = T : u = e.children;
    } else
      u = e.children;
  if (f !== 0) {
    if (f < 0)
      c = f + " /* ".concat(pp[f], " */");
    else {
      const v = Object.keys(pp).map(Number).filter((T) => T > 0 && f & T).map((T) => pp[T]).join(", ");
      c = f + " /* ".concat(v, " */");
    }
    m && m.length && (h = zPe(m));
  }
  e.codegenNode = Uy(
    t,
    a,
    l,
    u,
    c,
    h,
    g,
    !!y,
    !1,
    s,
    e.loc
  );
};
function Tue(e, t, r = !1) {
  let { tag: i } = e;
  const n = JB(i), s = Yd(e, "is");
  if (s)
    if (n) {
      const l = s.type === 6 ? s.value && Pr(s.value.content, !0) : s.exp;
      if (l)
        return In(t.helper(bv), [
          l
        ]);
    } else
      s.type === 6 && s.value.content.startsWith("vue:") && (i = s.value.content.slice(4));
  const a = !n && ja(e, "is");
  if (a && a.exp)
    return t.onWarn(
      Ni(52, a.loc)
    ), In(t.helper(bv), [
      a.exp
    ]);
  const o = D4(i) || t.isBuiltInComponent(i);
  if (o)
    return r || t.helper(o), o;
  {
    const l = XB(i, t);
    if (l)
      return l;
    const u = i.indexOf(".");
    if (u > 0) {
      const c = XB(i.slice(0, u), t);
      if (c)
        return c + i.slice(u);
    }
  }
  return t.selfName && Vd(Dc(i)) === t.selfName ? (t.helper(gv), t.components.add(i + "__self"), Av(i, "component")) : (t.helper(gv), t.components.add(i), Av(i, "component"));
}
function XB(e, t) {
  const r = t.bindingMetadata;
  if (!r || r.__isScriptSetup === !1)
    return;
  const i = Dc(e), n = Vd(i), s = (l) => {
    if (r[e] === l)
      return e;
    if (r[i] === l)
      return i;
    if (r[n] === l)
      return n;
  }, a = s("setup-const") || s("setup-reactive-const") || s("literal-const");
  if (a)
    return t.inline ? (
      // in inline mode, const setup bindings (e.g. imports) can be used as-is
      a
    ) : "$setup[".concat(JSON.stringify(a), "]");
  const o = s("setup-let") || s("setup-ref") || s("setup-maybe-ref");
  if (o)
    return t.inline ? (
      // setup scope bindings that may be refs need to be unrefed
      "".concat(t.helperString(Sv), "(").concat(o, ")")
    ) : "$setup[".concat(JSON.stringify(o), "]");
}
function Z4(e, t, r = e.props, i, n, s = !1) {
  const { tag: a, loc: o, children: l } = e;
  let u = [];
  const c = [], f = [], h = l.length > 0;
  let m = !1, g = 0, y = !1, v = !1, T = !1, S = !1, P = !1, x = !1;
  const C = [], D = (I) => {
    u.length && (c.push(
      vo(TV(u), o)
    ), u = []), I && c.push(I);
  }, w = ({ key: I, value: L }) => {
    if (pa(I)) {
      const O = I.content, F = $oe(O);
      if (F && (!i || n) && // omit the flag for click handlers because hydration gives click
      // dedicated fast path.
      O.toLowerCase() !== "onclick" && // omit v-model handlers
      O !== "onUpdate:modelValue" && // omit onVnodeXXX hooks
      !Bq(O) && (S = !0), F && Bq(O) && (x = !0), L.type === 20 || (L.type === 4 || L.type === 8) && To(L, t) > 0)
        return;
      O === "ref" ? y = !0 : O === "class" ? v = !0 : O === "style" ? T = !0 : O !== "key" && !C.includes(O) && C.push(O), i && (O === "class" || O === "style") && !C.includes(O) && C.push(O);
    } else
      P = !0;
  };
  for (let I = 0; I < r.length; I++) {
    const L = r[I];
    if (L.type === 6) {
      const { loc: O, name: F, value: q } = L;
      let j = !0;
      if (F === "ref" && (y = !0, t.scopes.vFor > 0 && u.push(
        mn(
          Pr("ref_for", !0),
          Pr("true")
        )
      ), q && t.inline)) {
        const N = t.bindingMetadata[q.content];
        (N === "setup-let" || N === "setup-ref" || N === "setup-maybe-ref") && (j = !1, u.push(
          mn(
            Pr("ref_key", !0),
            Pr(q.content, !0, q.loc)
          )
        ));
      }
      if (F === "is" && (JB(a) || q && q.content.startsWith("vue:")))
        continue;
      u.push(
        mn(
          Pr(
            F,
            !0,
            M4(O, 0, F.length)
          ),
          Pr(
            q ? q.content : "",
            j,
            q ? q.loc : O
          )
        )
      );
    } else {
      const { name: O, arg: F, exp: q, loc: j } = L, N = O === "bind", M = O === "on";
      if (O === "slot") {
        i || t.onError(
          Ni(40, j)
        );
        continue;
      }
      if (O === "once" || O === "memo" || O === "is" || N && xh(F, "is") && JB(a) || M && s)
        continue;
      if (
        // #938: elements with dynamic keys should be forced into blocks
        (N && xh(F, "key") || // inline before-update hooks need to force block so that it is invoked
        // before children
        M && h && xh(F, "vue:before-update")) && (m = !0), N && xh(F, "ref") && t.scopes.vFor > 0 && u.push(
          mn(
            Pr("ref_for", !0),
            Pr("true")
          )
        ), !F && (N || M)
      ) {
        P = !0, q ? N ? (D(), c.push(q)) : D({
          type: 14,
          loc: j,
          callee: t.helper(zA),
          arguments: i ? [q] : [q, "true"]
        }) : t.onError(
          Ni(
            N ? 34 : 35,
            j
          )
        );
        continue;
      }
      const R = t.directiveTransforms[O];
      if (R) {
        const { props: $, needRuntime: V } = R(L, e, t);
        !s && $.forEach(w), M && F && !pa(F) ? D(vo($, o)) : u.push(...$), V && (f.push(L), ST(V) && bue.set(L, V));
      } else
        qoe(O) || (f.push(L), h && (m = !0));
    }
  }
  let A;
  if (c.length ? (D(), c.length > 1 ? A = In(
    t.helper(vv),
    c,
    o
  ) : A = c[0]) : u.length && (A = vo(
    TV(u),
    o
  )), P ? g |= 16 : (v && !i && (g |= 2), T && !i && (g |= 4), C.length && (g |= 8), S && (g |= 32)), !m && (g === 0 || g === 32) && (y || x || f.length > 0) && (g |= 512), !t.inSSR && A)
    switch (A.type) {
      case 15:
        let I = -1, L = -1, O = !1;
        for (let j = 0; j < A.properties.length; j++) {
          const N = A.properties[j].key;
          pa(N) ? N.content === "class" ? I = j : N.content === "style" && (L = j) : N.isHandlerKey || (O = !0);
        }
        const F = A.properties[I], q = A.properties[L];
        O ? A = In(
          t.helper($y),
          [A]
        ) : (F && !pa(F.value) && (F.value = In(
          t.helper(HA),
          [F.value]
        )), q && // the static style is compiled into an object,
        // so use `hasStyleBinding` to ensure that it is a dynamic style binding
        (T || q.value.type === 4 && q.value.content.trim()[0] === "[" || // v-bind:style and style both exist,
        // v-bind:style with static literal object
        q.value.type === 17) && (q.value = In(
          t.helper(KA),
          [q.value]
        )));
        break;
      case 14:
        break;
      default:
        A = In(
          t.helper($y),
          [
            In(t.helper(pg), [
              A
            ])
          ]
        );
        break;
    }
  return {
    props: A,
    directives: f,
    patchFlag: g,
    dynamicPropNames: C,
    shouldUseBlock: m
  };
}
function TV(e) {
  const t = /* @__PURE__ */ new Map(), r = [];
  for (let i = 0; i < e.length; i++) {
    const n = e[i];
    if (n.key.type === 8 || !n.key.isStatic) {
      r.push(n);
      continue;
    }
    const s = n.key.content, a = t.get(s);
    a ? (s === "style" || s === "class" || $oe(s)) && KPe(a, n) : (t.set(s, n), r.push(n));
  }
  return r;
}
function KPe(e, t) {
  e.value.type === 17 ? e.value.elements.push(t.value) : e.value = fg(
    [e.value, t.value],
    e.loc
  );
}
function Sue(e, t) {
  const r = [], i = bue.get(e);
  if (i)
    r.push(t.helperString(i));
  else {
    const s = XB("v-" + e.name, t);
    s ? r.push(s) : (t.helper(qA), t.directives.add(e.name), r.push(Av(e.name, "directive")));
  }
  const { loc: n } = e;
  if (e.exp && r.push(e.exp), e.arg && (e.exp || r.push("void 0"), r.push(e.arg)), Object.keys(e.modifiers).length) {
    e.arg || (e.exp || r.push("void 0"), r.push("void 0"));
    const s = Pr("true", !1, n);
    r.push(
      vo(
        e.modifiers.map(
          (a) => mn(a, s)
        ),
        n
      )
    );
  }
  return fg(r, e.loc);
}
function zPe(e) {
  let t = "[";
  for (let r = 0, i = e.length; r < i; r++)
    t += JSON.stringify(e[r]), r < i - 1 && (t += ", ");
  return t + "]";
}
function JB(e) {
  return e === "component" || e === "Component";
}
const GPe = (e, t) => {
  if (Pv(e)) {
    const { children: r, loc: i } = e, { slotName: n, slotProps: s } = xue(e, t), a = [
      t.prefixIdentifiers ? "_ctx.$slots" : "$slots",
      n,
      "{}",
      "undefined",
      "true"
    ];
    let o = 2;
    s && (a[2] = s, o = 3), r.length && (a[3] = Wd([], r, !1, !1, i), o = 4), t.scopeId && !t.slotted && (o = 5), a.splice(o), e.codegenNode = In(
      t.helper(c4),
      a,
      i
    );
  }
};
function xue(e, t) {
  let r = '"default"', i;
  const n = [];
  for (let s = 0; s < e.props.length; s++) {
    const a = e.props[s];
    a.type === 6 ? a.value && (a.name === "name" ? r = JSON.stringify(a.value.content) : (a.name = Dc(a.name), n.push(a))) : a.name === "bind" && xh(a.arg, "name") ? a.exp && (r = a.exp) : (a.name === "bind" && a.arg && pa(a.arg) && (a.arg.content = Dc(a.arg.content)), n.push(a));
  }
  if (n.length > 0) {
    const { props: s, directives: a } = Z4(
      e,
      t,
      n,
      !1,
      !1
    );
    i = s, a.length && t.onError(
      Ni(
        36,
        a[0].loc
      )
    );
  }
  return {
    slotName: r,
    slotProps: i
  };
}
const YPe = /^\s*([\w$_]+|(async\s*)?\([^)]*?\))\s*(:[^=]+)?=>|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/, e$ = (e, t, r, i) => {
  const { loc: n, modifiers: s, arg: a } = e;
  !e.exp && !s.length && r.onError(Ni(35, n));
  let o;
  if (a.type === 4)
    if (a.isStatic) {
      let f = a.content;
      f.startsWith("vnode") && r.onWarn(
        Ni(51, a.loc)
      ), f.startsWith("vue:") && (f = "vnode-".concat(f.slice(4)));
      const h = t.tagType !== 0 || f.startsWith("vnode") || !/[A-Z]/.test(f) ? (
        // for non-element and vnode lifecycle event listeners, auto convert
        // it to camelCase. See issue #2249
        rxe(Dc(f))
      ) : (
        // preserve case for plain element listeners that have uppercase
        // letters, as these may be custom elements' custom events
        "on:".concat(f)
      );
      o = Pr(h, !0, a.loc);
    } else
      o = aa([
        "".concat(r.helperString(ZP), "("),
        a,
        ")"
      ]);
  else
    o = a, o.children.unshift("".concat(r.helperString(ZP), "(")), o.children.push(")");
  let l = e.exp;
  l && !l.content.trim() && (l = void 0);
  let u = r.cacheHandlers && !l && !r.inVOnce;
  if (l) {
    const f = L4(l.content, r), h = !(f || YPe.test(l.content)), m = l.content.includes(";");
    r.prefixIdentifiers && (h && r.addIdentifiers("$event"), l = e.exp = So(
      l,
      r,
      !1,
      m
    ), h && r.removeIdentifiers("$event"), u = r.cacheHandlers && // unnecessary to cache inside v-once
    !r.inVOnce && // runtime constants don't need to be cached
    // (this is analyzed by compileScript in SFC <script setup>)
    !(l.type === 4 && l.constType > 0) && // #1541 bail if this is a member exp handler passed to a component -
    // we need to use the original function to preserve arity,
    // e.g. <transition> relies on checking cb.length to determine
    // transition end handling. Inline function is ok since its arity
    // is preserved even when cached.
    !(f && t.tagType === 1) && // bail if the function references closure variables (v-for, v-slot)
    // it must be passed fresh to avoid stale values.
    !Ma(l, r.identifiers), u && f && (l.type === 4 ? l.content = "".concat(l.content, " && ").concat(l.content, "(...args)") : l.children = [...l.children, " && ", ...l.children, "(...args)"])), (h || u && f) && (l = aa([
      "".concat(h ? r.isTS ? "($event: any)" : "$event" : "".concat(r.isTS ? "\n//@ts-ignore\n" : "", "(...args)"), " => ").concat(m ? "{" : "("),
      l,
      m ? "}" : ")"
    ]));
  }
  let c = {
    props: [
      mn(
        o,
        l || Pr("() => {}", !1, n)
      )
    ]
  };
  return i && (c = i(c)), u && (c.props[0].value = r.cache(c.props[0].value)), c.props.forEach((f) => f.key.isHandlerKey = !0), c;
}, Eue = (e, t, r) => {
  const { exp: i, modifiers: n, loc: s } = e, a = e.arg;
  return a.type !== 4 ? (a.children.unshift("("), a.children.push(') || ""')) : a.isStatic || (a.content = "".concat(a.content, ' || ""')), n.includes("camel") && (a.type === 4 ? a.isStatic ? a.content = Dc(a.content) : a.content = "".concat(r.helperString(QP), "(").concat(a.content, ")") : (a.children.unshift("".concat(r.helperString(QP), "(")), a.children.push(")"))), r.inSSR || (n.includes("prop") && SV(a, "."), n.includes("attr") && SV(a, "^")), !i || i.type === 4 && !i.content.trim() ? (r.onError(Ni(34, s)), {
    props: [mn(a, Pr("", !0, s))]
  }) : {
    props: [mn(a, i)]
  };
}, SV = (e, t) => {
  e.type === 4 ? e.isStatic ? e.content = t + e.content : e.content = "`".concat(t, "${").concat(e.content, "}`") : (e.children.unshift("'".concat(t, "' + (")), e.children.push(")"));
}, XPe = (e, t) => {
  if (e.type === 0 || e.type === 1 || e.type === 11 || e.type === 10)
    return () => {
      const r = e.children;
      let i, n = !1;
      for (let s = 0; s < r.length; s++) {
        const a = r[s];
        if (nP(a)) {
          n = !0;
          for (let o = s + 1; o < r.length; o++) {
            const l = r[o];
            if (nP(l))
              i || (i = r[s] = aa(
                [a],
                a.loc
              )), i.children.push(" + ", l), r.splice(o, 1), o--;
            else {
              i = void 0;
              break;
            }
          }
        }
      }
      if (!(!n || // if this is a plain element with a single text child, leave it
      // as-is since the runtime has dedicated fast path for this by directly
      // setting textContent of the element.
      // for component root it's always normalized anyway.
      r.length === 1 && (e.type === 0 || e.type === 1 && e.tagType === 0 && // #3756
      // custom directives can potentially add DOM elements arbitrarily,
      // we need to avoid setting textContent of the element at runtime
      // to avoid accidentally overwriting the DOM elements added
      // by the user through custom directives.
      !e.props.find(
        (s) => s.type === 7 && !t.directiveTransforms[s.name]
      ))))
        for (let s = 0; s < r.length; s++) {
          const a = r[s];
          if (nP(a) || a.type === 8) {
            const o = [];
            (a.type !== 2 || a.content !== " ") && o.push(a), !t.ssr && To(a, t) === 0 && o.push(
              1 + " /* ".concat(pp[1], " */")
            ), r[s] = {
              type: 12,
              content: a,
              loc: a.loc,
              codegenNode: In(
                t.helper($A),
                o
              )
            };
          }
        }
    };
}, xV = /* @__PURE__ */ new WeakSet(), JPe = (e, t) => {
  if (e.type === 1 && ja(e, "once", !0))
    return xV.has(e) || t.inVOnce || t.inSSR ? void 0 : (xV.add(e), t.inVOnce = !0, t.helper(Tv), () => {
      t.inVOnce = !1;
      const r = t.currentNode;
      r.codegenNode && (r.codegenNode = t.cache(
        r.codegenNode,
        !0
        /* isVNode */
      ));
    });
}, t$ = (e, t, r) => {
  const { exp: i, arg: n } = e;
  if (!i)
    return r.onError(
      Ni(41, e.loc)
    ), eb();
  const s = i.loc.source, a = i.type === 4 ? i.content : s, o = r.bindingMetadata[s];
  if (o === "props" || o === "props-aliased")
    return r.onError(Ni(44, i.loc)), eb();
  const l = r.inline && (o === "setup-let" || o === "setup-ref" || o === "setup-maybe-ref");
  if (!a.trim() || !L4(a, r) && !l)
    return r.onError(
      Ni(42, i.loc)
    ), eb();
  if (r.prefixIdentifiers && Bh(a) && r.identifiers[a])
    return r.onError(
      Ni(43, i.loc)
    ), eb();
  const u = n || Pr("modelValue", !0), c = n ? pa(n) ? "onUpdate:".concat(Dc(n.content)) : aa(['"onUpdate:" + ', n]) : "onUpdate:modelValue";
  let f;
  const h = r.isTS ? "($event: any)" : "$event";
  if (l)
    if (o === "setup-ref")
      f = aa([
        "".concat(h, " => (("),
        Pr(s, !1, i.loc),
        ").value = $event)"
      ]);
    else {
      const g = o === "setup-let" ? "".concat(s, " = $event") : "null";
      f = aa([
        "".concat(h, " => (").concat(r.helperString(xv), "(").concat(s, ") ? ("),
        Pr(s, !1, i.loc),
        ").value = $event : ".concat(g, ")")
      ]);
    }
  else
    f = aa([
      "".concat(h, " => (("),
      i,
      ") = $event)"
    ]);
  const m = [
    // modelValue: foo
    mn(u, e.exp),
    // "onUpdate:modelValue": $event => (foo = $event)
    mn(c, f)
  ];
  if (r.prefixIdentifiers && !r.inVOnce && r.cacheHandlers && !Ma(i, r.identifiers) && (m[1].value = r.cache(m[1].value)), e.modifiers.length && t.tagType === 1) {
    const g = e.modifiers.map((v) => (Bh(v) ? v : JSON.stringify(v)) + ": true").join(", "), y = n ? pa(n) ? "".concat(n.content, "Modifiers") : aa([n, ' + "Modifiers"']) : "modelModifiers";
    m.push(
      mn(
        y,
        Pr(
          "{ ".concat(g, " }"),
          !1,
          e.loc,
          2
        )
      )
    );
  }
  return eb(m);
};
function eb(e = []) {
  return { props: e };
}
const EV = /* @__PURE__ */ new WeakSet(), QPe = (e, t) => {
  if (e.type === 1) {
    const r = ja(e, "memo");
    return !r || EV.has(e) ? void 0 : (EV.add(e), () => {
      const i = e.codegenNode || t.currentNode.codegenNode;
      i && i.type === 13 && (e.tagType !== 1 && QA(i, t), e.codegenNode = In(t.helper(JA), [
        r.exp,
        Wd(void 0, i),
        "_cache",
        String(t.cached++)
      ]));
    });
  }
};
function r$(e) {
  return [
    [
      JPe,
      FPe,
      QPe,
      UPe,
      ...e ? [
        // order is important
        mue,
        pue
      ] : [],
      GPe,
      vue,
      due,
      XPe
    ],
    {
      on: e$,
      bind: Eue,
      model: t$
    }
  ];
}
function Pue(e, t = {}) {
  const r = t.onError || a4, i = t.mode === "module", n = t.prefixIdentifiers === !0 || i;
  !n && t.cacheHandlers && r(Ni(49)), t.scopeId && !i && r(Ni(50));
  const s = Ii(e) ? B4(e, t) : e, [a, o] = r$(n);
  if (t.isTS) {
    const { expressionPlugins: l } = t;
    (!l || !l.includes("typescript")) && (t.expressionPlugins = [...l || [], "typescript"]);
  }
  return j4(
    s,
    gf({}, t, {
      prefixIdentifiers: n,
      nodeTransforms: [
        ...a,
        ...t.nodeTransforms || []
        // user transforms
      ],
      directiveTransforms: gf(
        {},
        o,
        t.directiveTransforms || {}
        // user transforms
      )
    })
  ), eue(
    s,
    gf({}, t, {
      prefixIdentifiers: n
    })
  );
}
const wue = () => ({ props: [] }), i$ = Symbol("vModelRadio"), n$ = Symbol("vModelCheckbox"), s$ = Symbol("vModelText"), a$ = Symbol("vModelSelect"), dw = Symbol("vModelDynamic"), o$ = Symbol("vOnModifiersGuard"), l$ = Symbol("vOnKeysGuard"), u$ = Symbol("vShow"), lC = Symbol("Transition"), c$ = Symbol("TransitionGroup");
h4({
  [i$]: "vModelRadio",
  [n$]: "vModelCheckbox",
  [s$]: "vModelText",
  [a$]: "vModelSelect",
  [dw]: "vModelDynamic",
  [o$]: "withModifiers",
  [l$]: "withKeys",
  [u$]: "vShow",
  [lC]: "Transition",
  [c$]: "TransitionGroup"
});
var PV = {
  GT: ">",
  gt: ">",
  LT: "<",
  lt: "<",
  "ac;": "∾",
  "af;": "⁡",
  AMP: "&",
  amp: "&",
  "ap;": "≈",
  "DD;": "ⅅ",
  "dd;": "ⅆ",
  deg: "°",
  "ee;": "ⅇ",
  "eg;": "⪚",
  "el;": "⪙",
  ETH: "Ð",
  eth: "ð",
  "gE;": "≧",
  "ge;": "≥",
  "Gg;": "⋙",
  "gg;": "≫",
  "gl;": "≷",
  "GT;": ">",
  "Gt;": "≫",
  "gt;": ">",
  "ic;": "⁣",
  "ii;": "ⅈ",
  "Im;": "ℑ",
  "in;": "∈",
  "it;": "⁢",
  "lE;": "≦",
  "le;": "≤",
  "lg;": "≶",
  "Ll;": "⋘",
  "ll;": "≪",
  "LT;": "<",
  "Lt;": "≪",
  "lt;": "<",
  "mp;": "∓",
  "Mu;": "Μ",
  "mu;": "μ",
  "ne;": "≠",
  "ni;": "∋",
  not: "¬",
  "Nu;": "Ν",
  "nu;": "ν",
  "Or;": "⩔",
  "or;": "∨",
  "oS;": "Ⓢ",
  "Pi;": "Π",
  "pi;": "π",
  "pm;": "±",
  "Pr;": "⪻",
  "pr;": "≺",
  "Re;": "ℜ",
  REG: "®",
  reg: "®",
  "rx;": "℞",
  "Sc;": "⪼",
  "sc;": "≻",
  shy: "­",
  uml: "¨",
  "wp;": "℘",
  "wr;": "≀",
  "Xi;": "Ξ",
  "xi;": "ξ",
  yen: "¥",
  "acd;": "∿",
  "acE;": "∾̳",
  "Acy;": "А",
  "acy;": "а",
  "Afr;": "𝔄",
  "afr;": "𝔞",
  "AMP;": "&",
  "amp;": "&",
  "And;": "⩓",
  "and;": "∧",
  "ang;": "∠",
  "apE;": "⩰",
  "ape;": "≊",
  "ast;": "*",
  Auml: "Ä",
  auml: "ä",
  "Bcy;": "Б",
  "bcy;": "б",
  "Bfr;": "𝔅",
  "bfr;": "𝔟",
  "bne;": "=⃥",
  "bot;": "⊥",
  "Cap;": "⋒",
  "cap;": "∩",
  cent: "¢",
  "Cfr;": "ℭ",
  "cfr;": "𝔠",
  "Chi;": "Χ",
  "chi;": "χ",
  "cir;": "○",
  COPY: "©",
  copy: "©",
  "Cup;": "⋓",
  "cup;": "∪",
  "Dcy;": "Д",
  "dcy;": "д",
  "deg;": "°",
  "Del;": "∇",
  "Dfr;": "𝔇",
  "dfr;": "𝔡",
  "die;": "¨",
  "div;": "÷",
  "Dot;": "¨",
  "dot;": "˙",
  "Ecy;": "Э",
  "ecy;": "э",
  "Efr;": "𝔈",
  "efr;": "𝔢",
  "egs;": "⪖",
  "ell;": "ℓ",
  "els;": "⪕",
  "ENG;": "Ŋ",
  "eng;": "ŋ",
  "Eta;": "Η",
  "eta;": "η",
  "ETH;": "Ð",
  "eth;": "ð",
  Euml: "Ë",
  euml: "ë",
  "Fcy;": "Ф",
  "fcy;": "ф",
  "Ffr;": "𝔉",
  "ffr;": "𝔣",
  "gap;": "⪆",
  "Gcy;": "Г",
  "gcy;": "г",
  "gEl;": "⪌",
  "gel;": "⋛",
  "geq;": "≥",
  "ges;": "⩾",
  "Gfr;": "𝔊",
  "gfr;": "𝔤",
  "ggg;": "⋙",
  "gla;": "⪥",
  "glE;": "⪒",
  "glj;": "⪤",
  "gnE;": "≩",
  "gne;": "⪈",
  "Hat;": "^",
  "Hfr;": "ℌ",
  "hfr;": "𝔥",
  "Icy;": "И",
  "icy;": "и",
  "iff;": "⇔",
  "Ifr;": "ℑ",
  "ifr;": "𝔦",
  "Int;": "∬",
  "int;": "∫",
  Iuml: "Ï",
  iuml: "ï",
  "Jcy;": "Й",
  "jcy;": "й",
  "Jfr;": "𝔍",
  "jfr;": "𝔧",
  "Kcy;": "К",
  "kcy;": "к",
  "Kfr;": "𝔎",
  "kfr;": "𝔨",
  "lap;": "⪅",
  "lat;": "⪫",
  "Lcy;": "Л",
  "lcy;": "л",
  "lEg;": "⪋",
  "leg;": "⋚",
  "leq;": "≤",
  "les;": "⩽",
  "Lfr;": "𝔏",
  "lfr;": "𝔩",
  "lgE;": "⪑",
  "lnE;": "≨",
  "lne;": "⪇",
  "loz;": "◊",
  "lrm;": "‎",
  "Lsh;": "↰",
  "lsh;": "↰",
  macr: "¯",
  "Map;": "⤅",
  "map;": "↦",
  "Mcy;": "М",
  "mcy;": "м",
  "Mfr;": "𝔐",
  "mfr;": "𝔪",
  "mho;": "℧",
  "mid;": "∣",
  "nap;": "≉",
  nbsp: " ",
  "Ncy;": "Н",
  "ncy;": "н",
  "Nfr;": "𝔑",
  "nfr;": "𝔫",
  "ngE;": "≧̸",
  "nge;": "≱",
  "nGg;": "⋙̸",
  "nGt;": "≫⃒",
  "ngt;": "≯",
  "nis;": "⋼",
  "niv;": "∋",
  "nlE;": "≦̸",
  "nle;": "≰",
  "nLl;": "⋘̸",
  "nLt;": "≪⃒",
  "nlt;": "≮",
  "Not;": "⫬",
  "not;": "¬",
  "npr;": "⊀",
  "nsc;": "⊁",
  "num;": "#",
  "Ocy;": "О",
  "ocy;": "о",
  "Ofr;": "𝔒",
  "ofr;": "𝔬",
  "ogt;": "⧁",
  "ohm;": "Ω",
  "olt;": "⧀",
  "ord;": "⩝",
  ordf: "ª",
  ordm: "º",
  "orv;": "⩛",
  Ouml: "Ö",
  ouml: "ö",
  "par;": "∥",
  para: "¶",
  "Pcy;": "П",
  "pcy;": "п",
  "Pfr;": "𝔓",
  "pfr;": "𝔭",
  "Phi;": "Φ",
  "phi;": "φ",
  "piv;": "ϖ",
  "prE;": "⪳",
  "pre;": "⪯",
  "Psi;": "Ψ",
  "psi;": "ψ",
  "Qfr;": "𝔔",
  "qfr;": "𝔮",
  QUOT: '"',
  quot: '"',
  "Rcy;": "Р",
  "rcy;": "р",
  "REG;": "®",
  "reg;": "®",
  "Rfr;": "ℜ",
  "rfr;": "𝔯",
  "Rho;": "Ρ",
  "rho;": "ρ",
  "rlm;": "‏",
  "Rsh;": "↱",
  "rsh;": "↱",
  "scE;": "⪴",
  "sce;": "⪰",
  "Scy;": "С",
  "scy;": "с",
  sect: "§",
  "Sfr;": "𝔖",
  "sfr;": "𝔰",
  "shy;": "­",
  "sim;": "∼",
  "smt;": "⪪",
  "sol;": "/",
  "squ;": "□",
  "Sub;": "⋐",
  "sub;": "⊂",
  "Sum;": "∑",
  "sum;": "∑",
  "Sup;": "⋑",
  "sup;": "⊃",
  sup1: "¹",
  sup2: "²",
  sup3: "³",
  "Tab;": "	",
  "Tau;": "Τ",
  "tau;": "τ",
  "Tcy;": "Т",
  "tcy;": "т",
  "Tfr;": "𝔗",
  "tfr;": "𝔱",
  "top;": "⊤",
  "Ucy;": "У",
  "ucy;": "у",
  "Ufr;": "𝔘",
  "ufr;": "𝔲",
  "uml;": "¨",
  Uuml: "Ü",
  uuml: "ü",
  "Vcy;": "В",
  "vcy;": "в",
  "Vee;": "⋁",
  "vee;": "∨",
  "Vfr;": "𝔙",
  "vfr;": "𝔳",
  "Wfr;": "𝔚",
  "wfr;": "𝔴",
  "Xfr;": "𝔛",
  "xfr;": "𝔵",
  "Ycy;": "Ы",
  "ycy;": "ы",
  "yen;": "¥",
  "Yfr;": "𝔜",
  "yfr;": "𝔶",
  yuml: "ÿ",
  "Zcy;": "З",
  "zcy;": "з",
  "Zfr;": "ℨ",
  "zfr;": "𝔷",
  "zwj;": "‍",
  Acirc: "Â",
  acirc: "â",
  acute: "´",
  AElig: "Æ",
  aelig: "æ",
  "andd;": "⩜",
  "andv;": "⩚",
  "ange;": "⦤",
  "Aopf;": "𝔸",
  "aopf;": "𝕒",
  "apid;": "≋",
  "apos;": "'",
  Aring: "Å",
  aring: "å",
  "Ascr;": "𝒜",
  "ascr;": "𝒶",
  "Auml;": "Ä",
  "auml;": "ä",
  "Barv;": "⫧",
  "bbrk;": "⎵",
  "Beta;": "Β",
  "beta;": "β",
  "beth;": "ℶ",
  "bNot;": "⫭",
  "bnot;": "⌐",
  "Bopf;": "𝔹",
  "bopf;": "𝕓",
  "boxH;": "═",
  "boxh;": "─",
  "boxV;": "║",
  "boxv;": "│",
  "Bscr;": "ℬ",
  "bscr;": "𝒷",
  "bsim;": "∽",
  "bsol;": "\\",
  "bull;": "•",
  "bump;": "≎",
  "caps;": "∩︀",
  "Cdot;": "Ċ",
  "cdot;": "ċ",
  cedil: "¸",
  "cent;": "¢",
  "CHcy;": "Ч",
  "chcy;": "ч",
  "circ;": "ˆ",
  "cirE;": "⧃",
  "cire;": "≗",
  "comp;": "∁",
  "cong;": "≅",
  "Copf;": "ℂ",
  "copf;": "𝕔",
  "COPY;": "©",
  "copy;": "©",
  "Cscr;": "𝒞",
  "cscr;": "𝒸",
  "csub;": "⫏",
  "csup;": "⫐",
  "cups;": "∪︀",
  "Darr;": "↡",
  "dArr;": "⇓",
  "darr;": "↓",
  "dash;": "‐",
  "dHar;": "⥥",
  "diam;": "⋄",
  "DJcy;": "Ђ",
  "djcy;": "ђ",
  "Dopf;": "𝔻",
  "dopf;": "𝕕",
  "Dscr;": "𝒟",
  "dscr;": "𝒹",
  "DScy;": "Ѕ",
  "dscy;": "ѕ",
  "dsol;": "⧶",
  "dtri;": "▿",
  "DZcy;": "Џ",
  "dzcy;": "џ",
  "ecir;": "≖",
  Ecirc: "Ê",
  ecirc: "ê",
  "Edot;": "Ė",
  "eDot;": "≑",
  "edot;": "ė",
  "emsp;": " ",
  "ensp;": " ",
  "Eopf;": "𝔼",
  "eopf;": "𝕖",
  "epar;": "⋕",
  "epsi;": "ε",
  "Escr;": "ℰ",
  "escr;": "ℯ",
  "Esim;": "⩳",
  "esim;": "≂",
  "Euml;": "Ë",
  "euml;": "ë",
  "euro;": "€",
  "excl;": "!",
  "flat;": "♭",
  "fnof;": "ƒ",
  "Fopf;": "𝔽",
  "fopf;": "𝕗",
  "fork;": "⋔",
  "Fscr;": "ℱ",
  "fscr;": "𝒻",
  "Gdot;": "Ġ",
  "gdot;": "ġ",
  "geqq;": "≧",
  "gesl;": "⋛︀",
  "GJcy;": "Ѓ",
  "gjcy;": "ѓ",
  "gnap;": "⪊",
  "gneq;": "⪈",
  "Gopf;": "𝔾",
  "gopf;": "𝕘",
  "Gscr;": "𝒢",
  "gscr;": "ℊ",
  "gsim;": "≳",
  "gtcc;": "⪧",
  "gvnE;": "≩︀",
  "half;": "½",
  "hArr;": "⇔",
  "harr;": "↔",
  "hbar;": "ℏ",
  "Hopf;": "ℍ",
  "hopf;": "𝕙",
  "Hscr;": "ℋ",
  "hscr;": "𝒽",
  Icirc: "Î",
  icirc: "î",
  "Idot;": "İ",
  "IEcy;": "Е",
  "iecy;": "е",
  iexcl: "¡",
  "imof;": "⊷",
  "IOcy;": "Ё",
  "iocy;": "ё",
  "Iopf;": "𝕀",
  "iopf;": "𝕚",
  "Iota;": "Ι",
  "iota;": "ι",
  "Iscr;": "ℐ",
  "iscr;": "𝒾",
  "isin;": "∈",
  "Iuml;": "Ï",
  "iuml;": "ï",
  "Jopf;": "𝕁",
  "jopf;": "𝕛",
  "Jscr;": "𝒥",
  "jscr;": "𝒿",
  "KHcy;": "Х",
  "khcy;": "х",
  "KJcy;": "Ќ",
  "kjcy;": "ќ",
  "Kopf;": "𝕂",
  "kopf;": "𝕜",
  "Kscr;": "𝒦",
  "kscr;": "𝓀",
  "Lang;": "⟪",
  "lang;": "⟨",
  laquo: "«",
  "Larr;": "↞",
  "lArr;": "⇐",
  "larr;": "←",
  "late;": "⪭",
  "lcub;": "{",
  "ldca;": "⤶",
  "ldsh;": "↲",
  "leqq;": "≦",
  "lesg;": "⋚︀",
  "lHar;": "⥢",
  "LJcy;": "Љ",
  "ljcy;": "љ",
  "lnap;": "⪉",
  "lneq;": "⪇",
  "Lopf;": "𝕃",
  "lopf;": "𝕝",
  "lozf;": "⧫",
  "lpar;": "(",
  "Lscr;": "ℒ",
  "lscr;": "𝓁",
  "lsim;": "≲",
  "lsqb;": "[",
  "ltcc;": "⪦",
  "ltri;": "◃",
  "lvnE;": "≨︀",
  "macr;": "¯",
  "male;": "♂",
  "malt;": "✠",
  micro: "µ",
  "mlcp;": "⫛",
  "mldr;": "…",
  "Mopf;": "𝕄",
  "mopf;": "𝕞",
  "Mscr;": "ℳ",
  "mscr;": "𝓂",
  "nang;": "∠⃒",
  "napE;": "⩰̸",
  "nbsp;": " ",
  "ncap;": "⩃",
  "ncup;": "⩂",
  "ngeq;": "≱",
  "nges;": "⩾̸",
  "ngtr;": "≯",
  "nGtv;": "≫̸",
  "nisd;": "⋺",
  "NJcy;": "Њ",
  "njcy;": "њ",
  "nldr;": "‥",
  "nleq;": "≰",
  "nles;": "⩽̸",
  "nLtv;": "≪̸",
  "nmid;": "∤",
  "Nopf;": "ℕ",
  "nopf;": "𝕟",
  "npar;": "∦",
  "npre;": "⪯̸",
  "nsce;": "⪰̸",
  "Nscr;": "𝒩",
  "nscr;": "𝓃",
  "nsim;": "≁",
  "nsub;": "⊄",
  "nsup;": "⊅",
  "ntgl;": "≹",
  "ntlg;": "≸",
  "nvap;": "≍⃒",
  "nvge;": "≥⃒",
  "nvgt;": ">⃒",
  "nvle;": "≤⃒",
  "nvlt;": "<⃒",
  "oast;": "⊛",
  "ocir;": "⊚",
  Ocirc: "Ô",
  ocirc: "ô",
  "odiv;": "⨸",
  "odot;": "⊙",
  "ogon;": "˛",
  "oint;": "∮",
  "omid;": "⦶",
  "Oopf;": "𝕆",
  "oopf;": "𝕠",
  "opar;": "⦷",
  "ordf;": "ª",
  "ordm;": "º",
  "oror;": "⩖",
  "Oscr;": "𝒪",
  "oscr;": "ℴ",
  "osol;": "⊘",
  "Ouml;": "Ö",
  "ouml;": "ö",
  "para;": "¶",
  "part;": "∂",
  "perp;": "⊥",
  "phiv;": "ϕ",
  "plus;": "+",
  "Popf;": "ℙ",
  "popf;": "𝕡",
  pound: "£",
  "prap;": "⪷",
  "prec;": "≺",
  "prnE;": "⪵",
  "prod;": "∏",
  "prop;": "∝",
  "Pscr;": "𝒫",
  "pscr;": "𝓅",
  "qint;": "⨌",
  "Qopf;": "ℚ",
  "qopf;": "𝕢",
  "Qscr;": "𝒬",
  "qscr;": "𝓆",
  "QUOT;": '"',
  "quot;": '"',
  "race;": "∽̱",
  "Rang;": "⟫",
  "rang;": "⟩",
  raquo: "»",
  "Rarr;": "↠",
  "rArr;": "⇒",
  "rarr;": "→",
  "rcub;": "}",
  "rdca;": "⤷",
  "rdsh;": "↳",
  "real;": "ℜ",
  "rect;": "▭",
  "rHar;": "⥤",
  "rhov;": "ϱ",
  "ring;": "˚",
  "Ropf;": "ℝ",
  "ropf;": "𝕣",
  "rpar;": ")",
  "Rscr;": "ℛ",
  "rscr;": "𝓇",
  "rsqb;": "]",
  "rtri;": "▹",
  "scap;": "⪸",
  "scnE;": "⪶",
  "sdot;": "⋅",
  "sect;": "§",
  "semi;": ";",
  "sext;": "✶",
  "SHcy;": "Ш",
  "shcy;": "ш",
  "sime;": "≃",
  "simg;": "⪞",
  "siml;": "⪝",
  "smid;": "∣",
  "smte;": "⪬",
  "solb;": "⧄",
  "Sopf;": "𝕊",
  "sopf;": "𝕤",
  "spar;": "∥",
  "Sqrt;": "√",
  "squf;": "▪",
  "Sscr;": "𝒮",
  "sscr;": "𝓈",
  "Star;": "⋆",
  "star;": "☆",
  "subE;": "⫅",
  "sube;": "⊆",
  "succ;": "≻",
  "sung;": "♪",
  "sup1;": "¹",
  "sup2;": "²",
  "sup3;": "³",
  "supE;": "⫆",
  "supe;": "⊇",
  szlig: "ß",
  "tbrk;": "⎴",
  "tdot;": "⃛",
  THORN: "Þ",
  thorn: "þ",
  times: "×",
  "tint;": "∭",
  "toea;": "⤨",
  "Topf;": "𝕋",
  "topf;": "𝕥",
  "tosa;": "⤩",
  "trie;": "≜",
  "Tscr;": "𝒯",
  "tscr;": "𝓉",
  "TScy;": "Ц",
  "tscy;": "ц",
  "Uarr;": "↟",
  "uArr;": "⇑",
  "uarr;": "↑",
  Ucirc: "Û",
  ucirc: "û",
  "uHar;": "⥣",
  "Uopf;": "𝕌",
  "uopf;": "𝕦",
  "Upsi;": "ϒ",
  "upsi;": "υ",
  "Uscr;": "𝒰",
  "uscr;": "𝓊",
  "utri;": "▵",
  "Uuml;": "Ü",
  "uuml;": "ü",
  "vArr;": "⇕",
  "varr;": "↕",
  "Vbar;": "⫫",
  "vBar;": "⫨",
  "Vert;": "‖",
  "vert;": "|",
  "Vopf;": "𝕍",
  "vopf;": "𝕧",
  "Vscr;": "𝒱",
  "vscr;": "𝓋",
  "Wopf;": "𝕎",
  "wopf;": "𝕨",
  "Wscr;": "𝒲",
  "wscr;": "𝓌",
  "xcap;": "⋂",
  "xcup;": "⋃",
  "xmap;": "⟼",
  "xnis;": "⋻",
  "Xopf;": "𝕏",
  "xopf;": "𝕩",
  "Xscr;": "𝒳",
  "xscr;": "𝓍",
  "xvee;": "⋁",
  "YAcy;": "Я",
  "yacy;": "я",
  "YIcy;": "Ї",
  "yicy;": "ї",
  "Yopf;": "𝕐",
  "yopf;": "𝕪",
  "Yscr;": "𝒴",
  "yscr;": "𝓎",
  "YUcy;": "Ю",
  "yucy;": "ю",
  "Yuml;": "Ÿ",
  "yuml;": "ÿ",
  "Zdot;": "Ż",
  "zdot;": "ż",
  "Zeta;": "Ζ",
  "zeta;": "ζ",
  "ZHcy;": "Ж",
  "zhcy;": "ж",
  "Zopf;": "ℤ",
  "zopf;": "𝕫",
  "Zscr;": "𝒵",
  "zscr;": "𝓏",
  "zwnj;": "‌",
  Aacute: "Á",
  aacute: "á",
  "Acirc;": "Â",
  "acirc;": "â",
  "acute;": "´",
  "AElig;": "Æ",
  "aelig;": "æ",
  Agrave: "À",
  agrave: "à",
  "aleph;": "ℵ",
  "Alpha;": "Α",
  "alpha;": "α",
  "Amacr;": "Ā",
  "amacr;": "ā",
  "amalg;": "⨿",
  "angle;": "∠",
  "angrt;": "∟",
  "angst;": "Å",
  "Aogon;": "Ą",
  "aogon;": "ą",
  "Aring;": "Å",
  "aring;": "å",
  "asymp;": "≈",
  Atilde: "Ã",
  atilde: "ã",
  "awint;": "⨑",
  "bcong;": "≌",
  "bdquo;": "„",
  "bepsi;": "϶",
  "blank;": "␣",
  "blk12;": "▒",
  "blk14;": "░",
  "blk34;": "▓",
  "block;": "█",
  "boxDL;": "╗",
  "boxDl;": "╖",
  "boxdL;": "╕",
  "boxdl;": "┐",
  "boxDR;": "╔",
  "boxDr;": "╓",
  "boxdR;": "╒",
  "boxdr;": "┌",
  "boxHD;": "╦",
  "boxHd;": "╤",
  "boxhD;": "╥",
  "boxhd;": "┬",
  "boxHU;": "╩",
  "boxHu;": "╧",
  "boxhU;": "╨",
  "boxhu;": "┴",
  "boxUL;": "╝",
  "boxUl;": "╜",
  "boxuL;": "╛",
  "boxul;": "┘",
  "boxUR;": "╚",
  "boxUr;": "╙",
  "boxuR;": "╘",
  "boxur;": "└",
  "boxVH;": "╬",
  "boxVh;": "╫",
  "boxvH;": "╪",
  "boxvh;": "┼",
  "boxVL;": "╣",
  "boxVl;": "╢",
  "boxvL;": "╡",
  "boxvl;": "┤",
  "boxVR;": "╠",
  "boxVr;": "╟",
  "boxvR;": "╞",
  "boxvr;": "├",
  "Breve;": "˘",
  "breve;": "˘",
  brvbar: "¦",
  "bsemi;": "⁏",
  "bsime;": "⋍",
  "bsolb;": "⧅",
  "bumpE;": "⪮",
  "bumpe;": "≏",
  "caret;": "⁁",
  "caron;": "ˇ",
  "ccaps;": "⩍",
  Ccedil: "Ç",
  ccedil: "ç",
  "Ccirc;": "Ĉ",
  "ccirc;": "ĉ",
  "ccups;": "⩌",
  "cedil;": "¸",
  "check;": "✓",
  "clubs;": "♣",
  "Colon;": "∷",
  "colon;": ":",
  "comma;": ",",
  "crarr;": "↵",
  "Cross;": "⨯",
  "cross;": "✗",
  "csube;": "⫑",
  "csupe;": "⫒",
  "ctdot;": "⋯",
  "cuepr;": "⋞",
  "cuesc;": "⋟",
  "cupor;": "⩅",
  curren: "¤",
  "cuvee;": "⋎",
  "cuwed;": "⋏",
  "cwint;": "∱",
  "Dashv;": "⫤",
  "dashv;": "⊣",
  "dblac;": "˝",
  "ddarr;": "⇊",
  "Delta;": "Δ",
  "delta;": "δ",
  "dharl;": "⇃",
  "dharr;": "⇂",
  "diams;": "♦",
  "disin;": "⋲",
  divide: "÷",
  "doteq;": "≐",
  "dtdot;": "⋱",
  "dtrif;": "▾",
  "duarr;": "⇵",
  "duhar;": "⥯",
  Eacute: "É",
  eacute: "é",
  "Ecirc;": "Ê",
  "ecirc;": "ê",
  "eDDot;": "⩷",
  "efDot;": "≒",
  Egrave: "È",
  egrave: "è",
  "Emacr;": "Ē",
  "emacr;": "ē",
  "empty;": "∅",
  "Eogon;": "Ę",
  "eogon;": "ę",
  "eplus;": "⩱",
  "epsiv;": "ϵ",
  "eqsim;": "≂",
  "Equal;": "⩵",
  "equiv;": "≡",
  "erarr;": "⥱",
  "erDot;": "≓",
  "esdot;": "≐",
  "exist;": "∃",
  "fflig;": "ﬀ",
  "filig;": "ﬁ",
  "fjlig;": "fj",
  "fllig;": "ﬂ",
  "fltns;": "▱",
  "forkv;": "⫙",
  frac12: "½",
  frac14: "¼",
  frac34: "¾",
  "frasl;": "⁄",
  "frown;": "⌢",
  "Gamma;": "Γ",
  "gamma;": "γ",
  "Gcirc;": "Ĝ",
  "gcirc;": "ĝ",
  "gescc;": "⪩",
  "gimel;": "ℷ",
  "gneqq;": "≩",
  "gnsim;": "⋧",
  "grave;": "`",
  "gsime;": "⪎",
  "gsiml;": "⪐",
  "gtcir;": "⩺",
  "gtdot;": "⋗",
  "Hacek;": "ˇ",
  "harrw;": "↭",
  "Hcirc;": "Ĥ",
  "hcirc;": "ĥ",
  "hoarr;": "⇿",
  Iacute: "Í",
  iacute: "í",
  "Icirc;": "Î",
  "icirc;": "î",
  "iexcl;": "¡",
  Igrave: "Ì",
  igrave: "ì",
  "iiint;": "∭",
  "iiota;": "℩",
  "IJlig;": "Ĳ",
  "ijlig;": "ĳ",
  "Imacr;": "Ī",
  "imacr;": "ī",
  "image;": "ℑ",
  "imath;": "ı",
  "imped;": "Ƶ",
  "infin;": "∞",
  "Iogon;": "Į",
  "iogon;": "į",
  "iprod;": "⨼",
  iquest: "¿",
  "isinE;": "⋹",
  "isins;": "⋴",
  "isinv;": "∈",
  "Iukcy;": "І",
  "iukcy;": "і",
  "Jcirc;": "Ĵ",
  "jcirc;": "ĵ",
  "jmath;": "ȷ",
  "Jukcy;": "Є",
  "jukcy;": "є",
  "Kappa;": "Κ",
  "kappa;": "κ",
  "lAarr;": "⇚",
  "langd;": "⦑",
  "laquo;": "«",
  "larrb;": "⇤",
  "lates;": "⪭︀",
  "lBarr;": "⤎",
  "lbarr;": "⤌",
  "lbbrk;": "❲",
  "lbrke;": "⦋",
  "lceil;": "⌈",
  "ldquo;": "“",
  "lescc;": "⪨",
  "lhard;": "↽",
  "lharu;": "↼",
  "lhblk;": "▄",
  "llarr;": "⇇",
  "lltri;": "◺",
  "lneqq;": "≨",
  "lnsim;": "⋦",
  "loang;": "⟬",
  "loarr;": "⇽",
  "lobrk;": "⟦",
  "lopar;": "⦅",
  "lrarr;": "⇆",
  "lrhar;": "⇋",
  "lrtri;": "⊿",
  "lsime;": "⪍",
  "lsimg;": "⪏",
  "lsquo;": "‘",
  "ltcir;": "⩹",
  "ltdot;": "⋖",
  "ltrie;": "⊴",
  "ltrif;": "◂",
  "mdash;": "—",
  "mDDot;": "∺",
  "micro;": "µ",
  middot: "·",
  "minus;": "−",
  "mumap;": "⊸",
  "nabla;": "∇",
  "napid;": "≋̸",
  "napos;": "ŉ",
  "natur;": "♮",
  "nbump;": "≎̸",
  "ncong;": "≇",
  "ndash;": "–",
  "neArr;": "⇗",
  "nearr;": "↗",
  "nedot;": "≐̸",
  "nesim;": "≂̸",
  "ngeqq;": "≧̸",
  "ngsim;": "≵",
  "nhArr;": "⇎",
  "nharr;": "↮",
  "nhpar;": "⫲",
  "nlArr;": "⇍",
  "nlarr;": "↚",
  "nleqq;": "≦̸",
  "nless;": "≮",
  "nlsim;": "≴",
  "nltri;": "⋪",
  "notin;": "∉",
  "notni;": "∌",
  "npart;": "∂̸",
  "nprec;": "⊀",
  "nrArr;": "⇏",
  "nrarr;": "↛",
  "nrtri;": "⋫",
  "nsime;": "≄",
  "nsmid;": "∤",
  "nspar;": "∦",
  "nsubE;": "⫅̸",
  "nsube;": "⊈",
  "nsucc;": "⊁",
  "nsupE;": "⫆̸",
  "nsupe;": "⊉",
  Ntilde: "Ñ",
  ntilde: "ñ",
  "numsp;": " ",
  "nvsim;": "∼⃒",
  "nwArr;": "⇖",
  "nwarr;": "↖",
  Oacute: "Ó",
  oacute: "ó",
  "Ocirc;": "Ô",
  "ocirc;": "ô",
  "odash;": "⊝",
  "OElig;": "Œ",
  "oelig;": "œ",
  "ofcir;": "⦿",
  Ograve: "Ò",
  ograve: "ò",
  "ohbar;": "⦵",
  "olarr;": "↺",
  "olcir;": "⦾",
  "oline;": "‾",
  "Omacr;": "Ō",
  "omacr;": "ō",
  "Omega;": "Ω",
  "omega;": "ω",
  "operp;": "⦹",
  "oplus;": "⊕",
  "orarr;": "↻",
  "order;": "ℴ",
  Oslash: "Ø",
  oslash: "ø",
  Otilde: "Õ",
  otilde: "õ",
  "ovbar;": "⌽",
  "parsl;": "⫽",
  "phone;": "☎",
  "plusb;": "⊞",
  "pluse;": "⩲",
  plusmn: "±",
  "pound;": "£",
  "prcue;": "≼",
  "Prime;": "″",
  "prime;": "′",
  "prnap;": "⪹",
  "prsim;": "≾",
  "quest;": "?",
  "rAarr;": "⇛",
  "radic;": "√",
  "rangd;": "⦒",
  "range;": "⦥",
  "raquo;": "»",
  "rarrb;": "⇥",
  "rarrc;": "⤳",
  "rarrw;": "↝",
  "ratio;": "∶",
  "RBarr;": "⤐",
  "rBarr;": "⤏",
  "rbarr;": "⤍",
  "rbbrk;": "❳",
  "rbrke;": "⦌",
  "rceil;": "⌉",
  "rdquo;": "”",
  "reals;": "ℝ",
  "rhard;": "⇁",
  "rharu;": "⇀",
  "rlarr;": "⇄",
  "rlhar;": "⇌",
  "rnmid;": "⫮",
  "roang;": "⟭",
  "roarr;": "⇾",
  "robrk;": "⟧",
  "ropar;": "⦆",
  "rrarr;": "⇉",
  "rsquo;": "’",
  "rtrie;": "⊵",
  "rtrif;": "▸",
  "sbquo;": "‚",
  "sccue;": "≽",
  "Scirc;": "Ŝ",
  "scirc;": "ŝ",
  "scnap;": "⪺",
  "scsim;": "≿",
  "sdotb;": "⊡",
  "sdote;": "⩦",
  "seArr;": "⇘",
  "searr;": "↘",
  "setmn;": "∖",
  "sharp;": "♯",
  "Sigma;": "Σ",
  "sigma;": "σ",
  "simeq;": "≃",
  "simgE;": "⪠",
  "simlE;": "⪟",
  "simne;": "≆",
  "slarr;": "←",
  "smile;": "⌣",
  "smtes;": "⪬︀",
  "sqcap;": "⊓",
  "sqcup;": "⊔",
  "sqsub;": "⊏",
  "sqsup;": "⊐",
  "srarr;": "→",
  "starf;": "★",
  "strns;": "¯",
  "subnE;": "⫋",
  "subne;": "⊊",
  "supnE;": "⫌",
  "supne;": "⊋",
  "swArr;": "⇙",
  "swarr;": "↙",
  "szlig;": "ß",
  "Theta;": "Θ",
  "theta;": "θ",
  "thkap;": "≈",
  "THORN;": "Þ",
  "thorn;": "þ",
  "Tilde;": "∼",
  "tilde;": "˜",
  "times;": "×",
  "TRADE;": "™",
  "trade;": "™",
  "trisb;": "⧍",
  "TSHcy;": "Ћ",
  "tshcy;": "ћ",
  "twixt;": "≬",
  Uacute: "Ú",
  uacute: "ú",
  "Ubrcy;": "Ў",
  "ubrcy;": "ў",
  "Ucirc;": "Û",
  "ucirc;": "û",
  "udarr;": "⇅",
  "udhar;": "⥮",
  Ugrave: "Ù",
  ugrave: "ù",
  "uharl;": "↿",
  "uharr;": "↾",
  "uhblk;": "▀",
  "ultri;": "◸",
  "Umacr;": "Ū",
  "umacr;": "ū",
  "Union;": "⋃",
  "Uogon;": "Ų",
  "uogon;": "ų",
  "uplus;": "⊎",
  "upsih;": "ϒ",
  "UpTee;": "⊥",
  "Uring;": "Ů",
  "uring;": "ů",
  "urtri;": "◹",
  "utdot;": "⋰",
  "utrif;": "▴",
  "uuarr;": "⇈",
  "varpi;": "ϖ",
  "vBarv;": "⫩",
  "VDash;": "⊫",
  "Vdash;": "⊩",
  "vDash;": "⊨",
  "vdash;": "⊢",
  "veeeq;": "≚",
  "vltri;": "⊲",
  "vnsub;": "⊂⃒",
  "vnsup;": "⊃⃒",
  "vprop;": "∝",
  "vrtri;": "⊳",
  "Wcirc;": "Ŵ",
  "wcirc;": "ŵ",
  "Wedge;": "⋀",
  "wedge;": "∧",
  "xcirc;": "◯",
  "xdtri;": "▽",
  "xhArr;": "⟺",
  "xharr;": "⟷",
  "xlArr;": "⟸",
  "xlarr;": "⟵",
  "xodot;": "⨀",
  "xrArr;": "⟹",
  "xrarr;": "⟶",
  "xutri;": "△",
  Yacute: "Ý",
  yacute: "ý",
  "Ycirc;": "Ŷ",
  "ycirc;": "ŷ",
  "Aacute;": "Á",
  "aacute;": "á",
  "Abreve;": "Ă",
  "abreve;": "ă",
  "Agrave;": "À",
  "agrave;": "à",
  "andand;": "⩕",
  "angmsd;": "∡",
  "angsph;": "∢",
  "apacir;": "⩯",
  "approx;": "≈",
  "Assign;": "≔",
  "Atilde;": "Ã",
  "atilde;": "ã",
  "barvee;": "⊽",
  "Barwed;": "⌆",
  "barwed;": "⌅",
  "becaus;": "∵",
  "bernou;": "ℬ",
  "bigcap;": "⋂",
  "bigcup;": "⋃",
  "bigvee;": "⋁",
  "bkarow;": "⤍",
  "bottom;": "⊥",
  "bowtie;": "⋈",
  "boxbox;": "⧉",
  "bprime;": "‵",
  "brvbar;": "¦",
  "bullet;": "•",
  "Bumpeq;": "≎",
  "bumpeq;": "≏",
  "Cacute;": "Ć",
  "cacute;": "ć",
  "capand;": "⩄",
  "capcap;": "⩋",
  "capcup;": "⩇",
  "capdot;": "⩀",
  "Ccaron;": "Č",
  "ccaron;": "č",
  "Ccedil;": "Ç",
  "ccedil;": "ç",
  "circeq;": "≗",
  "cirmid;": "⫯",
  "Colone;": "⩴",
  "colone;": "≔",
  "commat;": "@",
  "compfn;": "∘",
  "Conint;": "∯",
  "conint;": "∮",
  "coprod;": "∐",
  "copysr;": "℗",
  "cularr;": "↶",
  "CupCap;": "≍",
  "cupcap;": "⩆",
  "cupcup;": "⩊",
  "cupdot;": "⊍",
  "curarr;": "↷",
  "curren;": "¤",
  "cylcty;": "⌭",
  "Dagger;": "‡",
  "dagger;": "†",
  "daleth;": "ℸ",
  "Dcaron;": "Ď",
  "dcaron;": "ď",
  "dfisht;": "⥿",
  "divide;": "÷",
  "divonx;": "⋇",
  "dlcorn;": "⌞",
  "dlcrop;": "⌍",
  "dollar;": "$",
  "DotDot;": "⃜",
  "drcorn;": "⌟",
  "drcrop;": "⌌",
  "Dstrok;": "Đ",
  "dstrok;": "đ",
  "Eacute;": "É",
  "eacute;": "é",
  "easter;": "⩮",
  "Ecaron;": "Ě",
  "ecaron;": "ě",
  "ecolon;": "≕",
  "Egrave;": "È",
  "egrave;": "è",
  "egsdot;": "⪘",
  "elsdot;": "⪗",
  "emptyv;": "∅",
  "emsp13;": " ",
  "emsp14;": " ",
  "eparsl;": "⧣",
  "eqcirc;": "≖",
  "equals;": "=",
  "equest;": "≟",
  "Exists;": "∃",
  "female;": "♀",
  "ffilig;": "ﬃ",
  "ffllig;": "ﬄ",
  "ForAll;": "∀",
  "forall;": "∀",
  "frac12;": "½",
  "frac13;": "⅓",
  "frac14;": "¼",
  "frac15;": "⅕",
  "frac16;": "⅙",
  "frac18;": "⅛",
  "frac23;": "⅔",
  "frac25;": "⅖",
  "frac34;": "¾",
  "frac35;": "⅗",
  "frac38;": "⅜",
  "frac45;": "⅘",
  "frac56;": "⅚",
  "frac58;": "⅝",
  "frac78;": "⅞",
  "gacute;": "ǵ",
  "Gammad;": "Ϝ",
  "gammad;": "ϝ",
  "Gbreve;": "Ğ",
  "gbreve;": "ğ",
  "Gcedil;": "Ģ",
  "gesdot;": "⪀",
  "gesles;": "⪔",
  "gtlPar;": "⦕",
  "gtrarr;": "⥸",
  "gtrdot;": "⋗",
  "gtrsim;": "≳",
  "hairsp;": " ",
  "hamilt;": "ℋ",
  "HARDcy;": "Ъ",
  "hardcy;": "ъ",
  "hearts;": "♥",
  "hellip;": "…",
  "hercon;": "⊹",
  "homtht;": "∻",
  "horbar;": "―",
  "hslash;": "ℏ",
  "Hstrok;": "Ħ",
  "hstrok;": "ħ",
  "hybull;": "⁃",
  "hyphen;": "‐",
  "Iacute;": "Í",
  "iacute;": "í",
  "Igrave;": "Ì",
  "igrave;": "ì",
  "iiiint;": "⨌",
  "iinfin;": "⧜",
  "incare;": "℅",
  "inodot;": "ı",
  "intcal;": "⊺",
  "iquest;": "¿",
  "isinsv;": "⋳",
  "Itilde;": "Ĩ",
  "itilde;": "ĩ",
  "Jsercy;": "Ј",
  "jsercy;": "ј",
  "kappav;": "ϰ",
  "Kcedil;": "Ķ",
  "kcedil;": "ķ",
  "kgreen;": "ĸ",
  "Lacute;": "Ĺ",
  "lacute;": "ĺ",
  "lagran;": "ℒ",
  "Lambda;": "Λ",
  "lambda;": "λ",
  "langle;": "⟨",
  "larrfs;": "⤝",
  "larrhk;": "↩",
  "larrlp;": "↫",
  "larrpl;": "⤹",
  "larrtl;": "↢",
  "lAtail;": "⤛",
  "latail;": "⤙",
  "lbrace;": "{",
  "lbrack;": "[",
  "Lcaron;": "Ľ",
  "lcaron;": "ľ",
  "Lcedil;": "Ļ",
  "lcedil;": "ļ",
  "ldquor;": "„",
  "lesdot;": "⩿",
  "lesges;": "⪓",
  "lfisht;": "⥼",
  "lfloor;": "⌊",
  "lharul;": "⥪",
  "llhard;": "⥫",
  "Lmidot;": "Ŀ",
  "lmidot;": "ŀ",
  "lmoust;": "⎰",
  "loplus;": "⨭",
  "lowast;": "∗",
  "lowbar;": "_",
  "lparlt;": "⦓",
  "lrhard;": "⥭",
  "lsaquo;": "‹",
  "lsquor;": "‚",
  "Lstrok;": "Ł",
  "lstrok;": "ł",
  "lthree;": "⋋",
  "ltimes;": "⋉",
  "ltlarr;": "⥶",
  "ltrPar;": "⦖",
  "mapsto;": "↦",
  "marker;": "▮",
  "mcomma;": "⨩",
  "midast;": "*",
  "midcir;": "⫰",
  "middot;": "·",
  "minusb;": "⊟",
  "minusd;": "∸",
  "mnplus;": "∓",
  "models;": "⊧",
  "mstpos;": "∾",
  "Nacute;": "Ń",
  "nacute;": "ń",
  "nbumpe;": "≏̸",
  "Ncaron;": "Ň",
  "ncaron;": "ň",
  "Ncedil;": "Ņ",
  "ncedil;": "ņ",
  "nearhk;": "⤤",
  "nequiv;": "≢",
  "nesear;": "⤨",
  "nexist;": "∄",
  "nltrie;": "⋬",
  "notinE;": "⋹̸",
  "nparsl;": "⫽⃥",
  "nprcue;": "⋠",
  "nrarrc;": "⤳̸",
  "nrarrw;": "↝̸",
  "nrtrie;": "⋭",
  "nsccue;": "⋡",
  "nsimeq;": "≄",
  "Ntilde;": "Ñ",
  "ntilde;": "ñ",
  "numero;": "№",
  "nVDash;": "⊯",
  "nVdash;": "⊮",
  "nvDash;": "⊭",
  "nvdash;": "⊬",
  "nvHarr;": "⤄",
  "nvlArr;": "⤂",
  "nvrArr;": "⤃",
  "nwarhk;": "⤣",
  "nwnear;": "⤧",
  "Oacute;": "Ó",
  "oacute;": "ó",
  "Odblac;": "Ő",
  "odblac;": "ő",
  "odsold;": "⦼",
  "Ograve;": "Ò",
  "ograve;": "ò",
  "ominus;": "⊖",
  "origof;": "⊶",
  "Oslash;": "Ø",
  "oslash;": "ø",
  "Otilde;": "Õ",
  "otilde;": "õ",
  "Otimes;": "⨷",
  "otimes;": "⊗",
  "parsim;": "⫳",
  "percnt;": "%",
  "period;": ".",
  "permil;": "‰",
  "phmmat;": "ℳ",
  "planck;": "ℏ",
  "plankv;": "ℏ",
  "plusdo;": "∔",
  "plusdu;": "⨥",
  "plusmn;": "±",
  "preceq;": "⪯",
  "primes;": "ℙ",
  "prnsim;": "⋨",
  "propto;": "∝",
  "prurel;": "⊰",
  "puncsp;": " ",
  "qprime;": "⁗",
  "Racute;": "Ŕ",
  "racute;": "ŕ",
  "rangle;": "⟩",
  "rarrap;": "⥵",
  "rarrfs;": "⤞",
  "rarrhk;": "↪",
  "rarrlp;": "↬",
  "rarrpl;": "⥅",
  "Rarrtl;": "⤖",
  "rarrtl;": "↣",
  "rAtail;": "⤜",
  "ratail;": "⤚",
  "rbrace;": "}",
  "rbrack;": "]",
  "Rcaron;": "Ř",
  "rcaron;": "ř",
  "Rcedil;": "Ŗ",
  "rcedil;": "ŗ",
  "rdquor;": "”",
  "rfisht;": "⥽",
  "rfloor;": "⌋",
  "rharul;": "⥬",
  "rmoust;": "⎱",
  "roplus;": "⨮",
  "rpargt;": "⦔",
  "rsaquo;": "›",
  "rsquor;": "’",
  "rthree;": "⋌",
  "rtimes;": "⋊",
  "Sacute;": "Ś",
  "sacute;": "ś",
  "Scaron;": "Š",
  "scaron;": "š",
  "Scedil;": "Ş",
  "scedil;": "ş",
  "scnsim;": "⋩",
  "searhk;": "⤥",
  "seswar;": "⤩",
  "sfrown;": "⌢",
  "SHCHcy;": "Щ",
  "shchcy;": "щ",
  "sigmaf;": "ς",
  "sigmav;": "ς",
  "simdot;": "⩪",
  "smashp;": "⨳",
  "SOFTcy;": "Ь",
  "softcy;": "ь",
  "solbar;": "⌿",
  "spades;": "♠",
  "sqcaps;": "⊓︀",
  "sqcups;": "⊔︀",
  "sqsube;": "⊑",
  "sqsupe;": "⊒",
  "Square;": "□",
  "square;": "□",
  "squarf;": "▪",
  "ssetmn;": "∖",
  "ssmile;": "⌣",
  "sstarf;": "⋆",
  "subdot;": "⪽",
  "Subset;": "⋐",
  "subset;": "⊂",
  "subsim;": "⫇",
  "subsub;": "⫕",
  "subsup;": "⫓",
  "succeq;": "⪰",
  "supdot;": "⪾",
  "Supset;": "⋑",
  "supset;": "⊃",
  "supsim;": "⫈",
  "supsub;": "⫔",
  "supsup;": "⫖",
  "swarhk;": "⤦",
  "swnwar;": "⤪",
  "target;": "⌖",
  "Tcaron;": "Ť",
  "tcaron;": "ť",
  "Tcedil;": "Ţ",
  "tcedil;": "ţ",
  "telrec;": "⌕",
  "there4;": "∴",
  "thetav;": "ϑ",
  "thinsp;": " ",
  "thksim;": "∼",
  "timesb;": "⊠",
  "timesd;": "⨰",
  "topbot;": "⌶",
  "topcir;": "⫱",
  "tprime;": "‴",
  "tridot;": "◬",
  "Tstrok;": "Ŧ",
  "tstrok;": "ŧ",
  "Uacute;": "Ú",
  "uacute;": "ú",
  "Ubreve;": "Ŭ",
  "ubreve;": "ŭ",
  "Udblac;": "Ű",
  "udblac;": "ű",
  "ufisht;": "⥾",
  "Ugrave;": "Ù",
  "ugrave;": "ù",
  "ulcorn;": "⌜",
  "ulcrop;": "⌏",
  "urcorn;": "⌝",
  "urcrop;": "⌎",
  "Utilde;": "Ũ",
  "utilde;": "ũ",
  "vangrt;": "⦜",
  "varphi;": "ϕ",
  "varrho;": "ϱ",
  "Vdashl;": "⫦",
  "veebar;": "⊻",
  "vellip;": "⋮",
  "Verbar;": "‖",
  "verbar;": "|",
  "vsubnE;": "⫋︀",
  "vsubne;": "⊊︀",
  "vsupnE;": "⫌︀",
  "vsupne;": "⊋︀",
  "Vvdash;": "⊪",
  "wedbar;": "⩟",
  "wedgeq;": "≙",
  "weierp;": "℘",
  "wreath;": "≀",
  "xoplus;": "⨁",
  "xotime;": "⨂",
  "xsqcup;": "⨆",
  "xuplus;": "⨄",
  "xwedge;": "⋀",
  "Yacute;": "Ý",
  "yacute;": "ý",
  "Zacute;": "Ź",
  "zacute;": "ź",
  "Zcaron;": "Ž",
  "zcaron;": "ž",
  "zeetrf;": "ℨ",
  "alefsym;": "ℵ",
  "angrtvb;": "⊾",
  "angzarr;": "⍼",
  "asympeq;": "≍",
  "backsim;": "∽",
  "Because;": "∵",
  "because;": "∵",
  "bemptyv;": "⦰",
  "between;": "≬",
  "bigcirc;": "◯",
  "bigodot;": "⨀",
  "bigstar;": "★",
  "bnequiv;": "≡⃥",
  "boxplus;": "⊞",
  "Cayleys;": "ℭ",
  "Cconint;": "∰",
  "ccupssm;": "⩐",
  "Cedilla;": "¸",
  "cemptyv;": "⦲",
  "cirscir;": "⧂",
  "coloneq;": "≔",
  "congdot;": "⩭",
  "cudarrl;": "⤸",
  "cudarrr;": "⤵",
  "cularrp;": "⤽",
  "curarrm;": "⤼",
  "dbkarow;": "⤏",
  "ddagger;": "‡",
  "ddotseq;": "⩷",
  "demptyv;": "⦱",
  "Diamond;": "⋄",
  "diamond;": "⋄",
  "digamma;": "ϝ",
  "dotplus;": "∔",
  "DownTee;": "⊤",
  "dwangle;": "⦦",
  "Element;": "∈",
  "Epsilon;": "Ε",
  "epsilon;": "ε",
  "eqcolon;": "≕",
  "equivDD;": "⩸",
  "gesdoto;": "⪂",
  "gtquest;": "⩼",
  "gtrless;": "≷",
  "harrcir;": "⥈",
  "Implies;": "⇒",
  "intprod;": "⨼",
  "isindot;": "⋵",
  "larrbfs;": "⤟",
  "larrsim;": "⥳",
  "lbrksld;": "⦏",
  "lbrkslu;": "⦍",
  "ldrdhar;": "⥧",
  "LeftTee;": "⊣",
  "lesdoto;": "⪁",
  "lessdot;": "⋖",
  "lessgtr;": "≶",
  "lesssim;": "≲",
  "lotimes;": "⨴",
  "lozenge;": "◊",
  "ltquest;": "⩻",
  "luruhar;": "⥦",
  "maltese;": "✠",
  "minusdu;": "⨪",
  "napprox;": "≉",
  "natural;": "♮",
  "nearrow;": "↗",
  "NewLine;": "\n",
  "nexists;": "∄",
  "NoBreak;": "⁠",
  "notinva;": "∉",
  "notinvb;": "⋷",
  "notinvc;": "⋶",
  "NotLess;": "≮",
  "notniva;": "∌",
  "notnivb;": "⋾",
  "notnivc;": "⋽",
  "npolint;": "⨔",
  "npreceq;": "⪯̸",
  "nsqsube;": "⋢",
  "nsqsupe;": "⋣",
  "nsubset;": "⊂⃒",
  "nsucceq;": "⪰̸",
  "nsupset;": "⊃⃒",
  "nvinfin;": "⧞",
  "nvltrie;": "⊴⃒",
  "nvrtrie;": "⊵⃒",
  "nwarrow;": "↖",
  "olcross;": "⦻",
  "Omicron;": "Ο",
  "omicron;": "ο",
  "orderof;": "ℴ",
  "orslope;": "⩗",
  "OverBar;": "‾",
  "pertenk;": "‱",
  "planckh;": "ℎ",
  "pluscir;": "⨢",
  "plussim;": "⨦",
  "plustwo;": "⨧",
  "precsim;": "≾",
  "Product;": "∏",
  "quatint;": "⨖",
  "questeq;": "≟",
  "rarrbfs;": "⤠",
  "rarrsim;": "⥴",
  "rbrksld;": "⦎",
  "rbrkslu;": "⦐",
  "rdldhar;": "⥩",
  "realine;": "ℛ",
  "rotimes;": "⨵",
  "ruluhar;": "⥨",
  "searrow;": "↘",
  "simplus;": "⨤",
  "simrarr;": "⥲",
  "subedot;": "⫃",
  "submult;": "⫁",
  "subplus;": "⪿",
  "subrarr;": "⥹",
  "succsim;": "≿",
  "supdsub;": "⫘",
  "supedot;": "⫄",
  "suphsol;": "⟉",
  "suphsub;": "⫗",
  "suplarr;": "⥻",
  "supmult;": "⫂",
  "supplus;": "⫀",
  "swarrow;": "↙",
  "topfork;": "⫚",
  "triplus;": "⨹",
  "tritime;": "⨻",
  "UpArrow;": "↑",
  "Uparrow;": "⇑",
  "uparrow;": "↑",
  "Upsilon;": "Υ",
  "upsilon;": "υ",
  "uwangle;": "⦧",
  "vzigzag;": "⦚",
  "zigrarr;": "⇝",
  "andslope;": "⩘",
  "angmsdaa;": "⦨",
  "angmsdab;": "⦩",
  "angmsdac;": "⦪",
  "angmsdad;": "⦫",
  "angmsdae;": "⦬",
  "angmsdaf;": "⦭",
  "angmsdag;": "⦮",
  "angmsdah;": "⦯",
  "angrtvbd;": "⦝",
  "approxeq;": "≊",
  "awconint;": "∳",
  "backcong;": "≌",
  "barwedge;": "⌅",
  "bbrktbrk;": "⎶",
  "bigoplus;": "⨁",
  "bigsqcup;": "⨆",
  "biguplus;": "⨄",
  "bigwedge;": "⋀",
  "boxminus;": "⊟",
  "boxtimes;": "⊠",
  "bsolhsub;": "⟈",
  "capbrcup;": "⩉",
  "circledR;": "®",
  "circledS;": "Ⓢ",
  "cirfnint;": "⨐",
  "clubsuit;": "♣",
  "cupbrcap;": "⩈",
  "curlyvee;": "⋎",
  "cwconint;": "∲",
  "DDotrahd;": "⤑",
  "doteqdot;": "≑",
  "DotEqual;": "≐",
  "dotminus;": "∸",
  "drbkarow;": "⤐",
  "dzigrarr;": "⟿",
  "elinters;": "⏧",
  "emptyset;": "∅",
  "eqvparsl;": "⧥",
  "fpartint;": "⨍",
  "geqslant;": "⩾",
  "gesdotol;": "⪄",
  "gnapprox;": "⪊",
  "hksearow;": "⤥",
  "hkswarow;": "⤦",
  "imagline;": "ℐ",
  "imagpart;": "ℑ",
  "infintie;": "⧝",
  "integers;": "ℤ",
  "Integral;": "∫",
  "intercal;": "⊺",
  "intlarhk;": "⨗",
  "laemptyv;": "⦴",
  "ldrushar;": "⥋",
  "leqslant;": "⩽",
  "lesdotor;": "⪃",
  "LessLess;": "⪡",
  "llcorner;": "⌞",
  "lnapprox;": "⪉",
  "lrcorner;": "⌟",
  "lurdshar;": "⥊",
  "mapstoup;": "↥",
  "multimap;": "⊸",
  "naturals;": "ℕ",
  "ncongdot;": "⩭̸",
  "NotEqual;": "≠",
  "notindot;": "⋵̸",
  "NotTilde;": "≁",
  "otimesas;": "⨶",
  "parallel;": "∥",
  "PartialD;": "∂",
  "plusacir;": "⨣",
  "pointint;": "⨕",
  "Precedes;": "≺",
  "precneqq;": "⪵",
  "precnsim;": "⋨",
  "profalar;": "⌮",
  "profline;": "⌒",
  "profsurf;": "⌓",
  "raemptyv;": "⦳",
  "realpart;": "ℜ",
  "RightTee;": "⊢",
  "rppolint;": "⨒",
  "rtriltri;": "⧎",
  "scpolint;": "⨓",
  "setminus;": "∖",
  "shortmid;": "∣",
  "smeparsl;": "⧤",
  "sqsubset;": "⊏",
  "sqsupset;": "⊐",
  "subseteq;": "⊆",
  "Succeeds;": "≻",
  "succneqq;": "⪶",
  "succnsim;": "⋩",
  "SuchThat;": "∋",
  "Superset;": "⊃",
  "supseteq;": "⊇",
  "thetasym;": "ϑ",
  "thicksim;": "∼",
  "timesbar;": "⨱",
  "triangle;": "▵",
  "triminus;": "⨺",
  "trpezium;": "⏢",
  "Uarrocir;": "⥉",
  "ulcorner;": "⌜",
  "UnderBar;": "_",
  "urcorner;": "⌝",
  "varkappa;": "ϰ",
  "varsigma;": "ς",
  "vartheta;": "ϑ",
  "backprime;": "‵",
  "backsimeq;": "⋍",
  "Backslash;": "∖",
  "bigotimes;": "⨂",
  "CenterDot;": "·",
  "centerdot;": "·",
  "checkmark;": "✓",
  "CircleDot;": "⊙",
  "complexes;": "ℂ",
  "Congruent;": "≡",
  "Coproduct;": "∐",
  "dotsquare;": "⊡",
  "DoubleDot;": "¨",
  "DownArrow;": "↓",
  "Downarrow;": "⇓",
  "downarrow;": "↓",
  "DownBreve;": "̑",
  "gtrapprox;": "⪆",
  "gtreqless;": "⋛",
  "gvertneqq;": "≩︀",
  "heartsuit;": "♥",
  "HumpEqual;": "≏",
  "LeftArrow;": "←",
  "Leftarrow;": "⇐",
  "leftarrow;": "←",
  "LeftFloor;": "⌊",
  "lesseqgtr;": "⋚",
  "LessTilde;": "≲",
  "lvertneqq;": "≨︀",
  "Mellintrf;": "ℳ",
  "MinusPlus;": "∓",
  "ngeqslant;": "⩾̸",
  "nleqslant;": "⩽̸",
  "NotCupCap;": "≭",
  "NotExists;": "∄",
  "NotSubset;": "⊂⃒",
  "nparallel;": "∦",
  "nshortmid;": "∤",
  "nsubseteq;": "⊈",
  "nsupseteq;": "⊉",
  "OverBrace;": "⏞",
  "pitchfork;": "⋔",
  "PlusMinus;": "±",
  "rationals;": "ℚ",
  "spadesuit;": "♠",
  "subseteqq;": "⫅",
  "subsetneq;": "⊊",
  "supseteqq;": "⫆",
  "supsetneq;": "⊋",
  "Therefore;": "∴",
  "therefore;": "∴",
  "ThinSpace;": " ",
  "triangleq;": "≜",
  "TripleDot;": "⃛",
  "UnionPlus;": "⊎",
  "varpropto;": "∝",
  "Bernoullis;": "ℬ",
  "circledast;": "⊛",
  "CirclePlus;": "⊕",
  "complement;": "∁",
  "curlywedge;": "⋏",
  "eqslantgtr;": "⪖",
  "EqualTilde;": "≂",
  "Fouriertrf;": "ℱ",
  "gtreqqless;": "⪌",
  "ImaginaryI;": "ⅈ",
  "Laplacetrf;": "ℒ",
  "LeftVector;": "↼",
  "lessapprox;": "⪅",
  "lesseqqgtr;": "⪋",
  "Lleftarrow;": "⇚",
  "lmoustache;": "⎰",
  "longmapsto;": "⟼",
  "mapstodown;": "↧",
  "mapstoleft;": "↤",
  "nLeftarrow;": "⇍",
  "nleftarrow;": "↚",
  "NotElement;": "∉",
  "NotGreater;": "≯",
  "nsubseteqq;": "⫅̸",
  "nsupseteqq;": "⫆̸",
  "precapprox;": "⪷",
  "Proportion;": "∷",
  "RightArrow;": "→",
  "Rightarrow;": "⇒",
  "rightarrow;": "→",
  "RightFloor;": "⌋",
  "rmoustache;": "⎱",
  "sqsubseteq;": "⊑",
  "sqsupseteq;": "⊒",
  "subsetneqq;": "⫋",
  "succapprox;": "⪸",
  "supsetneqq;": "⫌",
  "ThickSpace;": "  ",
  "TildeEqual;": "≃",
  "TildeTilde;": "≈",
  "UnderBrace;": "⏟",
  "UpArrowBar;": "⤒",
  "UpTeeArrow;": "↥",
  "upuparrows;": "⇈",
  "varepsilon;": "ϵ",
  "varnothing;": "∅",
  "backepsilon;": "϶",
  "blacksquare;": "▪",
  "circledcirc;": "⊚",
  "circleddash;": "⊝",
  "CircleMinus;": "⊖",
  "CircleTimes;": "⊗",
  "curlyeqprec;": "⋞",
  "curlyeqsucc;": "⋟",
  "diamondsuit;": "♦",
  "eqslantless;": "⪕",
  "Equilibrium;": "⇌",
  "expectation;": "ℰ",
  "GreaterLess;": "≷",
  "LeftCeiling;": "⌈",
  "LessGreater;": "≶",
  "MediumSpace;": " ",
  "NotLessLess;": "≪̸",
  "NotPrecedes;": "⊀",
  "NotSucceeds;": "⊁",
  "NotSuperset;": "⊃⃒",
  "nRightarrow;": "⇏",
  "nrightarrow;": "↛",
  "OverBracket;": "⎴",
  "preccurlyeq;": "≼",
  "precnapprox;": "⪹",
  "quaternions;": "ℍ",
  "RightVector;": "⇀",
  "Rrightarrow;": "⇛",
  "RuleDelayed;": "⧴",
  "SmallCircle;": "∘",
  "SquareUnion;": "⊔",
  "straightphi;": "ϕ",
  "SubsetEqual;": "⊆",
  "succcurlyeq;": "≽",
  "succnapprox;": "⪺",
  "thickapprox;": "≈",
  "UpDownArrow;": "↕",
  "Updownarrow;": "⇕",
  "updownarrow;": "↕",
  "VerticalBar;": "∣",
  "blacklozenge;": "⧫",
  "DownArrowBar;": "⤓",
  "DownTeeArrow;": "↧",
  "ExponentialE;": "ⅇ",
  "exponentiale;": "ⅇ",
  "GreaterEqual;": "≥",
  "GreaterTilde;": "≳",
  "HilbertSpace;": "ℋ",
  "HumpDownHump;": "≎",
  "Intersection;": "⋂",
  "LeftArrowBar;": "⇤",
  "LeftTeeArrow;": "↤",
  "LeftTriangle;": "⊲",
  "LeftUpVector;": "↿",
  "NotCongruent;": "≢",
  "NotHumpEqual;": "≏̸",
  "NotLessEqual;": "≰",
  "NotLessTilde;": "≴",
  "Proportional;": "∝",
  "RightCeiling;": "⌉",
  "risingdotseq;": "≓",
  "RoundImplies;": "⥰",
  "ShortUpArrow;": "↑",
  "SquareSubset;": "⊏",
  "triangledown;": "▿",
  "triangleleft;": "◃",
  "UnderBracket;": "⎵",
  "varsubsetneq;": "⊊︀",
  "varsupsetneq;": "⊋︀",
  "VerticalLine;": "|",
  "ApplyFunction;": "⁡",
  "bigtriangleup;": "△",
  "blacktriangle;": "▴",
  "DifferentialD;": "ⅆ",
  "divideontimes;": "⋇",
  "DoubleLeftTee;": "⫤",
  "DoubleUpArrow;": "⇑",
  "fallingdotseq;": "≒",
  "hookleftarrow;": "↩",
  "leftarrowtail;": "↢",
  "leftharpoonup;": "↼",
  "LeftTeeVector;": "⥚",
  "LeftVectorBar;": "⥒",
  "LessFullEqual;": "≦",
  "LongLeftArrow;": "⟵",
  "Longleftarrow;": "⟸",
  "longleftarrow;": "⟵",
  "looparrowleft;": "↫",
  "measuredangle;": "∡",
  "NotEqualTilde;": "≂̸",
  "NotTildeEqual;": "≄",
  "NotTildeTilde;": "≉",
  "ntriangleleft;": "⋪",
  "Poincareplane;": "ℌ",
  "PrecedesEqual;": "⪯",
  "PrecedesTilde;": "≾",
  "RightArrowBar;": "⇥",
  "RightTeeArrow;": "↦",
  "RightTriangle;": "⊳",
  "RightUpVector;": "↾",
  "shortparallel;": "∥",
  "smallsetminus;": "∖",
  "SucceedsEqual;": "⪰",
  "SucceedsTilde;": "≿",
  "SupersetEqual;": "⊇",
  "triangleright;": "▹",
  "UpEquilibrium;": "⥮",
  "upharpoonleft;": "↿",
  "varsubsetneqq;": "⫋︀",
  "varsupsetneqq;": "⫌︀",
  "VerticalTilde;": "≀",
  "VeryThinSpace;": " ",
  "curvearrowleft;": "↶",
  "DiacriticalDot;": "˙",
  "doublebarwedge;": "⌆",
  "DoubleRightTee;": "⊨",
  "downdownarrows;": "⇊",
  "DownLeftVector;": "↽",
  "GreaterGreater;": "⪢",
  "hookrightarrow;": "↪",
  "HorizontalLine;": "─",
  "InvisibleComma;": "⁣",
  "InvisibleTimes;": "⁢",
  "LeftDownVector;": "⇃",
  "leftleftarrows;": "⇇",
  "LeftRightArrow;": "↔",
  "Leftrightarrow;": "⇔",
  "leftrightarrow;": "↔",
  "leftthreetimes;": "⋋",
  "LessSlantEqual;": "⩽",
  "LongRightArrow;": "⟶",
  "Longrightarrow;": "⟹",
  "longrightarrow;": "⟶",
  "looparrowright;": "↬",
  "LowerLeftArrow;": "↙",
  "NestedLessLess;": "≪",
  "NotGreaterLess;": "≹",
  "NotLessGreater;": "≸",
  "NotSubsetEqual;": "⊈",
  "NotVerticalBar;": "∤",
  "nshortparallel;": "∦",
  "ntriangleright;": "⋫",
  "OpenCurlyQuote;": "‘",
  "ReverseElement;": "∋",
  "rightarrowtail;": "↣",
  "rightharpoonup;": "⇀",
  "RightTeeVector;": "⥛",
  "RightVectorBar;": "⥓",
  "ShortDownArrow;": "↓",
  "ShortLeftArrow;": "←",
  "SquareSuperset;": "⊐",
  "TildeFullEqual;": "≅",
  "trianglelefteq;": "⊴",
  "upharpoonright;": "↾",
  "UpperLeftArrow;": "↖",
  "ZeroWidthSpace;": "​",
  "bigtriangledown;": "▽",
  "circlearrowleft;": "↺",
  "CloseCurlyQuote;": "’",
  "ContourIntegral;": "∮",
  "curvearrowright;": "↷",
  "DoubleDownArrow;": "⇓",
  "DoubleLeftArrow;": "⇐",
  "downharpoonleft;": "⇃",
  "DownRightVector;": "⇁",
  "leftharpoondown;": "↽",
  "leftrightarrows;": "⇆",
  "LeftRightVector;": "⥎",
  "LeftTriangleBar;": "⧏",
  "LeftUpTeeVector;": "⥠",
  "LeftUpVectorBar;": "⥘",
  "LowerRightArrow;": "↘",
  "nLeftrightarrow;": "⇎",
  "nleftrightarrow;": "↮",
  "NotGreaterEqual;": "≱",
  "NotGreaterTilde;": "≵",
  "NotHumpDownHump;": "≎̸",
  "NotLeftTriangle;": "⋪",
  "NotSquareSubset;": "⊏̸",
  "ntrianglelefteq;": "⋬",
  "OverParenthesis;": "⏜",
  "RightDownVector;": "⇂",
  "rightleftarrows;": "⇄",
  "rightsquigarrow;": "↝",
  "rightthreetimes;": "⋌",
  "ShortRightArrow;": "→",
  "straightepsilon;": "ϵ",
  "trianglerighteq;": "⊵",
  "UpperRightArrow;": "↗",
  "vartriangleleft;": "⊲",
  "circlearrowright;": "↻",
  "DiacriticalAcute;": "´",
  "DiacriticalGrave;": "`",
  "DiacriticalTilde;": "˜",
  "DoubleRightArrow;": "⇒",
  "DownArrowUpArrow;": "⇵",
  "downharpoonright;": "⇂",
  "EmptySmallSquare;": "◻",
  "GreaterEqualLess;": "⋛",
  "GreaterFullEqual;": "≧",
  "LeftAngleBracket;": "⟨",
  "LeftUpDownVector;": "⥑",
  "LessEqualGreater;": "⋚",
  "NonBreakingSpace;": " ",
  "NotPrecedesEqual;": "⪯̸",
  "NotRightTriangle;": "⋫",
  "NotSucceedsEqual;": "⪰̸",
  "NotSucceedsTilde;": "≿̸",
  "NotSupersetEqual;": "⊉",
  "ntrianglerighteq;": "⋭",
  "rightharpoondown;": "⇁",
  "rightrightarrows;": "⇉",
  "RightTriangleBar;": "⧐",
  "RightUpTeeVector;": "⥜",
  "RightUpVectorBar;": "⥔",
  "twoheadleftarrow;": "↞",
  "UnderParenthesis;": "⏝",
  "UpArrowDownArrow;": "⇅",
  "vartriangleright;": "⊳",
  "blacktriangledown;": "▾",
  "blacktriangleleft;": "◂",
  "DoubleUpDownArrow;": "⇕",
  "DoubleVerticalBar;": "∥",
  "DownLeftTeeVector;": "⥞",
  "DownLeftVectorBar;": "⥖",
  "FilledSmallSquare;": "◼",
  "GreaterSlantEqual;": "⩾",
  "LeftDoubleBracket;": "⟦",
  "LeftDownTeeVector;": "⥡",
  "LeftDownVectorBar;": "⥙",
  "leftrightharpoons;": "⇋",
  "LeftTriangleEqual;": "⊴",
  "NegativeThinSpace;": "​",
  "NotGreaterGreater;": "≫̸",
  "NotLessSlantEqual;": "⩽̸",
  "NotNestedLessLess;": "⪡̸",
  "NotReverseElement;": "∌",
  "NotSquareSuperset;": "⊐̸",
  "NotTildeFullEqual;": "≇",
  "RightAngleBracket;": "⟩",
  "rightleftharpoons;": "⇌",
  "RightUpDownVector;": "⥏",
  "SquareSubsetEqual;": "⊑",
  "twoheadrightarrow;": "↠",
  "VerticalSeparator;": "❘",
  "blacktriangleright;": "▸",
  "DownRightTeeVector;": "⥟",
  "DownRightVectorBar;": "⥗",
  "LongLeftRightArrow;": "⟷",
  "Longleftrightarrow;": "⟺",
  "longleftrightarrow;": "⟷",
  "NegativeThickSpace;": "​",
  "NotLeftTriangleBar;": "⧏̸",
  "PrecedesSlantEqual;": "≼",
  "ReverseEquilibrium;": "⇋",
  "RightDoubleBracket;": "⟧",
  "RightDownTeeVector;": "⥝",
  "RightDownVectorBar;": "⥕",
  "RightTriangleEqual;": "⊵",
  "SquareIntersection;": "⊓",
  "SucceedsSlantEqual;": "≽",
  "DoubleLongLeftArrow;": "⟸",
  "DownLeftRightVector;": "⥐",
  "LeftArrowRightArrow;": "⇆",
  "leftrightsquigarrow;": "↭",
  "NegativeMediumSpace;": "​",
  "NotGreaterFullEqual;": "≧̸",
  "NotRightTriangleBar;": "⧐̸",
  "RightArrowLeftArrow;": "⇄",
  "SquareSupersetEqual;": "⊒",
  "CapitalDifferentialD;": "ⅅ",
  "DoubleLeftRightArrow;": "⇔",
  "DoubleLongRightArrow;": "⟹",
  "EmptyVerySmallSquare;": "▫",
  "NestedGreaterGreater;": "≫",
  "NotDoubleVerticalBar;": "∦",
  "NotGreaterSlantEqual;": "⩾̸",
  "NotLeftTriangleEqual;": "⋬",
  "NotSquareSubsetEqual;": "⋢",
  "OpenCurlyDoubleQuote;": "“",
  "ReverseUpEquilibrium;": "⥯",
  "CloseCurlyDoubleQuote;": "”",
  "DoubleContourIntegral;": "∯",
  "FilledVerySmallSquare;": "▪",
  "NegativeVeryThinSpace;": "​",
  "NotPrecedesSlantEqual;": "⋠",
  "NotRightTriangleEqual;": "⋭",
  "NotSucceedsSlantEqual;": "⋡",
  "DiacriticalDoubleAcute;": "˝",
  "NotSquareSupersetEqual;": "⋣",
  "NotNestedGreaterGreater;": "⪢̸",
  "ClockwiseContourIntegral;": "∲",
  "DoubleLongLeftRightArrow;": "⟺",
  "CounterClockwiseContourIntegral;": "∳"
};
let aM;
const ZPe = (e, t) => {
  let r = 0;
  const i = e.length;
  let n = "";
  function s(a) {
    r += a, e = e.slice(a);
  }
  for (; r < i; ) {
    const a = /&(?:#x?)?/i.exec(e);
    if (!a || r + a.index >= i) {
      const o = i - r;
      n += e.slice(0, o), s(o);
      break;
    }
    if (n += e.slice(0, a.index), s(a.index), a[0] === "&") {
      let o = "", l;
      if (/[0-9a-z]/i.test(e[1])) {
        aM || (aM = Object.keys(PV).reduce(
          (u, c) => Math.max(u, c.length),
          0
        ));
        for (let u = aM; !l && u > 0; --u)
          o = e.slice(1, 1 + u), l = PV[o];
        if (l) {
          const u = o.endsWith(";");
          t && !u && /[=a-z0-9]/i.test(e[o.length + 1] || "") ? (n += "&" + o, s(1 + o.length)) : (n += l, s(1 + o.length));
        } else
          n += "&" + o, s(1 + o.length);
      } else
        n += "&", s(1);
    } else {
      const o = a[0] === "&#x", u = (o ? /^&#x([0-9a-f]+);?/i : /^&#([0-9]+);?/).exec(e);
      if (!u)
        n += a[0], s(a[0].length);
      else {
        let c = Number.parseInt(u[1], o ? 16 : 10);
        c === 0 || c > 1114111 || c >= 55296 && c <= 57343 ? c = 65533 : c >= 64976 && c <= 65007 || (c & 65534) === 65534 || (c >= 1 && c <= 8 || c === 11 || c >= 13 && c <= 31 || c >= 127 && c <= 159) && (c = ewe[c] || c), n += String.fromCodePoint(c), s(u[0].length);
      }
    }
  }
  return n;
}, ewe = {
  128: 8364,
  130: 8218,
  131: 402,
  132: 8222,
  133: 8230,
  134: 8224,
  135: 8225,
  136: 710,
  137: 8240,
  138: 352,
  139: 8249,
  140: 338,
  142: 381,
  145: 8216,
  146: 8217,
  147: 8220,
  148: 8221,
  149: 8226,
  150: 8211,
  151: 8212,
  152: 732,
  153: 8482,
  154: 353,
  155: 8250,
  156: 339,
  158: 382,
  159: 376
}, twe = /* @__PURE__ */ Es(
  "style,iframe,script,noscript",
  !0
), Iv = {
  isVoidTag: Goe,
  isNativeTag: (e) => dxe(e) || mxe(e),
  isPreTag: (e) => e === "pre",
  decodeEntities: ZPe,
  isBuiltInComponent: (e) => {
    if (Sh(e, "Transition"))
      return lC;
    if (Sh(e, "TransitionGroup"))
      return c$;
  },
  // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher
  getNamespace(e, t) {
    let r = t ? t.ns : 0;
    if (t && r === 2)
      if (t.tag === "annotation-xml") {
        if (e === "svg")
          return 1;
        t.props.some(
          (i) => i.type === 6 && i.name === "encoding" && i.value != null && (i.value.content === "text/html" || i.value.content === "application/xhtml+xml")
        ) && (r = 0);
      } else
        /^m(?:[ions]|text)$/.test(t.tag) && e !== "mglyph" && e !== "malignmark" && (r = 0);
    else
      t && r === 1 && (t.tag === "foreignObject" || t.tag === "desc" || t.tag === "title") && (r = 0);
    if (r === 0) {
      if (e === "svg")
        return 1;
      if (e === "math")
        return 2;
    }
    return r;
  },
  // https://html.spec.whatwg.org/multipage/parsing.html#parsing-html-fragments
  getTextMode({ tag: e, ns: t }) {
    if (t === 0) {
      if (e === "textarea" || e === "title")
        return 1;
      if (twe(e))
        return 2;
    }
    return 0;
  }
}, Aue = (e) => {
  e.type === 1 && e.props.forEach((t, r) => {
    t.type === 6 && t.name === "style" && t.value && (e.props[r] = {
      type: 7,
      name: "bind",
      arg: Pr("style", !0, t.loc),
      exp: rwe(t.value.content, t.loc),
      modifiers: [],
      loc: t.loc
    });
  });
}, rwe = (e, t) => {
  const r = Koe(e);
  return Pr(
    JSON.stringify(r),
    !1,
    t,
    3
  );
};
function Bl(e, t) {
  return Ni(
    e,
    t,
    iwe
  );
}
const iwe = {
  [53]: "v-html is missing expression.",
  [54]: "v-html will override element children.",
  [55]: "v-text is missing expression.",
  [56]: "v-text will override element children.",
  [57]: "v-model can only be used on <input>, <textarea> and <select> elements.",
  [58]: "v-model argument is not supported on plain elements.",
  [59]: "v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.",
  [60]: "Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.",
  [61]: "v-show is missing expression.",
  [62]: "<Transition> expects exactly one child element or component.",
  [63]: "Tags with side effect (<script> and <style>) are ignored in client component templates."
}, nwe = (e, t, r) => {
  const { exp: i, loc: n } = e;
  return i || r.onError(
    Bl(53, n)
  ), t.children.length && (r.onError(
    Bl(54, n)
  ), t.children.length = 0), {
    props: [
      mn(
        Pr("innerHTML", !0, n),
        i || Pr("", !0)
      )
    ]
  };
}, swe = (e, t, r) => {
  const { exp: i, loc: n } = e;
  return i || r.onError(
    Bl(55, n)
  ), t.children.length && (r.onError(
    Bl(56, n)
  ), t.children.length = 0), {
    props: [
      mn(
        Pr("textContent", !0),
        i ? To(i, r) > 0 ? i : In(
          r.helperString(xT),
          [i],
          n
        ) : Pr("", !0)
      )
    ]
  };
}, awe = (e, t, r) => {
  const i = t$(e, t, r);
  if (!i.props.length || t.tagType === 1)
    return i;
  e.arg && r.onError(
    Bl(
      58,
      e.arg.loc
    )
  );
  function n() {
    const o = Yd(t, "value");
    o && r.onError(
      Bl(
        60,
        o.loc
      )
    );
  }
  const { tag: s } = t, a = r.isCustomElement(s);
  if (s === "input" || s === "textarea" || s === "select" || a) {
    let o = s$, l = !1;
    if (s === "input" || a) {
      const u = Yd(t, "type");
      if (u) {
        if (u.type === 7)
          o = dw;
        else if (u.value)
          switch (u.value.content) {
            case "radio":
              o = i$;
              break;
            case "checkbox":
              o = n$;
              break;
            case "file":
              l = !0, r.onError(
                Bl(
                  59,
                  e.loc
                )
              );
              break;
            default:
              n();
              break;
          }
      } else
        Dle(t) ? o = dw : n();
    } else
      s === "select" ? o = a$ : n();
    l || (i.needRuntime = r.helper(o));
  } else
    r.onError(
      Bl(
        57,
        e.loc
      )
    );
  return i.props = i.props.filter(
    (o) => !(o.key.type === 4 && o.key.content === "modelValue")
  ), i;
}, owe = /* @__PURE__ */ Es("passive,once,capture"), lwe = /* @__PURE__ */ Es(
  // event propagation management
  "stop,prevent,self,ctrl,shift,alt,meta,exact,middle"
), uwe = /* @__PURE__ */ Es("left,right"), Cue = /* @__PURE__ */ Es(
  "onkeyup,onkeydown,onkeypress",
  !0
), cwe = (e, t, r, i) => {
  const n = [], s = [], a = [];
  for (let o = 0; o < t.length; o++) {
    const l = t[o];
    owe(l) ? a.push(l) : uwe(l) ? pa(e) ? Cue(e.content) ? n.push(l) : s.push(l) : (n.push(l), s.push(l)) : lwe(l) ? s.push(l) : n.push(l);
  }
  return {
    keyModifiers: n,
    nonKeyModifiers: s,
    eventOptionModifiers: a
  };
}, wV = (e, t) => pa(e) && e.content.toLowerCase() === "onclick" ? Pr(t, !0) : e.type !== 4 ? aa([
  "(",
  e,
  ') === "onClick" ? "'.concat(t, '" : ('),
  e,
  ")"
]) : e, pwe = (e, t, r) => e$(e, t, r, (i) => {
  const { modifiers: n } = e;
  if (!n.length)
    return i;
  let { key: s, value: a } = i.props[0];
  const { keyModifiers: o, nonKeyModifiers: l, eventOptionModifiers: u } = cwe(s, n, r, e.loc);
  if (l.includes("right") && (s = wV(s, "onContextmenu")), l.includes("middle") && (s = wV(s, "onMouseup")), l.length && (a = In(r.helper(o$), [
    a,
    JSON.stringify(l)
  ])), o.length && // if event name is dynamic, always wrap with keys guard
  (!pa(s) || Cue(s.content)) && (a = In(r.helper(l$), [
    a,
    JSON.stringify(o)
  ])), u.length) {
    const c = u.map(Vd).join("");
    s = pa(s) ? Pr("".concat(s.content).concat(c), !0) : aa(["(", s, ') + "'.concat(c, '"')]);
  }
  return {
    props: [mn(s, a)]
  };
}), fwe = (e, t, r) => {
  const { exp: i, loc: n } = e;
  return i || r.onError(
    Bl(61, n)
  ), {
    props: [],
    needRuntime: r.helper(u$)
  };
}, hwe = (e, t) => {
  if (e.type === 1 && e.tagType === 1 && t.isBuiltInComponent(e.tag) === lC)
    return () => {
      if (!e.children.length)
        return;
      _ue(e) && t.onError(
        Bl(
          62,
          {
            start: e.children[0].loc.start,
            end: e.children[e.children.length - 1].loc.end,
            source: ""
          }
        )
      );
      const i = e.children[0];
      if (i.type === 1)
        for (const n of i.props)
          n.type === 7 && n.name === "show" && e.props.push({
            type: 6,
            name: "persisted",
            value: void 0,
            loc: e.loc
          });
    };
};
function _ue(e) {
  const t = e.children = e.children.filter(
    (i) => i.type !== 3 && !(i.type === 2 && !i.content.trim())
  ), r = t[0];
  return t.length !== 1 || r.type === 11 || r.type === 9 && r.branches.some(_ue);
}
const dwe = /__VUE_EXP_START__(.*?)__VUE_EXP_END__/g, mwe = (e, t, r) => {
  if (t.scopes.vSlot > 0)
    return;
  let i = 0, n = 0;
  const s = [], a = (l) => {
    if (i >= 20 || n >= 5) {
      const u = In(t.helper(UA), [
        JSON.stringify(
          s.map((c) => p$(c, t)).join("")
        ).replace(dwe, '" + $1 + "'),
        // the 2nd argument indicates the number of DOM nodes this static vnode
        // will insert / hydrate
        String(s.length)
      ]);
      if (CV(s[0], u, t), s.length > 1) {
        for (let f = 1; f < s.length; f++)
          CV(s[f], null, t);
        const c = s.length - 1;
        return e.splice(l - s.length + 1, c), c;
      }
    }
    return 0;
  };
  let o = 0;
  for (; o < e.length; o++) {
    const l = e[o];
    if (ywe(l)) {
      const c = l, f = vwe(c);
      if (f) {
        i += f[0], n += f[1], s.push(c);
        continue;
      }
    }
    o -= a(o), i = 0, n = 0, s.length = 0;
  }
  a(o);
}, ywe = (e) => (e.type === 1 && e.tagType === 0 || e.type == 12) && e.codegenNode && e.codegenNode.type === 4 && e.codegenNode.hoisted, gwe = /^(data|aria)-/, AV = (e, t) => (t === 0 ? bxe(e) : t === 1 ? vxe(e) : !1) || gwe.test(e), CV = (e, t, r) => {
  const i = e.codegenNode.hoisted;
  r.hoists[r.hoists.indexOf(i)] = t;
}, bwe = /* @__PURE__ */ Es(
  "caption,thead,tr,th,tbody,td,tfoot,colgroup,col"
);
function vwe(e) {
  if (e.type === 1 && bwe(e.tag))
    return !1;
  if (e.type === 12)
    return [1, 0];
  let t = 1, r = e.props.length > 0 ? 1 : 0, i = !1;
  const n = () => (i = !0, !1);
  function s(a) {
    for (let o = 0; o < a.props.length; o++) {
      const l = a.props[o];
      if (l.type === 6 && !AV(l.name, a.ns) || l.type === 7 && l.name === "bind" && (l.arg && (l.arg.type === 8 || l.arg.isStatic && !AV(l.arg.content, a.ns)) || l.exp && (l.exp.type === 8 || l.exp.constType < 3)))
        return n();
    }
    for (let o = 0; o < a.children.length; o++) {
      t++;
      const l = a.children[o];
      if (l.type === 1 && (l.props.length > 0 && r++, s(l), i))
        return !1;
    }
    return !0;
  }
  return s(e) ? [t, r] : !1;
}
function p$(e, t) {
  if (Ii(e))
    return e;
  if (ST(e))
    return "";
  switch (e.type) {
    case 1:
      return Twe(e, t);
    case 2:
      return Ed(e.content);
    case 3:
      return "<!--".concat(Ed(e.content), "-->");
    case 5:
      return Ed(s4(Fd(e.content)));
    case 8:
      return Ed(Fd(e));
    case 12:
      return p$(e.content, t);
    default:
      return "";
  }
}
function Twe(e, t) {
  let r = "<".concat(e.tag), i = "";
  for (let n = 0; n < e.props.length; n++) {
    const s = e.props[n];
    if (s.type === 6)
      r += " ".concat(s.name), s.value && (r += '="'.concat(Ed(s.value.content), '"'));
    else if (s.type === 7)
      if (s.name === "bind") {
        const a = s.exp;
        if (a.content[0] === "_") {
          r += " ".concat(s.arg.content, '="__VUE_EXP_START__').concat(a.content, '__VUE_EXP_END__"');
          continue;
        }
        if (gxe(s.arg.content) && a.content === "false")
          continue;
        let o = Fd(a);
        if (o != null) {
          const l = s.arg && s.arg.content;
          l === "class" ? o = zoe(o) : l === "style" && (o = cxe(Hoe(o))), r += " ".concat(s.arg.content, '="').concat(Ed(
            o
          ), '"');
        }
      } else
        s.name === "html" ? i = Fd(s.exp) : s.name === "text" && (i = Ed(
          s4(Fd(s.exp))
        ));
  }
  if (t.scopeId && (r += " ".concat(t.scopeId)), r += ">", i)
    r += i;
  else
    for (let n = 0; n < e.children.length; n++)
      r += p$(e.children[n], t);
  return Goe(e.tag) || (r += "</".concat(e.tag, ">")), r;
}
function Fd(e) {
  if (e.type === 4)
    return new Function("return (".concat(e.content, ")"))();
  {
    let t = "";
    return e.children.forEach((r) => {
      Ii(r) || ST(r) || (r.type === 2 ? t += r.content : r.type === 5 ? t += s4(Fd(r.content)) : t += Fd(r));
    }), t;
  }
}
const Swe = (e, t) => {
  e.type === 1 && e.tagType === 0 && (e.tag === "script" || e.tag === "style") && (t.onError(
    Bl(
      63,
      e.loc
    )
  ), t.removeNode());
}, f$ = [
  Aue,
  hwe
], h$ = {
  cloak: wue,
  html: nwe,
  text: swe,
  model: awe,
  // override compiler-core
  on: pwe,
  // override compiler-core
  show: fwe
};
function xwe(e, t = {}) {
  return Pue(
    e,
    gf({}, Iv, t, {
      nodeTransforms: [
        // ignore <script> and <tag>
        // this is not put inside DOMNodeTransforms because that list is used
        // by compiler-ssr to generate vnode fallback branches
        Swe,
        ...f$,
        ...t.nodeTransforms || []
      ],
      directiveTransforms: gf(
        {},
        h$,
        t.directiveTransforms || {}
      ),
      transformHoist: mwe
    })
  );
}
function Ewe(e, t = {}) {
  return B4(e, gf({}, Iv, t));
}
var Pwe = /* @__PURE__ */ Object.freeze({
  __proto__: null,
  BASE_TRANSITION: o4,
  CAMELIZE: QP,
  CAPITALIZE: Qoe,
  CREATE_BLOCK: l4,
  CREATE_COMMENT: cg,
  CREATE_ELEMENT_BLOCK: u4,
  CREATE_ELEMENT_VNODE: jA,
  CREATE_SLOTS: p4,
  CREATE_STATIC: UA,
  CREATE_TEXT: $A,
  CREATE_VNODE: FA,
  DOMDirectiveTransforms: h$,
  DOMNodeTransforms: f$,
  FRAGMENT: jy,
  GUARD_REACTIVE_PROPS: pg,
  IS_MEMO_SAME: f4,
  IS_REF: xv,
  KEEP_ALIVE: yv,
  MERGE_PROPS: vv,
  NORMALIZE_CLASS: HA,
  NORMALIZE_PROPS: $y,
  NORMALIZE_STYLE: KA,
  OPEN_BLOCK: Rh,
  POP_SCOPE_ID: YA,
  PUSH_SCOPE_ID: GA,
  RENDER_LIST: WA,
  RENDER_SLOT: c4,
  RESOLVE_COMPONENT: gv,
  RESOLVE_DIRECTIVE: qA,
  RESOLVE_DYNAMIC_COMPONENT: bv,
  RESOLVE_FILTER: Joe,
  SET_BLOCK_TRACKING: Tv,
  SUSPENSE: BA,
  TELEPORT: xy,
  TO_DISPLAY_STRING: xT,
  TO_HANDLERS: zA,
  TO_HANDLER_KEY: ZP,
  TRANSITION: lC,
  TRANSITION_GROUP: c$,
  TS_NODE_TYPES: cue,
  UNREF: Sv,
  V_MODEL_CHECKBOX: n$,
  V_MODEL_DYNAMIC: dw,
  V_MODEL_RADIO: i$,
  V_MODEL_SELECT: a$,
  V_MODEL_TEXT: s$,
  V_ON_WITH_KEYS: l$,
  V_ON_WITH_MODIFIERS: o$,
  V_SHOW: u$,
  WITH_CTX: XA,
  WITH_DIRECTIVES: VA,
  WITH_MEMO: JA,
  advancePositionWithClone: Gd,
  advancePositionWithMutation: qy,
  assert: KB,
  baseCompile: Pue,
  baseParse: B4,
  buildDirectiveArgs: Sue,
  buildProps: Z4,
  buildSlots: yue,
  checkCompatEnabled: B1e,
  compile: xwe,
  convertToBlock: QA,
  createArrayExpression: fg,
  createAssignmentExpression: wxe,
  createBlockStatement: ele,
  createCacheExpression: Zoe,
  createCallExpression: In,
  createCompilerError: Ni,
  createCompoundExpression: aa,
  createConditionalExpression: ew,
  createDOMCompilerError: Bl,
  createForLoopParams: hw,
  createFunctionExpression: Wd,
  createIfStatement: Pxe,
  createInterpolation: xxe,
  createObjectExpression: vo,
  createObjectProperty: mn,
  createReturnStatement: Cxe,
  createRoot: d4,
  createSequenceExpression: Axe,
  createSimpleExpression: Pr,
  createStructuralDirectiveTransform: $4,
  createTemplateLiteral: Exe,
  createTransformContext: qle,
  createVNodeCall: Uy,
  extractIdentifiers: vh,
  findDir: ja,
  findProp: Yd,
  generate: eue,
  generateCodeFrame: axe,
  getBaseTransformPreset: r$,
  getConstantType: To,
  getInnerRange: M4,
  getMemoedVNodeCall: Mle,
  getVNodeBlockHelper: Kd,
  getVNodeHelper: Hd,
  hasDynamicKeyVBind: Dle,
  hasScopeRef: Ma,
  helperNameMap: Fa,
  injectProp: wv,
  isBuiltInType: Sh,
  isCoreComponent: D4,
  isFunctionType: lue,
  isInDestructureAssignment: Y4,
  isMemberExpression: L4,
  isMemberExpressionBrowser: D1e,
  isMemberExpressionNode: Nle,
  isReferencedIdentifier: sue,
  isSimpleIdentifier: Bh,
  isSlotOutlet: Pv,
  isStaticArgOf: xh,
  isStaticExp: pa,
  isStaticProperty: X4,
  isStaticPropertyKey: uue,
  isTemplateNode: Vy,
  isText: nP,
  isVSlot: R4,
  locStub: Hn,
  noopDirectiveTransform: wue,
  parse: Ewe,
  parserOptions: Iv,
  processExpression: So,
  processFor: hue,
  processIf: fue,
  processSlotOutlet: xue,
  registerRuntimeHelpers: h4,
  resolveComponentType: Tue,
  stringifyExpression: J4,
  toValidAssetId: Av,
  trackSlotScopes: due,
  trackVForSlotScopes: mue,
  transform: j4,
  transformBind: Eue,
  transformElement: vue,
  transformExpression: pue,
  transformModel: t$,
  transformOn: e$,
  transformStyle: Aue,
  traverseNode: PT,
  walkBlockDeclarations: oue,
  walkFunctionParams: aue,
  walkIdentifiers: G4,
  warnDeprecation: Rle
});
function Iue(e, t) {
  for (var r = 0, i = e.length - 1; i >= 0; i--) {
    var n = e[i];
    n === "." ? e.splice(i, 1) : n === ".." ? (e.splice(i, 1), r++) : r && (e.splice(i, 1), r--);
  }
  if (t)
    for (; r--; r)
      e.unshift("..");
  return e;
}
var wwe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/, d$ = function(e) {
  return wwe.exec(e).slice(1);
};
function mw() {
  for (var e = "", t = !1, r = arguments.length - 1; r >= -1 && !t; r--) {
    var i = r >= 0 ? arguments[r] : "/";
    if (typeof i != "string")
      throw new TypeError("Arguments to path.resolve must be strings");
    if (!i)
      continue;
    e = i + "/" + e, t = i.charAt(0) === "/";
  }
  return e = Iue(g$(e.split("/"), function(n) {
    return !!n;
  }), !t).join("/"), (t ? "/" : "") + e || ".";
}
function m$(e) {
  var t = y$(e), r = Awe(e, -1) === "/";
  return e = Iue(g$(e.split("/"), function(i) {
    return !!i;
  }), !t).join("/"), !e && !t && (e = "."), e && r && (e += "/"), (t ? "/" : "") + e;
}
function y$(e) {
  return e.charAt(0) === "/";
}
function kue() {
  var e = Array.prototype.slice.call(arguments, 0);
  return m$(g$(e, function(t, r) {
    if (typeof t != "string")
      throw new TypeError("Arguments to path.join must be strings");
    return t;
  }).join("/"));
}
function Oue(e, t) {
  e = mw(e).substr(1), t = mw(t).substr(1);
  function r(u) {
    for (var c = 0; c < u.length && u[c] === ""; c++)
      ;
    for (var f = u.length - 1; f >= 0 && u[f] === ""; f--)
      ;
    return c > f ? [] : u.slice(c, f - c + 1);
  }
  for (var i = r(e.split("/")), n = r(t.split("/")), s = Math.min(i.length, n.length), a = s, o = 0; o < s; o++)
    if (i[o] !== n[o]) {
      a = o;
      break;
    }
  for (var l = [], o = a; o < i.length; o++)
    l.push("..");
  return l = l.concat(n.slice(a)), l.join("/");
}
var Nue = "/", Due = ":";
function Lue(e) {
  var t = d$(e), r = t[0], i = t[1];
  return !r && !i ? "." : (i && (i = i.substr(0, i.length - 1)), r + i);
}
function Mue(e, t) {
  var r = d$(e)[2];
  return t && r.substr(-1 * t.length) === t && (r = r.substr(0, r.length - t.length)), r;
}
function Rue(e) {
  return d$(e)[3];
}
var kv = {
  extname: Rue,
  basename: Mue,
  dirname: Lue,
  sep: Nue,
  delimiter: Due,
  relative: Oue,
  join: kue,
  isAbsolute: y$,
  normalize: m$,
  resolve: mw
};
function g$(e, t) {
  if (e.filter)
    return e.filter(t);
  for (var r = [], i = 0; i < e.length; i++)
    t(e[i], i, e) && r.push(e[i]);
  return r;
}
var Awe = "ab".substr(-1) === "b" ? function(e, t, r) {
  return e.substr(t, r);
} : function(e, t, r) {
  return t < 0 && (t = e.length + t), e.substr(t, r);
}, Cwe = /* @__PURE__ */ Object.freeze({
  __proto__: null,
  basename: Mue,
  default: kv,
  delimiter: Due,
  dirname: Lue,
  extname: Rue,
  isAbsolute: y$,
  join: kue,
  normalize: m$,
  relative: Oue,
  resolve: mw,
  sep: Nue
});
(kv.posix || kv).normalize;
(kv.posix || kv).join;
function _we(e) {
  return e = e.trim(), e[0] === "'" && e[e.length - 1] === "'" || e[0] === '"' && e[e.length - 1] === '"' ? e.slice(1, -1) : e;
}
const Iwe = /v-bind\s*\(/g;
function kwe(e) {
  const t = [];
  return e.styles.forEach((r) => {
    let i;
    const n = r.content.replace(/\/\*([\s\S]*?)\*\//g, "");
    for (; i = Iwe.exec(n); ) {
      const s = i.index + i[0].length, a = Owe(n, s);
      if (a !== null) {
        const o = _we(n.slice(s, a));
        t.includes(o) || t.push(o);
      }
    }
  }), t;
}
function Owe(e, t) {
  let r = 0, i = 0;
  for (let n = t; n < e.length; n++) {
    const s = e.charAt(n);
    switch (r) {
      case 0:
        if (s === "'")
          r = 1;
        else if (s === '"')
          r = 2;
        else if (s === "(")
          i++;
        else if (s === ")")
          if (i > 0)
            i--;
          else
            return n;
        break;
      case 1:
        s === "'" && (r = 0);
        break;
      case 2:
        s === '"' && (r = 0);
        break;
    }
  }
  return null;
}
function Bue(e = 500) {
  return /* @__PURE__ */ new Map();
}
function Nwe(e, t) {
  return new RegExp(
    // #4274 escape $ since it's a special char in regex
    // (and is the only regex special char that is valid in identifiers)
    "[^\\w$_]".concat(e.replace(/\$/g, "\\$"), "[^\\w$_]")
  ).test(Dwe(t));
}
const _V = Bue();
function Dwe(e) {
  const { content: t, ast: r } = e.template, i = _V.get(t);
  if (i)
    return i;
  let n = "";
  return j4(d4([r]), {
    nodeTransforms: [
      (s) => {
        if (s.type === 1) {
          !Iv.isNativeTag(s.tag) && !Iv.isBuiltInComponent(s.tag) && (n += ",".concat(Dc(s.tag), ",").concat(Vd(Dc(s.tag))));
          for (let a = 0; a < s.props.length; a++) {
            const o = s.props[a];
            o.type === 7 && (qoe(o.name) || (n += ",v".concat(Vd(Dc(o.name)))), o.exp && (n += ",".concat(yw(
              o.exp.content,
              o.name
            ))));
          }
        } else
          s.type === 5 && (n += ",".concat(yw(
            s.content.content
          )));
      }
    ]
  }), n += ";", _V.set(t, n), n;
}
const Lwe = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/;
function yw(e, t) {
  if (/ as\s+\w|<.*>|:/.test(e)) {
    if (t === "slot")
      e = "(".concat(e, ")=>{}");
    else if (t === "on")
      e = "()=>{return ".concat(e, "}");
    else if (t === "for") {
      const n = e.match(Lwe);
      if (n) {
        let [, s, a] = n;
        return s = s.trim().replace(/^\(|\)$/g, ""), yw("(".concat(s, ")=>{}")) + yw(a);
      }
    }
    let r = "";
    const i = Ole(e, { plugins: ["typescript"] });
    return G4(i, (n) => {
      r += "," + n.name;
    }), r;
  }
  return Mwe(e);
}
function Mwe(e) {
  return e.replace(/'[^']*'|"[^"]*"/g, "").replace(/`[^`]+`/g, Rwe);
}
function Rwe(e) {
  const t = e.match(/\${[^}]+}/g);
  return t ? t.map((r) => r.slice(2, -1)).join(",") : "";
}
var Bwe = Object.defineProperty, IV = Object.getOwnPropertySymbols, Fwe = Object.prototype.hasOwnProperty, jwe = Object.prototype.propertyIsEnumerable, kV = (e, t, r) => t in e ? Bwe(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, $we = (e, t) => {
  for (var r in t || (t = {}))
    Fwe.call(t, r) && kV(e, r, t[r]);
  if (IV)
    for (var r of IV(t))
      jwe.call(t, r) && kV(e, r, t[r]);
  return e;
};
const Uwe = "anonymous.vue", OV = Bue();
function myr(e, {
  sourceMap: t = !0,
  filename: r = Uwe,
  sourceRoot: i = "",
  pad: n = !1,
  ignoreEmpty: s = !0,
  compiler: a = Pwe
} = {}) {
  const o = e + t + r + i + n + a.parse, l = OV.get(o);
  if (l)
    return l;
  const u = {
    filename: r,
    source: e,
    template: null,
    script: null,
    scriptSetup: null,
    styles: [],
    customBlocks: [],
    cssVars: [],
    slotted: !1,
    shouldForceReload: (g) => Gwe(g, u)
  }, c = [];
  if (a.parse(e, {
    // there are no components at SFC parsing level
    isNativeTag: () => !0,
    // preserve all whitespaces
    isPreTag: () => !0,
    getTextMode: ({ tag: g, props: y }, v) => !v && g !== "template" || // <template lang="xxx"> should also be treated as raw text
    g === "template" && y.some(
      (T) => T.type === 6 && T.name === "lang" && T.value && T.value.content && T.value.content !== "html"
    ) ? 2 : 0,
    onError: (g) => {
      c.push(g);
    }
  }).children.forEach((g) => {
    if (g.type === 1 && !(s && g.tag !== "template" && zwe(g) && !Kwe(g)))
      switch (g.tag) {
        case "template":
          if (u.template)
            c.push(NV(g));
          else {
            const S = u.template = US(
              g,
              e,
              !1
            );
            if (S.ast = g, S.attrs.functional) {
              const P = new SyntaxError(
                "<template functional> is no longer supported in Vue 3, since functional components no longer have significant performance difference from stateful ones. Just use a normal <template> instead."
              );
              P.loc = g.props.find((x) => x.name === "functional").loc, c.push(P);
            }
          }
          break;
        case "script":
          const y = US(g, e, n), v = !!y.attrs.setup;
          if (v && !u.scriptSetup) {
            u.scriptSetup = y;
            break;
          }
          if (!v && !u.script) {
            u.script = y;
            break;
          }
          c.push(NV(g, v));
          break;
        case "style":
          const T = US(g, e, n);
          T.attrs.vars && c.push(
            new SyntaxError(
              "<style vars> has been replaced by a new proposal: https://github.com/vuejs/rfcs/pull/231"
            )
          ), u.styles.push(T);
          break;
        default:
          u.customBlocks.push(US(g, e, n));
          break;
      }
  }), !u.template && !u.script && !u.scriptSetup && c.push(
    new SyntaxError(
      "At least one <template> or <script> is required in a single file component."
    )
  ), u.scriptSetup && (u.scriptSetup.src && (c.push(
    new SyntaxError(
      '<script setup> cannot use the "src" attribute because its syntax will be ambiguous outside of the component.'
    )
  ), u.scriptSetup = null), u.script && u.script.src && (c.push(
    new SyntaxError(
      '<script> cannot use the "src" attribute when <script setup> is also present because they must be processed together.'
    )
  ), u.script = null)), t) {
    const g = (y) => {
      y && !y.src && (y.map = Wwe(
        r,
        e,
        y.content,
        i,
        !n || y.type === "template" ? y.loc.start.line - 1 : 0
      ));
    };
    g(u.template), g(u.script), u.styles.forEach(g), u.customBlocks.forEach(g);
  }
  u.cssVars = kwe(u);
  const h = /(?:::v-|:)slotted\(/;
  u.slotted = u.styles.some(
    (g) => g.scoped && h.test(g.content)
  );
  const m = {
    descriptor: u,
    errors: c
  };
  return OV.set(o, m), m;
}
function NV(e, t = !1) {
  const r = new SyntaxError(
    "Single file component can contain only one <".concat(e.tag).concat(t ? " setup" : "", "> element")
  );
  return r.loc = e.loc, r;
}
function US(e, t, r) {
  const i = e.tag;
  let { start: n, end: s } = e.loc, a = "";
  if (e.children.length)
    n = e.children[0].loc.start, s = e.children[e.children.length - 1].loc.end, a = t.slice(n.offset, s.offset);
  else {
    const c = e.loc.source.indexOf("</");
    c > -1 && (n = {
      line: n.line,
      column: n.column + c,
      offset: n.offset + c
    }), s = $we({}, n);
  }
  const o = {
    source: a,
    start: n,
    end: s
  }, l = {}, u = {
    type: i,
    content: a,
    loc: o,
    attrs: l
  };
  return r && (u.content = Hwe(t, u, r) + u.content), e.props.forEach((c) => {
    c.type === 6 && (l[c.name] = c.value && c.value.content || !0, c.name === "lang" ? u.lang = c.value && c.value.content : c.name === "src" ? u.src = c.value && c.value.content : i === "style" ? c.name === "scoped" ? u.scoped = !0 : c.name === "module" && (u.module = l[c.name]) : i === "script" && c.name === "setup" && (u.setup = l.setup));
  }), u;
}
const Fue = /\r?\n/g, qwe = /^(?:\/\/)?\s*$/, Vwe = /./g;
function Wwe(e, t, r, i, n) {
  const s = new Zle({
    file: e.replace(/\\/g, "/"),
    sourceRoot: i.replace(/\\/g, "/")
  });
  return s.setSourceContent(e, t), r.split(Fue).forEach((a, o) => {
    if (!qwe.test(a)) {
      const l = o + 1 + n, u = o + 1;
      for (let c = 0; c < a.length; c++)
        /\s/.test(a[c]) || s.addMapping({
          source: e,
          original: {
            line: l,
            column: c
          },
          generated: {
            line: u,
            column: c
          }
        });
    }
  }), JSON.parse(s.toString());
}
function Hwe(e, t, r) {
  if (e = e.slice(0, t.loc.start.offset), r === "space")
    return e.replace(Vwe, " ");
  {
    const i = e.split(Fue).length, n = t.type === "script" && !t.lang ? "//\n" : "\n";
    return Array(i).join(n);
  }
}
function Kwe(e) {
  return e.props.some((t) => t.type !== 6 ? !1 : t.name === "src");
}
function zwe(e) {
  for (let t = 0; t < e.children.length; t++) {
    const r = e.children[t];
    if (r.type !== 2 || r.content.trim() !== "")
      return !1;
  }
  return !0;
}
function Gwe(e, t) {
  if (!t.scriptSetup || t.scriptSetup.lang !== "ts" && t.scriptSetup.lang !== "tsx")
    return !1;
  for (const r in e)
    if (!e[r].isUsedInTemplate && Nwe(r, t))
      return !0;
  return !1;
}
var Fh = typeof global != "undefined" ? global : typeof self != "undefined" ? self : typeof window != "undefined" ? window : {};
/*! https://mths.be/punycode v1.4.1 by @mathias */
var oM = 2147483647, z0 = 36, jue = 1, QB = 26, Ywe = 38, Xwe = 700, Jwe = 72, Qwe = 128, Zwe = "-", eAe = /[^\x20-\x7E]/, tAe = /[\x2E\u3002\uFF0E\uFF61]/g, rAe = {
  overflow: "Overflow: input needs wider integers to process",
  "not-basic": "Illegal input >= 0x80 (not a basic code point)",
  "invalid-input": "Invalid input"
}, lM = z0 - jue, hy = Math.floor, uM = String.fromCharCode;
function DV(e) {
  throw new RangeError(rAe[e]);
}
function iAe(e, t) {
  for (var r = e.length, i = []; r--; )
    i[r] = t(e[r]);
  return i;
}
function nAe(e, t) {
  var r = e.split("@"), i = "";
  r.length > 1 && (i = r[0] + "@", e = r[1]), e = e.replace(tAe, ".");
  var n = e.split("."), s = iAe(n, t).join(".");
  return i + s;
}
function sAe(e) {
  for (var t = [], r = 0, i = e.length, n, s; r < i; )
    n = e.charCodeAt(r++), n >= 55296 && n <= 56319 && r < i ? (s = e.charCodeAt(r++), (s & 64512) == 56320 ? t.push(((n & 1023) << 10) + (s & 1023) + 65536) : (t.push(n), r--)) : t.push(n);
  return t;
}
function LV(e, t) {
  return e + 22 + 75 * (e < 26) - ((t != 0) << 5);
}
function aAe(e, t, r) {
  var i = 0;
  for (e = r ? hy(e / Xwe) : e >> 1, e += hy(e / t); e > lM * QB >> 1; i += z0)
    e = hy(e / lM);
  return hy(i + (lM + 1) * e / (e + Ywe));
}
function oAe(e) {
  var t, r, i, n, s, a, o, l, u, c, f, h = [], m, g, y, v;
  for (e = sAe(e), m = e.length, t = Qwe, r = 0, s = Jwe, a = 0; a < m; ++a)
    f = e[a], f < 128 && h.push(uM(f));
  for (i = n = h.length, n && h.push(Zwe); i < m; ) {
    for (o = oM, a = 0; a < m; ++a)
      f = e[a], f >= t && f < o && (o = f);
    for (g = i + 1, o - t > hy((oM - r) / g) && DV("overflow"), r += (o - t) * g, t = o, a = 0; a < m; ++a)
      if (f = e[a], f < t && ++r > oM && DV("overflow"), f == t) {
        for (l = r, u = z0; c = u <= s ? jue : u >= s + QB ? QB : u - s, !(l < c); u += z0)
          v = l - c, y = z0 - c, h.push(
            uM(LV(c + v % y, 0))
          ), l = hy(v / y);
        h.push(uM(LV(l, 0))), s = aAe(r, g, i == n), r = 0, ++i;
      }
    ++r, ++t;
  }
  return h.join("");
}
function lAe(e) {
  return nAe(e, function(t) {
    return eAe.test(t) ? "xn--" + oAe(t) : t;
  });
}
var sp = [], Pl = [], uAe = typeof Uint8Array != "undefined" ? Uint8Array : Array, b$ = !1;
function $ue() {
  b$ = !0;
  for (var e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", t = 0, r = e.length; t < r; ++t)
    sp[t] = e[t], Pl[e.charCodeAt(t)] = t;
  Pl["-".charCodeAt(0)] = 62, Pl["_".charCodeAt(0)] = 63;
}
function cAe(e) {
  b$ || $ue();
  var t, r, i, n, s, a, o = e.length;
  if (o % 4 > 0)
    throw new Error("Invalid string. Length must be a multiple of 4");
  s = e[o - 2] === "=" ? 2 : e[o - 1] === "=" ? 1 : 0, a = new uAe(o * 3 / 4 - s), i = s > 0 ? o - 4 : o;
  var l = 0;
  for (t = 0, r = 0; t < i; t += 4, r += 3)
    n = Pl[e.charCodeAt(t)] << 18 | Pl[e.charCodeAt(t + 1)] << 12 | Pl[e.charCodeAt(t + 2)] << 6 | Pl[e.charCodeAt(t + 3)], a[l++] = n >> 16 & 255, a[l++] = n >> 8 & 255, a[l++] = n & 255;
  return s === 2 ? (n = Pl[e.charCodeAt(t)] << 2 | Pl[e.charCodeAt(t + 1)] >> 4, a[l++] = n & 255) : s === 1 && (n = Pl[e.charCodeAt(t)] << 10 | Pl[e.charCodeAt(t + 1)] << 4 | Pl[e.charCodeAt(t + 2)] >> 2, a[l++] = n >> 8 & 255, a[l++] = n & 255), a;
}
function pAe(e) {
  return sp[e >> 18 & 63] + sp[e >> 12 & 63] + sp[e >> 6 & 63] + sp[e & 63];
}
function fAe(e, t, r) {
  for (var i, n = [], s = t; s < r; s += 3)
    i = (e[s] << 16) + (e[s + 1] << 8) + e[s + 2], n.push(pAe(i));
  return n.join("");
}
function MV(e) {
  b$ || $ue();
  for (var t, r = e.length, i = r % 3, n = "", s = [], a = 16383, o = 0, l = r - i; o < l; o += a)
    s.push(fAe(e, o, o + a > l ? l : o + a));
  return i === 1 ? (t = e[r - 1], n += sp[t >> 2], n += sp[t << 4 & 63], n += "==") : i === 2 && (t = (e[r - 2] << 8) + e[r - 1], n += sp[t >> 10], n += sp[t >> 4 & 63], n += sp[t << 2 & 63], n += "="), s.push(n), s.join("");
}
function uC(e, t, r, i, n) {
  var s, a, o = n * 8 - i - 1, l = (1 << o) - 1, u = l >> 1, c = -7, f = r ? n - 1 : 0, h = r ? -1 : 1, m = e[t + f];
  for (f += h, s = m & (1 << -c) - 1, m >>= -c, c += o; c > 0; s = s * 256 + e[t + f], f += h, c -= 8)
    ;
  for (a = s & (1 << -c) - 1, s >>= -c, c += i; c > 0; a = a * 256 + e[t + f], f += h, c -= 8)
    ;
  if (s === 0)
    s = 1 - u;
  else {
    if (s === l)
      return a ? NaN : (m ? -1 : 1) * (1 / 0);
    a = a + Math.pow(2, i), s = s - u;
  }
  return (m ? -1 : 1) * a * Math.pow(2, s - i);
}
function Uue(e, t, r, i, n, s) {
  var a, o, l, u = s * 8 - n - 1, c = (1 << u) - 1, f = c >> 1, h = n === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, m = i ? 0 : s - 1, g = i ? 1 : -1, y = t < 0 || t === 0 && 1 / t < 0 ? 1 : 0;
  for (t = Math.abs(t), isNaN(t) || t === 1 / 0 ? (o = isNaN(t) ? 1 : 0, a = c) : (a = Math.floor(Math.log(t) / Math.LN2), t * (l = Math.pow(2, -a)) < 1 && (a--, l *= 2), a + f >= 1 ? t += h / l : t += h * Math.pow(2, 1 - f), t * l >= 2 && (a++, l /= 2), a + f >= c ? (o = 0, a = c) : a + f >= 1 ? (o = (t * l - 1) * Math.pow(2, n), a = a + f) : (o = t * Math.pow(2, f - 1) * Math.pow(2, n), a = 0)); n >= 8; e[r + m] = o & 255, m += g, o /= 256, n -= 8)
    ;
  for (a = a << n | o, u += n; u > 0; e[r + m] = a & 255, m += g, a /= 256, u -= 8)
    ;
  e[r + m - g] |= y * 128;
}
var hAe = {}.toString, que = Array.isArray || function(e) {
  return hAe.call(e) == "[object Array]";
};
/*!
 * The buffer module from node.js, for the browser.
 *
 * @author   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
 * @license  MIT
 */
var dAe = 50;
St.TYPED_ARRAY_SUPPORT = Fh.TYPED_ARRAY_SUPPORT !== void 0 ? Fh.TYPED_ARRAY_SUPPORT : !0;
gw();
function gw() {
  return St.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823;
}
function cf(e, t) {
  if (gw() < t)
    throw new RangeError("Invalid typed array length");
  return St.TYPED_ARRAY_SUPPORT ? (e = new Uint8Array(t), e.__proto__ = St.prototype) : (e === null && (e = new St(t)), e.length = t), e;
}
function St(e, t, r) {
  if (!St.TYPED_ARRAY_SUPPORT && !(this instanceof St))
    return new St(e, t, r);
  if (typeof e == "number") {
    if (typeof t == "string")
      throw new Error(
        "If encoding is specified then the first argument must be a string"
      );
    return v$(this, e);
  }
  return Vue(this, e, t, r);
}
St.poolSize = 8192;
St._augment = function(e) {
  return e.__proto__ = St.prototype, e;
};
function Vue(e, t, r, i) {
  if (typeof t == "number")
    throw new TypeError('"value" argument must not be a number');
  return typeof ArrayBuffer != "undefined" && t instanceof ArrayBuffer ? gAe(e, t, r, i) : typeof t == "string" ? yAe(e, t, r) : bAe(e, t);
}
St.from = function(e, t, r) {
  return Vue(null, e, t, r);
};
St.TYPED_ARRAY_SUPPORT && (St.prototype.__proto__ = Uint8Array.prototype, St.__proto__ = Uint8Array, typeof Symbol != "undefined" && Symbol.species && St[Symbol.species]);
function Wue(e) {
  if (typeof e != "number")
    throw new TypeError('"size" argument must be a number');
  if (e < 0)
    throw new RangeError('"size" argument must not be negative');
}
function mAe(e, t, r, i) {
  return Wue(t), t <= 0 ? cf(e, t) : r !== void 0 ? typeof i == "string" ? cf(e, t).fill(r, i) : cf(e, t).fill(r) : cf(e, t);
}
St.alloc = function(e, t, r) {
  return mAe(null, e, t, r);
};
function v$(e, t) {
  if (Wue(t), e = cf(e, t < 0 ? 0 : T$(t) | 0), !St.TYPED_ARRAY_SUPPORT)
    for (var r = 0; r < t; ++r)
      e[r] = 0;
  return e;
}
St.allocUnsafe = function(e) {
  return v$(null, e);
};
St.allocUnsafeSlow = function(e) {
  return v$(null, e);
};
function yAe(e, t, r) {
  if ((typeof r != "string" || r === "") && (r = "utf8"), !St.isEncoding(r))
    throw new TypeError('"encoding" must be a valid string encoding');
  var i = Hue(t, r) | 0;
  e = cf(e, i);
  var n = e.write(t, r);
  return n !== i && (e = e.slice(0, n)), e;
}
function ZB(e, t) {
  var r = t.length < 0 ? 0 : T$(t.length) | 0;
  e = cf(e, r);
  for (var i = 0; i < r; i += 1)
    e[i] = t[i] & 255;
  return e;
}
function gAe(e, t, r, i) {
  if (t.byteLength, r < 0 || t.byteLength < r)
    throw new RangeError("'offset' is out of bounds");
  if (t.byteLength < r + (i || 0))
    throw new RangeError("'length' is out of bounds");
  return r === void 0 && i === void 0 ? t = new Uint8Array(t) : i === void 0 ? t = new Uint8Array(t, r) : t = new Uint8Array(t, r, i), St.TYPED_ARRAY_SUPPORT ? (e = t, e.__proto__ = St.prototype) : e = ZB(e, t), e;
}
function bAe(e, t) {
  if (dp(t)) {
    var r = T$(t.length) | 0;
    return e = cf(e, r), e.length === 0 || t.copy(e, 0, 0, r), e;
  }
  if (t) {
    if (typeof ArrayBuffer != "undefined" && t.buffer instanceof ArrayBuffer || "length" in t)
      return typeof t.length != "number" || BAe(t.length) ? cf(e, 0) : ZB(e, t);
    if (t.type === "Buffer" && que(t.data))
      return ZB(e, t.data);
  }
  throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.");
}
function T$(e) {
  if (e >= gw())
    throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + gw().toString(16) + " bytes");
  return e | 0;
}
St.isBuffer = FAe;
function dp(e) {
  return !!(e != null && e._isBuffer);
}
St.compare = function(t, r) {
  if (!dp(t) || !dp(r))
    throw new TypeError("Arguments must be Buffers");
  if (t === r)
    return 0;
  for (var i = t.length, n = r.length, s = 0, a = Math.min(i, n); s < a; ++s)
    if (t[s] !== r[s]) {
      i = t[s], n = r[s];
      break;
    }
  return i < n ? -1 : n < i ? 1 : 0;
};
St.isEncoding = function(t) {
  switch (String(t).toLowerCase()) {
    case "hex":
    case "utf8":
    case "utf-8":
    case "ascii":
    case "latin1":
    case "binary":
    case "base64":
    case "ucs2":
    case "ucs-2":
    case "utf16le":
    case "utf-16le":
      return !0;
    default:
      return !1;
  }
};
St.concat = function(t, r) {
  if (!que(t))
    throw new TypeError('"list" argument must be an Array of Buffers');
  if (t.length === 0)
    return St.alloc(0);
  var i;
  if (r === void 0)
    for (r = 0, i = 0; i < t.length; ++i)
      r += t[i].length;
  var n = St.allocUnsafe(r), s = 0;
  for (i = 0; i < t.length; ++i) {
    var a = t[i];
    if (!dp(a))
      throw new TypeError('"list" argument must be an Array of Buffers');
    a.copy(n, s), s += a.length;
  }
  return n;
};
function Hue(e, t) {
  if (dp(e))
    return e.length;
  if (typeof ArrayBuffer != "undefined" && typeof ArrayBuffer.isView == "function" && (ArrayBuffer.isView(e) || e instanceof ArrayBuffer))
    return e.byteLength;
  typeof e != "string" && (e = "" + e);
  var r = e.length;
  if (r === 0)
    return 0;
  for (var i = !1; ; )
    switch (t) {
      case "ascii":
      case "latin1":
      case "binary":
        return r;
      case "utf8":
      case "utf-8":
      case void 0:
        return bw(e).length;
      case "ucs2":
      case "ucs-2":
      case "utf16le":
      case "utf-16le":
        return r * 2;
      case "hex":
        return r >>> 1;
      case "base64":
        return Que(e).length;
      default:
        if (i)
          return bw(e).length;
        t = ("" + t).toLowerCase(), i = !0;
    }
}
St.byteLength = Hue;
function vAe(e, t, r) {
  var i = !1;
  if ((t === void 0 || t < 0) && (t = 0), t > this.length || ((r === void 0 || r > this.length) && (r = this.length), r <= 0) || (r >>>= 0, t >>>= 0, r <= t))
    return "";
  for (e || (e = "utf8"); ; )
    switch (e) {
      case "hex":
        return IAe(this, t, r);
      case "utf8":
      case "utf-8":
        return Gue(this, t, r);
      case "ascii":
        return CAe(this, t, r);
      case "latin1":
      case "binary":
        return _Ae(this, t, r);
      case "base64":
        return wAe(this, t, r);
      case "ucs2":
      case "ucs-2":
      case "utf16le":
      case "utf-16le":
        return kAe(this, t, r);
      default:
        if (i)
          throw new TypeError("Unknown encoding: " + e);
        e = (e + "").toLowerCase(), i = !0;
    }
}
St.prototype._isBuffer = !0;
function wd(e, t, r) {
  var i = e[t];
  e[t] = e[r], e[r] = i;
}
St.prototype.swap16 = function() {
  var t = this.length;
  if (t % 2 !== 0)
    throw new RangeError("Buffer size must be a multiple of 16-bits");
  for (var r = 0; r < t; r += 2)
    wd(this, r, r + 1);
  return this;
};
St.prototype.swap32 = function() {
  var t = this.length;
  if (t % 4 !== 0)
    throw new RangeError("Buffer size must be a multiple of 32-bits");
  for (var r = 0; r < t; r += 4)
    wd(this, r, r + 3), wd(this, r + 1, r + 2);
  return this;
};
St.prototype.swap64 = function() {
  var t = this.length;
  if (t % 8 !== 0)
    throw new RangeError("Buffer size must be a multiple of 64-bits");
  for (var r = 0; r < t; r += 8)
    wd(this, r, r + 7), wd(this, r + 1, r + 6), wd(this, r + 2, r + 5), wd(this, r + 3, r + 4);
  return this;
};
St.prototype.toString = function() {
  var t = this.length | 0;
  return t === 0 ? "" : arguments.length === 0 ? Gue(this, 0, t) : vAe.apply(this, arguments);
};
St.prototype.equals = function(t) {
  if (!dp(t))
    throw new TypeError("Argument must be a Buffer");
  return this === t ? !0 : St.compare(this, t) === 0;
};
St.prototype.inspect = function() {
  var t = "", r = dAe;
  return this.length > 0 && (t = this.toString("hex", 0, r).match(/.{2}/g).join(" "), this.length > r && (t += " ... ")), "<Buffer " + t + ">";
};
St.prototype.compare = function(t, r, i, n, s) {
  if (!dp(t))
    throw new TypeError("Argument must be a Buffer");
  if (r === void 0 && (r = 0), i === void 0 && (i = t ? t.length : 0), n === void 0 && (n = 0), s === void 0 && (s = this.length), r < 0 || i > t.length || n < 0 || s > this.length)
    throw new RangeError("out of range index");
  if (n >= s && r >= i)
    return 0;
  if (n >= s)
    return -1;
  if (r >= i)
    return 1;
  if (r >>>= 0, i >>>= 0, n >>>= 0, s >>>= 0, this === t)
    return 0;
  for (var a = s - n, o = i - r, l = Math.min(a, o), u = this.slice(n, s), c = t.slice(r, i), f = 0; f < l; ++f)
    if (u[f] !== c[f]) {
      a = u[f], o = c[f];
      break;
    }
  return a < o ? -1 : o < a ? 1 : 0;
};
function Kue(e, t, r, i, n) {
  if (e.length === 0)
    return -1;
  if (typeof r == "string" ? (i = r, r = 0) : r > 2147483647 ? r = 2147483647 : r < -2147483648 && (r = -2147483648), r = +r, isNaN(r) && (r = n ? 0 : e.length - 1), r < 0 && (r = e.length + r), r >= e.length) {
    if (n)
      return -1;
    r = e.length - 1;
  } else if (r < 0)
    if (n)
      r = 0;
    else
      return -1;
  if (typeof t == "string" && (t = St.from(t, i)), dp(t))
    return t.length === 0 ? -1 : RV(e, t, r, i, n);
  if (typeof t == "number")
    return t = t & 255, St.TYPED_ARRAY_SUPPORT && typeof Uint8Array.prototype.indexOf == "function" ? n ? Uint8Array.prototype.indexOf.call(e, t, r) : Uint8Array.prototype.lastIndexOf.call(e, t, r) : RV(e, [t], r, i, n);
  throw new TypeError("val must be string, number or Buffer");
}
function RV(e, t, r, i, n) {
  var s = 1, a = e.length, o = t.length;
  if (i !== void 0 && (i = String(i).toLowerCase(), i === "ucs2" || i === "ucs-2" || i === "utf16le" || i === "utf-16le")) {
    if (e.length < 2 || t.length < 2)
      return -1;
    s = 2, a /= 2, o /= 2, r /= 2;
  }
  function l(m, g) {
    return s === 1 ? m[g] : m.readUInt16BE(g * s);
  }
  var u;
  if (n) {
    var c = -1;
    for (u = r; u < a; u++)
      if (l(e, u) === l(t, c === -1 ? 0 : u - c)) {
        if (c === -1 && (c = u), u - c + 1 === o)
          return c * s;
      } else
        c !== -1 && (u -= u - c), c = -1;
  } else
    for (r + o > a && (r = a - o), u = r; u >= 0; u--) {
      for (var f = !0, h = 0; h < o; h++)
        if (l(e, u + h) !== l(t, h)) {
          f = !1;
          break;
        }
      if (f)
        return u;
    }
  return -1;
}
St.prototype.includes = function(t, r, i) {
  return this.indexOf(t, r, i) !== -1;
};
St.prototype.indexOf = function(t, r, i) {
  return Kue(this, t, r, i, !0);
};
St.prototype.lastIndexOf = function(t, r, i) {
  return Kue(this, t, r, i, !1);
};
function TAe(e, t, r, i) {
  r = Number(r) || 0;
  var n = e.length - r;
  i ? (i = Number(i), i > n && (i = n)) : i = n;
  var s = t.length;
  if (s % 2 !== 0)
    throw new TypeError("Invalid hex string");
  i > s / 2 && (i = s / 2);
  for (var a = 0; a < i; ++a) {
    var o = parseInt(t.substr(a * 2, 2), 16);
    if (isNaN(o))
      return a;
    e[r + a] = o;
  }
  return a;
}
function SAe(e, t, r, i) {
  return fC(bw(t, e.length - r), e, r, i);
}
function zue(e, t, r, i) {
  return fC(MAe(t), e, r, i);
}
function xAe(e, t, r, i) {
  return zue(e, t, r, i);
}
function EAe(e, t, r, i) {
  return fC(Que(t), e, r, i);
}
function PAe(e, t, r, i) {
  return fC(RAe(t, e.length - r), e, r, i);
}
St.prototype.write = function(t, r, i, n) {
  if (r === void 0)
    n = "utf8", i = this.length, r = 0;
  else if (i === void 0 && typeof r == "string")
    n = r, i = this.length, r = 0;
  else if (isFinite(r))
    r = r | 0, isFinite(i) ? (i = i | 0, n === void 0 && (n = "utf8")) : (n = i, i = void 0);
  else
    throw new Error(
      "Buffer.write(string, encoding, offset[, length]) is no longer supported"
    );
  var s = this.length - r;
  if ((i === void 0 || i > s) && (i = s), t.length > 0 && (i < 0 || r < 0) || r > this.length)
    throw new RangeError("Attempt to write outside buffer bounds");
  n || (n = "utf8");
  for (var a = !1; ; )
    switch (n) {
      case "hex":
        return TAe(this, t, r, i);
      case "utf8":
      case "utf-8":
        return SAe(this, t, r, i);
      case "ascii":
        return zue(this, t, r, i);
      case "latin1":
      case "binary":
        return xAe(this, t, r, i);
      case "base64":
        return EAe(this, t, r, i);
      case "ucs2":
      case "ucs-2":
      case "utf16le":
      case "utf-16le":
        return PAe(this, t, r, i);
      default:
        if (a)
          throw new TypeError("Unknown encoding: " + n);
        n = ("" + n).toLowerCase(), a = !0;
    }
};
St.prototype.toJSON = function() {
  return {
    type: "Buffer",
    data: Array.prototype.slice.call(this._arr || this, 0)
  };
};
function wAe(e, t, r) {
  return t === 0 && r === e.length ? MV(e) : MV(e.slice(t, r));
}
function Gue(e, t, r) {
  r = Math.min(e.length, r);
  for (var i = [], n = t; n < r; ) {
    var s = e[n], a = null, o = s > 239 ? 4 : s > 223 ? 3 : s > 191 ? 2 : 1;
    if (n + o <= r) {
      var l, u, c, f;
      switch (o) {
        case 1:
          s < 128 && (a = s);
          break;
        case 2:
          l = e[n + 1], (l & 192) === 128 && (f = (s & 31) << 6 | l & 63, f > 127 && (a = f));
          break;
        case 3:
          l = e[n + 1], u = e[n + 2], (l & 192) === 128 && (u & 192) === 128 && (f = (s & 15) << 12 | (l & 63) << 6 | u & 63, f > 2047 && (f < 55296 || f > 57343) && (a = f));
          break;
        case 4:
          l = e[n + 1], u = e[n + 2], c = e[n + 3], (l & 192) === 128 && (u & 192) === 128 && (c & 192) === 128 && (f = (s & 15) << 18 | (l & 63) << 12 | (u & 63) << 6 | c & 63, f > 65535 && f < 1114112 && (a = f));
      }
    }
    a === null ? (a = 65533, o = 1) : a > 65535 && (a -= 65536, i.push(a >>> 10 & 1023 | 55296), a = 56320 | a & 1023), i.push(a), n += o;
  }
  return AAe(i);
}
var BV = 4096;
function AAe(e) {
  var t = e.length;
  if (t <= BV)
    return String.fromCharCode.apply(String, e);
  for (var r = "", i = 0; i < t; )
    r += String.fromCharCode.apply(
      String,
      e.slice(i, i += BV)
    );
  return r;
}
function CAe(e, t, r) {
  var i = "";
  r = Math.min(e.length, r);
  for (var n = t; n < r; ++n)
    i += String.fromCharCode(e[n] & 127);
  return i;
}
function _Ae(e, t, r) {
  var i = "";
  r = Math.min(e.length, r);
  for (var n = t; n < r; ++n)
    i += String.fromCharCode(e[n]);
  return i;
}
function IAe(e, t, r) {
  var i = e.length;
  (!t || t < 0) && (t = 0), (!r || r < 0 || r > i) && (r = i);
  for (var n = "", s = t; s < r; ++s)
    n += LAe(e[s]);
  return n;
}
function kAe(e, t, r) {
  for (var i = e.slice(t, r), n = "", s = 0; s < i.length; s += 2)
    n += String.fromCharCode(i[s] + i[s + 1] * 256);
  return n;
}
St.prototype.slice = function(t, r) {
  var i = this.length;
  t = ~~t, r = r === void 0 ? i : ~~r, t < 0 ? (t += i, t < 0 && (t = 0)) : t > i && (t = i), r < 0 ? (r += i, r < 0 && (r = 0)) : r > i && (r = i), r < t && (r = t);
  var n;
  if (St.TYPED_ARRAY_SUPPORT)
    n = this.subarray(t, r), n.__proto__ = St.prototype;
  else {
    var s = r - t;
    n = new St(s, void 0);
    for (var a = 0; a < s; ++a)
      n[a] = this[a + t];
  }
  return n;
};
function ls(e, t, r) {
  if (e % 1 !== 0 || e < 0)
    throw new RangeError("offset is not uint");
  if (e + t > r)
    throw new RangeError("Trying to access beyond buffer length");
}
St.prototype.readUIntLE = function(t, r, i) {
  t = t | 0, r = r | 0, i || ls(t, r, this.length);
  for (var n = this[t], s = 1, a = 0; ++a < r && (s *= 256); )
    n += this[t + a] * s;
  return n;
};
St.prototype.readUIntBE = function(t, r, i) {
  t = t | 0, r = r | 0, i || ls(t, r, this.length);
  for (var n = this[t + --r], s = 1; r > 0 && (s *= 256); )
    n += this[t + --r] * s;
  return n;
};
St.prototype.readUInt8 = function(t, r) {
  return r || ls(t, 1, this.length), this[t];
};
St.prototype.readUInt16LE = function(t, r) {
  return r || ls(t, 2, this.length), this[t] | this[t + 1] << 8;
};
St.prototype.readUInt16BE = function(t, r) {
  return r || ls(t, 2, this.length), this[t] << 8 | this[t + 1];
};
St.prototype.readUInt32LE = function(t, r) {
  return r || ls(t, 4, this.length), (this[t] | this[t + 1] << 8 | this[t + 2] << 16) + this[t + 3] * 16777216;
};
St.prototype.readUInt32BE = function(t, r) {
  return r || ls(t, 4, this.length), this[t] * 16777216 + (this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3]);
};
St.prototype.readIntLE = function(t, r, i) {
  t = t | 0, r = r | 0, i || ls(t, r, this.length);
  for (var n = this[t], s = 1, a = 0; ++a < r && (s *= 256); )
    n += this[t + a] * s;
  return s *= 128, n >= s && (n -= Math.pow(2, 8 * r)), n;
};
St.prototype.readIntBE = function(t, r, i) {
  t = t | 0, r = r | 0, i || ls(t, r, this.length);
  for (var n = r, s = 1, a = this[t + --n]; n > 0 && (s *= 256); )
    a += this[t + --n] * s;
  return s *= 128, a >= s && (a -= Math.pow(2, 8 * r)), a;
};
St.prototype.readInt8 = function(t, r) {
  return r || ls(t, 1, this.length), this[t] & 128 ? (255 - this[t] + 1) * -1 : this[t];
};
St.prototype.readInt16LE = function(t, r) {
  r || ls(t, 2, this.length);
  var i = this[t] | this[t + 1] << 8;
  return i & 32768 ? i | 4294901760 : i;
};
St.prototype.readInt16BE = function(t, r) {
  r || ls(t, 2, this.length);
  var i = this[t + 1] | this[t] << 8;
  return i & 32768 ? i | 4294901760 : i;
};
St.prototype.readInt32LE = function(t, r) {
  return r || ls(t, 4, this.length), this[t] | this[t + 1] << 8 | this[t + 2] << 16 | this[t + 3] << 24;
};
St.prototype.readInt32BE = function(t, r) {
  return r || ls(t, 4, this.length), this[t] << 24 | this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3];
};
St.prototype.readFloatLE = function(t, r) {
  return r || ls(t, 4, this.length), uC(this, t, !0, 23, 4);
};
St.prototype.readFloatBE = function(t, r) {
  return r || ls(t, 4, this.length), uC(this, t, !1, 23, 4);
};
St.prototype.readDoubleLE = function(t, r) {
  return r || ls(t, 8, this.length), uC(this, t, !0, 52, 8);
};
St.prototype.readDoubleBE = function(t, r) {
  return r || ls(t, 8, this.length), uC(this, t, !1, 52, 8);
};
function qa(e, t, r, i, n, s) {
  if (!dp(e))
    throw new TypeError('"buffer" argument must be a Buffer instance');
  if (t > n || t < s)
    throw new RangeError('"value" argument is out of bounds');
  if (r + i > e.length)
    throw new RangeError("Index out of range");
}
St.prototype.writeUIntLE = function(t, r, i, n) {
  if (t = +t, r = r | 0, i = i | 0, !n) {
    var s = Math.pow(2, 8 * i) - 1;
    qa(this, t, r, i, s, 0);
  }
  var a = 1, o = 0;
  for (this[r] = t & 255; ++o < i && (a *= 256); )
    this[r + o] = t / a & 255;
  return r + i;
};
St.prototype.writeUIntBE = function(t, r, i, n) {
  if (t = +t, r = r | 0, i = i | 0, !n) {
    var s = Math.pow(2, 8 * i) - 1;
    qa(this, t, r, i, s, 0);
  }
  var a = i - 1, o = 1;
  for (this[r + a] = t & 255; --a >= 0 && (o *= 256); )
    this[r + a] = t / o & 255;
  return r + i;
};
St.prototype.writeUInt8 = function(t, r, i) {
  return t = +t, r = r | 0, i || qa(this, t, r, 1, 255, 0), St.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)), this[r] = t & 255, r + 1;
};
function cC(e, t, r, i) {
  t < 0 && (t = 65535 + t + 1);
  for (var n = 0, s = Math.min(e.length - r, 2); n < s; ++n)
    e[r + n] = (t & 255 << 8 * (i ? n : 1 - n)) >>> (i ? n : 1 - n) * 8;
}
St.prototype.writeUInt16LE = function(t, r, i) {
  return t = +t, r = r | 0, i || qa(this, t, r, 2, 65535, 0), St.TYPED_ARRAY_SUPPORT ? (this[r] = t & 255, this[r + 1] = t >>> 8) : cC(this, t, r, !0), r + 2;
};
St.prototype.writeUInt16BE = function(t, r, i) {
  return t = +t, r = r | 0, i || qa(this, t, r, 2, 65535, 0), St.TYPED_ARRAY_SUPPORT ? (this[r] = t >>> 8, this[r + 1] = t & 255) : cC(this, t, r, !1), r + 2;
};
function pC(e, t, r, i) {
  t < 0 && (t = 4294967295 + t + 1);
  for (var n = 0, s = Math.min(e.length - r, 4); n < s; ++n)
    e[r + n] = t >>> (i ? n : 3 - n) * 8 & 255;
}
St.prototype.writeUInt32LE = function(t, r, i) {
  return t = +t, r = r | 0, i || qa(this, t, r, 4, 4294967295, 0), St.TYPED_ARRAY_SUPPORT ? (this[r + 3] = t >>> 24, this[r + 2] = t >>> 16, this[r + 1] = t >>> 8, this[r] = t & 255) : pC(this, t, r, !0), r + 4;
};
St.prototype.writeUInt32BE = function(t, r, i) {
  return t = +t, r = r | 0, i || qa(this, t, r, 4, 4294967295, 0), St.TYPED_ARRAY_SUPPORT ? (this[r] = t >>> 24, this[r + 1] = t >>> 16, this[r + 2] = t >>> 8, this[r + 3] = t & 255) : pC(this, t, r, !1), r + 4;
};
St.prototype.writeIntLE = function(t, r, i, n) {
  if (t = +t, r = r | 0, !n) {
    var s = Math.pow(2, 8 * i - 1);
    qa(this, t, r, i, s - 1, -s);
  }
  var a = 0, o = 1, l = 0;
  for (this[r] = t & 255; ++a < i && (o *= 256); )
    t < 0 && l === 0 && this[r + a - 1] !== 0 && (l = 1), this[r + a] = (t / o >> 0) - l & 255;
  return r + i;
};
St.prototype.writeIntBE = function(t, r, i, n) {
  if (t = +t, r = r | 0, !n) {
    var s = Math.pow(2, 8 * i - 1);
    qa(this, t, r, i, s - 1, -s);
  }
  var a = i - 1, o = 1, l = 0;
  for (this[r + a] = t & 255; --a >= 0 && (o *= 256); )
    t < 0 && l === 0 && this[r + a + 1] !== 0 && (l = 1), this[r + a] = (t / o >> 0) - l & 255;
  return r + i;
};
St.prototype.writeInt8 = function(t, r, i) {
  return t = +t, r = r | 0, i || qa(this, t, r, 1, 127, -128), St.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)), t < 0 && (t = 255 + t + 1), this[r] = t & 255, r + 1;
};
St.prototype.writeInt16LE = function(t, r, i) {
  return t = +t, r = r | 0, i || qa(this, t, r, 2, 32767, -32768), St.TYPED_ARRAY_SUPPORT ? (this[r] = t & 255, this[r + 1] = t >>> 8) : cC(this, t, r, !0), r + 2;
};
St.prototype.writeInt16BE = function(t, r, i) {
  return t = +t, r = r | 0, i || qa(this, t, r, 2, 32767, -32768), St.TYPED_ARRAY_SUPPORT ? (this[r] = t >>> 8, this[r + 1] = t & 255) : cC(this, t, r, !1), r + 2;
};
St.prototype.writeInt32LE = function(t, r, i) {
  return t = +t, r = r | 0, i || qa(this, t, r, 4, 2147483647, -2147483648), St.TYPED_ARRAY_SUPPORT ? (this[r] = t & 255, this[r + 1] = t >>> 8, this[r + 2] = t >>> 16, this[r + 3] = t >>> 24) : pC(this, t, r, !0), r + 4;
};
St.prototype.writeInt32BE = function(t, r, i) {
  return t = +t, r = r | 0, i || qa(this, t, r, 4, 2147483647, -2147483648), t < 0 && (t = 4294967295 + t + 1), St.TYPED_ARRAY_SUPPORT ? (this[r] = t >>> 24, this[r + 1] = t >>> 16, this[r + 2] = t >>> 8, this[r + 3] = t & 255) : pC(this, t, r, !1), r + 4;
};
function Yue(e, t, r, i, n, s) {
  if (r + i > e.length)
    throw new RangeError("Index out of range");
  if (r < 0)
    throw new RangeError("Index out of range");
}
function Xue(e, t, r, i, n) {
  return n || Yue(e, t, r, 4), Uue(e, t, r, i, 23, 4), r + 4;
}
St.prototype.writeFloatLE = function(t, r, i) {
  return Xue(this, t, r, !0, i);
};
St.prototype.writeFloatBE = function(t, r, i) {
  return Xue(this, t, r, !1, i);
};
function Jue(e, t, r, i, n) {
  return n || Yue(e, t, r, 8), Uue(e, t, r, i, 52, 8), r + 8;
}
St.prototype.writeDoubleLE = function(t, r, i) {
  return Jue(this, t, r, !0, i);
};
St.prototype.writeDoubleBE = function(t, r, i) {
  return Jue(this, t, r, !1, i);
};
St.prototype.copy = function(t, r, i, n) {
  if (i || (i = 0), !n && n !== 0 && (n = this.length), r >= t.length && (r = t.length), r || (r = 0), n > 0 && n < i && (n = i), n === i || t.length === 0 || this.length === 0)
    return 0;
  if (r < 0)
    throw new RangeError("targetStart out of bounds");
  if (i < 0 || i >= this.length)
    throw new RangeError("sourceStart out of bounds");
  if (n < 0)
    throw new RangeError("sourceEnd out of bounds");
  n > this.length && (n = this.length), t.length - r < n - i && (n = t.length - r + i);
  var s = n - i, a;
  if (this === t && i < r && r < n)
    for (a = s - 1; a >= 0; --a)
      t[a + r] = this[a + i];
  else if (s < 1e3 || !St.TYPED_ARRAY_SUPPORT)
    for (a = 0; a < s; ++a)
      t[a + r] = this[a + i];
  else
    Uint8Array.prototype.set.call(
      t,
      this.subarray(i, i + s),
      r
    );
  return s;
};
St.prototype.fill = function(t, r, i, n) {
  if (typeof t == "string") {
    if (typeof r == "string" ? (n = r, r = 0, i = this.length) : typeof i == "string" && (n = i, i = this.length), t.length === 1) {
      var s = t.charCodeAt(0);
      s < 256 && (t = s);
    }
    if (n !== void 0 && typeof n != "string")
      throw new TypeError("encoding must be a string");
    if (typeof n == "string" && !St.isEncoding(n))
      throw new TypeError("Unknown encoding: " + n);
  } else
    typeof t == "number" && (t = t & 255);
  if (r < 0 || this.length < r || this.length < i)
    throw new RangeError("Out of range index");
  if (i <= r)
    return this;
  r = r >>> 0, i = i === void 0 ? this.length : i >>> 0, t || (t = 0);
  var a;
  if (typeof t == "number")
    for (a = r; a < i; ++a)
      this[a] = t;
  else {
    var o = dp(t) ? t : bw(new St(t, n).toString()), l = o.length;
    for (a = 0; a < i - r; ++a)
      this[a + r] = o[a % l];
  }
  return this;
};
var OAe = /[^+\/0-9A-Za-z-_]/g;
function NAe(e) {
  if (e = DAe(e).replace(OAe, ""), e.length < 2)
    return "";
  for (; e.length % 4 !== 0; )
    e = e + "=";
  return e;
}
function DAe(e) {
  return e.trim ? e.trim() : e.replace(/^\s+|\s+$/g, "");
}
function LAe(e) {
  return e < 16 ? "0" + e.toString(16) : e.toString(16);
}
function bw(e, t) {
  t = t || 1 / 0;
  for (var r, i = e.length, n = null, s = [], a = 0; a < i; ++a) {
    if (r = e.charCodeAt(a), r > 55295 && r < 57344) {
      if (!n) {
        if (r > 56319) {
          (t -= 3) > -1 && s.push(239, 191, 189);
          continue;
        } else if (a + 1 === i) {
          (t -= 3) > -1 && s.push(239, 191, 189);
          continue;
        }
        n = r;
        continue;
      }
      if (r < 56320) {
        (t -= 3) > -1 && s.push(239, 191, 189), n = r;
        continue;
      }
      r = (n - 55296 << 10 | r - 56320) + 65536;
    } else
      n && (t -= 3) > -1 && s.push(239, 191, 189);
    if (n = null, r < 128) {
      if ((t -= 1) < 0)
        break;
      s.push(r);
    } else if (r < 2048) {
      if ((t -= 2) < 0)
        break;
      s.push(
        r >> 6 | 192,
        r & 63 | 128
      );
    } else if (r < 65536) {
      if ((t -= 3) < 0)
        break;
      s.push(
        r >> 12 | 224,
        r >> 6 & 63 | 128,
        r & 63 | 128
      );
    } else if (r < 1114112) {
      if ((t -= 4) < 0)
        break;
      s.push(
        r >> 18 | 240,
        r >> 12 & 63 | 128,
        r >> 6 & 63 | 128,
        r & 63 | 128
      );
    } else
      throw new Error("Invalid code point");
  }
  return s;
}
function MAe(e) {
  for (var t = [], r = 0; r < e.length; ++r)
    t.push(e.charCodeAt(r) & 255);
  return t;
}
function RAe(e, t) {
  for (var r, i, n, s = [], a = 0; a < e.length && !((t -= 2) < 0); ++a)
    r = e.charCodeAt(a), i = r >> 8, n = r % 256, s.push(n), s.push(i);
  return s;
}
function Que(e) {
  return cAe(NAe(e));
}
function fC(e, t, r, i) {
  for (var n = 0; n < i && !(n + r >= t.length || n >= e.length); ++n)
    t[n + r] = e[n];
  return n;
}
function BAe(e) {
  return e !== e;
}
function FAe(e) {
  return e != null && (!!e._isBuffer || Zue(e) || jAe(e));
}
function Zue(e) {
  return !!e.constructor && typeof e.constructor.isBuffer == "function" && e.constructor.isBuffer(e);
}
function jAe(e) {
  return typeof e.readFloatLE == "function" && typeof e.slice == "function" && Zue(e.slice(0, 0));
}
function ece() {
  throw new Error("setTimeout has not been defined");
}
function tce() {
  throw new Error("clearTimeout has not been defined");
}
var ch = ece, ph = tce;
typeof Fh.setTimeout == "function" && (ch = setTimeout);
typeof Fh.clearTimeout == "function" && (ph = clearTimeout);
function rce(e) {
  if (ch === setTimeout)
    return setTimeout(e, 0);
  if ((ch === ece || !ch) && setTimeout)
    return ch = setTimeout, setTimeout(e, 0);
  try {
    return ch(e, 0);
  } catch (t) {
    try {
      return ch.call(null, e, 0);
    } catch (r) {
      return ch.call(this, e, 0);
    }
  }
}
function $Ae(e) {
  if (ph === clearTimeout)
    return clearTimeout(e);
  if ((ph === tce || !ph) && clearTimeout)
    return ph = clearTimeout, clearTimeout(e);
  try {
    return ph(e);
  } catch (t) {
    try {
      return ph.call(null, e);
    } catch (r) {
      return ph.call(this, e);
    }
  }
}
var pf = [], Cy = !1, Ad, lP = -1;
function UAe() {
  !Cy || !Ad || (Cy = !1, Ad.length ? pf = Ad.concat(pf) : lP = -1, pf.length && ice());
}
function ice() {
  if (!Cy) {
    var e = rce(UAe);
    Cy = !0;
    for (var t = pf.length; t; ) {
      for (Ad = pf, pf = []; ++lP < t; )
        Ad && Ad[lP].run();
      lP = -1, t = pf.length;
    }
    Ad = null, Cy = !1, $Ae(e);
  }
}
function qAe(e) {
  var t = new Array(arguments.length - 1);
  if (arguments.length > 1)
    for (var r = 1; r < arguments.length; r++)
      t[r - 1] = arguments[r];
  pf.push(new nce(e, t)), pf.length === 1 && !Cy && rce(ice);
}
function nce(e, t) {
  this.fun = e, this.array = t;
}
nce.prototype.run = function() {
  this.fun.apply(null, this.array);
};
var VAe = "browser", WAe = "browser", HAe = !0, KAe = {}, zAe = [], GAe = "", YAe = {}, XAe = {}, JAe = {};
function em() {
}
var QAe = em, ZAe = em, eCe = em, tCe = em, rCe = em, iCe = em, nCe = em;
function sCe(e) {
  throw new Error("process.binding is not supported");
}
function aCe() {
  return "/";
}
function oCe(e) {
  throw new Error("process.chdir is not supported");
}
function lCe() {
  return 0;
}
var ty = Fh.performance || {}, uCe = ty.now || ty.mozNow || ty.msNow || ty.oNow || ty.webkitNow || function() {
  return (/* @__PURE__ */ new Date()).getTime();
};
function cCe(e) {
  var t = uCe.call(ty) * 1e-3, r = Math.floor(t), i = Math.floor(t % 1 * 1e9);
  return e && (r = r - e[0], i = i - e[1], i < 0 && (r--, i += 1e9)), [r, i];
}
var pCe = /* @__PURE__ */ new Date();
function fCe() {
  var e = /* @__PURE__ */ new Date(), t = e - pCe;
  return t / 1e3;
}
var Bs = {
  nextTick: qAe,
  title: VAe,
  browser: HAe,
  env: KAe,
  argv: zAe,
  version: GAe,
  versions: YAe,
  on: QAe,
  addListener: ZAe,
  once: eCe,
  off: tCe,
  removeListener: rCe,
  removeAllListeners: iCe,
  emit: nCe,
  binding: sCe,
  cwd: aCe,
  chdir: oCe,
  umask: lCe,
  hrtime: cCe,
  platform: WAe,
  release: XAe,
  config: JAe,
  uptime: fCe
}, eF;
typeof Object.create == "function" ? eF = function(t, r) {
  t.super_ = r, t.prototype = Object.create(r.prototype, {
    constructor: {
      value: t,
      enumerable: !1,
      writable: !0,
      configurable: !0
    }
  });
} : eF = function(t, r) {
  t.super_ = r;
  var i = function() {
  };
  i.prototype = r.prototype, t.prototype = new i(), t.prototype.constructor = t;
};
var sce = eF, ace = Object.getOwnPropertyDescriptors || function(t) {
  for (var r = Object.keys(t), i = {}, n = 0; n < r.length; n++)
    i[r[n]] = Object.getOwnPropertyDescriptor(t, r[n]);
  return i;
}, hCe = /%[sdj%]/g;
function hC(e) {
  if (!qh(e)) {
    for (var t = [], r = 0; r < arguments.length; r++)
      t.push(fp(arguments[r]));
    return t.join(" ");
  }
  for (var r = 1, i = arguments, n = i.length, s = String(e).replace(hCe, function(o) {
    if (o === "%%")
      return "%";
    if (r >= n)
      return o;
    switch (o) {
      case "%s":
        return String(i[r++]);
      case "%d":
        return Number(i[r++]);
      case "%j":
        try {
          return JSON.stringify(i[r++]);
        } catch (l) {
          return "[Circular]";
        }
      default:
        return o;
    }
  }), a = i[r]; r < n; a = i[++r])
    ff(a) || !Df(a) ? s += " " + a : s += " " + fp(a);
  return s;
}
function S$(e, t) {
  if (lp(Fh.process))
    return function() {
      return S$(e, t).apply(this, arguments);
    };
  if (Bs.noDeprecation === !0)
    return e;
  var r = !1;
  function i() {
    if (!r) {
      if (Bs.throwDeprecation)
        throw new Error(t);
      Bs.traceDeprecation ? console.trace(t) : console.error(t), r = !0;
    }
    return e.apply(this, arguments);
  }
  return i;
}
var qS = {}, cM;
function oce(e) {
  if (lp(cM) && (cM = Bs.env.NODE_DEBUG || ""), e = e.toUpperCase(), !qS[e])
    if (new RegExp("\\b" + e + "\\b", "i").test(cM)) {
      var t = 0;
      qS[e] = function() {
        var r = hC.apply(null, arguments);
        console.error("%s %d: %s", e, t, r);
      };
    } else
      qS[e] = function() {
      };
  return qS[e];
}
function fp(e, t) {
  var r = {
    seen: [],
    stylize: mCe
  };
  return arguments.length >= 3 && (r.depth = arguments[2]), arguments.length >= 4 && (r.colors = arguments[3]), dC(t) ? r.showHidden = t : t && A$(r, t), lp(r.showHidden) && (r.showHidden = !1), lp(r.depth) && (r.depth = 2), lp(r.colors) && (r.colors = !1), lp(r.customInspect) && (r.customInspect = !0), r.colors && (r.stylize = dCe), vw(r, e, r.depth);
}
fp.colors = {
  bold: [1, 22],
  italic: [3, 23],
  underline: [4, 24],
  inverse: [7, 27],
  white: [37, 39],
  grey: [90, 39],
  black: [30, 39],
  blue: [34, 39],
  cyan: [36, 39],
  green: [32, 39],
  magenta: [35, 39],
  red: [31, 39],
  yellow: [33, 39]
};
fp.styles = {
  special: "cyan",
  number: "yellow",
  boolean: "yellow",
  undefined: "grey",
  null: "bold",
  string: "green",
  date: "magenta",
  // "name": intentionally not styling
  regexp: "red"
};
function dCe(e, t) {
  var r = fp.styles[t];
  return r ? "\x1B[" + fp.colors[r][0] + "m" + e + "\x1B[" + fp.colors[r][1] + "m" : e;
}
function mCe(e, t) {
  return e;
}
function yCe(e) {
  var t = {};
  return e.forEach(function(r, i) {
    t[r] = !0;
  }), t;
}
function vw(e, t, r) {
  if (e.customInspect && t && X0(t.inspect) && // Filter out the util module, it's inspect function is special
  t.inspect !== fp && // Also filter out any prototype objects using the circular check.
  !(t.constructor && t.constructor.prototype === t)) {
    var i = t.inspect(r, e);
    return qh(i) || (i = vw(e, i, r)), i;
  }
  var n = gCe(e, t);
  if (n)
    return n;
  var s = Object.keys(t), a = yCe(s);
  if (e.showHidden && (s = Object.getOwnPropertyNames(t)), Y0(t) && (s.indexOf("message") >= 0 || s.indexOf("description") >= 0))
    return pM(t);
  if (s.length === 0) {
    if (X0(t)) {
      var o = t.name ? ": " + t.name : "";
      return e.stylize("[Function" + o + "]", "special");
    }
    if (G0(t))
      return e.stylize(RegExp.prototype.toString.call(t), "regexp");
    if (Tw(t))
      return e.stylize(Date.prototype.toString.call(t), "date");
    if (Y0(t))
      return pM(t);
  }
  var l = "", u = !1, c = ["{", "}"];
  if (x$(t) && (u = !0, c = ["[", "]"]), X0(t)) {
    var f = t.name ? ": " + t.name : "";
    l = " [Function" + f + "]";
  }
  if (G0(t) && (l = " " + RegExp.prototype.toString.call(t)), Tw(t) && (l = " " + Date.prototype.toUTCString.call(t)), Y0(t) && (l = " " + pM(t)), s.length === 0 && (!u || t.length == 0))
    return c[0] + l + c[1];
  if (r < 0)
    return G0(t) ? e.stylize(RegExp.prototype.toString.call(t), "regexp") : e.stylize("[Object]", "special");
  e.seen.push(t);
  var h;
  return u ? h = bCe(e, t, r, a, s) : h = s.map(function(m) {
    return tF(e, t, r, a, m, u);
  }), e.seen.pop(), vCe(h, l, c);
}
function gCe(e, t) {
  if (lp(t))
    return e.stylize("undefined", "undefined");
  if (qh(t)) {
    var r = "'" + JSON.stringify(t).replace(/^"|"$/g, "").replace(/'/g, "\\'").replace(/\\"/g, '"') + "'";
    return e.stylize(r, "string");
  }
  if (P$(t))
    return e.stylize("" + t, "number");
  if (dC(t))
    return e.stylize("" + t, "boolean");
  if (ff(t))
    return e.stylize("null", "null");
}
function pM(e) {
  return "[" + Error.prototype.toString.call(e) + "]";
}
function bCe(e, t, r, i, n) {
  for (var s = [], a = 0, o = t.length; a < o; ++a)
    fce(t, String(a)) ? s.push(tF(
      e,
      t,
      r,
      i,
      String(a),
      !0
    )) : s.push("");
  return n.forEach(function(l) {
    l.match(/^\d+$/) || s.push(tF(
      e,
      t,
      r,
      i,
      l,
      !0
    ));
  }), s;
}
function tF(e, t, r, i, n, s) {
  var a, o, l;
  if (l = Object.getOwnPropertyDescriptor(t, n) || { value: t[n] }, l.get ? l.set ? o = e.stylize("[Getter/Setter]", "special") : o = e.stylize("[Getter]", "special") : l.set && (o = e.stylize("[Setter]", "special")), fce(i, n) || (a = "[" + n + "]"), o || (e.seen.indexOf(l.value) < 0 ? (ff(r) ? o = vw(e, l.value, null) : o = vw(e, l.value, r - 1), o.indexOf("\n") > -1 && (s ? o = o.split("\n").map(function(u) {
    return "  " + u;
  }).join("\n").substr(2) : o = "\n" + o.split("\n").map(function(u) {
    return "   " + u;
  }).join("\n"))) : o = e.stylize("[Circular]", "special")), lp(a)) {
    if (s && n.match(/^\d+$/))
      return o;
    a = JSON.stringify("" + n), a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/) ? (a = a.substr(1, a.length - 2), a = e.stylize(a, "name")) : (a = a.replace(/'/g, "\\'").replace(/\\"/g, '"').replace(/(^"|"$)/g, "'"), a = e.stylize(a, "string"));
  }
  return a + ": " + o;
}
function vCe(e, t, r) {
  var i = e.reduce(function(n, s) {
    return s.indexOf("\n") >= 0, n + s.replace(/\u001b\[\d\d?m/g, "").length + 1;
  }, 0);
  return i > 60 ? r[0] + (t === "" ? "" : t + "\n ") + " " + e.join(",\n  ") + " " + r[1] : r[0] + t + " " + e.join(", ") + " " + r[1];
}
function x$(e) {
  return Array.isArray(e);
}
function dC(e) {
  return typeof e == "boolean";
}
function ff(e) {
  return e === null;
}
function E$(e) {
  return e == null;
}
function P$(e) {
  return typeof e == "number";
}
function qh(e) {
  return typeof e == "string";
}
function lce(e) {
  return typeof e == "symbol";
}
function lp(e) {
  return e === void 0;
}
function G0(e) {
  return Df(e) && w$(e) === "[object RegExp]";
}
function Df(e) {
  return typeof e == "object" && e !== null;
}
function Tw(e) {
  return Df(e) && w$(e) === "[object Date]";
}
function Y0(e) {
  return Df(e) && (w$(e) === "[object Error]" || e instanceof Error);
}
function X0(e) {
  return typeof e == "function";
}
function uce(e) {
  return e === null || typeof e == "boolean" || typeof e == "number" || typeof e == "string" || typeof e == "symbol" || // ES6 symbol
  typeof e == "undefined";
}
function cce(e) {
  return St.isBuffer(e);
}
function w$(e) {
  return Object.prototype.toString.call(e);
}
function fM(e) {
  return e < 10 ? "0" + e.toString(10) : e.toString(10);
}
var TCe = [
  "Jan",
  "Feb",
  "Mar",
  "Apr",
  "May",
  "Jun",
  "Jul",
  "Aug",
  "Sep",
  "Oct",
  "Nov",
  "Dec"
];
function SCe() {
  var e = /* @__PURE__ */ new Date(), t = [
    fM(e.getHours()),
    fM(e.getMinutes()),
    fM(e.getSeconds())
  ].join(":");
  return [e.getDate(), TCe[e.getMonth()], t].join(" ");
}
function pce() {
  console.log("%s - %s", SCe(), hC.apply(null, arguments));
}
function A$(e, t) {
  if (!t || !Df(t))
    return e;
  for (var r = Object.keys(t), i = r.length; i--; )
    e[r[i]] = t[r[i]];
  return e;
}
function fce(e, t) {
  return Object.prototype.hasOwnProperty.call(e, t);
}
var vd = typeof Symbol != "undefined" ? Symbol("util.promisify.custom") : void 0;
function C$(e) {
  if (typeof e != "function")
    throw new TypeError('The "original" argument must be of type Function');
  if (vd && e[vd]) {
    var t = e[vd];
    if (typeof t != "function")
      throw new TypeError('The "util.promisify.custom" argument must be of type Function');
    return Object.defineProperty(t, vd, {
      value: t,
      enumerable: !1,
      writable: !1,
      configurable: !0
    }), t;
  }
  function t() {
    for (var r, i, n = new Promise(function(o, l) {
      r = o, i = l;
    }), s = [], a = 0; a < arguments.length; a++)
      s.push(arguments[a]);
    s.push(function(o, l) {
      o ? i(o) : r(l);
    });
    try {
      e.apply(this, s);
    } catch (o) {
      i(o);
    }
    return n;
  }
  return Object.setPrototypeOf(t, Object.getPrototypeOf(e)), vd && Object.defineProperty(t, vd, {
    value: t,
    enumerable: !1,
    writable: !1,
    configurable: !0
  }), Object.defineProperties(
    t,
    ace(e)
  );
}
C$.custom = vd;
function xCe(e, t) {
  if (!e) {
    var r = new Error("Promise was rejected with a falsy value");
    r.reason = e, e = r;
  }
  return t(e);
}
function hce(e) {
  if (typeof e != "function")
    throw new TypeError('The "original" argument must be of type Function');
  function t() {
    for (var r = [], i = 0; i < arguments.length; i++)
      r.push(arguments[i]);
    var n = r.pop();
    if (typeof n != "function")
      throw new TypeError("The last argument must be of type Function");
    var s = this, a = function() {
      return n.apply(s, arguments);
    };
    e.apply(this, r).then(
      function(o) {
        Bs.nextTick(a.bind(null, null, o));
      },
      function(o) {
        Bs.nextTick(xCe.bind(null, o, a));
      }
    );
  }
  return Object.setPrototypeOf(t, Object.getPrototypeOf(e)), Object.defineProperties(t, ace(e)), t;
}
var ECe = {
  inherits: sce,
  _extend: A$,
  log: pce,
  isBuffer: cce,
  isPrimitive: uce,
  isFunction: X0,
  isError: Y0,
  isDate: Tw,
  isObject: Df,
  isRegExp: G0,
  isUndefined: lp,
  isSymbol: lce,
  isString: qh,
  isNumber: P$,
  isNullOrUndefined: E$,
  isNull: ff,
  isBoolean: dC,
  isArray: x$,
  inspect: fp,
  deprecate: S$,
  format: hC,
  debuglog: oce,
  promisify: C$,
  callbackify: hce
}, PCe = /* @__PURE__ */ Object.freeze({
  __proto__: null,
  _extend: A$,
  callbackify: hce,
  debuglog: oce,
  default: ECe,
  deprecate: S$,
  format: hC,
  inherits: sce,
  inspect: fp,
  isArray: x$,
  isBoolean: dC,
  isBuffer: cce,
  isDate: Tw,
  isError: Y0,
  isFunction: X0,
  isNull: ff,
  isNullOrUndefined: E$,
  isNumber: P$,
  isObject: Df,
  isPrimitive: uce,
  isRegExp: G0,
  isString: qh,
  isSymbol: lce,
  isUndefined: lp,
  log: pce,
  promisify: C$
});
function wCe(e, t) {
  return Object.prototype.hasOwnProperty.call(e, t);
}
var dce = Array.isArray || function(e) {
  return Object.prototype.toString.call(e) === "[object Array]";
};
function tb(e) {
  switch (typeof e) {
    case "string":
      return e;
    case "boolean":
      return e ? "true" : "false";
    case "number":
      return isFinite(e) ? e : "";
    default:
      return "";
  }
}
function ACe(e, t, r, i) {
  return t = t || "&", r = r || "=", e === null && (e = void 0), typeof e == "object" ? FV(CCe(e), function(n) {
    var s = encodeURIComponent(tb(n)) + r;
    return dce(e[n]) ? FV(e[n], function(a) {
      return s + encodeURIComponent(tb(a));
    }).join(t) : s + encodeURIComponent(tb(e[n]));
  }).join(t) : i ? encodeURIComponent(tb(i)) + r + encodeURIComponent(tb(e)) : "";
}
function FV(e, t) {
  if (e.map)
    return e.map(t);
  for (var r = [], i = 0; i < e.length; i++)
    r.push(t(e[i], i));
  return r;
}
var CCe = Object.keys || function(e) {
  var t = [];
  for (var r in e)
    Object.prototype.hasOwnProperty.call(e, r) && t.push(r);
  return t;
};
function jV(e, t, r, i) {
  t = t || "&", r = r || "=";
  var n = {};
  if (typeof e != "string" || e.length === 0)
    return n;
  var s = /\+/g;
  e = e.split(t);
  var a = 1e3;
  i && typeof i.maxKeys == "number" && (a = i.maxKeys);
  var o = e.length;
  a > 0 && o > a && (o = a);
  for (var l = 0; l < o; ++l) {
    var u = e[l].replace(s, "%20"), c = u.indexOf(r), f, h, m, g;
    c >= 0 ? (f = u.substr(0, c), h = u.substr(c + 1)) : (f = u, h = ""), m = decodeURIComponent(f), g = decodeURIComponent(h), wCe(n, m) ? dce(n[m]) ? n[m].push(g) : n[m] = [n[m], g] : n[m] = g;
  }
  return n;
}
const mce = Fh.URL, yce = Fh.URLSearchParams;
var _Ce = {
  parse: AT,
  resolve: Tce,
  resolveObject: Sce,
  fileURLToPath: bce,
  format: vce,
  Url: Ao,
  // WHATWG API
  URL: mce,
  URLSearchParams: yce
};
function Ao() {
  this.protocol = null, this.slashes = null, this.auth = null, this.host = null, this.port = null, this.hostname = null, this.hash = null, this.search = null, this.query = null, this.pathname = null, this.path = null, this.href = null;
}
var ICe = /^([a-z0-9.+-]+:)/i, kCe = /:[0-9]*$/, OCe = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/, NCe = ["<", ">", '"', "`", " ", "\r", "\n", "	"], DCe = ["{", "}", "|", "\\", "^", "`"].concat(NCe), rF = ["'"].concat(DCe), $V = ["%", "/", "?", ";", "#"].concat(rF), UV = ["/", "?", "#"], LCe = 255, qV = /^[+a-z0-9A-Z_-]{0,63}$/, MCe = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, RCe = {
  javascript: !0,
  "javascript:": !0
}, iF = {
  javascript: !0,
  "javascript:": !0
}, _y = {
  http: !0,
  https: !0,
  ftp: !0,
  gopher: !0,
  file: !0,
  "http:": !0,
  "https:": !0,
  "ftp:": !0,
  "gopher:": !0,
  "file:": !0
};
function AT(e, t, r) {
  if (e && Df(e) && e instanceof Ao)
    return e;
  var i = new Ao();
  return i.parse(e, t, r), i;
}
Ao.prototype.parse = function(e, t, r) {
  return gce(this, e, t, r);
};
function gce(e, t, r, i) {
  if (!qh(t))
    throw new TypeError("Parameter 'url' must be a string, not " + typeof t);
  var n = t.indexOf("?"), s = n !== -1 && n < t.indexOf("#") ? "?" : "#", a = t.split(s), o = /\\/g;
  a[0] = a[0].replace(o, "/"), t = a.join(s);
  var l = t;
  if (l = l.trim(), !i && t.split("#").length === 1) {
    var u = OCe.exec(l);
    if (u)
      return e.path = l, e.href = l, e.pathname = u[1], u[2] ? (e.search = u[2], r ? e.query = jV(e.search.substr(1)) : e.query = e.search.substr(1)) : r && (e.search = "", e.query = {}), e;
  }
  var c = ICe.exec(l);
  if (c) {
    c = c[0];
    var f = c.toLowerCase();
    e.protocol = f, l = l.substr(c.length);
  }
  if (i || c || l.match(/^\/\/[^@\/]+@[^@\/]+/)) {
    var h = l.substr(0, 2) === "//";
    h && !(c && iF[c]) && (l = l.substr(2), e.slashes = !0);
  }
  var m, g, y, v;
  if (!iF[c] && (h || c && !_y[c])) {
    var T = -1;
    for (m = 0; m < UV.length; m++)
      g = l.indexOf(UV[m]), g !== -1 && (T === -1 || g < T) && (T = g);
    var S, P;
    for (T === -1 ? P = l.lastIndexOf("@") : P = l.lastIndexOf("@", T), P !== -1 && (S = l.slice(0, P), l = l.slice(P + 1), e.auth = decodeURIComponent(S)), T = -1, m = 0; m < $V.length; m++)
      g = l.indexOf($V[m]), g !== -1 && (T === -1 || g < T) && (T = g);
    T === -1 && (T = l.length), e.host = l.slice(0, T), l = l.slice(T), xce(e), e.hostname = e.hostname || "";
    var x = e.hostname[0] === "[" && e.hostname[e.hostname.length - 1] === "]";
    if (!x) {
      var C = e.hostname.split(/\./);
      for (m = 0, y = C.length; m < y; m++) {
        var D = C[m];
        if (D && !D.match(qV)) {
          for (var w = "", A = 0, I = D.length; A < I; A++)
            D.charCodeAt(A) > 127 ? w += "x" : w += D[A];
          if (!w.match(qV)) {
            var L = C.slice(0, m), O = C.slice(m + 1), F = D.match(MCe);
            F && (L.push(F[1]), O.unshift(F[2])), O.length && (l = "/" + O.join(".") + l), e.hostname = L.join(".");
            break;
          }
        }
      }
    }
    e.hostname.length > LCe ? e.hostname = "" : e.hostname = e.hostname.toLowerCase(), x || (e.hostname = lAe(e.hostname)), v = e.port ? ":" + e.port : "";
    var q = e.hostname || "";
    e.host = q + v, e.href += e.host, x && (e.hostname = e.hostname.substr(1, e.hostname.length - 2), l[0] !== "/" && (l = "/" + l));
  }
  if (!RCe[f])
    for (m = 0, y = rF.length; m < y; m++) {
      var j = rF[m];
      if (l.indexOf(j) !== -1) {
        var N = encodeURIComponent(j);
        N === j && (N = escape(j)), l = l.split(j).join(N);
      }
    }
  var M = l.indexOf("#");
  M !== -1 && (e.hash = l.substr(M), l = l.slice(0, M));
  var R = l.indexOf("?");
  if (R !== -1 ? (e.search = l.substr(R), e.query = l.substr(R + 1), r && (e.query = jV(e.query)), l = l.slice(0, R)) : r && (e.search = "", e.query = {}), l && (e.pathname = l), _y[f] && e.hostname && !e.pathname && (e.pathname = "/"), e.pathname || e.search) {
    v = e.pathname || "";
    var $ = e.search || "";
    e.path = v + $;
  }
  return e.href = _$(e), e;
}
function bce(e) {
  if (typeof e == "string")
    e = new Ao().parse(e);
  else if (!(e instanceof Ao))
    throw new TypeError('The "path" argument must be of type string or an instance of URL. Received type ' + typeof e + String(e));
  if (e.protocol !== "file:")
    throw new TypeError("The URL must be of scheme file");
  return BCe(e);
}
function BCe(e) {
  const t = e.pathname;
  for (let r = 0; r < t.length; r++)
    if (t[r] === "%") {
      const i = t.codePointAt(r + 2) | 32;
      if (t[r + 1] === "2" && i === 102)
        throw new TypeError(
          "must not include encoded / characters"
        );
    }
  return decodeURIComponent(t);
}
function vce(e) {
  return qh(e) && (e = gce({}, e)), _$(e);
}
function _$(e) {
  var t = e.auth || "";
  t && (t = encodeURIComponent(t), t = t.replace(/%3A/i, ":"), t += "@");
  var r = e.protocol || "", i = e.pathname || "", n = e.hash || "", s = !1, a = "";
  e.host ? s = t + e.host : e.hostname && (s = t + (e.hostname.indexOf(":") === -1 ? e.hostname : "[" + this.hostname + "]"), e.port && (s += ":" + e.port)), e.query && Df(e.query) && Object.keys(e.query).length && (a = ACe(e.query));
  var o = e.search || a && "?" + a || "";
  return r && r.substr(-1) !== ":" && (r += ":"), e.slashes || (!r || _y[r]) && s !== !1 ? (s = "//" + (s || ""), i && i.charAt(0) !== "/" && (i = "/" + i)) : s || (s = ""), n && n.charAt(0) !== "#" && (n = "#" + n), o && o.charAt(0) !== "?" && (o = "?" + o), i = i.replace(/[?#]/g, function(l) {
    return encodeURIComponent(l);
  }), o = o.replace("#", "%23"), r + s + i + o + n;
}
Ao.prototype.format = function() {
  return _$(this);
};
function Tce(e, t) {
  return AT(e, !1, !0).resolve(t);
}
Ao.prototype.resolve = function(e) {
  return this.resolveObject(AT(e, !1, !0)).format();
};
function Sce(e, t) {
  return e ? AT(e, !1, !0).resolveObject(t) : t;
}
Ao.prototype.resolveObject = function(e) {
  if (qh(e)) {
    var t = new Ao();
    t.parse(e, !1, !0), e = t;
  }
  for (var r = new Ao(), i = Object.keys(this), n = 0; n < i.length; n++) {
    var s = i[n];
    r[s] = this[s];
  }
  if (r.hash = e.hash, e.href === "")
    return r.href = r.format(), r;
  if (e.slashes && !e.protocol) {
    for (var a = Object.keys(e), o = 0; o < a.length; o++) {
      var l = a[o];
      l !== "protocol" && (r[l] = e[l]);
    }
    return _y[r.protocol] && r.hostname && !r.pathname && (r.path = r.pathname = "/"), r.href = r.format(), r;
  }
  var u;
  if (e.protocol && e.protocol !== r.protocol) {
    if (!_y[e.protocol]) {
      for (var c = Object.keys(e), f = 0; f < c.length; f++) {
        var h = c[f];
        r[h] = e[h];
      }
      return r.href = r.format(), r;
    }
    if (r.protocol = e.protocol, !e.host && !iF[e.protocol]) {
      for (u = (e.pathname || "").split("/"); u.length && !(e.host = u.shift()); )
        ;
      e.host || (e.host = ""), e.hostname || (e.hostname = ""), u[0] !== "" && u.unshift(""), u.length < 2 && u.unshift(""), r.pathname = u.join("/");
    } else
      r.pathname = e.pathname;
    if (r.search = e.search, r.query = e.query, r.host = e.host || "", r.auth = e.auth, r.hostname = e.hostname || e.host, r.port = e.port, r.pathname || r.search) {
      var m = r.pathname || "", g = r.search || "";
      r.path = m + g;
    }
    return r.slashes = r.slashes || e.slashes, r.href = r.format(), r;
  }
  var y = r.pathname && r.pathname.charAt(0) === "/", v = e.host || e.pathname && e.pathname.charAt(0) === "/", T = v || y || r.host && e.pathname, S = T, P = r.pathname && r.pathname.split("/") || [], x = r.protocol && !_y[r.protocol];
  u = e.pathname && e.pathname.split("/") || [], x && (r.hostname = "", r.port = null, r.host && (P[0] === "" ? P[0] = r.host : P.unshift(r.host)), r.host = "", e.protocol && (e.hostname = null, e.port = null, e.host && (u[0] === "" ? u[0] = e.host : u.unshift(e.host)), e.host = null), T = T && (u[0] === "" || P[0] === ""));
  var C;
  if (v)
    r.host = e.host || e.host === "" ? e.host : r.host, r.hostname = e.hostname || e.hostname === "" ? e.hostname : r.hostname, r.search = e.search, r.query = e.query, P = u;
  else if (u.length)
    P || (P = []), P.pop(), P = P.concat(u), r.search = e.search, r.query = e.query;
  else if (!E$(e.search))
    return x && (r.hostname = r.host = P.shift(), C = r.host && r.host.indexOf("@") > 0 ? r.host.split("@") : !1, C && (r.auth = C.shift(), r.host = r.hostname = C.shift())), r.search = e.search, r.query = e.query, (!ff(r.pathname) || !ff(r.search)) && (r.path = (r.pathname ? r.pathname : "") + (r.search ? r.search : "")), r.href = r.format(), r;
  if (!P.length)
    return r.pathname = null, r.search ? r.path = "/" + r.search : r.path = null, r.href = r.format(), r;
  for (var D = P.slice(-1)[0], w = (r.host || e.host || P.length > 1) && (D === "." || D === "..") || D === "", A = 0, I = P.length; I >= 0; I--)
    D = P[I], D === "." ? P.splice(I, 1) : D === ".." ? (P.splice(I, 1), A++) : A && (P.splice(I, 1), A--);
  if (!T && !S)
    for (; A--; A)
      P.unshift("..");
  T && P[0] !== "" && (!P[0] || P[0].charAt(0) !== "/") && P.unshift(""), w && P.join("/").substr(-1) !== "/" && P.push("");
  var L = P[0] === "" || P[0] && P[0].charAt(0) === "/";
  return x && (r.hostname = r.host = L ? "" : P.length ? P.shift() : "", C = r.host && r.host.indexOf("@") > 0 ? r.host.split("@") : !1, C && (r.auth = C.shift(), r.host = r.hostname = C.shift())), T = T || r.host && P.length, T && !L && P.unshift(""), P.length ? r.pathname = P.join("/") : (r.pathname = null, r.path = null), (!ff(r.pathname) || !ff(r.search)) && (r.path = (r.pathname ? r.pathname : "") + (r.search ? r.search : "")), r.auth = e.auth || r.auth, r.slashes = r.slashes || e.slashes, r.href = r.format(), r;
};
Ao.prototype.parseHost = function() {
  return xce(this);
};
function xce(e) {
  var t = e.host, r = kCe.exec(t);
  r && (r = r[0], r !== ":" && (e.port = r.substr(1)), t = t.substr(0, t.length - r.length)), t && (e.hostname = t);
}
var FCe = /* @__PURE__ */ Object.freeze({
  __proto__: null,
  URL: mce,
  URLSearchParams: yce,
  Url: Ao,
  default: _Ce,
  fileURLToPath: bce,
  format: vce,
  parse: AT,
  resolve: Tce,
  resolveObject: Sce
});
const jCe = Symbol("ssrInterpolate"), $Ce = Symbol("ssrRenderVNode"), UCe = Symbol("ssrRenderComponent"), qCe = Symbol("ssrRenderSlot"), VCe = Symbol("ssrRenderSlotInner"), WCe = Symbol("ssrRenderClass"), HCe = Symbol("ssrRenderStyle"), KCe = Symbol("ssrRenderAttrs"), zCe = Symbol("ssrRenderAttr"), GCe = Symbol("ssrRenderDynamicAttr"), YCe = Symbol("ssrRenderList"), XCe = Symbol("ssrIncludeBooleanAttr"), JCe = Symbol("ssrLooseEqual"), QCe = Symbol("ssrLooseContain"), ZCe = Symbol("ssrRenderDynamicModel"), e_e = Symbol("ssrGetDynamicModelProps"), t_e = Symbol("ssrRenderTeleport"), r_e = Symbol("ssrRenderSuspense"), i_e = Symbol("ssrGetDirectiveProps"), n_e = {
  [jCe]: "ssrInterpolate",
  [$Ce]: "ssrRenderVNode",
  [UCe]: "ssrRenderComponent",
  [qCe]: "ssrRenderSlot",
  [VCe]: "ssrRenderSlotInner",
  [WCe]: "ssrRenderClass",
  [HCe]: "ssrRenderStyle",
  [KCe]: "ssrRenderAttrs",
  [zCe]: "ssrRenderAttr",
  [GCe]: "ssrRenderDynamicAttr",
  [YCe]: "ssrRenderList",
  [XCe]: "ssrIncludeBooleanAttr",
  [JCe]: "ssrLooseEqual",
  [QCe]: "ssrLooseContain",
  [ZCe]: "ssrRenderDynamicModel",
  [e_e]: "ssrGetDynamicModelProps",
  [t_e]: "ssrRenderTeleport",
  [r_e]: "ssrRenderSuspense",
  [i_e]: "ssrGetDirectiveProps"
};
h4(n_e);
var s_e = Object.defineProperty, VV = Object.getOwnPropertySymbols, a_e = Object.prototype.hasOwnProperty, o_e = Object.prototype.propertyIsEnumerable, WV = (e, t, r) => t in e ? s_e(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, HV = (e, t) => {
  for (var r in t || (t = {}))
    a_e.call(t, r) && WV(e, r, t[r]);
  if (VV)
    for (var r of VV(t))
      o_e.call(t, r) && WV(e, r, t[r]);
  return e;
};
const [l_e, u_e] = r$(!0);
[...l_e, ...f$];
HV(HV({}, u_e), h$);
var c_e = {}, p_e = /* @__PURE__ */ Object.freeze({
  __proto__: null,
  default: c_e
}), f_e = /* @__PURE__ */ ET(p_e), I$ = /* @__PURE__ */ ET(Cwe), h_e = /* @__PURE__ */ ET(PCe), Ov = {}, d_e = {
  get exports() {
    return Ov;
  },
  set exports(e) {
    Ov = e;
  }
};
function Ece() {
  return !1;
}
function Pce() {
  throw new Error("tty.ReadStream is not implemented");
}
function wce() {
  throw new Error("tty.ReadStream is not implemented");
}
var m_e = {
  isatty: Ece,
  ReadStream: Pce,
  WriteStream: wce
}, y_e = /* @__PURE__ */ Object.freeze({
  __proto__: null,
  ReadStream: Pce,
  WriteStream: wce,
  default: m_e,
  isatty: Ece
}), g_e = /* @__PURE__ */ ET(y_e);
let b_e = g_e, v_e = !("NO_COLOR" in {} || Bs.argv.includes("--no-color")) && ("FORCE_COLOR" in {} || Bs.argv.includes("--color") || !1 || b_e.isatty(1) && Bs.env.TERM !== "dumb" || "CI" in {}), ln = (e, t, r = e) => (i) => {
  let n = "" + i, s = n.indexOf(t, e.length);
  return ~s ? e + Ace(n, t, r, s) + t : e + n + t;
}, Ace = (e, t, r, i) => {
  let n = e.substring(0, i) + r, s = e.substring(i + t.length), a = s.indexOf(t);
  return ~a ? n + Ace(s, t, r, a) : n + s;
}, Cce = (e = v_e) => ({
  isColorSupported: e,
  reset: e ? (t) => "\x1B[0m".concat(t, "\x1B[0m") : String,
  bold: e ? ln("\x1B[1m", "\x1B[22m", "\x1B[22m\x1B[1m") : String,
  dim: e ? ln("\x1B[2m", "\x1B[22m", "\x1B[22m\x1B[2m") : String,
  italic: e ? ln("\x1B[3m", "\x1B[23m") : String,
  underline: e ? ln("\x1B[4m", "\x1B[24m") : String,
  inverse: e ? ln("\x1B[7m", "\x1B[27m") : String,
  hidden: e ? ln("\x1B[8m", "\x1B[28m") : String,
  strikethrough: e ? ln("\x1B[9m", "\x1B[29m") : String,
  black: e ? ln("\x1B[30m", "\x1B[39m") : String,
  red: e ? ln("\x1B[31m", "\x1B[39m") : String,
  green: e ? ln("\x1B[32m", "\x1B[39m") : String,
  yellow: e ? ln("\x1B[33m", "\x1B[39m") : String,
  blue: e ? ln("\x1B[34m", "\x1B[39m") : String,
  magenta: e ? ln("\x1B[35m", "\x1B[39m") : String,
  cyan: e ? ln("\x1B[36m", "\x1B[39m") : String,
  white: e ? ln("\x1B[37m", "\x1B[39m") : String,
  gray: e ? ln("\x1B[90m", "\x1B[39m") : String,
  bgBlack: e ? ln("\x1B[40m", "\x1B[49m") : String,
  bgRed: e ? ln("\x1B[41m", "\x1B[49m") : String,
  bgGreen: e ? ln("\x1B[42m", "\x1B[49m") : String,
  bgYellow: e ? ln("\x1B[43m", "\x1B[49m") : String,
  bgBlue: e ? ln("\x1B[44m", "\x1B[49m") : String,
  bgMagenta: e ? ln("\x1B[45m", "\x1B[49m") : String,
  bgCyan: e ? ln("\x1B[46m", "\x1B[49m") : String,
  bgWhite: e ? ln("\x1B[47m", "\x1B[49m") : String
});
d_e.exports = Cce();
Ov.createColors = Cce;
const hM = "'".charCodeAt(0), KV = '"'.charCodeAt(0), VS = "\\".charCodeAt(0), zV = "/".charCodeAt(0), WS = "\n".charCodeAt(0), rb = " ".charCodeAt(0), HS = "\f".charCodeAt(0), KS = "	".charCodeAt(0), zS = "\r".charCodeAt(0), T_e = "[".charCodeAt(0), S_e = "]".charCodeAt(0), x_e = "(".charCodeAt(0), E_e = ")".charCodeAt(0), P_e = "{".charCodeAt(0), w_e = "}".charCodeAt(0), A_e = ";".charCodeAt(0), C_e = "*".charCodeAt(0), __e = ":".charCodeAt(0), I_e = "@".charCodeAt(0), GS = /[\t\n\f\r "#'()/;[\\\]{}]/g, YS = /[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g, k_e = /.[\n"'(/\\]/, GV = /[\da-f]/i;
var _ce = function(t, r = {}) {
  let i = t.css.valueOf(), n = r.ignoreErrors, s, a, o, l, u, c, f, h, m, g, y = i.length, v = 0, T = [], S = [];
  function P() {
    return v;
  }
  function x(A) {
    throw t.error("Unclosed " + A, v);
  }
  function C() {
    return S.length === 0 && v >= y;
  }
  function D(A) {
    if (S.length)
      return S.pop();
    if (v >= y)
      return;
    let I = A ? A.ignoreUnclosed : !1;
    switch (s = i.charCodeAt(v), s) {
      case WS:
      case rb:
      case KS:
      case zS:
      case HS: {
        a = v;
        do
          a += 1, s = i.charCodeAt(a);
        while (s === rb || s === WS || s === KS || s === zS || s === HS);
        g = ["space", i.slice(v, a)], v = a - 1;
        break;
      }
      case T_e:
      case S_e:
      case P_e:
      case w_e:
      case __e:
      case A_e:
      case E_e: {
        let L = String.fromCharCode(s);
        g = [L, L, v];
        break;
      }
      case x_e: {
        if (h = T.length ? T.pop()[1] : "", m = i.charCodeAt(v + 1), h === "url" && m !== hM && m !== KV && m !== rb && m !== WS && m !== KS && m !== HS && m !== zS) {
          a = v;
          do {
            if (c = !1, a = i.indexOf(")", a + 1), a === -1)
              if (n || I) {
                a = v;
                break;
              } else
                x("bracket");
            for (f = a; i.charCodeAt(f - 1) === VS; )
              f -= 1, c = !c;
          } while (c);
          g = ["brackets", i.slice(v, a + 1), v, a], v = a;
        } else
          a = i.indexOf(")", v + 1), l = i.slice(v, a + 1), a === -1 || k_e.test(l) ? g = ["(", "(", v] : (g = ["brackets", l, v, a], v = a);
        break;
      }
      case hM:
      case KV: {
        o = s === hM ? "'" : '"', a = v;
        do {
          if (c = !1, a = i.indexOf(o, a + 1), a === -1)
            if (n || I) {
              a = v + 1;
              break;
            } else
              x("string");
          for (f = a; i.charCodeAt(f - 1) === VS; )
            f -= 1, c = !c;
        } while (c);
        g = ["string", i.slice(v, a + 1), v, a], v = a;
        break;
      }
      case I_e: {
        GS.lastIndex = v + 1, GS.test(i), GS.lastIndex === 0 ? a = i.length - 1 : a = GS.lastIndex - 2, g = ["at-word", i.slice(v, a + 1), v, a], v = a;
        break;
      }
      case VS: {
        for (a = v, u = !0; i.charCodeAt(a + 1) === VS; )
          a += 1, u = !u;
        if (s = i.charCodeAt(a + 1), u && s !== zV && s !== rb && s !== WS && s !== KS && s !== zS && s !== HS && (a += 1, GV.test(i.charAt(a)))) {
          for (; GV.test(i.charAt(a + 1)); )
            a += 1;
          i.charCodeAt(a + 1) === rb && (a += 1);
        }
        g = ["word", i.slice(v, a + 1), v, a], v = a;
        break;
      }
      default: {
        s === zV && i.charCodeAt(v + 1) === C_e ? (a = i.indexOf("*/", v + 2) + 1, a === 0 && (n || I ? a = i.length : x("comment")), g = ["comment", i.slice(v, a + 1), v, a], v = a) : (YS.lastIndex = v + 1, YS.test(i), YS.lastIndex === 0 ? a = i.length - 1 : a = YS.lastIndex - 2, g = ["word", i.slice(v, a + 1), v, a], T.push(g), v = a);
        break;
      }
    }
    return v++, g;
  }
  function w(A) {
    S.push(A);
  }
  return {
    back: w,
    nextToken: D,
    endOfFile: C,
    position: P
  };
};
let Gs = Ov, O_e = _ce, Ice;
function N_e(e) {
  Ice = e;
}
const D_e = {
  brackets: Gs.cyan,
  "at-word": Gs.cyan,
  comment: Gs.gray,
  string: Gs.green,
  class: Gs.yellow,
  hash: Gs.magenta,
  call: Gs.cyan,
  "(": Gs.cyan,
  ")": Gs.cyan,
  "{": Gs.yellow,
  "}": Gs.yellow,
  "[": Gs.yellow,
  "]": Gs.yellow,
  ":": Gs.yellow,
  ";": Gs.yellow
};
function L_e([e, t], r) {
  if (e === "word") {
    if (t[0] === ".")
      return "class";
    if (t[0] === "#")
      return "hash";
  }
  if (!r.endOfFile()) {
    let i = r.nextToken();
    if (r.back(i), i[0] === "brackets" || i[0] === "(")
      return "call";
  }
  return e;
}
function kce(e) {
  let t = O_e(new Ice(e), { ignoreErrors: !0 }), r = "";
  for (; !t.endOfFile(); ) {
    let i = t.nextToken(), n = D_e[L_e(i, t)];
    n ? r += i[1].split(/\r?\n/).map((s) => n(s)).join("\n") : r += i[1];
  }
  return r;
}
kce.registerInput = N_e;
var Oce = kce;
let YV = Ov, XV = Oce, nF = class Nce extends Error {
  constructor(t, r, i, n, s, a) {
    super(t), this.name = "CssSyntaxError", this.reason = t, s && (this.file = s), n && (this.source = n), a && (this.plugin = a), typeof r != "undefined" && typeof i != "undefined" && (typeof r == "number" ? (this.line = r, this.column = i) : (this.line = r.line, this.column = r.column, this.endLine = i.line, this.endColumn = i.column)), this.setMessage(), Error.captureStackTrace && Error.captureStackTrace(this, Nce);
  }
  setMessage() {
    this.message = this.plugin ? this.plugin + ": " : "", this.message += this.file ? this.file : "<css input>", typeof this.line != "undefined" && (this.message += ":" + this.line + ":" + this.column), this.message += ": " + this.reason;
  }
  showSourceCode(t) {
    if (!this.source)
      return "";
    let r = this.source;
    t == null && (t = YV.isColorSupported), XV && t && (r = XV(r));
    let i = r.split(/\r?\n/), n = Math.max(this.line - 3, 0), s = Math.min(this.line + 2, i.length), a = String(s).length, o, l;
    if (t) {
      let { bold: u, red: c, gray: f } = YV.createColors(!0);
      o = (h) => u(c(h)), l = (h) => f(h);
    } else
      o = l = (u) => u;
    return i.slice(n, s).map((u, c) => {
      let f = n + 1 + c, h = " " + (" " + f).slice(-a) + " | ";
      if (f === this.line) {
        let m = l(h.replace(/\d/g, " ")) + u.slice(0, this.column - 1).replace(/[^\t]/g, " ");
        return o(">") + l(h) + u + "\n " + m + o("^");
      }
      return " " + l(h) + u;
    }).join("\n");
  }
  toString() {
    let t = this.showSourceCode();
    return t && (t = "\n\n" + t + "\n"), this.name + ": " + this.message + t;
  }
};
var k$ = nF;
nF.default = nF;
var CT = {};
CT.isClean = Symbol("isClean");
CT.my = Symbol("my");
const JV = {
  colon: ": ",
  indent: "    ",
  beforeDecl: "\n",
  beforeRule: "\n",
  beforeOpen: " ",
  beforeClose: "\n",
  beforeComment: "\n",
  after: "\n",
  emptyBody: "",
  commentLeft: " ",
  commentRight: " ",
  semicolon: !1
};
function M_e(e) {
  return e[0].toUpperCase() + e.slice(1);
}
let sF = class {
  constructor(t) {
    this.builder = t;
  }
  stringify(t, r) {
    if (!this[t.type])
      throw new Error(
        "Unknown AST node type " + t.type + ". Maybe you need to change PostCSS stringifier."
      );
    this[t.type](t, r);
  }
  document(t) {
    this.body(t);
  }
  root(t) {
    this.body(t), t.raws.after && this.builder(t.raws.after);
  }
  comment(t) {
    let r = this.raw(t, "left", "commentLeft"), i = this.raw(t, "right", "commentRight");
    this.builder("/*" + r + t.text + i + "*/", t);
  }
  decl(t, r) {
    let i = this.raw(t, "between", "colon"), n = t.prop + i + this.rawValue(t, "value");
    t.important && (n += t.raws.important || " !important"), r && (n += ";"), this.builder(n, t);
  }
  rule(t) {
    this.block(t, this.rawValue(t, "selector")), t.raws.ownSemicolon && this.builder(t.raws.ownSemicolon, t, "end");
  }
  atrule(t, r) {
    let i = "@" + t.name, n = t.params ? this.rawValue(t, "params") : "";
    if (typeof t.raws.afterName != "undefined" ? i += t.raws.afterName : n && (i += " "), t.nodes)
      this.block(t, i + n);
    else {
      let s = (t.raws.between || "") + (r ? ";" : "");
      this.builder(i + n + s, t);
    }
  }
  body(t) {
    let r = t.nodes.length - 1;
    for (; r > 0 && t.nodes[r].type === "comment"; )
      r -= 1;
    let i = this.raw(t, "semicolon");
    for (let n = 0; n < t.nodes.length; n++) {
      let s = t.nodes[n], a = this.raw(s, "before");
      a && this.builder(a), this.stringify(s, r !== n || i);
    }
  }
  block(t, r) {
    let i = this.raw(t, "between", "beforeOpen");
    this.builder(r + i + "{", t, "start");
    let n;
    t.nodes && t.nodes.length ? (this.body(t), n = this.raw(t, "after")) : n = this.raw(t, "after", "emptyBody"), n && this.builder(n), this.builder("}", t, "end");
  }
  raw(t, r, i) {
    let n;
    if (i || (i = r), r && (n = t.raws[r], typeof n != "undefined"))
      return n;
    let s = t.parent;
    if (i === "before" && (!s || s.type === "root" && s.first === t || s && s.type === "document"))
      return "";
    if (!s)
      return JV[i];
    let a = t.root();
    if (a.rawCache || (a.rawCache = {}), typeof a.rawCache[i] != "undefined")
      return a.rawCache[i];
    if (i === "before" || i === "after")
      return this.beforeAfter(t, i);
    {
      let o = "raw" + M_e(i);
      this[o] ? n = this[o](a, t) : a.walk((l) => {
        if (n = l.raws[r], typeof n != "undefined")
          return !1;
      });
    }
    return typeof n == "undefined" && (n = JV[i]), a.rawCache[i] = n, n;
  }
  rawSemicolon(t) {
    let r;
    return t.walk((i) => {
      if (i.nodes && i.nodes.length && i.last.type === "decl" && (r = i.raws.semicolon, typeof r != "undefined"))
        return !1;
    }), r;
  }
  rawEmptyBody(t) {
    let r;
    return t.walk((i) => {
      if (i.nodes && i.nodes.length === 0 && (r = i.raws.after, typeof r != "undefined"))
        return !1;
    }), r;
  }
  rawIndent(t) {
    if (t.raws.indent)
      return t.raws.indent;
    let r;
    return t.walk((i) => {
      let n = i.parent;
      if (n && n !== t && n.parent && n.parent === t && typeof i.raws.before != "undefined") {
        let s = i.raws.before.split("\n");
        return r = s[s.length - 1], r = r.replace(/\S/g, ""), !1;
      }
    }), r;
  }
  rawBeforeComment(t, r) {
    let i;
    return t.walkComments((n) => {
      if (typeof n.raws.before != "undefined")
        return i = n.raws.before, i.includes("\n") && (i = i.replace(/[^\n]+$/, "")), !1;
    }), typeof i == "undefined" ? i = this.raw(r, null, "beforeDecl") : i && (i = i.replace(/\S/g, "")), i;
  }
  rawBeforeDecl(t, r) {
    let i;
    return t.walkDecls((n) => {
      if (typeof n.raws.before != "undefined")
        return i = n.raws.before, i.includes("\n") && (i = i.replace(/[^\n]+$/, "")), !1;
    }), typeof i == "undefined" ? i = this.raw(r, null, "beforeRule") : i && (i = i.replace(/\S/g, "")), i;
  }
  rawBeforeRule(t) {
    let r;
    return t.walk((i) => {
      if (i.nodes && (i.parent !== t || t.first !== i) && typeof i.raws.before != "undefined")
        return r = i.raws.before, r.includes("\n") && (r = r.replace(/[^\n]+$/, "")), !1;
    }), r && (r = r.replace(/\S/g, "")), r;
  }
  rawBeforeClose(t) {
    let r;
    return t.walk((i) => {
      if (i.nodes && i.nodes.length > 0 && typeof i.raws.after != "undefined")
        return r = i.raws.after, r.includes("\n") && (r = r.replace(/[^\n]+$/, "")), !1;
    }), r && (r = r.replace(/\S/g, "")), r;
  }
  rawBeforeOpen(t) {
    let r;
    return t.walk((i) => {
      if (i.type !== "decl" && (r = i.raws.between, typeof r != "undefined"))
        return !1;
    }), r;
  }
  rawColon(t) {
    let r;
    return t.walkDecls((i) => {
      if (typeof i.raws.between != "undefined")
        return r = i.raws.between.replace(/[^\s:]/g, ""), !1;
    }), r;
  }
  beforeAfter(t, r) {
    let i;
    t.type === "decl" ? i = this.raw(t, null, "beforeDecl") : t.type === "comment" ? i = this.raw(t, null, "beforeComment") : r === "before" ? i = this.raw(t, null, "beforeRule") : i = this.raw(t, null, "beforeClose");
    let n = t.parent, s = 0;
    for (; n && n.type !== "root"; )
      s += 1, n = n.parent;
    if (i.includes("\n")) {
      let a = this.raw(t, null, "indent");
      if (a.length)
        for (let o = 0; o < s; o++)
          i += a;
    }
    return i;
  }
  rawValue(t, r) {
    let i = t[r], n = t.raws[r];
    return n && n.value === i ? n.raw : i;
  }
};
var Dce = sF;
sF.default = sF;
let R_e = Dce;
function aF(e, t) {
  new R_e(t).stringify(e);
}
var mC = aF;
aF.default = aF;
let { isClean: XS, my: B_e } = CT, F_e = k$, j_e = Dce, $_e = mC;
function oF(e, t) {
  let r = new e.constructor();
  for (let i in e) {
    if (!Object.prototype.hasOwnProperty.call(e, i) || i === "proxyCache")
      continue;
    let n = e[i], s = typeof n;
    i === "parent" && s === "object" ? t && (r[i] = t) : i === "source" ? r[i] = n : Array.isArray(n) ? r[i] = n.map((a) => oF(a, r)) : (s === "object" && n !== null && (n = oF(n)), r[i] = n);
  }
  return r;
}
let lF = class {
  constructor(t = {}) {
    this.raws = {}, this[XS] = !1, this[B_e] = !0;
    for (let r in t)
      if (r === "nodes") {
        this.nodes = [];
        for (let i of t[r])
          typeof i.clone == "function" ? this.append(i.clone()) : this.append(i);
      } else
        this[r] = t[r];
  }
  error(t, r = {}) {
    if (this.source) {
      let { start: i, end: n } = this.rangeBy(r);
      return this.source.input.error(
        t,
        { line: i.line, column: i.column },
        { line: n.line, column: n.column },
        r
      );
    }
    return new F_e(t);
  }
  warn(t, r, i) {
    let n = { node: this };
    for (let s in i)
      n[s] = i[s];
    return t.warn(r, n);
  }
  remove() {
    return this.parent && this.parent.removeChild(this), this.parent = void 0, this;
  }
  toString(t = $_e) {
    t.stringify && (t = t.stringify);
    let r = "";
    return t(this, (i) => {
      r += i;
    }), r;
  }
  assign(t = {}) {
    for (let r in t)
      this[r] = t[r];
    return this;
  }
  clone(t = {}) {
    let r = oF(this);
    for (let i in t)
      r[i] = t[i];
    return r;
  }
  cloneBefore(t = {}) {
    let r = this.clone(t);
    return this.parent.insertBefore(this, r), r;
  }
  cloneAfter(t = {}) {
    let r = this.clone(t);
    return this.parent.insertAfter(this, r), r;
  }
  replaceWith(...t) {
    if (this.parent) {
      let r = this, i = !1;
      for (let n of t)
        n === this ? i = !0 : i ? (this.parent.insertAfter(r, n), r = n) : this.parent.insertBefore(r, n);
      i || this.remove();
    }
    return this;
  }
  next() {
    if (!this.parent)
      return;
    let t = this.parent.index(this);
    return this.parent.nodes[t + 1];
  }
  prev() {
    if (!this.parent)
      return;
    let t = this.parent.index(this);
    return this.parent.nodes[t - 1];
  }
  before(t) {
    return this.parent.insertBefore(this, t), this;
  }
  after(t) {
    return this.parent.insertAfter(this, t), this;
  }
  root() {
    let t = this;
    for (; t.parent && t.parent.type !== "document"; )
      t = t.parent;
    return t;
  }
  raw(t, r) {
    return new j_e().raw(this, t, r);
  }
  cleanRaws(t) {
    delete this.raws.before, delete this.raws.after, t || delete this.raws.between;
  }
  toJSON(t, r) {
    let i = {}, n = r == null;
    r = r || /* @__PURE__ */ new Map();
    let s = 0;
    for (let a in this) {
      if (!Object.prototype.hasOwnProperty.call(this, a) || a === "parent" || a === "proxyCache")
        continue;
      let o = this[a];
      if (Array.isArray(o))
        i[a] = o.map((l) => typeof l == "object" && l.toJSON ? l.toJSON(null, r) : l);
      else if (typeof o == "object" && o.toJSON)
        i[a] = o.toJSON(null, r);
      else if (a === "source") {
        let l = r.get(o.input);
        l == null && (l = s, r.set(o.input, s), s++), i[a] = {
          inputId: l,
          start: o.start,
          end: o.end
        };
      } else
        i[a] = o;
    }
    return n && (i.inputs = [...r.keys()].map((a) => a.toJSON())), i;
  }
  positionInside(t) {
    let r = this.toString(), i = this.source.start.column, n = this.source.start.line;
    for (let s = 0; s < t; s++)
      r[s] === "\n" ? (i = 1, n += 1) : i += 1;
    return { line: n, column: i };
  }
  positionBy(t) {
    let r = this.source.start;
    if (t.index)
      r = this.positionInside(t.index);
    else if (t.word) {
      let i = this.toString().indexOf(t.word);
      i !== -1 && (r = this.positionInside(i));
    }
    return r;
  }
  rangeBy(t) {
    let r = {
      line: this.source.start.line,
      column: this.source.start.column
    }, i = this.source.end ? {
      line: this.source.end.line,
      column: this.source.end.column + 1
    } : {
      line: r.line,
      column: r.column + 1
    };
    if (t.word) {
      let n = this.toString().indexOf(t.word);
      n !== -1 && (r = this.positionInside(n), i = this.positionInside(n + t.word.length));
    } else
      t.start ? r = {
        line: t.start.line,
        column: t.start.column
      } : t.index && (r = this.positionInside(t.index)), t.end ? i = {
        line: t.end.line,
        column: t.end.column
      } : t.endIndex ? i = this.positionInside(t.endIndex) : t.index && (i = this.positionInside(t.index + 1));
    return (i.line < r.line || i.line === r.line && i.column <= r.column) && (i = { line: r.line, column: r.column + 1 }), { start: r, end: i };
  }
  getProxyProcessor() {
    return {
      set(t, r, i) {
        return t[r] === i || (t[r] = i, (r === "prop" || r === "value" || r === "name" || r === "params" || r === "important" || /* c8 ignore next */
        r === "text") && t.markDirty()), !0;
      },
      get(t, r) {
        return r === "proxyOf" ? t : r === "root" ? () => t.root().toProxy() : t[r];
      }
    };
  }
  toProxy() {
    return this.proxyCache || (this.proxyCache = new Proxy(this, this.getProxyProcessor())), this.proxyCache;
  }
  addToError(t) {
    if (t.postcssNode = this, t.stack && this.source && /\n\s{4}at /.test(t.stack)) {
      let r = this.source;
      t.stack = t.stack.replace(
        /\n\s{4}at /,
        "$&".concat(r.input.from, ":").concat(r.start.line, ":").concat(r.start.column, "$&")
      );
    }
    return t;
  }
  markDirty() {
    if (this[XS]) {
      this[XS] = !1;
      let t = this;
      for (; t = t.parent; )
        t[XS] = !1;
    }
  }
  get proxyOf() {
    return this;
  }
};
var yC = lF;
lF.default = lF;
let U_e = yC, uF = class extends U_e {
  constructor(t) {
    t && typeof t.value != "undefined" && typeof t.value != "string" && (t = zr($t({}, t), { value: String(t.value) })), super(t), this.type = "decl";
  }
  get variable() {
    return this.prop.startsWith("--") || this.prop[0] === "$";
  }
};
var gC = uF;
uF.default = uF;
var Lce = /* @__PURE__ */ ET(FCe);
let q_e = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", V_e = (e, t = 21) => (r = t) => {
  let i = "", n = r;
  for (; n--; )
    i += e[Math.random() * e.length | 0];
  return i;
}, W_e = (e = 21) => {
  let t = "", r = e;
  for (; r--; )
    t += q_e[Math.random() * 64 | 0];
  return t;
};
var H_e = { nanoid: W_e, customAlphabet: V_e };
let { SourceMapConsumer: QV, SourceMapGenerator: ZV } = hg, { existsSync: K_e, readFileSync: z_e } = f_e, { dirname: dM, join: G_e } = I$;
function Y_e(e) {
  return St ? St.from(e, "base64").toString() : window.atob(e);
}
let cF = class {
  constructor(t, r) {
    if (r.map === !1)
      return;
    this.loadAnnotation(t), this.inline = this.startWith(this.annotation, "data:");
    let i = r.map ? r.map.prev : void 0, n = this.loadMap(r.from, i);
    !this.mapFile && r.from && (this.mapFile = r.from), this.mapFile && (this.root = dM(this.mapFile)), n && (this.text = n);
  }
  consumer() {
    return this.consumerCache || (this.consumerCache = new QV(this.text)), this.consumerCache;
  }
  withContent() {
    return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);
  }
  startWith(t, r) {
    return t ? t.substr(0, r.length) === r : !1;
  }
  getAnnotationURL(t) {
    return t.replace(/^\/\*\s*# sourceMappingURL=/, "").trim();
  }
  loadAnnotation(t) {
    let r = t.match(/\/\*\s*# sourceMappingURL=/gm);
    if (!r)
      return;
    let i = t.lastIndexOf(r.pop()), n = t.indexOf("*/", i);
    i > -1 && n > -1 && (this.annotation = this.getAnnotationURL(t.substring(i, n)));
  }
  decodeInline(t) {
    let r = /^data:application\/json;charset=utf-?8;base64,/, i = /^data:application\/json;base64,/, n = /^data:application\/json;charset=utf-?8,/, s = /^data:application\/json,/;
    if (n.test(t) || s.test(t))
      return decodeURIComponent(t.substr(RegExp.lastMatch.length));
    if (r.test(t) || i.test(t))
      return Y_e(t.substr(RegExp.lastMatch.length));
    let a = t.match(/data:application\/json;([^,]+),/)[1];
    throw new Error("Unsupported source map encoding " + a);
  }
  loadFile(t) {
    if (this.root = dM(t), K_e(t))
      return this.mapFile = t, z_e(t, "utf-8").toString().trim();
  }
  loadMap(t, r) {
    if (r === !1)
      return !1;
    if (r) {
      if (typeof r == "string")
        return r;
      if (typeof r == "function") {
        let i = r(t);
        if (i) {
          let n = this.loadFile(i);
          if (!n)
            throw new Error(
              "Unable to load previous source map: " + i.toString()
            );
          return n;
        }
      } else {
        if (r instanceof QV)
          return ZV.fromSourceMap(r).toString();
        if (r instanceof ZV)
          return r.toString();
        if (this.isMap(r))
          return JSON.stringify(r);
        throw new Error(
          "Unsupported previous source map format: " + r.toString()
        );
      }
    } else {
      if (this.inline)
        return this.decodeInline(this.annotation);
      if (this.annotation) {
        let i = this.annotation;
        return t && (i = G_e(dM(t), i)), this.loadFile(i);
      }
    }
  }
  isMap(t) {
    return typeof t != "object" ? !1 : typeof t.mappings == "string" || typeof t._mappings == "string" || Array.isArray(t.sections);
  }
};
var Mce = cF;
cF.default = cF;
let { SourceMapConsumer: X_e, SourceMapGenerator: J_e } = hg, { fileURLToPath: eW, pathToFileURL: JS } = Lce, { resolve: pF, isAbsolute: fF } = I$, { nanoid: Q_e } = H_e, mM = Oce, tW = k$, Z_e = Mce, yM = Symbol("fromOffsetCache"), eIe = !!(X_e && J_e), rW = !!(pF && fF), Sw = class {
  constructor(t, r = {}) {
    if (t === null || typeof t == "undefined" || typeof t == "object" && !t.toString)
      throw new Error("PostCSS received ".concat(t, " instead of CSS string"));
    if (this.css = t.toString(), this.css[0] === "\uFEFF" || this.css[0] === "" ? (this.hasBOM = !0, this.css = this.css.slice(1)) : this.hasBOM = !1, r.from && (!rW || /^\w+:\/\//.test(r.from) || fF(r.from) ? this.file = r.from : this.file = pF(r.from)), rW && eIe) {
      let i = new Z_e(this.css, r);
      if (i.text) {
        this.map = i;
        let n = i.consumer().file;
        !this.file && n && (this.file = this.mapResolve(n));
      }
    }
    this.file || (this.id = "<input css " + Q_e(6) + ">"), this.map && (this.map.file = this.from);
  }
  fromOffset(t) {
    let r, i;
    if (this[yM])
      i = this[yM];
    else {
      let s = this.css.split("\n");
      i = new Array(s.length);
      let a = 0;
      for (let o = 0, l = s.length; o < l; o++)
        i[o] = a, a += s[o].length + 1;
      this[yM] = i;
    }
    r = i[i.length - 1];
    let n = 0;
    if (t >= r)
      n = i.length - 1;
    else {
      let s = i.length - 2, a;
      for (; n < s; )
        if (a = n + (s - n >> 1), t < i[a])
          s = a - 1;
        else if (t >= i[a + 1])
          n = a + 1;
        else {
          n = a;
          break;
        }
    }
    return {
      line: n + 1,
      col: t - i[n] + 1
    };
  }
  error(t, r, i, n = {}) {
    let s, a, o;
    if (r && typeof r == "object") {
      let u = r, c = i;
      if (typeof u.offset == "number") {
        let f = this.fromOffset(u.offset);
        r = f.line, i = f.col;
      } else
        r = u.line, i = u.column;
      if (typeof c.offset == "number") {
        let f = this.fromOffset(c.offset);
        a = f.line, o = f.col;
      } else
        a = c.line, o = c.column;
    } else if (!i) {
      let u = this.fromOffset(r);
      r = u.line, i = u.col;
    }
    let l = this.origin(r, i, a, o);
    return l ? s = new tW(
      t,
      l.endLine === void 0 ? l.line : { line: l.line, column: l.column },
      l.endLine === void 0 ? l.column : { line: l.endLine, column: l.endColumn },
      l.source,
      l.file,
      n.plugin
    ) : s = new tW(
      t,
      a === void 0 ? r : { line: r, column: i },
      a === void 0 ? i : { line: a, column: o },
      this.css,
      this.file,
      n.plugin
    ), s.input = { line: r, column: i, endLine: a, endColumn: o, source: this.css }, this.file && (JS && (s.input.url = JS(this.file).toString()), s.input.file = this.file), s;
  }
  origin(t, r, i, n) {
    if (!this.map)
      return !1;
    let s = this.map.consumer(), a = s.originalPositionFor({ line: t, column: r });
    if (!a.source)
      return !1;
    let o;
    typeof i == "number" && (o = s.originalPositionFor({ line: i, column: n }));
    let l;
    fF(a.source) ? l = JS(a.source) : l = new URL(
      a.source,
      this.map.consumer().sourceRoot || JS(this.map.mapFile)
    );
    let u = {
      url: l.toString(),
      line: a.line,
      column: a.column,
      endLine: o && o.line,
      endColumn: o && o.column
    };
    if (l.protocol === "file:")
      if (eW)
        u.file = eW(l);
      else
        throw new Error("file: protocol is not available in this PostCSS build");
    let c = s.sourceContentFor(a.source);
    return c && (u.source = c), u;
  }
  mapResolve(t) {
    return /^\w+:\/\//.test(t) ? t : pF(this.map.consumer().sourceRoot || this.map.root || ".", t);
  }
  get from() {
    return this.file || this.id;
  }
  toJSON() {
    let t = {};
    for (let r of ["hasBOM", "css", "file", "id"])
      this[r] != null && (t[r] = this[r]);
    return this.map && (t.map = $t({}, this.map), t.map.consumerCache && (t.map.consumerCache = void 0)), t;
  }
};
var bC = Sw;
Sw.default = Sw;
mM && mM.registerInput && mM.registerInput(Sw);
let { SourceMapConsumer: Rce, SourceMapGenerator: uP } = hg, { dirname: cP, resolve: Bce, relative: Fce, sep: jce } = I$, { pathToFileURL: iW } = Lce, tIe = bC, rIe = !!(Rce && uP), iIe = !!(cP && Bce && Fce && jce), nIe = class {
  constructor(t, r, i, n) {
    this.stringify = t, this.mapOpts = i.map || {}, this.root = r, this.opts = i, this.css = n, this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;
  }
  isMap() {
    return typeof this.opts.map != "undefined" ? !!this.opts.map : this.previous().length > 0;
  }
  previous() {
    if (!this.previousMaps)
      if (this.previousMaps = [], this.root)
        this.root.walk((t) => {
          if (t.source && t.source.input.map) {
            let r = t.source.input.map;
            this.previousMaps.includes(r) || this.previousMaps.push(r);
          }
        });
      else {
        let t = new tIe(this.css, this.opts);
        t.map && this.previousMaps.push(t.map);
      }
    return this.previousMaps;
  }
  isInline() {
    if (typeof this.mapOpts.inline != "undefined")
      return this.mapOpts.inline;
    let t = this.mapOpts.annotation;
    return typeof t != "undefined" && t !== !0 ? !1 : this.previous().length ? this.previous().some((r) => r.inline) : !0;
  }
  isSourcesContent() {
    return typeof this.mapOpts.sourcesContent != "undefined" ? this.mapOpts.sourcesContent : this.previous().length ? this.previous().some((t) => t.withContent()) : !0;
  }
  clearAnnotation() {
    if (this.mapOpts.annotation !== !1)
      if (this.root) {
        let t;
        for (let r = this.root.nodes.length - 1; r >= 0; r--)
          t = this.root.nodes[r], t.type === "comment" && t.text.indexOf("# sourceMappingURL=") === 0 && this.root.removeChild(r);
      } else
        this.css && (this.css = this.css.replace(/(\n)?\/\*#[\S\s]*?\*\/$/gm, ""));
  }
  setSourcesContent() {
    let t = {};
    if (this.root)
      this.root.walk((r) => {
        if (r.source) {
          let i = r.source.input.from;
          if (i && !t[i]) {
            t[i] = !0;
            let n = this.usesFileUrls ? this.toFileUrl(i) : this.toUrl(this.path(i));
            this.map.setSourceContent(n, r.source.input.css);
          }
        }
      });
    else if (this.css) {
      let r = this.opts.from ? this.toUrl(this.path(this.opts.from)) : "<no source>";
      this.map.setSourceContent(r, this.css);
    }
  }
  applyPrevMaps() {
    for (let t of this.previous()) {
      let r = this.toUrl(this.path(t.file)), i = t.root || cP(t.file), n;
      this.mapOpts.sourcesContent === !1 ? (n = new Rce(t.text), n.sourcesContent && (n.sourcesContent = n.sourcesContent.map(() => null))) : n = t.consumer(), this.map.applySourceMap(n, r, this.toUrl(this.path(i)));
    }
  }
  isAnnotation() {
    return this.isInline() ? !0 : typeof this.mapOpts.annotation != "undefined" ? this.mapOpts.annotation : this.previous().length ? this.previous().some((t) => t.annotation) : !0;
  }
  toBase64(t) {
    return St ? St.from(t).toString("base64") : window.btoa(unescape(encodeURIComponent(t)));
  }
  addAnnotation() {
    let t;
    this.isInline() ? t = "data:application/json;base64," + this.toBase64(this.map.toString()) : typeof this.mapOpts.annotation == "string" ? t = this.mapOpts.annotation : typeof this.mapOpts.annotation == "function" ? t = this.mapOpts.annotation(this.opts.to, this.root) : t = this.outputFile() + ".map";
    let r = "\n";
    this.css.includes("\r\n") && (r = "\r\n"), this.css += r + "/*# sourceMappingURL=" + t + " */";
  }
  outputFile() {
    return this.opts.to ? this.path(this.opts.to) : this.opts.from ? this.path(this.opts.from) : "to.css";
  }
  generateMap() {
    if (this.root)
      this.generateString();
    else if (this.previous().length === 1) {
      let t = this.previous()[0].consumer();
      t.file = this.outputFile(), this.map = uP.fromSourceMap(t);
    } else
      this.map = new uP({ file: this.outputFile() }), this.map.addMapping({
        source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : "<no source>",
        generated: { line: 1, column: 0 },
        original: { line: 1, column: 0 }
      });
    return this.isSourcesContent() && this.setSourcesContent(), this.root && this.previous().length > 0 && this.applyPrevMaps(), this.isAnnotation() && this.addAnnotation(), this.isInline() ? [this.css] : [this.css, this.map];
  }
  path(t) {
    if (t.indexOf("<") === 0 || /^\w+:\/\//.test(t) || this.mapOpts.absolute)
      return t;
    let r = this.opts.to ? cP(this.opts.to) : ".";
    return typeof this.mapOpts.annotation == "string" && (r = cP(Bce(r, this.mapOpts.annotation))), t = Fce(r, t), t;
  }
  toUrl(t) {
    return jce === "\\" && (t = t.replace(/\\/g, "/")), encodeURI(t).replace(/[#?]/g, encodeURIComponent);
  }
  toFileUrl(t) {
    if (iW)
      return iW(t).toString();
    throw new Error(
      "`map.absolute` option is not available in this PostCSS build"
    );
  }
  sourcePath(t) {
    return this.mapOpts.from ? this.toUrl(this.mapOpts.from) : this.usesFileUrls ? this.toFileUrl(t.source.input.from) : this.toUrl(this.path(t.source.input.from));
  }
  generateString() {
    this.css = "", this.map = new uP({ file: this.outputFile() });
    let t = 1, r = 1, i = "<no source>", n = {
      source: "",
      generated: { line: 0, column: 0 },
      original: { line: 0, column: 0 }
    }, s, a;
    this.stringify(this.root, (o, l, u) => {
      if (this.css += o, l && u !== "end" && (n.generated.line = t, n.generated.column = r - 1, l.source && l.source.start ? (n.source = this.sourcePath(l), n.original.line = l.source.start.line, n.original.column = l.source.start.column - 1, this.map.addMapping(n)) : (n.source = i, n.original.line = 1, n.original.column = 0, this.map.addMapping(n))), s = o.match(/\n/g), s ? (t += s.length, a = o.lastIndexOf("\n"), r = o.length - a) : r += o.length, l && u !== "start") {
        let c = l.parent || { raws: {} };
        (!(l.type === "decl" || l.type === "atrule" && !l.nodes) || l !== c.last || c.raws.semicolon) && (l.source && l.source.end ? (n.source = this.sourcePath(l), n.original.line = l.source.end.line, n.original.column = l.source.end.column - 1, n.generated.line = t, n.generated.column = r - 2, this.map.addMapping(n)) : (n.source = i, n.original.line = 1, n.original.column = 0, n.generated.line = t, n.generated.column = r - 1, this.map.addMapping(n)));
      }
    });
  }
  generate() {
    if (this.clearAnnotation(), iIe && rIe && this.isMap())
      return this.generateMap();
    {
      let t = "";
      return this.stringify(this.root, (r) => {
        t += r;
      }), [t];
    }
  }
};
var $ce = nIe;
let sIe = yC, hF = class extends sIe {
  constructor(t) {
    super(t), this.type = "comment";
  }
};
var vC = hF;
hF.default = hF;
let { isClean: Uce, my: qce } = CT, Vce = gC, Wce = vC, aIe = yC, Hce, O$, N$, Kce;
function zce(e) {
  return e.map((t) => (t.nodes && (t.nodes = zce(t.nodes)), delete t.source, t));
}
function Gce(e) {
  if (e[Uce] = !1, e.proxyOf.nodes)
    for (let t of e.proxyOf.nodes)
      Gce(t);
}
let Pf = class Yce extends aIe {
  push(t) {
    return t.parent = this, this.proxyOf.nodes.push(t), this;
  }
  each(t) {
    if (!this.proxyOf.nodes)
      return;
    let r = this.getIterator(), i, n;
    for (; this.indexes[r] < this.proxyOf.nodes.length && (i = this.indexes[r], n = t(this.proxyOf.nodes[i], i), n !== !1); )
      this.indexes[r] += 1;
    return delete this.indexes[r], n;
  }
  walk(t) {
    return this.each((r, i) => {
      let n;
      try {
        n = t(r, i);
      } catch (s) {
        throw r.addToError(s);
      }
      return n !== !1 && r.walk && (n = r.walk(t)), n;
    });
  }
  walkDecls(t, r) {
    return r ? t instanceof RegExp ? this.walk((i, n) => {
      if (i.type === "decl" && t.test(i.prop))
        return r(i, n);
    }) : this.walk((i, n) => {
      if (i.type === "decl" && i.prop === t)
        return r(i, n);
    }) : (r = t, this.walk((i, n) => {
      if (i.type === "decl")
        return r(i, n);
    }));
  }
  walkRules(t, r) {
    return r ? t instanceof RegExp ? this.walk((i, n) => {
      if (i.type === "rule" && t.test(i.selector))
        return r(i, n);
    }) : this.walk((i, n) => {
      if (i.type === "rule" && i.selector === t)
        return r(i, n);
    }) : (r = t, this.walk((i, n) => {
      if (i.type === "rule")
        return r(i, n);
    }));
  }
  walkAtRules(t, r) {
    return r ? t instanceof RegExp ? this.walk((i, n) => {
      if (i.type === "atrule" && t.test(i.name))
        return r(i, n);
    }) : this.walk((i, n) => {
      if (i.type === "atrule" && i.name === t)
        return r(i, n);
    }) : (r = t, this.walk((i, n) => {
      if (i.type === "atrule")
        return r(i, n);
    }));
  }
  walkComments(t) {
    return this.walk((r, i) => {
      if (r.type === "comment")
        return t(r, i);
    });
  }
  append(...t) {
    for (let r of t) {
      let i = this.normalize(r, this.last);
      for (let n of i)
        this.proxyOf.nodes.push(n);
    }
    return this.markDirty(), this;
  }
  prepend(...t) {
    t = t.reverse();
    for (let r of t) {
      let i = this.normalize(r, this.first, "prepend").reverse();
      for (let n of i)
        this.proxyOf.nodes.unshift(n);
      for (let n in this.indexes)
        this.indexes[n] = this.indexes[n] + i.length;
    }
    return this.markDirty(), this;
  }
  cleanRaws(t) {
    if (super.cleanRaws(t), this.nodes)
      for (let r of this.nodes)
        r.cleanRaws(t);
  }
  insertBefore(t, r) {
    let i = this.index(t), n = i === 0 ? "prepend" : !1, s = this.normalize(r, this.proxyOf.nodes[i], n).reverse();
    i = this.index(t);
    for (let o of s)
      this.proxyOf.nodes.splice(i, 0, o);
    let a;
    for (let o in this.indexes)
      a = this.indexes[o], i <= a && (this.indexes[o] = a + s.length);
    return this.markDirty(), this;
  }
  insertAfter(t, r) {
    let i = this.index(t), n = this.normalize(r, this.proxyOf.nodes[i]).reverse();
    i = this.index(t);
    for (let a of n)
      this.proxyOf.nodes.splice(i + 1, 0, a);
    let s;
    for (let a in this.indexes)
      s = this.indexes[a], i < s && (this.indexes[a] = s + n.length);
    return this.markDirty(), this;
  }
  removeChild(t) {
    t = this.index(t), this.proxyOf.nodes[t].parent = void 0, this.proxyOf.nodes.splice(t, 1);
    let r;
    for (let i in this.indexes)
      r = this.indexes[i], r >= t && (this.indexes[i] = r - 1);
    return this.markDirty(), this;
  }
  removeAll() {
    for (let t of this.proxyOf.nodes)
      t.parent = void 0;
    return this.proxyOf.nodes = [], this.markDirty(), this;
  }
  replaceValues(t, r, i) {
    return i || (i = r, r = {}), this.walkDecls((n) => {
      r.props && !r.props.includes(n.prop) || r.fast && !n.value.includes(r.fast) || (n.value = n.value.replace(t, i));
    }), this.markDirty(), this;
  }
  every(t) {
    return this.nodes.every(t);
  }
  some(t) {
    return this.nodes.some(t);
  }
  index(t) {
    return typeof t == "number" ? t : (t.proxyOf && (t = t.proxyOf), this.proxyOf.nodes.indexOf(t));
  }
  get first() {
    if (this.proxyOf.nodes)
      return this.proxyOf.nodes[0];
  }
  get last() {
    if (this.proxyOf.nodes)
      return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];
  }
  normalize(t, r) {
    if (typeof t == "string")
      t = zce(Hce(t).nodes);
    else if (Array.isArray(t)) {
      t = t.slice(0);
      for (let n of t)
        n.parent && n.parent.removeChild(n, "ignore");
    } else if (t.type === "root" && this.type !== "document") {
      t = t.nodes.slice(0);
      for (let n of t)
        n.parent && n.parent.removeChild(n, "ignore");
    } else if (t.type)
      t = [t];
    else if (t.prop) {
      if (typeof t.value == "undefined")
        throw new Error("Value field is missed in node creation");
      typeof t.value != "string" && (t.value = String(t.value)), t = [new Vce(t)];
    } else if (t.selector)
      t = [new O$(t)];
    else if (t.name)
      t = [new N$(t)];
    else if (t.text)
      t = [new Wce(t)];
    else
      throw new Error("Unknown node type in node creation");
    return t.map((n) => (n[qce] || Yce.rebuild(n), n = n.proxyOf, n.parent && n.parent.removeChild(n), n[Uce] && Gce(n), typeof n.raws.before == "undefined" && r && typeof r.raws.before != "undefined" && (n.raws.before = r.raws.before.replace(/\S/g, "")), n.parent = this.proxyOf, n));
  }
  getProxyProcessor() {
    return {
      set(t, r, i) {
        return t[r] === i || (t[r] = i, (r === "name" || r === "params" || r === "selector") && t.markDirty()), !0;
      },
      get(t, r) {
        return r === "proxyOf" ? t : t[r] ? r === "each" || typeof r == "string" && r.startsWith("walk") ? (...i) => t[r](
          ...i.map((n) => typeof n == "function" ? (s, a) => n(s.toProxy(), a) : n)
        ) : r === "every" || r === "some" ? (i) => t[r](
          (n, ...s) => i(n.toProxy(), ...s)
        ) : r === "root" ? () => t.root().toProxy() : r === "nodes" ? t.nodes.map((i) => i.toProxy()) : r === "first" || r === "last" ? t[r].toProxy() : t[r] : t[r];
      }
    };
  }
  getIterator() {
    this.lastEach || (this.lastEach = 0), this.indexes || (this.indexes = {}), this.lastEach += 1;
    let t = this.lastEach;
    return this.indexes[t] = 0, t;
  }
};
Pf.registerParse = (e) => {
  Hce = e;
};
Pf.registerRule = (e) => {
  O$ = e;
};
Pf.registerAtRule = (e) => {
  N$ = e;
};
Pf.registerRoot = (e) => {
  Kce = e;
};
var tm = Pf;
Pf.default = Pf;
Pf.rebuild = (e) => {
  e.type === "atrule" ? Object.setPrototypeOf(e, N$.prototype) : e.type === "rule" ? Object.setPrototypeOf(e, O$.prototype) : e.type === "decl" ? Object.setPrototypeOf(e, Vce.prototype) : e.type === "comment" ? Object.setPrototypeOf(e, Wce.prototype) : e.type === "root" && Object.setPrototypeOf(e, Kce.prototype), e[qce] = !0, e.nodes && e.nodes.forEach((t) => {
    Pf.rebuild(t);
  });
};
let oIe = tm, Xce, Jce, Nv = class extends oIe {
  constructor(t) {
    super($t({ type: "document" }, t)), this.nodes || (this.nodes = []);
  }
  toResult(t = {}) {
    return new Xce(new Jce(), this, t).stringify();
  }
};
Nv.registerLazyResult = (e) => {
  Xce = e;
};
Nv.registerProcessor = (e) => {
  Jce = e;
};
var D$ = Nv;
Nv.default = Nv;
let nW = {};
var Qce = function(t) {
  nW[t] || (nW[t] = !0, typeof console != "undefined" && console.warn && console.warn(t));
};
let dF = class {
  constructor(t, r = {}) {
    if (this.type = "warning", this.text = t, r.node && r.node.source) {
      let i = r.node.rangeBy(r);
      this.line = i.start.line, this.column = i.start.column, this.endLine = i.end.line, this.endColumn = i.end.column;
    }
    for (let i in r)
      this[i] = r[i];
  }
  toString() {
    return this.node ? this.node.error(this.text, {
      plugin: this.plugin,
      index: this.index,
      word: this.word
    }).message : this.plugin ? this.plugin + ": " + this.text : this.text;
  }
};
var Zce = dF;
dF.default = dF;
let lIe = Zce, mF = class {
  constructor(t, r, i) {
    this.processor = t, this.messages = [], this.root = r, this.opts = i, this.css = void 0, this.map = void 0;
  }
  toString() {
    return this.css;
  }
  warn(t, r = {}) {
    r.plugin || this.lastPlugin && this.lastPlugin.postcssPlugin && (r.plugin = this.lastPlugin.postcssPlugin);
    let i = new lIe(t, r);
    return this.messages.push(i), i;
  }
  warnings() {
    return this.messages.filter((t) => t.type === "warning");
  }
  get content() {
    return this.css;
  }
};
var L$ = mF;
mF.default = mF;
let epe = tm, xw = class extends epe {
  constructor(t) {
    super(t), this.type = "atrule";
  }
  append(...t) {
    return this.proxyOf.nodes || (this.nodes = []), super.append(...t);
  }
  prepend(...t) {
    return this.proxyOf.nodes || (this.nodes = []), super.prepend(...t);
  }
};
var M$ = xw;
xw.default = xw;
epe.registerAtRule(xw);
let tpe = tm, rpe, ipe, Hy = class extends tpe {
  constructor(t) {
    super(t), this.type = "root", this.nodes || (this.nodes = []);
  }
  removeChild(t, r) {
    let i = this.index(t);
    return !r && i === 0 && this.nodes.length > 1 && (this.nodes[1].raws.before = this.nodes[i].raws.before), super.removeChild(t);
  }
  normalize(t, r, i) {
    let n = super.normalize(t);
    if (r) {
      if (i === "prepend")
        this.nodes.length > 1 ? r.raws.before = this.nodes[1].raws.before : delete r.raws.before;
      else if (this.first !== r)
        for (let s of n)
          s.raws.before = r.raws.before;
    }
    return n;
  }
  toResult(t = {}) {
    return new rpe(new ipe(), this, t).stringify();
  }
};
Hy.registerLazyResult = (e) => {
  rpe = e;
};
Hy.registerProcessor = (e) => {
  ipe = e;
};
var _T = Hy;
Hy.default = Hy;
tpe.registerRoot(Hy);
let Dv = {
  split(e, t, r) {
    let i = [], n = "", s = !1, a = 0, o = !1, l = "", u = !1;
    for (let c of e)
      u ? u = !1 : c === "\\" ? u = !0 : o ? c === l && (o = !1) : c === '"' || c === "'" ? (o = !0, l = c) : c === "(" ? a += 1 : c === ")" ? a > 0 && (a -= 1) : a === 0 && t.includes(c) && (s = !0), s ? (n !== "" && i.push(n.trim()), n = "", s = !1) : n += c;
    return (r || n !== "") && i.push(n.trim()), i;
  },
  space(e) {
    let t = [" ", "\n", "	"];
    return Dv.split(e, t);
  },
  comma(e) {
    return Dv.split(e, [","], !0);
  }
};
var npe = Dv;
Dv.default = Dv;
let spe = tm, uIe = npe, Ew = class extends spe {
  constructor(t) {
    super(t), this.type = "rule", this.nodes || (this.nodes = []);
  }
  get selectors() {
    return uIe.comma(this.selector);
  }
  set selectors(t) {
    let r = this.selector ? this.selector.match(/,\s*/) : null, i = r ? r[0] : "," + this.raw("between", "beforeOpen");
    this.selector = t.join(i);
  }
};
var R$ = Ew;
Ew.default = Ew;
spe.registerRule(Ew);
let cIe = gC, pIe = _ce, fIe = vC, hIe = M$, dIe = _T, sW = R$;
const aW = {
  empty: !0,
  space: !0
};
function mIe(e) {
  for (let t = e.length - 1; t >= 0; t--) {
    let r = e[t], i = r[3] || r[2];
    if (i)
      return i;
  }
}
let yIe = class {
  constructor(t) {
    this.input = t, this.root = new dIe(), this.current = this.root, this.spaces = "", this.semicolon = !1, this.customProperty = !1, this.createTokenizer(), this.root.source = { input: t, start: { offset: 0, line: 1, column: 1 } };
  }
  createTokenizer() {
    this.tokenizer = pIe(this.input);
  }
  parse() {
    let t;
    for (; !this.tokenizer.endOfFile(); )
      switch (t = this.tokenizer.nextToken(), t[0]) {
        case "space":
          this.spaces += t[1];
          break;
        case ";":
          this.freeSemicolon(t);
          break;
        case "}":
          this.end(t);
          break;
        case "comment":
          this.comment(t);
          break;
        case "at-word":
          this.atrule(t);
          break;
        case "{":
          this.emptyRule(t);
          break;
        default:
          this.other(t);
          break;
      }
    this.endFile();
  }
  comment(t) {
    let r = new fIe();
    this.init(r, t[2]), r.source.end = this.getPosition(t[3] || t[2]);
    let i = t[1].slice(2, -2);
    if (/^\s*$/.test(i))
      r.text = "", r.raws.left = i, r.raws.right = "";
    else {
      let n = i.match(/^(\s*)([^]*\S)(\s*)$/);
      r.text = n[2], r.raws.left = n[1], r.raws.right = n[3];
    }
  }
  emptyRule(t) {
    let r = new sW();
    this.init(r, t[2]), r.selector = "", r.raws.between = "", this.current = r;
  }
  other(t) {
    let r = !1, i = null, n = !1, s = null, a = [], o = t[1].startsWith("--"), l = [], u = t;
    for (; u; ) {
      if (i = u[0], l.push(u), i === "(" || i === "[")
        s || (s = u), a.push(i === "(" ? ")" : "]");
      else if (o && n && i === "{")
        s || (s = u), a.push("}");
      else if (a.length === 0)
        if (i === ";")
          if (n) {
            this.decl(l, o);
            return;
          } else
            break;
        else if (i === "{") {
          this.rule(l);
          return;
        } else if (i === "}") {
          this.tokenizer.back(l.pop()), r = !0;
          break;
        } else
          i === ":" && (n = !0);
      else
        i === a[a.length - 1] && (a.pop(), a.length === 0 && (s = null));
      u = this.tokenizer.nextToken();
    }
    if (this.tokenizer.endOfFile() && (r = !0), a.length > 0 && this.unclosedBracket(s), r && n) {
      if (!o)
        for (; l.length && (u = l[l.length - 1][0], !(u !== "space" && u !== "comment")); )
          this.tokenizer.back(l.pop());
      this.decl(l, o);
    } else
      this.unknownWord(l);
  }
  rule(t) {
    t.pop();
    let r = new sW();
    this.init(r, t[0][2]), r.raws.between = this.spacesAndCommentsFromEnd(t), this.raw(r, "selector", t), this.current = r;
  }
  decl(t, r) {
    let i = new cIe();
    this.init(i, t[0][2]);
    let n = t[t.length - 1];
    for (n[0] === ";" && (this.semicolon = !0, t.pop()), i.source.end = this.getPosition(
      n[3] || n[2] || mIe(t)
    ); t[0][0] !== "word"; )
      t.length === 1 && this.unknownWord(t), i.raws.before += t.shift()[1];
    for (i.source.start = this.getPosition(t[0][2]), i.prop = ""; t.length; ) {
      let u = t[0][0];
      if (u === ":" || u === "space" || u === "comment")
        break;
      i.prop += t.shift()[1];
    }
    i.raws.between = "";
    let s;
    for (; t.length; )
      if (s = t.shift(), s[0] === ":") {
        i.raws.between += s[1];
        break;
      } else
        s[0] === "word" && /\w/.test(s[1]) && this.unknownWord([s]), i.raws.between += s[1];
    (i.prop[0] === "_" || i.prop[0] === "*") && (i.raws.before += i.prop[0], i.prop = i.prop.slice(1));
    let a = [], o;
    for (; t.length && (o = t[0][0], !(o !== "space" && o !== "comment")); )
      a.push(t.shift());
    this.precheckMissedSemicolon(t);
    for (let u = t.length - 1; u >= 0; u--) {
      if (s = t[u], s[1].toLowerCase() === "!important") {
        i.important = !0;
        let c = this.stringFrom(t, u);
        c = this.spacesFromEnd(t) + c, c !== " !important" && (i.raws.important = c);
        break;
      } else if (s[1].toLowerCase() === "important") {
        let c = t.slice(0), f = "";
        for (let h = u; h > 0; h--) {
          let m = c[h][0];
          if (f.trim().indexOf("!") === 0 && m !== "space")
            break;
          f = c.pop()[1] + f;
        }
        f.trim().indexOf("!") === 0 && (i.important = !0, i.raws.important = f, t = c);
      }
      if (s[0] !== "space" && s[0] !== "comment")
        break;
    }
    t.some((u) => u[0] !== "space" && u[0] !== "comment") && (i.raws.between += a.map((u) => u[1]).join(""), a = []), this.raw(i, "value", a.concat(t), r), i.value.includes(":") && !r && this.checkMissedSemicolon(t);
  }
  atrule(t) {
    let r = new hIe();
    r.name = t[1].slice(1), r.name === "" && this.unnamedAtrule(r, t), this.init(r, t[2]);
    let i, n, s, a = !1, o = !1, l = [], u = [];
    for (; !this.tokenizer.endOfFile(); ) {
      if (t = this.tokenizer.nextToken(), i = t[0], i === "(" || i === "[" ? u.push(i === "(" ? ")" : "]") : i === "{" && u.length > 0 ? u.push("}") : i === u[u.length - 1] && u.pop(), u.length === 0)
        if (i === ";") {
          r.source.end = this.getPosition(t[2]), this.semicolon = !0;
          break;
        } else if (i === "{") {
          o = !0;
          break;
        } else if (i === "}") {
          if (l.length > 0) {
            for (s = l.length - 1, n = l[s]; n && n[0] === "space"; )
              n = l[--s];
            n && (r.source.end = this.getPosition(n[3] || n[2]));
          }
          this.end(t);
          break;
        } else
          l.push(t);
      else
        l.push(t);
      if (this.tokenizer.endOfFile()) {
        a = !0;
        break;
      }
    }
    r.raws.between = this.spacesAndCommentsFromEnd(l), l.length ? (r.raws.afterName = this.spacesAndCommentsFromStart(l), this.raw(r, "params", l), a && (t = l[l.length - 1], r.source.end = this.getPosition(t[3] || t[2]), this.spaces = r.raws.between, r.raws.between = "")) : (r.raws.afterName = "", r.params = ""), o && (r.nodes = [], this.current = r);
  }
  end(t) {
    this.current.nodes && this.current.nodes.length && (this.current.raws.semicolon = this.semicolon), this.semicolon = !1, this.current.raws.after = (this.current.raws.after || "") + this.spaces, this.spaces = "", this.current.parent ? (this.current.source.end = this.getPosition(t[2]), this.current = this.current.parent) : this.unexpectedClose(t);
  }
  endFile() {
    this.current.parent && this.unclosedBlock(), this.current.nodes && this.current.nodes.length && (this.current.raws.semicolon = this.semicolon), this.current.raws.after = (this.current.raws.after || "") + this.spaces;
  }
  freeSemicolon(t) {
    if (this.spaces += t[1], this.current.nodes) {
      let r = this.current.nodes[this.current.nodes.length - 1];
      r && r.type === "rule" && !r.raws.ownSemicolon && (r.raws.ownSemicolon = this.spaces, this.spaces = "");
    }
  }
  // Helpers
  getPosition(t) {
    let r = this.input.fromOffset(t);
    return {
      offset: t,
      line: r.line,
      column: r.col
    };
  }
  init(t, r) {
    this.current.push(t), t.source = {
      start: this.getPosition(r),
      input: this.input
    }, t.raws.before = this.spaces, this.spaces = "", t.type !== "comment" && (this.semicolon = !1);
  }
  raw(t, r, i, n) {
    let s, a, o = i.length, l = "", u = !0, c, f;
    for (let h = 0; h < o; h += 1)
      s = i[h], a = s[0], a === "space" && h === o - 1 && !n ? u = !1 : a === "comment" ? (f = i[h - 1] ? i[h - 1][0] : "empty", c = i[h + 1] ? i[h + 1][0] : "empty", !aW[f] && !aW[c] ? l.slice(-1) === "," ? u = !1 : l += s[1] : u = !1) : l += s[1];
    if (!u) {
      let h = i.reduce((m, g) => m + g[1], "");
      t.raws[r] = { value: l, raw: h };
    }
    t[r] = l;
  }
  spacesAndCommentsFromEnd(t) {
    let r, i = "";
    for (; t.length && (r = t[t.length - 1][0], !(r !== "space" && r !== "comment")); )
      i = t.pop()[1] + i;
    return i;
  }
  spacesAndCommentsFromStart(t) {
    let r, i = "";
    for (; t.length && (r = t[0][0], !(r !== "space" && r !== "comment")); )
      i += t.shift()[1];
    return i;
  }
  spacesFromEnd(t) {
    let r, i = "";
    for (; t.length && (r = t[t.length - 1][0], r === "space"); )
      i = t.pop()[1] + i;
    return i;
  }
  stringFrom(t, r) {
    let i = "";
    for (let n = r; n < t.length; n++)
      i += t[n][1];
    return t.splice(r, t.length - r), i;
  }
  colon(t) {
    let r = 0, i, n, s;
    for (let [a, o] of t.entries()) {
      if (i = o, n = i[0], n === "(" && (r += 1), n === ")" && (r -= 1), r === 0 && n === ":")
        if (!s)
          this.doubleColon(i);
        else {
          if (s[0] === "word" && s[1] === "progid")
            continue;
          return a;
        }
      s = i;
    }
    return !1;
  }
  // Errors
  unclosedBracket(t) {
    throw this.input.error(
      "Unclosed bracket",
      { offset: t[2] },
      { offset: t[2] + 1 }
    );
  }
  unknownWord(t) {
    throw this.input.error(
      "Unknown word",
      { offset: t[0][2] },
      { offset: t[0][2] + t[0][1].length }
    );
  }
  unexpectedClose(t) {
    throw this.input.error(
      "Unexpected }",
      { offset: t[2] },
      { offset: t[2] + 1 }
    );
  }
  unclosedBlock() {
    let t = this.current.source.start;
    throw this.input.error("Unclosed block", t.line, t.column);
  }
  doubleColon(t) {
    throw this.input.error(
      "Double colon",
      { offset: t[2] },
      { offset: t[2] + t[1].length }
    );
  }
  unnamedAtrule(t, r) {
    throw this.input.error(
      "At-rule without name",
      { offset: r[2] },
      { offset: r[2] + r[1].length }
    );
  }
  precheckMissedSemicolon() {
  }
  checkMissedSemicolon(t) {
    let r = this.colon(t);
    if (r === !1)
      return;
    let i = 0, n;
    for (let s = r - 1; s >= 0 && (n = t[s], !(n[0] !== "space" && (i += 1, i === 2))); s--)
      ;
    throw this.input.error(
      "Missed semicolon",
      n[0] === "word" ? n[3] + 1 : n[2]
    );
  }
};
var gIe = yIe;
let bIe = tm, vIe = gIe, TIe = bC;
function Pw(e, t) {
  let r = new TIe(e, t), i = new vIe(r);
  try {
    i.parse();
  } catch (n) {
    throw Bs.env.NODE_ENV !== "production" && n.name === "CssSyntaxError" && t && t.from && (/\.scss$/i.test(t.from) ? n.message += "\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser" : /\.sass/i.test(t.from) ? n.message += "\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser" : /\.less$/i.test(t.from) && (n.message += "\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser")), n;
  }
  return i.root;
}
var B$ = Pw;
Pw.default = Pw;
bIe.registerParse(Pw);
let { isClean: Xc, my: SIe } = CT, xIe = $ce, EIe = mC, PIe = tm, wIe = D$, AIe = Qce, oW = L$, CIe = B$, _Ie = _T;
const IIe = {
  document: "Document",
  root: "Root",
  atrule: "AtRule",
  rule: "Rule",
  decl: "Declaration",
  comment: "Comment"
}, kIe = {
  postcssPlugin: !0,
  prepare: !0,
  Once: !0,
  Document: !0,
  Root: !0,
  Declaration: !0,
  Rule: !0,
  AtRule: !0,
  Comment: !0,
  DeclarationExit: !0,
  RuleExit: !0,
  AtRuleExit: !0,
  CommentExit: !0,
  RootExit: !0,
  DocumentExit: !0,
  OnceExit: !0
}, OIe = {
  postcssPlugin: !0,
  prepare: !0,
  Once: !0
}, Ky = 0;
function ib(e) {
  return typeof e == "object" && typeof e.then == "function";
}
function ape(e) {
  let t = !1, r = IIe[e.type];
  return e.type === "decl" ? t = e.prop.toLowerCase() : e.type === "atrule" && (t = e.name.toLowerCase()), t && e.append ? [
    r,
    r + "-" + t,
    Ky,
    r + "Exit",
    r + "Exit-" + t
  ] : t ? [r, r + "-" + t, r + "Exit", r + "Exit-" + t] : e.append ? [r, Ky, r + "Exit"] : [r, r + "Exit"];
}
function lW(e) {
  let t;
  return e.type === "document" ? t = ["Document", Ky, "DocumentExit"] : e.type === "root" ? t = ["Root", Ky, "RootExit"] : t = ape(e), {
    node: e,
    events: t,
    eventIndex: 0,
    visitors: [],
    visitorIndex: 0,
    iterator: 0
  };
}
function yF(e) {
  return e[Xc] = !1, e.nodes && e.nodes.forEach((t) => yF(t)), e;
}
let gF = {}, zy = class ope {
  constructor(t, r, i) {
    this.stringified = !1, this.processed = !1;
    let n;
    if (typeof r == "object" && r !== null && (r.type === "root" || r.type === "document"))
      n = yF(r);
    else if (r instanceof ope || r instanceof oW)
      n = yF(r.root), r.map && (typeof i.map == "undefined" && (i.map = {}), i.map.inline || (i.map.inline = !1), i.map.prev = r.map);
    else {
      let s = CIe;
      i.syntax && (s = i.syntax.parse), i.parser && (s = i.parser), s.parse && (s = s.parse);
      try {
        n = s(r, i);
      } catch (a) {
        this.processed = !0, this.error = a;
      }
      n && !n[SIe] && PIe.rebuild(n);
    }
    this.result = new oW(t, n, i), this.helpers = zr($t({}, gF), { result: this.result, postcss: gF }), this.plugins = this.processor.plugins.map((s) => typeof s == "object" && s.prepare ? $t($t({}, s), s.prepare(this.result)) : s);
  }
  get [Symbol.toStringTag]() {
    return "LazyResult";
  }
  get processor() {
    return this.result.processor;
  }
  get opts() {
    return this.result.opts;
  }
  get css() {
    return this.stringify().css;
  }
  get content() {
    return this.stringify().content;
  }
  get map() {
    return this.stringify().map;
  }
  get root() {
    return this.sync().root;
  }
  get messages() {
    return this.sync().messages;
  }
  warnings() {
    return this.sync().warnings();
  }
  toString() {
    return this.css;
  }
  then(t, r) {
    return Bs.env.NODE_ENV !== "production" && ("from" in this.opts || AIe(
      "Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning."
    )), this.async().then(t, r);
  }
  catch(t) {
    return this.async().catch(t);
  }
  finally(t) {
    return this.async().then(t, t);
  }
  async() {
    return this.error ? Promise.reject(this.error) : this.processed ? Promise.resolve(this.result) : (this.processing || (this.processing = this.runAsync()), this.processing);
  }
  sync() {
    if (this.error)
      throw this.error;
    if (this.processed)
      return this.result;
    if (this.processed = !0, this.processing)
      throw this.getAsyncError();
    for (let t of this.plugins) {
      let r = this.runOnRoot(t);
      if (ib(r))
        throw this.getAsyncError();
    }
    if (this.prepareVisitors(), this.hasListener) {
      let t = this.result.root;
      for (; !t[Xc]; )
        t[Xc] = !0, this.walkSync(t);
      if (this.listeners.OnceExit)
        if (t.type === "document")
          for (let r of t.nodes)
            this.visitSync(this.listeners.OnceExit, r);
        else
          this.visitSync(this.listeners.OnceExit, t);
    }
    return this.result;
  }
  stringify() {
    if (this.error)
      throw this.error;
    if (this.stringified)
      return this.result;
    this.stringified = !0, this.sync();
    let t = this.result.opts, r = EIe;
    t.syntax && (r = t.syntax.stringify), t.stringifier && (r = t.stringifier), r.stringify && (r = r.stringify);
    let n = new xIe(r, this.result.root, this.result.opts).generate();
    return this.result.css = n[0], this.result.map = n[1], this.result;
  }
  walkSync(t) {
    t[Xc] = !0;
    let r = ape(t);
    for (let i of r)
      if (i === Ky)
        t.nodes && t.each((n) => {
          n[Xc] || this.walkSync(n);
        });
      else {
        let n = this.listeners[i];
        if (n && this.visitSync(n, t.toProxy()))
          return;
      }
  }
  visitSync(t, r) {
    for (let [i, n] of t) {
      this.result.lastPlugin = i;
      let s;
      try {
        s = n(r, this.helpers);
      } catch (a) {
        throw this.handleError(a, r.proxyOf);
      }
      if (r.type !== "root" && r.type !== "document" && !r.parent)
        return !0;
      if (ib(s))
        throw this.getAsyncError();
    }
  }
  runOnRoot(t) {
    this.result.lastPlugin = t;
    try {
      if (typeof t == "object" && t.Once) {
        if (this.result.root.type === "document") {
          let r = this.result.root.nodes.map(
            (i) => t.Once(i, this.helpers)
          );
          return ib(r[0]) ? Promise.all(r) : r;
        }
        return t.Once(this.result.root, this.helpers);
      } else if (typeof t == "function")
        return t(this.result.root, this.result);
    } catch (r) {
      throw this.handleError(r);
    }
  }
  getAsyncError() {
    throw new Error("Use process(css).then(cb) to work with async plugins");
  }
  handleError(t, r) {
    let i = this.result.lastPlugin;
    try {
      if (r && r.addToError(t), this.error = t, t.name === "CssSyntaxError" && !t.plugin)
        t.plugin = i.postcssPlugin, t.setMessage();
      else if (i.postcssVersion && Bs.env.NODE_ENV !== "production") {
        let n = i.postcssPlugin, s = i.postcssVersion, a = this.result.processor.version, o = s.split("."), l = a.split(".");
        (o[0] !== l[0] || parseInt(o[1]) > parseInt(l[1])) && console.error(
          "Unknown error from PostCSS plugin. Your current PostCSS version is " + a + ", but " + n + " uses " + s + ". Perhaps this is the source of the error below."
        );
      }
    } catch (n) {
      console && console.error && console.error(n);
    }
    return t;
  }
  runAsync() {
    return hr(this, null, function* () {
      this.plugin = 0;
      for (let t = 0; t < this.plugins.length; t++) {
        let r = this.plugins[t], i = this.runOnRoot(r);
        if (ib(i))
          try {
            yield i;
          } catch (n) {
            throw this.handleError(n);
          }
      }
      if (this.prepareVisitors(), this.hasListener) {
        let t = this.result.root;
        for (; !t[Xc]; ) {
          t[Xc] = !0;
          let r = [lW(t)];
          for (; r.length > 0; ) {
            let i = this.visitTick(r);
            if (ib(i))
              try {
                yield i;
              } catch (n) {
                let s = r[r.length - 1].node;
                throw this.handleError(n, s);
              }
          }
        }
        if (this.listeners.OnceExit)
          for (let [r, i] of this.listeners.OnceExit) {
            this.result.lastPlugin = r;
            try {
              if (t.type === "document") {
                let n = t.nodes.map(
                  (s) => i(s, this.helpers)
                );
                yield Promise.all(n);
              } else
                yield i(t, this.helpers);
            } catch (n) {
              throw this.handleError(n);
            }
          }
      }
      return this.processed = !0, this.stringify();
    });
  }
  prepareVisitors() {
    this.listeners = {};
    let t = (r, i, n) => {
      this.listeners[i] || (this.listeners[i] = []), this.listeners[i].push([r, n]);
    };
    for (let r of this.plugins)
      if (typeof r == "object")
        for (let i in r) {
          if (!kIe[i] && /^[A-Z]/.test(i))
            throw new Error(
              "Unknown event ".concat(i, " in ").concat(r.postcssPlugin, ". ") + "Try to update PostCSS (".concat(this.processor.version, " now).")
            );
          if (!OIe[i])
            if (typeof r[i] == "object")
              for (let n in r[i])
                n === "*" ? t(r, i, r[i][n]) : t(
                  r,
                  i + "-" + n.toLowerCase(),
                  r[i][n]
                );
            else
              typeof r[i] == "function" && t(r, i, r[i]);
        }
    this.hasListener = Object.keys(this.listeners).length > 0;
  }
  visitTick(t) {
    let r = t[t.length - 1], { node: i, visitors: n } = r;
    if (i.type !== "root" && i.type !== "document" && !i.parent) {
      t.pop();
      return;
    }
    if (n.length > 0 && r.visitorIndex < n.length) {
      let [a, o] = n[r.visitorIndex];
      r.visitorIndex += 1, r.visitorIndex === n.length && (r.visitors = [], r.visitorIndex = 0), this.result.lastPlugin = a;
      try {
        return o(i.toProxy(), this.helpers);
      } catch (l) {
        throw this.handleError(l, i);
      }
    }
    if (r.iterator !== 0) {
      let a = r.iterator, o;
      for (; o = i.nodes[i.indexes[a]]; )
        if (i.indexes[a] += 1, !o[Xc]) {
          o[Xc] = !0, t.push(lW(o));
          return;
        }
      r.iterator = 0, delete i.indexes[a];
    }
    let s = r.events;
    for (; r.eventIndex < s.length; ) {
      let a = s[r.eventIndex];
      if (r.eventIndex += 1, a === Ky) {
        i.nodes && i.nodes.length && (i[Xc] = !0, r.iterator = i.getIterator());
        return;
      } else if (this.listeners[a]) {
        r.visitors = this.listeners[a];
        return;
      }
    }
    t.pop();
  }
};
zy.registerPostcss = (e) => {
  gF = e;
};
var lpe = zy;
zy.default = zy;
_Ie.registerLazyResult(zy);
wIe.registerLazyResult(zy);
let NIe = $ce, DIe = mC, LIe = Qce, MIe = B$;
const RIe = L$;
let bF = class {
  constructor(t, r, i) {
    r = r.toString(), this.stringified = !1, this._processor = t, this._css = r, this._opts = i, this._map = void 0;
    let n, s = DIe;
    this.result = new RIe(this._processor, n, this._opts), this.result.css = r;
    let a = this;
    Object.defineProperty(this.result, "root", {
      get() {
        return a.root;
      }
    });
    let o = new NIe(s, n, this._opts, r);
    if (o.isMap()) {
      let [l, u] = o.generate();
      l && (this.result.css = l), u && (this.result.map = u);
    }
  }
  get [Symbol.toStringTag]() {
    return "NoWorkResult";
  }
  get processor() {
    return this.result.processor;
  }
  get opts() {
    return this.result.opts;
  }
  get css() {
    return this.result.css;
  }
  get content() {
    return this.result.css;
  }
  get map() {
    return this.result.map;
  }
  get root() {
    if (this._root)
      return this._root;
    let t, r = MIe;
    try {
      t = r(this._css, this._opts);
    } catch (i) {
      this.error = i;
    }
    if (this.error)
      throw this.error;
    return this._root = t, t;
  }
  get messages() {
    return [];
  }
  warnings() {
    return [];
  }
  toString() {
    return this._css;
  }
  then(t, r) {
    return Bs.env.NODE_ENV !== "production" && ("from" in this._opts || LIe(
      "Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning."
    )), this.async().then(t, r);
  }
  catch(t) {
    return this.async().catch(t);
  }
  finally(t) {
    return this.async().then(t, t);
  }
  async() {
    return this.error ? Promise.reject(this.error) : Promise.resolve(this.result);
  }
  sync() {
    if (this.error)
      throw this.error;
    return this.result;
  }
};
var BIe = bF;
bF.default = bF;
let FIe = BIe, jIe = lpe, $Ie = D$, UIe = _T, Lv = class {
  constructor(t = []) {
    this.version = "8.4.21", this.plugins = this.normalize(t);
  }
  use(t) {
    return this.plugins = this.plugins.concat(this.normalize([t])), this;
  }
  process(t, r = {}) {
    return this.plugins.length === 0 && typeof r.parser == "undefined" && typeof r.stringifier == "undefined" && typeof r.syntax == "undefined" ? new FIe(this, t, r) : new jIe(this, t, r);
  }
  normalize(t) {
    let r = [];
    for (let i of t)
      if (i.postcss === !0 ? i = i() : i.postcss && (i = i.postcss), typeof i == "object" && Array.isArray(i.plugins))
        r = r.concat(i.plugins);
      else if (typeof i == "object" && i.postcssPlugin)
        r.push(i);
      else if (typeof i == "function")
        r.push(i);
      else if (typeof i == "object" && (i.parse || i.stringify)) {
        if (Bs.env.NODE_ENV !== "production")
          throw new Error(
            "PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation."
          );
      } else
        throw new Error(i + " is not a PostCSS plugin");
    return r;
  }
};
var qIe = Lv;
Lv.default = Lv;
UIe.registerProcessor(Lv);
$Ie.registerProcessor(Lv);
let VIe = gC, WIe = Mce, HIe = vC, KIe = M$, zIe = bC, GIe = _T, YIe = R$;
function Mv(e, t) {
  if (Array.isArray(e))
    return e.map((a) => Mv(a));
  let n = e, { inputs: r } = n, i = XL(n, ["inputs"]);
  if (r) {
    t = [];
    for (let a of r) {
      let o = zr($t({}, a), { __proto__: zIe.prototype });
      o.map && (o.map = zr($t({}, o.map), {
        __proto__: WIe.prototype
      })), t.push(o);
    }
  }
  if (i.nodes && (i.nodes = e.nodes.map((a) => Mv(a, t))), i.source) {
    let s = i.source, { inputId: a } = s, o = XL(s, ["inputId"]);
    i.source = o, a != null && (i.source.input = t[a]);
  }
  if (i.type === "root")
    return new GIe(i);
  if (i.type === "decl")
    return new VIe(i);
  if (i.type === "rule")
    return new YIe(i);
  if (i.type === "comment")
    return new HIe(i);
  if (i.type === "atrule")
    return new KIe(i);
  throw new Error("Unknown node type: " + e.type);
}
var XIe = Mv;
Mv.default = Mv;
let JIe = k$, upe = gC, QIe = lpe, ZIe = tm, F$ = qIe, e2e = mC, t2e = XIe, cpe = D$, r2e = Zce, ppe = vC, fpe = M$, i2e = L$, n2e = bC, s2e = B$, a2e = npe, hpe = R$, dpe = _T, o2e = yC;
function $i(...e) {
  return e.length === 1 && Array.isArray(e[0]) && (e = e[0]), new F$(e);
}
$i.plugin = function(t, r) {
  let i = !1;
  function n(...a) {
    console && console.warn && !i && (i = !0, console.warn(
      t + ": postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration"
    ), Bs.env.LANG && Bs.env.LANG.startsWith("cn") && console.warn(
      t + ": 里面 postcss.plugin 被弃用. 迁移指南:\nhttps://www.w3ctech.com/topic/2226"
    ));
    let o = r(...a);
    return o.postcssPlugin = t, o.postcssVersion = new F$().version, o;
  }
  let s;
  return Object.defineProperty(n, "postcss", {
    get() {
      return s || (s = n()), s;
    }
  }), n.process = function(a, o, l) {
    return $i([n(l)]).process(a, o);
  }, n;
};
$i.stringify = e2e;
$i.parse = s2e;
$i.fromJSON = t2e;
$i.list = a2e;
$i.comment = (e) => new ppe(e);
$i.atRule = (e) => new fpe(e);
$i.decl = (e) => new upe(e);
$i.rule = (e) => new hpe(e);
$i.root = (e) => new dpe(e);
$i.document = (e) => new cpe(e);
$i.CssSyntaxError = JIe;
$i.Declaration = upe;
$i.Container = ZIe;
$i.Processor = F$;
$i.Document = cpe;
$i.Comment = ppe;
$i.Warning = r2e;
$i.AtRule = fpe;
$i.Result = i2e;
$i.Input = n2e;
$i.Rule = hpe;
$i.Root = dpe;
$i.Node = o2e;
QIe.registerPostcss($i);
var l2e = $i;
$i.default = $i;
var bn = l2e;
bn.stringify;
bn.fromJSON;
bn.plugin;
bn.parse;
bn.list;
bn.document;
bn.comment;
bn.atRule;
bn.rule;
bn.decl;
bn.root;
bn.CssSyntaxError;
bn.Declaration;
bn.Container;
bn.Processor;
bn.Document;
bn.Comment;
bn.Warning;
bn.AtRule;
bn.Result;
bn.Input;
bn.Rule;
bn.Root;
bn.Node;
var vF = {}, u2e = {
  get exports() {
    return vF;
  },
  set exports(e) {
    vF = e;
  }
}, ww = {}, c2e = {
  get exports() {
    return ww;
  },
  set exports(e) {
    ww = e;
  }
}, Aw = {}, p2e = {
  get exports() {
    return Aw;
  },
  set exports(e) {
    Aw = e;
  }
}, Rv = {}, f2e = {
  get exports() {
    return Rv;
  },
  set exports(e) {
    Rv = e;
  }
}, Gy = {}, h2e = {
  get exports() {
    return Gy;
  },
  set exports(e) {
    Gy = e;
  }
}, Rc = {}, d2e = {
  get exports() {
    return Rc;
  },
  set exports(e) {
    Rc = e;
  }
}, xo = {}, Bv = {}, m2e = {
  get exports() {
    return Bv;
  },
  set exports(e) {
    Bv = e;
  }
};
(function(e, t) {
  t.__esModule = !0, t.default = n;
  function r(s) {
    for (var a = s.toLowerCase(), o = "", l = !1, u = 0; u < 6 && a[u] !== void 0; u++) {
      var c = a.charCodeAt(u), f = c >= 97 && c <= 102 || c >= 48 && c <= 57;
      if (l = c === 32, !f)
        break;
      o += a[u];
    }
    if (o.length !== 0) {
      var h = parseInt(o, 16), m = h >= 55296 && h <= 57343;
      return m || h === 0 || h > 1114111 ? ["�", o.length + (l ? 1 : 0)] : [String.fromCodePoint(h), o.length + (l ? 1 : 0)];
    }
  }
  var i = /\\/;
  function n(s) {
    var a = i.test(s);
    if (!a)
      return s;
    for (var o = "", l = 0; l < s.length; l++) {
      if (s[l] === "\\") {
        var u = r(s.slice(l + 1, l + 7));
        if (u !== void 0) {
          o += u[0], l += u[1];
          continue;
        }
        if (s[l + 1] === "\\") {
          o += "\\", l++;
          continue;
        }
        s.length === l + 1 && (o += s[l]);
        continue;
      }
      o += s[l];
    }
    return o;
  }
  e.exports = t.default;
})(m2e, Bv);
var Cw = {}, y2e = {
  get exports() {
    return Cw;
  },
  set exports(e) {
    Cw = e;
  }
};
(function(e, t) {
  t.__esModule = !0, t.default = r;
  function r(i) {
    for (var n = arguments.length, s = new Array(n > 1 ? n - 1 : 0), a = 1; a < n; a++)
      s[a - 1] = arguments[a];
    for (; s.length > 0; ) {
      var o = s.shift();
      if (!i[o])
        return;
      i = i[o];
    }
    return i;
  }
  e.exports = t.default;
})(y2e, Cw);
var _w = {}, g2e = {
  get exports() {
    return _w;
  },
  set exports(e) {
    _w = e;
  }
};
(function(e, t) {
  t.__esModule = !0, t.default = r;
  function r(i) {
    for (var n = arguments.length, s = new Array(n > 1 ? n - 1 : 0), a = 1; a < n; a++)
      s[a - 1] = arguments[a];
    for (; s.length > 0; ) {
      var o = s.shift();
      i[o] || (i[o] = {}), i = i[o];
    }
  }
  e.exports = t.default;
})(g2e, _w);
var Iw = {}, b2e = {
  get exports() {
    return Iw;
  },
  set exports(e) {
    Iw = e;
  }
};
(function(e, t) {
  t.__esModule = !0, t.default = r;
  function r(i) {
    for (var n = "", s = i.indexOf("/*"), a = 0; s >= 0; ) {
      n = n + i.slice(a, s);
      var o = i.indexOf("*/", s + 2);
      if (o < 0)
        return n;
      a = o + 2, s = i.indexOf("/*", a);
    }
    return n = n + i.slice(a), n;
  }
  e.exports = t.default;
})(b2e, Iw);
xo.__esModule = !0;
xo.stripComments = xo.ensureObject = xo.getProp = xo.unesc = void 0;
var v2e = TC(Bv);
xo.unesc = v2e.default;
var T2e = TC(Cw);
xo.getProp = T2e.default;
var S2e = TC(_w);
xo.ensureObject = S2e.default;
var x2e = TC(Iw);
xo.stripComments = x2e.default;
function TC(e) {
  return e && e.__esModule ? e : { default: e };
}
(function(e, t) {
  t.__esModule = !0, t.default = void 0;
  var r = xo;
  function i(o, l) {
    for (var u = 0; u < l.length; u++) {
      var c = l[u];
      c.enumerable = c.enumerable || !1, c.configurable = !0, "value" in c && (c.writable = !0), Object.defineProperty(o, c.key, c);
    }
  }
  function n(o, l, u) {
    return l && i(o.prototype, l), u && i(o, u), o;
  }
  var s = function o(l, u) {
    if (typeof l != "object" || l === null)
      return l;
    var c = new l.constructor();
    for (var f in l)
      if (l.hasOwnProperty(f)) {
        var h = l[f], m = typeof h;
        f === "parent" && m === "object" ? u && (c[f] = u) : h instanceof Array ? c[f] = h.map(function(g) {
          return o(g, c);
        }) : c[f] = o(h, c);
      }
    return c;
  }, a = /* @__PURE__ */ function() {
    function o(u) {
      u === void 0 && (u = {}), Object.assign(this, u), this.spaces = this.spaces || {}, this.spaces.before = this.spaces.before || "", this.spaces.after = this.spaces.after || "";
    }
    var l = o.prototype;
    return l.remove = function() {
      return this.parent && this.parent.removeChild(this), this.parent = void 0, this;
    }, l.replaceWith = function() {
      if (this.parent) {
        for (var c in arguments)
          this.parent.insertBefore(this, arguments[c]);
        this.remove();
      }
      return this;
    }, l.next = function() {
      return this.parent.at(this.parent.index(this) + 1);
    }, l.prev = function() {
      return this.parent.at(this.parent.index(this) - 1);
    }, l.clone = function(c) {
      c === void 0 && (c = {});
      var f = s(this);
      for (var h in c)
        f[h] = c[h];
      return f;
    }, l.appendToPropertyAndEscape = function(c, f, h) {
      this.raws || (this.raws = {});
      var m = this[c], g = this.raws[c];
      this[c] = m + f, g || h !== f ? this.raws[c] = (g || m) + h : delete this.raws[c];
    }, l.setPropertyAndEscape = function(c, f, h) {
      this.raws || (this.raws = {}), this[c] = f, this.raws[c] = h;
    }, l.setPropertyWithoutEscape = function(c, f) {
      this[c] = f, this.raws && delete this.raws[c];
    }, l.isAtPosition = function(c, f) {
      if (this.source && this.source.start && this.source.end)
        return !(this.source.start.line > c || this.source.end.line < c || this.source.start.line === c && this.source.start.column > f || this.source.end.line === c && this.source.end.column < f);
    }, l.stringifyProperty = function(c) {
      return this.raws && this.raws[c] || this[c];
    }, l.valueToString = function() {
      return String(this.stringifyProperty("value"));
    }, l.toString = function() {
      return [this.rawSpaceBefore, this.valueToString(), this.rawSpaceAfter].join("");
    }, n(o, [{
      key: "rawSpaceBefore",
      get: function() {
        var c = this.raws && this.raws.spaces && this.raws.spaces.before;
        return c === void 0 && (c = this.spaces && this.spaces.before), c || "";
      },
      set: function(c) {
        (0, r.ensureObject)(this, "raws", "spaces"), this.raws.spaces.before = c;
      }
    }, {
      key: "rawSpaceAfter",
      get: function() {
        var c = this.raws && this.raws.spaces && this.raws.spaces.after;
        return c === void 0 && (c = this.spaces.after), c || "";
      },
      set: function(c) {
        (0, r.ensureObject)(this, "raws", "spaces"), this.raws.spaces.after = c;
      }
    }]), o;
  }();
  t.default = a, e.exports = t.default;
})(d2e, Rc);
var Or = {};
Or.__esModule = !0;
Or.UNIVERSAL = Or.ATTRIBUTE = Or.CLASS = Or.COMBINATOR = Or.COMMENT = Or.ID = Or.NESTING = Or.PSEUDO = Or.ROOT = Or.SELECTOR = Or.STRING = Or.TAG = void 0;
var E2e = "tag";
Or.TAG = E2e;
var P2e = "string";
Or.STRING = P2e;
var w2e = "selector";
Or.SELECTOR = w2e;
var A2e = "root";
Or.ROOT = A2e;
var C2e = "pseudo";
Or.PSEUDO = C2e;
var _2e = "nesting";
Or.NESTING = _2e;
var I2e = "id";
Or.ID = I2e;
var k2e = "comment";
Or.COMMENT = k2e;
var O2e = "combinator";
Or.COMBINATOR = O2e;
var N2e = "class";
Or.CLASS = N2e;
var D2e = "attribute";
Or.ATTRIBUTE = D2e;
var L2e = "universal";
Or.UNIVERSAL = L2e;
(function(e, t) {
  t.__esModule = !0, t.default = void 0;
  var r = a(Rc), i = s(Or);
  function n() {
    if (typeof WeakMap != "function")
      return null;
    var y = /* @__PURE__ */ new WeakMap();
    return n = function() {
      return y;
    }, y;
  }
  function s(y) {
    if (y && y.__esModule)
      return y;
    if (y === null || typeof y != "object" && typeof y != "function")
      return { default: y };
    var v = n();
    if (v && v.has(y))
      return v.get(y);
    var T = {}, S = Object.defineProperty && Object.getOwnPropertyDescriptor;
    for (var P in y)
      if (Object.prototype.hasOwnProperty.call(y, P)) {
        var x = S ? Object.getOwnPropertyDescriptor(y, P) : null;
        x && (x.get || x.set) ? Object.defineProperty(T, P, x) : T[P] = y[P];
      }
    return T.default = y, v && v.set(y, T), T;
  }
  function a(y) {
    return y && y.__esModule ? y : { default: y };
  }
  function o(y, v) {
    var T;
    if (typeof Symbol == "undefined" || y[Symbol.iterator] == null) {
      if (Array.isArray(y) || (T = l(y)) || v && y && typeof y.length == "number") {
        T && (y = T);
        var S = 0;
        return function() {
          return S >= y.length ? { done: !0 } : { done: !1, value: y[S++] };
        };
      }
      throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
    }
    return T = y[Symbol.iterator](), T.next.bind(T);
  }
  function l(y, v) {
    if (y) {
      if (typeof y == "string")
        return u(y, v);
      var T = Object.prototype.toString.call(y).slice(8, -1);
      if (T === "Object" && y.constructor && (T = y.constructor.name), T === "Map" || T === "Set")
        return Array.from(y);
      if (T === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(T))
        return u(y, v);
    }
  }
  function u(y, v) {
    (v == null || v > y.length) && (v = y.length);
    for (var T = 0, S = new Array(v); T < v; T++)
      S[T] = y[T];
    return S;
  }
  function c(y, v) {
    for (var T = 0; T < v.length; T++) {
      var S = v[T];
      S.enumerable = S.enumerable || !1, S.configurable = !0, "value" in S && (S.writable = !0), Object.defineProperty(y, S.key, S);
    }
  }
  function f(y, v, T) {
    return v && c(y.prototype, v), T && c(y, T), y;
  }
  function h(y, v) {
    y.prototype = Object.create(v.prototype), y.prototype.constructor = y, m(y, v);
  }
  function m(y, v) {
    return m = Object.setPrototypeOf || function(S, P) {
      return S.__proto__ = P, S;
    }, m(y, v);
  }
  var g = /* @__PURE__ */ function(y) {
    h(v, y);
    function v(S) {
      var P;
      return P = y.call(this, S) || this, P.nodes || (P.nodes = []), P;
    }
    var T = v.prototype;
    return T.append = function(P) {
      return P.parent = this, this.nodes.push(P), this;
    }, T.prepend = function(P) {
      return P.parent = this, this.nodes.unshift(P), this;
    }, T.at = function(P) {
      return this.nodes[P];
    }, T.index = function(P) {
      return typeof P == "number" ? P : this.nodes.indexOf(P);
    }, T.removeChild = function(P) {
      P = this.index(P), this.at(P).parent = void 0, this.nodes.splice(P, 1);
      var x;
      for (var C in this.indexes)
        x = this.indexes[C], x >= P && (this.indexes[C] = x - 1);
      return this;
    }, T.removeAll = function() {
      for (var P = o(this.nodes), x; !(x = P()).done; ) {
        var C = x.value;
        C.parent = void 0;
      }
      return this.nodes = [], this;
    }, T.empty = function() {
      return this.removeAll();
    }, T.insertAfter = function(P, x) {
      x.parent = this;
      var C = this.index(P);
      this.nodes.splice(C + 1, 0, x), x.parent = this;
      var D;
      for (var w in this.indexes)
        D = this.indexes[w], C <= D && (this.indexes[w] = D + 1);
      return this;
    }, T.insertBefore = function(P, x) {
      x.parent = this;
      var C = this.index(P);
      this.nodes.splice(C, 0, x), x.parent = this;
      var D;
      for (var w in this.indexes)
        D = this.indexes[w], D <= C && (this.indexes[w] = D + 1);
      return this;
    }, T._findChildAtPosition = function(P, x) {
      var C = void 0;
      return this.each(function(D) {
        if (D.atPosition) {
          var w = D.atPosition(P, x);
          if (w)
            return C = w, !1;
        } else if (D.isAtPosition(P, x))
          return C = D, !1;
      }), C;
    }, T.atPosition = function(P, x) {
      if (this.isAtPosition(P, x))
        return this._findChildAtPosition(P, x) || this;
    }, T._inferEndPosition = function() {
      this.last && this.last.source && this.last.source.end && (this.source = this.source || {}, this.source.end = this.source.end || {}, Object.assign(this.source.end, this.last.source.end));
    }, T.each = function(P) {
      this.lastEach || (this.lastEach = 0), this.indexes || (this.indexes = {}), this.lastEach++;
      var x = this.lastEach;
      if (this.indexes[x] = 0, !!this.length) {
        for (var C, D; this.indexes[x] < this.length && (C = this.indexes[x], D = P(this.at(C), C), D !== !1); )
          this.indexes[x] += 1;
        if (delete this.indexes[x], D === !1)
          return !1;
      }
    }, T.walk = function(P) {
      return this.each(function(x, C) {
        var D = P(x, C);
        if (D !== !1 && x.length && (D = x.walk(P)), D === !1)
          return !1;
      });
    }, T.walkAttributes = function(P) {
      var x = this;
      return this.walk(function(C) {
        if (C.type === i.ATTRIBUTE)
          return P.call(x, C);
      });
    }, T.walkClasses = function(P) {
      var x = this;
      return this.walk(function(C) {
        if (C.type === i.CLASS)
          return P.call(x, C);
      });
    }, T.walkCombinators = function(P) {
      var x = this;
      return this.walk(function(C) {
        if (C.type === i.COMBINATOR)
          return P.call(x, C);
      });
    }, T.walkComments = function(P) {
      var x = this;
      return this.walk(function(C) {
        if (C.type === i.COMMENT)
          return P.call(x, C);
      });
    }, T.walkIds = function(P) {
      var x = this;
      return this.walk(function(C) {
        if (C.type === i.ID)
          return P.call(x, C);
      });
    }, T.walkNesting = function(P) {
      var x = this;
      return this.walk(function(C) {
        if (C.type === i.NESTING)
          return P.call(x, C);
      });
    }, T.walkPseudos = function(P) {
      var x = this;
      return this.walk(function(C) {
        if (C.type === i.PSEUDO)
          return P.call(x, C);
      });
    }, T.walkTags = function(P) {
      var x = this;
      return this.walk(function(C) {
        if (C.type === i.TAG)
          return P.call(x, C);
      });
    }, T.walkUniversals = function(P) {
      var x = this;
      return this.walk(function(C) {
        if (C.type === i.UNIVERSAL)
          return P.call(x, C);
      });
    }, T.split = function(P) {
      var x = this, C = [];
      return this.reduce(function(D, w, A) {
        var I = P.call(x, w);
        return C.push(w), I ? (D.push(C), C = []) : A === x.length - 1 && D.push(C), D;
      }, []);
    }, T.map = function(P) {
      return this.nodes.map(P);
    }, T.reduce = function(P, x) {
      return this.nodes.reduce(P, x);
    }, T.every = function(P) {
      return this.nodes.every(P);
    }, T.some = function(P) {
      return this.nodes.some(P);
    }, T.filter = function(P) {
      return this.nodes.filter(P);
    }, T.sort = function(P) {
      return this.nodes.sort(P);
    }, T.toString = function() {
      return this.map(String).join("");
    }, f(v, [{
      key: "first",
      get: function() {
        return this.at(0);
      }
    }, {
      key: "last",
      get: function() {
        return this.at(this.length - 1);
      }
    }, {
      key: "length",
      get: function() {
        return this.nodes.length;
      }
    }]), v;
  }(r.default);
  t.default = g, e.exports = t.default;
})(h2e, Gy);
(function(e, t) {
  t.__esModule = !0, t.default = void 0;
  var r = n(Gy), i = Or;
  function n(c) {
    return c && c.__esModule ? c : { default: c };
  }
  function s(c, f) {
    for (var h = 0; h < f.length; h++) {
      var m = f[h];
      m.enumerable = m.enumerable || !1, m.configurable = !0, "value" in m && (m.writable = !0), Object.defineProperty(c, m.key, m);
    }
  }
  function a(c, f, h) {
    return f && s(c.prototype, f), h && s(c, h), c;
  }
  function o(c, f) {
    c.prototype = Object.create(f.prototype), c.prototype.constructor = c, l(c, f);
  }
  function l(c, f) {
    return l = Object.setPrototypeOf || function(m, g) {
      return m.__proto__ = g, m;
    }, l(c, f);
  }
  var u = /* @__PURE__ */ function(c) {
    o(f, c);
    function f(m) {
      var g;
      return g = c.call(this, m) || this, g.type = i.ROOT, g;
    }
    var h = f.prototype;
    return h.toString = function() {
      var g = this.reduce(function(y, v) {
        return y.push(String(v)), y;
      }, []).join(",");
      return this.trailingComma ? g + "," : g;
    }, h.error = function(g, y) {
      return this._error ? this._error(g, y) : new Error(g);
    }, a(f, [{
      key: "errorGenerator",
      set: function(g) {
        this._error = g;
      }
    }]), f;
  }(r.default);
  t.default = u, e.exports = t.default;
})(f2e, Rv);
var Fv = {}, M2e = {
  get exports() {
    return Fv;
  },
  set exports(e) {
    Fv = e;
  }
};
(function(e, t) {
  t.__esModule = !0, t.default = void 0;
  var r = n(Gy), i = Or;
  function n(l) {
    return l && l.__esModule ? l : { default: l };
  }
  function s(l, u) {
    l.prototype = Object.create(u.prototype), l.prototype.constructor = l, a(l, u);
  }
  function a(l, u) {
    return a = Object.setPrototypeOf || function(f, h) {
      return f.__proto__ = h, f;
    }, a(l, u);
  }
  var o = /* @__PURE__ */ function(l) {
    s(u, l);
    function u(c) {
      var f;
      return f = l.call(this, c) || this, f.type = i.SELECTOR, f;
    }
    return u;
  }(r.default);
  t.default = o, e.exports = t.default;
})(M2e, Fv);
var jv = {}, R2e = {
  get exports() {
    return jv;
  },
  set exports(e) {
    jv = e;
  }
};
/*! https://mths.be/cssesc v3.0.0 by @mathias */
var B2e = {}, F2e = B2e.hasOwnProperty, j2e = function(t, r) {
  if (!t)
    return r;
  var i = {};
  for (var n in r)
    i[n] = F2e.call(t, n) ? t[n] : r[n];
  return i;
}, $2e = /[ -,\.\/:-@\[-\^`\{-~]/, U2e = /[ -,\.\/:-@\[\]\^`\{-~]/, q2e = /(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g, j$ = function e(t, r) {
  r = j2e(r, e.options), r.quotes != "single" && r.quotes != "double" && (r.quotes = "single");
  for (var i = r.quotes == "double" ? '"' : "'", n = r.isIdentifier, s = t.charAt(0), a = "", o = 0, l = t.length; o < l; ) {
    var u = t.charAt(o++), c = u.charCodeAt(), f = void 0;
    if (c < 32 || c > 126) {
      if (c >= 55296 && c <= 56319 && o < l) {
        var h = t.charCodeAt(o++);
        (h & 64512) == 56320 ? c = ((c & 1023) << 10) + (h & 1023) + 65536 : o--;
      }
      f = "\\" + c.toString(16).toUpperCase() + " ";
    } else
      r.escapeEverything ? $2e.test(u) ? f = "\\" + u : f = "\\" + c.toString(16).toUpperCase() + " " : /[\t\n\f\r\x0B]/.test(u) ? f = "\\" + c.toString(16).toUpperCase() + " " : u == "\\" || !n && (u == '"' && i == u || u == "'" && i == u) || n && U2e.test(u) ? f = "\\" + u : f = u;
    a += f;
  }
  return n && (/^-[-\d]/.test(a) ? a = "\\-" + a.slice(1) : /\d/.test(s) && (a = "\\3" + s + " " + a.slice(1))), a = a.replace(q2e, function(m, g, y) {
    return g && g.length % 2 ? m : (g || "") + y;
  }), !n && r.wrap ? i + a + i : a;
};
j$.options = {
  escapeEverything: !1,
  isIdentifier: !1,
  quotes: "single",
  wrap: !1
};
j$.version = "3.0.0";
var $$ = j$;
(function(e, t) {
  t.__esModule = !0, t.default = void 0;
  var r = a($$), i = xo, n = a(Rc), s = Or;
  function a(h) {
    return h && h.__esModule ? h : { default: h };
  }
  function o(h, m) {
    for (var g = 0; g < m.length; g++) {
      var y = m[g];
      y.enumerable = y.enumerable || !1, y.configurable = !0, "value" in y && (y.writable = !0), Object.defineProperty(h, y.key, y);
    }
  }
  function l(h, m, g) {
    return m && o(h.prototype, m), g && o(h, g), h;
  }
  function u(h, m) {
    h.prototype = Object.create(m.prototype), h.prototype.constructor = h, c(h, m);
  }
  function c(h, m) {
    return c = Object.setPrototypeOf || function(y, v) {
      return y.__proto__ = v, y;
    }, c(h, m);
  }
  var f = /* @__PURE__ */ function(h) {
    u(m, h);
    function m(y) {
      var v;
      return v = h.call(this, y) || this, v.type = s.CLASS, v._constructed = !0, v;
    }
    var g = m.prototype;
    return g.valueToString = function() {
      return "." + h.prototype.valueToString.call(this);
    }, l(m, [{
      key: "value",
      get: function() {
        return this._value;
      },
      set: function(v) {
        if (this._constructed) {
          var T = (0, r.default)(v, {
            isIdentifier: !0
          });
          T !== v ? ((0, i.ensureObject)(this, "raws"), this.raws.value = T) : this.raws && delete this.raws.value;
        }
        this._value = v;
      }
    }]), m;
  }(n.default);
  t.default = f, e.exports = t.default;
})(R2e, jv);
var $v = {}, V2e = {
  get exports() {
    return $v;
  },
  set exports(e) {
    $v = e;
  }
};
(function(e, t) {
  t.__esModule = !0, t.default = void 0;
  var r = n(Rc), i = Or;
  function n(l) {
    return l && l.__esModule ? l : { default: l };
  }
  function s(l, u) {
    l.prototype = Object.create(u.prototype), l.prototype.constructor = l, a(l, u);
  }
  function a(l, u) {
    return a = Object.setPrototypeOf || function(f, h) {
      return f.__proto__ = h, f;
    }, a(l, u);
  }
  var o = /* @__PURE__ */ function(l) {
    s(u, l);
    function u(c) {
      var f;
      return f = l.call(this, c) || this, f.type = i.COMMENT, f;
    }
    return u;
  }(r.default);
  t.default = o, e.exports = t.default;
})(V2e, $v);
var Uv = {}, W2e = {
  get exports() {
    return Uv;
  },
  set exports(e) {
    Uv = e;
  }
};
(function(e, t) {
  t.__esModule = !0, t.default = void 0;
  var r = n(Rc), i = Or;
  function n(l) {
    return l && l.__esModule ? l : { default: l };
  }
  function s(l, u) {
    l.prototype = Object.create(u.prototype), l.prototype.constructor = l, a(l, u);
  }
  function a(l, u) {
    return a = Object.setPrototypeOf || function(f, h) {
      return f.__proto__ = h, f;
    }, a(l, u);
  }
  var o = /* @__PURE__ */ function(l) {
    s(u, l);
    function u(f) {
      var h;
      return h = l.call(this, f) || this, h.type = i.ID, h;
    }
    var c = u.prototype;
    return c.valueToString = function() {
      return "#" + l.prototype.valueToString.call(this);
    }, u;
  }(r.default);
  t.default = o, e.exports = t.default;
})(W2e, Uv);
var qv = {}, H2e = {
  get exports() {
    return qv;
  },
  set exports(e) {
    qv = e;
  }
}, Yy = {}, K2e = {
  get exports() {
    return Yy;
  },
  set exports(e) {
    Yy = e;
  }
};
(function(e, t) {
  t.__esModule = !0, t.default = void 0;
  var r = s($$), i = xo, n = s(Rc);
  function s(f) {
    return f && f.__esModule ? f : { default: f };
  }
  function a(f, h) {
    for (var m = 0; m < h.length; m++) {
      var g = h[m];
      g.enumerable = g.enumerable || !1, g.configurable = !0, "value" in g && (g.writable = !0), Object.defineProperty(f, g.key, g);
    }
  }
  function o(f, h, m) {
    return h && a(f.prototype, h), m && a(f, m), f;
  }
  function l(f, h) {
    f.prototype = Object.create(h.prototype), f.prototype.constructor = f, u(f, h);
  }
  function u(f, h) {
    return u = Object.setPrototypeOf || function(g, y) {
      return g.__proto__ = y, g;
    }, u(f, h);
  }
  var c = /* @__PURE__ */ function(f) {
    l(h, f);
    function h() {
      return f.apply(this, arguments) || this;
    }
    var m = h.prototype;
    return m.qualifiedName = function(y) {
      return this.namespace ? this.namespaceString + "|" + y : y;
    }, m.valueToString = function() {
      return this.qualifiedName(f.prototype.valueToString.call(this));
    }, o(h, [{
      key: "namespace",
      get: function() {
        return this._namespace;
      },
      set: function(y) {
        if (y === !0 || y === "*" || y === "&") {
          this._namespace = y, this.raws && delete this.raws.namespace;
          return;
        }
        var v = (0, r.default)(y, {
          isIdentifier: !0
        });
        this._namespace = y, v !== y ? ((0, i.ensureObject)(this, "raws"), this.raws.namespace = v) : this.raws && delete this.raws.namespace;
      }
    }, {
      key: "ns",
      get: function() {
        return this._namespace;
      },
      set: function(y) {
        this.namespace = y;
      }
    }, {
      key: "namespaceString",
      get: function() {
        if (this.namespace) {
          var y = this.stringifyProperty("namespace");
          return y === !0 ? "" : y;
        } else
          return "";
      }
    }]), h;
  }(n.default);
  t.default = c, e.exports = t.default;
})(K2e, Yy);
(function(e, t) {
  t.__esModule = !0, t.default = void 0;
  var r = n(Yy), i = Or;
  function n(l) {
    return l && l.__esModule ? l : { default: l };
  }
  function s(l, u) {
    l.prototype = Object.create(u.prototype), l.prototype.constructor = l, a(l, u);
  }
  function a(l, u) {
    return a = Object.setPrototypeOf || function(f, h) {
      return f.__proto__ = h, f;
    }, a(l, u);
  }
  var o = /* @__PURE__ */ function(l) {
    s(u, l);
    function u(c) {
      var f;
      return f = l.call(this, c) || this, f.type = i.TAG, f;
    }
    return u;
  }(r.default);
  t.default = o, e.exports = t.default;
})(H2e, qv);
var Vv = {}, z2e = {
  get exports() {
    return Vv;
  },
  set exports(e) {
    Vv = e;
  }
};
(function(e, t) {
  t.__esModule = !0, t.default = void 0;
  var r = n(Rc), i = Or;
  function n(l) {
    return l && l.__esModule ? l : { default: l };
  }
  function s(l, u) {
    l.prototype = Object.create(u.prototype), l.prototype.constructor = l, a(l, u);
  }
  function a(l, u) {
    return a = Object.setPrototypeOf || function(f, h) {
      return f.__proto__ = h, f;
    }, a(l, u);
  }
  var o = /* @__PURE__ */ function(l) {
    s(u, l);
    function u(c) {
      var f;
      return f = l.call(this, c) || this, f.type = i.STRING, f;
    }
    return u;
  }(r.default);
  t.default = o, e.exports = t.default;
})(z2e, Vv);
var Wv = {}, G2e = {
  get exports() {
    return Wv;
  },
  set exports(e) {
    Wv = e;
  }
};
(function(e, t) {
  t.__esModule = !0, t.default = void 0;
  var r = n(Gy), i = Or;
  function n(l) {
    return l && l.__esModule ? l : { default: l };
  }
  function s(l, u) {
    l.prototype = Object.create(u.prototype), l.prototype.constructor = l, a(l, u);
  }
  function a(l, u) {
    return a = Object.setPrototypeOf || function(f, h) {
      return f.__proto__ = h, f;
    }, a(l, u);
  }
  var o = /* @__PURE__ */ function(l) {
    s(u, l);
    function u(f) {
      var h;
      return h = l.call(this, f) || this, h.type = i.PSEUDO, h;
    }
    var c = u.prototype;
    return c.toString = function() {
      var h = this.length ? "(" + this.map(String).join(",") + ")" : "";
      return [this.rawSpaceBefore, this.stringifyProperty("value"), h, this.rawSpaceAfter].join("");
    }, u;
  }(r.default);
  t.default = o, e.exports = t.default;
})(G2e, Wv);
var U$ = {}, Y2e = h_e.deprecate;
(function(e) {
  e.__esModule = !0, e.unescapeValue = v, e.default = void 0;
  var t = a($$), r = a(Bv), i = a(Yy), n = Or, s;
  function a(C) {
    return C && C.__esModule ? C : { default: C };
  }
  function o(C, D) {
    for (var w = 0; w < D.length; w++) {
      var A = D[w];
      A.enumerable = A.enumerable || !1, A.configurable = !0, "value" in A && (A.writable = !0), Object.defineProperty(C, A.key, A);
    }
  }
  function l(C, D, w) {
    return D && o(C.prototype, D), w && o(C, w), C;
  }
  function u(C, D) {
    C.prototype = Object.create(D.prototype), C.prototype.constructor = C, c(C, D);
  }
  function c(C, D) {
    return c = Object.setPrototypeOf || function(A, I) {
      return A.__proto__ = I, A;
    }, c(C, D);
  }
  var f = Y2e, h = /^('|")([^]*)\1$/, m = f(function() {
  }, "Assigning an attribute a value containing characters that might need to be escaped is deprecated. Call attribute.setValue() instead."), g = f(function() {
  }, "Assigning attr.quoted is deprecated and has no effect. Assign to attr.quoteMark instead."), y = f(function() {
  }, "Constructing an Attribute selector with a value without specifying quoteMark is deprecated. Note: The value should be unescaped now.");
  function v(C) {
    var D = !1, w = null, A = C, I = A.match(h);
    return I && (w = I[1], A = I[2]), A = (0, r.default)(A), A !== C && (D = !0), {
      deprecatedUsage: D,
      unescaped: A,
      quoteMark: w
    };
  }
  function T(C) {
    if (C.quoteMark !== void 0 || C.value === void 0)
      return C;
    y();
    var D = v(C.value), w = D.quoteMark, A = D.unescaped;
    return C.raws || (C.raws = {}), C.raws.value === void 0 && (C.raws.value = C.value), C.value = A, C.quoteMark = w, C;
  }
  var S = /* @__PURE__ */ function(C) {
    u(D, C);
    function D(A) {
      var I;
      return A === void 0 && (A = {}), I = C.call(this, T(A)) || this, I.type = n.ATTRIBUTE, I.raws = I.raws || {}, Object.defineProperty(I.raws, "unquoted", {
        get: f(function() {
          return I.value;
        }, "attr.raws.unquoted is deprecated. Call attr.value instead."),
        set: f(function() {
          return I.value;
        }, "Setting attr.raws.unquoted is deprecated and has no effect. attr.value is unescaped by default now.")
      }), I._constructed = !0, I;
    }
    var w = D.prototype;
    return w.getQuotedValue = function(I) {
      I === void 0 && (I = {});
      var L = this._determineQuoteMark(I), O = P[L], F = (0, t.default)(this._value, O);
      return F;
    }, w._determineQuoteMark = function(I) {
      return I.smart ? this.smartQuoteMark(I) : this.preferredQuoteMark(I);
    }, w.setValue = function(I, L) {
      L === void 0 && (L = {}), this._value = I, this._quoteMark = this._determineQuoteMark(L), this._syncRawValue();
    }, w.smartQuoteMark = function(I) {
      var L = this.value, O = L.replace(/[^']/g, "").length, F = L.replace(/[^"]/g, "").length;
      if (O + F === 0) {
        var q = (0, t.default)(L, {
          isIdentifier: !0
        });
        if (q === L)
          return D.NO_QUOTE;
        var j = this.preferredQuoteMark(I);
        if (j === D.NO_QUOTE) {
          var N = this.quoteMark || I.quoteMark || D.DOUBLE_QUOTE, M = P[N], R = (0, t.default)(L, M);
          if (R.length < q.length)
            return N;
        }
        return j;
      } else
        return F === O ? this.preferredQuoteMark(I) : F < O ? D.DOUBLE_QUOTE : D.SINGLE_QUOTE;
    }, w.preferredQuoteMark = function(I) {
      var L = I.preferCurrentQuoteMark ? this.quoteMark : I.quoteMark;
      return L === void 0 && (L = I.preferCurrentQuoteMark ? I.quoteMark : this.quoteMark), L === void 0 && (L = D.DOUBLE_QUOTE), L;
    }, w._syncRawValue = function() {
      var I = (0, t.default)(this._value, P[this.quoteMark]);
      I === this._value ? this.raws && delete this.raws.value : this.raws.value = I;
    }, w._handleEscapes = function(I, L) {
      if (this._constructed) {
        var O = (0, t.default)(L, {
          isIdentifier: !0
        });
        O !== L ? this.raws[I] = O : delete this.raws[I];
      }
    }, w._spacesFor = function(I) {
      var L = {
        before: "",
        after: ""
      }, O = this.spaces[I] || {}, F = this.raws.spaces && this.raws.spaces[I] || {};
      return Object.assign(L, O, F);
    }, w._stringFor = function(I, L, O) {
      L === void 0 && (L = I), O === void 0 && (O = x);
      var F = this._spacesFor(L);
      return O(this.stringifyProperty(I), F);
    }, w.offsetOf = function(I) {
      var L = 1, O = this._spacesFor("attribute");
      if (L += O.before.length, I === "namespace" || I === "ns")
        return this.namespace ? L : -1;
      if (I === "attributeNS" || (L += this.namespaceString.length, this.namespace && (L += 1), I === "attribute"))
        return L;
      L += this.stringifyProperty("attribute").length, L += O.after.length;
      var F = this._spacesFor("operator");
      L += F.before.length;
      var q = this.stringifyProperty("operator");
      if (I === "operator")
        return q ? L : -1;
      L += q.length, L += F.after.length;
      var j = this._spacesFor("value");
      L += j.before.length;
      var N = this.stringifyProperty("value");
      if (I === "value")
        return N ? L : -1;
      L += N.length, L += j.after.length;
      var M = this._spacesFor("insensitive");
      return L += M.before.length, I === "insensitive" && this.insensitive ? L : -1;
    }, w.toString = function() {
      var I = this, L = [this.rawSpaceBefore, "["];
      return L.push(this._stringFor("qualifiedAttribute", "attribute")), this.operator && (this.value || this.value === "") && (L.push(this._stringFor("operator")), L.push(this._stringFor("value")), L.push(this._stringFor("insensitiveFlag", "insensitive", function(O, F) {
        return O.length > 0 && !I.quoted && F.before.length === 0 && !(I.spaces.value && I.spaces.value.after) && (F.before = " "), x(O, F);
      }))), L.push("]"), L.push(this.rawSpaceAfter), L.join("");
    }, l(D, [{
      key: "quoted",
      get: function() {
        var I = this.quoteMark;
        return I === "'" || I === '"';
      },
      set: function(I) {
        g();
      }
      /**
       * returns a single (`'`) or double (`"`) quote character if the value is quoted.
       * returns `null` if the value is not quoted.
       * returns `undefined` if the quotation state is unknown (this can happen when
       * the attribute is constructed without specifying a quote mark.)
       */
    }, {
      key: "quoteMark",
      get: function() {
        return this._quoteMark;
      },
      set: function(I) {
        if (!this._constructed) {
          this._quoteMark = I;
          return;
        }
        this._quoteMark !== I && (this._quoteMark = I, this._syncRawValue());
      }
    }, {
      key: "qualifiedAttribute",
      get: function() {
        return this.qualifiedName(this.raws.attribute || this.attribute);
      }
    }, {
      key: "insensitiveFlag",
      get: function() {
        return this.insensitive ? "i" : "";
      }
    }, {
      key: "value",
      get: function() {
        return this._value;
      },
      set: (
        /**
         * Before 3.0, the value had to be set to an escaped value including any wrapped
         * quote marks. In 3.0, the semantics of `Attribute.value` changed so that the value
         * is unescaped during parsing and any quote marks are removed.
         *
         * Because the ambiguity of this semantic change, if you set `attr.value = newValue`,
         * a deprecation warning is raised when the new value contains any characters that would
         * require escaping (including if it contains wrapped quotes).
         *
         * Instead, you should call `attr.setValue(newValue, opts)` and pass options that describe
         * how the new value is quoted.
         */
        function(I) {
          if (this._constructed) {
            var L = v(I), O = L.deprecatedUsage, F = L.unescaped, q = L.quoteMark;
            if (O && m(), F === this._value && q === this._quoteMark)
              return;
            this._value = F, this._quoteMark = q, this._syncRawValue();
          } else
            this._value = I;
        }
      )
    }, {
      key: "insensitive",
      get: function() {
        return this._insensitive;
      },
      set: function(I) {
        I || (this._insensitive = !1, this.raws && (this.raws.insensitiveFlag === "I" || this.raws.insensitiveFlag === "i") && (this.raws.insensitiveFlag = void 0)), this._insensitive = I;
      }
    }, {
      key: "attribute",
      get: function() {
        return this._attribute;
      },
      set: function(I) {
        this._handleEscapes("attribute", I), this._attribute = I;
      }
    }]), D;
  }(i.default);
  e.default = S, S.NO_QUOTE = null, S.SINGLE_QUOTE = "'", S.DOUBLE_QUOTE = '"';
  var P = (s = {
    "'": {
      quotes: "single",
      wrap: !0
    },
    '"': {
      quotes: "double",
      wrap: !0
    }
  }, s[null] = {
    isIdentifier: !0
  }, s);
  function x(C, D) {
    return "" + D.before + C + D.after;
  }
})(U$);
var Hv = {}, X2e = {
  get exports() {
    return Hv;
  },
  set exports(e) {
    Hv = e;
  }
};
(function(e, t) {
  t.__esModule = !0, t.default = void 0;
  var r = n(Yy), i = Or;
  function n(l) {
    return l && l.__esModule ? l : { default: l };
  }
  function s(l, u) {
    l.prototype = Object.create(u.prototype), l.prototype.constructor = l, a(l, u);
  }
  function a(l, u) {
    return a = Object.setPrototypeOf || function(f, h) {
      return f.__proto__ = h, f;
    }, a(l, u);
  }
  var o = /* @__PURE__ */ function(l) {
    s(u, l);
    function u(c) {
      var f;
      return f = l.call(this, c) || this, f.type = i.UNIVERSAL, f.value = "*", f;
    }
    return u;
  }(r.default);
  t.default = o, e.exports = t.default;
})(X2e, Hv);
var Kv = {}, J2e = {
  get exports() {
    return Kv;
  },
  set exports(e) {
    Kv = e;
  }
};
(function(e, t) {
  t.__esModule = !0, t.default = void 0;
  var r = n(Rc), i = Or;
  function n(l) {
    return l && l.__esModule ? l : { default: l };
  }
  function s(l, u) {
    l.prototype = Object.create(u.prototype), l.prototype.constructor = l, a(l, u);
  }
  function a(l, u) {
    return a = Object.setPrototypeOf || function(f, h) {
      return f.__proto__ = h, f;
    }, a(l, u);
  }
  var o = /* @__PURE__ */ function(l) {
    s(u, l);
    function u(c) {
      var f;
      return f = l.call(this, c) || this, f.type = i.COMBINATOR, f;
    }
    return u;
  }(r.default);
  t.default = o, e.exports = t.default;
})(J2e, Kv);
var zv = {}, Q2e = {
  get exports() {
    return zv;
  },
  set exports(e) {
    zv = e;
  }
};
(function(e, t) {
  t.__esModule = !0, t.default = void 0;
  var r = n(Rc), i = Or;
  function n(l) {
    return l && l.__esModule ? l : { default: l };
  }
  function s(l, u) {
    l.prototype = Object.create(u.prototype), l.prototype.constructor = l, a(l, u);
  }
  function a(l, u) {
    return a = Object.setPrototypeOf || function(f, h) {
      return f.__proto__ = h, f;
    }, a(l, u);
  }
  var o = /* @__PURE__ */ function(l) {
    s(u, l);
    function u(c) {
      var f;
      return f = l.call(this, c) || this, f.type = i.NESTING, f.value = "&", f;
    }
    return u;
  }(r.default);
  t.default = o, e.exports = t.default;
})(Q2e, zv);
var kw = {}, Z2e = {
  get exports() {
    return kw;
  },
  set exports(e) {
    kw = e;
  }
};
(function(e, t) {
  t.__esModule = !0, t.default = r;
  function r(i) {
    return i.sort(function(n, s) {
      return n - s;
    });
  }
  e.exports = t.default;
})(Z2e, kw);
var mpe = {}, zt = {};
zt.__esModule = !0;
zt.combinator = zt.word = zt.comment = zt.str = zt.tab = zt.newline = zt.feed = zt.cr = zt.backslash = zt.bang = zt.slash = zt.doubleQuote = zt.singleQuote = zt.space = zt.greaterThan = zt.pipe = zt.equals = zt.plus = zt.caret = zt.tilde = zt.dollar = zt.closeSquare = zt.openSquare = zt.closeParenthesis = zt.openParenthesis = zt.semicolon = zt.colon = zt.comma = zt.at = zt.asterisk = zt.ampersand = void 0;
var eke = 38;
zt.ampersand = eke;
var tke = 42;
zt.asterisk = tke;
var rke = 64;
zt.at = rke;
var ike = 44;
zt.comma = ike;
var nke = 58;
zt.colon = nke;
var ske = 59;
zt.semicolon = ske;
var ake = 40;
zt.openParenthesis = ake;
var oke = 41;
zt.closeParenthesis = oke;
var lke = 91;
zt.openSquare = lke;
var uke = 93;
zt.closeSquare = uke;
var cke = 36;
zt.dollar = cke;
var pke = 126;
zt.tilde = pke;
var fke = 94;
zt.caret = fke;
var hke = 43;
zt.plus = hke;
var dke = 61;
zt.equals = dke;
var mke = 124;
zt.pipe = mke;
var yke = 62;
zt.greaterThan = yke;
var gke = 32;
zt.space = gke;
var ype = 39;
zt.singleQuote = ype;
var bke = 34;
zt.doubleQuote = bke;
var vke = 47;
zt.slash = vke;
var Tke = 33;
zt.bang = Tke;
var Ske = 92;
zt.backslash = Ske;
var xke = 13;
zt.cr = xke;
var Eke = 12;
zt.feed = Eke;
var Pke = 10;
zt.newline = Pke;
var wke = 9;
zt.tab = wke;
var Ake = ype;
zt.str = Ake;
var Cke = -1;
zt.comment = Cke;
var _ke = -2;
zt.word = _ke;
var Ike = -3;
zt.combinator = Ike;
(function(e) {
  e.__esModule = !0, e.default = g, e.FIELDS = void 0;
  var t = s(zt), r, i;
  function n() {
    if (typeof WeakMap != "function")
      return null;
    var y = /* @__PURE__ */ new WeakMap();
    return n = function() {
      return y;
    }, y;
  }
  function s(y) {
    if (y && y.__esModule)
      return y;
    if (y === null || typeof y != "object" && typeof y != "function")
      return { default: y };
    var v = n();
    if (v && v.has(y))
      return v.get(y);
    var T = {}, S = Object.defineProperty && Object.getOwnPropertyDescriptor;
    for (var P in y)
      if (Object.prototype.hasOwnProperty.call(y, P)) {
        var x = S ? Object.getOwnPropertyDescriptor(y, P) : null;
        x && (x.get || x.set) ? Object.defineProperty(T, P, x) : T[P] = y[P];
      }
    return T.default = y, v && v.set(y, T), T;
  }
  for (var a = (r = {}, r[t.tab] = !0, r[t.newline] = !0, r[t.cr] = !0, r[t.feed] = !0, r), o = (i = {}, i[t.space] = !0, i[t.tab] = !0, i[t.newline] = !0, i[t.cr] = !0, i[t.feed] = !0, i[t.ampersand] = !0, i[t.asterisk] = !0, i[t.bang] = !0, i[t.comma] = !0, i[t.colon] = !0, i[t.semicolon] = !0, i[t.openParenthesis] = !0, i[t.closeParenthesis] = !0, i[t.openSquare] = !0, i[t.closeSquare] = !0, i[t.singleQuote] = !0, i[t.doubleQuote] = !0, i[t.plus] = !0, i[t.pipe] = !0, i[t.tilde] = !0, i[t.greaterThan] = !0, i[t.equals] = !0, i[t.dollar] = !0, i[t.caret] = !0, i[t.slash] = !0, i), l = {}, u = "0123456789abcdefABCDEF", c = 0; c < u.length; c++)
    l[u.charCodeAt(c)] = !0;
  function f(y, v) {
    var T = v, S;
    do {
      if (S = y.charCodeAt(T), o[S])
        return T - 1;
      S === t.backslash ? T = h(y, T) + 1 : T++;
    } while (T < y.length);
    return T - 1;
  }
  function h(y, v) {
    var T = v, S = y.charCodeAt(T + 1);
    if (!a[S])
      if (l[S]) {
        var P = 0;
        do
          T++, P++, S = y.charCodeAt(T + 1);
        while (l[S] && P < 6);
        P < 6 && S === t.space && T++;
      } else
        T++;
    return T;
  }
  var m = {
    TYPE: 0,
    START_LINE: 1,
    START_COL: 2,
    END_LINE: 3,
    END_COL: 4,
    START_POS: 5,
    END_POS: 6
  };
  e.FIELDS = m;
  function g(y) {
    var v = [], T = y.css.valueOf(), S = T, P = S.length, x = -1, C = 1, D = 0, w = 0, A, I, L, O, F, q, j, N, M, R, $, V, K;
    function z(W, Y) {
      if (y.safe)
        T += Y, M = T.length - 1;
      else
        throw y.error("Unclosed " + W, C, D - x, D);
    }
    for (; D < P; ) {
      switch (A = T.charCodeAt(D), A === t.newline && (x = D, C += 1), A) {
        case t.space:
        case t.tab:
        case t.newline:
        case t.cr:
        case t.feed:
          M = D;
          do
            M += 1, A = T.charCodeAt(M), A === t.newline && (x = M, C += 1);
          while (A === t.space || A === t.newline || A === t.tab || A === t.cr || A === t.feed);
          K = t.space, O = C, L = M - x - 1, w = M;
          break;
        case t.plus:
        case t.greaterThan:
        case t.tilde:
        case t.pipe:
          M = D;
          do
            M += 1, A = T.charCodeAt(M);
          while (A === t.plus || A === t.greaterThan || A === t.tilde || A === t.pipe);
          K = t.combinator, O = C, L = D - x, w = M;
          break;
        case t.asterisk:
        case t.ampersand:
        case t.bang:
        case t.comma:
        case t.equals:
        case t.dollar:
        case t.caret:
        case t.openSquare:
        case t.closeSquare:
        case t.colon:
        case t.semicolon:
        case t.openParenthesis:
        case t.closeParenthesis:
          M = D, K = A, O = C, L = D - x, w = M + 1;
          break;
        case t.singleQuote:
        case t.doubleQuote:
          V = A === t.singleQuote ? "'" : '"', M = D;
          do
            for (F = !1, M = T.indexOf(V, M + 1), M === -1 && z("quote", V), q = M; T.charCodeAt(q - 1) === t.backslash; )
              q -= 1, F = !F;
          while (F);
          K = t.str, O = C, L = D - x, w = M + 1;
          break;
        default:
          A === t.slash && T.charCodeAt(D + 1) === t.asterisk ? (M = T.indexOf("*/", D + 2) + 1, M === 0 && z("comment", "*/"), I = T.slice(D, M + 1), N = I.split("\n"), j = N.length - 1, j > 0 ? (R = C + j, $ = M - N[j].length) : (R = C, $ = x), K = t.comment, C = R, O = R, L = M - $) : A === t.slash ? (M = D, K = A, O = C, L = D - x, w = M + 1) : (M = f(T, D), K = t.word, O = C, L = M - x), w = M + 1;
          break;
      }
      v.push([
        K,
        // [0] Token type
        C,
        // [1] Starting line
        D - x,
        // [2] Starting column
        O,
        // [3] Ending line
        L,
        // [4] Ending column
        D,
        // [5] Start position / Source index
        w
        // [6] End position
      ]), $ && (x = $, $ = null), D = w;
    }
    return v;
  }
})(mpe);
(function(e, t) {
  t.__esModule = !0, t.default = void 0;
  var r = w(Rv), i = w(Fv), n = w(jv), s = w($v), a = w(Uv), o = w(qv), l = w(Vv), u = w(Wv), c = D(U$), f = w(Hv), h = w(Kv), m = w(zv), g = w(kw), y = D(mpe), v = D(zt), T = D(Or), S = xo, P, x;
  function C() {
    if (typeof WeakMap != "function")
      return null;
    var z = /* @__PURE__ */ new WeakMap();
    return C = function() {
      return z;
    }, z;
  }
  function D(z) {
    if (z && z.__esModule)
      return z;
    if (z === null || typeof z != "object" && typeof z != "function")
      return { default: z };
    var W = C();
    if (W && W.has(z))
      return W.get(z);
    var Y = {}, G = Object.defineProperty && Object.getOwnPropertyDescriptor;
    for (var le in z)
      if (Object.prototype.hasOwnProperty.call(z, le)) {
        var ne = G ? Object.getOwnPropertyDescriptor(z, le) : null;
        ne && (ne.get || ne.set) ? Object.defineProperty(Y, le, ne) : Y[le] = z[le];
      }
    return Y.default = z, W && W.set(z, Y), Y;
  }
  function w(z) {
    return z && z.__esModule ? z : { default: z };
  }
  function A(z, W) {
    for (var Y = 0; Y < W.length; Y++) {
      var G = W[Y];
      G.enumerable = G.enumerable || !1, G.configurable = !0, "value" in G && (G.writable = !0), Object.defineProperty(z, G.key, G);
    }
  }
  function I(z, W, Y) {
    return W && A(z.prototype, W), Y && A(z, Y), z;
  }
  var L = (P = {}, P[v.space] = !0, P[v.cr] = !0, P[v.feed] = !0, P[v.newline] = !0, P[v.tab] = !0, P), O = Object.assign({}, L, (x = {}, x[v.comment] = !0, x));
  function F(z) {
    return {
      line: z[y.FIELDS.START_LINE],
      column: z[y.FIELDS.START_COL]
    };
  }
  function q(z) {
    return {
      line: z[y.FIELDS.END_LINE],
      column: z[y.FIELDS.END_COL]
    };
  }
  function j(z, W, Y, G) {
    return {
      start: {
        line: z,
        column: W
      },
      end: {
        line: Y,
        column: G
      }
    };
  }
  function N(z) {
    return j(z[y.FIELDS.START_LINE], z[y.FIELDS.START_COL], z[y.FIELDS.END_LINE], z[y.FIELDS.END_COL]);
  }
  function M(z, W) {
    if (z)
      return j(z[y.FIELDS.START_LINE], z[y.FIELDS.START_COL], W[y.FIELDS.END_LINE], W[y.FIELDS.END_COL]);
  }
  function R(z, W) {
    var Y = z[W];
    if (typeof Y == "string")
      return Y.indexOf("\\") !== -1 && ((0, S.ensureObject)(z, "raws"), z[W] = (0, S.unesc)(Y), z.raws[W] === void 0 && (z.raws[W] = Y)), z;
  }
  function $(z, W) {
    for (var Y = -1, G = []; (Y = z.indexOf(W, Y + 1)) !== -1; )
      G.push(Y);
    return G;
  }
  function V() {
    var z = Array.prototype.concat.apply([], arguments);
    return z.filter(function(W, Y) {
      return Y === z.indexOf(W);
    });
  }
  var K = /* @__PURE__ */ function() {
    function z(Y, G) {
      G === void 0 && (G = {}), this.rule = Y, this.options = Object.assign({
        lossy: !1,
        safe: !1
      }, G), this.position = 0, this.css = typeof this.rule == "string" ? this.rule : this.rule.selector, this.tokens = (0, y.default)({
        css: this.css,
        error: this._errorGenerator(),
        safe: this.options.safe
      });
      var le = M(this.tokens[0], this.tokens[this.tokens.length - 1]);
      this.root = new r.default({
        source: le
      }), this.root.errorGenerator = this._errorGenerator();
      var ne = new i.default({
        source: {
          start: {
            line: 1,
            column: 1
          }
        }
      });
      this.root.append(ne), this.current = ne, this.loop();
    }
    var W = z.prototype;
    return W._errorGenerator = function() {
      var G = this;
      return function(le, ne) {
        return typeof G.rule == "string" ? new Error(le) : G.rule.error(le, ne);
      };
    }, W.attribute = function() {
      var G = [], le = this.currToken;
      for (this.position++; this.position < this.tokens.length && this.currToken[y.FIELDS.TYPE] !== v.closeSquare; )
        G.push(this.currToken), this.position++;
      if (this.currToken[y.FIELDS.TYPE] !== v.closeSquare)
        return this.expected("closing square bracket", this.currToken[y.FIELDS.START_POS]);
      var ne = G.length, ae = {
        source: j(le[1], le[2], this.currToken[3], this.currToken[4]),
        sourceIndex: le[y.FIELDS.START_POS]
      };
      if (ne === 1 && !~[v.word].indexOf(G[0][y.FIELDS.TYPE]))
        return this.expected("attribute", G[0][y.FIELDS.START_POS]);
      for (var be = 0, ye = "", fe = "", Z = null, ue = !1; be < ne; ) {
        var me = G[be], xe = this.content(me), Pe = G[be + 1];
        switch (me[y.FIELDS.TYPE]) {
          case v.space:
            if (ue = !0, this.options.lossy)
              break;
            if (Z) {
              (0, S.ensureObject)(ae, "spaces", Z);
              var ve = ae.spaces[Z].after || "";
              ae.spaces[Z].after = ve + xe;
              var Xe = (0, S.getProp)(ae, "raws", "spaces", Z, "after") || null;
              Xe && (ae.raws.spaces[Z].after = Xe + xe);
            } else
              ye = ye + xe, fe = fe + xe;
            break;
          case v.asterisk:
            if (Pe[y.FIELDS.TYPE] === v.equals)
              ae.operator = xe, Z = "operator";
            else if ((!ae.namespace || Z === "namespace" && !ue) && Pe) {
              ye && ((0, S.ensureObject)(ae, "spaces", "attribute"), ae.spaces.attribute.before = ye, ye = ""), fe && ((0, S.ensureObject)(ae, "raws", "spaces", "attribute"), ae.raws.spaces.attribute.before = ye, fe = ""), ae.namespace = (ae.namespace || "") + xe;
              var st = (0, S.getProp)(ae, "raws", "namespace") || null;
              st && (ae.raws.namespace += xe), Z = "namespace";
            }
            ue = !1;
            break;
          case v.dollar:
            if (Z === "value") {
              var Se = (0, S.getProp)(ae, "raws", "value");
              ae.value += "$", Se && (ae.raws.value = Se + "$");
              break;
            }
          case v.caret:
            Pe[y.FIELDS.TYPE] === v.equals && (ae.operator = xe, Z = "operator"), ue = !1;
            break;
          case v.combinator:
            if (xe === "~" && Pe[y.FIELDS.TYPE] === v.equals && (ae.operator = xe, Z = "operator"), xe !== "|") {
              ue = !1;
              break;
            }
            Pe[y.FIELDS.TYPE] === v.equals ? (ae.operator = xe, Z = "operator") : !ae.namespace && !ae.attribute && (ae.namespace = !0), ue = !1;
            break;
          case v.word:
            if (Pe && this.content(Pe) === "|" && G[be + 2] && G[be + 2][y.FIELDS.TYPE] !== v.equals && // this look-ahead probably fails with comment nodes involved.
            !ae.operator && !ae.namespace)
              ae.namespace = xe, Z = "namespace";
            else if (!ae.attribute || Z === "attribute" && !ue) {
              ye && ((0, S.ensureObject)(ae, "spaces", "attribute"), ae.spaces.attribute.before = ye, ye = ""), fe && ((0, S.ensureObject)(ae, "raws", "spaces", "attribute"), ae.raws.spaces.attribute.before = fe, fe = ""), ae.attribute = (ae.attribute || "") + xe;
              var oe = (0, S.getProp)(ae, "raws", "attribute") || null;
              oe && (ae.raws.attribute += xe), Z = "attribute";
            } else if (!ae.value && ae.value !== "" || Z === "value" && !(ue || ae.quoteMark)) {
              var te = (0, S.unesc)(xe), se = (0, S.getProp)(ae, "raws", "value") || "", re = ae.value || "";
              ae.value = re + te, ae.quoteMark = null, (te !== xe || se) && ((0, S.ensureObject)(ae, "raws"), ae.raws.value = (se || re) + xe), Z = "value";
            } else {
              var Te = xe === "i" || xe === "I";
              (ae.value || ae.value === "") && (ae.quoteMark || ue) ? (ae.insensitive = Te, (!Te || xe === "I") && ((0, S.ensureObject)(ae, "raws"), ae.raws.insensitiveFlag = xe), Z = "insensitive", ye && ((0, S.ensureObject)(ae, "spaces", "insensitive"), ae.spaces.insensitive.before = ye, ye = ""), fe && ((0, S.ensureObject)(ae, "raws", "spaces", "insensitive"), ae.raws.spaces.insensitive.before = fe, fe = "")) : (ae.value || ae.value === "") && (Z = "value", ae.value += xe, ae.raws.value && (ae.raws.value += xe));
            }
            ue = !1;
            break;
          case v.str:
            if (!ae.attribute || !ae.operator)
              return this.error("Expected an attribute followed by an operator preceding the string.", {
                index: me[y.FIELDS.START_POS]
              });
            var ze = (0, c.unescapeValue)(xe), Ze = ze.unescaped, pt = ze.quoteMark;
            ae.value = Ze, ae.quoteMark = pt, Z = "value", (0, S.ensureObject)(ae, "raws"), ae.raws.value = xe, ue = !1;
            break;
          case v.equals:
            if (!ae.attribute)
              return this.expected("attribute", me[y.FIELDS.START_POS], xe);
            if (ae.value)
              return this.error('Unexpected "=" found; an operator was already defined.', {
                index: me[y.FIELDS.START_POS]
              });
            ae.operator = ae.operator ? ae.operator + xe : xe, Z = "operator", ue = !1;
            break;
          case v.comment:
            if (Z)
              if (ue || Pe && Pe[y.FIELDS.TYPE] === v.space || Z === "insensitive") {
                var ut = (0, S.getProp)(ae, "spaces", Z, "after") || "", bt = (0, S.getProp)(ae, "raws", "spaces", Z, "after") || ut;
                (0, S.ensureObject)(ae, "raws", "spaces", Z), ae.raws.spaces[Z].after = bt + xe;
              } else {
                var vt = ae[Z] || "", ge = (0, S.getProp)(ae, "raws", Z) || vt;
                (0, S.ensureObject)(ae, "raws"), ae.raws[Z] = ge + xe;
              }
            else
              fe = fe + xe;
            break;
          default:
            return this.error('Unexpected "' + xe + '" found.', {
              index: me[y.FIELDS.START_POS]
            });
        }
        be++;
      }
      R(ae, "attribute"), R(ae, "namespace"), this.newNode(new c.default(ae)), this.position++;
    }, W.parseWhitespaceEquivalentTokens = function(G) {
      G < 0 && (G = this.tokens.length);
      var le = this.position, ne = [], ae = "", be = void 0;
      do
        if (L[this.currToken[y.FIELDS.TYPE]])
          this.options.lossy || (ae += this.content());
        else if (this.currToken[y.FIELDS.TYPE] === v.comment) {
          var ye = {};
          ae && (ye.before = ae, ae = ""), be = new s.default({
            value: this.content(),
            source: N(this.currToken),
            sourceIndex: this.currToken[y.FIELDS.START_POS],
            spaces: ye
          }), ne.push(be);
        }
      while (++this.position < G);
      if (ae) {
        if (be)
          be.spaces.after = ae;
        else if (!this.options.lossy) {
          var fe = this.tokens[le], Z = this.tokens[this.position - 1];
          ne.push(new l.default({
            value: "",
            source: j(fe[y.FIELDS.START_LINE], fe[y.FIELDS.START_COL], Z[y.FIELDS.END_LINE], Z[y.FIELDS.END_COL]),
            sourceIndex: fe[y.FIELDS.START_POS],
            spaces: {
              before: ae,
              after: ""
            }
          }));
        }
      }
      return ne;
    }, W.convertWhitespaceNodesToSpace = function(G, le) {
      var ne = this;
      le === void 0 && (le = !1);
      var ae = "", be = "";
      G.forEach(function(fe) {
        var Z = ne.lossySpace(fe.spaces.before, le), ue = ne.lossySpace(fe.rawSpaceBefore, le);
        ae += Z + ne.lossySpace(fe.spaces.after, le && Z.length === 0), be += Z + fe.value + ne.lossySpace(fe.rawSpaceAfter, le && ue.length === 0);
      }), be === ae && (be = void 0);
      var ye = {
        space: ae,
        rawSpace: be
      };
      return ye;
    }, W.isNamedCombinator = function(G) {
      return G === void 0 && (G = this.position), this.tokens[G + 0] && this.tokens[G + 0][y.FIELDS.TYPE] === v.slash && this.tokens[G + 1] && this.tokens[G + 1][y.FIELDS.TYPE] === v.word && this.tokens[G + 2] && this.tokens[G + 2][y.FIELDS.TYPE] === v.slash;
    }, W.namedCombinator = function() {
      if (this.isNamedCombinator()) {
        var G = this.content(this.tokens[this.position + 1]), le = (0, S.unesc)(G).toLowerCase(), ne = {};
        le !== G && (ne.value = "/" + G + "/");
        var ae = new h.default({
          value: "/" + le + "/",
          source: j(this.currToken[y.FIELDS.START_LINE], this.currToken[y.FIELDS.START_COL], this.tokens[this.position + 2][y.FIELDS.END_LINE], this.tokens[this.position + 2][y.FIELDS.END_COL]),
          sourceIndex: this.currToken[y.FIELDS.START_POS],
          raws: ne
        });
        return this.position = this.position + 3, ae;
      } else
        this.unexpected();
    }, W.combinator = function() {
      var G = this;
      if (this.content() === "|")
        return this.namespace();
      var le = this.locateNextMeaningfulToken(this.position);
      if (le < 0 || this.tokens[le][y.FIELDS.TYPE] === v.comma) {
        var ne = this.parseWhitespaceEquivalentTokens(le);
        if (ne.length > 0) {
          var ae = this.current.last;
          if (ae) {
            var be = this.convertWhitespaceNodesToSpace(ne), ye = be.space, fe = be.rawSpace;
            fe !== void 0 && (ae.rawSpaceAfter += fe), ae.spaces.after += ye;
          } else
            ne.forEach(function(se) {
              return G.newNode(se);
            });
        }
        return;
      }
      var Z = this.currToken, ue = void 0;
      le > this.position && (ue = this.parseWhitespaceEquivalentTokens(le));
      var me;
      if (this.isNamedCombinator() ? me = this.namedCombinator() : this.currToken[y.FIELDS.TYPE] === v.combinator ? (me = new h.default({
        value: this.content(),
        source: N(this.currToken),
        sourceIndex: this.currToken[y.FIELDS.START_POS]
      }), this.position++) : L[this.currToken[y.FIELDS.TYPE]] || ue || this.unexpected(), me) {
        if (ue) {
          var xe = this.convertWhitespaceNodesToSpace(ue), Pe = xe.space, ve = xe.rawSpace;
          me.spaces.before = Pe, me.rawSpaceBefore = ve;
        }
      } else {
        var Xe = this.convertWhitespaceNodesToSpace(ue, !0), st = Xe.space, Se = Xe.rawSpace;
        Se || (Se = st);
        var oe = {}, te = {
          spaces: {}
        };
        st.endsWith(" ") && Se.endsWith(" ") ? (oe.before = st.slice(0, st.length - 1), te.spaces.before = Se.slice(0, Se.length - 1)) : st.startsWith(" ") && Se.startsWith(" ") ? (oe.after = st.slice(1), te.spaces.after = Se.slice(1)) : te.value = Se, me = new h.default({
          value: " ",
          source: M(Z, this.tokens[this.position - 1]),
          sourceIndex: Z[y.FIELDS.START_POS],
          spaces: oe,
          raws: te
        });
      }
      return this.currToken && this.currToken[y.FIELDS.TYPE] === v.space && (me.spaces.after = this.optionalSpace(this.content()), this.position++), this.newNode(me);
    }, W.comma = function() {
      if (this.position === this.tokens.length - 1) {
        this.root.trailingComma = !0, this.position++;
        return;
      }
      this.current._inferEndPosition();
      var G = new i.default({
        source: {
          start: F(this.tokens[this.position + 1])
        }
      });
      this.current.parent.append(G), this.current = G, this.position++;
    }, W.comment = function() {
      var G = this.currToken;
      this.newNode(new s.default({
        value: this.content(),
        source: N(G),
        sourceIndex: G[y.FIELDS.START_POS]
      })), this.position++;
    }, W.error = function(G, le) {
      throw this.root.error(G, le);
    }, W.missingBackslash = function() {
      return this.error("Expected a backslash preceding the semicolon.", {
        index: this.currToken[y.FIELDS.START_POS]
      });
    }, W.missingParenthesis = function() {
      return this.expected("opening parenthesis", this.currToken[y.FIELDS.START_POS]);
    }, W.missingSquareBracket = function() {
      return this.expected("opening square bracket", this.currToken[y.FIELDS.START_POS]);
    }, W.unexpected = function() {
      return this.error("Unexpected '" + this.content() + "'. Escaping special characters with \\ may help.", this.currToken[y.FIELDS.START_POS]);
    }, W.namespace = function() {
      var G = this.prevToken && this.content(this.prevToken) || !0;
      if (this.nextToken[y.FIELDS.TYPE] === v.word)
        return this.position++, this.word(G);
      if (this.nextToken[y.FIELDS.TYPE] === v.asterisk)
        return this.position++, this.universal(G);
    }, W.nesting = function() {
      if (this.nextToken) {
        var G = this.content(this.nextToken);
        if (G === "|") {
          this.position++;
          return;
        }
      }
      var le = this.currToken;
      this.newNode(new m.default({
        value: this.content(),
        source: N(le),
        sourceIndex: le[y.FIELDS.START_POS]
      })), this.position++;
    }, W.parentheses = function() {
      var G = this.current.last, le = 1;
      if (this.position++, G && G.type === T.PSEUDO) {
        var ne = new i.default({
          source: {
            start: F(this.tokens[this.position - 1])
          }
        }), ae = this.current;
        for (G.append(ne), this.current = ne; this.position < this.tokens.length && le; )
          this.currToken[y.FIELDS.TYPE] === v.openParenthesis && le++, this.currToken[y.FIELDS.TYPE] === v.closeParenthesis && le--, le ? this.parse() : (this.current.source.end = q(this.currToken), this.current.parent.source.end = q(this.currToken), this.position++);
        this.current = ae;
      } else {
        for (var be = this.currToken, ye = "(", fe; this.position < this.tokens.length && le; )
          this.currToken[y.FIELDS.TYPE] === v.openParenthesis && le++, this.currToken[y.FIELDS.TYPE] === v.closeParenthesis && le--, fe = this.currToken, ye += this.parseParenthesisToken(this.currToken), this.position++;
        G ? G.appendToPropertyAndEscape("value", ye, ye) : this.newNode(new l.default({
          value: ye,
          source: j(be[y.FIELDS.START_LINE], be[y.FIELDS.START_COL], fe[y.FIELDS.END_LINE], fe[y.FIELDS.END_COL]),
          sourceIndex: be[y.FIELDS.START_POS]
        }));
      }
      if (le)
        return this.expected("closing parenthesis", this.currToken[y.FIELDS.START_POS]);
    }, W.pseudo = function() {
      for (var G = this, le = "", ne = this.currToken; this.currToken && this.currToken[y.FIELDS.TYPE] === v.colon; )
        le += this.content(), this.position++;
      if (!this.currToken)
        return this.expected(["pseudo-class", "pseudo-element"], this.position - 1);
      if (this.currToken[y.FIELDS.TYPE] === v.word)
        this.splitWord(!1, function(ae, be) {
          le += ae, G.newNode(new u.default({
            value: le,
            source: M(ne, G.currToken),
            sourceIndex: ne[y.FIELDS.START_POS]
          })), be > 1 && G.nextToken && G.nextToken[y.FIELDS.TYPE] === v.openParenthesis && G.error("Misplaced parenthesis.", {
            index: G.nextToken[y.FIELDS.START_POS]
          });
        });
      else
        return this.expected(["pseudo-class", "pseudo-element"], this.currToken[y.FIELDS.START_POS]);
    }, W.space = function() {
      var G = this.content();
      this.position === 0 || this.prevToken[y.FIELDS.TYPE] === v.comma || this.prevToken[y.FIELDS.TYPE] === v.openParenthesis || this.current.nodes.every(function(le) {
        return le.type === "comment";
      }) ? (this.spaces = this.optionalSpace(G), this.position++) : this.position === this.tokens.length - 1 || this.nextToken[y.FIELDS.TYPE] === v.comma || this.nextToken[y.FIELDS.TYPE] === v.closeParenthesis ? (this.current.last.spaces.after = this.optionalSpace(G), this.position++) : this.combinator();
    }, W.string = function() {
      var G = this.currToken;
      this.newNode(new l.default({
        value: this.content(),
        source: N(G),
        sourceIndex: G[y.FIELDS.START_POS]
      })), this.position++;
    }, W.universal = function(G) {
      var le = this.nextToken;
      if (le && this.content(le) === "|")
        return this.position++, this.namespace();
      var ne = this.currToken;
      this.newNode(new f.default({
        value: this.content(),
        source: N(ne),
        sourceIndex: ne[y.FIELDS.START_POS]
      }), G), this.position++;
    }, W.splitWord = function(G, le) {
      for (var ne = this, ae = this.nextToken, be = this.content(); ae && ~[v.dollar, v.caret, v.equals, v.word].indexOf(ae[y.FIELDS.TYPE]); ) {
        this.position++;
        var ye = this.content();
        if (be += ye, ye.lastIndexOf("\\") === ye.length - 1) {
          var fe = this.nextToken;
          fe && fe[y.FIELDS.TYPE] === v.space && (be += this.requiredSpace(this.content(fe)), this.position++);
        }
        ae = this.nextToken;
      }
      var Z = $(be, ".").filter(function(Pe) {
        var ve = be[Pe - 1] === "\\", Xe = /^\d+\.\d+%$/.test(be);
        return !ve && !Xe;
      }), ue = $(be, "#").filter(function(Pe) {
        return be[Pe - 1] !== "\\";
      }), me = $(be, "#{");
      me.length && (ue = ue.filter(function(Pe) {
        return !~me.indexOf(Pe);
      }));
      var xe = (0, g.default)(V([0].concat(Z, ue)));
      xe.forEach(function(Pe, ve) {
        var Xe = xe[ve + 1] || be.length, st = be.slice(Pe, Xe);
        if (ve === 0 && le)
          return le.call(ne, st, xe.length);
        var Se, oe = ne.currToken, te = oe[y.FIELDS.START_POS] + xe[ve], se = j(oe[1], oe[2] + Pe, oe[3], oe[2] + (Xe - 1));
        if (~Z.indexOf(Pe)) {
          var re = {
            value: st.slice(1),
            source: se,
            sourceIndex: te
          };
          Se = new n.default(R(re, "value"));
        } else if (~ue.indexOf(Pe)) {
          var Te = {
            value: st.slice(1),
            source: se,
            sourceIndex: te
          };
          Se = new a.default(R(Te, "value"));
        } else {
          var ze = {
            value: st,
            source: se,
            sourceIndex: te
          };
          R(ze, "value"), Se = new o.default(ze);
        }
        ne.newNode(Se, G), G = null;
      }), this.position++;
    }, W.word = function(G) {
      var le = this.nextToken;
      return le && this.content(le) === "|" ? (this.position++, this.namespace()) : this.splitWord(G);
    }, W.loop = function() {
      for (; this.position < this.tokens.length; )
        this.parse(!0);
      return this.current._inferEndPosition(), this.root;
    }, W.parse = function(G) {
      switch (this.currToken[y.FIELDS.TYPE]) {
        case v.space:
          this.space();
          break;
        case v.comment:
          this.comment();
          break;
        case v.openParenthesis:
          this.parentheses();
          break;
        case v.closeParenthesis:
          G && this.missingParenthesis();
          break;
        case v.openSquare:
          this.attribute();
          break;
        case v.dollar:
        case v.caret:
        case v.equals:
        case v.word:
          this.word();
          break;
        case v.colon:
          this.pseudo();
          break;
        case v.comma:
          this.comma();
          break;
        case v.asterisk:
          this.universal();
          break;
        case v.ampersand:
          this.nesting();
          break;
        case v.slash:
        case v.combinator:
          this.combinator();
          break;
        case v.str:
          this.string();
          break;
        case v.closeSquare:
          this.missingSquareBracket();
        case v.semicolon:
          this.missingBackslash();
        default:
          this.unexpected();
      }
    }, W.expected = function(G, le, ne) {
      if (Array.isArray(G)) {
        var ae = G.pop();
        G = G.join(", ") + " or " + ae;
      }
      var be = /^[aeiou]/.test(G[0]) ? "an" : "a";
      return ne ? this.error("Expected " + be + " " + G + ', found "' + ne + '" instead.', {
        index: le
      }) : this.error("Expected " + be + " " + G + ".", {
        index: le
      });
    }, W.requiredSpace = function(G) {
      return this.options.lossy ? " " : G;
    }, W.optionalSpace = function(G) {
      return this.options.lossy ? "" : G;
    }, W.lossySpace = function(G, le) {
      return this.options.lossy ? le ? " " : "" : G;
    }, W.parseParenthesisToken = function(G) {
      var le = this.content(G);
      return G[y.FIELDS.TYPE] === v.space ? this.requiredSpace(le) : le;
    }, W.newNode = function(G, le) {
      return le && (/^ +$/.test(le) && (this.options.lossy || (this.spaces = (this.spaces || "") + le), le = !0), G.namespace = le, R(G, "namespace")), this.spaces && (G.spaces.before = this.spaces, this.spaces = ""), this.current.append(G);
    }, W.content = function(G) {
      return G === void 0 && (G = this.currToken), this.css.slice(G[y.FIELDS.START_POS], G[y.FIELDS.END_POS]);
    }, W.locateNextMeaningfulToken = function(G) {
      G === void 0 && (G = this.position + 1);
      for (var le = G; le < this.tokens.length; )
        if (O[this.tokens[le][y.FIELDS.TYPE]]) {
          le++;
          continue;
        } else
          return le;
      return -1;
    }, I(z, [{
      key: "currToken",
      get: function() {
        return this.tokens[this.position];
      }
    }, {
      key: "nextToken",
      get: function() {
        return this.tokens[this.position + 1];
      }
    }, {
      key: "prevToken",
      get: function() {
        return this.tokens[this.position - 1];
      }
    }]), z;
  }();
  t.default = K, e.exports = t.default;
})(p2e, Aw);
(function(e, t) {
  t.__esModule = !0, t.default = void 0;
  var r = i(Aw);
  function i(s) {
    return s && s.__esModule ? s : { default: s };
  }
  var n = /* @__PURE__ */ function() {
    function s(o, l) {
      this.func = o || function() {
      }, this.funcRes = null, this.options = l;
    }
    var a = s.prototype;
    return a._shouldUpdateSelector = function(l, u) {
      u === void 0 && (u = {});
      var c = Object.assign({}, this.options, u);
      return c.updateSelector === !1 ? !1 : typeof l != "string";
    }, a._isLossy = function(l) {
      l === void 0 && (l = {});
      var u = Object.assign({}, this.options, l);
      return u.lossless === !1;
    }, a._root = function(l, u) {
      u === void 0 && (u = {});
      var c = new r.default(l, this._parseOptions(u));
      return c.root;
    }, a._parseOptions = function(l) {
      return {
        lossy: this._isLossy(l)
      };
    }, a._run = function(l, u) {
      var c = this;
      return u === void 0 && (u = {}), new Promise(function(f, h) {
        try {
          var m = c._root(l, u);
          Promise.resolve(c.func(m)).then(function(g) {
            var y = void 0;
            return c._shouldUpdateSelector(l, u) && (y = m.toString(), l.selector = y), {
              transform: g,
              root: m,
              string: y
            };
          }).then(f, h);
        } catch (g) {
          h(g);
          return;
        }
      });
    }, a._runSync = function(l, u) {
      u === void 0 && (u = {});
      var c = this._root(l, u), f = this.func(c);
      if (f && typeof f.then == "function")
        throw new Error("Selector processor returned a promise to a synchronous call.");
      var h = void 0;
      return u.updateSelector && typeof l != "string" && (h = c.toString(), l.selector = h), {
        transform: f,
        root: c,
        string: h
      };
    }, a.ast = function(l, u) {
      return this._run(l, u).then(function(c) {
        return c.root;
      });
    }, a.astSync = function(l, u) {
      return this._runSync(l, u).root;
    }, a.transform = function(l, u) {
      return this._run(l, u).then(function(c) {
        return c.transform;
      });
    }, a.transformSync = function(l, u) {
      return this._runSync(l, u).transform;
    }, a.process = function(l, u) {
      return this._run(l, u).then(function(c) {
        return c.string || c.root.toString();
      });
    }, a.processSync = function(l, u) {
      var c = this._runSync(l, u);
      return c.string || c.root.toString();
    }, s;
  }();
  t.default = n, e.exports = t.default;
})(c2e, ww);
var gpe = {}, Xi = {};
Xi.__esModule = !0;
Xi.universal = Xi.tag = Xi.string = Xi.selector = Xi.root = Xi.pseudo = Xi.nesting = Xi.id = Xi.comment = Xi.combinator = Xi.className = Xi.attribute = void 0;
var kke = zl(U$), Oke = zl(jv), Nke = zl(Kv), Dke = zl($v), Lke = zl(Uv), Mke = zl(zv), Rke = zl(Wv), Bke = zl(Rv), Fke = zl(Fv), jke = zl(Vv), $ke = zl(qv), Uke = zl(Hv);
function zl(e) {
  return e && e.__esModule ? e : { default: e };
}
var qke = function(t) {
  return new kke.default(t);
};
Xi.attribute = qke;
var Vke = function(t) {
  return new Oke.default(t);
};
Xi.className = Vke;
var Wke = function(t) {
  return new Nke.default(t);
};
Xi.combinator = Wke;
var Hke = function(t) {
  return new Dke.default(t);
};
Xi.comment = Hke;
var Kke = function(t) {
  return new Lke.default(t);
};
Xi.id = Kke;
var zke = function(t) {
  return new Mke.default(t);
};
Xi.nesting = zke;
var Gke = function(t) {
  return new Rke.default(t);
};
Xi.pseudo = Gke;
var Yke = function(t) {
  return new Bke.default(t);
};
Xi.root = Yke;
var Xke = function(t) {
  return new Fke.default(t);
};
Xi.selector = Xke;
var Jke = function(t) {
  return new jke.default(t);
};
Xi.string = Jke;
var Qke = function(t) {
  return new $ke.default(t);
};
Xi.tag = Qke;
var Zke = function(t) {
  return new Uke.default(t);
};
Xi.universal = Zke;
var Ci = {};
Ci.__esModule = !0;
Ci.isNode = q$;
Ci.isPseudoElement = Tpe;
Ci.isPseudoClass = cOe;
Ci.isContainer = pOe;
Ci.isNamespace = fOe;
Ci.isUniversal = Ci.isTag = Ci.isString = Ci.isSelector = Ci.isRoot = Ci.isPseudo = Ci.isNesting = Ci.isIdentifier = Ci.isComment = Ci.isCombinator = Ci.isClassName = Ci.isAttribute = void 0;
var fn = Or, Na, eOe = (Na = {}, Na[fn.ATTRIBUTE] = !0, Na[fn.CLASS] = !0, Na[fn.COMBINATOR] = !0, Na[fn.COMMENT] = !0, Na[fn.ID] = !0, Na[fn.NESTING] = !0, Na[fn.PSEUDO] = !0, Na[fn.ROOT] = !0, Na[fn.SELECTOR] = !0, Na[fn.STRING] = !0, Na[fn.TAG] = !0, Na[fn.UNIVERSAL] = !0, Na);
function q$(e) {
  return typeof e == "object" && eOe[e.type];
}
function Gl(e, t) {
  return q$(t) && t.type === e;
}
var bpe = Gl.bind(null, fn.ATTRIBUTE);
Ci.isAttribute = bpe;
var tOe = Gl.bind(null, fn.CLASS);
Ci.isClassName = tOe;
var rOe = Gl.bind(null, fn.COMBINATOR);
Ci.isCombinator = rOe;
var iOe = Gl.bind(null, fn.COMMENT);
Ci.isComment = iOe;
var nOe = Gl.bind(null, fn.ID);
Ci.isIdentifier = nOe;
var sOe = Gl.bind(null, fn.NESTING);
Ci.isNesting = sOe;
var V$ = Gl.bind(null, fn.PSEUDO);
Ci.isPseudo = V$;
var aOe = Gl.bind(null, fn.ROOT);
Ci.isRoot = aOe;
var oOe = Gl.bind(null, fn.SELECTOR);
Ci.isSelector = oOe;
var lOe = Gl.bind(null, fn.STRING);
Ci.isString = lOe;
var vpe = Gl.bind(null, fn.TAG);
Ci.isTag = vpe;
var uOe = Gl.bind(null, fn.UNIVERSAL);
Ci.isUniversal = uOe;
function Tpe(e) {
  return V$(e) && e.value && (e.value.startsWith("::") || e.value.toLowerCase() === ":before" || e.value.toLowerCase() === ":after" || e.value.toLowerCase() === ":first-letter" || e.value.toLowerCase() === ":first-line");
}
function cOe(e) {
  return V$(e) && !Tpe(e);
}
function pOe(e) {
  return !!(q$(e) && e.walk);
}
function fOe(e) {
  return bpe(e) || vpe(e);
}
(function(e) {
  e.__esModule = !0;
  var t = Or;
  Object.keys(t).forEach(function(n) {
    n === "default" || n === "__esModule" || n in e && e[n] === t[n] || (e[n] = t[n]);
  });
  var r = Xi;
  Object.keys(r).forEach(function(n) {
    n === "default" || n === "__esModule" || n in e && e[n] === r[n] || (e[n] = r[n]);
  });
  var i = Ci;
  Object.keys(i).forEach(function(n) {
    n === "default" || n === "__esModule" || n in e && e[n] === i[n] || (e[n] = i[n]);
  });
})(gpe);
(function(e, t) {
  t.__esModule = !0, t.default = void 0;
  var r = a(ww), i = s(gpe);
  function n() {
    if (typeof WeakMap != "function")
      return null;
    var u = /* @__PURE__ */ new WeakMap();
    return n = function() {
      return u;
    }, u;
  }
  function s(u) {
    if (u && u.__esModule)
      return u;
    if (u === null || typeof u != "object" && typeof u != "function")
      return { default: u };
    var c = n();
    if (c && c.has(u))
      return c.get(u);
    var f = {}, h = Object.defineProperty && Object.getOwnPropertyDescriptor;
    for (var m in u)
      if (Object.prototype.hasOwnProperty.call(u, m)) {
        var g = h ? Object.getOwnPropertyDescriptor(u, m) : null;
        g && (g.get || g.set) ? Object.defineProperty(f, m, g) : f[m] = u[m];
      }
    return f.default = u, c && c.set(u, f), f;
  }
  function a(u) {
    return u && u.__esModule ? u : { default: u };
  }
  var o = function(c) {
    return new r.default(c);
  };
  Object.assign(o, i), delete o.__esModule;
  var l = o;
  t.default = l, e.exports = t.default;
})(u2e, vF);
var Spe = {}, SC = {}, W$ = {}, uW = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");
W$.encode = function(e) {
  if (0 <= e && e < uW.length)
    return uW[e];
  throw new TypeError("Must be between 0 and 63: " + e);
};
W$.decode = function(e) {
  var t = 65, r = 90, i = 97, n = 122, s = 48, a = 57, o = 43, l = 47, u = 26, c = 52;
  return t <= e && e <= r ? e - t : i <= e && e <= n ? e - i + u : s <= e && e <= a ? e - s + c : e == o ? 62 : e == l ? 63 : -1;
};
var xpe = W$, H$ = 5, Epe = 1 << H$, Ppe = Epe - 1, wpe = Epe;
function hOe(e) {
  return e < 0 ? (-e << 1) + 1 : (e << 1) + 0;
}
function dOe(e) {
  var t = (e & 1) === 1, r = e >> 1;
  return t ? -r : r;
}
SC.encode = function(t) {
  var r = "", i, n = hOe(t);
  do
    i = n & Ppe, n >>>= H$, n > 0 && (i |= wpe), r += xpe.encode(i);
  while (n > 0);
  return r;
};
SC.decode = function(t, r, i) {
  var n = t.length, s = 0, a = 0, o, l;
  do {
    if (r >= n)
      throw new Error("Expected more digits in base 64 VLQ value.");
    if (l = xpe.decode(t.charCodeAt(r++)), l === -1)
      throw new Error("Invalid base64 digit: " + t.charAt(r - 1));
    o = !!(l & wpe), l &= Ppe, s = s + (l << a), a += H$;
  } while (o);
  i.value = dOe(s), i.rest = r;
};
var gg = {};
(function(e) {
  function t(x, C, D) {
    if (C in x)
      return x[C];
    if (arguments.length === 3)
      return D;
    throw new Error('"' + C + '" is a required argument.');
  }
  e.getArg = t;
  var r = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/, i = /^data:.+\,.+$/;
  function n(x) {
    var C = x.match(r);
    return C ? {
      scheme: C[1],
      auth: C[2],
      host: C[3],
      port: C[4],
      path: C[5]
    } : null;
  }
  e.urlParse = n;
  function s(x) {
    var C = "";
    return x.scheme && (C += x.scheme + ":"), C += "//", x.auth && (C += x.auth + "@"), x.host && (C += x.host), x.port && (C += ":" + x.port), x.path && (C += x.path), C;
  }
  e.urlGenerate = s;
  function a(x) {
    var C = x, D = n(x);
    if (D) {
      if (!D.path)
        return x;
      C = D.path;
    }
    for (var w = e.isAbsolute(C), A = C.split(/\/+/), I, L = 0, O = A.length - 1; O >= 0; O--)
      I = A[O], I === "." ? A.splice(O, 1) : I === ".." ? L++ : L > 0 && (I === "" ? (A.splice(O + 1, L), L = 0) : (A.splice(O, 2), L--));
    return C = A.join("/"), C === "" && (C = w ? "/" : "."), D ? (D.path = C, s(D)) : C;
  }
  e.normalize = a;
  function o(x, C) {
    x === "" && (x = "."), C === "" && (C = ".");
    var D = n(C), w = n(x);
    if (w && (x = w.path || "/"), D && !D.scheme)
      return w && (D.scheme = w.scheme), s(D);
    if (D || C.match(i))
      return C;
    if (w && !w.host && !w.path)
      return w.host = C, s(w);
    var A = C.charAt(0) === "/" ? C : a(x.replace(/\/+$/, "") + "/" + C);
    return w ? (w.path = A, s(w)) : A;
  }
  e.join = o, e.isAbsolute = function(x) {
    return x.charAt(0) === "/" || r.test(x);
  };
  function l(x, C) {
    x === "" && (x = "."), x = x.replace(/\/$/, "");
    for (var D = 0; C.indexOf(x + "/") !== 0; ) {
      var w = x.lastIndexOf("/");
      if (w < 0 || (x = x.slice(0, w), x.match(/^([^\/]+:\/)?\/*$/)))
        return C;
      ++D;
    }
    return Array(D + 1).join("../") + C.substr(x.length + 1);
  }
  e.relative = l;
  var u = function() {
    var x = /* @__PURE__ */ Object.create(null);
    return !("__proto__" in x);
  }();
  function c(x) {
    return x;
  }
  function f(x) {
    return m(x) ? "$" + x : x;
  }
  e.toSetString = u ? c : f;
  function h(x) {
    return m(x) ? x.slice(1) : x;
  }
  e.fromSetString = u ? c : h;
  function m(x) {
    if (!x)
      return !1;
    var C = x.length;
    if (C < 9 || x.charCodeAt(C - 1) !== 95 || x.charCodeAt(C - 2) !== 95 || x.charCodeAt(C - 3) !== 111 || x.charCodeAt(C - 4) !== 116 || x.charCodeAt(C - 5) !== 111 || x.charCodeAt(C - 6) !== 114 || x.charCodeAt(C - 7) !== 112 || x.charCodeAt(C - 8) !== 95 || x.charCodeAt(C - 9) !== 95)
      return !1;
    for (var D = C - 10; D >= 0; D--)
      if (x.charCodeAt(D) !== 36)
        return !1;
    return !0;
  }
  function g(x, C, D) {
    var w = v(x.source, C.source);
    return w !== 0 || (w = x.originalLine - C.originalLine, w !== 0) || (w = x.originalColumn - C.originalColumn, w !== 0 || D) || (w = x.generatedColumn - C.generatedColumn, w !== 0) || (w = x.generatedLine - C.generatedLine, w !== 0) ? w : v(x.name, C.name);
  }
  e.compareByOriginalPositions = g;
  function y(x, C, D) {
    var w = x.generatedLine - C.generatedLine;
    return w !== 0 || (w = x.generatedColumn - C.generatedColumn, w !== 0 || D) || (w = v(x.source, C.source), w !== 0) || (w = x.originalLine - C.originalLine, w !== 0) || (w = x.originalColumn - C.originalColumn, w !== 0) ? w : v(x.name, C.name);
  }
  e.compareByGeneratedPositionsDeflated = y;
  function v(x, C) {
    return x === C ? 0 : x === null ? 1 : C === null ? -1 : x > C ? 1 : -1;
  }
  function T(x, C) {
    var D = x.generatedLine - C.generatedLine;
    return D !== 0 || (D = x.generatedColumn - C.generatedColumn, D !== 0) || (D = v(x.source, C.source), D !== 0) || (D = x.originalLine - C.originalLine, D !== 0) || (D = x.originalColumn - C.originalColumn, D !== 0) ? D : v(x.name, C.name);
  }
  e.compareByGeneratedPositionsInflated = T;
  function S(x) {
    return JSON.parse(x.replace(/^\)]}'[^\n]*\n/, ""));
  }
  e.parseSourceMapInput = S;
  function P(x, C, D) {
    if (C = C || "", x && (x[x.length - 1] !== "/" && C[0] !== "/" && (x += "/"), C = x + C), D) {
      var w = n(D);
      if (!w)
        throw new Error("sourceMapURL could not be parsed");
      if (w.path) {
        var A = w.path.lastIndexOf("/");
        A >= 0 && (w.path = w.path.substring(0, A + 1));
      }
      C = o(s(w), C);
    }
    return a(C);
  }
  e.computeSourceURL = P;
})(gg);
var K$ = {}, z$ = gg, G$ = Object.prototype.hasOwnProperty, jd = typeof Map != "undefined";
function wf() {
  this._array = [], this._set = jd ? /* @__PURE__ */ new Map() : /* @__PURE__ */ Object.create(null);
}
wf.fromArray = function(t, r) {
  for (var i = new wf(), n = 0, s = t.length; n < s; n++)
    i.add(t[n], r);
  return i;
};
wf.prototype.size = function() {
  return jd ? this._set.size : Object.getOwnPropertyNames(this._set).length;
};
wf.prototype.add = function(t, r) {
  var i = jd ? t : z$.toSetString(t), n = jd ? this.has(t) : G$.call(this._set, i), s = this._array.length;
  (!n || r) && this._array.push(t), n || (jd ? this._set.set(t, s) : this._set[i] = s);
};
wf.prototype.has = function(t) {
  if (jd)
    return this._set.has(t);
  var r = z$.toSetString(t);
  return G$.call(this._set, r);
};
wf.prototype.indexOf = function(t) {
  if (jd) {
    var r = this._set.get(t);
    if (r >= 0)
      return r;
  } else {
    var i = z$.toSetString(t);
    if (G$.call(this._set, i))
      return this._set[i];
  }
  throw new Error('"' + t + '" is not in the set.');
};
wf.prototype.at = function(t) {
  if (t >= 0 && t < this._array.length)
    return this._array[t];
  throw new Error("No element indexed by " + t);
};
wf.prototype.toArray = function() {
  return this._array.slice();
};
K$.ArraySet = wf;
var Ape = {}, Cpe = gg;
function mOe(e, t) {
  var r = e.generatedLine, i = t.generatedLine, n = e.generatedColumn, s = t.generatedColumn;
  return i > r || i == r && s >= n || Cpe.compareByGeneratedPositionsInflated(e, t) <= 0;
}
function xC() {
  this._array = [], this._sorted = !0, this._last = { generatedLine: -1, generatedColumn: 0 };
}
xC.prototype.unsortedForEach = function(t, r) {
  this._array.forEach(t, r);
};
xC.prototype.add = function(t) {
  mOe(this._last, t) ? (this._last = t, this._array.push(t)) : (this._sorted = !1, this._array.push(t));
};
xC.prototype.toArray = function() {
  return this._sorted || (this._array.sort(Cpe.compareByGeneratedPositionsInflated), this._sorted = !0), this._array;
};
Ape.MappingList = xC;
var nb = SC, Vn = gg, Ow = K$.ArraySet, yOe = Ape.MappingList;
function Vl(e) {
  e || (e = {}), this._file = Vn.getArg(e, "file", null), this._sourceRoot = Vn.getArg(e, "sourceRoot", null), this._skipValidation = Vn.getArg(e, "skipValidation", !1), this._sources = new Ow(), this._names = new Ow(), this._mappings = new yOe(), this._sourcesContents = null;
}
Vl.prototype._version = 3;
Vl.fromSourceMap = function(t) {
  var r = t.sourceRoot, i = new Vl({
    file: t.file,
    sourceRoot: r
  });
  return t.eachMapping(function(n) {
    var s = {
      generated: {
        line: n.generatedLine,
        column: n.generatedColumn
      }
    };
    n.source != null && (s.source = n.source, r != null && (s.source = Vn.relative(r, s.source)), s.original = {
      line: n.originalLine,
      column: n.originalColumn
    }, n.name != null && (s.name = n.name)), i.addMapping(s);
  }), t.sources.forEach(function(n) {
    var s = n;
    r !== null && (s = Vn.relative(r, n)), i._sources.has(s) || i._sources.add(s);
    var a = t.sourceContentFor(n);
    a != null && i.setSourceContent(n, a);
  }), i;
};
Vl.prototype.addMapping = function(t) {
  var r = Vn.getArg(t, "generated"), i = Vn.getArg(t, "original", null), n = Vn.getArg(t, "source", null), s = Vn.getArg(t, "name", null);
  this._skipValidation || this._validateMapping(r, i, n, s), n != null && (n = String(n), this._sources.has(n) || this._sources.add(n)), s != null && (s = String(s), this._names.has(s) || this._names.add(s)), this._mappings.add({
    generatedLine: r.line,
    generatedColumn: r.column,
    originalLine: i != null && i.line,
    originalColumn: i != null && i.column,
    source: n,
    name: s
  });
};
Vl.prototype.setSourceContent = function(t, r) {
  var i = t;
  this._sourceRoot != null && (i = Vn.relative(this._sourceRoot, i)), r != null ? (this._sourcesContents || (this._sourcesContents = /* @__PURE__ */ Object.create(null)), this._sourcesContents[Vn.toSetString(i)] = r) : this._sourcesContents && (delete this._sourcesContents[Vn.toSetString(i)], Object.keys(this._sourcesContents).length === 0 && (this._sourcesContents = null));
};
Vl.prototype.applySourceMap = function(t, r, i) {
  var n = r;
  if (r == null) {
    if (t.file == null)
      throw new Error(
        'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.'
      );
    n = t.file;
  }
  var s = this._sourceRoot;
  s != null && (n = Vn.relative(s, n));
  var a = new Ow(), o = new Ow();
  this._mappings.unsortedForEach(function(l) {
    if (l.source === n && l.originalLine != null) {
      var u = t.originalPositionFor({
        line: l.originalLine,
        column: l.originalColumn
      });
      u.source != null && (l.source = u.source, i != null && (l.source = Vn.join(i, l.source)), s != null && (l.source = Vn.relative(s, l.source)), l.originalLine = u.line, l.originalColumn = u.column, u.name != null && (l.name = u.name));
    }
    var c = l.source;
    c != null && !a.has(c) && a.add(c);
    var f = l.name;
    f != null && !o.has(f) && o.add(f);
  }, this), this._sources = a, this._names = o, t.sources.forEach(function(l) {
    var u = t.sourceContentFor(l);
    u != null && (i != null && (l = Vn.join(i, l)), s != null && (l = Vn.relative(s, l)), this.setSourceContent(l, u));
  }, this);
};
Vl.prototype._validateMapping = function(t, r, i, n) {
  if (r && typeof r.line != "number" && typeof r.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 (!(t && "line" in t && "column" in t && t.line > 0 && t.column >= 0 && !r && !i && !n)) {
    if (t && "line" in t && "column" in t && r && "line" in r && "column" in r && t.line > 0 && t.column >= 0 && r.line > 0 && r.column >= 0 && i)
      return;
    throw new Error("Invalid mapping: " + JSON.stringify({
      generated: t,
      source: i,
      original: r,
      name: n
    }));
  }
};
Vl.prototype._serializeMappings = function() {
  for (var t = 0, r = 1, i = 0, n = 0, s = 0, a = 0, o = "", l, u, c, f, h = this._mappings.toArray(), m = 0, g = h.length; m < g; m++) {
    if (u = h[m], l = "", u.generatedLine !== r)
      for (t = 0; u.generatedLine !== r; )
        l += ";", r++;
    else if (m > 0) {
      if (!Vn.compareByGeneratedPositionsInflated(u, h[m - 1]))
        continue;
      l += ",";
    }
    l += nb.encode(u.generatedColumn - t), t = u.generatedColumn, u.source != null && (f = this._sources.indexOf(u.source), l += nb.encode(f - a), a = f, l += nb.encode(u.originalLine - 1 - n), n = u.originalLine - 1, l += nb.encode(u.originalColumn - i), i = u.originalColumn, u.name != null && (c = this._names.indexOf(u.name), l += nb.encode(c - s), s = c)), o += l;
  }
  return o;
};
Vl.prototype._generateSourcesContent = function(t, r) {
  return t.map(function(i) {
    if (!this._sourcesContents)
      return null;
    r != null && (i = Vn.relative(r, i));
    var n = Vn.toSetString(i);
    return Object.prototype.hasOwnProperty.call(this._sourcesContents, n) ? this._sourcesContents[n] : null;
  }, this);
};
Vl.prototype.toJSON = function() {
  var t = {
    version: this._version,
    sources: this._sources.toArray(),
    names: this._names.toArray(),
    mappings: this._serializeMappings()
  };
  return this._file != null && (t.file = this._file), this._sourceRoot != null && (t.sourceRoot = this._sourceRoot), this._sourcesContents && (t.sourcesContent = this._generateSourcesContent(t.sources, t.sourceRoot)), t;
};
Vl.prototype.toString = function() {
  return JSON.stringify(this.toJSON());
};
Spe.SourceMapGenerator = Vl;
var _pe = {};
(function(e) {
  e.GREATEST_LOWER_BOUND = 1, e.LEAST_UPPER_BOUND = 2;
  function t(r, i, n, s, a, o) {
    var l = Math.floor((i - r) / 2) + r, u = a(n, s[l], !0);
    return u === 0 ? l : u > 0 ? i - l > 1 ? t(l, i, n, s, a, o) : o == e.LEAST_UPPER_BOUND ? i < s.length ? i : -1 : l : l - r > 1 ? t(r, l, n, s, a, o) : o == e.LEAST_UPPER_BOUND ? l : r < 0 ? -1 : r;
  }
  e.search = function(i, n, s, a) {
    if (n.length === 0)
      return -1;
    var o = t(
      -1,
      n.length,
      i,
      n,
      s,
      a || e.GREATEST_LOWER_BOUND
    );
    if (o < 0)
      return -1;
    for (; o - 1 >= 0 && s(n[o], n[o - 1], !0) === 0; )
      --o;
    return o;
  };
})(_pe);
var Ipe = {};
function gM(e, t, r) {
  var i = e[t];
  e[t] = e[r], e[r] = i;
}
function gOe(e, t) {
  return Math.round(e + Math.random() * (t - e));
}
function TF(e, t, r, i) {
  if (r < i) {
    var n = gOe(r, i), s = r - 1;
    gM(e, n, i);
    for (var a = e[i], o = r; o < i; o++)
      t(e[o], a) <= 0 && (s += 1, gM(e, s, o));
    gM(e, s + 1, o);
    var l = s + 1;
    TF(e, t, r, l - 1), TF(e, t, l + 1, i);
  }
}
Ipe.quickSort = function(e, t) {
  TF(e, t, 0, e.length - 1);
};
var Zt = gg, Y$ = _pe, Xy = K$.ArraySet, bOe = SC, Gv = Ipe.quickSort;
function yn(e, t) {
  var r = e;
  return typeof e == "string" && (r = Zt.parseSourceMapInput(e)), r.sections != null ? new mp(r, t) : new Fs(r, t);
}
yn.fromSourceMap = function(e, t) {
  return Fs.fromSourceMap(e, t);
};
yn.prototype._version = 3;
yn.prototype.__generatedMappings = null;
Object.defineProperty(yn.prototype, "_generatedMappings", {
  configurable: !0,
  enumerable: !0,
  get: function() {
    return this.__generatedMappings || this._parseMappings(this._mappings, this.sourceRoot), this.__generatedMappings;
  }
});
yn.prototype.__originalMappings = null;
Object.defineProperty(yn.prototype, "_originalMappings", {
  configurable: !0,
  enumerable: !0,
  get: function() {
    return this.__originalMappings || this._parseMappings(this._mappings, this.sourceRoot), this.__originalMappings;
  }
});
yn.prototype._charIsMappingSeparator = function(t, r) {
  var i = t.charAt(r);
  return i === ";" || i === ",";
};
yn.prototype._parseMappings = function(t, r) {
  throw new Error("Subclasses must implement _parseMappings");
};
yn.GENERATED_ORDER = 1;
yn.ORIGINAL_ORDER = 2;
yn.GREATEST_LOWER_BOUND = 1;
yn.LEAST_UPPER_BOUND = 2;
yn.prototype.eachMapping = function(t, r, i) {
  var n = r || null, s = i || yn.GENERATED_ORDER, a;
  switch (s) {
    case yn.GENERATED_ORDER:
      a = this._generatedMappings;
      break;
    case yn.ORIGINAL_ORDER:
      a = this._originalMappings;
      break;
    default:
      throw new Error("Unknown order of iteration.");
  }
  var o = this.sourceRoot;
  a.map(function(l) {
    var u = l.source === null ? null : this._sources.at(l.source);
    return u = Zt.computeSourceURL(o, u, this._sourceMapURL), {
      source: u,
      generatedLine: l.generatedLine,
      generatedColumn: l.generatedColumn,
      originalLine: l.originalLine,
      originalColumn: l.originalColumn,
      name: l.name === null ? null : this._names.at(l.name)
    };
  }, this).forEach(t, n);
};
yn.prototype.allGeneratedPositionsFor = function(t) {
  var r = Zt.getArg(t, "line"), i = {
    source: Zt.getArg(t, "source"),
    originalLine: r,
    originalColumn: Zt.getArg(t, "column", 0)
  };
  if (i.source = this._findSourceIndex(i.source), i.source < 0)
    return [];
  var n = [], s = this._findMapping(
    i,
    this._originalMappings,
    "originalLine",
    "originalColumn",
    Zt.compareByOriginalPositions,
    Y$.LEAST_UPPER_BOUND
  );
  if (s >= 0) {
    var a = this._originalMappings[s];
    if (t.column === void 0)
      for (var o = a.originalLine; a && a.originalLine === o; )
        n.push({
          line: Zt.getArg(a, "generatedLine", null),
          column: Zt.getArg(a, "generatedColumn", null),
          lastColumn: Zt.getArg(a, "lastGeneratedColumn", null)
        }), a = this._originalMappings[++s];
    else
      for (var l = a.originalColumn; a && a.originalLine === r && a.originalColumn == l; )
        n.push({
          line: Zt.getArg(a, "generatedLine", null),
          column: Zt.getArg(a, "generatedColumn", null),
          lastColumn: Zt.getArg(a, "lastGeneratedColumn", null)
        }), a = this._originalMappings[++s];
  }
  return n;
};
function Fs(e, t) {
  var r = e;
  typeof e == "string" && (r = Zt.parseSourceMapInput(e));
  var i = Zt.getArg(r, "version"), n = Zt.getArg(r, "sources"), s = Zt.getArg(r, "names", []), a = Zt.getArg(r, "sourceRoot", null), o = Zt.getArg(r, "sourcesContent", null), l = Zt.getArg(r, "mappings"), u = Zt.getArg(r, "file", null);
  if (i != this._version)
    throw new Error("Unsupported version: " + i);
  a && (a = Zt.normalize(a)), n = n.map(String).map(Zt.normalize).map(function(c) {
    return a && Zt.isAbsolute(a) && Zt.isAbsolute(c) ? Zt.relative(a, c) : c;
  }), this._names = Xy.fromArray(s.map(String), !0), this._sources = Xy.fromArray(n, !0), this._absoluteSources = this._sources.toArray().map(function(c) {
    return Zt.computeSourceURL(a, c, t);
  }), this.sourceRoot = a, this.sourcesContent = o, this._mappings = l, this._sourceMapURL = t, this.file = u;
}
Fs.prototype = Object.create(yn.prototype);
Fs.prototype.consumer = yn;
Fs.prototype._findSourceIndex = function(e) {
  var t = e;
  if (this.sourceRoot != null && (t = Zt.relative(this.sourceRoot, t)), this._sources.has(t))
    return this._sources.indexOf(t);
  var r;
  for (r = 0; r < this._absoluteSources.length; ++r)
    if (this._absoluteSources[r] == e)
      return r;
  return -1;
};
Fs.fromSourceMap = function(t, r) {
  var i = Object.create(Fs.prototype), n = i._names = Xy.fromArray(t._names.toArray(), !0), s = i._sources = Xy.fromArray(t._sources.toArray(), !0);
  i.sourceRoot = t._sourceRoot, i.sourcesContent = t._generateSourcesContent(
    i._sources.toArray(),
    i.sourceRoot
  ), i.file = t._file, i._sourceMapURL = r, i._absoluteSources = i._sources.toArray().map(function(m) {
    return Zt.computeSourceURL(i.sourceRoot, m, r);
  });
  for (var a = t._mappings.toArray().slice(), o = i.__generatedMappings = [], l = i.__originalMappings = [], u = 0, c = a.length; u < c; u++) {
    var f = a[u], h = new kpe();
    h.generatedLine = f.generatedLine, h.generatedColumn = f.generatedColumn, f.source && (h.source = s.indexOf(f.source), h.originalLine = f.originalLine, h.originalColumn = f.originalColumn, f.name && (h.name = n.indexOf(f.name)), l.push(h)), o.push(h);
  }
  return Gv(i.__originalMappings, Zt.compareByOriginalPositions), i;
};
Fs.prototype._version = 3;
Object.defineProperty(Fs.prototype, "sources", {
  get: function() {
    return this._absoluteSources.slice();
  }
});
function kpe() {
  this.generatedLine = 0, this.generatedColumn = 0, this.source = null, this.originalLine = null, this.originalColumn = null, this.name = null;
}
Fs.prototype._parseMappings = function(t, r) {
  for (var i = 1, n = 0, s = 0, a = 0, o = 0, l = 0, u = t.length, c = 0, f = {}, h = {}, m = [], g = [], y, v, T, S, P; c < u; )
    if (t.charAt(c) === ";")
      i++, c++, n = 0;
    else if (t.charAt(c) === ",")
      c++;
    else {
      for (y = new kpe(), y.generatedLine = i, S = c; S < u && !this._charIsMappingSeparator(t, S); S++)
        ;
      if (v = t.slice(c, S), T = f[v], T)
        c += v.length;
      else {
        for (T = []; c < S; )
          bOe.decode(t, c, h), P = h.value, c = h.rest, T.push(P);
        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");
        f[v] = T;
      }
      y.generatedColumn = n + T[0], n = y.generatedColumn, T.length > 1 && (y.source = o + T[1], o += T[1], y.originalLine = s + T[2], s = y.originalLine, y.originalLine += 1, y.originalColumn = a + T[3], a = y.originalColumn, T.length > 4 && (y.name = l + T[4], l += T[4])), g.push(y), typeof y.originalLine == "number" && m.push(y);
    }
  Gv(g, Zt.compareByGeneratedPositionsDeflated), this.__generatedMappings = g, Gv(m, Zt.compareByOriginalPositions), this.__originalMappings = m;
};
Fs.prototype._findMapping = function(t, r, i, n, s, a) {
  if (t[i] <= 0)
    throw new TypeError("Line must be greater than or equal to 1, got " + t[i]);
  if (t[n] < 0)
    throw new TypeError("Column must be greater than or equal to 0, got " + t[n]);
  return Y$.search(t, r, s, a);
};
Fs.prototype.computeColumnSpans = function() {
  for (var t = 0; t < this._generatedMappings.length; ++t) {
    var r = this._generatedMappings[t];
    if (t + 1 < this._generatedMappings.length) {
      var i = this._generatedMappings[t + 1];
      if (r.generatedLine === i.generatedLine) {
        r.lastGeneratedColumn = i.generatedColumn - 1;
        continue;
      }
    }
    r.lastGeneratedColumn = 1 / 0;
  }
};
Fs.prototype.originalPositionFor = function(t) {
  var r = {
    generatedLine: Zt.getArg(t, "line"),
    generatedColumn: Zt.getArg(t, "column")
  }, i = this._findMapping(
    r,
    this._generatedMappings,
    "generatedLine",
    "generatedColumn",
    Zt.compareByGeneratedPositionsDeflated,
    Zt.getArg(t, "bias", yn.GREATEST_LOWER_BOUND)
  );
  if (i >= 0) {
    var n = this._generatedMappings[i];
    if (n.generatedLine === r.generatedLine) {
      var s = Zt.getArg(n, "source", null);
      s !== null && (s = this._sources.at(s), s = Zt.computeSourceURL(this.sourceRoot, s, this._sourceMapURL));
      var a = Zt.getArg(n, "name", null);
      return a !== null && (a = this._names.at(a)), {
        source: s,
        line: Zt.getArg(n, "originalLine", null),
        column: Zt.getArg(n, "originalColumn", null),
        name: a
      };
    }
  }
  return {
    source: null,
    line: null,
    column: null,
    name: null
  };
};
Fs.prototype.hasContentsOfAllSources = function() {
  return this.sourcesContent ? this.sourcesContent.length >= this._sources.size() && !this.sourcesContent.some(function(t) {
    return t == null;
  }) : !1;
};
Fs.prototype.sourceContentFor = function(t, r) {
  if (!this.sourcesContent)
    return null;
  var i = this._findSourceIndex(t);
  if (i >= 0)
    return this.sourcesContent[i];
  var n = t;
  this.sourceRoot != null && (n = Zt.relative(this.sourceRoot, n));
  var s;
  if (this.sourceRoot != null && (s = Zt.urlParse(this.sourceRoot))) {
    var a = n.replace(/^file:\/\//, "");
    if (s.scheme == "file" && this._sources.has(a))
      return this.sourcesContent[this._sources.indexOf(a)];
    if ((!s.path || s.path == "/") && this._sources.has("/" + n))
      return this.sourcesContent[this._sources.indexOf("/" + n)];
  }
  if (r)
    return null;
  throw new Error('"' + n + '" is not in the SourceMap.');
};
Fs.prototype.generatedPositionFor = function(t) {
  var r = Zt.getArg(t, "source");
  if (r = this._findSourceIndex(r), r < 0)
    return {
      line: null,
      column: null,
      lastColumn: null
    };
  var i = {
    source: r,
    originalLine: Zt.getArg(t, "line"),
    originalColumn: Zt.getArg(t, "column")
  }, n = this._findMapping(
    i,
    this._originalMappings,
    "originalLine",
    "originalColumn",
    Zt.compareByOriginalPositions,
    Zt.getArg(t, "bias", yn.GREATEST_LOWER_BOUND)
  );
  if (n >= 0) {
    var s = this._originalMappings[n];
    if (s.source === i.source)
      return {
        line: Zt.getArg(s, "generatedLine", null),
        column: Zt.getArg(s, "generatedColumn", null),
        lastColumn: Zt.getArg(s, "lastGeneratedColumn", null)
      };
  }
  return {
    line: null,
    column: null,
    lastColumn: null
  };
};
function mp(e, t) {
  var r = e;
  typeof e == "string" && (r = Zt.parseSourceMapInput(e));
  var i = Zt.getArg(r, "version"), n = Zt.getArg(r, "sections");
  if (i != this._version)
    throw new Error("Unsupported version: " + i);
  this._sources = new Xy(), this._names = new Xy();
  var s = {
    line: -1,
    column: 0
  };
  this._sections = n.map(function(a) {
    if (a.url)
      throw new Error("Support for url field in sections not implemented.");
    var o = Zt.getArg(a, "offset"), l = Zt.getArg(o, "line"), u = Zt.getArg(o, "column");
    if (l < s.line || l === s.line && u < s.column)
      throw new Error("Section offsets must be ordered and non-overlapping.");
    return s = o, {
      generatedOffset: {
        // The offset fields are 0-based, but we use 1-based indices when
        // encoding/decoding from VLQ.
        generatedLine: l + 1,
        generatedColumn: u + 1
      },
      consumer: new yn(Zt.getArg(a, "map"), t)
    };
  });
}
mp.prototype = Object.create(yn.prototype);
mp.prototype.constructor = yn;
mp.prototype._version = 3;
Object.defineProperty(mp.prototype, "sources", {
  get: function() {
    for (var e = [], t = 0; t < this._sections.length; t++)
      for (var r = 0; r < this._sections[t].consumer.sources.length; r++)
        e.push(this._sections[t].consumer.sources[r]);
    return e;
  }
});
mp.prototype.originalPositionFor = function(t) {
  var r = {
    generatedLine: Zt.getArg(t, "line"),
    generatedColumn: Zt.getArg(t, "column")
  }, i = Y$.search(
    r,
    this._sections,
    function(s, a) {
      var o = s.generatedLine - a.generatedOffset.generatedLine;
      return o || s.generatedColumn - a.generatedOffset.generatedColumn;
    }
  ), n = this._sections[i];
  return n ? n.consumer.originalPositionFor({
    line: r.generatedLine - (n.generatedOffset.generatedLine - 1),
    column: r.generatedColumn - (n.generatedOffset.generatedLine === r.generatedLine ? n.generatedOffset.generatedColumn - 1 : 0),
    bias: t.bias
  }) : {
    source: null,
    line: null,
    column: null,
    name: null
  };
};
mp.prototype.hasContentsOfAllSources = function() {
  return this._sections.every(function(t) {
    return t.consumer.hasContentsOfAllSources();
  });
};
mp.prototype.sourceContentFor = function(t, r) {
  for (var i = 0; i < this._sections.length; i++) {
    var n = this._sections[i], s = n.consumer.sourceContentFor(t, !0);
    if (s)
      return s;
  }
  if (r)
    return null;
  throw new Error('"' + t + '" is not in the SourceMap.');
};
mp.prototype.generatedPositionFor = function(t) {
  for (var r = 0; r < this._sections.length; r++) {
    var i = this._sections[r];
    if (i.consumer._findSourceIndex(Zt.getArg(t, "source")) !== -1) {
      var n = i.consumer.generatedPositionFor(t);
      if (n) {
        var s = {
          line: n.line + (i.generatedOffset.generatedLine - 1),
          column: n.column + (i.generatedOffset.generatedLine === n.line ? i.generatedOffset.generatedColumn - 1 : 0)
        };
        return s;
      }
    }
  }
  return {
    line: null,
    column: null
  };
};
mp.prototype._parseMappings = function(t, r) {
  this.__generatedMappings = [], this.__originalMappings = [];
  for (var i = 0; i < this._sections.length; i++)
    for (var n = this._sections[i], s = n.consumer._generatedMappings, a = 0; a < s.length; a++) {
      var o = s[a], l = n.consumer._sources.at(o.source);
      l = Zt.computeSourceURL(n.consumer.sourceRoot, l, this._sourceMapURL), this._sources.add(l), l = this._sources.indexOf(l);
      var u = null;
      o.name && (u = n.consumer._names.at(o.name), this._names.add(u), u = this._names.indexOf(u));
      var c = {
        source: l,
        generatedLine: o.generatedLine + (n.generatedOffset.generatedLine - 1),
        generatedColumn: o.generatedColumn + (n.generatedOffset.generatedLine === o.generatedLine ? n.generatedOffset.generatedColumn - 1 : 0),
        originalLine: o.originalLine,
        originalColumn: o.originalColumn,
        name: u
      };
      this.__generatedMappings.push(c), typeof c.originalLine == "number" && this.__originalMappings.push(c);
    }
  Gv(this.__generatedMappings, Zt.compareByGeneratedPositionsDeflated), Gv(this.__originalMappings, Zt.compareByOriginalPositions);
};
var vOe = Spe.SourceMapGenerator, Nw = gg, TOe = /(\r?\n)/, SOe = 10, bg = "$$$isSourceNode$$$";
function jl(e, t, r, i, n) {
  this.children = [], this.sourceContents = {}, this.line = e == null ? null : e, this.column = t == null ? null : t, this.source = r == null ? null : r, this.name = n == null ? null : n, this[bg] = !0, i != null && this.add(i);
}
jl.fromStringWithSourceMap = function(t, r, i) {
  var n = new jl(), s = t.split(TOe), a = 0, o = function() {
    var h = g(), m = g() || "";
    return h + m;
    function g() {
      return a < s.length ? s[a++] : void 0;
    }
  }, l = 1, u = 0, c = null;
  return r.eachMapping(function(h) {
    if (c !== null)
      if (l < h.generatedLine)
        f(c, o()), l++, u = 0;
      else {
        var m = s[a] || "", g = m.substr(0, h.generatedColumn - u);
        s[a] = m.substr(h.generatedColumn - u), u = h.generatedColumn, f(c, g), c = h;
        return;
      }
    for (; l < h.generatedLine; )
      n.add(o()), l++;
    if (u < h.generatedColumn) {
      var m = s[a] || "";
      n.add(m.substr(0, h.generatedColumn)), s[a] = m.substr(h.generatedColumn), u = h.generatedColumn;
    }
    c = h;
  }, this), a < s.length && (c && f(c, o()), n.add(s.splice(a).join(""))), r.sources.forEach(function(h) {
    var m = r.sourceContentFor(h);
    m != null && (i != null && (h = Nw.join(i, h)), n.setSourceContent(h, m));
  }), n;
  function f(h, m) {
    if (h === null || h.source === void 0)
      n.add(m);
    else {
      var g = i ? Nw.join(i, h.source) : h.source;
      n.add(new jl(
        h.originalLine,
        h.originalColumn,
        g,
        m,
        h.name
      ));
    }
  }
};
jl.prototype.add = function(t) {
  if (Array.isArray(t))
    t.forEach(function(r) {
      this.add(r);
    }, this);
  else if (t[bg] || typeof t == "string")
    t && this.children.push(t);
  else
    throw new TypeError(
      "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + t
    );
  return this;
};
jl.prototype.prepend = function(t) {
  if (Array.isArray(t))
    for (var r = t.length - 1; r >= 0; r--)
      this.prepend(t[r]);
  else if (t[bg] || typeof t == "string")
    this.children.unshift(t);
  else
    throw new TypeError(
      "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + t
    );
  return this;
};
jl.prototype.walk = function(t) {
  for (var r, i = 0, n = this.children.length; i < n; i++)
    r = this.children[i], r[bg] ? r.walk(t) : r !== "" && t(r, {
      source: this.source,
      line: this.line,
      column: this.column,
      name: this.name
    });
};
jl.prototype.join = function(t) {
  var r, i, n = this.children.length;
  if (n > 0) {
    for (r = [], i = 0; i < n - 1; i++)
      r.push(this.children[i]), r.push(t);
    r.push(this.children[i]), this.children = r;
  }
  return this;
};
jl.prototype.replaceRight = function(t, r) {
  var i = this.children[this.children.length - 1];
  return i[bg] ? i.replaceRight(t, r) : typeof i == "string" ? this.children[this.children.length - 1] = i.replace(t, r) : this.children.push("".replace(t, r)), this;
};
jl.prototype.setSourceContent = function(t, r) {
  this.sourceContents[Nw.toSetString(t)] = r;
};
jl.prototype.walkSourceContents = function(t) {
  for (var r = 0, i = this.children.length; r < i; r++)
    this.children[r][bg] && this.children[r].walkSourceContents(t);
  for (var n = Object.keys(this.sourceContents), r = 0, i = n.length; r < i; r++)
    t(Nw.fromSetString(n[r]), this.sourceContents[n[r]]);
};
jl.prototype.toString = function() {
  var t = "";
  return this.walk(function(r) {
    t += r;
  }), t;
};
jl.prototype.toStringWithSourceMap = function(t) {
  var r = {
    code: "",
    line: 1,
    column: 0
  }, i = new vOe(t), n = !1, s = null, a = null, o = null, l = null;
  return this.walk(function(u, c) {
    r.code += u, c.source !== null && c.line !== null && c.column !== null ? ((s !== c.source || a !== c.line || o !== c.column || l !== c.name) && i.addMapping({
      source: c.source,
      original: {
        line: c.line,
        column: c.column
      },
      generated: {
        line: r.line,
        column: r.column
      },
      name: c.name
    }), s = c.source, a = c.line, o = c.column, l = c.name, n = !0) : n && (i.addMapping({
      generated: {
        line: r.line,
        column: r.column
      }
    }), s = null, n = !1);
    for (var f = 0, h = u.length; f < h; f++)
      u.charCodeAt(f) === SOe ? (r.line++, r.column = 0, f + 1 === h ? (s = null, n = !1) : n && i.addMapping({
        source: c.source,
        original: {
          line: c.line,
          column: c.column
        },
        generated: {
          line: r.line,
          column: r.column
        },
        name: c.name
      })) : r.column++;
  }), this.walkSourceContents(function(u, c) {
    i.setSourceContent(u, c);
  }), { code: r.code, map: i };
};
const cW = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", xOe = new Uint8Array(64), EOe = new Uint8Array(128);
for (let e = 0; e < cW.length; e++) {
  const t = cW.charCodeAt(e);
  xOe[e] = t, EOe[t] = e;
}
var jt = typeof globalThis != "undefined" ? globalThis : typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : {};
function EC(e) {
  if (e.__esModule)
    return e;
  var t = e.default;
  if (typeof t == "function") {
    var r = function i() {
      if (this instanceof i) {
        var n = [null];
        n.push.apply(n, arguments);
        var s = Function.bind.apply(t, n);
        return new s();
      }
      return t.apply(this, arguments);
    };
    r.prototype = t.prototype;
  } else
    r = {};
  return Object.defineProperty(r, "__esModule", { value: !0 }), Object.keys(e).forEach(function(i) {
    var n = Object.getOwnPropertyDescriptor(e, i);
    Object.defineProperty(r, i, n.get ? n : {
      enumerable: !0,
      get: function() {
        return e[i];
      }
    });
  }), r;
}
var SF = { exports: {} };
(function(e, t) {
  (function(r, i) {
    i(t);
  })(jt, function(r) {
    const i = ",".charCodeAt(0), n = ";".charCodeAt(0), s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", a = new Uint8Array(64), o = new Uint8Array(128);
    for (let T = 0; T < s.length; T++) {
      const S = s.charCodeAt(T);
      a[T] = S, o[S] = T;
    }
    const l = typeof TextDecoder != "undefined" ? /* @__PURE__ */ new TextDecoder() : typeof Buffer != "undefined" ? {
      decode(T) {
        return Buffer.from(T.buffer, T.byteOffset, T.byteLength).toString();
      }
    } : {
      decode(T) {
        let S = "";
        for (let P = 0; P < T.length; P++)
          S += String.fromCharCode(T[P]);
        return S;
      }
    };
    function u(T) {
      const S = new Int32Array(5), P = [];
      let x = 0;
      do {
        const C = c(T, x), D = [];
        let w = !0, A = 0;
        S[0] = 0;
        for (let I = x; I < C; I++) {
          let L;
          I = f(T, I, S, 0);
          const O = S[0];
          O < A && (w = !1), A = O, h(T, I, C) ? (I = f(T, I, S, 1), I = f(T, I, S, 2), I = f(T, I, S, 3), h(T, I, C) ? (I = f(T, I, S, 4), L = [O, S[1], S[2], S[3], S[4]]) : L = [O, S[1], S[2], S[3]]) : L = [O], D.push(L);
        }
        w || m(D), P.push(D), x = C + 1;
      } while (x <= T.length);
      return P;
    }
    function c(T, S) {
      const P = T.indexOf(";", S);
      return P === -1 ? T.length : P;
    }
    function f(T, S, P, x) {
      let C = 0, D = 0, w = 0;
      do {
        const I = T.charCodeAt(S++);
        w = o[I], C |= (w & 31) << D, D += 5;
      } while (w & 32);
      const A = C & 1;
      return C >>>= 1, A && (C = -2147483648 | -C), P[x] += C, S;
    }
    function h(T, S, P) {
      return S >= P ? !1 : T.charCodeAt(S) !== i;
    }
    function m(T) {
      T.sort(g);
    }
    function g(T, S) {
      return T[0] - S[0];
    }
    function y(T) {
      const S = new Int32Array(5), P = 1024 * 16, x = P - 36, C = new Uint8Array(P), D = C.subarray(0, x);
      let w = 0, A = "";
      for (let I = 0; I < T.length; I++) {
        const L = T[I];
        if (I > 0 && (w === P && (A += l.decode(C), w = 0), C[w++] = n), L.length !== 0) {
          S[0] = 0;
          for (let O = 0; O < L.length; O++) {
            const F = L[O];
            w > x && (A += l.decode(D), C.copyWithin(0, x, w), w -= x), O > 0 && (C[w++] = i), w = v(C, w, S, F, 0), F.length !== 1 && (w = v(C, w, S, F, 1), w = v(C, w, S, F, 2), w = v(C, w, S, F, 3), F.length !== 4 && (w = v(C, w, S, F, 4)));
          }
        }
      }
      return A + l.decode(C.subarray(0, w));
    }
    function v(T, S, P, x, C) {
      const D = x[C];
      let w = D - P[C];
      P[C] = D, w = w < 0 ? -w << 1 | 1 : w << 1;
      do {
        let A = w & 31;
        w >>>= 5, w > 0 && (A |= 32), T[S++] = a[A];
      } while (w > 0);
      return S;
    }
    r.decode = u, r.encode = y, Object.defineProperty(r, "__esModule", { value: !0 });
  });
})(SF, SF.exports);
var POe = SF.exports;
class Dw {
  constructor(t) {
    this.bits = t instanceof Dw ? t.bits.slice() : [];
  }
  add(t) {
    this.bits[t >> 5] |= 1 << (t & 31);
  }
  has(t) {
    return !!(this.bits[t >> 5] & 1 << (t & 31));
  }
}
class Yv {
  constructor(t, r, i) {
    this.start = t, this.end = r, this.original = i, this.intro = "", this.outro = "", this.content = i, this.storeName = !1, this.edited = !1, this.previous = null, this.next = null;
  }
  appendLeft(t) {
    this.outro += t;
  }
  appendRight(t) {
    this.intro = this.intro + t;
  }
  clone() {
    const t = new Yv(this.start, this.end, this.original);
    return t.intro = this.intro, t.outro = this.outro, t.content = this.content, t.storeName = this.storeName, t.edited = this.edited, t;
  }
  contains(t) {
    return this.start < t && t < this.end;
  }
  eachNext(t) {
    let r = this;
    for (; r; )
      t(r), r = r.next;
  }
  eachPrevious(t) {
    let r = this;
    for (; r; )
      t(r), r = r.previous;
  }
  edit(t, r, i) {
    return this.content = t, i || (this.intro = "", this.outro = ""), this.storeName = r, this.edited = !0, this;
  }
  prependLeft(t) {
    this.outro = t + this.outro;
  }
  prependRight(t) {
    this.intro = t + this.intro;
  }
  split(t) {
    const r = t - this.start, i = this.original.slice(0, r), n = this.original.slice(r);
    this.original = i;
    const s = new Yv(t, this.end, n);
    return s.outro = this.outro, this.outro = "", this.end = t, this.edited ? (s.edit("", !1), this.content = "") : this.content = i, s.next = this.next, s.next && (s.next.previous = s), s.previous = this, this.next = s, s;
  }
  toString() {
    return this.intro + this.content + this.outro;
  }
  trimEnd(t) {
    if (this.outro = this.outro.replace(t, ""), this.outro.length)
      return !0;
    const r = this.content.replace(t, "");
    if (r.length)
      return r !== this.content && this.split(this.start + r.length).edit("", void 0, !0), !0;
    if (this.edit("", void 0, !0), this.intro = this.intro.replace(t, ""), this.intro.length)
      return !0;
  }
  trimStart(t) {
    if (this.intro = this.intro.replace(t, ""), this.intro.length)
      return !0;
    const r = this.content.replace(t, "");
    if (r.length)
      return r !== this.content && (this.split(this.end - r.length), this.edit("", void 0, !0)), !0;
    if (this.edit("", void 0, !0), this.outro = this.outro.replace(t, ""), this.outro.length)
      return !0;
  }
}
function wOe() {
  return typeof window != "undefined" && typeof window.btoa == "function" ? (e) => window.btoa(unescape(encodeURIComponent(e))) : typeof Buffer == "function" ? (e) => Buffer.from(e, "utf-8").toString("base64") : () => {
    throw new Error("Unsupported environment: `window.btoa` or `Buffer` should be supported.");
  };
}
const AOe = /* @__PURE__ */ wOe();
let COe = class {
  constructor(t) {
    this.version = 3, this.file = t.file, this.sources = t.sources, this.sourcesContent = t.sourcesContent, this.names = t.names, this.mappings = POe.encode(t.mappings), typeof t.x_google_ignoreList != "undefined" && (this.x_google_ignoreList = t.x_google_ignoreList);
  }
  toString() {
    return JSON.stringify(this);
  }
  toUrl() {
    return "data:application/json;charset=utf-8;base64," + AOe(this.toString());
  }
};
function _Oe(e) {
  const t = e.split("\n"), r = t.filter((s) => /^\t+/.test(s)), i = t.filter((s) => /^ {2,}/.test(s));
  if (r.length === 0 && i.length === 0)
    return null;
  if (r.length >= i.length)
    return "	";
  const n = i.reduce((s, a) => {
    const o = /^ +/.exec(a)[0].length;
    return Math.min(o, s);
  }, 1 / 0);
  return new Array(n + 1).join(" ");
}
function IOe(e, t) {
  const r = e.split(/[/\\]/), i = t.split(/[/\\]/);
  for (r.pop(); r[0] === i[0]; )
    r.shift(), i.shift();
  if (r.length) {
    let n = r.length;
    for (; n--; )
      r[n] = "..";
  }
  return r.concat(i).join("/");
}
const kOe = Object.prototype.toString;
function OOe(e) {
  return kOe.call(e) === "[object Object]";
}
function pW(e) {
  const t = e.split("\n"), r = [];
  for (let i = 0, n = 0; i < t.length; i++)
    r.push(n), n += t[i].length + 1;
  return function(n) {
    let s = 0, a = r.length;
    for (; s < a; ) {
      const u = s + a >> 1;
      n < r[u] ? a = u : s = u + 1;
    }
    const o = s - 1, l = n - r[o];
    return { line: o, column: l };
  };
}
class NOe {
  constructor(t) {
    this.hires = t, this.generatedCodeLine = 0, this.generatedCodeColumn = 0, this.raw = [], this.rawSegments = this.raw[this.generatedCodeLine] = [], this.pending = null;
  }
  addEdit(t, r, i, n) {
    if (r.length) {
      const s = [this.generatedCodeColumn, t, i.line, i.column];
      n >= 0 && s.push(n), this.rawSegments.push(s);
    } else
      this.pending && this.rawSegments.push(this.pending);
    this.advance(r), this.pending = null;
  }
  addUneditedChunk(t, r, i, n, s) {
    let a = r.start, o = !0;
    for (; a < r.end; )
      (this.hires || o || s.has(a)) && this.rawSegments.push([this.generatedCodeColumn, t, n.line, n.column]), i[a] === "\n" ? (n.line += 1, n.column = 0, this.generatedCodeLine += 1, this.raw[this.generatedCodeLine] = this.rawSegments = [], this.generatedCodeColumn = 0, o = !0) : (n.column += 1, this.generatedCodeColumn += 1, o = !1), a += 1;
    this.pending = null;
  }
  advance(t) {
    if (!t)
      return;
    const r = t.split("\n");
    if (r.length > 1) {
      for (let i = 0; i < r.length - 1; i++)
        this.generatedCodeLine++, this.raw[this.generatedCodeLine] = this.rawSegments = [];
      this.generatedCodeColumn = 0;
    }
    this.generatedCodeColumn += r[r.length - 1].length;
  }
}
const sb = "\n", Cm = {
  insertLeft: !1,
  insertRight: !1,
  storeName: !1
};
class IT {
  constructor(t, r = {}) {
    const i = new Yv(0, t.length, t);
    Object.defineProperties(this, {
      original: { writable: !0, value: t },
      outro: { writable: !0, value: "" },
      intro: { writable: !0, value: "" },
      firstChunk: { writable: !0, value: i },
      lastChunk: { writable: !0, value: i },
      lastSearchedChunk: { writable: !0, value: i },
      byStart: { writable: !0, value: {} },
      byEnd: { writable: !0, value: {} },
      filename: { writable: !0, value: r.filename },
      indentExclusionRanges: { writable: !0, value: r.indentExclusionRanges },
      sourcemapLocations: { writable: !0, value: new Dw() },
      storedNames: { writable: !0, value: {} },
      indentStr: { writable: !0, value: void 0 },
      ignoreList: { writable: !0, value: r.ignoreList }
    }), this.byStart[0] = i, this.byEnd[t.length] = i;
  }
  addSourcemapLocation(t) {
    this.sourcemapLocations.add(t);
  }
  append(t) {
    if (typeof t != "string")
      throw new TypeError("outro content must be a string");
    return this.outro += t, this;
  }
  appendLeft(t, r) {
    if (typeof r != "string")
      throw new TypeError("inserted content must be a string");
    this._split(t);
    const i = this.byEnd[t];
    return i ? i.appendLeft(r) : this.intro += r, this;
  }
  appendRight(t, r) {
    if (typeof r != "string")
      throw new TypeError("inserted content must be a string");
    this._split(t);
    const i = this.byStart[t];
    return i ? i.appendRight(r) : this.outro += r, this;
  }
  clone() {
    const t = new IT(this.original, { filename: this.filename });
    let r = this.firstChunk, i = t.firstChunk = t.lastSearchedChunk = r.clone();
    for (; r; ) {
      t.byStart[i.start] = i, t.byEnd[i.end] = i;
      const n = r.next, s = n && n.clone();
      s && (i.next = s, s.previous = i, i = s), r = n;
    }
    return t.lastChunk = i, this.indentExclusionRanges && (t.indentExclusionRanges = this.indentExclusionRanges.slice()), t.sourcemapLocations = new Dw(this.sourcemapLocations), t.intro = this.intro, t.outro = this.outro, t;
  }
  generateDecodedMap(t) {
    t = t || {};
    const r = 0, i = Object.keys(this.storedNames), n = new NOe(t.hires), s = pW(this.original);
    return this.intro && n.advance(this.intro), this.firstChunk.eachNext((a) => {
      const o = s(a.start);
      a.intro.length && n.advance(a.intro), a.edited ? n.addEdit(
        r,
        a.content,
        o,
        a.storeName ? i.indexOf(a.original) : -1
      ) : n.addUneditedChunk(r, a, this.original, o, this.sourcemapLocations), a.outro.length && n.advance(a.outro);
    }), {
      file: t.file ? t.file.split(/[/\\]/).pop() : void 0,
      sources: [t.source ? IOe(t.file || "", t.source) : t.file || ""],
      sourcesContent: t.includeContent ? [this.original] : void 0,
      names: i,
      mappings: n.raw,
      x_google_ignoreList: this.ignoreList ? [r] : void 0
    };
  }
  generateMap(t) {
    return new COe(this.generateDecodedMap(t));
  }
  _ensureindentStr() {
    this.indentStr === void 0 && (this.indentStr = _Oe(this.original));
  }
  _getRawIndentString() {
    return this._ensureindentStr(), this.indentStr;
  }
  getIndentString() {
    return this._ensureindentStr(), this.indentStr === null ? "	" : this.indentStr;
  }
  indent(t, r) {
    const i = /^[^\r\n]/gm;
    if (OOe(t) && (r = t, t = void 0), t === void 0 && (this._ensureindentStr(), t = this.indentStr || "	"), t === "")
      return this;
    r = r || {};
    const n = {};
    r.exclude && (typeof r.exclude[0] == "number" ? [r.exclude] : r.exclude).forEach((c) => {
      for (let f = c[0]; f < c[1]; f += 1)
        n[f] = !0;
    });
    let s = r.indentStart !== !1;
    const a = (u) => s ? "".concat(t).concat(u) : (s = !0, u);
    this.intro = this.intro.replace(i, a);
    let o = 0, l = this.firstChunk;
    for (; l; ) {
      const u = l.end;
      if (l.edited)
        n[o] || (l.content = l.content.replace(i, a), l.content.length && (s = l.content[l.content.length - 1] === "\n"));
      else
        for (o = l.start; o < u; ) {
          if (!n[o]) {
            const c = this.original[o];
            c === "\n" ? s = !0 : c !== "\r" && s && (s = !1, o === l.start || (this._splitChunk(l, o), l = l.next), l.prependRight(t));
          }
          o += 1;
        }
      o = l.end, l = l.next;
    }
    return this.outro = this.outro.replace(i, a), this;
  }
  insert() {
    throw new Error(
      "magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)"
    );
  }
  insertLeft(t, r) {
    return Cm.insertLeft || (console.warn(
      "magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead"
    ), Cm.insertLeft = !0), this.appendLeft(t, r);
  }
  insertRight(t, r) {
    return Cm.insertRight || (console.warn(
      "magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead"
    ), Cm.insertRight = !0), this.prependRight(t, r);
  }
  move(t, r, i) {
    if (i >= t && i <= r)
      throw new Error("Cannot move a selection inside itself");
    this._split(t), this._split(r), this._split(i);
    const n = this.byStart[t], s = this.byEnd[r], a = n.previous, o = s.next, l = this.byStart[i];
    if (!l && s === this.lastChunk)
      return this;
    const u = l ? l.previous : this.lastChunk;
    return a && (a.next = o), o && (o.previous = a), u && (u.next = n), l && (l.previous = s), n.previous || (this.firstChunk = s.next), s.next || (this.lastChunk = n.previous, this.lastChunk.next = null), n.previous = u, s.next = l || null, u || (this.firstChunk = n), l || (this.lastChunk = s), this;
  }
  overwrite(t, r, i, n) {
    return n = n || {}, this.update(t, r, i, zr($t({}, n), { overwrite: !n.contentOnly }));
  }
  update(t, r, i, n) {
    if (typeof i != "string")
      throw new TypeError("replacement content must be a string");
    for (; t < 0; )
      t += this.original.length;
    for (; r < 0; )
      r += this.original.length;
    if (r > this.original.length)
      throw new Error("end is out of bounds");
    if (t === r)
      throw new Error(
        "Cannot overwrite a zero-length range – use appendLeft or prependRight instead"
      );
    this._split(t), this._split(r), n === !0 && (Cm.storeName || (console.warn(
      "The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string"
    ), Cm.storeName = !0), n = { storeName: !0 });
    const s = n !== void 0 ? n.storeName : !1, a = n !== void 0 ? n.overwrite : !1;
    if (s) {
      const u = this.original.slice(t, r);
      Object.defineProperty(this.storedNames, u, {
        writable: !0,
        value: !0,
        enumerable: !0
      });
    }
    const o = this.byStart[t], l = this.byEnd[r];
    if (o) {
      let u = o;
      for (; u !== l; ) {
        if (u.next !== this.byStart[u.end])
          throw new Error("Cannot overwrite across a split point");
        u = u.next, u.edit("", !1);
      }
      o.edit(i, s, !a);
    } else {
      const u = new Yv(t, r, "").edit(i, s);
      l.next = u, u.previous = l;
    }
    return this;
  }
  prepend(t) {
    if (typeof t != "string")
      throw new TypeError("outro content must be a string");
    return this.intro = t + this.intro, this;
  }
  prependLeft(t, r) {
    if (typeof r != "string")
      throw new TypeError("inserted content must be a string");
    this._split(t);
    const i = this.byEnd[t];
    return i ? i.prependLeft(r) : this.intro = r + this.intro, this;
  }
  prependRight(t, r) {
    if (typeof r != "string")
      throw new TypeError("inserted content must be a string");
    this._split(t);
    const i = this.byStart[t];
    return i ? i.prependRight(r) : this.outro = r + this.outro, this;
  }
  remove(t, r) {
    for (; t < 0; )
      t += this.original.length;
    for (; r < 0; )
      r += this.original.length;
    if (t === r)
      return this;
    if (t < 0 || r > this.original.length)
      throw new Error("Character is out of bounds");
    if (t > r)
      throw new Error("end must be greater than start");
    this._split(t), this._split(r);
    let i = this.byStart[t];
    for (; i; )
      i.intro = "", i.outro = "", i.edit(""), i = r > i.end ? this.byStart[i.end] : null;
    return this;
  }
  lastChar() {
    if (this.outro.length)
      return this.outro[this.outro.length - 1];
    let t = this.lastChunk;
    do {
      if (t.outro.length)
        return t.outro[t.outro.length - 1];
      if (t.content.length)
        return t.content[t.content.length - 1];
      if (t.intro.length)
        return t.intro[t.intro.length - 1];
    } while (t = t.previous);
    return this.intro.length ? this.intro[this.intro.length - 1] : "";
  }
  lastLine() {
    let t = this.outro.lastIndexOf(sb);
    if (t !== -1)
      return this.outro.substr(t + 1);
    let r = this.outro, i = this.lastChunk;
    do {
      if (i.outro.length > 0) {
        if (t = i.outro.lastIndexOf(sb), t !== -1)
          return i.outro.substr(t + 1) + r;
        r = i.outro + r;
      }
      if (i.content.length > 0) {
        if (t = i.content.lastIndexOf(sb), t !== -1)
          return i.content.substr(t + 1) + r;
        r = i.content + r;
      }
      if (i.intro.length > 0) {
        if (t = i.intro.lastIndexOf(sb), t !== -1)
          return i.intro.substr(t + 1) + r;
        r = i.intro + r;
      }
    } while (i = i.previous);
    return t = this.intro.lastIndexOf(sb), t !== -1 ? this.intro.substr(t + 1) + r : this.intro + r;
  }
  slice(t = 0, r = this.original.length) {
    for (; t < 0; )
      t += this.original.length;
    for (; r < 0; )
      r += this.original.length;
    let i = "", n = this.firstChunk;
    for (; n && (n.start > t || n.end <= t); ) {
      if (n.start < r && n.end >= r)
        return i;
      n = n.next;
    }
    if (n && n.edited && n.start !== t)
      throw new Error("Cannot use replaced character ".concat(t, " as slice start anchor."));
    const s = n;
    for (; n; ) {
      n.intro && (s !== n || n.start === t) && (i += n.intro);
      const a = n.start < r && n.end >= r;
      if (a && n.edited && n.end !== r)
        throw new Error("Cannot use replaced character ".concat(r, " as slice end anchor."));
      const o = s === n ? t - n.start : 0, l = a ? n.content.length + r - n.end : n.content.length;
      if (i += n.content.slice(o, l), n.outro && (!a || n.end === r) && (i += n.outro), a)
        break;
      n = n.next;
    }
    return i;
  }
  // TODO deprecate this? not really very useful
  snip(t, r) {
    const i = this.clone();
    return i.remove(0, t), i.remove(r, i.original.length), i;
  }
  _split(t) {
    if (this.byStart[t] || this.byEnd[t])
      return;
    let r = this.lastSearchedChunk;
    const i = t > r.end;
    for (; r; ) {
      if (r.contains(t))
        return this._splitChunk(r, t);
      r = i ? this.byStart[r.end] : this.byEnd[r.start];
    }
  }
  _splitChunk(t, r) {
    if (t.edited && t.content.length) {
      const n = pW(this.original)(r);
      throw new Error(
        "Cannot split a chunk that has already been edited (".concat(n.line, ":").concat(n.column, ' – "').concat(t.original, '")')
      );
    }
    const i = t.split(r);
    return this.byEnd[r] = t, this.byStart[r] = i, this.byEnd[i.end] = i, t === this.lastChunk && (this.lastChunk = i), this.lastSearchedChunk = t, !0;
  }
  toString() {
    let t = this.intro, r = this.firstChunk;
    for (; r; )
      t += r.toString(), r = r.next;
    return t + this.outro;
  }
  isEmpty() {
    let t = this.firstChunk;
    do
      if (t.intro.length && t.intro.trim() || t.content.length && t.content.trim() || t.outro.length && t.outro.trim())
        return !1;
    while (t = t.next);
    return !0;
  }
  length() {
    let t = this.firstChunk, r = 0;
    do
      r += t.intro.length + t.content.length + t.outro.length;
    while (t = t.next);
    return r;
  }
  trimLines() {
    return this.trim("[\\r\\n]");
  }
  trim(t) {
    return this.trimStart(t).trimEnd(t);
  }
  trimEndAborted(t) {
    const r = new RegExp((t || "\\s") + "+$");
    if (this.outro = this.outro.replace(r, ""), this.outro.length)
      return !0;
    let i = this.lastChunk;
    do {
      const n = i.end, s = i.trimEnd(r);
      if (i.end !== n && (this.lastChunk === i && (this.lastChunk = i.next), this.byEnd[i.end] = i, this.byStart[i.next.start] = i.next, this.byEnd[i.next.end] = i.next), s)
        return !0;
      i = i.previous;
    } while (i);
    return !1;
  }
  trimEnd(t) {
    return this.trimEndAborted(t), this;
  }
  trimStartAborted(t) {
    const r = new RegExp("^" + (t || "\\s") + "+");
    if (this.intro = this.intro.replace(r, ""), this.intro.length)
      return !0;
    let i = this.firstChunk;
    do {
      const n = i.end, s = i.trimStart(r);
      if (i.end !== n && (i === this.lastChunk && (this.lastChunk = i.next), this.byEnd[i.end] = i, this.byStart[i.next.start] = i.next, this.byEnd[i.next.end] = i.next), s)
        return !0;
      i = i.next;
    } while (i);
    return !1;
  }
  trimStart(t) {
    return this.trimStartAborted(t), this;
  }
  hasChanged() {
    return this.original !== this.toString();
  }
  _replaceRegexp(t, r) {
    function i(s, a) {
      return typeof r == "string" ? r.replace(/\$(\$|&|\d+)/g, (o, l) => l === "$" ? "$" : l === "&" ? s[0] : +l < s.length ? s[+l] : "$".concat(l)) : r(...s, s.index, a, s.groups);
    }
    function n(s, a) {
      let o;
      const l = [];
      for (; o = s.exec(a); )
        l.push(o);
      return l;
    }
    if (t.global)
      n(t, this.original).forEach((a) => {
        a.index != null && this.overwrite(
          a.index,
          a.index + a[0].length,
          i(a, this.original)
        );
      });
    else {
      const s = this.original.match(t);
      s && s.index != null && this.overwrite(
        s.index,
        s.index + s[0].length,
        i(s, this.original)
      );
    }
    return this;
  }
  _replaceString(t, r) {
    const { original: i } = this, n = i.indexOf(t);
    return n !== -1 && this.overwrite(n, n + t.length, r), this;
  }
  replace(t, r) {
    return typeof t == "string" ? this._replaceString(t, r) : this._replaceRegexp(t, r);
  }
  _replaceAllString(t, r) {
    const { original: i } = this, n = t.length;
    for (let s = i.indexOf(t); s !== -1; s = i.indexOf(t, s + n))
      this.overwrite(s, s + n, r);
    return this;
  }
  replaceAll(t, r) {
    if (typeof t == "string")
      return this._replaceAllString(t, r);
    if (!t.global)
      throw new TypeError(
        "MagicString.prototype.replaceAll called with a non-global RegExp argument"
      );
    return this._replaceRegexp(t, r);
  }
}
const Dyr = "data-insp-row", Lyr = "data-insp-col", fa = "data-insp-path", Myr = "data-insp-node", Ope = 5678, DOe = [".js", ".ts", ".mjs", ".mts", ".jsx", ".tsx"], LOe = "\0astro:dev-toolbar";
function Npe(e) {
  if (typeof e == "string" && e !== "")
    return e;
  if (e === !0) {
    let t = jSe.networkInterfaces();
    for (let r in t) {
      let i = t[r];
      for (let n = 0; n < i.length; n++) {
        let s = i[n];
        if ((s.family === "IPv4" || s.family === 4) && s.address !== "127.0.0.1" && !s.internal)
          return s.address;
      }
    }
  }
  return "localhost";
}
function MOe(e) {
  let t = e;
  return process.platform === "win32" ? (t = t.replace(/^file:\/\/\//, ""), t = decodeURIComponent(t), t = t.replace(/\//g, "\\")) : (t = t.replace(/^file:\/\//, ""), t = decodeURIComponent(t)), t;
}
function X$(e) {
  return DOe.some((t) => e.endsWith(t));
}
function J$(e) {
  return e.slice(0, e.lastIndexOf("."));
}
function xF(e) {
  let t = xs.normalize(e);
  return process.platform === "win32" && (t = t.replace(/\\/g, "/")), t;
}
function PC(e, t) {
  return e.some((r) => typeof r == "string" ? r.toLowerCase() === t.toLowerCase() : r.test(t) || r.test(t.toLowerCase()));
}
function ROe() {
  const e = xs.resolve(process.cwd(), "./package.json");
  if ($l.existsSync(e)) {
    const t = JSON.parse(
      $l.readFileSync(e, "utf-8") || "{}"
    ), r = $t($t($t({}, t.dependencies), t.devDependencies), t.peerDependencies);
    return Array.from(new Set(Object.keys(r)));
  }
  return [];
}
function Ryr(e, t) {
  let r;
  return typeof e == "function" ? r = e() : r = e, r === !1 ? !1 : r || t;
}
function BOe(e, t) {
  return typeof e == "string" ? t.includes(e) : e instanceof RegExp ? e.test(t) : !!e.some((r) => BOe(r, t));
}
function Byr(e, t) {
  if (!t)
    return e;
  if (Array.isArray(t))
    for (let r = 0; r < t.length; r++) {
      let i = t[r].find, n = t[r].replacement;
      if (typeof i == "string") {
        const s = fW(e, i, n);
        if (s)
          return s;
      } else if (i instanceof RegExp) {
        const s = FOe(e, i, n);
        if (s)
          return s;
      }
    }
  else
    for (let r in t) {
      const i = t[r], n = fW(e, r, i);
      if (n)
        return n;
    }
  return e;
}
function fW(e, t, r) {
  if (t = EF(t), r = EF(r), e.startsWith(t)) {
    const i = e.replace(t, r);
    if ($l.existsSync(i))
      return i;
  } else {
    t = "/node_modules/".concat(t);
    const i = e.indexOf(t);
    if (i !== -1) {
      const n = r + e.slice(i + t.length);
      if ($l.existsSync(n))
        return n;
    }
  }
  return null;
}
function FOe(e, t, r) {
  const i = t.exec(e);
  if (i) {
    r = EF(r);
    const n = i.index, s = i[0];
    let a = e.slice(n + s.length);
    a.startsWith("/") && (a = a.slice(1));
    const o = r + a;
    if ($l.existsSync(o))
      return o;
  }
  return null;
}
function EF(e) {
  return e.endsWith("/") ? e : "".concat(e, "/");
}
var Dpe = {}, bM = {}, wC = {}, AC = {}, CC = {}, Ne = {}, kT = {};
Object.defineProperty(kT, "__esModule", {
  value: !0
});
kT.default = jOe;
function jOe(e, t) {
  const r = Object.keys(t);
  for (const i of r)
    if (e[i] !== t[i])
      return !1;
  return !0;
}
var vg = {};
Object.defineProperty(vg, "__esModule", {
  value: !0
});
vg.default = $Oe;
const hW = /* @__PURE__ */ new Set();
function $Oe(e, t, r = "") {
  if (hW.has(e))
    return;
  hW.add(e);
  const {
    internal: i,
    trace: n
  } = UOe(1, 2);
  i || console.warn("".concat(r, "`").concat(e, "` has been deprecated, please migrate to `").concat(t, "`\n").concat(n));
}
function UOe(e, t) {
  const {
    stackTraceLimit: r,
    prepareStackTrace: i
  } = Error;
  let n;
  if (Error.stackTraceLimit = 1 + e + t, Error.prepareStackTrace = function(a, o) {
    n = o;
  }, new Error().stack, Error.stackTraceLimit = r, Error.prepareStackTrace = i, !n)
    return {
      internal: !1,
      trace: ""
    };
  const s = n.slice(1 + e, 1 + e + t);
  return {
    internal: /[\\/]@babel[\\/]/.test(s[1].getFileName()),
    trace: s.map((a) => "    at ".concat(a)).join("\n")
  };
}
Object.defineProperty(Ne, "__esModule", {
  value: !0
});
Ne.isAccessor = t3e;
Ne.isAnyTypeAnnotation = xDe;
Ne.isArgumentPlaceholder = JLe;
Ne.isArrayExpression = qOe;
Ne.isArrayPattern = $Ne;
Ne.isArrayTypeAnnotation = EDe;
Ne.isArrowFunctionExpression = UNe;
Ne.isAssignmentExpression = VOe;
Ne.isAssignmentPattern = jNe;
Ne.isAwaitExpression = cDe;
Ne.isBigIntLiteral = fDe;
Ne.isBinary = PRe;
Ne.isBinaryExpression = WOe;
Ne.isBindExpression = QLe;
Ne.isBlock = CRe;
Ne.isBlockParent = ARe;
Ne.isBlockStatement = GOe;
Ne.isBooleanLiteral = mNe;
Ne.isBooleanLiteralTypeAnnotation = wDe;
Ne.isBooleanTypeAnnotation = PDe;
Ne.isBreakStatement = YOe;
Ne.isCallExpression = XOe;
Ne.isCatchClause = JOe;
Ne.isClass = QRe;
Ne.isClassAccessorProperty = gDe;
Ne.isClassBody = qNe;
Ne.isClassDeclaration = WNe;
Ne.isClassExpression = VNe;
Ne.isClassImplements = CDe;
Ne.isClassMethod = rDe;
Ne.isClassPrivateMethod = vDe;
Ne.isClassPrivateProperty = bDe;
Ne.isClassProperty = yDe;
Ne.isCompletionStatement = kRe;
Ne.isConditional = ORe;
Ne.isConditionalExpression = QOe;
Ne.isContinueStatement = ZOe;
Ne.isDebuggerStatement = eNe;
Ne.isDecimalLiteral = sMe;
Ne.isDeclaration = $Re;
Ne.isDeclareClass = _De;
Ne.isDeclareExportAllDeclaration = BDe;
Ne.isDeclareExportDeclaration = RDe;
Ne.isDeclareFunction = IDe;
Ne.isDeclareInterface = kDe;
Ne.isDeclareModule = ODe;
Ne.isDeclareModuleExports = NDe;
Ne.isDeclareOpaqueType = LDe;
Ne.isDeclareTypeAlias = DDe;
Ne.isDeclareVariable = MDe;
Ne.isDeclaredPredicate = FDe;
Ne.isDecorator = eMe;
Ne.isDirective = KOe;
Ne.isDirectiveLiteral = zOe;
Ne.isDoExpression = tMe;
Ne.isDoWhileStatement = tNe;
Ne.isEmptyStatement = rNe;
Ne.isEmptyTypeAnnotation = YDe;
Ne.isEnumBody = l3e;
Ne.isEnumBooleanBody = ELe;
Ne.isEnumBooleanMember = CLe;
Ne.isEnumDeclaration = xLe;
Ne.isEnumDefaultedMember = kLe;
Ne.isEnumMember = u3e;
Ne.isEnumNumberBody = PLe;
Ne.isEnumNumberMember = _Le;
Ne.isEnumStringBody = wLe;
Ne.isEnumStringMember = ILe;
Ne.isEnumSymbolBody = ALe;
Ne.isExistsTypeAnnotation = jDe;
Ne.isExportAllDeclaration = HNe;
Ne.isExportDeclaration = ZRe;
Ne.isExportDefaultDeclaration = KNe;
Ne.isExportDefaultSpecifier = rMe;
Ne.isExportNamedDeclaration = zNe;
Ne.isExportNamespaceSpecifier = hDe;
Ne.isExportSpecifier = GNe;
Ne.isExpression = ERe;
Ne.isExpressionStatement = iNe;
Ne.isExpressionWrapper = LRe;
Ne.isFile = nNe;
Ne.isFlow = i3e;
Ne.isFlowBaseAnnotation = s3e;
Ne.isFlowDeclaration = a3e;
Ne.isFlowPredicate = o3e;
Ne.isFlowType = n3e;
Ne.isFor = MRe;
Ne.isForInStatement = sNe;
Ne.isForOfStatement = YNe;
Ne.isForStatement = aNe;
Ne.isForXStatement = RRe;
Ne.isFunction = BRe;
Ne.isFunctionDeclaration = oNe;
Ne.isFunctionExpression = lNe;
Ne.isFunctionParent = FRe;
Ne.isFunctionTypeAnnotation = $De;
Ne.isFunctionTypeParam = UDe;
Ne.isGenericTypeAnnotation = qDe;
Ne.isIdentifier = uNe;
Ne.isIfStatement = cNe;
Ne.isImmutable = HRe;
Ne.isImport = pDe;
Ne.isImportAttribute = ZLe;
Ne.isImportDeclaration = XNe;
Ne.isImportDefaultSpecifier = JNe;
Ne.isImportExpression = eDe;
Ne.isImportNamespaceSpecifier = QNe;
Ne.isImportOrExportDeclaration = Lpe;
Ne.isImportSpecifier = ZNe;
Ne.isIndexedAccessType = OLe;
Ne.isInferredPredicate = VDe;
Ne.isInterfaceDeclaration = HDe;
Ne.isInterfaceExtends = WDe;
Ne.isInterfaceTypeAnnotation = KDe;
Ne.isInterpreterDirective = HOe;
Ne.isIntersectionTypeAnnotation = zDe;
Ne.isJSX = c3e;
Ne.isJSXAttribute = DLe;
Ne.isJSXClosingElement = LLe;
Ne.isJSXClosingFragment = zLe;
Ne.isJSXElement = MLe;
Ne.isJSXEmptyExpression = RLe;
Ne.isJSXExpressionContainer = BLe;
Ne.isJSXFragment = HLe;
Ne.isJSXIdentifier = jLe;
Ne.isJSXMemberExpression = $Le;
Ne.isJSXNamespacedName = ULe;
Ne.isJSXOpeningElement = qLe;
Ne.isJSXOpeningFragment = KLe;
Ne.isJSXSpreadAttribute = VLe;
Ne.isJSXSpreadChild = FLe;
Ne.isJSXText = WLe;
Ne.isLVal = qRe;
Ne.isLabeledStatement = pNe;
Ne.isLiteral = WRe;
Ne.isLogicalExpression = gNe;
Ne.isLoop = NRe;
Ne.isMemberExpression = bNe;
Ne.isMetaProperty = tDe;
Ne.isMethod = zRe;
Ne.isMiscellaneous = p3e;
Ne.isMixedTypeAnnotation = GDe;
Ne.isModuleDeclaration = T3e;
Ne.isModuleExpression = aMe;
Ne.isModuleSpecifier = e3e;
Ne.isNewExpression = vNe;
Ne.isNoop = GLe;
Ne.isNullLiteral = dNe;
Ne.isNullLiteralTypeAnnotation = ADe;
Ne.isNullableTypeAnnotation = XDe;
Ne.isNumberLiteral = y3e;
Ne.isNumberLiteralTypeAnnotation = JDe;
Ne.isNumberTypeAnnotation = QDe;
Ne.isNumericLiteral = hNe;
Ne.isObjectExpression = SNe;
Ne.isObjectMember = GRe;
Ne.isObjectMethod = xNe;
Ne.isObjectPattern = iDe;
Ne.isObjectProperty = ENe;
Ne.isObjectTypeAnnotation = ZDe;
Ne.isObjectTypeCallProperty = tLe;
Ne.isObjectTypeIndexer = rLe;
Ne.isObjectTypeInternalSlot = eLe;
Ne.isObjectTypeProperty = iLe;
Ne.isObjectTypeSpreadProperty = nLe;
Ne.isOpaqueType = sLe;
Ne.isOptionalCallExpression = mDe;
Ne.isOptionalIndexedAccessType = NLe;
Ne.isOptionalMemberExpression = dDe;
Ne.isParenthesizedExpression = CNe;
Ne.isPattern = JRe;
Ne.isPatternLike = URe;
Ne.isPipelineBareFunction = uMe;
Ne.isPipelinePrimaryTopicReference = cMe;
Ne.isPipelineTopicExpression = lMe;
Ne.isPlaceholder = YLe;
Ne.isPrivate = r3e;
Ne.isPrivateName = TDe;
Ne.isProgram = TNe;
Ne.isProperty = YRe;
Ne.isPureish = jRe;
Ne.isQualifiedTypeIdentifier = aLe;
Ne.isRecordExpression = iMe;
Ne.isRegExpLiteral = yNe;
Ne.isRegexLiteral = g3e;
Ne.isRestElement = PNe;
Ne.isRestProperty = b3e;
Ne.isReturnStatement = wNe;
Ne.isScopable = wRe;
Ne.isSequenceExpression = ANe;
Ne.isSpreadElement = nDe;
Ne.isSpreadProperty = v3e;
Ne.isStandardized = xRe;
Ne.isStatement = _Re;
Ne.isStaticBlock = SDe;
Ne.isStringLiteral = fNe;
Ne.isStringLiteralTypeAnnotation = oLe;
Ne.isStringTypeAnnotation = lLe;
Ne.isSuper = sDe;
Ne.isSwitchCase = _Ne;
Ne.isSwitchStatement = INe;
Ne.isSymbolTypeAnnotation = uLe;
Ne.isTSAnyKeyword = TMe;
Ne.isTSArrayType = $Me;
Ne.isTSAsExpression = sRe;
Ne.isTSBaseType = m3e;
Ne.isTSBigIntKeyword = xMe;
Ne.isTSBooleanKeyword = SMe;
Ne.isTSCallSignatureDeclaration = mMe;
Ne.isTSConditionalType = zMe;
Ne.isTSConstructSignatureDeclaration = yMe;
Ne.isTSConstructorType = MMe;
Ne.isTSDeclareFunction = fMe;
Ne.isTSDeclareMethod = hMe;
Ne.isTSEntityName = VRe;
Ne.isTSEnumDeclaration = lRe;
Ne.isTSEnumMember = uRe;
Ne.isTSExportAssignment = yRe;
Ne.isTSExpressionWithTypeArguments = eRe;
Ne.isTSExternalModuleReference = dRe;
Ne.isTSFunctionType = LMe;
Ne.isTSImportEqualsDeclaration = hRe;
Ne.isTSImportType = fRe;
Ne.isTSIndexSignature = vMe;
Ne.isTSIndexedAccessType = JMe;
Ne.isTSInferType = GMe;
Ne.isTSInstantiationExpression = nRe;
Ne.isTSInterfaceBody = rRe;
Ne.isTSInterfaceDeclaration = tRe;
Ne.isTSIntersectionType = KMe;
Ne.isTSIntrinsicKeyword = EMe;
Ne.isTSLiteralType = ZMe;
Ne.isTSMappedType = QMe;
Ne.isTSMethodSignature = bMe;
Ne.isTSModuleBlock = pRe;
Ne.isTSModuleDeclaration = cRe;
Ne.isTSNamedTupleMember = WMe;
Ne.isTSNamespaceExportDeclaration = gRe;
Ne.isTSNeverKeyword = PMe;
Ne.isTSNonNullExpression = mRe;
Ne.isTSNullKeyword = wMe;
Ne.isTSNumberKeyword = AMe;
Ne.isTSObjectKeyword = CMe;
Ne.isTSOptionalType = qMe;
Ne.isTSParameterProperty = pMe;
Ne.isTSParenthesizedType = YMe;
Ne.isTSPropertySignature = gMe;
Ne.isTSQualifiedName = dMe;
Ne.isTSRestType = VMe;
Ne.isTSSatisfiesExpression = aRe;
Ne.isTSStringKeyword = _Me;
Ne.isTSSymbolKeyword = IMe;
Ne.isTSThisType = DMe;
Ne.isTSTupleType = UMe;
Ne.isTSType = d3e;
Ne.isTSTypeAliasDeclaration = iRe;
Ne.isTSTypeAnnotation = bRe;
Ne.isTSTypeAssertion = oRe;
Ne.isTSTypeElement = h3e;
Ne.isTSTypeLiteral = jMe;
Ne.isTSTypeOperator = XMe;
Ne.isTSTypeParameter = SRe;
Ne.isTSTypeParameterDeclaration = TRe;
Ne.isTSTypeParameterInstantiation = vRe;
Ne.isTSTypePredicate = BMe;
Ne.isTSTypeQuery = FMe;
Ne.isTSTypeReference = RMe;
Ne.isTSUndefinedKeyword = kMe;
Ne.isTSUnionType = HMe;
Ne.isTSUnknownKeyword = OMe;
Ne.isTSVoidKeyword = NMe;
Ne.isTaggedTemplateExpression = aDe;
Ne.isTemplateElement = oDe;
Ne.isTemplateLiteral = lDe;
Ne.isTerminatorless = IRe;
Ne.isThisExpression = kNe;
Ne.isThisTypeAnnotation = cLe;
Ne.isThrowStatement = ONe;
Ne.isTopicReference = oMe;
Ne.isTryStatement = NNe;
Ne.isTupleExpression = nMe;
Ne.isTupleTypeAnnotation = pLe;
Ne.isTypeAlias = hLe;
Ne.isTypeAnnotation = dLe;
Ne.isTypeCastExpression = mLe;
Ne.isTypeParameter = yLe;
Ne.isTypeParameterDeclaration = gLe;
Ne.isTypeParameterInstantiation = bLe;
Ne.isTypeScript = f3e;
Ne.isTypeofTypeAnnotation = fLe;
Ne.isUnaryExpression = DNe;
Ne.isUnaryLike = XRe;
Ne.isUnionTypeAnnotation = vLe;
Ne.isUpdateExpression = LNe;
Ne.isUserWhitespacable = KRe;
Ne.isV8IntrinsicIdentifier = XLe;
Ne.isVariableDeclaration = MNe;
Ne.isVariableDeclarator = RNe;
Ne.isVariance = TLe;
Ne.isVoidTypeAnnotation = SLe;
Ne.isWhile = DRe;
Ne.isWhileStatement = BNe;
Ne.isWithStatement = FNe;
Ne.isYieldExpression = uDe;
var We = kT, OT = vg;
function qOe(e, t) {
  return !e || e.type !== "ArrayExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function VOe(e, t) {
  return !e || e.type !== "AssignmentExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function WOe(e, t) {
  return !e || e.type !== "BinaryExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function HOe(e, t) {
  return !e || e.type !== "InterpreterDirective" ? !1 : t == null || (0, We.default)(e, t);
}
function KOe(e, t) {
  return !e || e.type !== "Directive" ? !1 : t == null || (0, We.default)(e, t);
}
function zOe(e, t) {
  return !e || e.type !== "DirectiveLiteral" ? !1 : t == null || (0, We.default)(e, t);
}
function GOe(e, t) {
  return !e || e.type !== "BlockStatement" ? !1 : t == null || (0, We.default)(e, t);
}
function YOe(e, t) {
  return !e || e.type !== "BreakStatement" ? !1 : t == null || (0, We.default)(e, t);
}
function XOe(e, t) {
  return !e || e.type !== "CallExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function JOe(e, t) {
  return !e || e.type !== "CatchClause" ? !1 : t == null || (0, We.default)(e, t);
}
function QOe(e, t) {
  return !e || e.type !== "ConditionalExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function ZOe(e, t) {
  return !e || e.type !== "ContinueStatement" ? !1 : t == null || (0, We.default)(e, t);
}
function eNe(e, t) {
  return !e || e.type !== "DebuggerStatement" ? !1 : t == null || (0, We.default)(e, t);
}
function tNe(e, t) {
  return !e || e.type !== "DoWhileStatement" ? !1 : t == null || (0, We.default)(e, t);
}
function rNe(e, t) {
  return !e || e.type !== "EmptyStatement" ? !1 : t == null || (0, We.default)(e, t);
}
function iNe(e, t) {
  return !e || e.type !== "ExpressionStatement" ? !1 : t == null || (0, We.default)(e, t);
}
function nNe(e, t) {
  return !e || e.type !== "File" ? !1 : t == null || (0, We.default)(e, t);
}
function sNe(e, t) {
  return !e || e.type !== "ForInStatement" ? !1 : t == null || (0, We.default)(e, t);
}
function aNe(e, t) {
  return !e || e.type !== "ForStatement" ? !1 : t == null || (0, We.default)(e, t);
}
function oNe(e, t) {
  return !e || e.type !== "FunctionDeclaration" ? !1 : t == null || (0, We.default)(e, t);
}
function lNe(e, t) {
  return !e || e.type !== "FunctionExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function uNe(e, t) {
  return !e || e.type !== "Identifier" ? !1 : t == null || (0, We.default)(e, t);
}
function cNe(e, t) {
  return !e || e.type !== "IfStatement" ? !1 : t == null || (0, We.default)(e, t);
}
function pNe(e, t) {
  return !e || e.type !== "LabeledStatement" ? !1 : t == null || (0, We.default)(e, t);
}
function fNe(e, t) {
  return !e || e.type !== "StringLiteral" ? !1 : t == null || (0, We.default)(e, t);
}
function hNe(e, t) {
  return !e || e.type !== "NumericLiteral" ? !1 : t == null || (0, We.default)(e, t);
}
function dNe(e, t) {
  return !e || e.type !== "NullLiteral" ? !1 : t == null || (0, We.default)(e, t);
}
function mNe(e, t) {
  return !e || e.type !== "BooleanLiteral" ? !1 : t == null || (0, We.default)(e, t);
}
function yNe(e, t) {
  return !e || e.type !== "RegExpLiteral" ? !1 : t == null || (0, We.default)(e, t);
}
function gNe(e, t) {
  return !e || e.type !== "LogicalExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function bNe(e, t) {
  return !e || e.type !== "MemberExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function vNe(e, t) {
  return !e || e.type !== "NewExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function TNe(e, t) {
  return !e || e.type !== "Program" ? !1 : t == null || (0, We.default)(e, t);
}
function SNe(e, t) {
  return !e || e.type !== "ObjectExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function xNe(e, t) {
  return !e || e.type !== "ObjectMethod" ? !1 : t == null || (0, We.default)(e, t);
}
function ENe(e, t) {
  return !e || e.type !== "ObjectProperty" ? !1 : t == null || (0, We.default)(e, t);
}
function PNe(e, t) {
  return !e || e.type !== "RestElement" ? !1 : t == null || (0, We.default)(e, t);
}
function wNe(e, t) {
  return !e || e.type !== "ReturnStatement" ? !1 : t == null || (0, We.default)(e, t);
}
function ANe(e, t) {
  return !e || e.type !== "SequenceExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function CNe(e, t) {
  return !e || e.type !== "ParenthesizedExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function _Ne(e, t) {
  return !e || e.type !== "SwitchCase" ? !1 : t == null || (0, We.default)(e, t);
}
function INe(e, t) {
  return !e || e.type !== "SwitchStatement" ? !1 : t == null || (0, We.default)(e, t);
}
function kNe(e, t) {
  return !e || e.type !== "ThisExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function ONe(e, t) {
  return !e || e.type !== "ThrowStatement" ? !1 : t == null || (0, We.default)(e, t);
}
function NNe(e, t) {
  return !e || e.type !== "TryStatement" ? !1 : t == null || (0, We.default)(e, t);
}
function DNe(e, t) {
  return !e || e.type !== "UnaryExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function LNe(e, t) {
  return !e || e.type !== "UpdateExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function MNe(e, t) {
  return !e || e.type !== "VariableDeclaration" ? !1 : t == null || (0, We.default)(e, t);
}
function RNe(e, t) {
  return !e || e.type !== "VariableDeclarator" ? !1 : t == null || (0, We.default)(e, t);
}
function BNe(e, t) {
  return !e || e.type !== "WhileStatement" ? !1 : t == null || (0, We.default)(e, t);
}
function FNe(e, t) {
  return !e || e.type !== "WithStatement" ? !1 : t == null || (0, We.default)(e, t);
}
function jNe(e, t) {
  return !e || e.type !== "AssignmentPattern" ? !1 : t == null || (0, We.default)(e, t);
}
function $Ne(e, t) {
  return !e || e.type !== "ArrayPattern" ? !1 : t == null || (0, We.default)(e, t);
}
function UNe(e, t) {
  return !e || e.type !== "ArrowFunctionExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function qNe(e, t) {
  return !e || e.type !== "ClassBody" ? !1 : t == null || (0, We.default)(e, t);
}
function VNe(e, t) {
  return !e || e.type !== "ClassExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function WNe(e, t) {
  return !e || e.type !== "ClassDeclaration" ? !1 : t == null || (0, We.default)(e, t);
}
function HNe(e, t) {
  return !e || e.type !== "ExportAllDeclaration" ? !1 : t == null || (0, We.default)(e, t);
}
function KNe(e, t) {
  return !e || e.type !== "ExportDefaultDeclaration" ? !1 : t == null || (0, We.default)(e, t);
}
function zNe(e, t) {
  return !e || e.type !== "ExportNamedDeclaration" ? !1 : t == null || (0, We.default)(e, t);
}
function GNe(e, t) {
  return !e || e.type !== "ExportSpecifier" ? !1 : t == null || (0, We.default)(e, t);
}
function YNe(e, t) {
  return !e || e.type !== "ForOfStatement" ? !1 : t == null || (0, We.default)(e, t);
}
function XNe(e, t) {
  return !e || e.type !== "ImportDeclaration" ? !1 : t == null || (0, We.default)(e, t);
}
function JNe(e, t) {
  return !e || e.type !== "ImportDefaultSpecifier" ? !1 : t == null || (0, We.default)(e, t);
}
function QNe(e, t) {
  return !e || e.type !== "ImportNamespaceSpecifier" ? !1 : t == null || (0, We.default)(e, t);
}
function ZNe(e, t) {
  return !e || e.type !== "ImportSpecifier" ? !1 : t == null || (0, We.default)(e, t);
}
function eDe(e, t) {
  return !e || e.type !== "ImportExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function tDe(e, t) {
  return !e || e.type !== "MetaProperty" ? !1 : t == null || (0, We.default)(e, t);
}
function rDe(e, t) {
  return !e || e.type !== "ClassMethod" ? !1 : t == null || (0, We.default)(e, t);
}
function iDe(e, t) {
  return !e || e.type !== "ObjectPattern" ? !1 : t == null || (0, We.default)(e, t);
}
function nDe(e, t) {
  return !e || e.type !== "SpreadElement" ? !1 : t == null || (0, We.default)(e, t);
}
function sDe(e, t) {
  return !e || e.type !== "Super" ? !1 : t == null || (0, We.default)(e, t);
}
function aDe(e, t) {
  return !e || e.type !== "TaggedTemplateExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function oDe(e, t) {
  return !e || e.type !== "TemplateElement" ? !1 : t == null || (0, We.default)(e, t);
}
function lDe(e, t) {
  return !e || e.type !== "TemplateLiteral" ? !1 : t == null || (0, We.default)(e, t);
}
function uDe(e, t) {
  return !e || e.type !== "YieldExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function cDe(e, t) {
  return !e || e.type !== "AwaitExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function pDe(e, t) {
  return !e || e.type !== "Import" ? !1 : t == null || (0, We.default)(e, t);
}
function fDe(e, t) {
  return !e || e.type !== "BigIntLiteral" ? !1 : t == null || (0, We.default)(e, t);
}
function hDe(e, t) {
  return !e || e.type !== "ExportNamespaceSpecifier" ? !1 : t == null || (0, We.default)(e, t);
}
function dDe(e, t) {
  return !e || e.type !== "OptionalMemberExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function mDe(e, t) {
  return !e || e.type !== "OptionalCallExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function yDe(e, t) {
  return !e || e.type !== "ClassProperty" ? !1 : t == null || (0, We.default)(e, t);
}
function gDe(e, t) {
  return !e || e.type !== "ClassAccessorProperty" ? !1 : t == null || (0, We.default)(e, t);
}
function bDe(e, t) {
  return !e || e.type !== "ClassPrivateProperty" ? !1 : t == null || (0, We.default)(e, t);
}
function vDe(e, t) {
  return !e || e.type !== "ClassPrivateMethod" ? !1 : t == null || (0, We.default)(e, t);
}
function TDe(e, t) {
  return !e || e.type !== "PrivateName" ? !1 : t == null || (0, We.default)(e, t);
}
function SDe(e, t) {
  return !e || e.type !== "StaticBlock" ? !1 : t == null || (0, We.default)(e, t);
}
function xDe(e, t) {
  return !e || e.type !== "AnyTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function EDe(e, t) {
  return !e || e.type !== "ArrayTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function PDe(e, t) {
  return !e || e.type !== "BooleanTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function wDe(e, t) {
  return !e || e.type !== "BooleanLiteralTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function ADe(e, t) {
  return !e || e.type !== "NullLiteralTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function CDe(e, t) {
  return !e || e.type !== "ClassImplements" ? !1 : t == null || (0, We.default)(e, t);
}
function _De(e, t) {
  return !e || e.type !== "DeclareClass" ? !1 : t == null || (0, We.default)(e, t);
}
function IDe(e, t) {
  return !e || e.type !== "DeclareFunction" ? !1 : t == null || (0, We.default)(e, t);
}
function kDe(e, t) {
  return !e || e.type !== "DeclareInterface" ? !1 : t == null || (0, We.default)(e, t);
}
function ODe(e, t) {
  return !e || e.type !== "DeclareModule" ? !1 : t == null || (0, We.default)(e, t);
}
function NDe(e, t) {
  return !e || e.type !== "DeclareModuleExports" ? !1 : t == null || (0, We.default)(e, t);
}
function DDe(e, t) {
  return !e || e.type !== "DeclareTypeAlias" ? !1 : t == null || (0, We.default)(e, t);
}
function LDe(e, t) {
  return !e || e.type !== "DeclareOpaqueType" ? !1 : t == null || (0, We.default)(e, t);
}
function MDe(e, t) {
  return !e || e.type !== "DeclareVariable" ? !1 : t == null || (0, We.default)(e, t);
}
function RDe(e, t) {
  return !e || e.type !== "DeclareExportDeclaration" ? !1 : t == null || (0, We.default)(e, t);
}
function BDe(e, t) {
  return !e || e.type !== "DeclareExportAllDeclaration" ? !1 : t == null || (0, We.default)(e, t);
}
function FDe(e, t) {
  return !e || e.type !== "DeclaredPredicate" ? !1 : t == null || (0, We.default)(e, t);
}
function jDe(e, t) {
  return !e || e.type !== "ExistsTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function $De(e, t) {
  return !e || e.type !== "FunctionTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function UDe(e, t) {
  return !e || e.type !== "FunctionTypeParam" ? !1 : t == null || (0, We.default)(e, t);
}
function qDe(e, t) {
  return !e || e.type !== "GenericTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function VDe(e, t) {
  return !e || e.type !== "InferredPredicate" ? !1 : t == null || (0, We.default)(e, t);
}
function WDe(e, t) {
  return !e || e.type !== "InterfaceExtends" ? !1 : t == null || (0, We.default)(e, t);
}
function HDe(e, t) {
  return !e || e.type !== "InterfaceDeclaration" ? !1 : t == null || (0, We.default)(e, t);
}
function KDe(e, t) {
  return !e || e.type !== "InterfaceTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function zDe(e, t) {
  return !e || e.type !== "IntersectionTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function GDe(e, t) {
  return !e || e.type !== "MixedTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function YDe(e, t) {
  return !e || e.type !== "EmptyTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function XDe(e, t) {
  return !e || e.type !== "NullableTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function JDe(e, t) {
  return !e || e.type !== "NumberLiteralTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function QDe(e, t) {
  return !e || e.type !== "NumberTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function ZDe(e, t) {
  return !e || e.type !== "ObjectTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function eLe(e, t) {
  return !e || e.type !== "ObjectTypeInternalSlot" ? !1 : t == null || (0, We.default)(e, t);
}
function tLe(e, t) {
  return !e || e.type !== "ObjectTypeCallProperty" ? !1 : t == null || (0, We.default)(e, t);
}
function rLe(e, t) {
  return !e || e.type !== "ObjectTypeIndexer" ? !1 : t == null || (0, We.default)(e, t);
}
function iLe(e, t) {
  return !e || e.type !== "ObjectTypeProperty" ? !1 : t == null || (0, We.default)(e, t);
}
function nLe(e, t) {
  return !e || e.type !== "ObjectTypeSpreadProperty" ? !1 : t == null || (0, We.default)(e, t);
}
function sLe(e, t) {
  return !e || e.type !== "OpaqueType" ? !1 : t == null || (0, We.default)(e, t);
}
function aLe(e, t) {
  return !e || e.type !== "QualifiedTypeIdentifier" ? !1 : t == null || (0, We.default)(e, t);
}
function oLe(e, t) {
  return !e || e.type !== "StringLiteralTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function lLe(e, t) {
  return !e || e.type !== "StringTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function uLe(e, t) {
  return !e || e.type !== "SymbolTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function cLe(e, t) {
  return !e || e.type !== "ThisTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function pLe(e, t) {
  return !e || e.type !== "TupleTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function fLe(e, t) {
  return !e || e.type !== "TypeofTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function hLe(e, t) {
  return !e || e.type !== "TypeAlias" ? !1 : t == null || (0, We.default)(e, t);
}
function dLe(e, t) {
  return !e || e.type !== "TypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function mLe(e, t) {
  return !e || e.type !== "TypeCastExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function yLe(e, t) {
  return !e || e.type !== "TypeParameter" ? !1 : t == null || (0, We.default)(e, t);
}
function gLe(e, t) {
  return !e || e.type !== "TypeParameterDeclaration" ? !1 : t == null || (0, We.default)(e, t);
}
function bLe(e, t) {
  return !e || e.type !== "TypeParameterInstantiation" ? !1 : t == null || (0, We.default)(e, t);
}
function vLe(e, t) {
  return !e || e.type !== "UnionTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function TLe(e, t) {
  return !e || e.type !== "Variance" ? !1 : t == null || (0, We.default)(e, t);
}
function SLe(e, t) {
  return !e || e.type !== "VoidTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function xLe(e, t) {
  return !e || e.type !== "EnumDeclaration" ? !1 : t == null || (0, We.default)(e, t);
}
function ELe(e, t) {
  return !e || e.type !== "EnumBooleanBody" ? !1 : t == null || (0, We.default)(e, t);
}
function PLe(e, t) {
  return !e || e.type !== "EnumNumberBody" ? !1 : t == null || (0, We.default)(e, t);
}
function wLe(e, t) {
  return !e || e.type !== "EnumStringBody" ? !1 : t == null || (0, We.default)(e, t);
}
function ALe(e, t) {
  return !e || e.type !== "EnumSymbolBody" ? !1 : t == null || (0, We.default)(e, t);
}
function CLe(e, t) {
  return !e || e.type !== "EnumBooleanMember" ? !1 : t == null || (0, We.default)(e, t);
}
function _Le(e, t) {
  return !e || e.type !== "EnumNumberMember" ? !1 : t == null || (0, We.default)(e, t);
}
function ILe(e, t) {
  return !e || e.type !== "EnumStringMember" ? !1 : t == null || (0, We.default)(e, t);
}
function kLe(e, t) {
  return !e || e.type !== "EnumDefaultedMember" ? !1 : t == null || (0, We.default)(e, t);
}
function OLe(e, t) {
  return !e || e.type !== "IndexedAccessType" ? !1 : t == null || (0, We.default)(e, t);
}
function NLe(e, t) {
  return !e || e.type !== "OptionalIndexedAccessType" ? !1 : t == null || (0, We.default)(e, t);
}
function DLe(e, t) {
  return !e || e.type !== "JSXAttribute" ? !1 : t == null || (0, We.default)(e, t);
}
function LLe(e, t) {
  return !e || e.type !== "JSXClosingElement" ? !1 : t == null || (0, We.default)(e, t);
}
function MLe(e, t) {
  return !e || e.type !== "JSXElement" ? !1 : t == null || (0, We.default)(e, t);
}
function RLe(e, t) {
  return !e || e.type !== "JSXEmptyExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function BLe(e, t) {
  return !e || e.type !== "JSXExpressionContainer" ? !1 : t == null || (0, We.default)(e, t);
}
function FLe(e, t) {
  return !e || e.type !== "JSXSpreadChild" ? !1 : t == null || (0, We.default)(e, t);
}
function jLe(e, t) {
  return !e || e.type !== "JSXIdentifier" ? !1 : t == null || (0, We.default)(e, t);
}
function $Le(e, t) {
  return !e || e.type !== "JSXMemberExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function ULe(e, t) {
  return !e || e.type !== "JSXNamespacedName" ? !1 : t == null || (0, We.default)(e, t);
}
function qLe(e, t) {
  return !e || e.type !== "JSXOpeningElement" ? !1 : t == null || (0, We.default)(e, t);
}
function VLe(e, t) {
  return !e || e.type !== "JSXSpreadAttribute" ? !1 : t == null || (0, We.default)(e, t);
}
function WLe(e, t) {
  return !e || e.type !== "JSXText" ? !1 : t == null || (0, We.default)(e, t);
}
function HLe(e, t) {
  return !e || e.type !== "JSXFragment" ? !1 : t == null || (0, We.default)(e, t);
}
function KLe(e, t) {
  return !e || e.type !== "JSXOpeningFragment" ? !1 : t == null || (0, We.default)(e, t);
}
function zLe(e, t) {
  return !e || e.type !== "JSXClosingFragment" ? !1 : t == null || (0, We.default)(e, t);
}
function GLe(e, t) {
  return !e || e.type !== "Noop" ? !1 : t == null || (0, We.default)(e, t);
}
function YLe(e, t) {
  return !e || e.type !== "Placeholder" ? !1 : t == null || (0, We.default)(e, t);
}
function XLe(e, t) {
  return !e || e.type !== "V8IntrinsicIdentifier" ? !1 : t == null || (0, We.default)(e, t);
}
function JLe(e, t) {
  return !e || e.type !== "ArgumentPlaceholder" ? !1 : t == null || (0, We.default)(e, t);
}
function QLe(e, t) {
  return !e || e.type !== "BindExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function ZLe(e, t) {
  return !e || e.type !== "ImportAttribute" ? !1 : t == null || (0, We.default)(e, t);
}
function eMe(e, t) {
  return !e || e.type !== "Decorator" ? !1 : t == null || (0, We.default)(e, t);
}
function tMe(e, t) {
  return !e || e.type !== "DoExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function rMe(e, t) {
  return !e || e.type !== "ExportDefaultSpecifier" ? !1 : t == null || (0, We.default)(e, t);
}
function iMe(e, t) {
  return !e || e.type !== "RecordExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function nMe(e, t) {
  return !e || e.type !== "TupleExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function sMe(e, t) {
  return !e || e.type !== "DecimalLiteral" ? !1 : t == null || (0, We.default)(e, t);
}
function aMe(e, t) {
  return !e || e.type !== "ModuleExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function oMe(e, t) {
  return !e || e.type !== "TopicReference" ? !1 : t == null || (0, We.default)(e, t);
}
function lMe(e, t) {
  return !e || e.type !== "PipelineTopicExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function uMe(e, t) {
  return !e || e.type !== "PipelineBareFunction" ? !1 : t == null || (0, We.default)(e, t);
}
function cMe(e, t) {
  return !e || e.type !== "PipelinePrimaryTopicReference" ? !1 : t == null || (0, We.default)(e, t);
}
function pMe(e, t) {
  return !e || e.type !== "TSParameterProperty" ? !1 : t == null || (0, We.default)(e, t);
}
function fMe(e, t) {
  return !e || e.type !== "TSDeclareFunction" ? !1 : t == null || (0, We.default)(e, t);
}
function hMe(e, t) {
  return !e || e.type !== "TSDeclareMethod" ? !1 : t == null || (0, We.default)(e, t);
}
function dMe(e, t) {
  return !e || e.type !== "TSQualifiedName" ? !1 : t == null || (0, We.default)(e, t);
}
function mMe(e, t) {
  return !e || e.type !== "TSCallSignatureDeclaration" ? !1 : t == null || (0, We.default)(e, t);
}
function yMe(e, t) {
  return !e || e.type !== "TSConstructSignatureDeclaration" ? !1 : t == null || (0, We.default)(e, t);
}
function gMe(e, t) {
  return !e || e.type !== "TSPropertySignature" ? !1 : t == null || (0, We.default)(e, t);
}
function bMe(e, t) {
  return !e || e.type !== "TSMethodSignature" ? !1 : t == null || (0, We.default)(e, t);
}
function vMe(e, t) {
  return !e || e.type !== "TSIndexSignature" ? !1 : t == null || (0, We.default)(e, t);
}
function TMe(e, t) {
  return !e || e.type !== "TSAnyKeyword" ? !1 : t == null || (0, We.default)(e, t);
}
function SMe(e, t) {
  return !e || e.type !== "TSBooleanKeyword" ? !1 : t == null || (0, We.default)(e, t);
}
function xMe(e, t) {
  return !e || e.type !== "TSBigIntKeyword" ? !1 : t == null || (0, We.default)(e, t);
}
function EMe(e, t) {
  return !e || e.type !== "TSIntrinsicKeyword" ? !1 : t == null || (0, We.default)(e, t);
}
function PMe(e, t) {
  return !e || e.type !== "TSNeverKeyword" ? !1 : t == null || (0, We.default)(e, t);
}
function wMe(e, t) {
  return !e || e.type !== "TSNullKeyword" ? !1 : t == null || (0, We.default)(e, t);
}
function AMe(e, t) {
  return !e || e.type !== "TSNumberKeyword" ? !1 : t == null || (0, We.default)(e, t);
}
function CMe(e, t) {
  return !e || e.type !== "TSObjectKeyword" ? !1 : t == null || (0, We.default)(e, t);
}
function _Me(e, t) {
  return !e || e.type !== "TSStringKeyword" ? !1 : t == null || (0, We.default)(e, t);
}
function IMe(e, t) {
  return !e || e.type !== "TSSymbolKeyword" ? !1 : t == null || (0, We.default)(e, t);
}
function kMe(e, t) {
  return !e || e.type !== "TSUndefinedKeyword" ? !1 : t == null || (0, We.default)(e, t);
}
function OMe(e, t) {
  return !e || e.type !== "TSUnknownKeyword" ? !1 : t == null || (0, We.default)(e, t);
}
function NMe(e, t) {
  return !e || e.type !== "TSVoidKeyword" ? !1 : t == null || (0, We.default)(e, t);
}
function DMe(e, t) {
  return !e || e.type !== "TSThisType" ? !1 : t == null || (0, We.default)(e, t);
}
function LMe(e, t) {
  return !e || e.type !== "TSFunctionType" ? !1 : t == null || (0, We.default)(e, t);
}
function MMe(e, t) {
  return !e || e.type !== "TSConstructorType" ? !1 : t == null || (0, We.default)(e, t);
}
function RMe(e, t) {
  return !e || e.type !== "TSTypeReference" ? !1 : t == null || (0, We.default)(e, t);
}
function BMe(e, t) {
  return !e || e.type !== "TSTypePredicate" ? !1 : t == null || (0, We.default)(e, t);
}
function FMe(e, t) {
  return !e || e.type !== "TSTypeQuery" ? !1 : t == null || (0, We.default)(e, t);
}
function jMe(e, t) {
  return !e || e.type !== "TSTypeLiteral" ? !1 : t == null || (0, We.default)(e, t);
}
function $Me(e, t) {
  return !e || e.type !== "TSArrayType" ? !1 : t == null || (0, We.default)(e, t);
}
function UMe(e, t) {
  return !e || e.type !== "TSTupleType" ? !1 : t == null || (0, We.default)(e, t);
}
function qMe(e, t) {
  return !e || e.type !== "TSOptionalType" ? !1 : t == null || (0, We.default)(e, t);
}
function VMe(e, t) {
  return !e || e.type !== "TSRestType" ? !1 : t == null || (0, We.default)(e, t);
}
function WMe(e, t) {
  return !e || e.type !== "TSNamedTupleMember" ? !1 : t == null || (0, We.default)(e, t);
}
function HMe(e, t) {
  return !e || e.type !== "TSUnionType" ? !1 : t == null || (0, We.default)(e, t);
}
function KMe(e, t) {
  return !e || e.type !== "TSIntersectionType" ? !1 : t == null || (0, We.default)(e, t);
}
function zMe(e, t) {
  return !e || e.type !== "TSConditionalType" ? !1 : t == null || (0, We.default)(e, t);
}
function GMe(e, t) {
  return !e || e.type !== "TSInferType" ? !1 : t == null || (0, We.default)(e, t);
}
function YMe(e, t) {
  return !e || e.type !== "TSParenthesizedType" ? !1 : t == null || (0, We.default)(e, t);
}
function XMe(e, t) {
  return !e || e.type !== "TSTypeOperator" ? !1 : t == null || (0, We.default)(e, t);
}
function JMe(e, t) {
  return !e || e.type !== "TSIndexedAccessType" ? !1 : t == null || (0, We.default)(e, t);
}
function QMe(e, t) {
  return !e || e.type !== "TSMappedType" ? !1 : t == null || (0, We.default)(e, t);
}
function ZMe(e, t) {
  return !e || e.type !== "TSLiteralType" ? !1 : t == null || (0, We.default)(e, t);
}
function eRe(e, t) {
  return !e || e.type !== "TSExpressionWithTypeArguments" ? !1 : t == null || (0, We.default)(e, t);
}
function tRe(e, t) {
  return !e || e.type !== "TSInterfaceDeclaration" ? !1 : t == null || (0, We.default)(e, t);
}
function rRe(e, t) {
  return !e || e.type !== "TSInterfaceBody" ? !1 : t == null || (0, We.default)(e, t);
}
function iRe(e, t) {
  return !e || e.type !== "TSTypeAliasDeclaration" ? !1 : t == null || (0, We.default)(e, t);
}
function nRe(e, t) {
  return !e || e.type !== "TSInstantiationExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function sRe(e, t) {
  return !e || e.type !== "TSAsExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function aRe(e, t) {
  return !e || e.type !== "TSSatisfiesExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function oRe(e, t) {
  return !e || e.type !== "TSTypeAssertion" ? !1 : t == null || (0, We.default)(e, t);
}
function lRe(e, t) {
  return !e || e.type !== "TSEnumDeclaration" ? !1 : t == null || (0, We.default)(e, t);
}
function uRe(e, t) {
  return !e || e.type !== "TSEnumMember" ? !1 : t == null || (0, We.default)(e, t);
}
function cRe(e, t) {
  return !e || e.type !== "TSModuleDeclaration" ? !1 : t == null || (0, We.default)(e, t);
}
function pRe(e, t) {
  return !e || e.type !== "TSModuleBlock" ? !1 : t == null || (0, We.default)(e, t);
}
function fRe(e, t) {
  return !e || e.type !== "TSImportType" ? !1 : t == null || (0, We.default)(e, t);
}
function hRe(e, t) {
  return !e || e.type !== "TSImportEqualsDeclaration" ? !1 : t == null || (0, We.default)(e, t);
}
function dRe(e, t) {
  return !e || e.type !== "TSExternalModuleReference" ? !1 : t == null || (0, We.default)(e, t);
}
function mRe(e, t) {
  return !e || e.type !== "TSNonNullExpression" ? !1 : t == null || (0, We.default)(e, t);
}
function yRe(e, t) {
  return !e || e.type !== "TSExportAssignment" ? !1 : t == null || (0, We.default)(e, t);
}
function gRe(e, t) {
  return !e || e.type !== "TSNamespaceExportDeclaration" ? !1 : t == null || (0, We.default)(e, t);
}
function bRe(e, t) {
  return !e || e.type !== "TSTypeAnnotation" ? !1 : t == null || (0, We.default)(e, t);
}
function vRe(e, t) {
  return !e || e.type !== "TSTypeParameterInstantiation" ? !1 : t == null || (0, We.default)(e, t);
}
function TRe(e, t) {
  return !e || e.type !== "TSTypeParameterDeclaration" ? !1 : t == null || (0, We.default)(e, t);
}
function SRe(e, t) {
  return !e || e.type !== "TSTypeParameter" ? !1 : t == null || (0, We.default)(e, t);
}
function xRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ArrayExpression":
    case "AssignmentExpression":
    case "BinaryExpression":
    case "InterpreterDirective":
    case "Directive":
    case "DirectiveLiteral":
    case "BlockStatement":
    case "BreakStatement":
    case "CallExpression":
    case "CatchClause":
    case "ConditionalExpression":
    case "ContinueStatement":
    case "DebuggerStatement":
    case "DoWhileStatement":
    case "EmptyStatement":
    case "ExpressionStatement":
    case "File":
    case "ForInStatement":
    case "ForStatement":
    case "FunctionDeclaration":
    case "FunctionExpression":
    case "Identifier":
    case "IfStatement":
    case "LabeledStatement":
    case "StringLiteral":
    case "NumericLiteral":
    case "NullLiteral":
    case "BooleanLiteral":
    case "RegExpLiteral":
    case "LogicalExpression":
    case "MemberExpression":
    case "NewExpression":
    case "Program":
    case "ObjectExpression":
    case "ObjectMethod":
    case "ObjectProperty":
    case "RestElement":
    case "ReturnStatement":
    case "SequenceExpression":
    case "ParenthesizedExpression":
    case "SwitchCase":
    case "SwitchStatement":
    case "ThisExpression":
    case "ThrowStatement":
    case "TryStatement":
    case "UnaryExpression":
    case "UpdateExpression":
    case "VariableDeclaration":
    case "VariableDeclarator":
    case "WhileStatement":
    case "WithStatement":
    case "AssignmentPattern":
    case "ArrayPattern":
    case "ArrowFunctionExpression":
    case "ClassBody":
    case "ClassExpression":
    case "ClassDeclaration":
    case "ExportAllDeclaration":
    case "ExportDefaultDeclaration":
    case "ExportNamedDeclaration":
    case "ExportSpecifier":
    case "ForOfStatement":
    case "ImportDeclaration":
    case "ImportDefaultSpecifier":
    case "ImportNamespaceSpecifier":
    case "ImportSpecifier":
    case "ImportExpression":
    case "MetaProperty":
    case "ClassMethod":
    case "ObjectPattern":
    case "SpreadElement":
    case "Super":
    case "TaggedTemplateExpression":
    case "TemplateElement":
    case "TemplateLiteral":
    case "YieldExpression":
    case "AwaitExpression":
    case "Import":
    case "BigIntLiteral":
    case "ExportNamespaceSpecifier":
    case "OptionalMemberExpression":
    case "OptionalCallExpression":
    case "ClassProperty":
    case "ClassAccessorProperty":
    case "ClassPrivateProperty":
    case "ClassPrivateMethod":
    case "PrivateName":
    case "StaticBlock":
      break;
    case "Placeholder":
      switch (e.expectedNode) {
        case "Identifier":
        case "StringLiteral":
        case "BlockStatement":
        case "ClassBody":
          break;
        default:
          return !1;
      }
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function ERe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ArrayExpression":
    case "AssignmentExpression":
    case "BinaryExpression":
    case "CallExpression":
    case "ConditionalExpression":
    case "FunctionExpression":
    case "Identifier":
    case "StringLiteral":
    case "NumericLiteral":
    case "NullLiteral":
    case "BooleanLiteral":
    case "RegExpLiteral":
    case "LogicalExpression":
    case "MemberExpression":
    case "NewExpression":
    case "ObjectExpression":
    case "SequenceExpression":
    case "ParenthesizedExpression":
    case "ThisExpression":
    case "UnaryExpression":
    case "UpdateExpression":
    case "ArrowFunctionExpression":
    case "ClassExpression":
    case "ImportExpression":
    case "MetaProperty":
    case "Super":
    case "TaggedTemplateExpression":
    case "TemplateLiteral":
    case "YieldExpression":
    case "AwaitExpression":
    case "Import":
    case "BigIntLiteral":
    case "OptionalMemberExpression":
    case "OptionalCallExpression":
    case "TypeCastExpression":
    case "JSXElement":
    case "JSXFragment":
    case "BindExpression":
    case "DoExpression":
    case "RecordExpression":
    case "TupleExpression":
    case "DecimalLiteral":
    case "ModuleExpression":
    case "TopicReference":
    case "PipelineTopicExpression":
    case "PipelineBareFunction":
    case "PipelinePrimaryTopicReference":
    case "TSInstantiationExpression":
    case "TSAsExpression":
    case "TSSatisfiesExpression":
    case "TSTypeAssertion":
    case "TSNonNullExpression":
      break;
    case "Placeholder":
      switch (e.expectedNode) {
        case "Expression":
        case "Identifier":
        case "StringLiteral":
          break;
        default:
          return !1;
      }
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function PRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "BinaryExpression":
    case "LogicalExpression":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function wRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "BlockStatement":
    case "CatchClause":
    case "DoWhileStatement":
    case "ForInStatement":
    case "ForStatement":
    case "FunctionDeclaration":
    case "FunctionExpression":
    case "Program":
    case "ObjectMethod":
    case "SwitchStatement":
    case "WhileStatement":
    case "ArrowFunctionExpression":
    case "ClassExpression":
    case "ClassDeclaration":
    case "ForOfStatement":
    case "ClassMethod":
    case "ClassPrivateMethod":
    case "StaticBlock":
    case "TSModuleBlock":
      break;
    case "Placeholder":
      if (e.expectedNode === "BlockStatement")
        break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function ARe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "BlockStatement":
    case "CatchClause":
    case "DoWhileStatement":
    case "ForInStatement":
    case "ForStatement":
    case "FunctionDeclaration":
    case "FunctionExpression":
    case "Program":
    case "ObjectMethod":
    case "SwitchStatement":
    case "WhileStatement":
    case "ArrowFunctionExpression":
    case "ForOfStatement":
    case "ClassMethod":
    case "ClassPrivateMethod":
    case "StaticBlock":
    case "TSModuleBlock":
      break;
    case "Placeholder":
      if (e.expectedNode === "BlockStatement")
        break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function CRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "BlockStatement":
    case "Program":
    case "TSModuleBlock":
      break;
    case "Placeholder":
      if (e.expectedNode === "BlockStatement")
        break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function _Re(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "BlockStatement":
    case "BreakStatement":
    case "ContinueStatement":
    case "DebuggerStatement":
    case "DoWhileStatement":
    case "EmptyStatement":
    case "ExpressionStatement":
    case "ForInStatement":
    case "ForStatement":
    case "FunctionDeclaration":
    case "IfStatement":
    case "LabeledStatement":
    case "ReturnStatement":
    case "SwitchStatement":
    case "ThrowStatement":
    case "TryStatement":
    case "VariableDeclaration":
    case "WhileStatement":
    case "WithStatement":
    case "ClassDeclaration":
    case "ExportAllDeclaration":
    case "ExportDefaultDeclaration":
    case "ExportNamedDeclaration":
    case "ForOfStatement":
    case "ImportDeclaration":
    case "DeclareClass":
    case "DeclareFunction":
    case "DeclareInterface":
    case "DeclareModule":
    case "DeclareModuleExports":
    case "DeclareTypeAlias":
    case "DeclareOpaqueType":
    case "DeclareVariable":
    case "DeclareExportDeclaration":
    case "DeclareExportAllDeclaration":
    case "InterfaceDeclaration":
    case "OpaqueType":
    case "TypeAlias":
    case "EnumDeclaration":
    case "TSDeclareFunction":
    case "TSInterfaceDeclaration":
    case "TSTypeAliasDeclaration":
    case "TSEnumDeclaration":
    case "TSModuleDeclaration":
    case "TSImportEqualsDeclaration":
    case "TSExportAssignment":
    case "TSNamespaceExportDeclaration":
      break;
    case "Placeholder":
      switch (e.expectedNode) {
        case "Statement":
        case "Declaration":
        case "BlockStatement":
          break;
        default:
          return !1;
      }
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function IRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "BreakStatement":
    case "ContinueStatement":
    case "ReturnStatement":
    case "ThrowStatement":
    case "YieldExpression":
    case "AwaitExpression":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function kRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "BreakStatement":
    case "ContinueStatement":
    case "ReturnStatement":
    case "ThrowStatement":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function ORe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ConditionalExpression":
    case "IfStatement":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function NRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "DoWhileStatement":
    case "ForInStatement":
    case "ForStatement":
    case "WhileStatement":
    case "ForOfStatement":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function DRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "DoWhileStatement":
    case "WhileStatement":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function LRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ExpressionStatement":
    case "ParenthesizedExpression":
    case "TypeCastExpression":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function MRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ForInStatement":
    case "ForStatement":
    case "ForOfStatement":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function RRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ForInStatement":
    case "ForOfStatement":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function BRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "FunctionDeclaration":
    case "FunctionExpression":
    case "ObjectMethod":
    case "ArrowFunctionExpression":
    case "ClassMethod":
    case "ClassPrivateMethod":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function FRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "FunctionDeclaration":
    case "FunctionExpression":
    case "ObjectMethod":
    case "ArrowFunctionExpression":
    case "ClassMethod":
    case "ClassPrivateMethod":
    case "StaticBlock":
    case "TSModuleBlock":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function jRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "FunctionDeclaration":
    case "FunctionExpression":
    case "StringLiteral":
    case "NumericLiteral":
    case "NullLiteral":
    case "BooleanLiteral":
    case "RegExpLiteral":
    case "ArrowFunctionExpression":
    case "BigIntLiteral":
    case "DecimalLiteral":
      break;
    case "Placeholder":
      if (e.expectedNode === "StringLiteral")
        break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function $Re(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "FunctionDeclaration":
    case "VariableDeclaration":
    case "ClassDeclaration":
    case "ExportAllDeclaration":
    case "ExportDefaultDeclaration":
    case "ExportNamedDeclaration":
    case "ImportDeclaration":
    case "DeclareClass":
    case "DeclareFunction":
    case "DeclareInterface":
    case "DeclareModule":
    case "DeclareModuleExports":
    case "DeclareTypeAlias":
    case "DeclareOpaqueType":
    case "DeclareVariable":
    case "DeclareExportDeclaration":
    case "DeclareExportAllDeclaration":
    case "InterfaceDeclaration":
    case "OpaqueType":
    case "TypeAlias":
    case "EnumDeclaration":
    case "TSDeclareFunction":
    case "TSInterfaceDeclaration":
    case "TSTypeAliasDeclaration":
    case "TSEnumDeclaration":
    case "TSModuleDeclaration":
      break;
    case "Placeholder":
      if (e.expectedNode === "Declaration")
        break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function URe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "Identifier":
    case "RestElement":
    case "AssignmentPattern":
    case "ArrayPattern":
    case "ObjectPattern":
    case "TSAsExpression":
    case "TSSatisfiesExpression":
    case "TSTypeAssertion":
    case "TSNonNullExpression":
      break;
    case "Placeholder":
      switch (e.expectedNode) {
        case "Pattern":
        case "Identifier":
          break;
        default:
          return !1;
      }
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function qRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "Identifier":
    case "MemberExpression":
    case "RestElement":
    case "AssignmentPattern":
    case "ArrayPattern":
    case "ObjectPattern":
    case "TSParameterProperty":
    case "TSAsExpression":
    case "TSSatisfiesExpression":
    case "TSTypeAssertion":
    case "TSNonNullExpression":
      break;
    case "Placeholder":
      switch (e.expectedNode) {
        case "Pattern":
        case "Identifier":
          break;
        default:
          return !1;
      }
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function VRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "Identifier":
    case "TSQualifiedName":
      break;
    case "Placeholder":
      if (e.expectedNode === "Identifier")
        break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function WRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "StringLiteral":
    case "NumericLiteral":
    case "NullLiteral":
    case "BooleanLiteral":
    case "RegExpLiteral":
    case "TemplateLiteral":
    case "BigIntLiteral":
    case "DecimalLiteral":
      break;
    case "Placeholder":
      if (e.expectedNode === "StringLiteral")
        break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function HRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "StringLiteral":
    case "NumericLiteral":
    case "NullLiteral":
    case "BooleanLiteral":
    case "BigIntLiteral":
    case "JSXAttribute":
    case "JSXClosingElement":
    case "JSXElement":
    case "JSXExpressionContainer":
    case "JSXSpreadChild":
    case "JSXOpeningElement":
    case "JSXText":
    case "JSXFragment":
    case "JSXOpeningFragment":
    case "JSXClosingFragment":
    case "DecimalLiteral":
      break;
    case "Placeholder":
      if (e.expectedNode === "StringLiteral")
        break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function KRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ObjectMethod":
    case "ObjectProperty":
    case "ObjectTypeInternalSlot":
    case "ObjectTypeCallProperty":
    case "ObjectTypeIndexer":
    case "ObjectTypeProperty":
    case "ObjectTypeSpreadProperty":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function zRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ObjectMethod":
    case "ClassMethod":
    case "ClassPrivateMethod":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function GRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ObjectMethod":
    case "ObjectProperty":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function YRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ObjectProperty":
    case "ClassProperty":
    case "ClassAccessorProperty":
    case "ClassPrivateProperty":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function XRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "UnaryExpression":
    case "SpreadElement":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function JRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "AssignmentPattern":
    case "ArrayPattern":
    case "ObjectPattern":
      break;
    case "Placeholder":
      if (e.expectedNode === "Pattern")
        break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function QRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ClassExpression":
    case "ClassDeclaration":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function Lpe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ExportAllDeclaration":
    case "ExportDefaultDeclaration":
    case "ExportNamedDeclaration":
    case "ImportDeclaration":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function ZRe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ExportAllDeclaration":
    case "ExportDefaultDeclaration":
    case "ExportNamedDeclaration":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function e3e(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ExportSpecifier":
    case "ImportDefaultSpecifier":
    case "ImportNamespaceSpecifier":
    case "ImportSpecifier":
    case "ExportNamespaceSpecifier":
    case "ExportDefaultSpecifier":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function t3e(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ClassAccessorProperty":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function r3e(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ClassPrivateProperty":
    case "ClassPrivateMethod":
    case "PrivateName":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function i3e(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "AnyTypeAnnotation":
    case "ArrayTypeAnnotation":
    case "BooleanTypeAnnotation":
    case "BooleanLiteralTypeAnnotation":
    case "NullLiteralTypeAnnotation":
    case "ClassImplements":
    case "DeclareClass":
    case "DeclareFunction":
    case "DeclareInterface":
    case "DeclareModule":
    case "DeclareModuleExports":
    case "DeclareTypeAlias":
    case "DeclareOpaqueType":
    case "DeclareVariable":
    case "DeclareExportDeclaration":
    case "DeclareExportAllDeclaration":
    case "DeclaredPredicate":
    case "ExistsTypeAnnotation":
    case "FunctionTypeAnnotation":
    case "FunctionTypeParam":
    case "GenericTypeAnnotation":
    case "InferredPredicate":
    case "InterfaceExtends":
    case "InterfaceDeclaration":
    case "InterfaceTypeAnnotation":
    case "IntersectionTypeAnnotation":
    case "MixedTypeAnnotation":
    case "EmptyTypeAnnotation":
    case "NullableTypeAnnotation":
    case "NumberLiteralTypeAnnotation":
    case "NumberTypeAnnotation":
    case "ObjectTypeAnnotation":
    case "ObjectTypeInternalSlot":
    case "ObjectTypeCallProperty":
    case "ObjectTypeIndexer":
    case "ObjectTypeProperty":
    case "ObjectTypeSpreadProperty":
    case "OpaqueType":
    case "QualifiedTypeIdentifier":
    case "StringLiteralTypeAnnotation":
    case "StringTypeAnnotation":
    case "SymbolTypeAnnotation":
    case "ThisTypeAnnotation":
    case "TupleTypeAnnotation":
    case "TypeofTypeAnnotation":
    case "TypeAlias":
    case "TypeAnnotation":
    case "TypeCastExpression":
    case "TypeParameter":
    case "TypeParameterDeclaration":
    case "TypeParameterInstantiation":
    case "UnionTypeAnnotation":
    case "Variance":
    case "VoidTypeAnnotation":
    case "EnumDeclaration":
    case "EnumBooleanBody":
    case "EnumNumberBody":
    case "EnumStringBody":
    case "EnumSymbolBody":
    case "EnumBooleanMember":
    case "EnumNumberMember":
    case "EnumStringMember":
    case "EnumDefaultedMember":
    case "IndexedAccessType":
    case "OptionalIndexedAccessType":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function n3e(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "AnyTypeAnnotation":
    case "ArrayTypeAnnotation":
    case "BooleanTypeAnnotation":
    case "BooleanLiteralTypeAnnotation":
    case "NullLiteralTypeAnnotation":
    case "ExistsTypeAnnotation":
    case "FunctionTypeAnnotation":
    case "GenericTypeAnnotation":
    case "InterfaceTypeAnnotation":
    case "IntersectionTypeAnnotation":
    case "MixedTypeAnnotation":
    case "EmptyTypeAnnotation":
    case "NullableTypeAnnotation":
    case "NumberLiteralTypeAnnotation":
    case "NumberTypeAnnotation":
    case "ObjectTypeAnnotation":
    case "StringLiteralTypeAnnotation":
    case "StringTypeAnnotation":
    case "SymbolTypeAnnotation":
    case "ThisTypeAnnotation":
    case "TupleTypeAnnotation":
    case "TypeofTypeAnnotation":
    case "UnionTypeAnnotation":
    case "VoidTypeAnnotation":
    case "IndexedAccessType":
    case "OptionalIndexedAccessType":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function s3e(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "AnyTypeAnnotation":
    case "BooleanTypeAnnotation":
    case "NullLiteralTypeAnnotation":
    case "MixedTypeAnnotation":
    case "EmptyTypeAnnotation":
    case "NumberTypeAnnotation":
    case "StringTypeAnnotation":
    case "SymbolTypeAnnotation":
    case "ThisTypeAnnotation":
    case "VoidTypeAnnotation":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function a3e(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "DeclareClass":
    case "DeclareFunction":
    case "DeclareInterface":
    case "DeclareModule":
    case "DeclareModuleExports":
    case "DeclareTypeAlias":
    case "DeclareOpaqueType":
    case "DeclareVariable":
    case "DeclareExportDeclaration":
    case "DeclareExportAllDeclaration":
    case "InterfaceDeclaration":
    case "OpaqueType":
    case "TypeAlias":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function o3e(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "DeclaredPredicate":
    case "InferredPredicate":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function l3e(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "EnumBooleanBody":
    case "EnumNumberBody":
    case "EnumStringBody":
    case "EnumSymbolBody":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function u3e(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "EnumBooleanMember":
    case "EnumNumberMember":
    case "EnumStringMember":
    case "EnumDefaultedMember":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function c3e(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "JSXAttribute":
    case "JSXClosingElement":
    case "JSXElement":
    case "JSXEmptyExpression":
    case "JSXExpressionContainer":
    case "JSXSpreadChild":
    case "JSXIdentifier":
    case "JSXMemberExpression":
    case "JSXNamespacedName":
    case "JSXOpeningElement":
    case "JSXSpreadAttribute":
    case "JSXText":
    case "JSXFragment":
    case "JSXOpeningFragment":
    case "JSXClosingFragment":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function p3e(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "Noop":
    case "Placeholder":
    case "V8IntrinsicIdentifier":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function f3e(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "TSParameterProperty":
    case "TSDeclareFunction":
    case "TSDeclareMethod":
    case "TSQualifiedName":
    case "TSCallSignatureDeclaration":
    case "TSConstructSignatureDeclaration":
    case "TSPropertySignature":
    case "TSMethodSignature":
    case "TSIndexSignature":
    case "TSAnyKeyword":
    case "TSBooleanKeyword":
    case "TSBigIntKeyword":
    case "TSIntrinsicKeyword":
    case "TSNeverKeyword":
    case "TSNullKeyword":
    case "TSNumberKeyword":
    case "TSObjectKeyword":
    case "TSStringKeyword":
    case "TSSymbolKeyword":
    case "TSUndefinedKeyword":
    case "TSUnknownKeyword":
    case "TSVoidKeyword":
    case "TSThisType":
    case "TSFunctionType":
    case "TSConstructorType":
    case "TSTypeReference":
    case "TSTypePredicate":
    case "TSTypeQuery":
    case "TSTypeLiteral":
    case "TSArrayType":
    case "TSTupleType":
    case "TSOptionalType":
    case "TSRestType":
    case "TSNamedTupleMember":
    case "TSUnionType":
    case "TSIntersectionType":
    case "TSConditionalType":
    case "TSInferType":
    case "TSParenthesizedType":
    case "TSTypeOperator":
    case "TSIndexedAccessType":
    case "TSMappedType":
    case "TSLiteralType":
    case "TSExpressionWithTypeArguments":
    case "TSInterfaceDeclaration":
    case "TSInterfaceBody":
    case "TSTypeAliasDeclaration":
    case "TSInstantiationExpression":
    case "TSAsExpression":
    case "TSSatisfiesExpression":
    case "TSTypeAssertion":
    case "TSEnumDeclaration":
    case "TSEnumMember":
    case "TSModuleDeclaration":
    case "TSModuleBlock":
    case "TSImportType":
    case "TSImportEqualsDeclaration":
    case "TSExternalModuleReference":
    case "TSNonNullExpression":
    case "TSExportAssignment":
    case "TSNamespaceExportDeclaration":
    case "TSTypeAnnotation":
    case "TSTypeParameterInstantiation":
    case "TSTypeParameterDeclaration":
    case "TSTypeParameter":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function h3e(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "TSCallSignatureDeclaration":
    case "TSConstructSignatureDeclaration":
    case "TSPropertySignature":
    case "TSMethodSignature":
    case "TSIndexSignature":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function d3e(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "TSAnyKeyword":
    case "TSBooleanKeyword":
    case "TSBigIntKeyword":
    case "TSIntrinsicKeyword":
    case "TSNeverKeyword":
    case "TSNullKeyword":
    case "TSNumberKeyword":
    case "TSObjectKeyword":
    case "TSStringKeyword":
    case "TSSymbolKeyword":
    case "TSUndefinedKeyword":
    case "TSUnknownKeyword":
    case "TSVoidKeyword":
    case "TSThisType":
    case "TSFunctionType":
    case "TSConstructorType":
    case "TSTypeReference":
    case "TSTypePredicate":
    case "TSTypeQuery":
    case "TSTypeLiteral":
    case "TSArrayType":
    case "TSTupleType":
    case "TSOptionalType":
    case "TSRestType":
    case "TSUnionType":
    case "TSIntersectionType":
    case "TSConditionalType":
    case "TSInferType":
    case "TSParenthesizedType":
    case "TSTypeOperator":
    case "TSIndexedAccessType":
    case "TSMappedType":
    case "TSLiteralType":
    case "TSExpressionWithTypeArguments":
    case "TSImportType":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function m3e(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "TSAnyKeyword":
    case "TSBooleanKeyword":
    case "TSBigIntKeyword":
    case "TSIntrinsicKeyword":
    case "TSNeverKeyword":
    case "TSNullKeyword":
    case "TSNumberKeyword":
    case "TSObjectKeyword":
    case "TSStringKeyword":
    case "TSSymbolKeyword":
    case "TSUndefinedKeyword":
    case "TSUnknownKeyword":
    case "TSVoidKeyword":
    case "TSThisType":
    case "TSLiteralType":
      break;
    default:
      return !1;
  }
  return t == null || (0, We.default)(e, t);
}
function y3e(e, t) {
  return (0, OT.default)("isNumberLiteral", "isNumericLiteral"), !e || e.type !== "NumberLiteral" ? !1 : t == null || (0, We.default)(e, t);
}
function g3e(e, t) {
  return (0, OT.default)("isRegexLiteral", "isRegExpLiteral"), !e || e.type !== "RegexLiteral" ? !1 : t == null || (0, We.default)(e, t);
}
function b3e(e, t) {
  return (0, OT.default)("isRestProperty", "isRestElement"), !e || e.type !== "RestProperty" ? !1 : t == null || (0, We.default)(e, t);
}
function v3e(e, t) {
  return (0, OT.default)("isSpreadProperty", "isSpreadElement"), !e || e.type !== "SpreadProperty" ? !1 : t == null || (0, We.default)(e, t);
}
function T3e(e, t) {
  return (0, OT.default)("isModuleDeclaration", "isImportOrExportDeclaration"), Lpe(e, t);
}
Object.defineProperty(CC, "__esModule", {
  value: !0
});
CC.default = S3e;
var ab = Ne;
function S3e(e, t, r) {
  if (!(0, ab.isMemberExpression)(e))
    return !1;
  const i = Array.isArray(t) ? t : t.split("."), n = [];
  let s;
  for (s = e; (0, ab.isMemberExpression)(s); s = s.object)
    n.push(s.property);
  if (n.push(s), n.length < i.length || !r && n.length > i.length)
    return !1;
  for (let a = 0, o = n.length - 1; a < i.length; a++, o--) {
    const l = n[o];
    let u;
    if ((0, ab.isIdentifier)(l))
      u = l.name;
    else if ((0, ab.isStringLiteral)(l))
      u = l.value;
    else if ((0, ab.isThisExpression)(l))
      u = "this";
    else
      return !1;
    if (i[a] !== u)
      return !1;
  }
  return !0;
}
Object.defineProperty(AC, "__esModule", {
  value: !0
});
AC.default = E3e;
var x3e = CC;
function E3e(e, t) {
  const r = e.split(".");
  return (i) => (0, x3e.default)(i, r, t);
}
Object.defineProperty(wC, "__esModule", {
  value: !0
});
wC.default = void 0;
var P3e = AC;
const w3e = (0, P3e.default)("React.Component");
wC.default = w3e;
var Q$ = {};
Object.defineProperty(Q$, "__esModule", {
  value: !0
});
Q$.default = A3e;
function A3e(e) {
  return !!e && /^[a-z]/.test(e);
}
var QS = {}, ZS = {}, Ce = {}, ex = {}, _m = {}, vM = {};
let ob = null;
function J0(e) {
  if (ob !== null && typeof ob.property) {
    const t = ob;
    return ob = J0.prototype = null, t;
  }
  return ob = J0.prototype = e == null ? /* @__PURE__ */ Object.create(null) : e, new J0();
}
J0();
var Z$ = function(t) {
  return J0(t);
}, Ys = {}, tx = {}, rx = {}, dW;
function e6() {
  if (dW)
    return rx;
  dW = 1, Object.defineProperty(rx, "__esModule", {
    value: !0
  }), rx.default = t;
  var e = Uc();
  function t(r, i) {
    if (r === i)
      return !0;
    if (r == null || e.ALIAS_KEYS[i])
      return !1;
    const n = e.FLIPPED_ALIAS_KEYS[i];
    if (n) {
      if (n[0] === r)
        return !0;
      for (const s of n)
        if (r === s)
          return !0;
    }
    return !1;
  }
  return rx;
}
var ix = {}, mW;
function Mpe() {
  if (mW)
    return ix;
  mW = 1, Object.defineProperty(ix, "__esModule", {
    value: !0
  }), ix.default = t;
  var e = Uc();
  function t(r, i) {
    if (r === i)
      return !0;
    const n = e.PLACEHOLDERS_ALIAS[r];
    if (n) {
      for (const s of n)
        if (i === s)
          return !0;
    }
    return !1;
  }
  return ix;
}
var yW;
function NT() {
  if (yW)
    return tx;
  yW = 1, Object.defineProperty(tx, "__esModule", {
    value: !0
  }), tx.default = n;
  var e = kT, t = e6(), r = Mpe(), i = Uc();
  function n(s, a, o) {
    return a ? (0, t.default)(a.type, s) ? typeof o == "undefined" ? !0 : (0, e.default)(a, o) : !o && a.type === "Placeholder" && s in i.FLIPPED_ALIAS_KEYS ? (0, r.default)(a.expectedNode, s) : !1 : !1;
  }
  return tx;
}
var rm = {}, _C = {}, DT = {};
Object.defineProperty(DT, "__esModule", {
  value: !0
});
DT.isIdentifierChar = jpe;
DT.isIdentifierName = k3e;
DT.isIdentifierStart = Fpe;
let t6 = "ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢎࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೝೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꟊꟐꟑꟓꟕ-ꟙꟲ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ﬀ-ﬆﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼＡ-Ｚａ-ｚｦ-ﾾￂ-ￇￊ-ￏￒ-ￗￚ-ￜ", Rpe = "‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࢘-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-ᫎᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‌‍‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯・꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏０-９＿･";
const C3e = new RegExp("[" + t6 + "]"), _3e = new RegExp("[" + t6 + Rpe + "]");
t6 = Rpe = null;
const Bpe = [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, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 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, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 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, 16, 0, 30, 2, 3, 0, 15, 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, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 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, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191], I3e = [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, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 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, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 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, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
function PF(e, t) {
  let r = 65536;
  for (let i = 0, n = t.length; i < n; i += 2) {
    if (r += t[i], r > e)
      return !1;
    if (r += t[i + 1], r >= e)
      return !0;
  }
  return !1;
}
function Fpe(e) {
  return e < 65 ? e === 36 : e <= 90 ? !0 : e < 97 ? e === 95 : e <= 122 ? !0 : e <= 65535 ? e >= 170 && C3e.test(String.fromCharCode(e)) : PF(e, Bpe);
}
function jpe(e) {
  return e < 48 ? e === 36 : e < 58 ? !0 : e < 65 ? !1 : e <= 90 ? !0 : e < 97 ? e === 95 : e <= 122 ? !0 : e <= 65535 ? e >= 170 && _3e.test(String.fromCharCode(e)) : PF(e, Bpe) || PF(e, I3e);
}
function k3e(e) {
  let t = !0;
  for (let r = 0; r < e.length; r++) {
    let i = e.charCodeAt(r);
    if ((i & 64512) === 55296 && r + 1 < e.length) {
      const n = e.charCodeAt(++r);
      (n & 64512) === 56320 && (i = 65536 + ((i & 1023) << 10) + (n & 1023));
    }
    if (t) {
      if (t = !1, !Fpe(i))
        return !1;
    } else if (!jpe(i))
      return !1;
  }
  return !t;
}
var im = {};
Object.defineProperty(im, "__esModule", {
  value: !0
});
im.isKeyword = M3e;
im.isReservedWord = $pe;
im.isStrictBindOnlyReservedWord = qpe;
im.isStrictBindReservedWord = L3e;
im.isStrictReservedWord = Upe;
const r6 = {
  keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"],
  strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"],
  strictBind: ["eval", "arguments"]
}, O3e = new Set(r6.keyword), N3e = new Set(r6.strict), D3e = new Set(r6.strictBind);
function $pe(e, t) {
  return t && e === "await" || e === "enum";
}
function Upe(e, t) {
  return $pe(e, t) || N3e.has(e);
}
function qpe(e) {
  return D3e.has(e);
}
function L3e(e, t) {
  return Upe(e, t) || qpe(e);
}
function M3e(e) {
  return O3e.has(e);
}
(function(e) {
  Object.defineProperty(e, "__esModule", {
    value: !0
  }), Object.defineProperty(e, "isIdentifierChar", {
    enumerable: !0,
    get: function() {
      return t.isIdentifierChar;
    }
  }), Object.defineProperty(e, "isIdentifierName", {
    enumerable: !0,
    get: function() {
      return t.isIdentifierName;
    }
  }), Object.defineProperty(e, "isIdentifierStart", {
    enumerable: !0,
    get: function() {
      return t.isIdentifierStart;
    }
  }), Object.defineProperty(e, "isKeyword", {
    enumerable: !0,
    get: function() {
      return r.isKeyword;
    }
  }), Object.defineProperty(e, "isReservedWord", {
    enumerable: !0,
    get: function() {
      return r.isReservedWord;
    }
  }), Object.defineProperty(e, "isStrictBindOnlyReservedWord", {
    enumerable: !0,
    get: function() {
      return r.isStrictBindOnlyReservedWord;
    }
  }), Object.defineProperty(e, "isStrictBindReservedWord", {
    enumerable: !0,
    get: function() {
      return r.isStrictBindReservedWord;
    }
  }), Object.defineProperty(e, "isStrictReservedWord", {
    enumerable: !0,
    get: function() {
      return r.isStrictReservedWord;
    }
  });
  var t = DT, r = im;
})(_C);
Object.defineProperty(rm, "__esModule", {
  value: !0
});
rm.default = R3e;
var TM = _C;
function R3e(e, t = !0) {
  return typeof e != "string" || t && ((0, TM.isKeyword)(e) || (0, TM.isStrictReservedWord)(e, !0)) ? !1 : (0, TM.isIdentifierName)(e);
}
var LT = {};
Object.defineProperty(LT, "__esModule", {
  value: !0
});
LT.readCodePoint = Wpe;
LT.readInt = Vpe;
LT.readStringContents = F3e;
var B3e = function(t) {
  return t >= 48 && t <= 57;
};
const gW = {
  decBinOct: /* @__PURE__ */ new Set([46, 66, 69, 79, 95, 98, 101, 111]),
  hex: /* @__PURE__ */ new Set([46, 88, 95, 120])
}, nx = {
  bin: (e) => e === 48 || e === 49,
  oct: (e) => e >= 48 && e <= 55,
  dec: (e) => e >= 48 && e <= 57,
  hex: (e) => e >= 48 && e <= 57 || e >= 65 && e <= 70 || e >= 97 && e <= 102
};
function F3e(e, t, r, i, n, s) {
  const a = r, o = i, l = n;
  let u = "", c = null, f = r;
  const {
    length: h
  } = t;
  for (; ; ) {
    if (r >= h) {
      s.unterminated(a, o, l), u += t.slice(f, r);
      break;
    }
    const m = t.charCodeAt(r);
    if (j3e(e, m, t, r)) {
      u += t.slice(f, r);
      break;
    }
    if (m === 92) {
      u += t.slice(f, r);
      const g = $3e(t, r, i, n, e === "template", s);
      g.ch === null && !c ? c = {
        pos: r,
        lineStart: i,
        curLine: n
      } : u += g.ch, {
        pos: r,
        lineStart: i,
        curLine: n
      } = g, f = r;
    } else
      m === 8232 || m === 8233 ? (++r, ++n, i = r) : m === 10 || m === 13 ? e === "template" ? (u += t.slice(f, r) + "\n", ++r, m === 13 && t.charCodeAt(r) === 10 && ++r, ++n, f = i = r) : s.unterminated(a, o, l) : ++r;
  }
  return {
    pos: r,
    str: u,
    firstInvalidLoc: c,
    lineStart: i,
    curLine: n,
    containsInvalid: !!c
  };
}
function j3e(e, t, r, i) {
  return e === "template" ? t === 96 || t === 36 && r.charCodeAt(i + 1) === 123 : t === (e === "double" ? 34 : 39);
}
function $3e(e, t, r, i, n, s) {
  const a = !n;
  t++;
  const o = (u) => ({
    pos: t,
    ch: u,
    lineStart: r,
    curLine: i
  }), l = e.charCodeAt(t++);
  switch (l) {
    case 110:
      return o("\n");
    case 114:
      return o("\r");
    case 120: {
      let u;
      return {
        code: u,
        pos: t
      } = wF(e, t, r, i, 2, !1, a, s), o(u === null ? null : String.fromCharCode(u));
    }
    case 117: {
      let u;
      return {
        code: u,
        pos: t
      } = Wpe(e, t, r, i, a, s), o(u === null ? null : String.fromCodePoint(u));
    }
    case 116:
      return o("	");
    case 98:
      return o("\b");
    case 118:
      return o("\v");
    case 102:
      return o("\f");
    case 13:
      e.charCodeAt(t) === 10 && ++t;
    case 10:
      r = t, ++i;
    case 8232:
    case 8233:
      return o("");
    case 56:
    case 57:
      if (n)
        return o(null);
      s.strictNumericEscape(t - 1, r, i);
    default:
      if (l >= 48 && l <= 55) {
        const u = t - 1;
        let f = e.slice(u, t + 2).match(/^[0-7]+/)[0], h = parseInt(f, 8);
        h > 255 && (f = f.slice(0, -1), h = parseInt(f, 8)), t += f.length - 1;
        const m = e.charCodeAt(t);
        if (f !== "0" || m === 56 || m === 57) {
          if (n)
            return o(null);
          s.strictNumericEscape(u, r, i);
        }
        return o(String.fromCharCode(h));
      }
      return o(String.fromCharCode(l));
  }
}
function wF(e, t, r, i, n, s, a, o) {
  const l = t;
  let u;
  return {
    n: u,
    pos: t
  } = Vpe(e, t, r, i, 16, n, s, !1, o, !a), u === null && (a ? o.invalidEscapeSequence(l, r, i) : t = l - 1), {
    code: u,
    pos: t
  };
}
function Vpe(e, t, r, i, n, s, a, o, l, u) {
  const c = t, f = n === 16 ? gW.hex : gW.decBinOct, h = n === 16 ? nx.hex : n === 10 ? nx.dec : n === 8 ? nx.oct : nx.bin;
  let m = !1, g = 0;
  for (let y = 0, v = s == null ? 1 / 0 : s; y < v; ++y) {
    const T = e.charCodeAt(t);
    let S;
    if (T === 95 && o !== "bail") {
      const P = e.charCodeAt(t - 1), x = e.charCodeAt(t + 1);
      if (o) {
        if (Number.isNaN(x) || !h(x) || f.has(P) || f.has(x)) {
          if (u)
            return {
              n: null,
              pos: t
            };
          l.unexpectedNumericSeparator(t, r, i);
        }
      } else {
        if (u)
          return {
            n: null,
            pos: t
          };
        l.numericSeparatorInEscapeSequence(t, r, i);
      }
      ++t;
      continue;
    }
    if (T >= 97 ? S = T - 97 + 10 : T >= 65 ? S = T - 65 + 10 : B3e(T) ? S = T - 48 : S = 1 / 0, S >= n) {
      if (S <= 9 && u)
        return {
          n: null,
          pos: t
        };
      if (S <= 9 && l.invalidDigit(t, r, i, n))
        S = 0;
      else if (a)
        S = 0, m = !0;
      else
        break;
    }
    ++t, g = g * n + S;
  }
  return t === c || s != null && t - c !== s || m ? {
    n: null,
    pos: t
  } : {
    n: g,
    pos: t
  };
}
function Wpe(e, t, r, i, n, s) {
  const a = e.charCodeAt(t);
  let o;
  if (a === 123) {
    if (++t, {
      code: o,
      pos: t
    } = wF(e, t, r, i, e.indexOf("}", t) - t, !0, n, s), ++t, o !== null && o > 1114111)
      if (n)
        s.invalidCodePoint(t, r, i);
      else
        return {
          code: null,
          pos: t
        };
  } else
    ({
      code: o,
      pos: t
    } = wF(e, t, r, i, 4, !1, n, s));
  return {
    code: o,
    pos: t
  };
}
var Tr = {};
Object.defineProperty(Tr, "__esModule", {
  value: !0
});
Tr.UPDATE_OPERATORS = Tr.UNARY_OPERATORS = Tr.STRING_UNARY_OPERATORS = Tr.STATEMENT_OR_BLOCK_KEYS = Tr.NUMBER_UNARY_OPERATORS = Tr.NUMBER_BINARY_OPERATORS = Tr.NOT_LOCAL_BINDING = Tr.LOGICAL_OPERATORS = Tr.INHERIT_KEYS = Tr.FOR_INIT_KEYS = Tr.FLATTENABLE_KEYS = Tr.EQUALITY_BINARY_OPERATORS = Tr.COMPARISON_BINARY_OPERATORS = Tr.COMMENT_KEYS = Tr.BOOLEAN_UNARY_OPERATORS = Tr.BOOLEAN_NUMBER_BINARY_OPERATORS = Tr.BOOLEAN_BINARY_OPERATORS = Tr.BLOCK_SCOPED_SYMBOL = Tr.BINARY_OPERATORS = Tr.ASSIGNMENT_OPERATORS = void 0;
Tr.STATEMENT_OR_BLOCK_KEYS = ["consequent", "body", "alternate"];
Tr.FLATTENABLE_KEYS = ["body", "expressions"];
Tr.FOR_INIT_KEYS = ["left", "init"];
Tr.COMMENT_KEYS = ["leadingComments", "trailingComments", "innerComments"];
const U3e = Tr.LOGICAL_OPERATORS = ["||", "&&", "??"];
Tr.UPDATE_OPERATORS = ["++", "--"];
const q3e = Tr.BOOLEAN_NUMBER_BINARY_OPERATORS = [">", "<", ">=", "<="], V3e = Tr.EQUALITY_BINARY_OPERATORS = ["==", "===", "!=", "!=="], W3e = Tr.COMPARISON_BINARY_OPERATORS = [...V3e, "in", "instanceof"], H3e = Tr.BOOLEAN_BINARY_OPERATORS = [...W3e, ...q3e], Hpe = Tr.NUMBER_BINARY_OPERATORS = ["-", "/", "%", "*", "**", "&", "|", ">>", ">>>", "<<", "^"];
Tr.BINARY_OPERATORS = ["+", ...Hpe, ...H3e, "|>"];
Tr.ASSIGNMENT_OPERATORS = ["=", "+=", ...Hpe.map((e) => e + "="), ...U3e.map((e) => e + "=")];
const K3e = Tr.BOOLEAN_UNARY_OPERATORS = ["delete", "!"], z3e = Tr.NUMBER_UNARY_OPERATORS = ["+", "-", "~"], G3e = Tr.STRING_UNARY_OPERATORS = ["typeof"];
Tr.UNARY_OPERATORS = ["void", "throw", ...K3e, ...z3e, ...G3e];
Tr.INHERIT_KEYS = {
  optional: ["typeAnnotation", "typeParameters", "returnType"],
  force: ["start", "loc", "end"]
};
Tr.BLOCK_SCOPED_SYMBOL = Symbol.for("var used to be block scoped");
Tr.NOT_LOCAL_BINDING = Symbol.for("should not be considered a local binding");
var ii = {}, bW;
function Vh() {
  if (bW)
    return ii;
  bW = 1, Object.defineProperty(ii, "__esModule", {
    value: !0
  }), ii.VISITOR_KEYS = ii.NODE_PARENT_VALIDATIONS = ii.NODE_FIELDS = ii.FLIPPED_ALIAS_KEYS = ii.DEPRECATED_KEYS = ii.BUILDER_KEYS = ii.ALIAS_KEYS = void 0, ii.arrayOf = y, ii.arrayOfType = v, ii.assertEach = S, ii.assertNodeOrValueType = C, ii.assertNodeType = x, ii.assertOneOf = P, ii.assertOptionalChainStart = A, ii.assertShape = w, ii.assertValueType = D, ii.chain = I, ii.default = j, ii.defineAliasedType = q, ii.typeIs = f, ii.validate = c, ii.validateArrayOfType = T, ii.validateOptional = m, ii.validateOptionalType = g, ii.validateType = h;
  var e = NT(), t = i6();
  const r = ii.VISITOR_KEYS = {}, i = ii.ALIAS_KEYS = {}, n = ii.FLIPPED_ALIAS_KEYS = {}, s = ii.NODE_FIELDS = {}, a = ii.BUILDER_KEYS = {}, o = ii.DEPRECATED_KEYS = {}, l = ii.NODE_PARENT_VALIDATIONS = {};
  function u(N) {
    return Array.isArray(N) ? "array" : N === null ? "null" : typeof N;
  }
  function c(N) {
    return {
      validate: N
    };
  }
  function f(N) {
    return typeof N == "string" ? x(N) : x(...N);
  }
  function h(N) {
    return c(f(N));
  }
  function m(N) {
    return {
      validate: N,
      optional: !0
    };
  }
  function g(N) {
    return {
      validate: f(N),
      optional: !0
    };
  }
  function y(N) {
    return I(D("array"), S(N));
  }
  function v(N) {
    return y(f(N));
  }
  function T(N) {
    return c(v(N));
  }
  function S(N) {
    function M(R, $, V) {
      if (Array.isArray(V))
        for (let K = 0; K < V.length; K++) {
          const z = "".concat($, "[").concat(K, "]"), W = V[K];
          N(R, z, W), process.env.BABEL_TYPES_8_BREAKING && (0, t.validateChild)(R, z, W);
        }
    }
    return M.each = N, M;
  }
  function P(...N) {
    function M(R, $, V) {
      if (N.indexOf(V) < 0)
        throw new TypeError("Property ".concat($, " expected value to be one of ").concat(JSON.stringify(N), " but got ").concat(JSON.stringify(V)));
    }
    return M.oneOf = N, M;
  }
  function x(...N) {
    function M(R, $, V) {
      for (const K of N)
        if ((0, e.default)(K, V)) {
          (0, t.validateChild)(R, $, V);
          return;
        }
      throw new TypeError("Property ".concat($, " of ").concat(R.type, " expected node to be of a type ").concat(JSON.stringify(N), " but instead got ").concat(JSON.stringify(V == null ? void 0 : V.type)));
    }
    return M.oneOfNodeTypes = N, M;
  }
  function C(...N) {
    function M(R, $, V) {
      for (const K of N)
        if (u(V) === K || (0, e.default)(K, V)) {
          (0, t.validateChild)(R, $, V);
          return;
        }
      throw new TypeError("Property ".concat($, " of ").concat(R.type, " expected node to be of a type ").concat(JSON.stringify(N), " but instead got ").concat(JSON.stringify(V == null ? void 0 : V.type)));
    }
    return M.oneOfNodeOrValueTypes = N, M;
  }
  function D(N) {
    function M(R, $, V) {
      if (!(u(V) === N))
        throw new TypeError("Property ".concat($, " expected type of ").concat(N, " but got ").concat(u(V)));
    }
    return M.type = N, M;
  }
  function w(N) {
    function M(R, $, V) {
      const K = [];
      for (const z of Object.keys(N))
        try {
          (0, t.validateField)(R, z, V[z], N[z]);
        } catch (W) {
          if (W instanceof TypeError) {
            K.push(W.message);
            continue;
          }
          throw W;
        }
      if (K.length)
        throw new TypeError("Property ".concat($, " of ").concat(R.type, " expected to have the following:\n").concat(K.join("\n")));
    }
    return M.shapeOf = N, M;
  }
  function A() {
    function N(M) {
      var R;
      let $ = M;
      for (; M; ) {
        const {
          type: V
        } = $;
        if (V === "OptionalCallExpression") {
          if ($.optional)
            return;
          $ = $.callee;
          continue;
        }
        if (V === "OptionalMemberExpression") {
          if ($.optional)
            return;
          $ = $.object;
          continue;
        }
        break;
      }
      throw new TypeError("Non-optional ".concat(M.type, " must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ").concat((R = $) == null ? void 0 : R.type));
    }
    return N;
  }
  function I(...N) {
    function M(...R) {
      for (const $ of N)
        $(...R);
    }
    if (M.chainOf = N, N.length >= 2 && "type" in N[0] && N[0].type === "array" && !("each" in N[1]))
      throw new Error('An assertValueType("array") validator can only be followed by an assertEach(...) validator.');
    return M;
  }
  const L = ["aliases", "builder", "deprecatedAlias", "fields", "inherits", "visitor", "validate"], O = ["default", "optional", "deprecated", "validate"], F = {};
  function q(...N) {
    return (M, R = {}) => {
      let $ = R.aliases;
      if (!$) {
        var V, K;
        R.inherits && ($ = (V = F[R.inherits].aliases) == null ? void 0 : V.slice()), (K = $) != null || ($ = []), R.aliases = $;
      }
      const z = N.filter((W) => !$.includes(W));
      $.unshift(...z), j(M, R);
    };
  }
  function j(N, M = {}) {
    const R = M.inherits && F[M.inherits] || {};
    let $ = M.fields;
    if (!$ && ($ = {}, R.fields)) {
      const W = Object.getOwnPropertyNames(R.fields);
      for (const Y of W) {
        const G = R.fields[Y], le = G.default;
        if (Array.isArray(le) ? le.length > 0 : le && typeof le == "object")
          throw new Error("field defaults can only be primitives or empty arrays currently");
        $[Y] = {
          default: Array.isArray(le) ? [] : le,
          optional: G.optional,
          deprecated: G.deprecated,
          validate: G.validate
        };
      }
    }
    const V = M.visitor || R.visitor || [], K = M.aliases || R.aliases || [], z = M.builder || R.builder || M.visitor || [];
    for (const W of Object.keys(M))
      if (L.indexOf(W) === -1)
        throw new Error('Unknown type option "'.concat(W, '" on ').concat(N));
    M.deprecatedAlias && (o[M.deprecatedAlias] = N);
    for (const W of V.concat(z))
      $[W] = $[W] || {};
    for (const W of Object.keys($)) {
      const Y = $[W];
      Y.default !== void 0 && z.indexOf(W) === -1 && (Y.optional = !0), Y.default === void 0 ? Y.default = null : !Y.validate && Y.default != null && (Y.validate = D(u(Y.default)));
      for (const G of Object.keys(Y))
        if (O.indexOf(G) === -1)
          throw new Error('Unknown field key "'.concat(G, '" on ').concat(N, ".").concat(W));
    }
    r[N] = M.visitor = V, a[N] = M.builder = z, s[N] = M.fields = $, i[N] = M.aliases = K, K.forEach((W) => {
      n[W] = n[W] || [], n[W].push(N);
    }), M.validate && (l[N] = M.validate), F[N] = M;
  }
  return ii;
}
var vW;
function Kpe() {
  if (vW)
    return Ys;
  vW = 1, Object.defineProperty(Ys, "__esModule", {
    value: !0
  }), Ys.patternLikeCommon = Ys.functionTypeAnnotationCommon = Ys.functionDeclarationCommon = Ys.functionCommon = Ys.classMethodOrPropertyCommon = Ys.classMethodOrDeclareMethodCommon = void 0;
  var e = NT(), t = rm, r = _C, i = LT, n = Tr, s = Vh();
  const a = (0, s.defineAliasedType)("Standardized");
  a("ArrayExpression", {
    fields: {
      elements: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeOrValueType)("null", "Expression", "SpreadElement"))),
        default: process.env.BABEL_TYPES_8_BREAKING ? void 0 : []
      }
    },
    visitor: ["elements"],
    aliases: ["Expression"]
  }), a("AssignmentExpression", {
    fields: {
      operator: {
        validate: function() {
          if (!process.env.BABEL_TYPES_8_BREAKING)
            return (0, s.assertValueType)("string");
          const m = (0, s.assertOneOf)(...n.ASSIGNMENT_OPERATORS), g = (0, s.assertOneOf)("=");
          return function(y, v, T) {
            ((0, e.default)("Pattern", y.left) ? g : m)(y, v, T);
          };
        }()
      },
      left: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.assertNodeType)("Identifier", "MemberExpression", "OptionalMemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") : (0, s.assertNodeType)("LVal", "OptionalMemberExpression")
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      }
    },
    builder: ["operator", "left", "right"],
    visitor: ["left", "right"],
    aliases: ["Expression"]
  }), a("BinaryExpression", {
    builder: ["operator", "left", "right"],
    fields: {
      operator: {
        validate: (0, s.assertOneOf)(...n.BINARY_OPERATORS)
      },
      left: {
        validate: function() {
          const m = (0, s.assertNodeType)("Expression"), g = (0, s.assertNodeType)("Expression", "PrivateName");
          return Object.assign(function(v, T, S) {
            (v.operator === "in" ? g : m)(v, T, S);
          }, {
            oneOfNodeTypes: ["Expression", "PrivateName"]
          });
        }()
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      }
    },
    visitor: ["left", "right"],
    aliases: ["Binary", "Expression"]
  }), a("InterpreterDirective", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, s.assertValueType)("string")
      }
    }
  }), a("Directive", {
    visitor: ["value"],
    fields: {
      value: {
        validate: (0, s.assertNodeType)("DirectiveLiteral")
      }
    }
  }), a("DirectiveLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, s.assertValueType)("string")
      }
    }
  }), a("BlockStatement", {
    builder: ["body", "directives"],
    visitor: ["directives", "body"],
    fields: {
      directives: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Directive"))),
        default: []
      },
      body: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Statement")))
      }
    },
    aliases: ["Scopable", "BlockParent", "Block", "Statement"]
  }), a("BreakStatement", {
    visitor: ["label"],
    fields: {
      label: {
        validate: (0, s.assertNodeType)("Identifier"),
        optional: !0
      }
    },
    aliases: ["Statement", "Terminatorless", "CompletionStatement"]
  }), a("CallExpression", {
    visitor: ["callee", "arguments", "typeParameters", "typeArguments"],
    builder: ["callee", "arguments"],
    aliases: ["Expression"],
    fields: Object.assign({
      callee: {
        validate: (0, s.assertNodeType)("Expression", "Super", "V8IntrinsicIdentifier")
      },
      arguments: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Expression", "SpreadElement", "JSXNamespacedName", "ArgumentPlaceholder")))
      }
    }, process.env.BABEL_TYPES_8_BREAKING ? {} : {
      optional: {
        validate: (0, s.assertOneOf)(!0, !1),
        optional: !0
      }
    }, {
      typeArguments: {
        validate: (0, s.assertNodeType)("TypeParameterInstantiation"),
        optional: !0
      },
      typeParameters: {
        validate: (0, s.assertNodeType)("TSTypeParameterInstantiation"),
        optional: !0
      }
    })
  }), a("CatchClause", {
    visitor: ["param", "body"],
    fields: {
      param: {
        validate: (0, s.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern"),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      }
    },
    aliases: ["Scopable", "BlockParent"]
  }), a("ConditionalExpression", {
    visitor: ["test", "consequent", "alternate"],
    fields: {
      test: {
        validate: (0, s.assertNodeType)("Expression")
      },
      consequent: {
        validate: (0, s.assertNodeType)("Expression")
      },
      alternate: {
        validate: (0, s.assertNodeType)("Expression")
      }
    },
    aliases: ["Expression", "Conditional"]
  }), a("ContinueStatement", {
    visitor: ["label"],
    fields: {
      label: {
        validate: (0, s.assertNodeType)("Identifier"),
        optional: !0
      }
    },
    aliases: ["Statement", "Terminatorless", "CompletionStatement"]
  }), a("DebuggerStatement", {
    aliases: ["Statement"]
  }), a("DoWhileStatement", {
    visitor: ["test", "body"],
    fields: {
      test: {
        validate: (0, s.assertNodeType)("Expression")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    },
    aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"]
  }), a("EmptyStatement", {
    aliases: ["Statement"]
  }), a("ExpressionStatement", {
    visitor: ["expression"],
    fields: {
      expression: {
        validate: (0, s.assertNodeType)("Expression")
      }
    },
    aliases: ["Statement", "ExpressionWrapper"]
  }), a("File", {
    builder: ["program", "comments", "tokens"],
    visitor: ["program"],
    fields: {
      program: {
        validate: (0, s.assertNodeType)("Program")
      },
      comments: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.assertEach)((0, s.assertNodeType)("CommentBlock", "CommentLine")) : Object.assign(() => {
        }, {
          each: {
            oneOfNodeTypes: ["CommentBlock", "CommentLine"]
          }
        }),
        optional: !0
      },
      tokens: {
        validate: (0, s.assertEach)(Object.assign(() => {
        }, {
          type: "any"
        })),
        optional: !0
      }
    }
  }), a("ForInStatement", {
    visitor: ["left", "right", "body"],
    aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"],
    fields: {
      left: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.assertNodeType)("VariableDeclaration", "Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") : (0, s.assertNodeType)("VariableDeclaration", "LVal")
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  }), a("ForStatement", {
    visitor: ["init", "test", "update", "body"],
    aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop"],
    fields: {
      init: {
        validate: (0, s.assertNodeType)("VariableDeclaration", "Expression"),
        optional: !0
      },
      test: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      update: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  });
  const o = () => ({
    params: {
      validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Identifier", "Pattern", "RestElement")))
    },
    generator: {
      default: !1
    },
    async: {
      default: !1
    }
  });
  Ys.functionCommon = o;
  const l = () => ({
    returnType: {
      validate: (0, s.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
      optional: !0
    },
    typeParameters: {
      validate: (0, s.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"),
      optional: !0
    }
  });
  Ys.functionTypeAnnotationCommon = l;
  const u = () => Object.assign({}, o(), {
    declare: {
      validate: (0, s.assertValueType)("boolean"),
      optional: !0
    },
    id: {
      validate: (0, s.assertNodeType)("Identifier"),
      optional: !0
    }
  });
  Ys.functionDeclarationCommon = u, a("FunctionDeclaration", {
    builder: ["id", "params", "body", "generator", "async"],
    visitor: ["id", "params", "body", "returnType", "typeParameters"],
    fields: Object.assign({}, u(), l(), {
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      },
      predicate: {
        validate: (0, s.assertNodeType)("DeclaredPredicate", "InferredPredicate"),
        optional: !0
      }
    }),
    aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Statement", "Pureish", "Declaration"],
    validate: function() {
      if (!process.env.BABEL_TYPES_8_BREAKING)
        return () => {
        };
      const m = (0, s.assertNodeType)("Identifier");
      return function(g, y, v) {
        (0, e.default)("ExportDefaultDeclaration", g) || m(v, "id", v.id);
      };
    }()
  }), a("FunctionExpression", {
    inherits: "FunctionDeclaration",
    aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"],
    fields: Object.assign({}, o(), l(), {
      id: {
        validate: (0, s.assertNodeType)("Identifier"),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      },
      predicate: {
        validate: (0, s.assertNodeType)("DeclaredPredicate", "InferredPredicate"),
        optional: !0
      }
    })
  });
  const c = () => ({
    typeAnnotation: {
      validate: (0, s.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
      optional: !0
    },
    optional: {
      validate: (0, s.assertValueType)("boolean"),
      optional: !0
    },
    decorators: {
      validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
      optional: !0
    }
  });
  Ys.patternLikeCommon = c, a("Identifier", {
    builder: ["name"],
    visitor: ["typeAnnotation", "decorators"],
    aliases: ["Expression", "PatternLike", "LVal", "TSEntityName"],
    fields: Object.assign({}, c(), {
      name: {
        validate: (0, s.chain)((0, s.assertValueType)("string"), Object.assign(function(m, g, y) {
          if (process.env.BABEL_TYPES_8_BREAKING && !(0, t.default)(y, !1))
            throw new TypeError('"'.concat(y, '" is not a valid identifier name'));
        }, {
          type: "string"
        }))
      }
    }),
    validate(m, g, y) {
      if (!process.env.BABEL_TYPES_8_BREAKING)
        return;
      const v = /\.(\w+)$/.exec(g);
      if (!v)
        return;
      const [, T] = v, S = {
        computed: !1
      };
      if (T === "property") {
        if ((0, e.default)("MemberExpression", m, S) || (0, e.default)("OptionalMemberExpression", m, S))
          return;
      } else if (T === "key") {
        if ((0, e.default)("Property", m, S) || (0, e.default)("Method", m, S))
          return;
      } else if (T === "exported") {
        if ((0, e.default)("ExportSpecifier", m))
          return;
      } else if (T === "imported") {
        if ((0, e.default)("ImportSpecifier", m, {
          imported: y
        }))
          return;
      } else if (T === "meta" && (0, e.default)("MetaProperty", m, {
        meta: y
      }))
        return;
      if (((0, r.isKeyword)(y.name) || (0, r.isReservedWord)(y.name, !1)) && y.name !== "this")
        throw new TypeError('"'.concat(y.name, '" is not a valid identifier'));
    }
  }), a("IfStatement", {
    visitor: ["test", "consequent", "alternate"],
    aliases: ["Statement", "Conditional"],
    fields: {
      test: {
        validate: (0, s.assertNodeType)("Expression")
      },
      consequent: {
        validate: (0, s.assertNodeType)("Statement")
      },
      alternate: {
        optional: !0,
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  }), a("LabeledStatement", {
    visitor: ["label", "body"],
    aliases: ["Statement"],
    fields: {
      label: {
        validate: (0, s.assertNodeType)("Identifier")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  }), a("StringLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, s.assertValueType)("string")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), a("NumericLiteral", {
    builder: ["value"],
    deprecatedAlias: "NumberLiteral",
    fields: {
      value: {
        validate: (0, s.chain)((0, s.assertValueType)("number"), Object.assign(function(m, g, y) {
        }, {
          type: "number"
        }))
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), a("NullLiteral", {
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), a("BooleanLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, s.assertValueType)("boolean")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), a("RegExpLiteral", {
    builder: ["pattern", "flags"],
    deprecatedAlias: "RegexLiteral",
    aliases: ["Expression", "Pureish", "Literal"],
    fields: {
      pattern: {
        validate: (0, s.assertValueType)("string")
      },
      flags: {
        validate: (0, s.chain)((0, s.assertValueType)("string"), Object.assign(function(m, g, y) {
          if (!process.env.BABEL_TYPES_8_BREAKING)
            return;
          const v = /[^gimsuy]/.exec(y);
          if (v)
            throw new TypeError('"'.concat(v[0], '" is not a valid RegExp flag'));
        }, {
          type: "string"
        })),
        default: ""
      }
    }
  }), a("LogicalExpression", {
    builder: ["operator", "left", "right"],
    visitor: ["left", "right"],
    aliases: ["Binary", "Expression"],
    fields: {
      operator: {
        validate: (0, s.assertOneOf)(...n.LOGICAL_OPERATORS)
      },
      left: {
        validate: (0, s.assertNodeType)("Expression")
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("MemberExpression", {
    builder: ["object", "property", "computed", ...process.env.BABEL_TYPES_8_BREAKING ? [] : ["optional"]],
    visitor: ["object", "property"],
    aliases: ["Expression", "LVal"],
    fields: Object.assign({
      object: {
        validate: (0, s.assertNodeType)("Expression", "Super")
      },
      property: {
        validate: function() {
          const m = (0, s.assertNodeType)("Identifier", "PrivateName"), g = (0, s.assertNodeType)("Expression"), y = function(v, T, S) {
            (v.computed ? g : m)(v, T, S);
          };
          return y.oneOfNodeTypes = ["Expression", "Identifier", "PrivateName"], y;
        }()
      },
      computed: {
        default: !1
      }
    }, process.env.BABEL_TYPES_8_BREAKING ? {} : {
      optional: {
        validate: (0, s.assertOneOf)(!0, !1),
        optional: !0
      }
    })
  }), a("NewExpression", {
    inherits: "CallExpression"
  }), a("Program", {
    visitor: ["directives", "body"],
    builder: ["body", "directives", "sourceType", "interpreter"],
    fields: {
      sourceFile: {
        validate: (0, s.assertValueType)("string")
      },
      sourceType: {
        validate: (0, s.assertOneOf)("script", "module"),
        default: "script"
      },
      interpreter: {
        validate: (0, s.assertNodeType)("InterpreterDirective"),
        default: null,
        optional: !0
      },
      directives: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Directive"))),
        default: []
      },
      body: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Statement")))
      }
    },
    aliases: ["Scopable", "BlockParent", "Block"]
  }), a("ObjectExpression", {
    visitor: ["properties"],
    aliases: ["Expression"],
    fields: {
      properties: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ObjectMethod", "ObjectProperty", "SpreadElement")))
      }
    }
  }), a("ObjectMethod", {
    builder: ["kind", "key", "params", "body", "computed", "generator", "async"],
    fields: Object.assign({}, o(), l(), {
      kind: Object.assign({
        validate: (0, s.assertOneOf)("method", "get", "set")
      }, process.env.BABEL_TYPES_8_BREAKING ? {} : {
        default: "method"
      }),
      computed: {
        default: !1
      },
      key: {
        validate: function() {
          const m = (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"), g = (0, s.assertNodeType)("Expression"), y = function(v, T, S) {
            (v.computed ? g : m)(v, T, S);
          };
          return y.oneOfNodeTypes = ["Expression", "Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"], y;
        }()
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      }
    }),
    visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"],
    aliases: ["UserWhitespacable", "Function", "Scopable", "BlockParent", "FunctionParent", "Method", "ObjectMember"]
  }), a("ObjectProperty", {
    builder: ["key", "value", "computed", "shorthand", ...process.env.BABEL_TYPES_8_BREAKING ? [] : ["decorators"]],
    fields: {
      computed: {
        default: !1
      },
      key: {
        validate: function() {
          const m = (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "DecimalLiteral", "PrivateName"), g = (0, s.assertNodeType)("Expression");
          return Object.assign(function(v, T, S) {
            (v.computed ? g : m)(v, T, S);
          }, {
            oneOfNodeTypes: ["Expression", "Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "DecimalLiteral", "PrivateName"]
          });
        }()
      },
      value: {
        validate: (0, s.assertNodeType)("Expression", "PatternLike")
      },
      shorthand: {
        validate: (0, s.chain)((0, s.assertValueType)("boolean"), Object.assign(function(m, g, y) {
          if (process.env.BABEL_TYPES_8_BREAKING && y && m.computed)
            throw new TypeError("Property shorthand of ObjectProperty cannot be true if computed is true");
        }, {
          type: "boolean"
        }), function(m, g, y) {
          if (process.env.BABEL_TYPES_8_BREAKING && y && !(0, e.default)("Identifier", m.key))
            throw new TypeError("Property shorthand of ObjectProperty cannot be true if key is not an Identifier");
        }),
        default: !1
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      }
    },
    visitor: ["key", "value", "decorators"],
    aliases: ["UserWhitespacable", "Property", "ObjectMember"],
    validate: function() {
      const m = (0, s.assertNodeType)("Identifier", "Pattern", "TSAsExpression", "TSSatisfiesExpression", "TSNonNullExpression", "TSTypeAssertion"), g = (0, s.assertNodeType)("Expression");
      return function(y, v, T) {
        if (!process.env.BABEL_TYPES_8_BREAKING)
          return;
        ((0, e.default)("ObjectPattern", y) ? m : g)(T, "value", T.value);
      };
    }()
  }), a("RestElement", {
    visitor: ["argument", "typeAnnotation"],
    builder: ["argument"],
    aliases: ["LVal", "PatternLike"],
    deprecatedAlias: "RestProperty",
    fields: Object.assign({}, c(), {
      argument: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern", "MemberExpression", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") : (0, s.assertNodeType)("LVal")
      }
    }),
    validate(m, g) {
      if (!process.env.BABEL_TYPES_8_BREAKING)
        return;
      const y = /(\w+)\[(\d+)\]/.exec(g);
      if (!y)
        throw new Error("Internal Babel error: malformed key.");
      const [, v, T] = y;
      if (m[v].length > +T + 1)
        throw new TypeError("RestElement must be last element of ".concat(v));
    }
  }), a("ReturnStatement", {
    visitor: ["argument"],
    aliases: ["Statement", "Terminatorless", "CompletionStatement"],
    fields: {
      argument: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      }
    }
  }), a("SequenceExpression", {
    visitor: ["expressions"],
    fields: {
      expressions: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Expression")))
      }
    },
    aliases: ["Expression"]
  }), a("ParenthesizedExpression", {
    visitor: ["expression"],
    aliases: ["Expression", "ExpressionWrapper"],
    fields: {
      expression: {
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("SwitchCase", {
    visitor: ["test", "consequent"],
    fields: {
      test: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      consequent: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Statement")))
      }
    }
  }), a("SwitchStatement", {
    visitor: ["discriminant", "cases"],
    aliases: ["Statement", "BlockParent", "Scopable"],
    fields: {
      discriminant: {
        validate: (0, s.assertNodeType)("Expression")
      },
      cases: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("SwitchCase")))
      }
    }
  }), a("ThisExpression", {
    aliases: ["Expression"]
  }), a("ThrowStatement", {
    visitor: ["argument"],
    aliases: ["Statement", "Terminatorless", "CompletionStatement"],
    fields: {
      argument: {
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("TryStatement", {
    visitor: ["block", "handler", "finalizer"],
    aliases: ["Statement"],
    fields: {
      block: {
        validate: (0, s.chain)((0, s.assertNodeType)("BlockStatement"), Object.assign(function(m) {
          if (process.env.BABEL_TYPES_8_BREAKING && !m.handler && !m.finalizer)
            throw new TypeError("TryStatement expects either a handler or finalizer, or both");
        }, {
          oneOfNodeTypes: ["BlockStatement"]
        }))
      },
      handler: {
        optional: !0,
        validate: (0, s.assertNodeType)("CatchClause")
      },
      finalizer: {
        optional: !0,
        validate: (0, s.assertNodeType)("BlockStatement")
      }
    }
  }), a("UnaryExpression", {
    builder: ["operator", "argument", "prefix"],
    fields: {
      prefix: {
        default: !0
      },
      argument: {
        validate: (0, s.assertNodeType)("Expression")
      },
      operator: {
        validate: (0, s.assertOneOf)(...n.UNARY_OPERATORS)
      }
    },
    visitor: ["argument"],
    aliases: ["UnaryLike", "Expression"]
  }), a("UpdateExpression", {
    builder: ["operator", "argument", "prefix"],
    fields: {
      prefix: {
        default: !1
      },
      argument: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.assertNodeType)("Identifier", "MemberExpression") : (0, s.assertNodeType)("Expression")
      },
      operator: {
        validate: (0, s.assertOneOf)(...n.UPDATE_OPERATORS)
      }
    },
    visitor: ["argument"],
    aliases: ["Expression"]
  }), a("VariableDeclaration", {
    builder: ["kind", "declarations"],
    visitor: ["declarations"],
    aliases: ["Statement", "Declaration"],
    fields: {
      declare: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      kind: {
        validate: (0, s.assertOneOf)("var", "let", "const", "using", "await using")
      },
      declarations: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("VariableDeclarator")))
      }
    },
    validate(m, g, y) {
      if (process.env.BABEL_TYPES_8_BREAKING && (0, e.default)("ForXStatement", m, {
        left: y
      }) && y.declarations.length !== 1)
        throw new TypeError("Exactly one VariableDeclarator is required in the VariableDeclaration of a ".concat(m.type));
    }
  }), a("VariableDeclarator", {
    visitor: ["id", "init"],
    fields: {
      id: {
        validate: function() {
          if (!process.env.BABEL_TYPES_8_BREAKING)
            return (0, s.assertNodeType)("LVal");
          const m = (0, s.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern"), g = (0, s.assertNodeType)("Identifier");
          return function(y, v, T) {
            (y.init ? m : g)(y, v, T);
          };
        }()
      },
      definite: {
        optional: !0,
        validate: (0, s.assertValueType)("boolean")
      },
      init: {
        optional: !0,
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("WhileStatement", {
    visitor: ["test", "body"],
    aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"],
    fields: {
      test: {
        validate: (0, s.assertNodeType)("Expression")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  }), a("WithStatement", {
    visitor: ["object", "body"],
    aliases: ["Statement"],
    fields: {
      object: {
        validate: (0, s.assertNodeType)("Expression")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  }), a("AssignmentPattern", {
    visitor: ["left", "right", "decorators"],
    builder: ["left", "right"],
    aliases: ["Pattern", "PatternLike", "LVal"],
    fields: Object.assign({}, c(), {
      left: {
        validate: (0, s.assertNodeType)("Identifier", "ObjectPattern", "ArrayPattern", "MemberExpression", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression")
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      }
    })
  }), a("ArrayPattern", {
    visitor: ["elements", "typeAnnotation"],
    builder: ["elements"],
    aliases: ["Pattern", "PatternLike", "LVal"],
    fields: Object.assign({}, c(), {
      elements: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeOrValueType)("null", "PatternLike", "LVal")))
      }
    })
  }), a("ArrowFunctionExpression", {
    builder: ["params", "body", "async"],
    visitor: ["params", "body", "returnType", "typeParameters"],
    aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"],
    fields: Object.assign({}, o(), l(), {
      expression: {
        validate: (0, s.assertValueType)("boolean")
      },
      body: {
        validate: (0, s.assertNodeType)("BlockStatement", "Expression")
      },
      predicate: {
        validate: (0, s.assertNodeType)("DeclaredPredicate", "InferredPredicate"),
        optional: !0
      }
    })
  }), a("ClassBody", {
    visitor: ["body"],
    fields: {
      body: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ClassMethod", "ClassPrivateMethod", "ClassProperty", "ClassPrivateProperty", "ClassAccessorProperty", "TSDeclareMethod", "TSIndexSignature", "StaticBlock")))
      }
    }
  }), a("ClassExpression", {
    builder: ["id", "superClass", "body", "decorators"],
    visitor: ["id", "body", "superClass", "mixins", "typeParameters", "superTypeParameters", "implements", "decorators"],
    aliases: ["Scopable", "Class", "Expression"],
    fields: {
      id: {
        validate: (0, s.assertNodeType)("Identifier"),
        optional: !0
      },
      typeParameters: {
        validate: (0, s.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("ClassBody")
      },
      superClass: {
        optional: !0,
        validate: (0, s.assertNodeType)("Expression")
      },
      superTypeParameters: {
        validate: (0, s.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      },
      implements: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("TSExpressionWithTypeArguments", "ClassImplements"))),
        optional: !0
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      },
      mixins: {
        validate: (0, s.assertNodeType)("InterfaceExtends"),
        optional: !0
      }
    }
  }), a("ClassDeclaration", {
    inherits: "ClassExpression",
    aliases: ["Scopable", "Class", "Statement", "Declaration"],
    fields: {
      id: {
        validate: (0, s.assertNodeType)("Identifier"),
        optional: !0
      },
      typeParameters: {
        validate: (0, s.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("ClassBody")
      },
      superClass: {
        optional: !0,
        validate: (0, s.assertNodeType)("Expression")
      },
      superTypeParameters: {
        validate: (0, s.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      },
      implements: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("TSExpressionWithTypeArguments", "ClassImplements"))),
        optional: !0
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      },
      mixins: {
        validate: (0, s.assertNodeType)("InterfaceExtends"),
        optional: !0
      },
      declare: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      abstract: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      }
    },
    validate: function() {
      const m = (0, s.assertNodeType)("Identifier");
      return function(g, y, v) {
        process.env.BABEL_TYPES_8_BREAKING && ((0, e.default)("ExportDefaultDeclaration", g) || m(v, "id", v.id));
      };
    }()
  }), a("ExportAllDeclaration", {
    builder: ["source"],
    visitor: ["source", "attributes", "assertions"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration", "ExportDeclaration"],
    fields: {
      source: {
        validate: (0, s.assertNodeType)("StringLiteral")
      },
      exportKind: (0, s.validateOptional)((0, s.assertOneOf)("type", "value")),
      attributes: {
        optional: !0,
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ImportAttribute")))
      },
      assertions: {
        optional: !0,
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ImportAttribute")))
      }
    }
  }), a("ExportDefaultDeclaration", {
    visitor: ["declaration"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration", "ExportDeclaration"],
    fields: {
      declaration: {
        validate: (0, s.assertNodeType)("TSDeclareFunction", "FunctionDeclaration", "ClassDeclaration", "Expression")
      },
      exportKind: (0, s.validateOptional)((0, s.assertOneOf)("value"))
    }
  }), a("ExportNamedDeclaration", {
    builder: ["declaration", "specifiers", "source"],
    visitor: ["declaration", "specifiers", "source", "attributes", "assertions"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration", "ExportDeclaration"],
    fields: {
      declaration: {
        optional: !0,
        validate: (0, s.chain)((0, s.assertNodeType)("Declaration"), Object.assign(function(m, g, y) {
          if (process.env.BABEL_TYPES_8_BREAKING && y && m.specifiers.length)
            throw new TypeError("Only declaration or specifiers is allowed on ExportNamedDeclaration");
        }, {
          oneOfNodeTypes: ["Declaration"]
        }), function(m, g, y) {
          if (process.env.BABEL_TYPES_8_BREAKING && y && m.source)
            throw new TypeError("Cannot export a declaration from a source");
        })
      },
      attributes: {
        optional: !0,
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ImportAttribute")))
      },
      assertions: {
        optional: !0,
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ImportAttribute")))
      },
      specifiers: {
        default: [],
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)(function() {
          const m = (0, s.assertNodeType)("ExportSpecifier", "ExportDefaultSpecifier", "ExportNamespaceSpecifier"), g = (0, s.assertNodeType)("ExportSpecifier");
          return process.env.BABEL_TYPES_8_BREAKING ? function(y, v, T) {
            (y.source ? m : g)(y, v, T);
          } : m;
        }()))
      },
      source: {
        validate: (0, s.assertNodeType)("StringLiteral"),
        optional: !0
      },
      exportKind: (0, s.validateOptional)((0, s.assertOneOf)("type", "value"))
    }
  }), a("ExportSpecifier", {
    visitor: ["local", "exported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, s.assertNodeType)("Identifier")
      },
      exported: {
        validate: (0, s.assertNodeType)("Identifier", "StringLiteral")
      },
      exportKind: {
        validate: (0, s.assertOneOf)("type", "value"),
        optional: !0
      }
    }
  }), a("ForOfStatement", {
    visitor: ["left", "right", "body"],
    builder: ["left", "right", "body", "await"],
    aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"],
    fields: {
      left: {
        validate: function() {
          if (!process.env.BABEL_TYPES_8_BREAKING)
            return (0, s.assertNodeType)("VariableDeclaration", "LVal");
          const m = (0, s.assertNodeType)("VariableDeclaration"), g = (0, s.assertNodeType)("Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression");
          return function(y, v, T) {
            (0, e.default)("VariableDeclaration", T) ? m(y, v, T) : g(y, v, T);
          };
        }()
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      },
      await: {
        default: !1
      }
    }
  }), a("ImportDeclaration", {
    builder: ["specifiers", "source"],
    visitor: ["specifiers", "source", "attributes", "assertions"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration"],
    fields: {
      attributes: {
        optional: !0,
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ImportAttribute")))
      },
      assertions: {
        optional: !0,
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ImportAttribute")))
      },
      module: {
        optional: !0,
        validate: (0, s.assertValueType)("boolean")
      },
      phase: {
        default: null,
        validate: (0, s.assertOneOf)("source", "defer")
      },
      specifiers: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ImportSpecifier", "ImportDefaultSpecifier", "ImportNamespaceSpecifier")))
      },
      source: {
        validate: (0, s.assertNodeType)("StringLiteral")
      },
      importKind: {
        validate: (0, s.assertOneOf)("type", "typeof", "value"),
        optional: !0
      }
    }
  }), a("ImportDefaultSpecifier", {
    visitor: ["local"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, s.assertNodeType)("Identifier")
      }
    }
  }), a("ImportNamespaceSpecifier", {
    visitor: ["local"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, s.assertNodeType)("Identifier")
      }
    }
  }), a("ImportSpecifier", {
    visitor: ["local", "imported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, s.assertNodeType)("Identifier")
      },
      imported: {
        validate: (0, s.assertNodeType)("Identifier", "StringLiteral")
      },
      importKind: {
        validate: (0, s.assertOneOf)("type", "typeof", "value"),
        optional: !0
      }
    }
  }), a("ImportExpression", {
    visitor: ["source", "options"],
    aliases: ["Expression"],
    fields: {
      phase: {
        default: null,
        validate: (0, s.assertOneOf)("source", "defer")
      },
      source: {
        validate: (0, s.assertNodeType)("Expression")
      },
      options: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      }
    }
  }), a("MetaProperty", {
    visitor: ["meta", "property"],
    aliases: ["Expression"],
    fields: {
      meta: {
        validate: (0, s.chain)((0, s.assertNodeType)("Identifier"), Object.assign(function(m, g, y) {
          if (!process.env.BABEL_TYPES_8_BREAKING)
            return;
          let v;
          switch (y.name) {
            case "function":
              v = "sent";
              break;
            case "new":
              v = "target";
              break;
            case "import":
              v = "meta";
              break;
          }
          if (!(0, e.default)("Identifier", m.property, {
            name: v
          }))
            throw new TypeError("Unrecognised MetaProperty");
        }, {
          oneOfNodeTypes: ["Identifier"]
        }))
      },
      property: {
        validate: (0, s.assertNodeType)("Identifier")
      }
    }
  });
  const f = () => ({
    abstract: {
      validate: (0, s.assertValueType)("boolean"),
      optional: !0
    },
    accessibility: {
      validate: (0, s.assertOneOf)("public", "private", "protected"),
      optional: !0
    },
    static: {
      default: !1
    },
    override: {
      default: !1
    },
    computed: {
      default: !1
    },
    optional: {
      validate: (0, s.assertValueType)("boolean"),
      optional: !0
    },
    key: {
      validate: (0, s.chain)(function() {
        const m = (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"), g = (0, s.assertNodeType)("Expression");
        return function(y, v, T) {
          (y.computed ? g : m)(y, v, T);
        };
      }(), (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "Expression"))
    }
  });
  Ys.classMethodOrPropertyCommon = f;
  const h = () => Object.assign({}, o(), f(), {
    params: {
      validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Identifier", "Pattern", "RestElement", "TSParameterProperty")))
    },
    kind: {
      validate: (0, s.assertOneOf)("get", "set", "method", "constructor"),
      default: "method"
    },
    access: {
      validate: (0, s.chain)((0, s.assertValueType)("string"), (0, s.assertOneOf)("public", "private", "protected")),
      optional: !0
    },
    decorators: {
      validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
      optional: !0
    }
  });
  return Ys.classMethodOrDeclareMethodCommon = h, a("ClassMethod", {
    aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method"],
    builder: ["kind", "key", "params", "body", "computed", "static", "generator", "async"],
    visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"],
    fields: Object.assign({}, h(), l(), {
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      }
    })
  }), a("ObjectPattern", {
    visitor: ["properties", "typeAnnotation", "decorators"],
    builder: ["properties"],
    aliases: ["Pattern", "PatternLike", "LVal"],
    fields: Object.assign({}, c(), {
      properties: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("RestElement", "ObjectProperty")))
      }
    })
  }), a("SpreadElement", {
    visitor: ["argument"],
    aliases: ["UnaryLike"],
    deprecatedAlias: "SpreadProperty",
    fields: {
      argument: {
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("Super", {
    aliases: ["Expression"]
  }), a("TaggedTemplateExpression", {
    visitor: ["tag", "quasi", "typeParameters"],
    builder: ["tag", "quasi"],
    aliases: ["Expression"],
    fields: {
      tag: {
        validate: (0, s.assertNodeType)("Expression")
      },
      quasi: {
        validate: (0, s.assertNodeType)("TemplateLiteral")
      },
      typeParameters: {
        validate: (0, s.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      }
    }
  }), a("TemplateElement", {
    builder: ["value", "tail"],
    fields: {
      value: {
        validate: (0, s.chain)((0, s.assertShape)({
          raw: {
            validate: (0, s.assertValueType)("string")
          },
          cooked: {
            validate: (0, s.assertValueType)("string"),
            optional: !0
          }
        }), function(g) {
          const y = g.value.raw;
          let v = !1;
          const T = () => {
            throw new Error("Internal @babel/types error.");
          }, {
            str: S,
            firstInvalidLoc: P
          } = (0, i.readStringContents)("template", y, 0, 0, 0, {
            unterminated() {
              v = !0;
            },
            strictNumericEscape: T,
            invalidEscapeSequence: T,
            numericSeparatorInEscapeSequence: T,
            unexpectedNumericSeparator: T,
            invalidDigit: T,
            invalidCodePoint: T
          });
          if (!v)
            throw new Error("Invalid raw");
          g.value.cooked = P ? null : S;
        })
      },
      tail: {
        default: !1
      }
    }
  }), a("TemplateLiteral", {
    visitor: ["quasis", "expressions"],
    aliases: ["Expression", "Literal"],
    fields: {
      quasis: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("TemplateElement")))
      },
      expressions: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Expression", "TSType")), function(m, g, y) {
          if (m.quasis.length !== y.length + 1)
            throw new TypeError("Number of ".concat(m.type, " quasis should be exactly one more than the number of expressions.\nExpected ").concat(y.length + 1, " quasis but got ").concat(m.quasis.length));
        })
      }
    }
  }), a("YieldExpression", {
    builder: ["argument", "delegate"],
    visitor: ["argument"],
    aliases: ["Expression", "Terminatorless"],
    fields: {
      delegate: {
        validate: (0, s.chain)((0, s.assertValueType)("boolean"), Object.assign(function(m, g, y) {
          if (process.env.BABEL_TYPES_8_BREAKING && y && !m.argument)
            throw new TypeError("Property delegate of YieldExpression cannot be true if there is no argument");
        }, {
          type: "boolean"
        })),
        default: !1
      },
      argument: {
        optional: !0,
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("AwaitExpression", {
    builder: ["argument"],
    visitor: ["argument"],
    aliases: ["Expression", "Terminatorless"],
    fields: {
      argument: {
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("Import", {
    aliases: ["Expression"]
  }), a("BigIntLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, s.assertValueType)("string")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), a("ExportNamespaceSpecifier", {
    visitor: ["exported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      exported: {
        validate: (0, s.assertNodeType)("Identifier")
      }
    }
  }), a("OptionalMemberExpression", {
    builder: ["object", "property", "computed", "optional"],
    visitor: ["object", "property"],
    aliases: ["Expression"],
    fields: {
      object: {
        validate: (0, s.assertNodeType)("Expression")
      },
      property: {
        validate: function() {
          const m = (0, s.assertNodeType)("Identifier"), g = (0, s.assertNodeType)("Expression");
          return Object.assign(function(v, T, S) {
            (v.computed ? g : m)(v, T, S);
          }, {
            oneOfNodeTypes: ["Expression", "Identifier"]
          });
        }()
      },
      computed: {
        default: !1
      },
      optional: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.chain)((0, s.assertValueType)("boolean"), (0, s.assertOptionalChainStart)()) : (0, s.assertValueType)("boolean")
      }
    }
  }), a("OptionalCallExpression", {
    visitor: ["callee", "arguments", "typeParameters", "typeArguments"],
    builder: ["callee", "arguments", "optional"],
    aliases: ["Expression"],
    fields: {
      callee: {
        validate: (0, s.assertNodeType)("Expression")
      },
      arguments: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Expression", "SpreadElement", "JSXNamespacedName", "ArgumentPlaceholder")))
      },
      optional: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.chain)((0, s.assertValueType)("boolean"), (0, s.assertOptionalChainStart)()) : (0, s.assertValueType)("boolean")
      },
      typeArguments: {
        validate: (0, s.assertNodeType)("TypeParameterInstantiation"),
        optional: !0
      },
      typeParameters: {
        validate: (0, s.assertNodeType)("TSTypeParameterInstantiation"),
        optional: !0
      }
    }
  }), a("ClassProperty", {
    visitor: ["key", "value", "typeAnnotation", "decorators"],
    builder: ["key", "value", "typeAnnotation", "decorators", "computed", "static"],
    aliases: ["Property"],
    fields: Object.assign({}, f(), {
      value: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      definite: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      typeAnnotation: {
        validate: (0, s.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
        optional: !0
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      },
      readonly: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      declare: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      variance: {
        validate: (0, s.assertNodeType)("Variance"),
        optional: !0
      }
    })
  }), a("ClassAccessorProperty", {
    visitor: ["key", "value", "typeAnnotation", "decorators"],
    builder: ["key", "value", "typeAnnotation", "decorators", "computed", "static"],
    aliases: ["Property", "Accessor"],
    fields: Object.assign({}, f(), {
      key: {
        validate: (0, s.chain)(function() {
          const m = (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "PrivateName"), g = (0, s.assertNodeType)("Expression");
          return function(y, v, T) {
            (y.computed ? g : m)(y, v, T);
          };
        }(), (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "Expression", "PrivateName"))
      },
      value: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      definite: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      typeAnnotation: {
        validate: (0, s.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
        optional: !0
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      },
      readonly: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      declare: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      variance: {
        validate: (0, s.assertNodeType)("Variance"),
        optional: !0
      }
    })
  }), a("ClassPrivateProperty", {
    visitor: ["key", "value", "decorators", "typeAnnotation"],
    builder: ["key", "value", "decorators", "static"],
    aliases: ["Property", "Private"],
    fields: {
      key: {
        validate: (0, s.assertNodeType)("PrivateName")
      },
      value: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      typeAnnotation: {
        validate: (0, s.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
        optional: !0
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      },
      static: {
        validate: (0, s.assertValueType)("boolean"),
        default: !1
      },
      readonly: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      definite: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      variance: {
        validate: (0, s.assertNodeType)("Variance"),
        optional: !0
      }
    }
  }), a("ClassPrivateMethod", {
    builder: ["kind", "key", "params", "body", "static"],
    visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"],
    aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method", "Private"],
    fields: Object.assign({}, h(), l(), {
      kind: {
        validate: (0, s.assertOneOf)("get", "set", "method"),
        default: "method"
      },
      key: {
        validate: (0, s.assertNodeType)("PrivateName")
      },
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      }
    })
  }), a("PrivateName", {
    visitor: ["id"],
    aliases: ["Private"],
    fields: {
      id: {
        validate: (0, s.assertNodeType)("Identifier")
      }
    }
  }), a("StaticBlock", {
    visitor: ["body"],
    fields: {
      body: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Statement")))
      }
    },
    aliases: ["Scopable", "BlockParent", "FunctionParent"]
  }), Ys;
}
var TW = {}, SW;
function Y3e() {
  if (SW)
    return TW;
  SW = 1;
  var e = Vh();
  const t = (0, e.defineAliasedType)("Flow"), r = (i) => {
    const n = i === "DeclareClass";
    t(i, {
      builder: ["id", "typeParameters", "extends", "body"],
      visitor: ["id", "typeParameters", "extends", ...n ? ["mixins", "implements"] : [], "body"],
      aliases: ["FlowDeclaration", "Statement", "Declaration"],
      fields: Object.assign({
        id: (0, e.validateType)("Identifier"),
        typeParameters: (0, e.validateOptionalType)("TypeParameterDeclaration"),
        extends: (0, e.validateOptional)((0, e.arrayOfType)("InterfaceExtends"))
      }, n ? {
        mixins: (0, e.validateOptional)((0, e.arrayOfType)("InterfaceExtends")),
        implements: (0, e.validateOptional)((0, e.arrayOfType)("ClassImplements"))
      } : {}, {
        body: (0, e.validateType)("ObjectTypeAnnotation")
      })
    });
  };
  return t("AnyTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("ArrayTypeAnnotation", {
    visitor: ["elementType"],
    aliases: ["FlowType"],
    fields: {
      elementType: (0, e.validateType)("FlowType")
    }
  }), t("BooleanTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("BooleanLiteralTypeAnnotation", {
    builder: ["value"],
    aliases: ["FlowType"],
    fields: {
      value: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("NullLiteralTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("ClassImplements", {
    visitor: ["id", "typeParameters"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      typeParameters: (0, e.validateOptionalType)("TypeParameterInstantiation")
    }
  }), r("DeclareClass"), t("DeclareFunction", {
    visitor: ["id"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      predicate: (0, e.validateOptionalType)("DeclaredPredicate")
    }
  }), r("DeclareInterface"), t("DeclareModule", {
    builder: ["id", "body", "kind"],
    visitor: ["id", "body"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, e.validateType)(["Identifier", "StringLiteral"]),
      body: (0, e.validateType)("BlockStatement"),
      kind: (0, e.validateOptional)((0, e.assertOneOf)("CommonJS", "ES"))
    }
  }), t("DeclareModuleExports", {
    visitor: ["typeAnnotation"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      typeAnnotation: (0, e.validateType)("TypeAnnotation")
    }
  }), t("DeclareTypeAlias", {
    visitor: ["id", "typeParameters", "right"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      typeParameters: (0, e.validateOptionalType)("TypeParameterDeclaration"),
      right: (0, e.validateType)("FlowType")
    }
  }), t("DeclareOpaqueType", {
    visitor: ["id", "typeParameters", "supertype"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      typeParameters: (0, e.validateOptionalType)("TypeParameterDeclaration"),
      supertype: (0, e.validateOptionalType)("FlowType"),
      impltype: (0, e.validateOptionalType)("FlowType")
    }
  }), t("DeclareVariable", {
    visitor: ["id"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, e.validateType)("Identifier")
    }
  }), t("DeclareExportDeclaration", {
    visitor: ["declaration", "specifiers", "source"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      declaration: (0, e.validateOptionalType)("Flow"),
      specifiers: (0, e.validateOptional)((0, e.arrayOfType)(["ExportSpecifier", "ExportNamespaceSpecifier"])),
      source: (0, e.validateOptionalType)("StringLiteral"),
      default: (0, e.validateOptional)((0, e.assertValueType)("boolean"))
    }
  }), t("DeclareExportAllDeclaration", {
    visitor: ["source"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      source: (0, e.validateType)("StringLiteral"),
      exportKind: (0, e.validateOptional)((0, e.assertOneOf)("type", "value"))
    }
  }), t("DeclaredPredicate", {
    visitor: ["value"],
    aliases: ["FlowPredicate"],
    fields: {
      value: (0, e.validateType)("Flow")
    }
  }), t("ExistsTypeAnnotation", {
    aliases: ["FlowType"]
  }), t("FunctionTypeAnnotation", {
    visitor: ["typeParameters", "params", "rest", "returnType"],
    aliases: ["FlowType"],
    fields: {
      typeParameters: (0, e.validateOptionalType)("TypeParameterDeclaration"),
      params: (0, e.validate)((0, e.arrayOfType)("FunctionTypeParam")),
      rest: (0, e.validateOptionalType)("FunctionTypeParam"),
      this: (0, e.validateOptionalType)("FunctionTypeParam"),
      returnType: (0, e.validateType)("FlowType")
    }
  }), t("FunctionTypeParam", {
    visitor: ["name", "typeAnnotation"],
    fields: {
      name: (0, e.validateOptionalType)("Identifier"),
      typeAnnotation: (0, e.validateType)("FlowType"),
      optional: (0, e.validateOptional)((0, e.assertValueType)("boolean"))
    }
  }), t("GenericTypeAnnotation", {
    visitor: ["id", "typeParameters"],
    aliases: ["FlowType"],
    fields: {
      id: (0, e.validateType)(["Identifier", "QualifiedTypeIdentifier"]),
      typeParameters: (0, e.validateOptionalType)("TypeParameterInstantiation")
    }
  }), t("InferredPredicate", {
    aliases: ["FlowPredicate"]
  }), t("InterfaceExtends", {
    visitor: ["id", "typeParameters"],
    fields: {
      id: (0, e.validateType)(["Identifier", "QualifiedTypeIdentifier"]),
      typeParameters: (0, e.validateOptionalType)("TypeParameterInstantiation")
    }
  }), r("InterfaceDeclaration"), t("InterfaceTypeAnnotation", {
    visitor: ["extends", "body"],
    aliases: ["FlowType"],
    fields: {
      extends: (0, e.validateOptional)((0, e.arrayOfType)("InterfaceExtends")),
      body: (0, e.validateType)("ObjectTypeAnnotation")
    }
  }), t("IntersectionTypeAnnotation", {
    visitor: ["types"],
    aliases: ["FlowType"],
    fields: {
      types: (0, e.validate)((0, e.arrayOfType)("FlowType"))
    }
  }), t("MixedTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("EmptyTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("NullableTypeAnnotation", {
    visitor: ["typeAnnotation"],
    aliases: ["FlowType"],
    fields: {
      typeAnnotation: (0, e.validateType)("FlowType")
    }
  }), t("NumberLiteralTypeAnnotation", {
    builder: ["value"],
    aliases: ["FlowType"],
    fields: {
      value: (0, e.validate)((0, e.assertValueType)("number"))
    }
  }), t("NumberTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("ObjectTypeAnnotation", {
    visitor: ["properties", "indexers", "callProperties", "internalSlots"],
    aliases: ["FlowType"],
    builder: ["properties", "indexers", "callProperties", "internalSlots", "exact"],
    fields: {
      properties: (0, e.validate)((0, e.arrayOfType)(["ObjectTypeProperty", "ObjectTypeSpreadProperty"])),
      indexers: {
        validate: (0, e.arrayOfType)("ObjectTypeIndexer"),
        optional: !0,
        default: []
      },
      callProperties: {
        validate: (0, e.arrayOfType)("ObjectTypeCallProperty"),
        optional: !0,
        default: []
      },
      internalSlots: {
        validate: (0, e.arrayOfType)("ObjectTypeInternalSlot"),
        optional: !0,
        default: []
      },
      exact: {
        validate: (0, e.assertValueType)("boolean"),
        default: !1
      },
      inexact: (0, e.validateOptional)((0, e.assertValueType)("boolean"))
    }
  }), t("ObjectTypeInternalSlot", {
    visitor: ["id", "value", "optional", "static", "method"],
    aliases: ["UserWhitespacable"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      value: (0, e.validateType)("FlowType"),
      optional: (0, e.validate)((0, e.assertValueType)("boolean")),
      static: (0, e.validate)((0, e.assertValueType)("boolean")),
      method: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("ObjectTypeCallProperty", {
    visitor: ["value"],
    aliases: ["UserWhitespacable"],
    fields: {
      value: (0, e.validateType)("FlowType"),
      static: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("ObjectTypeIndexer", {
    visitor: ["id", "key", "value", "variance"],
    aliases: ["UserWhitespacable"],
    fields: {
      id: (0, e.validateOptionalType)("Identifier"),
      key: (0, e.validateType)("FlowType"),
      value: (0, e.validateType)("FlowType"),
      static: (0, e.validate)((0, e.assertValueType)("boolean")),
      variance: (0, e.validateOptionalType)("Variance")
    }
  }), t("ObjectTypeProperty", {
    visitor: ["key", "value", "variance"],
    aliases: ["UserWhitespacable"],
    fields: {
      key: (0, e.validateType)(["Identifier", "StringLiteral"]),
      value: (0, e.validateType)("FlowType"),
      kind: (0, e.validate)((0, e.assertOneOf)("init", "get", "set")),
      static: (0, e.validate)((0, e.assertValueType)("boolean")),
      proto: (0, e.validate)((0, e.assertValueType)("boolean")),
      optional: (0, e.validate)((0, e.assertValueType)("boolean")),
      variance: (0, e.validateOptionalType)("Variance"),
      method: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("ObjectTypeSpreadProperty", {
    visitor: ["argument"],
    aliases: ["UserWhitespacable"],
    fields: {
      argument: (0, e.validateType)("FlowType")
    }
  }), t("OpaqueType", {
    visitor: ["id", "typeParameters", "supertype", "impltype"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      typeParameters: (0, e.validateOptionalType)("TypeParameterDeclaration"),
      supertype: (0, e.validateOptionalType)("FlowType"),
      impltype: (0, e.validateType)("FlowType")
    }
  }), t("QualifiedTypeIdentifier", {
    visitor: ["id", "qualification"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      qualification: (0, e.validateType)(["Identifier", "QualifiedTypeIdentifier"])
    }
  }), t("StringLiteralTypeAnnotation", {
    builder: ["value"],
    aliases: ["FlowType"],
    fields: {
      value: (0, e.validate)((0, e.assertValueType)("string"))
    }
  }), t("StringTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("SymbolTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("ThisTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("TupleTypeAnnotation", {
    visitor: ["types"],
    aliases: ["FlowType"],
    fields: {
      types: (0, e.validate)((0, e.arrayOfType)("FlowType"))
    }
  }), t("TypeofTypeAnnotation", {
    visitor: ["argument"],
    aliases: ["FlowType"],
    fields: {
      argument: (0, e.validateType)("FlowType")
    }
  }), t("TypeAlias", {
    visitor: ["id", "typeParameters", "right"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      typeParameters: (0, e.validateOptionalType)("TypeParameterDeclaration"),
      right: (0, e.validateType)("FlowType")
    }
  }), t("TypeAnnotation", {
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, e.validateType)("FlowType")
    }
  }), t("TypeCastExpression", {
    visitor: ["expression", "typeAnnotation"],
    aliases: ["ExpressionWrapper", "Expression"],
    fields: {
      expression: (0, e.validateType)("Expression"),
      typeAnnotation: (0, e.validateType)("TypeAnnotation")
    }
  }), t("TypeParameter", {
    visitor: ["bound", "default", "variance"],
    fields: {
      name: (0, e.validate)((0, e.assertValueType)("string")),
      bound: (0, e.validateOptionalType)("TypeAnnotation"),
      default: (0, e.validateOptionalType)("FlowType"),
      variance: (0, e.validateOptionalType)("Variance")
    }
  }), t("TypeParameterDeclaration", {
    visitor: ["params"],
    fields: {
      params: (0, e.validate)((0, e.arrayOfType)("TypeParameter"))
    }
  }), t("TypeParameterInstantiation", {
    visitor: ["params"],
    fields: {
      params: (0, e.validate)((0, e.arrayOfType)("FlowType"))
    }
  }), t("UnionTypeAnnotation", {
    visitor: ["types"],
    aliases: ["FlowType"],
    fields: {
      types: (0, e.validate)((0, e.arrayOfType)("FlowType"))
    }
  }), t("Variance", {
    builder: ["kind"],
    fields: {
      kind: (0, e.validate)((0, e.assertOneOf)("minus", "plus"))
    }
  }), t("VoidTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("EnumDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "body"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      body: (0, e.validateType)(["EnumBooleanBody", "EnumNumberBody", "EnumStringBody", "EnumSymbolBody"])
    }
  }), t("EnumBooleanBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      explicitType: (0, e.validate)((0, e.assertValueType)("boolean")),
      members: (0, e.validateArrayOfType)("EnumBooleanMember"),
      hasUnknownMembers: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("EnumNumberBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      explicitType: (0, e.validate)((0, e.assertValueType)("boolean")),
      members: (0, e.validateArrayOfType)("EnumNumberMember"),
      hasUnknownMembers: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("EnumStringBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      explicitType: (0, e.validate)((0, e.assertValueType)("boolean")),
      members: (0, e.validateArrayOfType)(["EnumStringMember", "EnumDefaultedMember"]),
      hasUnknownMembers: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("EnumSymbolBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      members: (0, e.validateArrayOfType)("EnumDefaultedMember"),
      hasUnknownMembers: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("EnumBooleanMember", {
    aliases: ["EnumMember"],
    visitor: ["id"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      init: (0, e.validateType)("BooleanLiteral")
    }
  }), t("EnumNumberMember", {
    aliases: ["EnumMember"],
    visitor: ["id", "init"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      init: (0, e.validateType)("NumericLiteral")
    }
  }), t("EnumStringMember", {
    aliases: ["EnumMember"],
    visitor: ["id", "init"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      init: (0, e.validateType)("StringLiteral")
    }
  }), t("EnumDefaultedMember", {
    aliases: ["EnumMember"],
    visitor: ["id"],
    fields: {
      id: (0, e.validateType)("Identifier")
    }
  }), t("IndexedAccessType", {
    visitor: ["objectType", "indexType"],
    aliases: ["FlowType"],
    fields: {
      objectType: (0, e.validateType)("FlowType"),
      indexType: (0, e.validateType)("FlowType")
    }
  }), t("OptionalIndexedAccessType", {
    visitor: ["objectType", "indexType"],
    aliases: ["FlowType"],
    fields: {
      objectType: (0, e.validateType)("FlowType"),
      indexType: (0, e.validateType)("FlowType"),
      optional: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), TW;
}
var xW = {}, EW;
function X3e() {
  if (EW)
    return xW;
  EW = 1;
  var e = Vh();
  const t = (0, e.defineAliasedType)("JSX");
  return t("JSXAttribute", {
    visitor: ["name", "value"],
    aliases: ["Immutable"],
    fields: {
      name: {
        validate: (0, e.assertNodeType)("JSXIdentifier", "JSXNamespacedName")
      },
      value: {
        optional: !0,
        validate: (0, e.assertNodeType)("JSXElement", "JSXFragment", "StringLiteral", "JSXExpressionContainer")
      }
    }
  }), t("JSXClosingElement", {
    visitor: ["name"],
    aliases: ["Immutable"],
    fields: {
      name: {
        validate: (0, e.assertNodeType)("JSXIdentifier", "JSXMemberExpression", "JSXNamespacedName")
      }
    }
  }), t("JSXElement", {
    builder: ["openingElement", "closingElement", "children", "selfClosing"],
    visitor: ["openingElement", "children", "closingElement"],
    aliases: ["Immutable", "Expression"],
    fields: Object.assign({
      openingElement: {
        validate: (0, e.assertNodeType)("JSXOpeningElement")
      },
      closingElement: {
        optional: !0,
        validate: (0, e.assertNodeType)("JSXClosingElement")
      },
      children: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("JSXText", "JSXExpressionContainer", "JSXSpreadChild", "JSXElement", "JSXFragment")))
      }
    }, {
      selfClosing: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      }
    })
  }), t("JSXEmptyExpression", {}), t("JSXExpressionContainer", {
    visitor: ["expression"],
    aliases: ["Immutable"],
    fields: {
      expression: {
        validate: (0, e.assertNodeType)("Expression", "JSXEmptyExpression")
      }
    }
  }), t("JSXSpreadChild", {
    visitor: ["expression"],
    aliases: ["Immutable"],
    fields: {
      expression: {
        validate: (0, e.assertNodeType)("Expression")
      }
    }
  }), t("JSXIdentifier", {
    builder: ["name"],
    fields: {
      name: {
        validate: (0, e.assertValueType)("string")
      }
    }
  }), t("JSXMemberExpression", {
    visitor: ["object", "property"],
    fields: {
      object: {
        validate: (0, e.assertNodeType)("JSXMemberExpression", "JSXIdentifier")
      },
      property: {
        validate: (0, e.assertNodeType)("JSXIdentifier")
      }
    }
  }), t("JSXNamespacedName", {
    visitor: ["namespace", "name"],
    fields: {
      namespace: {
        validate: (0, e.assertNodeType)("JSXIdentifier")
      },
      name: {
        validate: (0, e.assertNodeType)("JSXIdentifier")
      }
    }
  }), t("JSXOpeningElement", {
    builder: ["name", "attributes", "selfClosing"],
    visitor: ["name", "attributes"],
    aliases: ["Immutable"],
    fields: {
      name: {
        validate: (0, e.assertNodeType)("JSXIdentifier", "JSXMemberExpression", "JSXNamespacedName")
      },
      selfClosing: {
        default: !1
      },
      attributes: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("JSXAttribute", "JSXSpreadAttribute")))
      },
      typeParameters: {
        validate: (0, e.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      }
    }
  }), t("JSXSpreadAttribute", {
    visitor: ["argument"],
    fields: {
      argument: {
        validate: (0, e.assertNodeType)("Expression")
      }
    }
  }), t("JSXText", {
    aliases: ["Immutable"],
    builder: ["value"],
    fields: {
      value: {
        validate: (0, e.assertValueType)("string")
      }
    }
  }), t("JSXFragment", {
    builder: ["openingFragment", "closingFragment", "children"],
    visitor: ["openingFragment", "children", "closingFragment"],
    aliases: ["Immutable", "Expression"],
    fields: {
      openingFragment: {
        validate: (0, e.assertNodeType)("JSXOpeningFragment")
      },
      closingFragment: {
        validate: (0, e.assertNodeType)("JSXClosingFragment")
      },
      children: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("JSXText", "JSXExpressionContainer", "JSXSpreadChild", "JSXElement", "JSXFragment")))
      }
    }
  }), t("JSXOpeningFragment", {
    aliases: ["Immutable"]
  }), t("JSXClosingFragment", {
    aliases: ["Immutable"]
  }), xW;
}
var PW = {}, Cp = {}, wW;
function zpe() {
  if (wW)
    return Cp;
  wW = 1, Object.defineProperty(Cp, "__esModule", {
    value: !0
  }), Cp.PLACEHOLDERS_FLIPPED_ALIAS = Cp.PLACEHOLDERS_ALIAS = Cp.PLACEHOLDERS = void 0;
  var e = Vh();
  const t = Cp.PLACEHOLDERS = ["Identifier", "StringLiteral", "Expression", "Statement", "Declaration", "BlockStatement", "ClassBody", "Pattern"], r = Cp.PLACEHOLDERS_ALIAS = {
    Declaration: ["Statement"],
    Pattern: ["PatternLike", "LVal"]
  };
  for (const n of t) {
    const s = e.ALIAS_KEYS[n];
    s != null && s.length && (r[n] = s);
  }
  const i = Cp.PLACEHOLDERS_FLIPPED_ALIAS = {};
  return Object.keys(r).forEach((n) => {
    r[n].forEach((s) => {
      Object.hasOwnProperty.call(i, s) || (i[s] = []), i[s].push(n);
    });
  }), Cp;
}
var AW;
function J3e() {
  if (AW)
    return PW;
  AW = 1;
  var e = Vh(), t = zpe();
  const r = (0, e.defineAliasedType)("Miscellaneous");
  return r("Noop", {
    visitor: []
  }), r("Placeholder", {
    visitor: [],
    builder: ["expectedNode", "name"],
    fields: {
      name: {
        validate: (0, e.assertNodeType)("Identifier")
      },
      expectedNode: {
        validate: (0, e.assertOneOf)(...t.PLACEHOLDERS)
      }
    }
  }), r("V8IntrinsicIdentifier", {
    builder: ["name"],
    fields: {
      name: {
        validate: (0, e.assertValueType)("string")
      }
    }
  }), PW;
}
var CW = {}, _W;
function Q3e() {
  if (_W)
    return CW;
  _W = 1;
  var e = Vh();
  return (0, e.default)("ArgumentPlaceholder", {}), (0, e.default)("BindExpression", {
    visitor: ["object", "callee"],
    aliases: ["Expression"],
    fields: process.env.BABEL_TYPES_8_BREAKING ? {
      object: {
        validate: (0, e.assertNodeType)("Expression")
      },
      callee: {
        validate: (0, e.assertNodeType)("Expression")
      }
    } : {
      object: {
        validate: Object.assign(() => {
        }, {
          oneOfNodeTypes: ["Expression"]
        })
      },
      callee: {
        validate: Object.assign(() => {
        }, {
          oneOfNodeTypes: ["Expression"]
        })
      }
    }
  }), (0, e.default)("ImportAttribute", {
    visitor: ["key", "value"],
    fields: {
      key: {
        validate: (0, e.assertNodeType)("Identifier", "StringLiteral")
      },
      value: {
        validate: (0, e.assertNodeType)("StringLiteral")
      }
    }
  }), (0, e.default)("Decorator", {
    visitor: ["expression"],
    fields: {
      expression: {
        validate: (0, e.assertNodeType)("Expression")
      }
    }
  }), (0, e.default)("DoExpression", {
    visitor: ["body"],
    builder: ["body", "async"],
    aliases: ["Expression"],
    fields: {
      body: {
        validate: (0, e.assertNodeType)("BlockStatement")
      },
      async: {
        validate: (0, e.assertValueType)("boolean"),
        default: !1
      }
    }
  }), (0, e.default)("ExportDefaultSpecifier", {
    visitor: ["exported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      exported: {
        validate: (0, e.assertNodeType)("Identifier")
      }
    }
  }), (0, e.default)("RecordExpression", {
    visitor: ["properties"],
    aliases: ["Expression"],
    fields: {
      properties: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("ObjectProperty", "SpreadElement")))
      }
    }
  }), (0, e.default)("TupleExpression", {
    fields: {
      elements: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("Expression", "SpreadElement"))),
        default: []
      }
    },
    visitor: ["elements"],
    aliases: ["Expression"]
  }), (0, e.default)("DecimalLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, e.assertValueType)("string")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), (0, e.default)("ModuleExpression", {
    visitor: ["body"],
    fields: {
      body: {
        validate: (0, e.assertNodeType)("Program")
      }
    },
    aliases: ["Expression"]
  }), (0, e.default)("TopicReference", {
    aliases: ["Expression"]
  }), (0, e.default)("PipelineTopicExpression", {
    builder: ["expression"],
    visitor: ["expression"],
    fields: {
      expression: {
        validate: (0, e.assertNodeType)("Expression")
      }
    },
    aliases: ["Expression"]
  }), (0, e.default)("PipelineBareFunction", {
    builder: ["callee"],
    visitor: ["callee"],
    fields: {
      callee: {
        validate: (0, e.assertNodeType)("Expression")
      }
    },
    aliases: ["Expression"]
  }), (0, e.default)("PipelinePrimaryTopicReference", {
    aliases: ["Expression"]
  }), CW;
}
var IW = {}, kW;
function Z3e() {
  if (kW)
    return IW;
  kW = 1;
  var e = Vh(), t = Kpe(), r = NT();
  const i = (0, e.defineAliasedType)("TypeScript"), n = (0, e.assertValueType)("boolean"), s = () => ({
    returnType: {
      validate: (0, e.assertNodeType)("TSTypeAnnotation", "Noop"),
      optional: !0
    },
    typeParameters: {
      validate: (0, e.assertNodeType)("TSTypeParameterDeclaration", "Noop"),
      optional: !0
    }
  });
  i("TSParameterProperty", {
    aliases: ["LVal"],
    visitor: ["parameter"],
    fields: {
      accessibility: {
        validate: (0, e.assertOneOf)("public", "private", "protected"),
        optional: !0
      },
      readonly: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      },
      parameter: {
        validate: (0, e.assertNodeType)("Identifier", "AssignmentPattern")
      },
      override: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      },
      decorators: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("Decorator"))),
        optional: !0
      }
    }
  }), i("TSDeclareFunction", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "typeParameters", "params", "returnType"],
    fields: Object.assign({}, (0, t.functionDeclarationCommon)(), s())
  }), i("TSDeclareMethod", {
    visitor: ["decorators", "key", "typeParameters", "params", "returnType"],
    fields: Object.assign({}, (0, t.classMethodOrDeclareMethodCommon)(), s())
  }), i("TSQualifiedName", {
    aliases: ["TSEntityName"],
    visitor: ["left", "right"],
    fields: {
      left: (0, e.validateType)("TSEntityName"),
      right: (0, e.validateType)("Identifier")
    }
  });
  const a = () => ({
    typeParameters: (0, e.validateOptionalType)("TSTypeParameterDeclaration"),
    parameters: (0, e.validateArrayOfType)(["ArrayPattern", "Identifier", "ObjectPattern", "RestElement"]),
    typeAnnotation: (0, e.validateOptionalType)("TSTypeAnnotation")
  }), o = {
    aliases: ["TSTypeElement"],
    visitor: ["typeParameters", "parameters", "typeAnnotation"],
    fields: a()
  };
  i("TSCallSignatureDeclaration", o), i("TSConstructSignatureDeclaration", o);
  const l = () => ({
    key: (0, e.validateType)("Expression"),
    computed: {
      default: !1
    },
    optional: (0, e.validateOptional)(n)
  });
  i("TSPropertySignature", {
    aliases: ["TSTypeElement"],
    visitor: ["key", "typeAnnotation"],
    fields: Object.assign({}, l(), {
      readonly: (0, e.validateOptional)(n),
      typeAnnotation: (0, e.validateOptionalType)("TSTypeAnnotation"),
      kind: {
        validate: (0, e.assertOneOf)("get", "set")
      }
    })
  }), i("TSMethodSignature", {
    aliases: ["TSTypeElement"],
    visitor: ["key", "typeParameters", "parameters", "typeAnnotation"],
    fields: Object.assign({}, a(), l(), {
      kind: {
        validate: (0, e.assertOneOf)("method", "get", "set")
      }
    })
  }), i("TSIndexSignature", {
    aliases: ["TSTypeElement"],
    visitor: ["parameters", "typeAnnotation"],
    fields: {
      readonly: (0, e.validateOptional)(n),
      static: (0, e.validateOptional)(n),
      parameters: (0, e.validateArrayOfType)("Identifier"),
      typeAnnotation: (0, e.validateOptionalType)("TSTypeAnnotation")
    }
  });
  const u = ["TSAnyKeyword", "TSBooleanKeyword", "TSBigIntKeyword", "TSIntrinsicKeyword", "TSNeverKeyword", "TSNullKeyword", "TSNumberKeyword", "TSObjectKeyword", "TSStringKeyword", "TSSymbolKeyword", "TSUndefinedKeyword", "TSUnknownKeyword", "TSVoidKeyword"];
  for (const m of u)
    i(m, {
      aliases: ["TSType", "TSBaseType"],
      visitor: [],
      fields: {}
    });
  i("TSThisType", {
    aliases: ["TSType", "TSBaseType"],
    visitor: [],
    fields: {}
  });
  const c = {
    aliases: ["TSType"],
    visitor: ["typeParameters", "parameters", "typeAnnotation"]
  };
  i("TSFunctionType", Object.assign({}, c, {
    fields: a()
  })), i("TSConstructorType", Object.assign({}, c, {
    fields: Object.assign({}, a(), {
      abstract: (0, e.validateOptional)(n)
    })
  })), i("TSTypeReference", {
    aliases: ["TSType"],
    visitor: ["typeName", "typeParameters"],
    fields: {
      typeName: (0, e.validateType)("TSEntityName"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterInstantiation")
    }
  }), i("TSTypePredicate", {
    aliases: ["TSType"],
    visitor: ["parameterName", "typeAnnotation"],
    builder: ["parameterName", "typeAnnotation", "asserts"],
    fields: {
      parameterName: (0, e.validateType)(["Identifier", "TSThisType"]),
      typeAnnotation: (0, e.validateOptionalType)("TSTypeAnnotation"),
      asserts: (0, e.validateOptional)(n)
    }
  }), i("TSTypeQuery", {
    aliases: ["TSType"],
    visitor: ["exprName", "typeParameters"],
    fields: {
      exprName: (0, e.validateType)(["TSEntityName", "TSImportType"]),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterInstantiation")
    }
  }), i("TSTypeLiteral", {
    aliases: ["TSType"],
    visitor: ["members"],
    fields: {
      members: (0, e.validateArrayOfType)("TSTypeElement")
    }
  }), i("TSArrayType", {
    aliases: ["TSType"],
    visitor: ["elementType"],
    fields: {
      elementType: (0, e.validateType)("TSType")
    }
  }), i("TSTupleType", {
    aliases: ["TSType"],
    visitor: ["elementTypes"],
    fields: {
      elementTypes: (0, e.validateArrayOfType)(["TSType", "TSNamedTupleMember"])
    }
  }), i("TSOptionalType", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, e.validateType)("TSType")
    }
  }), i("TSRestType", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, e.validateType)("TSType")
    }
  }), i("TSNamedTupleMember", {
    visitor: ["label", "elementType"],
    builder: ["label", "elementType", "optional"],
    fields: {
      label: (0, e.validateType)("Identifier"),
      optional: {
        validate: n,
        default: !1
      },
      elementType: (0, e.validateType)("TSType")
    }
  });
  const f = {
    aliases: ["TSType"],
    visitor: ["types"],
    fields: {
      types: (0, e.validateArrayOfType)("TSType")
    }
  };
  i("TSUnionType", f), i("TSIntersectionType", f), i("TSConditionalType", {
    aliases: ["TSType"],
    visitor: ["checkType", "extendsType", "trueType", "falseType"],
    fields: {
      checkType: (0, e.validateType)("TSType"),
      extendsType: (0, e.validateType)("TSType"),
      trueType: (0, e.validateType)("TSType"),
      falseType: (0, e.validateType)("TSType")
    }
  }), i("TSInferType", {
    aliases: ["TSType"],
    visitor: ["typeParameter"],
    fields: {
      typeParameter: (0, e.validateType)("TSTypeParameter")
    }
  }), i("TSParenthesizedType", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, e.validateType)("TSType")
    }
  }), i("TSTypeOperator", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      operator: (0, e.validate)((0, e.assertValueType)("string")),
      typeAnnotation: (0, e.validateType)("TSType")
    }
  }), i("TSIndexedAccessType", {
    aliases: ["TSType"],
    visitor: ["objectType", "indexType"],
    fields: {
      objectType: (0, e.validateType)("TSType"),
      indexType: (0, e.validateType)("TSType")
    }
  }), i("TSMappedType", {
    aliases: ["TSType"],
    visitor: ["typeParameter", "typeAnnotation", "nameType"],
    fields: {
      readonly: (0, e.validateOptional)((0, e.assertOneOf)(!0, !1, "+", "-")),
      typeParameter: (0, e.validateType)("TSTypeParameter"),
      optional: (0, e.validateOptional)((0, e.assertOneOf)(!0, !1, "+", "-")),
      typeAnnotation: (0, e.validateOptionalType)("TSType"),
      nameType: (0, e.validateOptionalType)("TSType")
    }
  }), i("TSLiteralType", {
    aliases: ["TSType", "TSBaseType"],
    visitor: ["literal"],
    fields: {
      literal: {
        validate: function() {
          const m = (0, e.assertNodeType)("NumericLiteral", "BigIntLiteral"), g = (0, e.assertOneOf)("-"), y = (0, e.assertNodeType)("NumericLiteral", "StringLiteral", "BooleanLiteral", "BigIntLiteral", "TemplateLiteral");
          function v(T, S, P) {
            (0, r.default)("UnaryExpression", P) ? (g(P, "operator", P.operator), m(P, "argument", P.argument)) : y(T, S, P);
          }
          return v.oneOfNodeTypes = ["NumericLiteral", "StringLiteral", "BooleanLiteral", "BigIntLiteral", "TemplateLiteral", "UnaryExpression"], v;
        }()
      }
    }
  }), i("TSExpressionWithTypeArguments", {
    aliases: ["TSType"],
    visitor: ["expression", "typeParameters"],
    fields: {
      expression: (0, e.validateType)("TSEntityName"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterInstantiation")
    }
  }), i("TSInterfaceDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "typeParameters", "extends", "body"],
    fields: {
      declare: (0, e.validateOptional)(n),
      id: (0, e.validateType)("Identifier"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterDeclaration"),
      extends: (0, e.validateOptional)((0, e.arrayOfType)("TSExpressionWithTypeArguments")),
      body: (0, e.validateType)("TSInterfaceBody")
    }
  }), i("TSInterfaceBody", {
    visitor: ["body"],
    fields: {
      body: (0, e.validateArrayOfType)("TSTypeElement")
    }
  }), i("TSTypeAliasDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "typeParameters", "typeAnnotation"],
    fields: {
      declare: (0, e.validateOptional)(n),
      id: (0, e.validateType)("Identifier"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterDeclaration"),
      typeAnnotation: (0, e.validateType)("TSType")
    }
  }), i("TSInstantiationExpression", {
    aliases: ["Expression"],
    visitor: ["expression", "typeParameters"],
    fields: {
      expression: (0, e.validateType)("Expression"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterInstantiation")
    }
  });
  const h = {
    aliases: ["Expression", "LVal", "PatternLike"],
    visitor: ["expression", "typeAnnotation"],
    fields: {
      expression: (0, e.validateType)("Expression"),
      typeAnnotation: (0, e.validateType)("TSType")
    }
  };
  return i("TSAsExpression", h), i("TSSatisfiesExpression", h), i("TSTypeAssertion", {
    aliases: ["Expression", "LVal", "PatternLike"],
    visitor: ["typeAnnotation", "expression"],
    fields: {
      typeAnnotation: (0, e.validateType)("TSType"),
      expression: (0, e.validateType)("Expression")
    }
  }), i("TSEnumDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "members"],
    fields: {
      declare: (0, e.validateOptional)(n),
      const: (0, e.validateOptional)(n),
      id: (0, e.validateType)("Identifier"),
      members: (0, e.validateArrayOfType)("TSEnumMember"),
      initializer: (0, e.validateOptionalType)("Expression")
    }
  }), i("TSEnumMember", {
    visitor: ["id", "initializer"],
    fields: {
      id: (0, e.validateType)(["Identifier", "StringLiteral"]),
      initializer: (0, e.validateOptionalType)("Expression")
    }
  }), i("TSModuleDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "body"],
    fields: {
      declare: (0, e.validateOptional)(n),
      global: (0, e.validateOptional)(n),
      id: (0, e.validateType)(["Identifier", "StringLiteral"]),
      body: (0, e.validateType)(["TSModuleBlock", "TSModuleDeclaration"])
    }
  }), i("TSModuleBlock", {
    aliases: ["Scopable", "Block", "BlockParent", "FunctionParent"],
    visitor: ["body"],
    fields: {
      body: (0, e.validateArrayOfType)("Statement")
    }
  }), i("TSImportType", {
    aliases: ["TSType"],
    visitor: ["argument", "qualifier", "typeParameters"],
    fields: {
      argument: (0, e.validateType)("StringLiteral"),
      qualifier: (0, e.validateOptionalType)("TSEntityName"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterInstantiation")
    }
  }), i("TSImportEqualsDeclaration", {
    aliases: ["Statement"],
    visitor: ["id", "moduleReference"],
    fields: {
      isExport: (0, e.validate)(n),
      id: (0, e.validateType)("Identifier"),
      moduleReference: (0, e.validateType)(["TSEntityName", "TSExternalModuleReference"]),
      importKind: {
        validate: (0, e.assertOneOf)("type", "value"),
        optional: !0
      }
    }
  }), i("TSExternalModuleReference", {
    visitor: ["expression"],
    fields: {
      expression: (0, e.validateType)("StringLiteral")
    }
  }), i("TSNonNullExpression", {
    aliases: ["Expression", "LVal", "PatternLike"],
    visitor: ["expression"],
    fields: {
      expression: (0, e.validateType)("Expression")
    }
  }), i("TSExportAssignment", {
    aliases: ["Statement"],
    visitor: ["expression"],
    fields: {
      expression: (0, e.validateType)("Expression")
    }
  }), i("TSNamespaceExportDeclaration", {
    aliases: ["Statement"],
    visitor: ["id"],
    fields: {
      id: (0, e.validateType)("Identifier")
    }
  }), i("TSTypeAnnotation", {
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: {
        validate: (0, e.assertNodeType)("TSType")
      }
    }
  }), i("TSTypeParameterInstantiation", {
    visitor: ["params"],
    fields: {
      params: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("TSType")))
      }
    }
  }), i("TSTypeParameterDeclaration", {
    visitor: ["params"],
    fields: {
      params: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("TSTypeParameter")))
      }
    }
  }), i("TSTypeParameter", {
    builder: ["constraint", "default", "name"],
    visitor: ["constraint", "default"],
    fields: {
      name: {
        validate: (0, e.assertValueType)("string")
      },
      in: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      },
      out: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      },
      const: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      },
      constraint: {
        validate: (0, e.assertNodeType)("TSType"),
        optional: !0
      },
      default: {
        validate: (0, e.assertNodeType)("TSType"),
        optional: !0
      }
    }
  }), IW;
}
var IC = {};
Object.defineProperty(IC, "__esModule", {
  value: !0
});
IC.DEPRECATED_ALIASES = void 0;
IC.DEPRECATED_ALIASES = {
  ModuleDeclaration: "ImportOrExportDeclaration"
};
var OW;
function Uc() {
  return OW || (OW = 1, function(e) {
    Object.defineProperty(e, "__esModule", {
      value: !0
    }), Object.defineProperty(e, "ALIAS_KEYS", {
      enumerable: !0,
      get: function() {
        return r.ALIAS_KEYS;
      }
    }), Object.defineProperty(e, "BUILDER_KEYS", {
      enumerable: !0,
      get: function() {
        return r.BUILDER_KEYS;
      }
    }), Object.defineProperty(e, "DEPRECATED_ALIASES", {
      enumerable: !0,
      get: function() {
        return n.DEPRECATED_ALIASES;
      }
    }), Object.defineProperty(e, "DEPRECATED_KEYS", {
      enumerable: !0,
      get: function() {
        return r.DEPRECATED_KEYS;
      }
    }), Object.defineProperty(e, "FLIPPED_ALIAS_KEYS", {
      enumerable: !0,
      get: function() {
        return r.FLIPPED_ALIAS_KEYS;
      }
    }), Object.defineProperty(e, "NODE_FIELDS", {
      enumerable: !0,
      get: function() {
        return r.NODE_FIELDS;
      }
    }), Object.defineProperty(e, "NODE_PARENT_VALIDATIONS", {
      enumerable: !0,
      get: function() {
        return r.NODE_PARENT_VALIDATIONS;
      }
    }), Object.defineProperty(e, "PLACEHOLDERS", {
      enumerable: !0,
      get: function() {
        return i.PLACEHOLDERS;
      }
    }), Object.defineProperty(e, "PLACEHOLDERS_ALIAS", {
      enumerable: !0,
      get: function() {
        return i.PLACEHOLDERS_ALIAS;
      }
    }), Object.defineProperty(e, "PLACEHOLDERS_FLIPPED_ALIAS", {
      enumerable: !0,
      get: function() {
        return i.PLACEHOLDERS_FLIPPED_ALIAS;
      }
    }), e.TYPES = void 0, Object.defineProperty(e, "VISITOR_KEYS", {
      enumerable: !0,
      get: function() {
        return r.VISITOR_KEYS;
      }
    });
    var t = Z$;
    Kpe(), Y3e(), X3e(), J3e(), Q3e(), Z3e();
    var r = Vh(), i = zpe(), n = IC;
    Object.keys(n.DEPRECATED_ALIASES).forEach((s) => {
      r.FLIPPED_ALIAS_KEYS[s] = r.FLIPPED_ALIAS_KEYS[n.DEPRECATED_ALIASES[s]];
    }), t(r.VISITOR_KEYS), t(r.ALIAS_KEYS), t(r.FLIPPED_ALIAS_KEYS), t(r.NODE_FIELDS), t(r.BUILDER_KEYS), t(r.DEPRECATED_KEYS), t(i.PLACEHOLDERS_ALIAS), t(i.PLACEHOLDERS_FLIPPED_ALIAS), e.TYPES = [].concat(Object.keys(r.VISITOR_KEYS), Object.keys(r.FLIPPED_ALIAS_KEYS), Object.keys(r.DEPRECATED_KEYS));
  }(vM)), vM;
}
var NW;
function i6() {
  if (NW)
    return _m;
  NW = 1, Object.defineProperty(_m, "__esModule", {
    value: !0
  }), _m.default = t, _m.validateChild = i, _m.validateField = r;
  var e = Uc();
  function t(n, s, a) {
    if (!n)
      return;
    const o = e.NODE_FIELDS[n.type];
    if (!o)
      return;
    const l = o[s];
    r(n, s, a, l), i(n, s, a);
  }
  function r(n, s, a, o) {
    o != null && o.validate && (o.optional && a == null || o.validate(n, s, a));
  }
  function i(n, s, a) {
    if (a == null)
      return;
    const o = e.NODE_PARENT_VALIDATIONS[a.type];
    o && o(n, s, a);
  }
  return _m;
}
var DW;
function eBe() {
  if (DW)
    return ex;
  DW = 1, Object.defineProperty(ex, "__esModule", {
    value: !0
  }), ex.default = r;
  var e = i6(), t = Nr();
  function r(i) {
    const n = t.BUILDER_KEYS[i.type];
    for (const s of n)
      (0, e.default)(i, s, i[s]);
    return i;
  }
  return ex;
}
var LW;
function Va() {
  if (LW)
    return Ce;
  LW = 1, Object.defineProperty(Ce, "__esModule", {
    value: !0
  }), Ce.anyTypeAnnotation = en, Ce.argumentPlaceholder = Ca, Ce.arrayExpression = r, Ce.arrayPattern = st, Ce.arrayTypeAnnotation = bi, Ce.arrowFunctionExpression = Se, Ce.assignmentExpression = i, Ce.assignmentPattern = Xe, Ce.awaitExpression = ht, Ce.bigIntLiteral = Ot, Ce.binaryExpression = n, Ce.bindExpression = Yo, Ce.blockStatement = l, Ce.booleanLiteral = q, Ce.booleanLiteralTypeAnnotation = us, Ce.booleanTypeAnnotation = No, Ce.breakStatement = u, Ce.callExpression = c, Ce.catchClause = f, Ce.classAccessorProperty = Ai, Ce.classBody = oe, Ce.classDeclaration = se, Ce.classExpression = te, Ce.classImplements = As, Ce.classMethod = ie, Ce.classPrivateMethod = Nn, Ce.classPrivateProperty = an, Ce.classProperty = kr, Ce.conditionalExpression = h, Ce.continueStatement = m, Ce.debuggerStatement = g, Ce.decimalLiteral = Jo, Ce.declareClass = ba, Ce.declareExportAllDeclaration = za, Ce.declareExportDeclaration = Ka, Ce.declareFunction = Bn, Ce.declareInterface = cs, Ce.declareModule = Do, Ce.declareModuleExports = ps, Ce.declareOpaqueType = Lo, Ce.declareTypeAlias = va, Ce.declareVariable = Ta, Ce.declaredPredicate = Ga, Ce.decorator = Iu, Ce.directive = a, Ce.directiveLiteral = o, Ce.doExpression = ku, Ce.doWhileStatement = y, Ce.emptyStatement = v, Ce.emptyTypeAnnotation = Bo, Ce.enumBooleanBody = Pa, Ce.enumBooleanMember = qo, Ce.enumDeclaration = Uo, Ce.enumDefaultedMember = bu, Ce.enumNumberBody = Ws, Ce.enumNumberMember = gu, Ce.enumStringBody = ro, Ce.enumStringMember = io, Ce.enumSymbolBody = wa, Ce.existsTypeAnnotation = Ya, Ce.exportAllDeclaration = re, Ce.exportDefaultDeclaration = Te, Ce.exportDefaultSpecifier = Ou, Ce.exportNamedDeclaration = ze, Ce.exportNamespaceSpecifier = Tt, Ce.exportSpecifier = Ze, Ce.expressionStatement = T, Ce.file = S, Ce.forInStatement = P, Ce.forOfStatement = pt, Ce.forStatement = x, Ce.functionDeclaration = C, Ce.functionExpression = D, Ce.functionTypeAnnotation = Us, Ce.functionTypeParam = Sa, Ce.genericTypeAnnotation = Mo, Ce.identifier = w, Ce.ifStatement = A, Ce.import = Rt, Ce.importAttribute = _u, Ce.importDeclaration = ut, Ce.importDefaultSpecifier = bt, Ce.importExpression = pe, Ce.importNamespaceSpecifier = vt, Ce.importSpecifier = ge, Ce.indexedAccessType = Vo, Ce.inferredPredicate = Cs, Ce.interfaceDeclaration = xa, Ce.interfaceExtends = tu, Ce.interfaceTypeAnnotation = Ro, Ce.interpreterDirective = s, Ce.intersectionTypeAnnotation = ru, Ce.jSXAttribute = Ce.jsxAttribute = Wo, Ce.jSXClosingElement = Ce.jsxClosingElement = vu, Ce.jSXClosingFragment = Ce.jsxClosingFragment = Cu, Ce.jSXElement = Ce.jsxElement = Tu, Ce.jSXEmptyExpression = Ce.jsxEmptyExpression = no, Ce.jSXExpressionContainer = Ce.jsxExpressionContainer = Ho, Ce.jSXFragment = Ce.jsxFragment = wu, Ce.jSXIdentifier = Ce.jsxIdentifier = Su, Ce.jSXMemberExpression = Ce.jsxMemberExpression = xu, Ce.jSXNamespacedName = Ce.jsxNamespacedName = Hs, Ce.jSXOpeningElement = Ce.jsxOpeningElement = Eu, Ce.jSXOpeningFragment = Ce.jsxOpeningFragment = Au, Ce.jSXSpreadAttribute = Ce.jsxSpreadAttribute = es, Ce.jSXSpreadChild = Ce.jsxSpreadChild = Ko, Ce.jSXText = Ce.jsxText = Pu, Ce.labeledStatement = I, Ce.logicalExpression = N, Ce.memberExpression = M, Ce.metaProperty = $e, Ce.mixedTypeAnnotation = iu, Ce.moduleExpression = _a, Ce.newExpression = R, Ce.noop = zo, Ce.nullLiteral = F, Ce.nullLiteralTypeAnnotation = ga, Ce.nullableTypeAnnotation = Fo, Ce.numberLiteral = Ks, Ce.numberLiteralTypeAnnotation = Zn, Ce.numberTypeAnnotation = nu, Ce.numericLiteral = O, Ce.objectExpression = V, Ce.objectMethod = K, Ce.objectPattern = Q, Ce.objectProperty = z, Ce.objectTypeAnnotation = su, Ce.objectTypeCallProperty = jo, Ce.objectTypeIndexer = ou, Ce.objectTypeInternalSlot = au, Ce.objectTypeProperty = Ea, Ce.objectTypeSpreadProperty = Xa, Ce.opaqueType = Ja, Ce.optionalCallExpression = lr, Ce.optionalIndexedAccessType = Aa, Ce.optionalMemberExpression = lt, Ce.parenthesizedExpression = le, Ce.pipelineBareFunction = Nu, Ce.pipelinePrimaryTopicReference = Ia, Ce.pipelineTopicExpression = Is, Ce.placeholder = so, Ce.privateName = on, Ce.program = $, Ce.qualifiedTypeIdentifier = Qa, Ce.recordExpression = Xo, Ce.regExpLiteral = j, Ce.regexLiteral = fl, Ce.restElement = W, Ce.restProperty = bc, Ce.returnStatement = Y, Ce.sequenceExpression = G, Ce.spreadElement = X, Ce.spreadProperty = B, Ce.staticBlock = _n, Ce.stringLiteral = L, Ce.stringLiteralTypeAnnotation = lu, Ce.stringTypeAnnotation = uu, Ce.super = ce, Ce.switchCase = ne, Ce.switchStatement = ae, Ce.symbolTypeAnnotation = cu, Ce.taggedTemplateExpression = U, Ce.templateElement = Ee, Ce.templateLiteral = Qe, Ce.thisExpression = be, Ce.thisTypeAnnotation = pu, Ce.throwStatement = ye, Ce.topicReference = Qo, Ce.tryStatement = fe, Ce.tSAnyKeyword = Ce.tsAnyKeyword = Wt, Ce.tSArrayType = Ce.tsArrayType = Ft, Ce.tSAsExpression = Ce.tsAsExpression = ul, Ce.tSBigIntKeyword = Ce.tsBigIntKeyword = Zo, Ce.tSBooleanKeyword = Ce.tsBooleanKeyword = Fu, Ce.tSCallSignatureDeclaration = Ce.tsCallSignatureDeclaration = Lu, Ce.tSConditionalType = Ce.tsConditionalType = il, Ce.tSConstructSignatureDeclaration = Ce.tsConstructSignatureDeclaration = Gn, Ce.tSConstructorType = Ce.tsConstructorType = el, Ce.tSDeclareFunction = Ce.tsDeclareFunction = ka, Ce.tSDeclareMethod = Ce.tsDeclareMethod = Oa, Ce.tSEnumDeclaration = Ce.tsEnumDeclaration = oc, Ce.tSEnumMember = Ce.tsEnumMember = lc, Ce.tSExportAssignment = Ce.tsExportAssignment = pl, Ce.tSExpressionWithTypeArguments = Ce.tsExpressionWithTypeArguments = hs, Ce.tSExternalModuleReference = Ce.tsExternalModuleReference = pc, Ce.tSFunctionType = Ce.tsFunctionType = zu, Ce.tSImportEqualsDeclaration = Ce.tsImportEqualsDeclaration = lo, Ce.tSImportType = Ce.tsImportType = cc, Ce.tSIndexSignature = Ce.tsIndexSignature = Bu, Ce.tSIndexedAccessType = Ce.tsIndexedAccessType = ic, Ce.tSInferType = Ce.tsInferType = rc, Ce.tSInstantiationExpression = Ce.tsInstantiationExpression = sc, Ce.tSInterfaceBody = Ce.tsInterfaceBody = ol, Ce.tSInterfaceDeclaration = Ce.tsInterfaceDeclaration = al, Ce.tSIntersectionType = Ce.tsIntersectionType = tc, Ce.tSIntrinsicKeyword = Ce.tsIntrinsicKeyword = ju, Ce.tSLiteralType = Ce.tsLiteralType = Di, Ce.tSMappedType = Ce.tsMappedType = nc, Ce.tSMethodSignature = Ce.tsMethodSignature = Ru, Ce.tSModuleBlock = Ce.tsModuleBlock = uc, Ce.tSModuleDeclaration = Ce.tsModuleDeclaration = oo, Ce.tSNamedTupleMember = Ce.tsNamedTupleMember = Zu, Ce.tSNamespaceExportDeclaration = Ce.tsNamespaceExportDeclaration = hc, Ce.tSNeverKeyword = Ce.tsNeverKeyword = $u, Ce.tSNonNullExpression = Ce.tsNonNullExpression = fc, Ce.tSNullKeyword = Ce.tsNullKeyword = Uu, Ce.tSNumberKeyword = Ce.tsNumberKeyword = qu, Ce.tSObjectKeyword = Ce.tsObjectKeyword = Vu, Ce.tSOptionalType = Ce.tsOptionalType = rl, Ce.tSParameterProperty = Ce.tsParameterProperty = Du, Ce.tSParenthesizedType = Ce.tsParenthesizedType = nl, Ce.tSPropertySignature = Ce.tsPropertySignature = Mu, Ce.tSQualifiedName = Ce.tsQualifiedName = ao, Ce.tSRestType = Ce.tsRestType = Qu, Ce.tSSatisfiesExpression = Ce.tsSatisfiesExpression = ac, Ce.tSStringKeyword = Ce.tsStringKeyword = fs, Ce.tSSymbolKeyword = Ce.tsSymbolKeyword = ts, Ce.tSThisType = Ce.tsThisType = Ku, Ce.tSTupleType = Ce.tsTupleType = Ju, Ce.tSTypeAliasDeclaration = Ce.tsTypeAliasDeclaration = ll, Ce.tSTypeAnnotation = Ce.tsTypeAnnotation = dc, Ce.tSTypeAssertion = Ce.tsTypeAssertion = cl, Ce.tSTypeLiteral = Ce.tsTypeLiteral = tl, Ce.tSTypeOperator = Ce.tsTypeOperator = sl, Ce.tSTypeParameter = Ce.tsTypeParameter = gc, Ce.tSTypeParameterDeclaration = Ce.tsTypeParameterDeclaration = yc, Ce.tSTypeParameterInstantiation = Ce.tsTypeParameterInstantiation = mc, Ce.tSTypePredicate = Ce.tsTypePredicate = Yu, Ce.tSTypeQuery = Ce.tsTypeQuery = Xu, Ce.tSTypeReference = Ce.tsTypeReference = Gu, Ce.tSUndefinedKeyword = Ce.tsUndefinedKeyword = ks, Ce.tSUnionType = Ce.tsUnionType = ec, Ce.tSUnknownKeyword = Ce.tsUnknownKeyword = Wu, Ce.tSVoidKeyword = Ce.tsVoidKeyword = Hu, Ce.tupleExpression = _s, Ce.tupleTypeAnnotation = Za, Ce.typeAlias = to, Ce.typeAnnotation = fu, Ce.typeCastExpression = hu, Ce.typeParameter = du, Ce.typeParameterDeclaration = $o, Ce.typeParameterInstantiation = mu, Ce.typeofTypeAnnotation = eo, Ce.unaryExpression = Z, Ce.unionTypeAnnotation = qs, Ce.updateExpression = ue, Ce.v8IntrinsicIdentifier = Go, Ce.variableDeclaration = me, Ce.variableDeclarator = xe, Ce.variance = Vs, Ce.voidTypeAnnotation = yu, Ce.whileStatement = Pe, Ce.withStatement = ve, Ce.yieldExpression = ft;
  var e = eBe(), t = vg;
  function r(d = []) {
    return (0, e.default)({
      type: "ArrayExpression",
      elements: d
    });
  }
  function i(d, p, b) {
    return (0, e.default)({
      type: "AssignmentExpression",
      operator: d,
      left: p,
      right: b
    });
  }
  function n(d, p, b) {
    return (0, e.default)({
      type: "BinaryExpression",
      operator: d,
      left: p,
      right: b
    });
  }
  function s(d) {
    return (0, e.default)({
      type: "InterpreterDirective",
      value: d
    });
  }
  function a(d) {
    return (0, e.default)({
      type: "Directive",
      value: d
    });
  }
  function o(d) {
    return (0, e.default)({
      type: "DirectiveLiteral",
      value: d
    });
  }
  function l(d, p = []) {
    return (0, e.default)({
      type: "BlockStatement",
      body: d,
      directives: p
    });
  }
  function u(d = null) {
    return (0, e.default)({
      type: "BreakStatement",
      label: d
    });
  }
  function c(d, p) {
    return (0, e.default)({
      type: "CallExpression",
      callee: d,
      arguments: p
    });
  }
  function f(d = null, p) {
    return (0, e.default)({
      type: "CatchClause",
      param: d,
      body: p
    });
  }
  function h(d, p, b) {
    return (0, e.default)({
      type: "ConditionalExpression",
      test: d,
      consequent: p,
      alternate: b
    });
  }
  function m(d = null) {
    return (0, e.default)({
      type: "ContinueStatement",
      label: d
    });
  }
  function g() {
    return {
      type: "DebuggerStatement"
    };
  }
  function y(d, p) {
    return (0, e.default)({
      type: "DoWhileStatement",
      test: d,
      body: p
    });
  }
  function v() {
    return {
      type: "EmptyStatement"
    };
  }
  function T(d) {
    return (0, e.default)({
      type: "ExpressionStatement",
      expression: d
    });
  }
  function S(d, p = null, b = null) {
    return (0, e.default)({
      type: "File",
      program: d,
      comments: p,
      tokens: b
    });
  }
  function P(d, p, b) {
    return (0, e.default)({
      type: "ForInStatement",
      left: d,
      right: p,
      body: b
    });
  }
  function x(d = null, p = null, b = null, _) {
    return (0, e.default)({
      type: "ForStatement",
      init: d,
      test: p,
      update: b,
      body: _
    });
  }
  function C(d = null, p, b, _ = !1, H = !1) {
    return (0, e.default)({
      type: "FunctionDeclaration",
      id: d,
      params: p,
      body: b,
      generator: _,
      async: H
    });
  }
  function D(d = null, p, b, _ = !1, H = !1) {
    return (0, e.default)({
      type: "FunctionExpression",
      id: d,
      params: p,
      body: b,
      generator: _,
      async: H
    });
  }
  function w(d) {
    return (0, e.default)({
      type: "Identifier",
      name: d
    });
  }
  function A(d, p, b = null) {
    return (0, e.default)({
      type: "IfStatement",
      test: d,
      consequent: p,
      alternate: b
    });
  }
  function I(d, p) {
    return (0, e.default)({
      type: "LabeledStatement",
      label: d,
      body: p
    });
  }
  function L(d) {
    return (0, e.default)({
      type: "StringLiteral",
      value: d
    });
  }
  function O(d) {
    return (0, e.default)({
      type: "NumericLiteral",
      value: d
    });
  }
  function F() {
    return {
      type: "NullLiteral"
    };
  }
  function q(d) {
    return (0, e.default)({
      type: "BooleanLiteral",
      value: d
    });
  }
  function j(d, p = "") {
    return (0, e.default)({
      type: "RegExpLiteral",
      pattern: d,
      flags: p
    });
  }
  function N(d, p, b) {
    return (0, e.default)({
      type: "LogicalExpression",
      operator: d,
      left: p,
      right: b
    });
  }
  function M(d, p, b = !1, _ = null) {
    return (0, e.default)({
      type: "MemberExpression",
      object: d,
      property: p,
      computed: b,
      optional: _
    });
  }
  function R(d, p) {
    return (0, e.default)({
      type: "NewExpression",
      callee: d,
      arguments: p
    });
  }
  function $(d, p = [], b = "script", _ = null) {
    return (0, e.default)({
      type: "Program",
      body: d,
      directives: p,
      sourceType: b,
      interpreter: _,
      sourceFile: null
    });
  }
  function V(d) {
    return (0, e.default)({
      type: "ObjectExpression",
      properties: d
    });
  }
  function K(d = "method", p, b, _, H = !1, ee = !1, de = !1) {
    return (0, e.default)({
      type: "ObjectMethod",
      kind: d,
      key: p,
      params: b,
      body: _,
      computed: H,
      generator: ee,
      async: de
    });
  }
  function z(d, p, b = !1, _ = !1, H = null) {
    return (0, e.default)({
      type: "ObjectProperty",
      key: d,
      value: p,
      computed: b,
      shorthand: _,
      decorators: H
    });
  }
  function W(d) {
    return (0, e.default)({
      type: "RestElement",
      argument: d
    });
  }
  function Y(d = null) {
    return (0, e.default)({
      type: "ReturnStatement",
      argument: d
    });
  }
  function G(d) {
    return (0, e.default)({
      type: "SequenceExpression",
      expressions: d
    });
  }
  function le(d) {
    return (0, e.default)({
      type: "ParenthesizedExpression",
      expression: d
    });
  }
  function ne(d = null, p) {
    return (0, e.default)({
      type: "SwitchCase",
      test: d,
      consequent: p
    });
  }
  function ae(d, p) {
    return (0, e.default)({
      type: "SwitchStatement",
      discriminant: d,
      cases: p
    });
  }
  function be() {
    return {
      type: "ThisExpression"
    };
  }
  function ye(d) {
    return (0, e.default)({
      type: "ThrowStatement",
      argument: d
    });
  }
  function fe(d, p = null, b = null) {
    return (0, e.default)({
      type: "TryStatement",
      block: d,
      handler: p,
      finalizer: b
    });
  }
  function Z(d, p, b = !0) {
    return (0, e.default)({
      type: "UnaryExpression",
      operator: d,
      argument: p,
      prefix: b
    });
  }
  function ue(d, p, b = !1) {
    return (0, e.default)({
      type: "UpdateExpression",
      operator: d,
      argument: p,
      prefix: b
    });
  }
  function me(d, p) {
    return (0, e.default)({
      type: "VariableDeclaration",
      kind: d,
      declarations: p
    });
  }
  function xe(d, p = null) {
    return (0, e.default)({
      type: "VariableDeclarator",
      id: d,
      init: p
    });
  }
  function Pe(d, p) {
    return (0, e.default)({
      type: "WhileStatement",
      test: d,
      body: p
    });
  }
  function ve(d, p) {
    return (0, e.default)({
      type: "WithStatement",
      object: d,
      body: p
    });
  }
  function Xe(d, p) {
    return (0, e.default)({
      type: "AssignmentPattern",
      left: d,
      right: p
    });
  }
  function st(d) {
    return (0, e.default)({
      type: "ArrayPattern",
      elements: d
    });
  }
  function Se(d, p, b = !1) {
    return (0, e.default)({
      type: "ArrowFunctionExpression",
      params: d,
      body: p,
      async: b,
      expression: null
    });
  }
  function oe(d) {
    return (0, e.default)({
      type: "ClassBody",
      body: d
    });
  }
  function te(d = null, p = null, b, _ = null) {
    return (0, e.default)({
      type: "ClassExpression",
      id: d,
      superClass: p,
      body: b,
      decorators: _
    });
  }
  function se(d = null, p = null, b, _ = null) {
    return (0, e.default)({
      type: "ClassDeclaration",
      id: d,
      superClass: p,
      body: b,
      decorators: _
    });
  }
  function re(d) {
    return (0, e.default)({
      type: "ExportAllDeclaration",
      source: d
    });
  }
  function Te(d) {
    return (0, e.default)({
      type: "ExportDefaultDeclaration",
      declaration: d
    });
  }
  function ze(d = null, p = [], b = null) {
    return (0, e.default)({
      type: "ExportNamedDeclaration",
      declaration: d,
      specifiers: p,
      source: b
    });
  }
  function Ze(d, p) {
    return (0, e.default)({
      type: "ExportSpecifier",
      local: d,
      exported: p
    });
  }
  function pt(d, p, b, _ = !1) {
    return (0, e.default)({
      type: "ForOfStatement",
      left: d,
      right: p,
      body: b,
      await: _
    });
  }
  function ut(d, p) {
    return (0, e.default)({
      type: "ImportDeclaration",
      specifiers: d,
      source: p
    });
  }
  function bt(d) {
    return (0, e.default)({
      type: "ImportDefaultSpecifier",
      local: d
    });
  }
  function vt(d) {
    return (0, e.default)({
      type: "ImportNamespaceSpecifier",
      local: d
    });
  }
  function ge(d, p) {
    return (0, e.default)({
      type: "ImportSpecifier",
      local: d,
      imported: p
    });
  }
  function pe(d, p = null) {
    return (0, e.default)({
      type: "ImportExpression",
      source: d,
      options: p
    });
  }
  function $e(d, p) {
    return (0, e.default)({
      type: "MetaProperty",
      meta: d,
      property: p
    });
  }
  function ie(d = "method", p, b, _, H = !1, ee = !1, de = !1, Ge = !1) {
    return (0, e.default)({
      type: "ClassMethod",
      kind: d,
      key: p,
      params: b,
      body: _,
      computed: H,
      static: ee,
      generator: de,
      async: Ge
    });
  }
  function Q(d) {
    return (0, e.default)({
      type: "ObjectPattern",
      properties: d
    });
  }
  function X(d) {
    return (0, e.default)({
      type: "SpreadElement",
      argument: d
    });
  }
  function ce() {
    return {
      type: "Super"
    };
  }
  function U(d, p) {
    return (0, e.default)({
      type: "TaggedTemplateExpression",
      tag: d,
      quasi: p
    });
  }
  function Ee(d, p = !1) {
    return (0, e.default)({
      type: "TemplateElement",
      value: d,
      tail: p
    });
  }
  function Qe(d, p) {
    return (0, e.default)({
      type: "TemplateLiteral",
      quasis: d,
      expressions: p
    });
  }
  function ft(d = null, p = !1) {
    return (0, e.default)({
      type: "YieldExpression",
      argument: d,
      delegate: p
    });
  }
  function ht(d) {
    return (0, e.default)({
      type: "AwaitExpression",
      argument: d
    });
  }
  function Rt() {
    return {
      type: "Import"
    };
  }
  function Ot(d) {
    return (0, e.default)({
      type: "BigIntLiteral",
      value: d
    });
  }
  function Tt(d) {
    return (0, e.default)({
      type: "ExportNamespaceSpecifier",
      exported: d
    });
  }
  function lt(d, p, b = !1, _) {
    return (0, e.default)({
      type: "OptionalMemberExpression",
      object: d,
      property: p,
      computed: b,
      optional: _
    });
  }
  function lr(d, p, b) {
    return (0, e.default)({
      type: "OptionalCallExpression",
      callee: d,
      arguments: p,
      optional: b
    });
  }
  function kr(d, p = null, b = null, _ = null, H = !1, ee = !1) {
    return (0, e.default)({
      type: "ClassProperty",
      key: d,
      value: p,
      typeAnnotation: b,
      decorators: _,
      computed: H,
      static: ee
    });
  }
  function Ai(d, p = null, b = null, _ = null, H = !1, ee = !1) {
    return (0, e.default)({
      type: "ClassAccessorProperty",
      key: d,
      value: p,
      typeAnnotation: b,
      decorators: _,
      computed: H,
      static: ee
    });
  }
  function an(d, p = null, b = null, _ = !1) {
    return (0, e.default)({
      type: "ClassPrivateProperty",
      key: d,
      value: p,
      decorators: b,
      static: _
    });
  }
  function Nn(d = "method", p, b, _, H = !1) {
    return (0, e.default)({
      type: "ClassPrivateMethod",
      kind: d,
      key: p,
      params: b,
      body: _,
      static: H
    });
  }
  function on(d) {
    return (0, e.default)({
      type: "PrivateName",
      id: d
    });
  }
  function _n(d) {
    return (0, e.default)({
      type: "StaticBlock",
      body: d
    });
  }
  function en() {
    return {
      type: "AnyTypeAnnotation"
    };
  }
  function bi(d) {
    return (0, e.default)({
      type: "ArrayTypeAnnotation",
      elementType: d
    });
  }
  function No() {
    return {
      type: "BooleanTypeAnnotation"
    };
  }
  function us(d) {
    return (0, e.default)({
      type: "BooleanLiteralTypeAnnotation",
      value: d
    });
  }
  function ga() {
    return {
      type: "NullLiteralTypeAnnotation"
    };
  }
  function As(d, p = null) {
    return (0, e.default)({
      type: "ClassImplements",
      id: d,
      typeParameters: p
    });
  }
  function ba(d, p = null, b = null, _) {
    return (0, e.default)({
      type: "DeclareClass",
      id: d,
      typeParameters: p,
      extends: b,
      body: _
    });
  }
  function Bn(d) {
    return (0, e.default)({
      type: "DeclareFunction",
      id: d
    });
  }
  function cs(d, p = null, b = null, _) {
    return (0, e.default)({
      type: "DeclareInterface",
      id: d,
      typeParameters: p,
      extends: b,
      body: _
    });
  }
  function Do(d, p, b = null) {
    return (0, e.default)({
      type: "DeclareModule",
      id: d,
      body: p,
      kind: b
    });
  }
  function ps(d) {
    return (0, e.default)({
      type: "DeclareModuleExports",
      typeAnnotation: d
    });
  }
  function va(d, p = null, b) {
    return (0, e.default)({
      type: "DeclareTypeAlias",
      id: d,
      typeParameters: p,
      right: b
    });
  }
  function Lo(d, p = null, b = null) {
    return (0, e.default)({
      type: "DeclareOpaqueType",
      id: d,
      typeParameters: p,
      supertype: b
    });
  }
  function Ta(d) {
    return (0, e.default)({
      type: "DeclareVariable",
      id: d
    });
  }
  function Ka(d = null, p = null, b = null) {
    return (0, e.default)({
      type: "DeclareExportDeclaration",
      declaration: d,
      specifiers: p,
      source: b
    });
  }
  function za(d) {
    return (0, e.default)({
      type: "DeclareExportAllDeclaration",
      source: d
    });
  }
  function Ga(d) {
    return (0, e.default)({
      type: "DeclaredPredicate",
      value: d
    });
  }
  function Ya() {
    return {
      type: "ExistsTypeAnnotation"
    };
  }
  function Us(d = null, p, b = null, _) {
    return (0, e.default)({
      type: "FunctionTypeAnnotation",
      typeParameters: d,
      params: p,
      rest: b,
      returnType: _
    });
  }
  function Sa(d = null, p) {
    return (0, e.default)({
      type: "FunctionTypeParam",
      name: d,
      typeAnnotation: p
    });
  }
  function Mo(d, p = null) {
    return (0, e.default)({
      type: "GenericTypeAnnotation",
      id: d,
      typeParameters: p
    });
  }
  function Cs() {
    return {
      type: "InferredPredicate"
    };
  }
  function tu(d, p = null) {
    return (0, e.default)({
      type: "InterfaceExtends",
      id: d,
      typeParameters: p
    });
  }
  function xa(d, p = null, b = null, _) {
    return (0, e.default)({
      type: "InterfaceDeclaration",
      id: d,
      typeParameters: p,
      extends: b,
      body: _
    });
  }
  function Ro(d = null, p) {
    return (0, e.default)({
      type: "InterfaceTypeAnnotation",
      extends: d,
      body: p
    });
  }
  function ru(d) {
    return (0, e.default)({
      type: "IntersectionTypeAnnotation",
      types: d
    });
  }
  function iu() {
    return {
      type: "MixedTypeAnnotation"
    };
  }
  function Bo() {
    return {
      type: "EmptyTypeAnnotation"
    };
  }
  function Fo(d) {
    return (0, e.default)({
      type: "NullableTypeAnnotation",
      typeAnnotation: d
    });
  }
  function Zn(d) {
    return (0, e.default)({
      type: "NumberLiteralTypeAnnotation",
      value: d
    });
  }
  function nu() {
    return {
      type: "NumberTypeAnnotation"
    };
  }
  function su(d, p = [], b = [], _ = [], H = !1) {
    return (0, e.default)({
      type: "ObjectTypeAnnotation",
      properties: d,
      indexers: p,
      callProperties: b,
      internalSlots: _,
      exact: H
    });
  }
  function au(d, p, b, _, H) {
    return (0, e.default)({
      type: "ObjectTypeInternalSlot",
      id: d,
      value: p,
      optional: b,
      static: _,
      method: H
    });
  }
  function jo(d) {
    return (0, e.default)({
      type: "ObjectTypeCallProperty",
      value: d,
      static: null
    });
  }
  function ou(d = null, p, b, _ = null) {
    return (0, e.default)({
      type: "ObjectTypeIndexer",
      id: d,
      key: p,
      value: b,
      variance: _,
      static: null
    });
  }
  function Ea(d, p, b = null) {
    return (0, e.default)({
      type: "ObjectTypeProperty",
      key: d,
      value: p,
      variance: b,
      kind: null,
      method: null,
      optional: null,
      proto: null,
      static: null
    });
  }
  function Xa(d) {
    return (0, e.default)({
      type: "ObjectTypeSpreadProperty",
      argument: d
    });
  }
  function Ja(d, p = null, b = null, _) {
    return (0, e.default)({
      type: "OpaqueType",
      id: d,
      typeParameters: p,
      supertype: b,
      impltype: _
    });
  }
  function Qa(d, p) {
    return (0, e.default)({
      type: "QualifiedTypeIdentifier",
      id: d,
      qualification: p
    });
  }
  function lu(d) {
    return (0, e.default)({
      type: "StringLiteralTypeAnnotation",
      value: d
    });
  }
  function uu() {
    return {
      type: "StringTypeAnnotation"
    };
  }
  function cu() {
    return {
      type: "SymbolTypeAnnotation"
    };
  }
  function pu() {
    return {
      type: "ThisTypeAnnotation"
    };
  }
  function Za(d) {
    return (0, e.default)({
      type: "TupleTypeAnnotation",
      types: d
    });
  }
  function eo(d) {
    return (0, e.default)({
      type: "TypeofTypeAnnotation",
      argument: d
    });
  }
  function to(d, p = null, b) {
    return (0, e.default)({
      type: "TypeAlias",
      id: d,
      typeParameters: p,
      right: b
    });
  }
  function fu(d) {
    return (0, e.default)({
      type: "TypeAnnotation",
      typeAnnotation: d
    });
  }
  function hu(d, p) {
    return (0, e.default)({
      type: "TypeCastExpression",
      expression: d,
      typeAnnotation: p
    });
  }
  function du(d = null, p = null, b = null) {
    return (0, e.default)({
      type: "TypeParameter",
      bound: d,
      default: p,
      variance: b,
      name: null
    });
  }
  function $o(d) {
    return (0, e.default)({
      type: "TypeParameterDeclaration",
      params: d
    });
  }
  function mu(d) {
    return (0, e.default)({
      type: "TypeParameterInstantiation",
      params: d
    });
  }
  function qs(d) {
    return (0, e.default)({
      type: "UnionTypeAnnotation",
      types: d
    });
  }
  function Vs(d) {
    return (0, e.default)({
      type: "Variance",
      kind: d
    });
  }
  function yu() {
    return {
      type: "VoidTypeAnnotation"
    };
  }
  function Uo(d, p) {
    return (0, e.default)({
      type: "EnumDeclaration",
      id: d,
      body: p
    });
  }
  function Pa(d) {
    return (0, e.default)({
      type: "EnumBooleanBody",
      members: d,
      explicitType: null,
      hasUnknownMembers: null
    });
  }
  function Ws(d) {
    return (0, e.default)({
      type: "EnumNumberBody",
      members: d,
      explicitType: null,
      hasUnknownMembers: null
    });
  }
  function ro(d) {
    return (0, e.default)({
      type: "EnumStringBody",
      members: d,
      explicitType: null,
      hasUnknownMembers: null
    });
  }
  function wa(d) {
    return (0, e.default)({
      type: "EnumSymbolBody",
      members: d,
      hasUnknownMembers: null
    });
  }
  function qo(d) {
    return (0, e.default)({
      type: "EnumBooleanMember",
      id: d,
      init: null
    });
  }
  function gu(d, p) {
    return (0, e.default)({
      type: "EnumNumberMember",
      id: d,
      init: p
    });
  }
  function io(d, p) {
    return (0, e.default)({
      type: "EnumStringMember",
      id: d,
      init: p
    });
  }
  function bu(d) {
    return (0, e.default)({
      type: "EnumDefaultedMember",
      id: d
    });
  }
  function Vo(d, p) {
    return (0, e.default)({
      type: "IndexedAccessType",
      objectType: d,
      indexType: p
    });
  }
  function Aa(d, p) {
    return (0, e.default)({
      type: "OptionalIndexedAccessType",
      objectType: d,
      indexType: p,
      optional: null
    });
  }
  function Wo(d, p = null) {
    return (0, e.default)({
      type: "JSXAttribute",
      name: d,
      value: p
    });
  }
  function vu(d) {
    return (0, e.default)({
      type: "JSXClosingElement",
      name: d
    });
  }
  function Tu(d, p = null, b, _ = null) {
    return (0, e.default)({
      type: "JSXElement",
      openingElement: d,
      closingElement: p,
      children: b,
      selfClosing: _
    });
  }
  function no() {
    return {
      type: "JSXEmptyExpression"
    };
  }
  function Ho(d) {
    return (0, e.default)({
      type: "JSXExpressionContainer",
      expression: d
    });
  }
  function Ko(d) {
    return (0, e.default)({
      type: "JSXSpreadChild",
      expression: d
    });
  }
  function Su(d) {
    return (0, e.default)({
      type: "JSXIdentifier",
      name: d
    });
  }
  function xu(d, p) {
    return (0, e.default)({
      type: "JSXMemberExpression",
      object: d,
      property: p
    });
  }
  function Hs(d, p) {
    return (0, e.default)({
      type: "JSXNamespacedName",
      namespace: d,
      name: p
    });
  }
  function Eu(d, p, b = !1) {
    return (0, e.default)({
      type: "JSXOpeningElement",
      name: d,
      attributes: p,
      selfClosing: b
    });
  }
  function es(d) {
    return (0, e.default)({
      type: "JSXSpreadAttribute",
      argument: d
    });
  }
  function Pu(d) {
    return (0, e.default)({
      type: "JSXText",
      value: d
    });
  }
  function wu(d, p, b) {
    return (0, e.default)({
      type: "JSXFragment",
      openingFragment: d,
      closingFragment: p,
      children: b
    });
  }
  function Au() {
    return {
      type: "JSXOpeningFragment"
    };
  }
  function Cu() {
    return {
      type: "JSXClosingFragment"
    };
  }
  function zo() {
    return {
      type: "Noop"
    };
  }
  function so(d, p) {
    return (0, e.default)({
      type: "Placeholder",
      expectedNode: d,
      name: p
    });
  }
  function Go(d) {
    return (0, e.default)({
      type: "V8IntrinsicIdentifier",
      name: d
    });
  }
  function Ca() {
    return {
      type: "ArgumentPlaceholder"
    };
  }
  function Yo(d, p) {
    return (0, e.default)({
      type: "BindExpression",
      object: d,
      callee: p
    });
  }
  function _u(d, p) {
    return (0, e.default)({
      type: "ImportAttribute",
      key: d,
      value: p
    });
  }
  function Iu(d) {
    return (0, e.default)({
      type: "Decorator",
      expression: d
    });
  }
  function ku(d, p = !1) {
    return (0, e.default)({
      type: "DoExpression",
      body: d,
      async: p
    });
  }
  function Ou(d) {
    return (0, e.default)({
      type: "ExportDefaultSpecifier",
      exported: d
    });
  }
  function Xo(d) {
    return (0, e.default)({
      type: "RecordExpression",
      properties: d
    });
  }
  function _s(d = []) {
    return (0, e.default)({
      type: "TupleExpression",
      elements: d
    });
  }
  function Jo(d) {
    return (0, e.default)({
      type: "DecimalLiteral",
      value: d
    });
  }
  function _a(d) {
    return (0, e.default)({
      type: "ModuleExpression",
      body: d
    });
  }
  function Qo() {
    return {
      type: "TopicReference"
    };
  }
  function Is(d) {
    return (0, e.default)({
      type: "PipelineTopicExpression",
      expression: d
    });
  }
  function Nu(d) {
    return (0, e.default)({
      type: "PipelineBareFunction",
      callee: d
    });
  }
  function Ia() {
    return {
      type: "PipelinePrimaryTopicReference"
    };
  }
  function Du(d) {
    return (0, e.default)({
      type: "TSParameterProperty",
      parameter: d
    });
  }
  function ka(d = null, p = null, b, _ = null) {
    return (0, e.default)({
      type: "TSDeclareFunction",
      id: d,
      typeParameters: p,
      params: b,
      returnType: _
    });
  }
  function Oa(d = null, p, b = null, _, H = null) {
    return (0, e.default)({
      type: "TSDeclareMethod",
      decorators: d,
      key: p,
      typeParameters: b,
      params: _,
      returnType: H
    });
  }
  function ao(d, p) {
    return (0, e.default)({
      type: "TSQualifiedName",
      left: d,
      right: p
    });
  }
  function Lu(d = null, p, b = null) {
    return (0, e.default)({
      type: "TSCallSignatureDeclaration",
      typeParameters: d,
      parameters: p,
      typeAnnotation: b
    });
  }
  function Gn(d = null, p, b = null) {
    return (0, e.default)({
      type: "TSConstructSignatureDeclaration",
      typeParameters: d,
      parameters: p,
      typeAnnotation: b
    });
  }
  function Mu(d, p = null) {
    return (0, e.default)({
      type: "TSPropertySignature",
      key: d,
      typeAnnotation: p,
      kind: null
    });
  }
  function Ru(d, p = null, b, _ = null) {
    return (0, e.default)({
      type: "TSMethodSignature",
      key: d,
      typeParameters: p,
      parameters: b,
      typeAnnotation: _,
      kind: null
    });
  }
  function Bu(d, p = null) {
    return (0, e.default)({
      type: "TSIndexSignature",
      parameters: d,
      typeAnnotation: p
    });
  }
  function Wt() {
    return {
      type: "TSAnyKeyword"
    };
  }
  function Fu() {
    return {
      type: "TSBooleanKeyword"
    };
  }
  function Zo() {
    return {
      type: "TSBigIntKeyword"
    };
  }
  function ju() {
    return {
      type: "TSIntrinsicKeyword"
    };
  }
  function $u() {
    return {
      type: "TSNeverKeyword"
    };
  }
  function Uu() {
    return {
      type: "TSNullKeyword"
    };
  }
  function qu() {
    return {
      type: "TSNumberKeyword"
    };
  }
  function Vu() {
    return {
      type: "TSObjectKeyword"
    };
  }
  function fs() {
    return {
      type: "TSStringKeyword"
    };
  }
  function ts() {
    return {
      type: "TSSymbolKeyword"
    };
  }
  function ks() {
    return {
      type: "TSUndefinedKeyword"
    };
  }
  function Wu() {
    return {
      type: "TSUnknownKeyword"
    };
  }
  function Hu() {
    return {
      type: "TSVoidKeyword"
    };
  }
  function Ku() {
    return {
      type: "TSThisType"
    };
  }
  function zu(d = null, p, b = null) {
    return (0, e.default)({
      type: "TSFunctionType",
      typeParameters: d,
      parameters: p,
      typeAnnotation: b
    });
  }
  function el(d = null, p, b = null) {
    return (0, e.default)({
      type: "TSConstructorType",
      typeParameters: d,
      parameters: p,
      typeAnnotation: b
    });
  }
  function Gu(d, p = null) {
    return (0, e.default)({
      type: "TSTypeReference",
      typeName: d,
      typeParameters: p
    });
  }
  function Yu(d, p = null, b = null) {
    return (0, e.default)({
      type: "TSTypePredicate",
      parameterName: d,
      typeAnnotation: p,
      asserts: b
    });
  }
  function Xu(d, p = null) {
    return (0, e.default)({
      type: "TSTypeQuery",
      exprName: d,
      typeParameters: p
    });
  }
  function tl(d) {
    return (0, e.default)({
      type: "TSTypeLiteral",
      members: d
    });
  }
  function Ft(d) {
    return (0, e.default)({
      type: "TSArrayType",
      elementType: d
    });
  }
  function Ju(d) {
    return (0, e.default)({
      type: "TSTupleType",
      elementTypes: d
    });
  }
  function rl(d) {
    return (0, e.default)({
      type: "TSOptionalType",
      typeAnnotation: d
    });
  }
  function Qu(d) {
    return (0, e.default)({
      type: "TSRestType",
      typeAnnotation: d
    });
  }
  function Zu(d, p, b = !1) {
    return (0, e.default)({
      type: "TSNamedTupleMember",
      label: d,
      elementType: p,
      optional: b
    });
  }
  function ec(d) {
    return (0, e.default)({
      type: "TSUnionType",
      types: d
    });
  }
  function tc(d) {
    return (0, e.default)({
      type: "TSIntersectionType",
      types: d
    });
  }
  function il(d, p, b, _) {
    return (0, e.default)({
      type: "TSConditionalType",
      checkType: d,
      extendsType: p,
      trueType: b,
      falseType: _
    });
  }
  function rc(d) {
    return (0, e.default)({
      type: "TSInferType",
      typeParameter: d
    });
  }
  function nl(d) {
    return (0, e.default)({
      type: "TSParenthesizedType",
      typeAnnotation: d
    });
  }
  function sl(d) {
    return (0, e.default)({
      type: "TSTypeOperator",
      typeAnnotation: d,
      operator: null
    });
  }
  function ic(d, p) {
    return (0, e.default)({
      type: "TSIndexedAccessType",
      objectType: d,
      indexType: p
    });
  }
  function nc(d, p = null, b = null) {
    return (0, e.default)({
      type: "TSMappedType",
      typeParameter: d,
      typeAnnotation: p,
      nameType: b
    });
  }
  function Di(d) {
    return (0, e.default)({
      type: "TSLiteralType",
      literal: d
    });
  }
  function hs(d, p = null) {
    return (0, e.default)({
      type: "TSExpressionWithTypeArguments",
      expression: d,
      typeParameters: p
    });
  }
  function al(d, p = null, b = null, _) {
    return (0, e.default)({
      type: "TSInterfaceDeclaration",
      id: d,
      typeParameters: p,
      extends: b,
      body: _
    });
  }
  function ol(d) {
    return (0, e.default)({
      type: "TSInterfaceBody",
      body: d
    });
  }
  function ll(d, p = null, b) {
    return (0, e.default)({
      type: "TSTypeAliasDeclaration",
      id: d,
      typeParameters: p,
      typeAnnotation: b
    });
  }
  function sc(d, p = null) {
    return (0, e.default)({
      type: "TSInstantiationExpression",
      expression: d,
      typeParameters: p
    });
  }
  function ul(d, p) {
    return (0, e.default)({
      type: "TSAsExpression",
      expression: d,
      typeAnnotation: p
    });
  }
  function ac(d, p) {
    return (0, e.default)({
      type: "TSSatisfiesExpression",
      expression: d,
      typeAnnotation: p
    });
  }
  function cl(d, p) {
    return (0, e.default)({
      type: "TSTypeAssertion",
      typeAnnotation: d,
      expression: p
    });
  }
  function oc(d, p) {
    return (0, e.default)({
      type: "TSEnumDeclaration",
      id: d,
      members: p
    });
  }
  function lc(d, p = null) {
    return (0, e.default)({
      type: "TSEnumMember",
      id: d,
      initializer: p
    });
  }
  function oo(d, p) {
    return (0, e.default)({
      type: "TSModuleDeclaration",
      id: d,
      body: p
    });
  }
  function uc(d) {
    return (0, e.default)({
      type: "TSModuleBlock",
      body: d
    });
  }
  function cc(d, p = null, b = null) {
    return (0, e.default)({
      type: "TSImportType",
      argument: d,
      qualifier: p,
      typeParameters: b
    });
  }
  function lo(d, p) {
    return (0, e.default)({
      type: "TSImportEqualsDeclaration",
      id: d,
      moduleReference: p,
      isExport: null
    });
  }
  function pc(d) {
    return (0, e.default)({
      type: "TSExternalModuleReference",
      expression: d
    });
  }
  function fc(d) {
    return (0, e.default)({
      type: "TSNonNullExpression",
      expression: d
    });
  }
  function pl(d) {
    return (0, e.default)({
      type: "TSExportAssignment",
      expression: d
    });
  }
  function hc(d) {
    return (0, e.default)({
      type: "TSNamespaceExportDeclaration",
      id: d
    });
  }
  function dc(d) {
    return (0, e.default)({
      type: "TSTypeAnnotation",
      typeAnnotation: d
    });
  }
  function mc(d) {
    return (0, e.default)({
      type: "TSTypeParameterInstantiation",
      params: d
    });
  }
  function yc(d) {
    return (0, e.default)({
      type: "TSTypeParameterDeclaration",
      params: d
    });
  }
  function gc(d = null, p = null, b) {
    return (0, e.default)({
      type: "TSTypeParameter",
      constraint: d,
      default: p,
      name: b
    });
  }
  function Ks(d) {
    return (0, t.default)("NumberLiteral", "NumericLiteral", "The node type "), O(d);
  }
  function fl(d, p = "") {
    return (0, t.default)("RegexLiteral", "RegExpLiteral", "The node type "), j(d, p);
  }
  function bc(d) {
    return (0, t.default)("RestProperty", "RestElement", "The node type "), W(d);
  }
  function B(d) {
    return (0, t.default)("SpreadProperty", "SpreadElement", "The node type "), X(d);
  }
  return Ce;
}
var MW;
function tBe() {
  if (MW)
    return ZS;
  MW = 1, Object.defineProperty(ZS, "__esModule", {
    value: !0
  }), ZS.default = r;
  var e = Va(), t = Nr();
  function r(i, n) {
    const s = i.value.split(/\r\n|\n|\r/);
    let a = 0;
    for (let l = 0; l < s.length; l++)
      s[l].match(/[^ \t]/) && (a = l);
    let o = "";
    for (let l = 0; l < s.length; l++) {
      const u = s[l], c = l === 0, f = l === s.length - 1, h = l === a;
      let m = u.replace(/\t/g, " ");
      c || (m = m.replace(/^[ ]+/, "")), f || (m = m.replace(/[ ]+$/, "")), m && (h || (m += " "), o += m);
    }
    o && n.push((0, t.inherits)((0, e.stringLiteral)(o), i));
  }
  return ZS;
}
var RW;
function rBe() {
  if (RW)
    return QS;
  RW = 1, Object.defineProperty(QS, "__esModule", {
    value: !0
  }), QS.default = r;
  var e = Ne, t = tBe();
  function r(i) {
    const n = [];
    for (let s = 0; s < i.children.length; s++) {
      let a = i.children[s];
      if ((0, e.isJSXText)(a)) {
        (0, t.default)(a, n);
        continue;
      }
      (0, e.isJSXExpressionContainer)(a) && (a = a.expression), !(0, e.isJSXEmptyExpression)(a) && n.push(a);
    }
    return n;
  }
  return QS;
}
var n6 = {}, kC = {};
Object.defineProperty(kC, "__esModule", {
  value: !0
});
kC.default = nBe;
var iBe = Uc();
function nBe(e) {
  return !!(e && iBe.VISITOR_KEYS[e.type]);
}
Object.defineProperty(n6, "__esModule", {
  value: !0
});
n6.default = aBe;
var sBe = kC;
function aBe(e) {
  if (!(0, sBe.default)(e)) {
    var t;
    const r = (t = e == null ? void 0 : e.type) != null ? t : JSON.stringify(e);
    throw new TypeError('Not a valid node of type "'.concat(r, '"'));
  }
}
var Be = {};
Object.defineProperty(Be, "__esModule", {
  value: !0
});
Be.assertAccessor = x$e;
Be.assertAnyTypeAnnotation = qFe;
Be.assertArgumentPlaceholder = gje;
Be.assertArrayExpression = lBe;
Be.assertArrayPattern = aFe;
Be.assertArrayTypeAnnotation = VFe;
Be.assertArrowFunctionExpression = oFe;
Be.assertAssignmentExpression = uBe;
Be.assertAssignmentPattern = sFe;
Be.assertAwaitExpression = kFe;
Be.assertBigIntLiteral = NFe;
Be.assertBinary = W4e;
Be.assertBinaryExpression = cBe;
Be.assertBindExpression = bje;
Be.assertBlock = z4e;
Be.assertBlockParent = K4e;
Be.assertBlockStatement = dBe;
Be.assertBooleanLiteral = MBe;
Be.assertBooleanLiteralTypeAnnotation = HFe;
Be.assertBooleanTypeAnnotation = WFe;
Be.assertBreakStatement = mBe;
Be.assertCallExpression = yBe;
Be.assertCatchClause = gBe;
Be.assertClass = b$e;
Be.assertClassAccessorProperty = BFe;
Be.assertClassBody = lFe;
Be.assertClassDeclaration = cFe;
Be.assertClassExpression = uFe;
Be.assertClassImplements = zFe;
Be.assertClassMethod = xFe;
Be.assertClassPrivateMethod = jFe;
Be.assertClassPrivateProperty = FFe;
Be.assertClassProperty = RFe;
Be.assertCompletionStatement = X4e;
Be.assertConditional = J4e;
Be.assertConditionalExpression = bBe;
Be.assertContinueStatement = vBe;
Be.assertDebuggerStatement = TBe;
Be.assertDecimalLiteral = wje;
Be.assertDeclaration = a$e;
Be.assertDeclareClass = GFe;
Be.assertDeclareExportAllDeclaration = i8e;
Be.assertDeclareExportDeclaration = r8e;
Be.assertDeclareFunction = YFe;
Be.assertDeclareInterface = XFe;
Be.assertDeclareModule = JFe;
Be.assertDeclareModuleExports = QFe;
Be.assertDeclareOpaqueType = e8e;
Be.assertDeclareTypeAlias = ZFe;
Be.assertDeclareVariable = t8e;
Be.assertDeclaredPredicate = n8e;
Be.assertDecorator = Tje;
Be.assertDirective = fBe;
Be.assertDirectiveLiteral = hBe;
Be.assertDoExpression = Sje;
Be.assertDoWhileStatement = SBe;
Be.assertEmptyStatement = xBe;
Be.assertEmptyTypeAnnotation = m8e;
Be.assertEnumBody = I$e;
Be.assertEnumBooleanBody = V8e;
Be.assertEnumBooleanMember = z8e;
Be.assertEnumDeclaration = q8e;
Be.assertEnumDefaultedMember = X8e;
Be.assertEnumMember = k$e;
Be.assertEnumNumberBody = W8e;
Be.assertEnumNumberMember = G8e;
Be.assertEnumStringBody = H8e;
Be.assertEnumStringMember = Y8e;
Be.assertEnumSymbolBody = K8e;
Be.assertExistsTypeAnnotation = s8e;
Be.assertExportAllDeclaration = pFe;
Be.assertExportDeclaration = T$e;
Be.assertExportDefaultDeclaration = fFe;
Be.assertExportDefaultSpecifier = xje;
Be.assertExportNamedDeclaration = hFe;
Be.assertExportNamespaceSpecifier = DFe;
Be.assertExportSpecifier = dFe;
Be.assertExpression = V4e;
Be.assertExpressionStatement = EBe;
Be.assertExpressionWrapper = e$e;
Be.assertFile = PBe;
Be.assertFlow = P$e;
Be.assertFlowBaseAnnotation = A$e;
Be.assertFlowDeclaration = C$e;
Be.assertFlowPredicate = _$e;
Be.assertFlowType = w$e;
Be.assertFor = t$e;
Be.assertForInStatement = wBe;
Be.assertForOfStatement = mFe;
Be.assertForStatement = ABe;
Be.assertForXStatement = r$e;
Be.assertFunction = i$e;
Be.assertFunctionDeclaration = CBe;
Be.assertFunctionExpression = _Be;
Be.assertFunctionParent = n$e;
Be.assertFunctionTypeAnnotation = a8e;
Be.assertFunctionTypeParam = o8e;
Be.assertGenericTypeAnnotation = l8e;
Be.assertIdentifier = IBe;
Be.assertIfStatement = kBe;
Be.assertImmutable = p$e;
Be.assertImport = OFe;
Be.assertImportAttribute = vje;
Be.assertImportDeclaration = yFe;
Be.assertImportDefaultSpecifier = gFe;
Be.assertImportExpression = TFe;
Be.assertImportNamespaceSpecifier = bFe;
Be.assertImportOrExportDeclaration = v$e;
Be.assertImportSpecifier = vFe;
Be.assertIndexedAccessType = J8e;
Be.assertInferredPredicate = u8e;
Be.assertInterfaceDeclaration = p8e;
Be.assertInterfaceExtends = c8e;
Be.assertInterfaceTypeAnnotation = f8e;
Be.assertInterpreterDirective = pBe;
Be.assertIntersectionTypeAnnotation = h8e;
Be.assertJSX = O$e;
Be.assertJSXAttribute = Z8e;
Be.assertJSXClosingElement = eje;
Be.assertJSXClosingFragment = hje;
Be.assertJSXElement = tje;
Be.assertJSXEmptyExpression = rje;
Be.assertJSXExpressionContainer = ije;
Be.assertJSXFragment = pje;
Be.assertJSXIdentifier = sje;
Be.assertJSXMemberExpression = aje;
Be.assertJSXNamespacedName = oje;
Be.assertJSXOpeningElement = lje;
Be.assertJSXOpeningFragment = fje;
Be.assertJSXSpreadAttribute = uje;
Be.assertJSXSpreadChild = nje;
Be.assertJSXText = cje;
Be.assertLVal = l$e;
Be.assertLabeledStatement = OBe;
Be.assertLiteral = c$e;
Be.assertLogicalExpression = BBe;
Be.assertLoop = Q4e;
Be.assertMemberExpression = FBe;
Be.assertMetaProperty = SFe;
Be.assertMethod = h$e;
Be.assertMiscellaneous = N$e;
Be.assertMixedTypeAnnotation = d8e;
Be.assertModuleDeclaration = U$e;
Be.assertModuleExpression = Aje;
Be.assertModuleSpecifier = S$e;
Be.assertNewExpression = jBe;
Be.assertNoop = dje;
Be.assertNullLiteral = LBe;
Be.assertNullLiteralTypeAnnotation = KFe;
Be.assertNullableTypeAnnotation = y8e;
Be.assertNumberLiteral = B$e;
Be.assertNumberLiteralTypeAnnotation = g8e;
Be.assertNumberTypeAnnotation = b8e;
Be.assertNumericLiteral = DBe;
Be.assertObjectExpression = UBe;
Be.assertObjectMember = d$e;
Be.assertObjectMethod = qBe;
Be.assertObjectPattern = EFe;
Be.assertObjectProperty = VBe;
Be.assertObjectTypeAnnotation = v8e;
Be.assertObjectTypeCallProperty = S8e;
Be.assertObjectTypeIndexer = x8e;
Be.assertObjectTypeInternalSlot = T8e;
Be.assertObjectTypeProperty = E8e;
Be.assertObjectTypeSpreadProperty = P8e;
Be.assertOpaqueType = w8e;
Be.assertOptionalCallExpression = MFe;
Be.assertOptionalIndexedAccessType = Q8e;
Be.assertOptionalMemberExpression = LFe;
Be.assertParenthesizedExpression = zBe;
Be.assertPattern = g$e;
Be.assertPatternLike = o$e;
Be.assertPipelineBareFunction = Ije;
Be.assertPipelinePrimaryTopicReference = kje;
Be.assertPipelineTopicExpression = _je;
Be.assertPlaceholder = mje;
Be.assertPrivate = E$e;
Be.assertPrivateName = $Fe;
Be.assertProgram = $Be;
Be.assertProperty = m$e;
Be.assertPureish = s$e;
Be.assertQualifiedTypeIdentifier = A8e;
Be.assertRecordExpression = Eje;
Be.assertRegExpLiteral = RBe;
Be.assertRegexLiteral = F$e;
Be.assertRestElement = WBe;
Be.assertRestProperty = j$e;
Be.assertReturnStatement = HBe;
Be.assertScopable = H4e;
Be.assertSequenceExpression = KBe;
Be.assertSpreadElement = PFe;
Be.assertSpreadProperty = $$e;
Be.assertStandardized = q4e;
Be.assertStatement = G4e;
Be.assertStaticBlock = UFe;
Be.assertStringLiteral = NBe;
Be.assertStringLiteralTypeAnnotation = C8e;
Be.assertStringTypeAnnotation = _8e;
Be.assertSuper = wFe;
Be.assertSwitchCase = GBe;
Be.assertSwitchStatement = YBe;
Be.assertSymbolTypeAnnotation = I8e;
Be.assertTSAnyKeyword = $je;
Be.assertTSArrayType = a4e;
Be.assertTSAsExpression = w4e;
Be.assertTSBaseType = R$e;
Be.assertTSBigIntKeyword = qje;
Be.assertTSBooleanKeyword = Uje;
Be.assertTSCallSignatureDeclaration = Mje;
Be.assertTSConditionalType = h4e;
Be.assertTSConstructSignatureDeclaration = Rje;
Be.assertTSConstructorType = t4e;
Be.assertTSDeclareFunction = Nje;
Be.assertTSDeclareMethod = Dje;
Be.assertTSEntityName = u$e;
Be.assertTSEnumDeclaration = _4e;
Be.assertTSEnumMember = I4e;
Be.assertTSExportAssignment = R4e;
Be.assertTSExpressionWithTypeArguments = T4e;
Be.assertTSExternalModuleReference = L4e;
Be.assertTSFunctionType = e4e;
Be.assertTSImportEqualsDeclaration = D4e;
Be.assertTSImportType = N4e;
Be.assertTSIndexSignature = jje;
Be.assertTSIndexedAccessType = g4e;
Be.assertTSInferType = d4e;
Be.assertTSInstantiationExpression = P4e;
Be.assertTSInterfaceBody = x4e;
Be.assertTSInterfaceDeclaration = S4e;
Be.assertTSIntersectionType = f4e;
Be.assertTSIntrinsicKeyword = Vje;
Be.assertTSLiteralType = v4e;
Be.assertTSMappedType = b4e;
Be.assertTSMethodSignature = Fje;
Be.assertTSModuleBlock = O4e;
Be.assertTSModuleDeclaration = k4e;
Be.assertTSNamedTupleMember = c4e;
Be.assertTSNamespaceExportDeclaration = B4e;
Be.assertTSNeverKeyword = Wje;
Be.assertTSNonNullExpression = M4e;
Be.assertTSNullKeyword = Hje;
Be.assertTSNumberKeyword = Kje;
Be.assertTSObjectKeyword = zje;
Be.assertTSOptionalType = l4e;
Be.assertTSParameterProperty = Oje;
Be.assertTSParenthesizedType = m4e;
Be.assertTSPropertySignature = Bje;
Be.assertTSQualifiedName = Lje;
Be.assertTSRestType = u4e;
Be.assertTSSatisfiesExpression = A4e;
Be.assertTSStringKeyword = Gje;
Be.assertTSSymbolKeyword = Yje;
Be.assertTSThisType = Zje;
Be.assertTSTupleType = o4e;
Be.assertTSType = M$e;
Be.assertTSTypeAliasDeclaration = E4e;
Be.assertTSTypeAnnotation = F4e;
Be.assertTSTypeAssertion = C4e;
Be.assertTSTypeElement = L$e;
Be.assertTSTypeLiteral = s4e;
Be.assertTSTypeOperator = y4e;
Be.assertTSTypeParameter = U4e;
Be.assertTSTypeParameterDeclaration = $4e;
Be.assertTSTypeParameterInstantiation = j4e;
Be.assertTSTypePredicate = i4e;
Be.assertTSTypeQuery = n4e;
Be.assertTSTypeReference = r4e;
Be.assertTSUndefinedKeyword = Xje;
Be.assertTSUnionType = p4e;
Be.assertTSUnknownKeyword = Jje;
Be.assertTSVoidKeyword = Qje;
Be.assertTaggedTemplateExpression = AFe;
Be.assertTemplateElement = CFe;
Be.assertTemplateLiteral = _Fe;
Be.assertTerminatorless = Y4e;
Be.assertThisExpression = XBe;
Be.assertThisTypeAnnotation = k8e;
Be.assertThrowStatement = JBe;
Be.assertTopicReference = Cje;
Be.assertTryStatement = QBe;
Be.assertTupleExpression = Pje;
Be.assertTupleTypeAnnotation = O8e;
Be.assertTypeAlias = D8e;
Be.assertTypeAnnotation = L8e;
Be.assertTypeCastExpression = M8e;
Be.assertTypeParameter = R8e;
Be.assertTypeParameterDeclaration = B8e;
Be.assertTypeParameterInstantiation = F8e;
Be.assertTypeScript = D$e;
Be.assertTypeofTypeAnnotation = N8e;
Be.assertUnaryExpression = ZBe;
Be.assertUnaryLike = y$e;
Be.assertUnionTypeAnnotation = j8e;
Be.assertUpdateExpression = eFe;
Be.assertUserWhitespacable = f$e;
Be.assertV8IntrinsicIdentifier = yje;
Be.assertVariableDeclaration = tFe;
Be.assertVariableDeclarator = rFe;
Be.assertVariance = $8e;
Be.assertVoidTypeAnnotation = U8e;
Be.assertWhile = Z4e;
Be.assertWhileStatement = iFe;
Be.assertWithStatement = nFe;
Be.assertYieldExpression = IFe;
var oBe = NT(), MT = vg;
function Ue(e, t, r) {
  if (!(0, oBe.default)(e, t, r))
    throw new Error('Expected type "'.concat(e, '" with option ').concat(JSON.stringify(r), ", ") + 'but instead got "'.concat(t.type, '".'));
}
function lBe(e, t) {
  Ue("ArrayExpression", e, t);
}
function uBe(e, t) {
  Ue("AssignmentExpression", e, t);
}
function cBe(e, t) {
  Ue("BinaryExpression", e, t);
}
function pBe(e, t) {
  Ue("InterpreterDirective", e, t);
}
function fBe(e, t) {
  Ue("Directive", e, t);
}
function hBe(e, t) {
  Ue("DirectiveLiteral", e, t);
}
function dBe(e, t) {
  Ue("BlockStatement", e, t);
}
function mBe(e, t) {
  Ue("BreakStatement", e, t);
}
function yBe(e, t) {
  Ue("CallExpression", e, t);
}
function gBe(e, t) {
  Ue("CatchClause", e, t);
}
function bBe(e, t) {
  Ue("ConditionalExpression", e, t);
}
function vBe(e, t) {
  Ue("ContinueStatement", e, t);
}
function TBe(e, t) {
  Ue("DebuggerStatement", e, t);
}
function SBe(e, t) {
  Ue("DoWhileStatement", e, t);
}
function xBe(e, t) {
  Ue("EmptyStatement", e, t);
}
function EBe(e, t) {
  Ue("ExpressionStatement", e, t);
}
function PBe(e, t) {
  Ue("File", e, t);
}
function wBe(e, t) {
  Ue("ForInStatement", e, t);
}
function ABe(e, t) {
  Ue("ForStatement", e, t);
}
function CBe(e, t) {
  Ue("FunctionDeclaration", e, t);
}
function _Be(e, t) {
  Ue("FunctionExpression", e, t);
}
function IBe(e, t) {
  Ue("Identifier", e, t);
}
function kBe(e, t) {
  Ue("IfStatement", e, t);
}
function OBe(e, t) {
  Ue("LabeledStatement", e, t);
}
function NBe(e, t) {
  Ue("StringLiteral", e, t);
}
function DBe(e, t) {
  Ue("NumericLiteral", e, t);
}
function LBe(e, t) {
  Ue("NullLiteral", e, t);
}
function MBe(e, t) {
  Ue("BooleanLiteral", e, t);
}
function RBe(e, t) {
  Ue("RegExpLiteral", e, t);
}
function BBe(e, t) {
  Ue("LogicalExpression", e, t);
}
function FBe(e, t) {
  Ue("MemberExpression", e, t);
}
function jBe(e, t) {
  Ue("NewExpression", e, t);
}
function $Be(e, t) {
  Ue("Program", e, t);
}
function UBe(e, t) {
  Ue("ObjectExpression", e, t);
}
function qBe(e, t) {
  Ue("ObjectMethod", e, t);
}
function VBe(e, t) {
  Ue("ObjectProperty", e, t);
}
function WBe(e, t) {
  Ue("RestElement", e, t);
}
function HBe(e, t) {
  Ue("ReturnStatement", e, t);
}
function KBe(e, t) {
  Ue("SequenceExpression", e, t);
}
function zBe(e, t) {
  Ue("ParenthesizedExpression", e, t);
}
function GBe(e, t) {
  Ue("SwitchCase", e, t);
}
function YBe(e, t) {
  Ue("SwitchStatement", e, t);
}
function XBe(e, t) {
  Ue("ThisExpression", e, t);
}
function JBe(e, t) {
  Ue("ThrowStatement", e, t);
}
function QBe(e, t) {
  Ue("TryStatement", e, t);
}
function ZBe(e, t) {
  Ue("UnaryExpression", e, t);
}
function eFe(e, t) {
  Ue("UpdateExpression", e, t);
}
function tFe(e, t) {
  Ue("VariableDeclaration", e, t);
}
function rFe(e, t) {
  Ue("VariableDeclarator", e, t);
}
function iFe(e, t) {
  Ue("WhileStatement", e, t);
}
function nFe(e, t) {
  Ue("WithStatement", e, t);
}
function sFe(e, t) {
  Ue("AssignmentPattern", e, t);
}
function aFe(e, t) {
  Ue("ArrayPattern", e, t);
}
function oFe(e, t) {
  Ue("ArrowFunctionExpression", e, t);
}
function lFe(e, t) {
  Ue("ClassBody", e, t);
}
function uFe(e, t) {
  Ue("ClassExpression", e, t);
}
function cFe(e, t) {
  Ue("ClassDeclaration", e, t);
}
function pFe(e, t) {
  Ue("ExportAllDeclaration", e, t);
}
function fFe(e, t) {
  Ue("ExportDefaultDeclaration", e, t);
}
function hFe(e, t) {
  Ue("ExportNamedDeclaration", e, t);
}
function dFe(e, t) {
  Ue("ExportSpecifier", e, t);
}
function mFe(e, t) {
  Ue("ForOfStatement", e, t);
}
function yFe(e, t) {
  Ue("ImportDeclaration", e, t);
}
function gFe(e, t) {
  Ue("ImportDefaultSpecifier", e, t);
}
function bFe(e, t) {
  Ue("ImportNamespaceSpecifier", e, t);
}
function vFe(e, t) {
  Ue("ImportSpecifier", e, t);
}
function TFe(e, t) {
  Ue("ImportExpression", e, t);
}
function SFe(e, t) {
  Ue("MetaProperty", e, t);
}
function xFe(e, t) {
  Ue("ClassMethod", e, t);
}
function EFe(e, t) {
  Ue("ObjectPattern", e, t);
}
function PFe(e, t) {
  Ue("SpreadElement", e, t);
}
function wFe(e, t) {
  Ue("Super", e, t);
}
function AFe(e, t) {
  Ue("TaggedTemplateExpression", e, t);
}
function CFe(e, t) {
  Ue("TemplateElement", e, t);
}
function _Fe(e, t) {
  Ue("TemplateLiteral", e, t);
}
function IFe(e, t) {
  Ue("YieldExpression", e, t);
}
function kFe(e, t) {
  Ue("AwaitExpression", e, t);
}
function OFe(e, t) {
  Ue("Import", e, t);
}
function NFe(e, t) {
  Ue("BigIntLiteral", e, t);
}
function DFe(e, t) {
  Ue("ExportNamespaceSpecifier", e, t);
}
function LFe(e, t) {
  Ue("OptionalMemberExpression", e, t);
}
function MFe(e, t) {
  Ue("OptionalCallExpression", e, t);
}
function RFe(e, t) {
  Ue("ClassProperty", e, t);
}
function BFe(e, t) {
  Ue("ClassAccessorProperty", e, t);
}
function FFe(e, t) {
  Ue("ClassPrivateProperty", e, t);
}
function jFe(e, t) {
  Ue("ClassPrivateMethod", e, t);
}
function $Fe(e, t) {
  Ue("PrivateName", e, t);
}
function UFe(e, t) {
  Ue("StaticBlock", e, t);
}
function qFe(e, t) {
  Ue("AnyTypeAnnotation", e, t);
}
function VFe(e, t) {
  Ue("ArrayTypeAnnotation", e, t);
}
function WFe(e, t) {
  Ue("BooleanTypeAnnotation", e, t);
}
function HFe(e, t) {
  Ue("BooleanLiteralTypeAnnotation", e, t);
}
function KFe(e, t) {
  Ue("NullLiteralTypeAnnotation", e, t);
}
function zFe(e, t) {
  Ue("ClassImplements", e, t);
}
function GFe(e, t) {
  Ue("DeclareClass", e, t);
}
function YFe(e, t) {
  Ue("DeclareFunction", e, t);
}
function XFe(e, t) {
  Ue("DeclareInterface", e, t);
}
function JFe(e, t) {
  Ue("DeclareModule", e, t);
}
function QFe(e, t) {
  Ue("DeclareModuleExports", e, t);
}
function ZFe(e, t) {
  Ue("DeclareTypeAlias", e, t);
}
function e8e(e, t) {
  Ue("DeclareOpaqueType", e, t);
}
function t8e(e, t) {
  Ue("DeclareVariable", e, t);
}
function r8e(e, t) {
  Ue("DeclareExportDeclaration", e, t);
}
function i8e(e, t) {
  Ue("DeclareExportAllDeclaration", e, t);
}
function n8e(e, t) {
  Ue("DeclaredPredicate", e, t);
}
function s8e(e, t) {
  Ue("ExistsTypeAnnotation", e, t);
}
function a8e(e, t) {
  Ue("FunctionTypeAnnotation", e, t);
}
function o8e(e, t) {
  Ue("FunctionTypeParam", e, t);
}
function l8e(e, t) {
  Ue("GenericTypeAnnotation", e, t);
}
function u8e(e, t) {
  Ue("InferredPredicate", e, t);
}
function c8e(e, t) {
  Ue("InterfaceExtends", e, t);
}
function p8e(e, t) {
  Ue("InterfaceDeclaration", e, t);
}
function f8e(e, t) {
  Ue("InterfaceTypeAnnotation", e, t);
}
function h8e(e, t) {
  Ue("IntersectionTypeAnnotation", e, t);
}
function d8e(e, t) {
  Ue("MixedTypeAnnotation", e, t);
}
function m8e(e, t) {
  Ue("EmptyTypeAnnotation", e, t);
}
function y8e(e, t) {
  Ue("NullableTypeAnnotation", e, t);
}
function g8e(e, t) {
  Ue("NumberLiteralTypeAnnotation", e, t);
}
function b8e(e, t) {
  Ue("NumberTypeAnnotation", e, t);
}
function v8e(e, t) {
  Ue("ObjectTypeAnnotation", e, t);
}
function T8e(e, t) {
  Ue("ObjectTypeInternalSlot", e, t);
}
function S8e(e, t) {
  Ue("ObjectTypeCallProperty", e, t);
}
function x8e(e, t) {
  Ue("ObjectTypeIndexer", e, t);
}
function E8e(e, t) {
  Ue("ObjectTypeProperty", e, t);
}
function P8e(e, t) {
  Ue("ObjectTypeSpreadProperty", e, t);
}
function w8e(e, t) {
  Ue("OpaqueType", e, t);
}
function A8e(e, t) {
  Ue("QualifiedTypeIdentifier", e, t);
}
function C8e(e, t) {
  Ue("StringLiteralTypeAnnotation", e, t);
}
function _8e(e, t) {
  Ue("StringTypeAnnotation", e, t);
}
function I8e(e, t) {
  Ue("SymbolTypeAnnotation", e, t);
}
function k8e(e, t) {
  Ue("ThisTypeAnnotation", e, t);
}
function O8e(e, t) {
  Ue("TupleTypeAnnotation", e, t);
}
function N8e(e, t) {
  Ue("TypeofTypeAnnotation", e, t);
}
function D8e(e, t) {
  Ue("TypeAlias", e, t);
}
function L8e(e, t) {
  Ue("TypeAnnotation", e, t);
}
function M8e(e, t) {
  Ue("TypeCastExpression", e, t);
}
function R8e(e, t) {
  Ue("TypeParameter", e, t);
}
function B8e(e, t) {
  Ue("TypeParameterDeclaration", e, t);
}
function F8e(e, t) {
  Ue("TypeParameterInstantiation", e, t);
}
function j8e(e, t) {
  Ue("UnionTypeAnnotation", e, t);
}
function $8e(e, t) {
  Ue("Variance", e, t);
}
function U8e(e, t) {
  Ue("VoidTypeAnnotation", e, t);
}
function q8e(e, t) {
  Ue("EnumDeclaration", e, t);
}
function V8e(e, t) {
  Ue("EnumBooleanBody", e, t);
}
function W8e(e, t) {
  Ue("EnumNumberBody", e, t);
}
function H8e(e, t) {
  Ue("EnumStringBody", e, t);
}
function K8e(e, t) {
  Ue("EnumSymbolBody", e, t);
}
function z8e(e, t) {
  Ue("EnumBooleanMember", e, t);
}
function G8e(e, t) {
  Ue("EnumNumberMember", e, t);
}
function Y8e(e, t) {
  Ue("EnumStringMember", e, t);
}
function X8e(e, t) {
  Ue("EnumDefaultedMember", e, t);
}
function J8e(e, t) {
  Ue("IndexedAccessType", e, t);
}
function Q8e(e, t) {
  Ue("OptionalIndexedAccessType", e, t);
}
function Z8e(e, t) {
  Ue("JSXAttribute", e, t);
}
function eje(e, t) {
  Ue("JSXClosingElement", e, t);
}
function tje(e, t) {
  Ue("JSXElement", e, t);
}
function rje(e, t) {
  Ue("JSXEmptyExpression", e, t);
}
function ije(e, t) {
  Ue("JSXExpressionContainer", e, t);
}
function nje(e, t) {
  Ue("JSXSpreadChild", e, t);
}
function sje(e, t) {
  Ue("JSXIdentifier", e, t);
}
function aje(e, t) {
  Ue("JSXMemberExpression", e, t);
}
function oje(e, t) {
  Ue("JSXNamespacedName", e, t);
}
function lje(e, t) {
  Ue("JSXOpeningElement", e, t);
}
function uje(e, t) {
  Ue("JSXSpreadAttribute", e, t);
}
function cje(e, t) {
  Ue("JSXText", e, t);
}
function pje(e, t) {
  Ue("JSXFragment", e, t);
}
function fje(e, t) {
  Ue("JSXOpeningFragment", e, t);
}
function hje(e, t) {
  Ue("JSXClosingFragment", e, t);
}
function dje(e, t) {
  Ue("Noop", e, t);
}
function mje(e, t) {
  Ue("Placeholder", e, t);
}
function yje(e, t) {
  Ue("V8IntrinsicIdentifier", e, t);
}
function gje(e, t) {
  Ue("ArgumentPlaceholder", e, t);
}
function bje(e, t) {
  Ue("BindExpression", e, t);
}
function vje(e, t) {
  Ue("ImportAttribute", e, t);
}
function Tje(e, t) {
  Ue("Decorator", e, t);
}
function Sje(e, t) {
  Ue("DoExpression", e, t);
}
function xje(e, t) {
  Ue("ExportDefaultSpecifier", e, t);
}
function Eje(e, t) {
  Ue("RecordExpression", e, t);
}
function Pje(e, t) {
  Ue("TupleExpression", e, t);
}
function wje(e, t) {
  Ue("DecimalLiteral", e, t);
}
function Aje(e, t) {
  Ue("ModuleExpression", e, t);
}
function Cje(e, t) {
  Ue("TopicReference", e, t);
}
function _je(e, t) {
  Ue("PipelineTopicExpression", e, t);
}
function Ije(e, t) {
  Ue("PipelineBareFunction", e, t);
}
function kje(e, t) {
  Ue("PipelinePrimaryTopicReference", e, t);
}
function Oje(e, t) {
  Ue("TSParameterProperty", e, t);
}
function Nje(e, t) {
  Ue("TSDeclareFunction", e, t);
}
function Dje(e, t) {
  Ue("TSDeclareMethod", e, t);
}
function Lje(e, t) {
  Ue("TSQualifiedName", e, t);
}
function Mje(e, t) {
  Ue("TSCallSignatureDeclaration", e, t);
}
function Rje(e, t) {
  Ue("TSConstructSignatureDeclaration", e, t);
}
function Bje(e, t) {
  Ue("TSPropertySignature", e, t);
}
function Fje(e, t) {
  Ue("TSMethodSignature", e, t);
}
function jje(e, t) {
  Ue("TSIndexSignature", e, t);
}
function $je(e, t) {
  Ue("TSAnyKeyword", e, t);
}
function Uje(e, t) {
  Ue("TSBooleanKeyword", e, t);
}
function qje(e, t) {
  Ue("TSBigIntKeyword", e, t);
}
function Vje(e, t) {
  Ue("TSIntrinsicKeyword", e, t);
}
function Wje(e, t) {
  Ue("TSNeverKeyword", e, t);
}
function Hje(e, t) {
  Ue("TSNullKeyword", e, t);
}
function Kje(e, t) {
  Ue("TSNumberKeyword", e, t);
}
function zje(e, t) {
  Ue("TSObjectKeyword", e, t);
}
function Gje(e, t) {
  Ue("TSStringKeyword", e, t);
}
function Yje(e, t) {
  Ue("TSSymbolKeyword", e, t);
}
function Xje(e, t) {
  Ue("TSUndefinedKeyword", e, t);
}
function Jje(e, t) {
  Ue("TSUnknownKeyword", e, t);
}
function Qje(e, t) {
  Ue("TSVoidKeyword", e, t);
}
function Zje(e, t) {
  Ue("TSThisType", e, t);
}
function e4e(e, t) {
  Ue("TSFunctionType", e, t);
}
function t4e(e, t) {
  Ue("TSConstructorType", e, t);
}
function r4e(e, t) {
  Ue("TSTypeReference", e, t);
}
function i4e(e, t) {
  Ue("TSTypePredicate", e, t);
}
function n4e(e, t) {
  Ue("TSTypeQuery", e, t);
}
function s4e(e, t) {
  Ue("TSTypeLiteral", e, t);
}
function a4e(e, t) {
  Ue("TSArrayType", e, t);
}
function o4e(e, t) {
  Ue("TSTupleType", e, t);
}
function l4e(e, t) {
  Ue("TSOptionalType", e, t);
}
function u4e(e, t) {
  Ue("TSRestType", e, t);
}
function c4e(e, t) {
  Ue("TSNamedTupleMember", e, t);
}
function p4e(e, t) {
  Ue("TSUnionType", e, t);
}
function f4e(e, t) {
  Ue("TSIntersectionType", e, t);
}
function h4e(e, t) {
  Ue("TSConditionalType", e, t);
}
function d4e(e, t) {
  Ue("TSInferType", e, t);
}
function m4e(e, t) {
  Ue("TSParenthesizedType", e, t);
}
function y4e(e, t) {
  Ue("TSTypeOperator", e, t);
}
function g4e(e, t) {
  Ue("TSIndexedAccessType", e, t);
}
function b4e(e, t) {
  Ue("TSMappedType", e, t);
}
function v4e(e, t) {
  Ue("TSLiteralType", e, t);
}
function T4e(e, t) {
  Ue("TSExpressionWithTypeArguments", e, t);
}
function S4e(e, t) {
  Ue("TSInterfaceDeclaration", e, t);
}
function x4e(e, t) {
  Ue("TSInterfaceBody", e, t);
}
function E4e(e, t) {
  Ue("TSTypeAliasDeclaration", e, t);
}
function P4e(e, t) {
  Ue("TSInstantiationExpression", e, t);
}
function w4e(e, t) {
  Ue("TSAsExpression", e, t);
}
function A4e(e, t) {
  Ue("TSSatisfiesExpression", e, t);
}
function C4e(e, t) {
  Ue("TSTypeAssertion", e, t);
}
function _4e(e, t) {
  Ue("TSEnumDeclaration", e, t);
}
function I4e(e, t) {
  Ue("TSEnumMember", e, t);
}
function k4e(e, t) {
  Ue("TSModuleDeclaration", e, t);
}
function O4e(e, t) {
  Ue("TSModuleBlock", e, t);
}
function N4e(e, t) {
  Ue("TSImportType", e, t);
}
function D4e(e, t) {
  Ue("TSImportEqualsDeclaration", e, t);
}
function L4e(e, t) {
  Ue("TSExternalModuleReference", e, t);
}
function M4e(e, t) {
  Ue("TSNonNullExpression", e, t);
}
function R4e(e, t) {
  Ue("TSExportAssignment", e, t);
}
function B4e(e, t) {
  Ue("TSNamespaceExportDeclaration", e, t);
}
function F4e(e, t) {
  Ue("TSTypeAnnotation", e, t);
}
function j4e(e, t) {
  Ue("TSTypeParameterInstantiation", e, t);
}
function $4e(e, t) {
  Ue("TSTypeParameterDeclaration", e, t);
}
function U4e(e, t) {
  Ue("TSTypeParameter", e, t);
}
function q4e(e, t) {
  Ue("Standardized", e, t);
}
function V4e(e, t) {
  Ue("Expression", e, t);
}
function W4e(e, t) {
  Ue("Binary", e, t);
}
function H4e(e, t) {
  Ue("Scopable", e, t);
}
function K4e(e, t) {
  Ue("BlockParent", e, t);
}
function z4e(e, t) {
  Ue("Block", e, t);
}
function G4e(e, t) {
  Ue("Statement", e, t);
}
function Y4e(e, t) {
  Ue("Terminatorless", e, t);
}
function X4e(e, t) {
  Ue("CompletionStatement", e, t);
}
function J4e(e, t) {
  Ue("Conditional", e, t);
}
function Q4e(e, t) {
  Ue("Loop", e, t);
}
function Z4e(e, t) {
  Ue("While", e, t);
}
function e$e(e, t) {
  Ue("ExpressionWrapper", e, t);
}
function t$e(e, t) {
  Ue("For", e, t);
}
function r$e(e, t) {
  Ue("ForXStatement", e, t);
}
function i$e(e, t) {
  Ue("Function", e, t);
}
function n$e(e, t) {
  Ue("FunctionParent", e, t);
}
function s$e(e, t) {
  Ue("Pureish", e, t);
}
function a$e(e, t) {
  Ue("Declaration", e, t);
}
function o$e(e, t) {
  Ue("PatternLike", e, t);
}
function l$e(e, t) {
  Ue("LVal", e, t);
}
function u$e(e, t) {
  Ue("TSEntityName", e, t);
}
function c$e(e, t) {
  Ue("Literal", e, t);
}
function p$e(e, t) {
  Ue("Immutable", e, t);
}
function f$e(e, t) {
  Ue("UserWhitespacable", e, t);
}
function h$e(e, t) {
  Ue("Method", e, t);
}
function d$e(e, t) {
  Ue("ObjectMember", e, t);
}
function m$e(e, t) {
  Ue("Property", e, t);
}
function y$e(e, t) {
  Ue("UnaryLike", e, t);
}
function g$e(e, t) {
  Ue("Pattern", e, t);
}
function b$e(e, t) {
  Ue("Class", e, t);
}
function v$e(e, t) {
  Ue("ImportOrExportDeclaration", e, t);
}
function T$e(e, t) {
  Ue("ExportDeclaration", e, t);
}
function S$e(e, t) {
  Ue("ModuleSpecifier", e, t);
}
function x$e(e, t) {
  Ue("Accessor", e, t);
}
function E$e(e, t) {
  Ue("Private", e, t);
}
function P$e(e, t) {
  Ue("Flow", e, t);
}
function w$e(e, t) {
  Ue("FlowType", e, t);
}
function A$e(e, t) {
  Ue("FlowBaseAnnotation", e, t);
}
function C$e(e, t) {
  Ue("FlowDeclaration", e, t);
}
function _$e(e, t) {
  Ue("FlowPredicate", e, t);
}
function I$e(e, t) {
  Ue("EnumBody", e, t);
}
function k$e(e, t) {
  Ue("EnumMember", e, t);
}
function O$e(e, t) {
  Ue("JSX", e, t);
}
function N$e(e, t) {
  Ue("Miscellaneous", e, t);
}
function D$e(e, t) {
  Ue("TypeScript", e, t);
}
function L$e(e, t) {
  Ue("TSTypeElement", e, t);
}
function M$e(e, t) {
  Ue("TSType", e, t);
}
function R$e(e, t) {
  Ue("TSBaseType", e, t);
}
function B$e(e, t) {
  (0, MT.default)("assertNumberLiteral", "assertNumericLiteral"), Ue("NumberLiteral", e, t);
}
function F$e(e, t) {
  (0, MT.default)("assertRegexLiteral", "assertRegExpLiteral"), Ue("RegexLiteral", e, t);
}
function j$e(e, t) {
  (0, MT.default)("assertRestProperty", "assertRestElement"), Ue("RestProperty", e, t);
}
function $$e(e, t) {
  (0, MT.default)("assertSpreadProperty", "assertSpreadElement"), Ue("SpreadProperty", e, t);
}
function U$e(e, t) {
  (0, MT.default)("assertModuleDeclaration", "assertImportOrExportDeclaration"), Ue("ModuleDeclaration", e, t);
}
var lb = {}, BW;
function q$e() {
  if (BW)
    return lb;
  BW = 1, Object.defineProperty(lb, "__esModule", {
    value: !0
  }), lb.default = void 0;
  var e = Va();
  lb.default = t;
  function t(r) {
    switch (r) {
      case "string":
        return (0, e.stringTypeAnnotation)();
      case "number":
        return (0, e.numberTypeAnnotation)();
      case "undefined":
        return (0, e.voidTypeAnnotation)();
      case "boolean":
        return (0, e.booleanTypeAnnotation)();
      case "function":
        return (0, e.genericTypeAnnotation)((0, e.identifier)("Function"));
      case "object":
        return (0, e.genericTypeAnnotation)((0, e.identifier)("Object"));
      case "symbol":
        return (0, e.genericTypeAnnotation)((0, e.identifier)("Symbol"));
      case "bigint":
        return (0, e.anyTypeAnnotation)();
    }
    throw new Error("Invalid typeof value: " + r);
  }
  return lb;
}
var sx = {}, OC = {};
Object.defineProperty(OC, "__esModule", {
  value: !0
});
OC.default = Ype;
var g0 = Ne;
function Gpe(e) {
  return (0, g0.isIdentifier)(e) ? e.name : "".concat(e.id.name, ".").concat(Gpe(e.qualification));
}
function Ype(e) {
  const t = Array.from(e), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Set(), s = [];
  for (let a = 0; a < t.length; a++) {
    const o = t[a];
    if (o && !(s.indexOf(o) >= 0)) {
      if ((0, g0.isAnyTypeAnnotation)(o))
        return [o];
      if ((0, g0.isFlowBaseAnnotation)(o)) {
        i.set(o.type, o);
        continue;
      }
      if ((0, g0.isUnionTypeAnnotation)(o)) {
        n.has(o.types) || (t.push(...o.types), n.add(o.types));
        continue;
      }
      if ((0, g0.isGenericTypeAnnotation)(o)) {
        const l = Gpe(o.id);
        if (r.has(l)) {
          let u = r.get(l);
          u.typeParameters ? o.typeParameters && (u.typeParameters.params.push(...o.typeParameters.params), u.typeParameters.params = Ype(u.typeParameters.params)) : u = o.typeParameters;
        } else
          r.set(l, o);
        continue;
      }
      s.push(o);
    }
  }
  for (const [, a] of i)
    s.push(a);
  for (const [, a] of r)
    s.push(a);
  return s;
}
var FW;
function V$e() {
  if (FW)
    return sx;
  FW = 1, Object.defineProperty(sx, "__esModule", {
    value: !0
  }), sx.default = r;
  var e = Va(), t = OC;
  function r(i) {
    const n = (0, t.default)(i);
    return n.length === 1 ? n[0] : (0, e.unionTypeAnnotation)(n);
  }
  return sx;
}
var ax = {}, s6 = {};
Object.defineProperty(s6, "__esModule", {
  value: !0
});
s6.default = Jpe;
var b0 = Ne;
function Xpe(e) {
  return (0, b0.isIdentifier)(e) ? e.name : "".concat(e.right.name, ".").concat(Xpe(e.left));
}
function Jpe(e) {
  const t = Array.from(e), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Set(), s = [];
  for (let a = 0; a < t.length; a++) {
    const o = t[a];
    if (o && !(s.indexOf(o) >= 0)) {
      if ((0, b0.isTSAnyKeyword)(o))
        return [o];
      if ((0, b0.isTSBaseType)(o)) {
        i.set(o.type, o);
        continue;
      }
      if ((0, b0.isTSUnionType)(o)) {
        n.has(o.types) || (t.push(...o.types), n.add(o.types));
        continue;
      }
      if ((0, b0.isTSTypeReference)(o) && o.typeParameters) {
        const l = Xpe(o.typeName);
        if (r.has(l)) {
          let u = r.get(l);
          u.typeParameters ? o.typeParameters && (u.typeParameters.params.push(...o.typeParameters.params), u.typeParameters.params = Jpe(u.typeParameters.params)) : u = o.typeParameters;
        } else
          r.set(l, o);
        continue;
      }
      s.push(o);
    }
  }
  for (const [, a] of i)
    s.push(a);
  for (const [, a] of r)
    s.push(a);
  return s;
}
var jW;
function W$e() {
  if (jW)
    return ax;
  jW = 1, Object.defineProperty(ax, "__esModule", {
    value: !0
  }), ax.default = i;
  var e = Va(), t = s6, r = Ne;
  function i(n) {
    const s = n.map((o) => (0, r.isTSTypeAnnotation)(o) ? o.typeAnnotation : o), a = (0, t.default)(s);
    return a.length === 1 ? a[0] : (0, e.tsUnionType)(a);
  }
  return ax;
}
var SM = {}, $W;
function H$e() {
  return $W || ($W = 1, function(e) {
    Object.defineProperty(e, "__esModule", {
      value: !0
    }), Object.defineProperty(e, "AnyTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.anyTypeAnnotation;
      }
    }), Object.defineProperty(e, "ArgumentPlaceholder", {
      enumerable: !0,
      get: function() {
        return t.argumentPlaceholder;
      }
    }), Object.defineProperty(e, "ArrayExpression", {
      enumerable: !0,
      get: function() {
        return t.arrayExpression;
      }
    }), Object.defineProperty(e, "ArrayPattern", {
      enumerable: !0,
      get: function() {
        return t.arrayPattern;
      }
    }), Object.defineProperty(e, "ArrayTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.arrayTypeAnnotation;
      }
    }), Object.defineProperty(e, "ArrowFunctionExpression", {
      enumerable: !0,
      get: function() {
        return t.arrowFunctionExpression;
      }
    }), Object.defineProperty(e, "AssignmentExpression", {
      enumerable: !0,
      get: function() {
        return t.assignmentExpression;
      }
    }), Object.defineProperty(e, "AssignmentPattern", {
      enumerable: !0,
      get: function() {
        return t.assignmentPattern;
      }
    }), Object.defineProperty(e, "AwaitExpression", {
      enumerable: !0,
      get: function() {
        return t.awaitExpression;
      }
    }), Object.defineProperty(e, "BigIntLiteral", {
      enumerable: !0,
      get: function() {
        return t.bigIntLiteral;
      }
    }), Object.defineProperty(e, "BinaryExpression", {
      enumerable: !0,
      get: function() {
        return t.binaryExpression;
      }
    }), Object.defineProperty(e, "BindExpression", {
      enumerable: !0,
      get: function() {
        return t.bindExpression;
      }
    }), Object.defineProperty(e, "BlockStatement", {
      enumerable: !0,
      get: function() {
        return t.blockStatement;
      }
    }), Object.defineProperty(e, "BooleanLiteral", {
      enumerable: !0,
      get: function() {
        return t.booleanLiteral;
      }
    }), Object.defineProperty(e, "BooleanLiteralTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.booleanLiteralTypeAnnotation;
      }
    }), Object.defineProperty(e, "BooleanTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.booleanTypeAnnotation;
      }
    }), Object.defineProperty(e, "BreakStatement", {
      enumerable: !0,
      get: function() {
        return t.breakStatement;
      }
    }), Object.defineProperty(e, "CallExpression", {
      enumerable: !0,
      get: function() {
        return t.callExpression;
      }
    }), Object.defineProperty(e, "CatchClause", {
      enumerable: !0,
      get: function() {
        return t.catchClause;
      }
    }), Object.defineProperty(e, "ClassAccessorProperty", {
      enumerable: !0,
      get: function() {
        return t.classAccessorProperty;
      }
    }), Object.defineProperty(e, "ClassBody", {
      enumerable: !0,
      get: function() {
        return t.classBody;
      }
    }), Object.defineProperty(e, "ClassDeclaration", {
      enumerable: !0,
      get: function() {
        return t.classDeclaration;
      }
    }), Object.defineProperty(e, "ClassExpression", {
      enumerable: !0,
      get: function() {
        return t.classExpression;
      }
    }), Object.defineProperty(e, "ClassImplements", {
      enumerable: !0,
      get: function() {
        return t.classImplements;
      }
    }), Object.defineProperty(e, "ClassMethod", {
      enumerable: !0,
      get: function() {
        return t.classMethod;
      }
    }), Object.defineProperty(e, "ClassPrivateMethod", {
      enumerable: !0,
      get: function() {
        return t.classPrivateMethod;
      }
    }), Object.defineProperty(e, "ClassPrivateProperty", {
      enumerable: !0,
      get: function() {
        return t.classPrivateProperty;
      }
    }), Object.defineProperty(e, "ClassProperty", {
      enumerable: !0,
      get: function() {
        return t.classProperty;
      }
    }), Object.defineProperty(e, "ConditionalExpression", {
      enumerable: !0,
      get: function() {
        return t.conditionalExpression;
      }
    }), Object.defineProperty(e, "ContinueStatement", {
      enumerable: !0,
      get: function() {
        return t.continueStatement;
      }
    }), Object.defineProperty(e, "DebuggerStatement", {
      enumerable: !0,
      get: function() {
        return t.debuggerStatement;
      }
    }), Object.defineProperty(e, "DecimalLiteral", {
      enumerable: !0,
      get: function() {
        return t.decimalLiteral;
      }
    }), Object.defineProperty(e, "DeclareClass", {
      enumerable: !0,
      get: function() {
        return t.declareClass;
      }
    }), Object.defineProperty(e, "DeclareExportAllDeclaration", {
      enumerable: !0,
      get: function() {
        return t.declareExportAllDeclaration;
      }
    }), Object.defineProperty(e, "DeclareExportDeclaration", {
      enumerable: !0,
      get: function() {
        return t.declareExportDeclaration;
      }
    }), Object.defineProperty(e, "DeclareFunction", {
      enumerable: !0,
      get: function() {
        return t.declareFunction;
      }
    }), Object.defineProperty(e, "DeclareInterface", {
      enumerable: !0,
      get: function() {
        return t.declareInterface;
      }
    }), Object.defineProperty(e, "DeclareModule", {
      enumerable: !0,
      get: function() {
        return t.declareModule;
      }
    }), Object.defineProperty(e, "DeclareModuleExports", {
      enumerable: !0,
      get: function() {
        return t.declareModuleExports;
      }
    }), Object.defineProperty(e, "DeclareOpaqueType", {
      enumerable: !0,
      get: function() {
        return t.declareOpaqueType;
      }
    }), Object.defineProperty(e, "DeclareTypeAlias", {
      enumerable: !0,
      get: function() {
        return t.declareTypeAlias;
      }
    }), Object.defineProperty(e, "DeclareVariable", {
      enumerable: !0,
      get: function() {
        return t.declareVariable;
      }
    }), Object.defineProperty(e, "DeclaredPredicate", {
      enumerable: !0,
      get: function() {
        return t.declaredPredicate;
      }
    }), Object.defineProperty(e, "Decorator", {
      enumerable: !0,
      get: function() {
        return t.decorator;
      }
    }), Object.defineProperty(e, "Directive", {
      enumerable: !0,
      get: function() {
        return t.directive;
      }
    }), Object.defineProperty(e, "DirectiveLiteral", {
      enumerable: !0,
      get: function() {
        return t.directiveLiteral;
      }
    }), Object.defineProperty(e, "DoExpression", {
      enumerable: !0,
      get: function() {
        return t.doExpression;
      }
    }), Object.defineProperty(e, "DoWhileStatement", {
      enumerable: !0,
      get: function() {
        return t.doWhileStatement;
      }
    }), Object.defineProperty(e, "EmptyStatement", {
      enumerable: !0,
      get: function() {
        return t.emptyStatement;
      }
    }), Object.defineProperty(e, "EmptyTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.emptyTypeAnnotation;
      }
    }), Object.defineProperty(e, "EnumBooleanBody", {
      enumerable: !0,
      get: function() {
        return t.enumBooleanBody;
      }
    }), Object.defineProperty(e, "EnumBooleanMember", {
      enumerable: !0,
      get: function() {
        return t.enumBooleanMember;
      }
    }), Object.defineProperty(e, "EnumDeclaration", {
      enumerable: !0,
      get: function() {
        return t.enumDeclaration;
      }
    }), Object.defineProperty(e, "EnumDefaultedMember", {
      enumerable: !0,
      get: function() {
        return t.enumDefaultedMember;
      }
    }), Object.defineProperty(e, "EnumNumberBody", {
      enumerable: !0,
      get: function() {
        return t.enumNumberBody;
      }
    }), Object.defineProperty(e, "EnumNumberMember", {
      enumerable: !0,
      get: function() {
        return t.enumNumberMember;
      }
    }), Object.defineProperty(e, "EnumStringBody", {
      enumerable: !0,
      get: function() {
        return t.enumStringBody;
      }
    }), Object.defineProperty(e, "EnumStringMember", {
      enumerable: !0,
      get: function() {
        return t.enumStringMember;
      }
    }), Object.defineProperty(e, "EnumSymbolBody", {
      enumerable: !0,
      get: function() {
        return t.enumSymbolBody;
      }
    }), Object.defineProperty(e, "ExistsTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.existsTypeAnnotation;
      }
    }), Object.defineProperty(e, "ExportAllDeclaration", {
      enumerable: !0,
      get: function() {
        return t.exportAllDeclaration;
      }
    }), Object.defineProperty(e, "ExportDefaultDeclaration", {
      enumerable: !0,
      get: function() {
        return t.exportDefaultDeclaration;
      }
    }), Object.defineProperty(e, "ExportDefaultSpecifier", {
      enumerable: !0,
      get: function() {
        return t.exportDefaultSpecifier;
      }
    }), Object.defineProperty(e, "ExportNamedDeclaration", {
      enumerable: !0,
      get: function() {
        return t.exportNamedDeclaration;
      }
    }), Object.defineProperty(e, "ExportNamespaceSpecifier", {
      enumerable: !0,
      get: function() {
        return t.exportNamespaceSpecifier;
      }
    }), Object.defineProperty(e, "ExportSpecifier", {
      enumerable: !0,
      get: function() {
        return t.exportSpecifier;
      }
    }), Object.defineProperty(e, "ExpressionStatement", {
      enumerable: !0,
      get: function() {
        return t.expressionStatement;
      }
    }), Object.defineProperty(e, "File", {
      enumerable: !0,
      get: function() {
        return t.file;
      }
    }), Object.defineProperty(e, "ForInStatement", {
      enumerable: !0,
      get: function() {
        return t.forInStatement;
      }
    }), Object.defineProperty(e, "ForOfStatement", {
      enumerable: !0,
      get: function() {
        return t.forOfStatement;
      }
    }), Object.defineProperty(e, "ForStatement", {
      enumerable: !0,
      get: function() {
        return t.forStatement;
      }
    }), Object.defineProperty(e, "FunctionDeclaration", {
      enumerable: !0,
      get: function() {
        return t.functionDeclaration;
      }
    }), Object.defineProperty(e, "FunctionExpression", {
      enumerable: !0,
      get: function() {
        return t.functionExpression;
      }
    }), Object.defineProperty(e, "FunctionTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.functionTypeAnnotation;
      }
    }), Object.defineProperty(e, "FunctionTypeParam", {
      enumerable: !0,
      get: function() {
        return t.functionTypeParam;
      }
    }), Object.defineProperty(e, "GenericTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.genericTypeAnnotation;
      }
    }), Object.defineProperty(e, "Identifier", {
      enumerable: !0,
      get: function() {
        return t.identifier;
      }
    }), Object.defineProperty(e, "IfStatement", {
      enumerable: !0,
      get: function() {
        return t.ifStatement;
      }
    }), Object.defineProperty(e, "Import", {
      enumerable: !0,
      get: function() {
        return t.import;
      }
    }), Object.defineProperty(e, "ImportAttribute", {
      enumerable: !0,
      get: function() {
        return t.importAttribute;
      }
    }), Object.defineProperty(e, "ImportDeclaration", {
      enumerable: !0,
      get: function() {
        return t.importDeclaration;
      }
    }), Object.defineProperty(e, "ImportDefaultSpecifier", {
      enumerable: !0,
      get: function() {
        return t.importDefaultSpecifier;
      }
    }), Object.defineProperty(e, "ImportExpression", {
      enumerable: !0,
      get: function() {
        return t.importExpression;
      }
    }), Object.defineProperty(e, "ImportNamespaceSpecifier", {
      enumerable: !0,
      get: function() {
        return t.importNamespaceSpecifier;
      }
    }), Object.defineProperty(e, "ImportSpecifier", {
      enumerable: !0,
      get: function() {
        return t.importSpecifier;
      }
    }), Object.defineProperty(e, "IndexedAccessType", {
      enumerable: !0,
      get: function() {
        return t.indexedAccessType;
      }
    }), Object.defineProperty(e, "InferredPredicate", {
      enumerable: !0,
      get: function() {
        return t.inferredPredicate;
      }
    }), Object.defineProperty(e, "InterfaceDeclaration", {
      enumerable: !0,
      get: function() {
        return t.interfaceDeclaration;
      }
    }), Object.defineProperty(e, "InterfaceExtends", {
      enumerable: !0,
      get: function() {
        return t.interfaceExtends;
      }
    }), Object.defineProperty(e, "InterfaceTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.interfaceTypeAnnotation;
      }
    }), Object.defineProperty(e, "InterpreterDirective", {
      enumerable: !0,
      get: function() {
        return t.interpreterDirective;
      }
    }), Object.defineProperty(e, "IntersectionTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.intersectionTypeAnnotation;
      }
    }), Object.defineProperty(e, "JSXAttribute", {
      enumerable: !0,
      get: function() {
        return t.jsxAttribute;
      }
    }), Object.defineProperty(e, "JSXClosingElement", {
      enumerable: !0,
      get: function() {
        return t.jsxClosingElement;
      }
    }), Object.defineProperty(e, "JSXClosingFragment", {
      enumerable: !0,
      get: function() {
        return t.jsxClosingFragment;
      }
    }), Object.defineProperty(e, "JSXElement", {
      enumerable: !0,
      get: function() {
        return t.jsxElement;
      }
    }), Object.defineProperty(e, "JSXEmptyExpression", {
      enumerable: !0,
      get: function() {
        return t.jsxEmptyExpression;
      }
    }), Object.defineProperty(e, "JSXExpressionContainer", {
      enumerable: !0,
      get: function() {
        return t.jsxExpressionContainer;
      }
    }), Object.defineProperty(e, "JSXFragment", {
      enumerable: !0,
      get: function() {
        return t.jsxFragment;
      }
    }), Object.defineProperty(e, "JSXIdentifier", {
      enumerable: !0,
      get: function() {
        return t.jsxIdentifier;
      }
    }), Object.defineProperty(e, "JSXMemberExpression", {
      enumerable: !0,
      get: function() {
        return t.jsxMemberExpression;
      }
    }), Object.defineProperty(e, "JSXNamespacedName", {
      enumerable: !0,
      get: function() {
        return t.jsxNamespacedName;
      }
    }), Object.defineProperty(e, "JSXOpeningElement", {
      enumerable: !0,
      get: function() {
        return t.jsxOpeningElement;
      }
    }), Object.defineProperty(e, "JSXOpeningFragment", {
      enumerable: !0,
      get: function() {
        return t.jsxOpeningFragment;
      }
    }), Object.defineProperty(e, "JSXSpreadAttribute", {
      enumerable: !0,
      get: function() {
        return t.jsxSpreadAttribute;
      }
    }), Object.defineProperty(e, "JSXSpreadChild", {
      enumerable: !0,
      get: function() {
        return t.jsxSpreadChild;
      }
    }), Object.defineProperty(e, "JSXText", {
      enumerable: !0,
      get: function() {
        return t.jsxText;
      }
    }), Object.defineProperty(e, "LabeledStatement", {
      enumerable: !0,
      get: function() {
        return t.labeledStatement;
      }
    }), Object.defineProperty(e, "LogicalExpression", {
      enumerable: !0,
      get: function() {
        return t.logicalExpression;
      }
    }), Object.defineProperty(e, "MemberExpression", {
      enumerable: !0,
      get: function() {
        return t.memberExpression;
      }
    }), Object.defineProperty(e, "MetaProperty", {
      enumerable: !0,
      get: function() {
        return t.metaProperty;
      }
    }), Object.defineProperty(e, "MixedTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.mixedTypeAnnotation;
      }
    }), Object.defineProperty(e, "ModuleExpression", {
      enumerable: !0,
      get: function() {
        return t.moduleExpression;
      }
    }), Object.defineProperty(e, "NewExpression", {
      enumerable: !0,
      get: function() {
        return t.newExpression;
      }
    }), Object.defineProperty(e, "Noop", {
      enumerable: !0,
      get: function() {
        return t.noop;
      }
    }), Object.defineProperty(e, "NullLiteral", {
      enumerable: !0,
      get: function() {
        return t.nullLiteral;
      }
    }), Object.defineProperty(e, "NullLiteralTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.nullLiteralTypeAnnotation;
      }
    }), Object.defineProperty(e, "NullableTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.nullableTypeAnnotation;
      }
    }), Object.defineProperty(e, "NumberLiteral", {
      enumerable: !0,
      get: function() {
        return t.numberLiteral;
      }
    }), Object.defineProperty(e, "NumberLiteralTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.numberLiteralTypeAnnotation;
      }
    }), Object.defineProperty(e, "NumberTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.numberTypeAnnotation;
      }
    }), Object.defineProperty(e, "NumericLiteral", {
      enumerable: !0,
      get: function() {
        return t.numericLiteral;
      }
    }), Object.defineProperty(e, "ObjectExpression", {
      enumerable: !0,
      get: function() {
        return t.objectExpression;
      }
    }), Object.defineProperty(e, "ObjectMethod", {
      enumerable: !0,
      get: function() {
        return t.objectMethod;
      }
    }), Object.defineProperty(e, "ObjectPattern", {
      enumerable: !0,
      get: function() {
        return t.objectPattern;
      }
    }), Object.defineProperty(e, "ObjectProperty", {
      enumerable: !0,
      get: function() {
        return t.objectProperty;
      }
    }), Object.defineProperty(e, "ObjectTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.objectTypeAnnotation;
      }
    }), Object.defineProperty(e, "ObjectTypeCallProperty", {
      enumerable: !0,
      get: function() {
        return t.objectTypeCallProperty;
      }
    }), Object.defineProperty(e, "ObjectTypeIndexer", {
      enumerable: !0,
      get: function() {
        return t.objectTypeIndexer;
      }
    }), Object.defineProperty(e, "ObjectTypeInternalSlot", {
      enumerable: !0,
      get: function() {
        return t.objectTypeInternalSlot;
      }
    }), Object.defineProperty(e, "ObjectTypeProperty", {
      enumerable: !0,
      get: function() {
        return t.objectTypeProperty;
      }
    }), Object.defineProperty(e, "ObjectTypeSpreadProperty", {
      enumerable: !0,
      get: function() {
        return t.objectTypeSpreadProperty;
      }
    }), Object.defineProperty(e, "OpaqueType", {
      enumerable: !0,
      get: function() {
        return t.opaqueType;
      }
    }), Object.defineProperty(e, "OptionalCallExpression", {
      enumerable: !0,
      get: function() {
        return t.optionalCallExpression;
      }
    }), Object.defineProperty(e, "OptionalIndexedAccessType", {
      enumerable: !0,
      get: function() {
        return t.optionalIndexedAccessType;
      }
    }), Object.defineProperty(e, "OptionalMemberExpression", {
      enumerable: !0,
      get: function() {
        return t.optionalMemberExpression;
      }
    }), Object.defineProperty(e, "ParenthesizedExpression", {
      enumerable: !0,
      get: function() {
        return t.parenthesizedExpression;
      }
    }), Object.defineProperty(e, "PipelineBareFunction", {
      enumerable: !0,
      get: function() {
        return t.pipelineBareFunction;
      }
    }), Object.defineProperty(e, "PipelinePrimaryTopicReference", {
      enumerable: !0,
      get: function() {
        return t.pipelinePrimaryTopicReference;
      }
    }), Object.defineProperty(e, "PipelineTopicExpression", {
      enumerable: !0,
      get: function() {
        return t.pipelineTopicExpression;
      }
    }), Object.defineProperty(e, "Placeholder", {
      enumerable: !0,
      get: function() {
        return t.placeholder;
      }
    }), Object.defineProperty(e, "PrivateName", {
      enumerable: !0,
      get: function() {
        return t.privateName;
      }
    }), Object.defineProperty(e, "Program", {
      enumerable: !0,
      get: function() {
        return t.program;
      }
    }), Object.defineProperty(e, "QualifiedTypeIdentifier", {
      enumerable: !0,
      get: function() {
        return t.qualifiedTypeIdentifier;
      }
    }), Object.defineProperty(e, "RecordExpression", {
      enumerable: !0,
      get: function() {
        return t.recordExpression;
      }
    }), Object.defineProperty(e, "RegExpLiteral", {
      enumerable: !0,
      get: function() {
        return t.regExpLiteral;
      }
    }), Object.defineProperty(e, "RegexLiteral", {
      enumerable: !0,
      get: function() {
        return t.regexLiteral;
      }
    }), Object.defineProperty(e, "RestElement", {
      enumerable: !0,
      get: function() {
        return t.restElement;
      }
    }), Object.defineProperty(e, "RestProperty", {
      enumerable: !0,
      get: function() {
        return t.restProperty;
      }
    }), Object.defineProperty(e, "ReturnStatement", {
      enumerable: !0,
      get: function() {
        return t.returnStatement;
      }
    }), Object.defineProperty(e, "SequenceExpression", {
      enumerable: !0,
      get: function() {
        return t.sequenceExpression;
      }
    }), Object.defineProperty(e, "SpreadElement", {
      enumerable: !0,
      get: function() {
        return t.spreadElement;
      }
    }), Object.defineProperty(e, "SpreadProperty", {
      enumerable: !0,
      get: function() {
        return t.spreadProperty;
      }
    }), Object.defineProperty(e, "StaticBlock", {
      enumerable: !0,
      get: function() {
        return t.staticBlock;
      }
    }), Object.defineProperty(e, "StringLiteral", {
      enumerable: !0,
      get: function() {
        return t.stringLiteral;
      }
    }), Object.defineProperty(e, "StringLiteralTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.stringLiteralTypeAnnotation;
      }
    }), Object.defineProperty(e, "StringTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.stringTypeAnnotation;
      }
    }), Object.defineProperty(e, "Super", {
      enumerable: !0,
      get: function() {
        return t.super;
      }
    }), Object.defineProperty(e, "SwitchCase", {
      enumerable: !0,
      get: function() {
        return t.switchCase;
      }
    }), Object.defineProperty(e, "SwitchStatement", {
      enumerable: !0,
      get: function() {
        return t.switchStatement;
      }
    }), Object.defineProperty(e, "SymbolTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.symbolTypeAnnotation;
      }
    }), Object.defineProperty(e, "TSAnyKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsAnyKeyword;
      }
    }), Object.defineProperty(e, "TSArrayType", {
      enumerable: !0,
      get: function() {
        return t.tsArrayType;
      }
    }), Object.defineProperty(e, "TSAsExpression", {
      enumerable: !0,
      get: function() {
        return t.tsAsExpression;
      }
    }), Object.defineProperty(e, "TSBigIntKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsBigIntKeyword;
      }
    }), Object.defineProperty(e, "TSBooleanKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsBooleanKeyword;
      }
    }), Object.defineProperty(e, "TSCallSignatureDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsCallSignatureDeclaration;
      }
    }), Object.defineProperty(e, "TSConditionalType", {
      enumerable: !0,
      get: function() {
        return t.tsConditionalType;
      }
    }), Object.defineProperty(e, "TSConstructSignatureDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsConstructSignatureDeclaration;
      }
    }), Object.defineProperty(e, "TSConstructorType", {
      enumerable: !0,
      get: function() {
        return t.tsConstructorType;
      }
    }), Object.defineProperty(e, "TSDeclareFunction", {
      enumerable: !0,
      get: function() {
        return t.tsDeclareFunction;
      }
    }), Object.defineProperty(e, "TSDeclareMethod", {
      enumerable: !0,
      get: function() {
        return t.tsDeclareMethod;
      }
    }), Object.defineProperty(e, "TSEnumDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsEnumDeclaration;
      }
    }), Object.defineProperty(e, "TSEnumMember", {
      enumerable: !0,
      get: function() {
        return t.tsEnumMember;
      }
    }), Object.defineProperty(e, "TSExportAssignment", {
      enumerable: !0,
      get: function() {
        return t.tsExportAssignment;
      }
    }), Object.defineProperty(e, "TSExpressionWithTypeArguments", {
      enumerable: !0,
      get: function() {
        return t.tsExpressionWithTypeArguments;
      }
    }), Object.defineProperty(e, "TSExternalModuleReference", {
      enumerable: !0,
      get: function() {
        return t.tsExternalModuleReference;
      }
    }), Object.defineProperty(e, "TSFunctionType", {
      enumerable: !0,
      get: function() {
        return t.tsFunctionType;
      }
    }), Object.defineProperty(e, "TSImportEqualsDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsImportEqualsDeclaration;
      }
    }), Object.defineProperty(e, "TSImportType", {
      enumerable: !0,
      get: function() {
        return t.tsImportType;
      }
    }), Object.defineProperty(e, "TSIndexSignature", {
      enumerable: !0,
      get: function() {
        return t.tsIndexSignature;
      }
    }), Object.defineProperty(e, "TSIndexedAccessType", {
      enumerable: !0,
      get: function() {
        return t.tsIndexedAccessType;
      }
    }), Object.defineProperty(e, "TSInferType", {
      enumerable: !0,
      get: function() {
        return t.tsInferType;
      }
    }), Object.defineProperty(e, "TSInstantiationExpression", {
      enumerable: !0,
      get: function() {
        return t.tsInstantiationExpression;
      }
    }), Object.defineProperty(e, "TSInterfaceBody", {
      enumerable: !0,
      get: function() {
        return t.tsInterfaceBody;
      }
    }), Object.defineProperty(e, "TSInterfaceDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsInterfaceDeclaration;
      }
    }), Object.defineProperty(e, "TSIntersectionType", {
      enumerable: !0,
      get: function() {
        return t.tsIntersectionType;
      }
    }), Object.defineProperty(e, "TSIntrinsicKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsIntrinsicKeyword;
      }
    }), Object.defineProperty(e, "TSLiteralType", {
      enumerable: !0,
      get: function() {
        return t.tsLiteralType;
      }
    }), Object.defineProperty(e, "TSMappedType", {
      enumerable: !0,
      get: function() {
        return t.tsMappedType;
      }
    }), Object.defineProperty(e, "TSMethodSignature", {
      enumerable: !0,
      get: function() {
        return t.tsMethodSignature;
      }
    }), Object.defineProperty(e, "TSModuleBlock", {
      enumerable: !0,
      get: function() {
        return t.tsModuleBlock;
      }
    }), Object.defineProperty(e, "TSModuleDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsModuleDeclaration;
      }
    }), Object.defineProperty(e, "TSNamedTupleMember", {
      enumerable: !0,
      get: function() {
        return t.tsNamedTupleMember;
      }
    }), Object.defineProperty(e, "TSNamespaceExportDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsNamespaceExportDeclaration;
      }
    }), Object.defineProperty(e, "TSNeverKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsNeverKeyword;
      }
    }), Object.defineProperty(e, "TSNonNullExpression", {
      enumerable: !0,
      get: function() {
        return t.tsNonNullExpression;
      }
    }), Object.defineProperty(e, "TSNullKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsNullKeyword;
      }
    }), Object.defineProperty(e, "TSNumberKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsNumberKeyword;
      }
    }), Object.defineProperty(e, "TSObjectKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsObjectKeyword;
      }
    }), Object.defineProperty(e, "TSOptionalType", {
      enumerable: !0,
      get: function() {
        return t.tsOptionalType;
      }
    }), Object.defineProperty(e, "TSParameterProperty", {
      enumerable: !0,
      get: function() {
        return t.tsParameterProperty;
      }
    }), Object.defineProperty(e, "TSParenthesizedType", {
      enumerable: !0,
      get: function() {
        return t.tsParenthesizedType;
      }
    }), Object.defineProperty(e, "TSPropertySignature", {
      enumerable: !0,
      get: function() {
        return t.tsPropertySignature;
      }
    }), Object.defineProperty(e, "TSQualifiedName", {
      enumerable: !0,
      get: function() {
        return t.tsQualifiedName;
      }
    }), Object.defineProperty(e, "TSRestType", {
      enumerable: !0,
      get: function() {
        return t.tsRestType;
      }
    }), Object.defineProperty(e, "TSSatisfiesExpression", {
      enumerable: !0,
      get: function() {
        return t.tsSatisfiesExpression;
      }
    }), Object.defineProperty(e, "TSStringKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsStringKeyword;
      }
    }), Object.defineProperty(e, "TSSymbolKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsSymbolKeyword;
      }
    }), Object.defineProperty(e, "TSThisType", {
      enumerable: !0,
      get: function() {
        return t.tsThisType;
      }
    }), Object.defineProperty(e, "TSTupleType", {
      enumerable: !0,
      get: function() {
        return t.tsTupleType;
      }
    }), Object.defineProperty(e, "TSTypeAliasDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsTypeAliasDeclaration;
      }
    }), Object.defineProperty(e, "TSTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.tsTypeAnnotation;
      }
    }), Object.defineProperty(e, "TSTypeAssertion", {
      enumerable: !0,
      get: function() {
        return t.tsTypeAssertion;
      }
    }), Object.defineProperty(e, "TSTypeLiteral", {
      enumerable: !0,
      get: function() {
        return t.tsTypeLiteral;
      }
    }), Object.defineProperty(e, "TSTypeOperator", {
      enumerable: !0,
      get: function() {
        return t.tsTypeOperator;
      }
    }), Object.defineProperty(e, "TSTypeParameter", {
      enumerable: !0,
      get: function() {
        return t.tsTypeParameter;
      }
    }), Object.defineProperty(e, "TSTypeParameterDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsTypeParameterDeclaration;
      }
    }), Object.defineProperty(e, "TSTypeParameterInstantiation", {
      enumerable: !0,
      get: function() {
        return t.tsTypeParameterInstantiation;
      }
    }), Object.defineProperty(e, "TSTypePredicate", {
      enumerable: !0,
      get: function() {
        return t.tsTypePredicate;
      }
    }), Object.defineProperty(e, "TSTypeQuery", {
      enumerable: !0,
      get: function() {
        return t.tsTypeQuery;
      }
    }), Object.defineProperty(e, "TSTypeReference", {
      enumerable: !0,
      get: function() {
        return t.tsTypeReference;
      }
    }), Object.defineProperty(e, "TSUndefinedKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsUndefinedKeyword;
      }
    }), Object.defineProperty(e, "TSUnionType", {
      enumerable: !0,
      get: function() {
        return t.tsUnionType;
      }
    }), Object.defineProperty(e, "TSUnknownKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsUnknownKeyword;
      }
    }), Object.defineProperty(e, "TSVoidKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsVoidKeyword;
      }
    }), Object.defineProperty(e, "TaggedTemplateExpression", {
      enumerable: !0,
      get: function() {
        return t.taggedTemplateExpression;
      }
    }), Object.defineProperty(e, "TemplateElement", {
      enumerable: !0,
      get: function() {
        return t.templateElement;
      }
    }), Object.defineProperty(e, "TemplateLiteral", {
      enumerable: !0,
      get: function() {
        return t.templateLiteral;
      }
    }), Object.defineProperty(e, "ThisExpression", {
      enumerable: !0,
      get: function() {
        return t.thisExpression;
      }
    }), Object.defineProperty(e, "ThisTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.thisTypeAnnotation;
      }
    }), Object.defineProperty(e, "ThrowStatement", {
      enumerable: !0,
      get: function() {
        return t.throwStatement;
      }
    }), Object.defineProperty(e, "TopicReference", {
      enumerable: !0,
      get: function() {
        return t.topicReference;
      }
    }), Object.defineProperty(e, "TryStatement", {
      enumerable: !0,
      get: function() {
        return t.tryStatement;
      }
    }), Object.defineProperty(e, "TupleExpression", {
      enumerable: !0,
      get: function() {
        return t.tupleExpression;
      }
    }), Object.defineProperty(e, "TupleTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.tupleTypeAnnotation;
      }
    }), Object.defineProperty(e, "TypeAlias", {
      enumerable: !0,
      get: function() {
        return t.typeAlias;
      }
    }), Object.defineProperty(e, "TypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.typeAnnotation;
      }
    }), Object.defineProperty(e, "TypeCastExpression", {
      enumerable: !0,
      get: function() {
        return t.typeCastExpression;
      }
    }), Object.defineProperty(e, "TypeParameter", {
      enumerable: !0,
      get: function() {
        return t.typeParameter;
      }
    }), Object.defineProperty(e, "TypeParameterDeclaration", {
      enumerable: !0,
      get: function() {
        return t.typeParameterDeclaration;
      }
    }), Object.defineProperty(e, "TypeParameterInstantiation", {
      enumerable: !0,
      get: function() {
        return t.typeParameterInstantiation;
      }
    }), Object.defineProperty(e, "TypeofTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.typeofTypeAnnotation;
      }
    }), Object.defineProperty(e, "UnaryExpression", {
      enumerable: !0,
      get: function() {
        return t.unaryExpression;
      }
    }), Object.defineProperty(e, "UnionTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.unionTypeAnnotation;
      }
    }), Object.defineProperty(e, "UpdateExpression", {
      enumerable: !0,
      get: function() {
        return t.updateExpression;
      }
    }), Object.defineProperty(e, "V8IntrinsicIdentifier", {
      enumerable: !0,
      get: function() {
        return t.v8IntrinsicIdentifier;
      }
    }), Object.defineProperty(e, "VariableDeclaration", {
      enumerable: !0,
      get: function() {
        return t.variableDeclaration;
      }
    }), Object.defineProperty(e, "VariableDeclarator", {
      enumerable: !0,
      get: function() {
        return t.variableDeclarator;
      }
    }), Object.defineProperty(e, "Variance", {
      enumerable: !0,
      get: function() {
        return t.variance;
      }
    }), Object.defineProperty(e, "VoidTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.voidTypeAnnotation;
      }
    }), Object.defineProperty(e, "WhileStatement", {
      enumerable: !0,
      get: function() {
        return t.whileStatement;
      }
    }), Object.defineProperty(e, "WithStatement", {
      enumerable: !0,
      get: function() {
        return t.withStatement;
      }
    }), Object.defineProperty(e, "YieldExpression", {
      enumerable: !0,
      get: function() {
        return t.yieldExpression;
      }
    });
    var t = Va();
  }(SM)), SM;
}
var ox = {}, UW;
function K$e() {
  if (UW)
    return ox;
  UW = 1, Object.defineProperty(ox, "__esModule", {
    value: !0
  }), ox.buildUndefinedNode = t;
  var e = Va();
  function t() {
    return (0, e.unaryExpression)("void", (0, e.numericLiteral)(0), !0);
  }
  return ox;
}
var Lf = {};
Object.defineProperty(Lf, "__esModule", {
  value: !0
});
Lf.default = z$e;
var qW = Uc(), VW = Ne;
const _p = Function.call.bind(Object.prototype.hasOwnProperty);
function WW(e, t, r, i) {
  return e && typeof e.type == "string" ? Qpe(e, t, r, i) : e;
}
function HW(e, t, r, i) {
  return Array.isArray(e) ? e.map((n) => WW(n, t, r, i)) : WW(e, t, r, i);
}
function z$e(e, t = !0, r = !1) {
  return Qpe(e, t, r, /* @__PURE__ */ new Map());
}
function Qpe(e, t = !0, r = !1, i) {
  if (!e)
    return e;
  const {
    type: n
  } = e, s = {
    type: e.type
  };
  if ((0, VW.isIdentifier)(e))
    s.name = e.name, _p(e, "optional") && typeof e.optional == "boolean" && (s.optional = e.optional), _p(e, "typeAnnotation") && (s.typeAnnotation = t ? HW(e.typeAnnotation, !0, r, i) : e.typeAnnotation);
  else if (_p(qW.NODE_FIELDS, n))
    for (const a of Object.keys(qW.NODE_FIELDS[n]))
      _p(e, a) && (t ? s[a] = (0, VW.isFile)(e) && a === "comments" ? lx(e.comments, t, r, i) : HW(e[a], !0, r, i) : s[a] = e[a]);
  else
    throw new Error('Unknown node type: "'.concat(n, '"'));
  return _p(e, "loc") && (r ? s.loc = null : s.loc = e.loc), _p(e, "leadingComments") && (s.leadingComments = lx(e.leadingComments, t, r, i)), _p(e, "innerComments") && (s.innerComments = lx(e.innerComments, t, r, i)), _p(e, "trailingComments") && (s.trailingComments = lx(e.trailingComments, t, r, i)), _p(e, "extra") && (s.extra = Object.assign({}, e.extra)), s;
}
function lx(e, t, r, i) {
  return !e || !t ? e : e.map((n) => {
    const s = i.get(n);
    if (s)
      return s;
    const {
      type: a,
      value: o,
      loc: l
    } = n, u = {
      type: a,
      value: o,
      loc: l
    };
    return r && (u.loc = null), i.set(n, u), u;
  });
}
var a6 = {};
Object.defineProperty(a6, "__esModule", {
  value: !0
});
a6.default = Y$e;
var G$e = Lf;
function Y$e(e) {
  return (0, G$e.default)(e, !1);
}
var o6 = {};
Object.defineProperty(o6, "__esModule", {
  value: !0
});
o6.default = J$e;
var X$e = Lf;
function J$e(e) {
  return (0, X$e.default)(e);
}
var l6 = {};
Object.defineProperty(l6, "__esModule", {
  value: !0
});
l6.default = Z$e;
var Q$e = Lf;
function Z$e(e) {
  return (0, Q$e.default)(e, !0, !0);
}
var u6 = {};
Object.defineProperty(u6, "__esModule", {
  value: !0
});
u6.default = t6e;
var e6e = Lf;
function t6e(e) {
  return (0, e6e.default)(e, !1, !0);
}
var c6 = {}, NC = {};
Object.defineProperty(NC, "__esModule", {
  value: !0
});
NC.default = r6e;
function r6e(e, t, r) {
  if (!r || !e)
    return e;
  const i = "".concat(t, "Comments");
  return e[i] ? t === "leading" ? e[i] = r.concat(e[i]) : e[i].push(...r) : e[i] = r, e;
}
Object.defineProperty(c6, "__esModule", {
  value: !0
});
c6.default = n6e;
var i6e = NC;
function n6e(e, t, r, i) {
  return (0, i6e.default)(e, t, [{
    type: i ? "CommentLine" : "CommentBlock",
    value: r
  }]);
}
var DC = {}, RT = {};
Object.defineProperty(RT, "__esModule", {
  value: !0
});
RT.default = s6e;
function s6e(e, t, r) {
  t && r && (t[e] = Array.from(new Set([].concat(t[e], r[e]).filter(Boolean))));
}
Object.defineProperty(DC, "__esModule", {
  value: !0
});
DC.default = o6e;
var a6e = RT;
function o6e(e, t) {
  (0, a6e.default)("innerComments", e, t);
}
var LC = {};
Object.defineProperty(LC, "__esModule", {
  value: !0
});
LC.default = u6e;
var l6e = RT;
function u6e(e, t) {
  (0, l6e.default)("leadingComments", e, t);
}
var MC = {}, RC = {};
Object.defineProperty(RC, "__esModule", {
  value: !0
});
RC.default = p6e;
var c6e = RT;
function p6e(e, t) {
  (0, c6e.default)("trailingComments", e, t);
}
Object.defineProperty(MC, "__esModule", {
  value: !0
});
MC.default = m6e;
var f6e = RC, h6e = LC, d6e = DC;
function m6e(e, t) {
  return (0, f6e.default)(e, t), (0, h6e.default)(e, t), (0, d6e.default)(e, t), e;
}
var p6 = {};
Object.defineProperty(p6, "__esModule", {
  value: !0
});
p6.default = g6e;
var y6e = Tr;
function g6e(e) {
  return y6e.COMMENT_KEYS.forEach((t) => {
    e[t] = null;
  }), e;
}
var Pt = {};
Object.defineProperty(Pt, "__esModule", {
  value: !0
});
Pt.WHILE_TYPES = Pt.USERWHITESPACABLE_TYPES = Pt.UNARYLIKE_TYPES = Pt.TYPESCRIPT_TYPES = Pt.TSTYPE_TYPES = Pt.TSTYPEELEMENT_TYPES = Pt.TSENTITYNAME_TYPES = Pt.TSBASETYPE_TYPES = Pt.TERMINATORLESS_TYPES = Pt.STATEMENT_TYPES = Pt.STANDARDIZED_TYPES = Pt.SCOPABLE_TYPES = Pt.PUREISH_TYPES = Pt.PROPERTY_TYPES = Pt.PRIVATE_TYPES = Pt.PATTERN_TYPES = Pt.PATTERNLIKE_TYPES = Pt.OBJECTMEMBER_TYPES = Pt.MODULESPECIFIER_TYPES = Pt.MODULEDECLARATION_TYPES = Pt.MISCELLANEOUS_TYPES = Pt.METHOD_TYPES = Pt.LVAL_TYPES = Pt.LOOP_TYPES = Pt.LITERAL_TYPES = Pt.JSX_TYPES = Pt.IMPORTOREXPORTDECLARATION_TYPES = Pt.IMMUTABLE_TYPES = Pt.FUNCTION_TYPES = Pt.FUNCTIONPARENT_TYPES = Pt.FOR_TYPES = Pt.FORXSTATEMENT_TYPES = Pt.FLOW_TYPES = Pt.FLOWTYPE_TYPES = Pt.FLOWPREDICATE_TYPES = Pt.FLOWDECLARATION_TYPES = Pt.FLOWBASEANNOTATION_TYPES = Pt.EXPRESSION_TYPES = Pt.EXPRESSIONWRAPPER_TYPES = Pt.EXPORTDECLARATION_TYPES = Pt.ENUMMEMBER_TYPES = Pt.ENUMBODY_TYPES = Pt.DECLARATION_TYPES = Pt.CONDITIONAL_TYPES = Pt.COMPLETIONSTATEMENT_TYPES = Pt.CLASS_TYPES = Pt.BLOCK_TYPES = Pt.BLOCKPARENT_TYPES = Pt.BINARY_TYPES = Pt.ACCESSOR_TYPES = void 0;
var gr = Uc();
Pt.STANDARDIZED_TYPES = gr.FLIPPED_ALIAS_KEYS.Standardized;
Pt.EXPRESSION_TYPES = gr.FLIPPED_ALIAS_KEYS.Expression;
Pt.BINARY_TYPES = gr.FLIPPED_ALIAS_KEYS.Binary;
Pt.SCOPABLE_TYPES = gr.FLIPPED_ALIAS_KEYS.Scopable;
Pt.BLOCKPARENT_TYPES = gr.FLIPPED_ALIAS_KEYS.BlockParent;
Pt.BLOCK_TYPES = gr.FLIPPED_ALIAS_KEYS.Block;
Pt.STATEMENT_TYPES = gr.FLIPPED_ALIAS_KEYS.Statement;
Pt.TERMINATORLESS_TYPES = gr.FLIPPED_ALIAS_KEYS.Terminatorless;
Pt.COMPLETIONSTATEMENT_TYPES = gr.FLIPPED_ALIAS_KEYS.CompletionStatement;
Pt.CONDITIONAL_TYPES = gr.FLIPPED_ALIAS_KEYS.Conditional;
Pt.LOOP_TYPES = gr.FLIPPED_ALIAS_KEYS.Loop;
Pt.WHILE_TYPES = gr.FLIPPED_ALIAS_KEYS.While;
Pt.EXPRESSIONWRAPPER_TYPES = gr.FLIPPED_ALIAS_KEYS.ExpressionWrapper;
Pt.FOR_TYPES = gr.FLIPPED_ALIAS_KEYS.For;
Pt.FORXSTATEMENT_TYPES = gr.FLIPPED_ALIAS_KEYS.ForXStatement;
Pt.FUNCTION_TYPES = gr.FLIPPED_ALIAS_KEYS.Function;
Pt.FUNCTIONPARENT_TYPES = gr.FLIPPED_ALIAS_KEYS.FunctionParent;
Pt.PUREISH_TYPES = gr.FLIPPED_ALIAS_KEYS.Pureish;
Pt.DECLARATION_TYPES = gr.FLIPPED_ALIAS_KEYS.Declaration;
Pt.PATTERNLIKE_TYPES = gr.FLIPPED_ALIAS_KEYS.PatternLike;
Pt.LVAL_TYPES = gr.FLIPPED_ALIAS_KEYS.LVal;
Pt.TSENTITYNAME_TYPES = gr.FLIPPED_ALIAS_KEYS.TSEntityName;
Pt.LITERAL_TYPES = gr.FLIPPED_ALIAS_KEYS.Literal;
Pt.IMMUTABLE_TYPES = gr.FLIPPED_ALIAS_KEYS.Immutable;
Pt.USERWHITESPACABLE_TYPES = gr.FLIPPED_ALIAS_KEYS.UserWhitespacable;
Pt.METHOD_TYPES = gr.FLIPPED_ALIAS_KEYS.Method;
Pt.OBJECTMEMBER_TYPES = gr.FLIPPED_ALIAS_KEYS.ObjectMember;
Pt.PROPERTY_TYPES = gr.FLIPPED_ALIAS_KEYS.Property;
Pt.UNARYLIKE_TYPES = gr.FLIPPED_ALIAS_KEYS.UnaryLike;
Pt.PATTERN_TYPES = gr.FLIPPED_ALIAS_KEYS.Pattern;
Pt.CLASS_TYPES = gr.FLIPPED_ALIAS_KEYS.Class;
const b6e = Pt.IMPORTOREXPORTDECLARATION_TYPES = gr.FLIPPED_ALIAS_KEYS.ImportOrExportDeclaration;
Pt.EXPORTDECLARATION_TYPES = gr.FLIPPED_ALIAS_KEYS.ExportDeclaration;
Pt.MODULESPECIFIER_TYPES = gr.FLIPPED_ALIAS_KEYS.ModuleSpecifier;
Pt.ACCESSOR_TYPES = gr.FLIPPED_ALIAS_KEYS.Accessor;
Pt.PRIVATE_TYPES = gr.FLIPPED_ALIAS_KEYS.Private;
Pt.FLOW_TYPES = gr.FLIPPED_ALIAS_KEYS.Flow;
Pt.FLOWTYPE_TYPES = gr.FLIPPED_ALIAS_KEYS.FlowType;
Pt.FLOWBASEANNOTATION_TYPES = gr.FLIPPED_ALIAS_KEYS.FlowBaseAnnotation;
Pt.FLOWDECLARATION_TYPES = gr.FLIPPED_ALIAS_KEYS.FlowDeclaration;
Pt.FLOWPREDICATE_TYPES = gr.FLIPPED_ALIAS_KEYS.FlowPredicate;
Pt.ENUMBODY_TYPES = gr.FLIPPED_ALIAS_KEYS.EnumBody;
Pt.ENUMMEMBER_TYPES = gr.FLIPPED_ALIAS_KEYS.EnumMember;
Pt.JSX_TYPES = gr.FLIPPED_ALIAS_KEYS.JSX;
Pt.MISCELLANEOUS_TYPES = gr.FLIPPED_ALIAS_KEYS.Miscellaneous;
Pt.TYPESCRIPT_TYPES = gr.FLIPPED_ALIAS_KEYS.TypeScript;
Pt.TSTYPEELEMENT_TYPES = gr.FLIPPED_ALIAS_KEYS.TSTypeElement;
Pt.TSTYPE_TYPES = gr.FLIPPED_ALIAS_KEYS.TSType;
Pt.TSBASETYPE_TYPES = gr.FLIPPED_ALIAS_KEYS.TSBaseType;
Pt.MODULEDECLARATION_TYPES = b6e;
var ux = {}, cx = {}, KW;
function Zpe() {
  if (KW)
    return cx;
  KW = 1, Object.defineProperty(cx, "__esModule", {
    value: !0
  }), cx.default = r;
  var e = Ne, t = Va();
  function r(i, n) {
    if ((0, e.isBlockStatement)(i))
      return i;
    let s = [];
    return (0, e.isEmptyStatement)(i) ? s = [] : ((0, e.isStatement)(i) || ((0, e.isFunction)(n) ? i = (0, t.returnStatement)(i) : i = (0, t.expressionStatement)(i)), s = [i]), (0, t.blockStatement)(s);
  }
  return cx;
}
var zW;
function v6e() {
  if (zW)
    return ux;
  zW = 1, Object.defineProperty(ux, "__esModule", {
    value: !0
  }), ux.default = t;
  var e = Zpe();
  function t(r, i = "body") {
    const n = (0, e.default)(r[i], r);
    return r[i] = n, n;
  }
  return ux;
}
var f6 = {}, BC = {};
Object.defineProperty(BC, "__esModule", {
  value: !0
});
BC.default = x6e;
var T6e = rm, S6e = _C;
function x6e(e) {
  e = e + "";
  let t = "";
  for (const r of e)
    t += (0, S6e.isIdentifierChar)(r.codePointAt(0)) ? r : "-";
  return t = t.replace(/^[-0-9]+/, ""), t = t.replace(/[-\s]+(.)?/g, function(r, i) {
    return i ? i.toUpperCase() : "";
  }), (0, T6e.default)(t) || (t = "_".concat(t)), t || "_";
}
Object.defineProperty(f6, "__esModule", {
  value: !0
});
f6.default = P6e;
var E6e = BC;
function P6e(e) {
  return e = (0, E6e.default)(e), (e === "eval" || e === "arguments") && (e = "_" + e), e;
}
var px = {}, GW;
function w6e() {
  if (GW)
    return px;
  GW = 1, Object.defineProperty(px, "__esModule", {
    value: !0
  }), px.default = r;
  var e = Ne, t = Va();
  function r(i, n = i.key || i.property) {
    return !i.computed && (0, e.isIdentifier)(n) && (n = (0, t.stringLiteral)(n.name)), n;
  }
  return px;
}
var FC = {};
Object.defineProperty(FC, "__esModule", {
  value: !0
});
FC.default = void 0;
var ub = Ne;
FC.default = A6e;
function A6e(e) {
  if ((0, ub.isExpressionStatement)(e) && (e = e.expression), (0, ub.isExpression)(e))
    return e;
  if ((0, ub.isClass)(e) ? e.type = "ClassExpression" : (0, ub.isFunction)(e) && (e.type = "FunctionExpression"), !(0, ub.isExpression)(e))
    throw new Error("cannot turn ".concat(e.type, " to an expression"));
  return e;
}
var h6 = {}, jC = {}, $C = {};
Object.defineProperty($C, "__esModule", {
  value: !0
});
$C.default = AF;
var C6e = Uc();
function AF(e, t, r) {
  if (!e)
    return;
  const i = C6e.VISITOR_KEYS[e.type];
  if (i) {
    r = r || {}, t(e, r);
    for (const n of i) {
      const s = e[n];
      if (Array.isArray(s))
        for (const a of s)
          AF(a, t, r);
      else
        AF(s, t, r);
    }
  }
}
var UC = {};
Object.defineProperty(UC, "__esModule", {
  value: !0
});
UC.default = k6e;
var _6e = Tr;
const efe = ["tokens", "start", "end", "loc", "raw", "rawValue"], I6e = [..._6e.COMMENT_KEYS, "comments", ...efe];
function k6e(e, t = {}) {
  const r = t.preserveComments ? efe : I6e;
  for (const n of r)
    e[n] != null && (e[n] = void 0);
  for (const n of Object.keys(e))
    n[0] === "_" && e[n] != null && (e[n] = void 0);
  const i = Object.getOwnPropertySymbols(e);
  for (const n of i)
    e[n] = null;
}
Object.defineProperty(jC, "__esModule", {
  value: !0
});
jC.default = D6e;
var O6e = $C, N6e = UC;
function D6e(e, t) {
  return (0, O6e.default)(e, N6e.default, t), e;
}
Object.defineProperty(h6, "__esModule", {
  value: !0
});
h6.default = Cd;
var YW = Ne, L6e = Lf, M6e = jC;
function Cd(e, t = e.key) {
  let r;
  return e.kind === "method" ? Cd.increment() + "" : ((0, YW.isIdentifier)(t) ? r = t.name : (0, YW.isStringLiteral)(t) ? r = JSON.stringify(t.value) : r = JSON.stringify((0, M6e.default)((0, L6e.default)(t))), e.computed && (r = "[".concat(r, "]")), e.static && (r = "static:".concat(r)), r);
}
Cd.uid = 0;
Cd.increment = function() {
  return Cd.uid >= Number.MAX_SAFE_INTEGER ? Cd.uid = 0 : Cd.uid++;
};
var cb = {}, XW;
function R6e() {
  if (XW)
    return cb;
  XW = 1, Object.defineProperty(cb, "__esModule", {
    value: !0
  }), cb.default = void 0;
  var e = Ne, t = Va();
  cb.default = r;
  function r(i, n) {
    if ((0, e.isStatement)(i))
      return i;
    let s = !1, a;
    if ((0, e.isClass)(i))
      s = !0, a = "ClassDeclaration";
    else if ((0, e.isFunction)(i))
      s = !0, a = "FunctionDeclaration";
    else if ((0, e.isAssignmentExpression)(i))
      return (0, t.expressionStatement)(i);
    if (s && !i.id && (a = !1), !a) {
      if (n)
        return !1;
      throw new Error("cannot turn ".concat(i.type, " to a statement"));
    }
    return i.type = a, i;
  }
  return cb;
}
var pb = {}, JW;
function B6e() {
  if (JW)
    return pb;
  JW = 1, Object.defineProperty(pb, "__esModule", {
    value: !0
  }), pb.default = void 0;
  var e = rm, t = Va();
  pb.default = s;
  const r = Function.call.bind(Object.prototype.toString);
  function i(a) {
    return r(a) === "[object RegExp]";
  }
  function n(a) {
    if (typeof a != "object" || a === null || Object.prototype.toString.call(a) !== "[object Object]")
      return !1;
    const o = Object.getPrototypeOf(a);
    return o === null || Object.getPrototypeOf(o) === null;
  }
  function s(a) {
    if (a === void 0)
      return (0, t.identifier)("undefined");
    if (a === !0 || a === !1)
      return (0, t.booleanLiteral)(a);
    if (a === null)
      return (0, t.nullLiteral)();
    if (typeof a == "string")
      return (0, t.stringLiteral)(a);
    if (typeof a == "number") {
      let o;
      if (Number.isFinite(a))
        o = (0, t.numericLiteral)(Math.abs(a));
      else {
        let l;
        Number.isNaN(a) ? l = (0, t.numericLiteral)(0) : l = (0, t.numericLiteral)(1), o = (0, t.binaryExpression)("/", l, (0, t.numericLiteral)(0));
      }
      return (a < 0 || Object.is(a, -0)) && (o = (0, t.unaryExpression)("-", o)), o;
    }
    if (i(a)) {
      const o = a.source, l = a.toString().match(/\/([a-z]+|)$/)[1];
      return (0, t.regExpLiteral)(o, l);
    }
    if (Array.isArray(a))
      return (0, t.arrayExpression)(a.map(s));
    if (n(a)) {
      const o = [];
      for (const l of Object.keys(a)) {
        let u;
        (0, e.default)(l) ? u = (0, t.identifier)(l) : u = (0, t.stringLiteral)(l), o.push((0, t.objectProperty)(u, s(a[l])));
      }
      return (0, t.objectExpression)(o);
    }
    throw new Error("don't know how to turn this value into a node");
  }
  return pb;
}
var fx = {}, QW;
function F6e() {
  if (QW)
    return fx;
  QW = 1, Object.defineProperty(fx, "__esModule", {
    value: !0
  }), fx.default = t;
  var e = Va();
  function t(r, i, n = !1) {
    return r.object = (0, e.memberExpression)(r.object, r.property, r.computed), r.property = i, r.computed = !!n, r;
  }
  return fx;
}
var d6 = {};
Object.defineProperty(d6, "__esModule", {
  value: !0
});
d6.default = $6e;
var ZW = Tr, j6e = MC;
function $6e(e, t) {
  if (!e || !t)
    return e;
  for (const r of ZW.INHERIT_KEYS.optional)
    e[r] == null && (e[r] = t[r]);
  for (const r of Object.keys(t))
    r[0] === "_" && r !== "__clone" && (e[r] = t[r]);
  for (const r of ZW.INHERIT_KEYS.force)
    e[r] = t[r];
  return (0, j6e.default)(e, t), e;
}
var hx = {}, eH;
function U6e() {
  if (eH)
    return hx;
  eH = 1, Object.defineProperty(hx, "__esModule", {
    value: !0
  }), hx.default = r;
  var e = Va(), t = Nr();
  function r(i, n) {
    if ((0, t.isSuper)(i.object))
      throw new Error("Cannot prepend node to super property access (`super.foo`).");
    return i.object = (0, e.memberExpression)(n, i.object), i;
  }
  return hx;
}
var Tg = {};
Object.defineProperty(Tg, "__esModule", {
  value: !0
});
Tg.default = m6;
var Yf = Ne;
function m6(e, t, r, i) {
  const n = [].concat(e), s = /* @__PURE__ */ Object.create(null);
  for (; n.length; ) {
    const a = n.shift();
    if (!a || i && ((0, Yf.isAssignmentExpression)(a) || (0, Yf.isUnaryExpression)(a)))
      continue;
    const o = m6.keys[a.type];
    if ((0, Yf.isIdentifier)(a)) {
      t ? (s[a.name] = s[a.name] || []).push(a) : s[a.name] = a;
      continue;
    }
    if ((0, Yf.isExportDeclaration)(a) && !(0, Yf.isExportAllDeclaration)(a)) {
      (0, Yf.isDeclaration)(a.declaration) && n.push(a.declaration);
      continue;
    }
    if (r) {
      if ((0, Yf.isFunctionDeclaration)(a)) {
        n.push(a.id);
        continue;
      }
      if ((0, Yf.isFunctionExpression)(a))
        continue;
    }
    if (o)
      for (let l = 0; l < o.length; l++) {
        const u = o[l], c = a[u];
        c && (Array.isArray(c) ? n.push(...c) : n.push(c));
      }
  }
  return s;
}
m6.keys = {
  DeclareClass: ["id"],
  DeclareFunction: ["id"],
  DeclareModule: ["id"],
  DeclareVariable: ["id"],
  DeclareInterface: ["id"],
  DeclareTypeAlias: ["id"],
  DeclareOpaqueType: ["id"],
  InterfaceDeclaration: ["id"],
  TypeAlias: ["id"],
  OpaqueType: ["id"],
  CatchClause: ["param"],
  LabeledStatement: ["label"],
  UnaryExpression: ["argument"],
  AssignmentExpression: ["left"],
  ImportSpecifier: ["local"],
  ImportNamespaceSpecifier: ["local"],
  ImportDefaultSpecifier: ["local"],
  ImportDeclaration: ["specifiers"],
  ExportSpecifier: ["exported"],
  ExportNamespaceSpecifier: ["exported"],
  ExportDefaultSpecifier: ["exported"],
  FunctionDeclaration: ["id", "params"],
  FunctionExpression: ["id", "params"],
  ArrowFunctionExpression: ["params"],
  ObjectMethod: ["params"],
  ClassMethod: ["params"],
  ClassPrivateMethod: ["params"],
  ForInStatement: ["left"],
  ForOfStatement: ["left"],
  ClassDeclaration: ["id"],
  ClassExpression: ["id"],
  RestElement: ["argument"],
  UpdateExpression: ["argument"],
  ObjectProperty: ["value"],
  AssignmentPattern: ["left"],
  ArrayPattern: ["elements"],
  ObjectPattern: ["properties"],
  VariableDeclaration: ["declarations"],
  VariableDeclarator: ["id"]
};
var qC = {};
Object.defineProperty(qC, "__esModule", {
  value: !0
});
qC.default = void 0;
var q6e = Tg;
qC.default = V6e;
function V6e(e, t) {
  return (0, q6e.default)(e, t, !0);
}
var y6 = {};
Object.defineProperty(y6, "__esModule", {
  value: !0
});
y6.default = H6e;
var W6e = Uc();
function H6e(e, t, r) {
  typeof t == "function" && (t = {
    enter: t
  });
  const {
    enter: i,
    exit: n
  } = t;
  CF(e, i, n, r, []);
}
function CF(e, t, r, i, n) {
  const s = W6e.VISITOR_KEYS[e.type];
  if (s) {
    t && t(e, n, i);
    for (const a of s) {
      const o = e[a];
      if (Array.isArray(o))
        for (let l = 0; l < o.length; l++) {
          const u = o[l];
          u && (n.push({
            node: e,
            key: a,
            index: l
          }), CF(u, t, r, i, n), n.pop());
        }
      else
        o && (n.push({
          node: e,
          key: a
        }), CF(o, t, r, i, n), n.pop());
    }
    r && r(e, n, i);
  }
}
var g6 = {};
Object.defineProperty(g6, "__esModule", {
  value: !0
});
g6.default = z6e;
var K6e = Tg;
function z6e(e, t, r) {
  if (r && e.type === "Identifier" && t.type === "ObjectProperty" && r.type === "ObjectExpression")
    return !1;
  const i = K6e.default.keys[t.type];
  if (i)
    for (let n = 0; n < i.length; n++) {
      const s = i[n], a = t[s];
      if (Array.isArray(a)) {
        if (a.indexOf(e) >= 0)
          return !0;
      } else if (a === e)
        return !0;
    }
  return !1;
}
var b6 = {}, VC = {};
Object.defineProperty(VC, "__esModule", {
  value: !0
});
VC.default = X6e;
var G6e = Ne, Y6e = Tr;
function X6e(e) {
  return (0, G6e.isVariableDeclaration)(e) && (e.kind !== "var" || e[Y6e.BLOCK_SCOPED_SYMBOL]);
}
Object.defineProperty(b6, "__esModule", {
  value: !0
});
b6.default = Q6e;
var tH = Ne, J6e = VC;
function Q6e(e) {
  return (0, tH.isFunctionDeclaration)(e) || (0, tH.isClassDeclaration)(e) || (0, J6e.default)(e);
}
var v6 = {};
Object.defineProperty(v6, "__esModule", {
  value: !0
});
v6.default = t9e;
var Z6e = e6(), e9e = Ne;
function t9e(e) {
  return (0, Z6e.default)(e.type, "Immutable") ? !0 : (0, e9e.isIdentifier)(e) ? e.name === "undefined" : !1;
}
var T6 = {};
Object.defineProperty(T6, "__esModule", {
  value: !0
});
T6.default = _F;
var rH = Uc();
function _F(e, t) {
  if (typeof e != "object" || typeof t != "object" || e == null || t == null)
    return e === t;
  if (e.type !== t.type)
    return !1;
  const r = Object.keys(rH.NODE_FIELDS[e.type] || e.type), i = rH.VISITOR_KEYS[e.type];
  for (const n of r) {
    const s = e[n], a = t[n];
    if (typeof s != typeof a)
      return !1;
    if (!(s == null && a == null)) {
      if (s == null || a == null)
        return !1;
      if (Array.isArray(s)) {
        if (!Array.isArray(a) || s.length !== a.length)
          return !1;
        for (let o = 0; o < s.length; o++)
          if (!_F(s[o], a[o]))
            return !1;
        continue;
      }
      if (typeof s == "object" && !(i != null && i.includes(n))) {
        for (const o of Object.keys(s))
          if (s[o] !== a[o])
            return !1;
        continue;
      }
      if (!_F(s, a))
        return !1;
    }
  }
  return !0;
}
var S6 = {};
Object.defineProperty(S6, "__esModule", {
  value: !0
});
S6.default = r9e;
function r9e(e, t, r) {
  switch (t.type) {
    case "MemberExpression":
    case "OptionalMemberExpression":
      return t.property === e ? !!t.computed : t.object === e;
    case "JSXMemberExpression":
      return t.object === e;
    case "VariableDeclarator":
      return t.init === e;
    case "ArrowFunctionExpression":
      return t.body === e;
    case "PrivateName":
      return !1;
    case "ClassMethod":
    case "ClassPrivateMethod":
    case "ObjectMethod":
      return t.key === e ? !!t.computed : !1;
    case "ObjectProperty":
      return t.key === e ? !!t.computed : !r || r.type !== "ObjectPattern";
    case "ClassProperty":
    case "ClassAccessorProperty":
      return t.key === e ? !!t.computed : !0;
    case "ClassPrivateProperty":
      return t.key !== e;
    case "ClassDeclaration":
    case "ClassExpression":
      return t.superClass === e;
    case "AssignmentExpression":
      return t.right === e;
    case "AssignmentPattern":
      return t.right === e;
    case "LabeledStatement":
      return !1;
    case "CatchClause":
      return !1;
    case "RestElement":
      return !1;
    case "BreakStatement":
    case "ContinueStatement":
      return !1;
    case "FunctionDeclaration":
    case "FunctionExpression":
      return !1;
    case "ExportNamespaceSpecifier":
    case "ExportDefaultSpecifier":
      return !1;
    case "ExportSpecifier":
      return r != null && r.source ? !1 : t.local === e;
    case "ImportDefaultSpecifier":
    case "ImportNamespaceSpecifier":
    case "ImportSpecifier":
      return !1;
    case "ImportAttribute":
      return !1;
    case "JSXAttribute":
      return !1;
    case "ObjectPattern":
    case "ArrayPattern":
      return !1;
    case "MetaProperty":
      return !1;
    case "ObjectTypeProperty":
      return t.key !== e;
    case "TSEnumMember":
      return t.id !== e;
    case "TSPropertySignature":
      return t.key === e ? !!t.computed : !0;
  }
  return !0;
}
var x6 = {};
Object.defineProperty(x6, "__esModule", {
  value: !0
});
x6.default = i9e;
var ed = Ne;
function i9e(e, t) {
  return (0, ed.isBlockStatement)(e) && ((0, ed.isFunction)(t) || (0, ed.isCatchClause)(t)) ? !1 : (0, ed.isPattern)(e) && ((0, ed.isFunction)(t) || (0, ed.isCatchClause)(t)) ? !0 : (0, ed.isScopable)(e);
}
var E6 = {};
Object.defineProperty(E6, "__esModule", {
  value: !0
});
E6.default = n9e;
var iH = Ne;
function n9e(e) {
  return (0, iH.isImportDefaultSpecifier)(e) || (0, iH.isIdentifier)(e.imported || e.exported, {
    name: "default"
  });
}
var P6 = {};
Object.defineProperty(P6, "__esModule", {
  value: !0
});
P6.default = o9e;
var s9e = rm;
const a9e = /* @__PURE__ */ new Set(["abstract", "boolean", "byte", "char", "double", "enum", "final", "float", "goto", "implements", "int", "interface", "long", "native", "package", "private", "protected", "public", "short", "static", "synchronized", "throws", "transient", "volatile"]);
function o9e(e) {
  return (0, s9e.default)(e) && !a9e.has(e);
}
var w6 = {};
Object.defineProperty(w6, "__esModule", {
  value: !0
});
w6.default = c9e;
var l9e = Ne, u9e = Tr;
function c9e(e) {
  return (0, l9e.isVariableDeclaration)(e, {
    kind: "var"
  }) && !e[u9e.BLOCK_SCOPED_SYMBOL];
}
var dx = {}, mx = {}, nH;
function p9e() {
  if (nH)
    return mx;
  nH = 1, Object.defineProperty(mx, "__esModule", {
    value: !0
  }), mx.default = n;
  var e = Tg, t = Ne, r = Va(), i = Lf;
  function n(s, a, o) {
    const l = [];
    let u = !0;
    for (const c of s)
      if ((0, t.isEmptyStatement)(c) || (u = !1), (0, t.isExpression)(c))
        l.push(c);
      else if ((0, t.isExpressionStatement)(c))
        l.push(c.expression);
      else if ((0, t.isVariableDeclaration)(c)) {
        if (c.kind !== "var")
          return;
        for (const f of c.declarations) {
          const h = (0, e.default)(f);
          for (const m of Object.keys(h))
            o.push({
              kind: c.kind,
              id: (0, i.default)(h[m])
            });
          f.init && l.push((0, r.assignmentExpression)("=", f.id, f.init));
        }
        u = !0;
      } else if ((0, t.isIfStatement)(c)) {
        const f = c.consequent ? n([c.consequent], a, o) : a.buildUndefinedNode(), h = c.alternate ? n([c.alternate], a, o) : a.buildUndefinedNode();
        if (!f || !h)
          return;
        l.push((0, r.conditionalExpression)(c.test, f, h));
      } else if ((0, t.isBlockStatement)(c)) {
        const f = n(c.body, a, o);
        if (!f)
          return;
        l.push(f);
      } else if ((0, t.isEmptyStatement)(c))
        s.indexOf(c) === 0 && (u = !0);
      else
        return;
    return u && l.push(a.buildUndefinedNode()), l.length === 1 ? l[0] : (0, r.sequenceExpression)(l);
  }
  return mx;
}
var sH;
function f9e() {
  if (sH)
    return dx;
  sH = 1, Object.defineProperty(dx, "__esModule", {
    value: !0
  }), dx.default = t;
  var e = p9e();
  function t(r, i) {
    if (!(r != null && r.length))
      return;
    const n = [], s = (0, e.default)(r, i, n);
    if (s) {
      for (const a of n)
        i.push(a);
      return s;
    }
  }
  return dx;
}
var aH;
function Nr() {
  return aH || (aH = 1, function(e) {
    Object.defineProperty(e, "__esModule", {
      value: !0
    });
    var t = {
      react: !0,
      assertNode: !0,
      createTypeAnnotationBasedOnTypeof: !0,
      createUnionTypeAnnotation: !0,
      createFlowUnionType: !0,
      createTSUnionType: !0,
      cloneNode: !0,
      clone: !0,
      cloneDeep: !0,
      cloneDeepWithoutLoc: !0,
      cloneWithoutLoc: !0,
      addComment: !0,
      addComments: !0,
      inheritInnerComments: !0,
      inheritLeadingComments: !0,
      inheritsComments: !0,
      inheritTrailingComments: !0,
      removeComments: !0,
      ensureBlock: !0,
      toBindingIdentifierName: !0,
      toBlock: !0,
      toComputedKey: !0,
      toExpression: !0,
      toIdentifier: !0,
      toKeyAlias: !0,
      toStatement: !0,
      valueToNode: !0,
      appendToMemberExpression: !0,
      inherits: !0,
      prependToMemberExpression: !0,
      removeProperties: !0,
      removePropertiesDeep: !0,
      removeTypeDuplicates: !0,
      getBindingIdentifiers: !0,
      getOuterBindingIdentifiers: !0,
      traverse: !0,
      traverseFast: !0,
      shallowEqual: !0,
      is: !0,
      isBinding: !0,
      isBlockScoped: !0,
      isImmutable: !0,
      isLet: !0,
      isNode: !0,
      isNodesEquivalent: !0,
      isPlaceholderType: !0,
      isReferenced: !0,
      isScope: !0,
      isSpecifierDefault: !0,
      isType: !0,
      isValidES3Identifier: !0,
      isValidIdentifier: !0,
      isVar: !0,
      matchesPattern: !0,
      validate: !0,
      buildMatchMemberExpression: !0,
      __internal__deprecationWarning: !0
    };
    Object.defineProperty(e, "__internal__deprecationWarning", {
      enumerable: !0,
      get: function() {
        return ge.default;
      }
    }), Object.defineProperty(e, "addComment", {
      enumerable: !0,
      get: function() {
        return S.default;
      }
    }), Object.defineProperty(e, "addComments", {
      enumerable: !0,
      get: function() {
        return P.default;
      }
    }), Object.defineProperty(e, "appendToMemberExpression", {
      enumerable: !0,
      get: function() {
        return z.default;
      }
    }), Object.defineProperty(e, "assertNode", {
      enumerable: !0,
      get: function() {
        return s.default;
      }
    }), Object.defineProperty(e, "buildMatchMemberExpression", {
      enumerable: !0,
      get: function() {
        return bt.default;
      }
    }), Object.defineProperty(e, "clone", {
      enumerable: !0,
      get: function() {
        return g.default;
      }
    }), Object.defineProperty(e, "cloneDeep", {
      enumerable: !0,
      get: function() {
        return y.default;
      }
    }), Object.defineProperty(e, "cloneDeepWithoutLoc", {
      enumerable: !0,
      get: function() {
        return v.default;
      }
    }), Object.defineProperty(e, "cloneNode", {
      enumerable: !0,
      get: function() {
        return m.default;
      }
    }), Object.defineProperty(e, "cloneWithoutLoc", {
      enumerable: !0,
      get: function() {
        return T.default;
      }
    }), Object.defineProperty(e, "createFlowUnionType", {
      enumerable: !0,
      get: function() {
        return l.default;
      }
    }), Object.defineProperty(e, "createTSUnionType", {
      enumerable: !0,
      get: function() {
        return u.default;
      }
    }), Object.defineProperty(e, "createTypeAnnotationBasedOnTypeof", {
      enumerable: !0,
      get: function() {
        return o.default;
      }
    }), Object.defineProperty(e, "createUnionTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return l.default;
      }
    }), Object.defineProperty(e, "ensureBlock", {
      enumerable: !0,
      get: function() {
        return O.default;
      }
    }), Object.defineProperty(e, "getBindingIdentifiers", {
      enumerable: !0,
      get: function() {
        return ae.default;
      }
    }), Object.defineProperty(e, "getOuterBindingIdentifiers", {
      enumerable: !0,
      get: function() {
        return be.default;
      }
    }), Object.defineProperty(e, "inheritInnerComments", {
      enumerable: !0,
      get: function() {
        return x.default;
      }
    }), Object.defineProperty(e, "inheritLeadingComments", {
      enumerable: !0,
      get: function() {
        return C.default;
      }
    }), Object.defineProperty(e, "inheritTrailingComments", {
      enumerable: !0,
      get: function() {
        return w.default;
      }
    }), Object.defineProperty(e, "inherits", {
      enumerable: !0,
      get: function() {
        return W.default;
      }
    }), Object.defineProperty(e, "inheritsComments", {
      enumerable: !0,
      get: function() {
        return D.default;
      }
    }), Object.defineProperty(e, "is", {
      enumerable: !0,
      get: function() {
        return ue.default;
      }
    }), Object.defineProperty(e, "isBinding", {
      enumerable: !0,
      get: function() {
        return me.default;
      }
    }), Object.defineProperty(e, "isBlockScoped", {
      enumerable: !0,
      get: function() {
        return xe.default;
      }
    }), Object.defineProperty(e, "isImmutable", {
      enumerable: !0,
      get: function() {
        return Pe.default;
      }
    }), Object.defineProperty(e, "isLet", {
      enumerable: !0,
      get: function() {
        return ve.default;
      }
    }), Object.defineProperty(e, "isNode", {
      enumerable: !0,
      get: function() {
        return Xe.default;
      }
    }), Object.defineProperty(e, "isNodesEquivalent", {
      enumerable: !0,
      get: function() {
        return st.default;
      }
    }), Object.defineProperty(e, "isPlaceholderType", {
      enumerable: !0,
      get: function() {
        return Se.default;
      }
    }), Object.defineProperty(e, "isReferenced", {
      enumerable: !0,
      get: function() {
        return oe.default;
      }
    }), Object.defineProperty(e, "isScope", {
      enumerable: !0,
      get: function() {
        return te.default;
      }
    }), Object.defineProperty(e, "isSpecifierDefault", {
      enumerable: !0,
      get: function() {
        return se.default;
      }
    }), Object.defineProperty(e, "isType", {
      enumerable: !0,
      get: function() {
        return re.default;
      }
    }), Object.defineProperty(e, "isValidES3Identifier", {
      enumerable: !0,
      get: function() {
        return Te.default;
      }
    }), Object.defineProperty(e, "isValidIdentifier", {
      enumerable: !0,
      get: function() {
        return ze.default;
      }
    }), Object.defineProperty(e, "isVar", {
      enumerable: !0,
      get: function() {
        return Ze.default;
      }
    }), Object.defineProperty(e, "matchesPattern", {
      enumerable: !0,
      get: function() {
        return pt.default;
      }
    }), Object.defineProperty(e, "prependToMemberExpression", {
      enumerable: !0,
      get: function() {
        return Y.default;
      }
    }), e.react = void 0, Object.defineProperty(e, "removeComments", {
      enumerable: !0,
      get: function() {
        return A.default;
      }
    }), Object.defineProperty(e, "removeProperties", {
      enumerable: !0,
      get: function() {
        return G.default;
      }
    }), Object.defineProperty(e, "removePropertiesDeep", {
      enumerable: !0,
      get: function() {
        return le.default;
      }
    }), Object.defineProperty(e, "removeTypeDuplicates", {
      enumerable: !0,
      get: function() {
        return ne.default;
      }
    }), Object.defineProperty(e, "shallowEqual", {
      enumerable: !0,
      get: function() {
        return Z.default;
      }
    }), Object.defineProperty(e, "toBindingIdentifierName", {
      enumerable: !0,
      get: function() {
        return F.default;
      }
    }), Object.defineProperty(e, "toBlock", {
      enumerable: !0,
      get: function() {
        return q.default;
      }
    }), Object.defineProperty(e, "toComputedKey", {
      enumerable: !0,
      get: function() {
        return j.default;
      }
    }), Object.defineProperty(e, "toExpression", {
      enumerable: !0,
      get: function() {
        return N.default;
      }
    }), Object.defineProperty(e, "toIdentifier", {
      enumerable: !0,
      get: function() {
        return M.default;
      }
    }), Object.defineProperty(e, "toKeyAlias", {
      enumerable: !0,
      get: function() {
        return R.default;
      }
    }), Object.defineProperty(e, "toStatement", {
      enumerable: !0,
      get: function() {
        return $.default;
      }
    }), Object.defineProperty(e, "traverse", {
      enumerable: !0,
      get: function() {
        return ye.default;
      }
    }), Object.defineProperty(e, "traverseFast", {
      enumerable: !0,
      get: function() {
        return fe.default;
      }
    }), Object.defineProperty(e, "validate", {
      enumerable: !0,
      get: function() {
        return ut.default;
      }
    }), Object.defineProperty(e, "valueToNode", {
      enumerable: !0,
      get: function() {
        return V.default;
      }
    });
    var r = wC, i = Q$, n = rBe(), s = n6, a = Be;
    Object.keys(a).forEach(function(pe) {
      pe === "default" || pe === "__esModule" || Object.prototype.hasOwnProperty.call(t, pe) || pe in e && e[pe] === a[pe] || Object.defineProperty(e, pe, {
        enumerable: !0,
        get: function() {
          return a[pe];
        }
      });
    });
    var o = q$e(), l = V$e(), u = W$e(), c = Va();
    Object.keys(c).forEach(function(pe) {
      pe === "default" || pe === "__esModule" || Object.prototype.hasOwnProperty.call(t, pe) || pe in e && e[pe] === c[pe] || Object.defineProperty(e, pe, {
        enumerable: !0,
        get: function() {
          return c[pe];
        }
      });
    });
    var f = H$e();
    Object.keys(f).forEach(function(pe) {
      pe === "default" || pe === "__esModule" || Object.prototype.hasOwnProperty.call(t, pe) || pe in e && e[pe] === f[pe] || Object.defineProperty(e, pe, {
        enumerable: !0,
        get: function() {
          return f[pe];
        }
      });
    });
    var h = K$e();
    Object.keys(h).forEach(function(pe) {
      pe === "default" || pe === "__esModule" || Object.prototype.hasOwnProperty.call(t, pe) || pe in e && e[pe] === h[pe] || Object.defineProperty(e, pe, {
        enumerable: !0,
        get: function() {
          return h[pe];
        }
      });
    });
    var m = Lf, g = a6, y = o6, v = l6, T = u6, S = c6, P = NC, x = DC, C = LC, D = MC, w = RC, A = p6, I = Pt;
    Object.keys(I).forEach(function(pe) {
      pe === "default" || pe === "__esModule" || Object.prototype.hasOwnProperty.call(t, pe) || pe in e && e[pe] === I[pe] || Object.defineProperty(e, pe, {
        enumerable: !0,
        get: function() {
          return I[pe];
        }
      });
    });
    var L = Tr;
    Object.keys(L).forEach(function(pe) {
      pe === "default" || pe === "__esModule" || Object.prototype.hasOwnProperty.call(t, pe) || pe in e && e[pe] === L[pe] || Object.defineProperty(e, pe, {
        enumerable: !0,
        get: function() {
          return L[pe];
        }
      });
    });
    var O = v6e(), F = f6, q = Zpe(), j = w6e(), N = FC, M = BC, R = h6, $ = R6e(), V = B6e(), K = Uc();
    Object.keys(K).forEach(function(pe) {
      pe === "default" || pe === "__esModule" || Object.prototype.hasOwnProperty.call(t, pe) || pe in e && e[pe] === K[pe] || Object.defineProperty(e, pe, {
        enumerable: !0,
        get: function() {
          return K[pe];
        }
      });
    });
    var z = F6e(), W = d6, Y = U6e(), G = UC, le = jC, ne = OC, ae = Tg, be = qC, ye = y6;
    Object.keys(ye).forEach(function(pe) {
      pe === "default" || pe === "__esModule" || Object.prototype.hasOwnProperty.call(t, pe) || pe in e && e[pe] === ye[pe] || Object.defineProperty(e, pe, {
        enumerable: !0,
        get: function() {
          return ye[pe];
        }
      });
    });
    var fe = $C, Z = kT, ue = NT(), me = g6, xe = b6, Pe = v6, ve = VC, Xe = kC, st = T6, Se = Mpe(), oe = S6, te = x6, se = E6, re = e6(), Te = P6, ze = rm, Ze = w6, pt = CC, ut = i6(), bt = AC, vt = Ne;
    Object.keys(vt).forEach(function(pe) {
      pe === "default" || pe === "__esModule" || Object.prototype.hasOwnProperty.call(t, pe) || pe in e && e[pe] === vt[pe] || Object.defineProperty(e, pe, {
        enumerable: !0,
        get: function() {
          return vt[pe];
        }
      });
    });
    var ge = vg;
    e.react = {
      isReactComponent: r.default,
      isCompatTag: i.default,
      buildChildren: n.default
    }, e.toSequenceExpression = f9e().default;
  }(bM)), bM;
}
var rn = {}, Dl = {}, xM = {}, WC = {}, HC = {}, KC = {}, De = {}, BT = {};
Object.defineProperty(BT, "__esModule", {
  value: !0
});
BT.default = h9e;
function h9e(e, t) {
  const r = Object.keys(t);
  for (const i of r)
    if (e[i] !== t[i])
      return !1;
  return !0;
}
var Sg = {};
Object.defineProperty(Sg, "__esModule", {
  value: !0
});
Sg.default = d9e;
const oH = /* @__PURE__ */ new Set();
function d9e(e, t, r = "") {
  if (oH.has(e))
    return;
  oH.add(e);
  const {
    internal: i,
    trace: n
  } = m9e(1, 2);
  i || console.warn("".concat(r, "`").concat(e, "` has been deprecated, please migrate to `").concat(t, "`\n").concat(n));
}
function m9e(e, t) {
  const {
    stackTraceLimit: r,
    prepareStackTrace: i
  } = Error;
  let n;
  if (Error.stackTraceLimit = 1 + e + t, Error.prepareStackTrace = function(a, o) {
    n = o;
  }, new Error().stack, Error.stackTraceLimit = r, Error.prepareStackTrace = i, !n)
    return {
      internal: !1,
      trace: ""
    };
  const s = n.slice(1 + e, 1 + e + t);
  return {
    internal: /[\\/]@babel[\\/]/.test(s[1].getFileName()),
    trace: s.map((a) => "    at ".concat(a)).join("\n")
  };
}
Object.defineProperty(De, "__esModule", {
  value: !0
});
De.isAccessor = IVe;
De.isAnyTypeAnnotation = X5e;
De.isArgumentPlaceholder = wUe;
De.isArrayExpression = y9e;
De.isArrayPattern = d5e;
De.isArrayTypeAnnotation = J5e;
De.isArrowFunctionExpression = m5e;
De.isAssignmentExpression = g9e;
De.isAssignmentPattern = h5e;
De.isAwaitExpression = F5e;
De.isBigIntLiteral = $5e;
De.isBinary = Qqe;
De.isBinaryExpression = b9e;
De.isBindExpression = AUe;
De.isBlock = tVe;
De.isBlockParent = eVe;
De.isBlockStatement = x9e;
De.isBooleanLiteral = V9e;
De.isBooleanLiteralTypeAnnotation = Z5e;
De.isBooleanTypeAnnotation = Q5e;
De.isBreakStatement = E9e;
De.isCallExpression = P9e;
De.isCatchClause = w9e;
De.isClass = AVe;
De.isClassAccessorProperty = H5e;
De.isClassBody = y5e;
De.isClassDeclaration = b5e;
De.isClassExpression = g5e;
De.isClassImplements = t7e;
De.isClassMethod = k5e;
De.isClassPrivateMethod = z5e;
De.isClassPrivateProperty = K5e;
De.isClassProperty = W5e;
De.isCompletionStatement = nVe;
De.isConditional = sVe;
De.isConditionalExpression = A9e;
De.isContinueStatement = C9e;
De.isDebuggerStatement = _9e;
De.isDecimalLiteral = DUe;
De.isDeclaration = dVe;
De.isDeclareClass = r7e;
De.isDeclareExportAllDeclaration = p7e;
De.isDeclareExportDeclaration = c7e;
De.isDeclareFunction = i7e;
De.isDeclareInterface = n7e;
De.isDeclareModule = s7e;
De.isDeclareModuleExports = a7e;
De.isDeclareOpaqueType = l7e;
De.isDeclareTypeAlias = o7e;
De.isDeclareVariable = u7e;
De.isDeclaredPredicate = f7e;
De.isDecorator = _Ue;
De.isDirective = T9e;
De.isDirectiveLiteral = S9e;
De.isDoExpression = IUe;
De.isDoWhileStatement = I9e;
De.isEmptyStatement = k9e;
De.isEmptyTypeAnnotation = E7e;
De.isEnumBody = RVe;
De.isEnumBooleanBody = J7e;
De.isEnumBooleanMember = tUe;
De.isEnumDeclaration = X7e;
De.isEnumDefaultedMember = nUe;
De.isEnumMember = BVe;
De.isEnumNumberBody = Q7e;
De.isEnumNumberMember = rUe;
De.isEnumStringBody = Z7e;
De.isEnumStringMember = iUe;
De.isEnumSymbolBody = eUe;
De.isExistsTypeAnnotation = h7e;
De.isExportAllDeclaration = v5e;
De.isExportDeclaration = CVe;
De.isExportDefaultDeclaration = T5e;
De.isExportDefaultSpecifier = kUe;
De.isExportNamedDeclaration = S5e;
De.isExportNamespaceSpecifier = U5e;
De.isExportSpecifier = x5e;
De.isExpression = Jqe;
De.isExpressionStatement = O9e;
De.isExpressionWrapper = lVe;
De.isFile = N9e;
De.isFlow = OVe;
De.isFlowBaseAnnotation = DVe;
De.isFlowDeclaration = LVe;
De.isFlowPredicate = MVe;
De.isFlowType = NVe;
De.isFor = uVe;
De.isForInStatement = D9e;
De.isForOfStatement = E5e;
De.isForStatement = L9e;
De.isForXStatement = cVe;
De.isFunction = pVe;
De.isFunctionDeclaration = M9e;
De.isFunctionExpression = R9e;
De.isFunctionParent = fVe;
De.isFunctionTypeAnnotation = d7e;
De.isFunctionTypeParam = m7e;
De.isGenericTypeAnnotation = y7e;
De.isIdentifier = B9e;
De.isIfStatement = F9e;
De.isImmutable = vVe;
De.isImport = j5e;
De.isImportAttribute = CUe;
De.isImportDeclaration = P5e;
De.isImportDefaultSpecifier = w5e;
De.isImportExpression = _5e;
De.isImportNamespaceSpecifier = A5e;
De.isImportOrExportDeclaration = tfe;
De.isImportSpecifier = C5e;
De.isIndexedAccessType = sUe;
De.isInferredPredicate = g7e;
De.isInterfaceDeclaration = v7e;
De.isInterfaceExtends = b7e;
De.isInterfaceTypeAnnotation = T7e;
De.isInterpreterDirective = v9e;
De.isIntersectionTypeAnnotation = S7e;
De.isJSX = FVe;
De.isJSXAttribute = oUe;
De.isJSXClosingElement = lUe;
De.isJSXClosingFragment = SUe;
De.isJSXElement = uUe;
De.isJSXEmptyExpression = cUe;
De.isJSXExpressionContainer = pUe;
De.isJSXFragment = vUe;
De.isJSXIdentifier = hUe;
De.isJSXMemberExpression = dUe;
De.isJSXNamespacedName = mUe;
De.isJSXOpeningElement = yUe;
De.isJSXOpeningFragment = TUe;
De.isJSXSpreadAttribute = gUe;
De.isJSXSpreadChild = fUe;
De.isJSXText = bUe;
De.isLVal = yVe;
De.isLabeledStatement = j9e;
De.isLiteral = bVe;
De.isLogicalExpression = H9e;
De.isLoop = aVe;
De.isMemberExpression = K9e;
De.isMetaProperty = I5e;
De.isMethod = SVe;
De.isMiscellaneous = jVe;
De.isMixedTypeAnnotation = x7e;
De.isModuleDeclaration = GVe;
De.isModuleExpression = LUe;
De.isModuleSpecifier = _Ve;
De.isNewExpression = z9e;
De.isNoop = xUe;
De.isNullLiteral = q9e;
De.isNullLiteralTypeAnnotation = e7e;
De.isNullableTypeAnnotation = P7e;
De.isNumberLiteral = WVe;
De.isNumberLiteralTypeAnnotation = w7e;
De.isNumberTypeAnnotation = A7e;
De.isNumericLiteral = U9e;
De.isObjectExpression = Y9e;
De.isObjectMember = xVe;
De.isObjectMethod = X9e;
De.isObjectPattern = O5e;
De.isObjectProperty = J9e;
De.isObjectTypeAnnotation = C7e;
De.isObjectTypeCallProperty = I7e;
De.isObjectTypeIndexer = k7e;
De.isObjectTypeInternalSlot = _7e;
De.isObjectTypeProperty = O7e;
De.isObjectTypeSpreadProperty = N7e;
De.isOpaqueType = D7e;
De.isOptionalCallExpression = V5e;
De.isOptionalIndexedAccessType = aUe;
De.isOptionalMemberExpression = q5e;
De.isParenthesizedExpression = t5e;
De.isPattern = wVe;
De.isPatternLike = mVe;
De.isPipelineBareFunction = BUe;
De.isPipelinePrimaryTopicReference = FUe;
De.isPipelineTopicExpression = RUe;
De.isPlaceholder = EUe;
De.isPrivate = kVe;
De.isPrivateName = G5e;
De.isProgram = G9e;
De.isProperty = EVe;
De.isPureish = hVe;
De.isQualifiedTypeIdentifier = L7e;
De.isRecordExpression = OUe;
De.isRegExpLiteral = W9e;
De.isRegexLiteral = HVe;
De.isRestElement = Q9e;
De.isRestProperty = KVe;
De.isReturnStatement = Z9e;
De.isScopable = Zqe;
De.isSequenceExpression = e5e;
De.isSpreadElement = N5e;
De.isSpreadProperty = zVe;
De.isStandardized = Xqe;
De.isStatement = rVe;
De.isStaticBlock = Y5e;
De.isStringLiteral = $9e;
De.isStringLiteralTypeAnnotation = M7e;
De.isStringTypeAnnotation = R7e;
De.isSuper = D5e;
De.isSwitchCase = r5e;
De.isSwitchStatement = i5e;
De.isSymbolTypeAnnotation = B7e;
De.isTSAnyKeyword = GUe;
De.isTSArrayType = dqe;
De.isTSAsExpression = Dqe;
De.isTSBaseType = VVe;
De.isTSBigIntKeyword = XUe;
De.isTSBooleanKeyword = YUe;
De.isTSCallSignatureDeclaration = VUe;
De.isTSConditionalType = Sqe;
De.isTSConstructSignatureDeclaration = WUe;
De.isTSConstructorType = uqe;
De.isTSDeclareFunction = $Ue;
De.isTSDeclareMethod = UUe;
De.isTSEntityName = gVe;
De.isTSEnumDeclaration = Rqe;
De.isTSEnumMember = Bqe;
De.isTSExportAssignment = Wqe;
De.isTSExpressionWithTypeArguments = _qe;
De.isTSExternalModuleReference = qqe;
De.isTSFunctionType = lqe;
De.isTSImportEqualsDeclaration = Uqe;
De.isTSImportType = $qe;
De.isTSIndexSignature = zUe;
De.isTSIndexedAccessType = wqe;
De.isTSInferType = xqe;
De.isTSInstantiationExpression = Nqe;
De.isTSInterfaceBody = kqe;
De.isTSInterfaceDeclaration = Iqe;
De.isTSIntersectionType = Tqe;
De.isTSIntrinsicKeyword = JUe;
De.isTSLiteralType = Cqe;
De.isTSMappedType = Aqe;
De.isTSMethodSignature = KUe;
De.isTSModuleBlock = jqe;
De.isTSModuleDeclaration = Fqe;
De.isTSNamedTupleMember = bqe;
De.isTSNamespaceExportDeclaration = Hqe;
De.isTSNeverKeyword = QUe;
De.isTSNonNullExpression = Vqe;
De.isTSNullKeyword = ZUe;
De.isTSNumberKeyword = eqe;
De.isTSObjectKeyword = tqe;
De.isTSOptionalType = yqe;
De.isTSParameterProperty = jUe;
De.isTSParenthesizedType = Eqe;
De.isTSPropertySignature = HUe;
De.isTSQualifiedName = qUe;
De.isTSRestType = gqe;
De.isTSSatisfiesExpression = Lqe;
De.isTSStringKeyword = rqe;
De.isTSSymbolKeyword = iqe;
De.isTSThisType = oqe;
De.isTSTupleType = mqe;
De.isTSType = qVe;
De.isTSTypeAliasDeclaration = Oqe;
De.isTSTypeAnnotation = Kqe;
De.isTSTypeAssertion = Mqe;
De.isTSTypeElement = UVe;
De.isTSTypeLiteral = hqe;
De.isTSTypeOperator = Pqe;
De.isTSTypeParameter = Yqe;
De.isTSTypeParameterDeclaration = Gqe;
De.isTSTypeParameterInstantiation = zqe;
De.isTSTypePredicate = pqe;
De.isTSTypeQuery = fqe;
De.isTSTypeReference = cqe;
De.isTSUndefinedKeyword = nqe;
De.isTSUnionType = vqe;
De.isTSUnknownKeyword = sqe;
De.isTSVoidKeyword = aqe;
De.isTaggedTemplateExpression = L5e;
De.isTemplateElement = M5e;
De.isTemplateLiteral = R5e;
De.isTerminatorless = iVe;
De.isThisExpression = n5e;
De.isThisTypeAnnotation = F7e;
De.isThrowStatement = s5e;
De.isTopicReference = MUe;
De.isTryStatement = a5e;
De.isTupleExpression = NUe;
De.isTupleTypeAnnotation = j7e;
De.isTypeAlias = U7e;
De.isTypeAnnotation = q7e;
De.isTypeCastExpression = V7e;
De.isTypeParameter = W7e;
De.isTypeParameterDeclaration = H7e;
De.isTypeParameterInstantiation = K7e;
De.isTypeScript = $Ve;
De.isTypeofTypeAnnotation = $7e;
De.isUnaryExpression = o5e;
De.isUnaryLike = PVe;
De.isUnionTypeAnnotation = z7e;
De.isUpdateExpression = l5e;
De.isUserWhitespacable = TVe;
De.isV8IntrinsicIdentifier = PUe;
De.isVariableDeclaration = u5e;
De.isVariableDeclarator = c5e;
De.isVariance = G7e;
De.isVoidTypeAnnotation = Y7e;
De.isWhile = oVe;
De.isWhileStatement = p5e;
De.isWithStatement = f5e;
De.isYieldExpression = B5e;
var He = BT, FT = Sg;
function y9e(e, t) {
  return !e || e.type !== "ArrayExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function g9e(e, t) {
  return !e || e.type !== "AssignmentExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function b9e(e, t) {
  return !e || e.type !== "BinaryExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function v9e(e, t) {
  return !e || e.type !== "InterpreterDirective" ? !1 : t == null || (0, He.default)(e, t);
}
function T9e(e, t) {
  return !e || e.type !== "Directive" ? !1 : t == null || (0, He.default)(e, t);
}
function S9e(e, t) {
  return !e || e.type !== "DirectiveLiteral" ? !1 : t == null || (0, He.default)(e, t);
}
function x9e(e, t) {
  return !e || e.type !== "BlockStatement" ? !1 : t == null || (0, He.default)(e, t);
}
function E9e(e, t) {
  return !e || e.type !== "BreakStatement" ? !1 : t == null || (0, He.default)(e, t);
}
function P9e(e, t) {
  return !e || e.type !== "CallExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function w9e(e, t) {
  return !e || e.type !== "CatchClause" ? !1 : t == null || (0, He.default)(e, t);
}
function A9e(e, t) {
  return !e || e.type !== "ConditionalExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function C9e(e, t) {
  return !e || e.type !== "ContinueStatement" ? !1 : t == null || (0, He.default)(e, t);
}
function _9e(e, t) {
  return !e || e.type !== "DebuggerStatement" ? !1 : t == null || (0, He.default)(e, t);
}
function I9e(e, t) {
  return !e || e.type !== "DoWhileStatement" ? !1 : t == null || (0, He.default)(e, t);
}
function k9e(e, t) {
  return !e || e.type !== "EmptyStatement" ? !1 : t == null || (0, He.default)(e, t);
}
function O9e(e, t) {
  return !e || e.type !== "ExpressionStatement" ? !1 : t == null || (0, He.default)(e, t);
}
function N9e(e, t) {
  return !e || e.type !== "File" ? !1 : t == null || (0, He.default)(e, t);
}
function D9e(e, t) {
  return !e || e.type !== "ForInStatement" ? !1 : t == null || (0, He.default)(e, t);
}
function L9e(e, t) {
  return !e || e.type !== "ForStatement" ? !1 : t == null || (0, He.default)(e, t);
}
function M9e(e, t) {
  return !e || e.type !== "FunctionDeclaration" ? !1 : t == null || (0, He.default)(e, t);
}
function R9e(e, t) {
  return !e || e.type !== "FunctionExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function B9e(e, t) {
  return !e || e.type !== "Identifier" ? !1 : t == null || (0, He.default)(e, t);
}
function F9e(e, t) {
  return !e || e.type !== "IfStatement" ? !1 : t == null || (0, He.default)(e, t);
}
function j9e(e, t) {
  return !e || e.type !== "LabeledStatement" ? !1 : t == null || (0, He.default)(e, t);
}
function $9e(e, t) {
  return !e || e.type !== "StringLiteral" ? !1 : t == null || (0, He.default)(e, t);
}
function U9e(e, t) {
  return !e || e.type !== "NumericLiteral" ? !1 : t == null || (0, He.default)(e, t);
}
function q9e(e, t) {
  return !e || e.type !== "NullLiteral" ? !1 : t == null || (0, He.default)(e, t);
}
function V9e(e, t) {
  return !e || e.type !== "BooleanLiteral" ? !1 : t == null || (0, He.default)(e, t);
}
function W9e(e, t) {
  return !e || e.type !== "RegExpLiteral" ? !1 : t == null || (0, He.default)(e, t);
}
function H9e(e, t) {
  return !e || e.type !== "LogicalExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function K9e(e, t) {
  return !e || e.type !== "MemberExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function z9e(e, t) {
  return !e || e.type !== "NewExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function G9e(e, t) {
  return !e || e.type !== "Program" ? !1 : t == null || (0, He.default)(e, t);
}
function Y9e(e, t) {
  return !e || e.type !== "ObjectExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function X9e(e, t) {
  return !e || e.type !== "ObjectMethod" ? !1 : t == null || (0, He.default)(e, t);
}
function J9e(e, t) {
  return !e || e.type !== "ObjectProperty" ? !1 : t == null || (0, He.default)(e, t);
}
function Q9e(e, t) {
  return !e || e.type !== "RestElement" ? !1 : t == null || (0, He.default)(e, t);
}
function Z9e(e, t) {
  return !e || e.type !== "ReturnStatement" ? !1 : t == null || (0, He.default)(e, t);
}
function e5e(e, t) {
  return !e || e.type !== "SequenceExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function t5e(e, t) {
  return !e || e.type !== "ParenthesizedExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function r5e(e, t) {
  return !e || e.type !== "SwitchCase" ? !1 : t == null || (0, He.default)(e, t);
}
function i5e(e, t) {
  return !e || e.type !== "SwitchStatement" ? !1 : t == null || (0, He.default)(e, t);
}
function n5e(e, t) {
  return !e || e.type !== "ThisExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function s5e(e, t) {
  return !e || e.type !== "ThrowStatement" ? !1 : t == null || (0, He.default)(e, t);
}
function a5e(e, t) {
  return !e || e.type !== "TryStatement" ? !1 : t == null || (0, He.default)(e, t);
}
function o5e(e, t) {
  return !e || e.type !== "UnaryExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function l5e(e, t) {
  return !e || e.type !== "UpdateExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function u5e(e, t) {
  return !e || e.type !== "VariableDeclaration" ? !1 : t == null || (0, He.default)(e, t);
}
function c5e(e, t) {
  return !e || e.type !== "VariableDeclarator" ? !1 : t == null || (0, He.default)(e, t);
}
function p5e(e, t) {
  return !e || e.type !== "WhileStatement" ? !1 : t == null || (0, He.default)(e, t);
}
function f5e(e, t) {
  return !e || e.type !== "WithStatement" ? !1 : t == null || (0, He.default)(e, t);
}
function h5e(e, t) {
  return !e || e.type !== "AssignmentPattern" ? !1 : t == null || (0, He.default)(e, t);
}
function d5e(e, t) {
  return !e || e.type !== "ArrayPattern" ? !1 : t == null || (0, He.default)(e, t);
}
function m5e(e, t) {
  return !e || e.type !== "ArrowFunctionExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function y5e(e, t) {
  return !e || e.type !== "ClassBody" ? !1 : t == null || (0, He.default)(e, t);
}
function g5e(e, t) {
  return !e || e.type !== "ClassExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function b5e(e, t) {
  return !e || e.type !== "ClassDeclaration" ? !1 : t == null || (0, He.default)(e, t);
}
function v5e(e, t) {
  return !e || e.type !== "ExportAllDeclaration" ? !1 : t == null || (0, He.default)(e, t);
}
function T5e(e, t) {
  return !e || e.type !== "ExportDefaultDeclaration" ? !1 : t == null || (0, He.default)(e, t);
}
function S5e(e, t) {
  return !e || e.type !== "ExportNamedDeclaration" ? !1 : t == null || (0, He.default)(e, t);
}
function x5e(e, t) {
  return !e || e.type !== "ExportSpecifier" ? !1 : t == null || (0, He.default)(e, t);
}
function E5e(e, t) {
  return !e || e.type !== "ForOfStatement" ? !1 : t == null || (0, He.default)(e, t);
}
function P5e(e, t) {
  return !e || e.type !== "ImportDeclaration" ? !1 : t == null || (0, He.default)(e, t);
}
function w5e(e, t) {
  return !e || e.type !== "ImportDefaultSpecifier" ? !1 : t == null || (0, He.default)(e, t);
}
function A5e(e, t) {
  return !e || e.type !== "ImportNamespaceSpecifier" ? !1 : t == null || (0, He.default)(e, t);
}
function C5e(e, t) {
  return !e || e.type !== "ImportSpecifier" ? !1 : t == null || (0, He.default)(e, t);
}
function _5e(e, t) {
  return !e || e.type !== "ImportExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function I5e(e, t) {
  return !e || e.type !== "MetaProperty" ? !1 : t == null || (0, He.default)(e, t);
}
function k5e(e, t) {
  return !e || e.type !== "ClassMethod" ? !1 : t == null || (0, He.default)(e, t);
}
function O5e(e, t) {
  return !e || e.type !== "ObjectPattern" ? !1 : t == null || (0, He.default)(e, t);
}
function N5e(e, t) {
  return !e || e.type !== "SpreadElement" ? !1 : t == null || (0, He.default)(e, t);
}
function D5e(e, t) {
  return !e || e.type !== "Super" ? !1 : t == null || (0, He.default)(e, t);
}
function L5e(e, t) {
  return !e || e.type !== "TaggedTemplateExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function M5e(e, t) {
  return !e || e.type !== "TemplateElement" ? !1 : t == null || (0, He.default)(e, t);
}
function R5e(e, t) {
  return !e || e.type !== "TemplateLiteral" ? !1 : t == null || (0, He.default)(e, t);
}
function B5e(e, t) {
  return !e || e.type !== "YieldExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function F5e(e, t) {
  return !e || e.type !== "AwaitExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function j5e(e, t) {
  return !e || e.type !== "Import" ? !1 : t == null || (0, He.default)(e, t);
}
function $5e(e, t) {
  return !e || e.type !== "BigIntLiteral" ? !1 : t == null || (0, He.default)(e, t);
}
function U5e(e, t) {
  return !e || e.type !== "ExportNamespaceSpecifier" ? !1 : t == null || (0, He.default)(e, t);
}
function q5e(e, t) {
  return !e || e.type !== "OptionalMemberExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function V5e(e, t) {
  return !e || e.type !== "OptionalCallExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function W5e(e, t) {
  return !e || e.type !== "ClassProperty" ? !1 : t == null || (0, He.default)(e, t);
}
function H5e(e, t) {
  return !e || e.type !== "ClassAccessorProperty" ? !1 : t == null || (0, He.default)(e, t);
}
function K5e(e, t) {
  return !e || e.type !== "ClassPrivateProperty" ? !1 : t == null || (0, He.default)(e, t);
}
function z5e(e, t) {
  return !e || e.type !== "ClassPrivateMethod" ? !1 : t == null || (0, He.default)(e, t);
}
function G5e(e, t) {
  return !e || e.type !== "PrivateName" ? !1 : t == null || (0, He.default)(e, t);
}
function Y5e(e, t) {
  return !e || e.type !== "StaticBlock" ? !1 : t == null || (0, He.default)(e, t);
}
function X5e(e, t) {
  return !e || e.type !== "AnyTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function J5e(e, t) {
  return !e || e.type !== "ArrayTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function Q5e(e, t) {
  return !e || e.type !== "BooleanTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function Z5e(e, t) {
  return !e || e.type !== "BooleanLiteralTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function e7e(e, t) {
  return !e || e.type !== "NullLiteralTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function t7e(e, t) {
  return !e || e.type !== "ClassImplements" ? !1 : t == null || (0, He.default)(e, t);
}
function r7e(e, t) {
  return !e || e.type !== "DeclareClass" ? !1 : t == null || (0, He.default)(e, t);
}
function i7e(e, t) {
  return !e || e.type !== "DeclareFunction" ? !1 : t == null || (0, He.default)(e, t);
}
function n7e(e, t) {
  return !e || e.type !== "DeclareInterface" ? !1 : t == null || (0, He.default)(e, t);
}
function s7e(e, t) {
  return !e || e.type !== "DeclareModule" ? !1 : t == null || (0, He.default)(e, t);
}
function a7e(e, t) {
  return !e || e.type !== "DeclareModuleExports" ? !1 : t == null || (0, He.default)(e, t);
}
function o7e(e, t) {
  return !e || e.type !== "DeclareTypeAlias" ? !1 : t == null || (0, He.default)(e, t);
}
function l7e(e, t) {
  return !e || e.type !== "DeclareOpaqueType" ? !1 : t == null || (0, He.default)(e, t);
}
function u7e(e, t) {
  return !e || e.type !== "DeclareVariable" ? !1 : t == null || (0, He.default)(e, t);
}
function c7e(e, t) {
  return !e || e.type !== "DeclareExportDeclaration" ? !1 : t == null || (0, He.default)(e, t);
}
function p7e(e, t) {
  return !e || e.type !== "DeclareExportAllDeclaration" ? !1 : t == null || (0, He.default)(e, t);
}
function f7e(e, t) {
  return !e || e.type !== "DeclaredPredicate" ? !1 : t == null || (0, He.default)(e, t);
}
function h7e(e, t) {
  return !e || e.type !== "ExistsTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function d7e(e, t) {
  return !e || e.type !== "FunctionTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function m7e(e, t) {
  return !e || e.type !== "FunctionTypeParam" ? !1 : t == null || (0, He.default)(e, t);
}
function y7e(e, t) {
  return !e || e.type !== "GenericTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function g7e(e, t) {
  return !e || e.type !== "InferredPredicate" ? !1 : t == null || (0, He.default)(e, t);
}
function b7e(e, t) {
  return !e || e.type !== "InterfaceExtends" ? !1 : t == null || (0, He.default)(e, t);
}
function v7e(e, t) {
  return !e || e.type !== "InterfaceDeclaration" ? !1 : t == null || (0, He.default)(e, t);
}
function T7e(e, t) {
  return !e || e.type !== "InterfaceTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function S7e(e, t) {
  return !e || e.type !== "IntersectionTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function x7e(e, t) {
  return !e || e.type !== "MixedTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function E7e(e, t) {
  return !e || e.type !== "EmptyTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function P7e(e, t) {
  return !e || e.type !== "NullableTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function w7e(e, t) {
  return !e || e.type !== "NumberLiteralTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function A7e(e, t) {
  return !e || e.type !== "NumberTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function C7e(e, t) {
  return !e || e.type !== "ObjectTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function _7e(e, t) {
  return !e || e.type !== "ObjectTypeInternalSlot" ? !1 : t == null || (0, He.default)(e, t);
}
function I7e(e, t) {
  return !e || e.type !== "ObjectTypeCallProperty" ? !1 : t == null || (0, He.default)(e, t);
}
function k7e(e, t) {
  return !e || e.type !== "ObjectTypeIndexer" ? !1 : t == null || (0, He.default)(e, t);
}
function O7e(e, t) {
  return !e || e.type !== "ObjectTypeProperty" ? !1 : t == null || (0, He.default)(e, t);
}
function N7e(e, t) {
  return !e || e.type !== "ObjectTypeSpreadProperty" ? !1 : t == null || (0, He.default)(e, t);
}
function D7e(e, t) {
  return !e || e.type !== "OpaqueType" ? !1 : t == null || (0, He.default)(e, t);
}
function L7e(e, t) {
  return !e || e.type !== "QualifiedTypeIdentifier" ? !1 : t == null || (0, He.default)(e, t);
}
function M7e(e, t) {
  return !e || e.type !== "StringLiteralTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function R7e(e, t) {
  return !e || e.type !== "StringTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function B7e(e, t) {
  return !e || e.type !== "SymbolTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function F7e(e, t) {
  return !e || e.type !== "ThisTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function j7e(e, t) {
  return !e || e.type !== "TupleTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function $7e(e, t) {
  return !e || e.type !== "TypeofTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function U7e(e, t) {
  return !e || e.type !== "TypeAlias" ? !1 : t == null || (0, He.default)(e, t);
}
function q7e(e, t) {
  return !e || e.type !== "TypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function V7e(e, t) {
  return !e || e.type !== "TypeCastExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function W7e(e, t) {
  return !e || e.type !== "TypeParameter" ? !1 : t == null || (0, He.default)(e, t);
}
function H7e(e, t) {
  return !e || e.type !== "TypeParameterDeclaration" ? !1 : t == null || (0, He.default)(e, t);
}
function K7e(e, t) {
  return !e || e.type !== "TypeParameterInstantiation" ? !1 : t == null || (0, He.default)(e, t);
}
function z7e(e, t) {
  return !e || e.type !== "UnionTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function G7e(e, t) {
  return !e || e.type !== "Variance" ? !1 : t == null || (0, He.default)(e, t);
}
function Y7e(e, t) {
  return !e || e.type !== "VoidTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function X7e(e, t) {
  return !e || e.type !== "EnumDeclaration" ? !1 : t == null || (0, He.default)(e, t);
}
function J7e(e, t) {
  return !e || e.type !== "EnumBooleanBody" ? !1 : t == null || (0, He.default)(e, t);
}
function Q7e(e, t) {
  return !e || e.type !== "EnumNumberBody" ? !1 : t == null || (0, He.default)(e, t);
}
function Z7e(e, t) {
  return !e || e.type !== "EnumStringBody" ? !1 : t == null || (0, He.default)(e, t);
}
function eUe(e, t) {
  return !e || e.type !== "EnumSymbolBody" ? !1 : t == null || (0, He.default)(e, t);
}
function tUe(e, t) {
  return !e || e.type !== "EnumBooleanMember" ? !1 : t == null || (0, He.default)(e, t);
}
function rUe(e, t) {
  return !e || e.type !== "EnumNumberMember" ? !1 : t == null || (0, He.default)(e, t);
}
function iUe(e, t) {
  return !e || e.type !== "EnumStringMember" ? !1 : t == null || (0, He.default)(e, t);
}
function nUe(e, t) {
  return !e || e.type !== "EnumDefaultedMember" ? !1 : t == null || (0, He.default)(e, t);
}
function sUe(e, t) {
  return !e || e.type !== "IndexedAccessType" ? !1 : t == null || (0, He.default)(e, t);
}
function aUe(e, t) {
  return !e || e.type !== "OptionalIndexedAccessType" ? !1 : t == null || (0, He.default)(e, t);
}
function oUe(e, t) {
  return !e || e.type !== "JSXAttribute" ? !1 : t == null || (0, He.default)(e, t);
}
function lUe(e, t) {
  return !e || e.type !== "JSXClosingElement" ? !1 : t == null || (0, He.default)(e, t);
}
function uUe(e, t) {
  return !e || e.type !== "JSXElement" ? !1 : t == null || (0, He.default)(e, t);
}
function cUe(e, t) {
  return !e || e.type !== "JSXEmptyExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function pUe(e, t) {
  return !e || e.type !== "JSXExpressionContainer" ? !1 : t == null || (0, He.default)(e, t);
}
function fUe(e, t) {
  return !e || e.type !== "JSXSpreadChild" ? !1 : t == null || (0, He.default)(e, t);
}
function hUe(e, t) {
  return !e || e.type !== "JSXIdentifier" ? !1 : t == null || (0, He.default)(e, t);
}
function dUe(e, t) {
  return !e || e.type !== "JSXMemberExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function mUe(e, t) {
  return !e || e.type !== "JSXNamespacedName" ? !1 : t == null || (0, He.default)(e, t);
}
function yUe(e, t) {
  return !e || e.type !== "JSXOpeningElement" ? !1 : t == null || (0, He.default)(e, t);
}
function gUe(e, t) {
  return !e || e.type !== "JSXSpreadAttribute" ? !1 : t == null || (0, He.default)(e, t);
}
function bUe(e, t) {
  return !e || e.type !== "JSXText" ? !1 : t == null || (0, He.default)(e, t);
}
function vUe(e, t) {
  return !e || e.type !== "JSXFragment" ? !1 : t == null || (0, He.default)(e, t);
}
function TUe(e, t) {
  return !e || e.type !== "JSXOpeningFragment" ? !1 : t == null || (0, He.default)(e, t);
}
function SUe(e, t) {
  return !e || e.type !== "JSXClosingFragment" ? !1 : t == null || (0, He.default)(e, t);
}
function xUe(e, t) {
  return !e || e.type !== "Noop" ? !1 : t == null || (0, He.default)(e, t);
}
function EUe(e, t) {
  return !e || e.type !== "Placeholder" ? !1 : t == null || (0, He.default)(e, t);
}
function PUe(e, t) {
  return !e || e.type !== "V8IntrinsicIdentifier" ? !1 : t == null || (0, He.default)(e, t);
}
function wUe(e, t) {
  return !e || e.type !== "ArgumentPlaceholder" ? !1 : t == null || (0, He.default)(e, t);
}
function AUe(e, t) {
  return !e || e.type !== "BindExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function CUe(e, t) {
  return !e || e.type !== "ImportAttribute" ? !1 : t == null || (0, He.default)(e, t);
}
function _Ue(e, t) {
  return !e || e.type !== "Decorator" ? !1 : t == null || (0, He.default)(e, t);
}
function IUe(e, t) {
  return !e || e.type !== "DoExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function kUe(e, t) {
  return !e || e.type !== "ExportDefaultSpecifier" ? !1 : t == null || (0, He.default)(e, t);
}
function OUe(e, t) {
  return !e || e.type !== "RecordExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function NUe(e, t) {
  return !e || e.type !== "TupleExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function DUe(e, t) {
  return !e || e.type !== "DecimalLiteral" ? !1 : t == null || (0, He.default)(e, t);
}
function LUe(e, t) {
  return !e || e.type !== "ModuleExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function MUe(e, t) {
  return !e || e.type !== "TopicReference" ? !1 : t == null || (0, He.default)(e, t);
}
function RUe(e, t) {
  return !e || e.type !== "PipelineTopicExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function BUe(e, t) {
  return !e || e.type !== "PipelineBareFunction" ? !1 : t == null || (0, He.default)(e, t);
}
function FUe(e, t) {
  return !e || e.type !== "PipelinePrimaryTopicReference" ? !1 : t == null || (0, He.default)(e, t);
}
function jUe(e, t) {
  return !e || e.type !== "TSParameterProperty" ? !1 : t == null || (0, He.default)(e, t);
}
function $Ue(e, t) {
  return !e || e.type !== "TSDeclareFunction" ? !1 : t == null || (0, He.default)(e, t);
}
function UUe(e, t) {
  return !e || e.type !== "TSDeclareMethod" ? !1 : t == null || (0, He.default)(e, t);
}
function qUe(e, t) {
  return !e || e.type !== "TSQualifiedName" ? !1 : t == null || (0, He.default)(e, t);
}
function VUe(e, t) {
  return !e || e.type !== "TSCallSignatureDeclaration" ? !1 : t == null || (0, He.default)(e, t);
}
function WUe(e, t) {
  return !e || e.type !== "TSConstructSignatureDeclaration" ? !1 : t == null || (0, He.default)(e, t);
}
function HUe(e, t) {
  return !e || e.type !== "TSPropertySignature" ? !1 : t == null || (0, He.default)(e, t);
}
function KUe(e, t) {
  return !e || e.type !== "TSMethodSignature" ? !1 : t == null || (0, He.default)(e, t);
}
function zUe(e, t) {
  return !e || e.type !== "TSIndexSignature" ? !1 : t == null || (0, He.default)(e, t);
}
function GUe(e, t) {
  return !e || e.type !== "TSAnyKeyword" ? !1 : t == null || (0, He.default)(e, t);
}
function YUe(e, t) {
  return !e || e.type !== "TSBooleanKeyword" ? !1 : t == null || (0, He.default)(e, t);
}
function XUe(e, t) {
  return !e || e.type !== "TSBigIntKeyword" ? !1 : t == null || (0, He.default)(e, t);
}
function JUe(e, t) {
  return !e || e.type !== "TSIntrinsicKeyword" ? !1 : t == null || (0, He.default)(e, t);
}
function QUe(e, t) {
  return !e || e.type !== "TSNeverKeyword" ? !1 : t == null || (0, He.default)(e, t);
}
function ZUe(e, t) {
  return !e || e.type !== "TSNullKeyword" ? !1 : t == null || (0, He.default)(e, t);
}
function eqe(e, t) {
  return !e || e.type !== "TSNumberKeyword" ? !1 : t == null || (0, He.default)(e, t);
}
function tqe(e, t) {
  return !e || e.type !== "TSObjectKeyword" ? !1 : t == null || (0, He.default)(e, t);
}
function rqe(e, t) {
  return !e || e.type !== "TSStringKeyword" ? !1 : t == null || (0, He.default)(e, t);
}
function iqe(e, t) {
  return !e || e.type !== "TSSymbolKeyword" ? !1 : t == null || (0, He.default)(e, t);
}
function nqe(e, t) {
  return !e || e.type !== "TSUndefinedKeyword" ? !1 : t == null || (0, He.default)(e, t);
}
function sqe(e, t) {
  return !e || e.type !== "TSUnknownKeyword" ? !1 : t == null || (0, He.default)(e, t);
}
function aqe(e, t) {
  return !e || e.type !== "TSVoidKeyword" ? !1 : t == null || (0, He.default)(e, t);
}
function oqe(e, t) {
  return !e || e.type !== "TSThisType" ? !1 : t == null || (0, He.default)(e, t);
}
function lqe(e, t) {
  return !e || e.type !== "TSFunctionType" ? !1 : t == null || (0, He.default)(e, t);
}
function uqe(e, t) {
  return !e || e.type !== "TSConstructorType" ? !1 : t == null || (0, He.default)(e, t);
}
function cqe(e, t) {
  return !e || e.type !== "TSTypeReference" ? !1 : t == null || (0, He.default)(e, t);
}
function pqe(e, t) {
  return !e || e.type !== "TSTypePredicate" ? !1 : t == null || (0, He.default)(e, t);
}
function fqe(e, t) {
  return !e || e.type !== "TSTypeQuery" ? !1 : t == null || (0, He.default)(e, t);
}
function hqe(e, t) {
  return !e || e.type !== "TSTypeLiteral" ? !1 : t == null || (0, He.default)(e, t);
}
function dqe(e, t) {
  return !e || e.type !== "TSArrayType" ? !1 : t == null || (0, He.default)(e, t);
}
function mqe(e, t) {
  return !e || e.type !== "TSTupleType" ? !1 : t == null || (0, He.default)(e, t);
}
function yqe(e, t) {
  return !e || e.type !== "TSOptionalType" ? !1 : t == null || (0, He.default)(e, t);
}
function gqe(e, t) {
  return !e || e.type !== "TSRestType" ? !1 : t == null || (0, He.default)(e, t);
}
function bqe(e, t) {
  return !e || e.type !== "TSNamedTupleMember" ? !1 : t == null || (0, He.default)(e, t);
}
function vqe(e, t) {
  return !e || e.type !== "TSUnionType" ? !1 : t == null || (0, He.default)(e, t);
}
function Tqe(e, t) {
  return !e || e.type !== "TSIntersectionType" ? !1 : t == null || (0, He.default)(e, t);
}
function Sqe(e, t) {
  return !e || e.type !== "TSConditionalType" ? !1 : t == null || (0, He.default)(e, t);
}
function xqe(e, t) {
  return !e || e.type !== "TSInferType" ? !1 : t == null || (0, He.default)(e, t);
}
function Eqe(e, t) {
  return !e || e.type !== "TSParenthesizedType" ? !1 : t == null || (0, He.default)(e, t);
}
function Pqe(e, t) {
  return !e || e.type !== "TSTypeOperator" ? !1 : t == null || (0, He.default)(e, t);
}
function wqe(e, t) {
  return !e || e.type !== "TSIndexedAccessType" ? !1 : t == null || (0, He.default)(e, t);
}
function Aqe(e, t) {
  return !e || e.type !== "TSMappedType" ? !1 : t == null || (0, He.default)(e, t);
}
function Cqe(e, t) {
  return !e || e.type !== "TSLiteralType" ? !1 : t == null || (0, He.default)(e, t);
}
function _qe(e, t) {
  return !e || e.type !== "TSExpressionWithTypeArguments" ? !1 : t == null || (0, He.default)(e, t);
}
function Iqe(e, t) {
  return !e || e.type !== "TSInterfaceDeclaration" ? !1 : t == null || (0, He.default)(e, t);
}
function kqe(e, t) {
  return !e || e.type !== "TSInterfaceBody" ? !1 : t == null || (0, He.default)(e, t);
}
function Oqe(e, t) {
  return !e || e.type !== "TSTypeAliasDeclaration" ? !1 : t == null || (0, He.default)(e, t);
}
function Nqe(e, t) {
  return !e || e.type !== "TSInstantiationExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function Dqe(e, t) {
  return !e || e.type !== "TSAsExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function Lqe(e, t) {
  return !e || e.type !== "TSSatisfiesExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function Mqe(e, t) {
  return !e || e.type !== "TSTypeAssertion" ? !1 : t == null || (0, He.default)(e, t);
}
function Rqe(e, t) {
  return !e || e.type !== "TSEnumDeclaration" ? !1 : t == null || (0, He.default)(e, t);
}
function Bqe(e, t) {
  return !e || e.type !== "TSEnumMember" ? !1 : t == null || (0, He.default)(e, t);
}
function Fqe(e, t) {
  return !e || e.type !== "TSModuleDeclaration" ? !1 : t == null || (0, He.default)(e, t);
}
function jqe(e, t) {
  return !e || e.type !== "TSModuleBlock" ? !1 : t == null || (0, He.default)(e, t);
}
function $qe(e, t) {
  return !e || e.type !== "TSImportType" ? !1 : t == null || (0, He.default)(e, t);
}
function Uqe(e, t) {
  return !e || e.type !== "TSImportEqualsDeclaration" ? !1 : t == null || (0, He.default)(e, t);
}
function qqe(e, t) {
  return !e || e.type !== "TSExternalModuleReference" ? !1 : t == null || (0, He.default)(e, t);
}
function Vqe(e, t) {
  return !e || e.type !== "TSNonNullExpression" ? !1 : t == null || (0, He.default)(e, t);
}
function Wqe(e, t) {
  return !e || e.type !== "TSExportAssignment" ? !1 : t == null || (0, He.default)(e, t);
}
function Hqe(e, t) {
  return !e || e.type !== "TSNamespaceExportDeclaration" ? !1 : t == null || (0, He.default)(e, t);
}
function Kqe(e, t) {
  return !e || e.type !== "TSTypeAnnotation" ? !1 : t == null || (0, He.default)(e, t);
}
function zqe(e, t) {
  return !e || e.type !== "TSTypeParameterInstantiation" ? !1 : t == null || (0, He.default)(e, t);
}
function Gqe(e, t) {
  return !e || e.type !== "TSTypeParameterDeclaration" ? !1 : t == null || (0, He.default)(e, t);
}
function Yqe(e, t) {
  return !e || e.type !== "TSTypeParameter" ? !1 : t == null || (0, He.default)(e, t);
}
function Xqe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ArrayExpression":
    case "AssignmentExpression":
    case "BinaryExpression":
    case "InterpreterDirective":
    case "Directive":
    case "DirectiveLiteral":
    case "BlockStatement":
    case "BreakStatement":
    case "CallExpression":
    case "CatchClause":
    case "ConditionalExpression":
    case "ContinueStatement":
    case "DebuggerStatement":
    case "DoWhileStatement":
    case "EmptyStatement":
    case "ExpressionStatement":
    case "File":
    case "ForInStatement":
    case "ForStatement":
    case "FunctionDeclaration":
    case "FunctionExpression":
    case "Identifier":
    case "IfStatement":
    case "LabeledStatement":
    case "StringLiteral":
    case "NumericLiteral":
    case "NullLiteral":
    case "BooleanLiteral":
    case "RegExpLiteral":
    case "LogicalExpression":
    case "MemberExpression":
    case "NewExpression":
    case "Program":
    case "ObjectExpression":
    case "ObjectMethod":
    case "ObjectProperty":
    case "RestElement":
    case "ReturnStatement":
    case "SequenceExpression":
    case "ParenthesizedExpression":
    case "SwitchCase":
    case "SwitchStatement":
    case "ThisExpression":
    case "ThrowStatement":
    case "TryStatement":
    case "UnaryExpression":
    case "UpdateExpression":
    case "VariableDeclaration":
    case "VariableDeclarator":
    case "WhileStatement":
    case "WithStatement":
    case "AssignmentPattern":
    case "ArrayPattern":
    case "ArrowFunctionExpression":
    case "ClassBody":
    case "ClassExpression":
    case "ClassDeclaration":
    case "ExportAllDeclaration":
    case "ExportDefaultDeclaration":
    case "ExportNamedDeclaration":
    case "ExportSpecifier":
    case "ForOfStatement":
    case "ImportDeclaration":
    case "ImportDefaultSpecifier":
    case "ImportNamespaceSpecifier":
    case "ImportSpecifier":
    case "ImportExpression":
    case "MetaProperty":
    case "ClassMethod":
    case "ObjectPattern":
    case "SpreadElement":
    case "Super":
    case "TaggedTemplateExpression":
    case "TemplateElement":
    case "TemplateLiteral":
    case "YieldExpression":
    case "AwaitExpression":
    case "Import":
    case "BigIntLiteral":
    case "ExportNamespaceSpecifier":
    case "OptionalMemberExpression":
    case "OptionalCallExpression":
    case "ClassProperty":
    case "ClassAccessorProperty":
    case "ClassPrivateProperty":
    case "ClassPrivateMethod":
    case "PrivateName":
    case "StaticBlock":
      break;
    case "Placeholder":
      switch (e.expectedNode) {
        case "Identifier":
        case "StringLiteral":
        case "BlockStatement":
        case "ClassBody":
          break;
        default:
          return !1;
      }
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function Jqe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ArrayExpression":
    case "AssignmentExpression":
    case "BinaryExpression":
    case "CallExpression":
    case "ConditionalExpression":
    case "FunctionExpression":
    case "Identifier":
    case "StringLiteral":
    case "NumericLiteral":
    case "NullLiteral":
    case "BooleanLiteral":
    case "RegExpLiteral":
    case "LogicalExpression":
    case "MemberExpression":
    case "NewExpression":
    case "ObjectExpression":
    case "SequenceExpression":
    case "ParenthesizedExpression":
    case "ThisExpression":
    case "UnaryExpression":
    case "UpdateExpression":
    case "ArrowFunctionExpression":
    case "ClassExpression":
    case "ImportExpression":
    case "MetaProperty":
    case "Super":
    case "TaggedTemplateExpression":
    case "TemplateLiteral":
    case "YieldExpression":
    case "AwaitExpression":
    case "Import":
    case "BigIntLiteral":
    case "OptionalMemberExpression":
    case "OptionalCallExpression":
    case "TypeCastExpression":
    case "JSXElement":
    case "JSXFragment":
    case "BindExpression":
    case "DoExpression":
    case "RecordExpression":
    case "TupleExpression":
    case "DecimalLiteral":
    case "ModuleExpression":
    case "TopicReference":
    case "PipelineTopicExpression":
    case "PipelineBareFunction":
    case "PipelinePrimaryTopicReference":
    case "TSInstantiationExpression":
    case "TSAsExpression":
    case "TSSatisfiesExpression":
    case "TSTypeAssertion":
    case "TSNonNullExpression":
      break;
    case "Placeholder":
      switch (e.expectedNode) {
        case "Expression":
        case "Identifier":
        case "StringLiteral":
          break;
        default:
          return !1;
      }
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function Qqe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "BinaryExpression":
    case "LogicalExpression":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function Zqe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "BlockStatement":
    case "CatchClause":
    case "DoWhileStatement":
    case "ForInStatement":
    case "ForStatement":
    case "FunctionDeclaration":
    case "FunctionExpression":
    case "Program":
    case "ObjectMethod":
    case "SwitchStatement":
    case "WhileStatement":
    case "ArrowFunctionExpression":
    case "ClassExpression":
    case "ClassDeclaration":
    case "ForOfStatement":
    case "ClassMethod":
    case "ClassPrivateMethod":
    case "StaticBlock":
    case "TSModuleBlock":
      break;
    case "Placeholder":
      if (e.expectedNode === "BlockStatement")
        break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function eVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "BlockStatement":
    case "CatchClause":
    case "DoWhileStatement":
    case "ForInStatement":
    case "ForStatement":
    case "FunctionDeclaration":
    case "FunctionExpression":
    case "Program":
    case "ObjectMethod":
    case "SwitchStatement":
    case "WhileStatement":
    case "ArrowFunctionExpression":
    case "ForOfStatement":
    case "ClassMethod":
    case "ClassPrivateMethod":
    case "StaticBlock":
    case "TSModuleBlock":
      break;
    case "Placeholder":
      if (e.expectedNode === "BlockStatement")
        break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function tVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "BlockStatement":
    case "Program":
    case "TSModuleBlock":
      break;
    case "Placeholder":
      if (e.expectedNode === "BlockStatement")
        break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function rVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "BlockStatement":
    case "BreakStatement":
    case "ContinueStatement":
    case "DebuggerStatement":
    case "DoWhileStatement":
    case "EmptyStatement":
    case "ExpressionStatement":
    case "ForInStatement":
    case "ForStatement":
    case "FunctionDeclaration":
    case "IfStatement":
    case "LabeledStatement":
    case "ReturnStatement":
    case "SwitchStatement":
    case "ThrowStatement":
    case "TryStatement":
    case "VariableDeclaration":
    case "WhileStatement":
    case "WithStatement":
    case "ClassDeclaration":
    case "ExportAllDeclaration":
    case "ExportDefaultDeclaration":
    case "ExportNamedDeclaration":
    case "ForOfStatement":
    case "ImportDeclaration":
    case "DeclareClass":
    case "DeclareFunction":
    case "DeclareInterface":
    case "DeclareModule":
    case "DeclareModuleExports":
    case "DeclareTypeAlias":
    case "DeclareOpaqueType":
    case "DeclareVariable":
    case "DeclareExportDeclaration":
    case "DeclareExportAllDeclaration":
    case "InterfaceDeclaration":
    case "OpaqueType":
    case "TypeAlias":
    case "EnumDeclaration":
    case "TSDeclareFunction":
    case "TSInterfaceDeclaration":
    case "TSTypeAliasDeclaration":
    case "TSEnumDeclaration":
    case "TSModuleDeclaration":
    case "TSImportEqualsDeclaration":
    case "TSExportAssignment":
    case "TSNamespaceExportDeclaration":
      break;
    case "Placeholder":
      switch (e.expectedNode) {
        case "Statement":
        case "Declaration":
        case "BlockStatement":
          break;
        default:
          return !1;
      }
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function iVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "BreakStatement":
    case "ContinueStatement":
    case "ReturnStatement":
    case "ThrowStatement":
    case "YieldExpression":
    case "AwaitExpression":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function nVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "BreakStatement":
    case "ContinueStatement":
    case "ReturnStatement":
    case "ThrowStatement":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function sVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ConditionalExpression":
    case "IfStatement":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function aVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "DoWhileStatement":
    case "ForInStatement":
    case "ForStatement":
    case "WhileStatement":
    case "ForOfStatement":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function oVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "DoWhileStatement":
    case "WhileStatement":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function lVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ExpressionStatement":
    case "ParenthesizedExpression":
    case "TypeCastExpression":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function uVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ForInStatement":
    case "ForStatement":
    case "ForOfStatement":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function cVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ForInStatement":
    case "ForOfStatement":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function pVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "FunctionDeclaration":
    case "FunctionExpression":
    case "ObjectMethod":
    case "ArrowFunctionExpression":
    case "ClassMethod":
    case "ClassPrivateMethod":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function fVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "FunctionDeclaration":
    case "FunctionExpression":
    case "ObjectMethod":
    case "ArrowFunctionExpression":
    case "ClassMethod":
    case "ClassPrivateMethod":
    case "StaticBlock":
    case "TSModuleBlock":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function hVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "FunctionDeclaration":
    case "FunctionExpression":
    case "StringLiteral":
    case "NumericLiteral":
    case "NullLiteral":
    case "BooleanLiteral":
    case "RegExpLiteral":
    case "ArrowFunctionExpression":
    case "BigIntLiteral":
    case "DecimalLiteral":
      break;
    case "Placeholder":
      if (e.expectedNode === "StringLiteral")
        break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function dVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "FunctionDeclaration":
    case "VariableDeclaration":
    case "ClassDeclaration":
    case "ExportAllDeclaration":
    case "ExportDefaultDeclaration":
    case "ExportNamedDeclaration":
    case "ImportDeclaration":
    case "DeclareClass":
    case "DeclareFunction":
    case "DeclareInterface":
    case "DeclareModule":
    case "DeclareModuleExports":
    case "DeclareTypeAlias":
    case "DeclareOpaqueType":
    case "DeclareVariable":
    case "DeclareExportDeclaration":
    case "DeclareExportAllDeclaration":
    case "InterfaceDeclaration":
    case "OpaqueType":
    case "TypeAlias":
    case "EnumDeclaration":
    case "TSDeclareFunction":
    case "TSInterfaceDeclaration":
    case "TSTypeAliasDeclaration":
    case "TSEnumDeclaration":
    case "TSModuleDeclaration":
      break;
    case "Placeholder":
      if (e.expectedNode === "Declaration")
        break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function mVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "Identifier":
    case "RestElement":
    case "AssignmentPattern":
    case "ArrayPattern":
    case "ObjectPattern":
    case "TSAsExpression":
    case "TSSatisfiesExpression":
    case "TSTypeAssertion":
    case "TSNonNullExpression":
      break;
    case "Placeholder":
      switch (e.expectedNode) {
        case "Pattern":
        case "Identifier":
          break;
        default:
          return !1;
      }
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function yVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "Identifier":
    case "MemberExpression":
    case "RestElement":
    case "AssignmentPattern":
    case "ArrayPattern":
    case "ObjectPattern":
    case "TSParameterProperty":
    case "TSAsExpression":
    case "TSSatisfiesExpression":
    case "TSTypeAssertion":
    case "TSNonNullExpression":
      break;
    case "Placeholder":
      switch (e.expectedNode) {
        case "Pattern":
        case "Identifier":
          break;
        default:
          return !1;
      }
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function gVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "Identifier":
    case "TSQualifiedName":
      break;
    case "Placeholder":
      if (e.expectedNode === "Identifier")
        break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function bVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "StringLiteral":
    case "NumericLiteral":
    case "NullLiteral":
    case "BooleanLiteral":
    case "RegExpLiteral":
    case "TemplateLiteral":
    case "BigIntLiteral":
    case "DecimalLiteral":
      break;
    case "Placeholder":
      if (e.expectedNode === "StringLiteral")
        break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function vVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "StringLiteral":
    case "NumericLiteral":
    case "NullLiteral":
    case "BooleanLiteral":
    case "BigIntLiteral":
    case "JSXAttribute":
    case "JSXClosingElement":
    case "JSXElement":
    case "JSXExpressionContainer":
    case "JSXSpreadChild":
    case "JSXOpeningElement":
    case "JSXText":
    case "JSXFragment":
    case "JSXOpeningFragment":
    case "JSXClosingFragment":
    case "DecimalLiteral":
      break;
    case "Placeholder":
      if (e.expectedNode === "StringLiteral")
        break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function TVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ObjectMethod":
    case "ObjectProperty":
    case "ObjectTypeInternalSlot":
    case "ObjectTypeCallProperty":
    case "ObjectTypeIndexer":
    case "ObjectTypeProperty":
    case "ObjectTypeSpreadProperty":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function SVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ObjectMethod":
    case "ClassMethod":
    case "ClassPrivateMethod":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function xVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ObjectMethod":
    case "ObjectProperty":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function EVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ObjectProperty":
    case "ClassProperty":
    case "ClassAccessorProperty":
    case "ClassPrivateProperty":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function PVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "UnaryExpression":
    case "SpreadElement":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function wVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "AssignmentPattern":
    case "ArrayPattern":
    case "ObjectPattern":
      break;
    case "Placeholder":
      if (e.expectedNode === "Pattern")
        break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function AVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ClassExpression":
    case "ClassDeclaration":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function tfe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ExportAllDeclaration":
    case "ExportDefaultDeclaration":
    case "ExportNamedDeclaration":
    case "ImportDeclaration":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function CVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ExportAllDeclaration":
    case "ExportDefaultDeclaration":
    case "ExportNamedDeclaration":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function _Ve(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ExportSpecifier":
    case "ImportDefaultSpecifier":
    case "ImportNamespaceSpecifier":
    case "ImportSpecifier":
    case "ExportNamespaceSpecifier":
    case "ExportDefaultSpecifier":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function IVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ClassAccessorProperty":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function kVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ClassPrivateProperty":
    case "ClassPrivateMethod":
    case "PrivateName":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function OVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "AnyTypeAnnotation":
    case "ArrayTypeAnnotation":
    case "BooleanTypeAnnotation":
    case "BooleanLiteralTypeAnnotation":
    case "NullLiteralTypeAnnotation":
    case "ClassImplements":
    case "DeclareClass":
    case "DeclareFunction":
    case "DeclareInterface":
    case "DeclareModule":
    case "DeclareModuleExports":
    case "DeclareTypeAlias":
    case "DeclareOpaqueType":
    case "DeclareVariable":
    case "DeclareExportDeclaration":
    case "DeclareExportAllDeclaration":
    case "DeclaredPredicate":
    case "ExistsTypeAnnotation":
    case "FunctionTypeAnnotation":
    case "FunctionTypeParam":
    case "GenericTypeAnnotation":
    case "InferredPredicate":
    case "InterfaceExtends":
    case "InterfaceDeclaration":
    case "InterfaceTypeAnnotation":
    case "IntersectionTypeAnnotation":
    case "MixedTypeAnnotation":
    case "EmptyTypeAnnotation":
    case "NullableTypeAnnotation":
    case "NumberLiteralTypeAnnotation":
    case "NumberTypeAnnotation":
    case "ObjectTypeAnnotation":
    case "ObjectTypeInternalSlot":
    case "ObjectTypeCallProperty":
    case "ObjectTypeIndexer":
    case "ObjectTypeProperty":
    case "ObjectTypeSpreadProperty":
    case "OpaqueType":
    case "QualifiedTypeIdentifier":
    case "StringLiteralTypeAnnotation":
    case "StringTypeAnnotation":
    case "SymbolTypeAnnotation":
    case "ThisTypeAnnotation":
    case "TupleTypeAnnotation":
    case "TypeofTypeAnnotation":
    case "TypeAlias":
    case "TypeAnnotation":
    case "TypeCastExpression":
    case "TypeParameter":
    case "TypeParameterDeclaration":
    case "TypeParameterInstantiation":
    case "UnionTypeAnnotation":
    case "Variance":
    case "VoidTypeAnnotation":
    case "EnumDeclaration":
    case "EnumBooleanBody":
    case "EnumNumberBody":
    case "EnumStringBody":
    case "EnumSymbolBody":
    case "EnumBooleanMember":
    case "EnumNumberMember":
    case "EnumStringMember":
    case "EnumDefaultedMember":
    case "IndexedAccessType":
    case "OptionalIndexedAccessType":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function NVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "AnyTypeAnnotation":
    case "ArrayTypeAnnotation":
    case "BooleanTypeAnnotation":
    case "BooleanLiteralTypeAnnotation":
    case "NullLiteralTypeAnnotation":
    case "ExistsTypeAnnotation":
    case "FunctionTypeAnnotation":
    case "GenericTypeAnnotation":
    case "InterfaceTypeAnnotation":
    case "IntersectionTypeAnnotation":
    case "MixedTypeAnnotation":
    case "EmptyTypeAnnotation":
    case "NullableTypeAnnotation":
    case "NumberLiteralTypeAnnotation":
    case "NumberTypeAnnotation":
    case "ObjectTypeAnnotation":
    case "StringLiteralTypeAnnotation":
    case "StringTypeAnnotation":
    case "SymbolTypeAnnotation":
    case "ThisTypeAnnotation":
    case "TupleTypeAnnotation":
    case "TypeofTypeAnnotation":
    case "UnionTypeAnnotation":
    case "VoidTypeAnnotation":
    case "IndexedAccessType":
    case "OptionalIndexedAccessType":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function DVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "AnyTypeAnnotation":
    case "BooleanTypeAnnotation":
    case "NullLiteralTypeAnnotation":
    case "MixedTypeAnnotation":
    case "EmptyTypeAnnotation":
    case "NumberTypeAnnotation":
    case "StringTypeAnnotation":
    case "SymbolTypeAnnotation":
    case "ThisTypeAnnotation":
    case "VoidTypeAnnotation":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function LVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "DeclareClass":
    case "DeclareFunction":
    case "DeclareInterface":
    case "DeclareModule":
    case "DeclareModuleExports":
    case "DeclareTypeAlias":
    case "DeclareOpaqueType":
    case "DeclareVariable":
    case "DeclareExportDeclaration":
    case "DeclareExportAllDeclaration":
    case "InterfaceDeclaration":
    case "OpaqueType":
    case "TypeAlias":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function MVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "DeclaredPredicate":
    case "InferredPredicate":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function RVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "EnumBooleanBody":
    case "EnumNumberBody":
    case "EnumStringBody":
    case "EnumSymbolBody":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function BVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "EnumBooleanMember":
    case "EnumNumberMember":
    case "EnumStringMember":
    case "EnumDefaultedMember":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function FVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "JSXAttribute":
    case "JSXClosingElement":
    case "JSXElement":
    case "JSXEmptyExpression":
    case "JSXExpressionContainer":
    case "JSXSpreadChild":
    case "JSXIdentifier":
    case "JSXMemberExpression":
    case "JSXNamespacedName":
    case "JSXOpeningElement":
    case "JSXSpreadAttribute":
    case "JSXText":
    case "JSXFragment":
    case "JSXOpeningFragment":
    case "JSXClosingFragment":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function jVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "Noop":
    case "Placeholder":
    case "V8IntrinsicIdentifier":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function $Ve(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "TSParameterProperty":
    case "TSDeclareFunction":
    case "TSDeclareMethod":
    case "TSQualifiedName":
    case "TSCallSignatureDeclaration":
    case "TSConstructSignatureDeclaration":
    case "TSPropertySignature":
    case "TSMethodSignature":
    case "TSIndexSignature":
    case "TSAnyKeyword":
    case "TSBooleanKeyword":
    case "TSBigIntKeyword":
    case "TSIntrinsicKeyword":
    case "TSNeverKeyword":
    case "TSNullKeyword":
    case "TSNumberKeyword":
    case "TSObjectKeyword":
    case "TSStringKeyword":
    case "TSSymbolKeyword":
    case "TSUndefinedKeyword":
    case "TSUnknownKeyword":
    case "TSVoidKeyword":
    case "TSThisType":
    case "TSFunctionType":
    case "TSConstructorType":
    case "TSTypeReference":
    case "TSTypePredicate":
    case "TSTypeQuery":
    case "TSTypeLiteral":
    case "TSArrayType":
    case "TSTupleType":
    case "TSOptionalType":
    case "TSRestType":
    case "TSNamedTupleMember":
    case "TSUnionType":
    case "TSIntersectionType":
    case "TSConditionalType":
    case "TSInferType":
    case "TSParenthesizedType":
    case "TSTypeOperator":
    case "TSIndexedAccessType":
    case "TSMappedType":
    case "TSLiteralType":
    case "TSExpressionWithTypeArguments":
    case "TSInterfaceDeclaration":
    case "TSInterfaceBody":
    case "TSTypeAliasDeclaration":
    case "TSInstantiationExpression":
    case "TSAsExpression":
    case "TSSatisfiesExpression":
    case "TSTypeAssertion":
    case "TSEnumDeclaration":
    case "TSEnumMember":
    case "TSModuleDeclaration":
    case "TSModuleBlock":
    case "TSImportType":
    case "TSImportEqualsDeclaration":
    case "TSExternalModuleReference":
    case "TSNonNullExpression":
    case "TSExportAssignment":
    case "TSNamespaceExportDeclaration":
    case "TSTypeAnnotation":
    case "TSTypeParameterInstantiation":
    case "TSTypeParameterDeclaration":
    case "TSTypeParameter":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function UVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "TSCallSignatureDeclaration":
    case "TSConstructSignatureDeclaration":
    case "TSPropertySignature":
    case "TSMethodSignature":
    case "TSIndexSignature":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function qVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "TSAnyKeyword":
    case "TSBooleanKeyword":
    case "TSBigIntKeyword":
    case "TSIntrinsicKeyword":
    case "TSNeverKeyword":
    case "TSNullKeyword":
    case "TSNumberKeyword":
    case "TSObjectKeyword":
    case "TSStringKeyword":
    case "TSSymbolKeyword":
    case "TSUndefinedKeyword":
    case "TSUnknownKeyword":
    case "TSVoidKeyword":
    case "TSThisType":
    case "TSFunctionType":
    case "TSConstructorType":
    case "TSTypeReference":
    case "TSTypePredicate":
    case "TSTypeQuery":
    case "TSTypeLiteral":
    case "TSArrayType":
    case "TSTupleType":
    case "TSOptionalType":
    case "TSRestType":
    case "TSUnionType":
    case "TSIntersectionType":
    case "TSConditionalType":
    case "TSInferType":
    case "TSParenthesizedType":
    case "TSTypeOperator":
    case "TSIndexedAccessType":
    case "TSMappedType":
    case "TSLiteralType":
    case "TSExpressionWithTypeArguments":
    case "TSImportType":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function VVe(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "TSAnyKeyword":
    case "TSBooleanKeyword":
    case "TSBigIntKeyword":
    case "TSIntrinsicKeyword":
    case "TSNeverKeyword":
    case "TSNullKeyword":
    case "TSNumberKeyword":
    case "TSObjectKeyword":
    case "TSStringKeyword":
    case "TSSymbolKeyword":
    case "TSUndefinedKeyword":
    case "TSUnknownKeyword":
    case "TSVoidKeyword":
    case "TSThisType":
    case "TSLiteralType":
      break;
    default:
      return !1;
  }
  return t == null || (0, He.default)(e, t);
}
function WVe(e, t) {
  return (0, FT.default)("isNumberLiteral", "isNumericLiteral"), !e || e.type !== "NumberLiteral" ? !1 : t == null || (0, He.default)(e, t);
}
function HVe(e, t) {
  return (0, FT.default)("isRegexLiteral", "isRegExpLiteral"), !e || e.type !== "RegexLiteral" ? !1 : t == null || (0, He.default)(e, t);
}
function KVe(e, t) {
  return (0, FT.default)("isRestProperty", "isRestElement"), !e || e.type !== "RestProperty" ? !1 : t == null || (0, He.default)(e, t);
}
function zVe(e, t) {
  return (0, FT.default)("isSpreadProperty", "isSpreadElement"), !e || e.type !== "SpreadProperty" ? !1 : t == null || (0, He.default)(e, t);
}
function GVe(e, t) {
  return (0, FT.default)("isModuleDeclaration", "isImportOrExportDeclaration"), tfe(e, t);
}
Object.defineProperty(KC, "__esModule", {
  value: !0
});
KC.default = YVe;
var fb = De;
function YVe(e, t, r) {
  if (!(0, fb.isMemberExpression)(e))
    return !1;
  const i = Array.isArray(t) ? t : t.split("."), n = [];
  let s;
  for (s = e; (0, fb.isMemberExpression)(s); s = s.object)
    n.push(s.property);
  if (n.push(s), n.length < i.length || !r && n.length > i.length)
    return !1;
  for (let a = 0, o = n.length - 1; a < i.length; a++, o--) {
    const l = n[o];
    let u;
    if ((0, fb.isIdentifier)(l))
      u = l.name;
    else if ((0, fb.isStringLiteral)(l))
      u = l.value;
    else if ((0, fb.isThisExpression)(l))
      u = "this";
    else
      return !1;
    if (i[a] !== u)
      return !1;
  }
  return !0;
}
Object.defineProperty(HC, "__esModule", {
  value: !0
});
HC.default = JVe;
var XVe = KC;
function JVe(e, t) {
  const r = e.split(".");
  return (i) => (0, XVe.default)(i, r, t);
}
Object.defineProperty(WC, "__esModule", {
  value: !0
});
WC.default = void 0;
var QVe = HC;
const ZVe = (0, QVe.default)("React.Component");
WC.default = ZVe;
var A6 = {};
Object.defineProperty(A6, "__esModule", {
  value: !0
});
A6.default = eWe;
function eWe(e) {
  return !!e && /^[a-z]/.test(e);
}
var yx = {}, gx = {}, _e = {}, bx = {}, Im = {}, EM = {}, Xs = {}, vx = {}, Tx = {}, lH;
function C6() {
  if (lH)
    return Tx;
  lH = 1, Object.defineProperty(Tx, "__esModule", {
    value: !0
  }), Tx.default = t;
  var e = Vc();
  function t(r, i) {
    if (r === i)
      return !0;
    if (r == null || e.ALIAS_KEYS[i])
      return !1;
    const n = e.FLIPPED_ALIAS_KEYS[i];
    if (n) {
      if (n[0] === r)
        return !0;
      for (const s of n)
        if (r === s)
          return !0;
    }
    return !1;
  }
  return Tx;
}
var Sx = {}, uH;
function rfe() {
  if (uH)
    return Sx;
  uH = 1, Object.defineProperty(Sx, "__esModule", {
    value: !0
  }), Sx.default = t;
  var e = Vc();
  function t(r, i) {
    if (r === i)
      return !0;
    const n = e.PLACEHOLDERS_ALIAS[r];
    if (n) {
      for (const s of n)
        if (i === s)
          return !0;
    }
    return !1;
  }
  return Sx;
}
var cH;
function jT() {
  if (cH)
    return vx;
  cH = 1, Object.defineProperty(vx, "__esModule", {
    value: !0
  }), vx.default = n;
  var e = BT, t = C6(), r = rfe(), i = Vc();
  function n(s, a, o) {
    return a ? (0, t.default)(a.type, s) ? typeof o == "undefined" ? !0 : (0, e.default)(a, o) : !o && a.type === "Placeholder" && s in i.FLIPPED_ALIAS_KEYS ? (0, r.default)(a.expectedNode, s) : !1 : !1;
  }
  return vx;
}
var nm = {}, PM = {}, km = {}, pH;
function tWe() {
  if (pH)
    return km;
  pH = 1, Object.defineProperty(km, "__esModule", {
    value: !0
  }), km.isIdentifierChar = l, km.isIdentifierName = u, km.isIdentifierStart = o;
  let e = "ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢎࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೝೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲊᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꟍꟐꟑꟓꟕ-Ƛꟲ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ﬀ-ﬆﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼＡ-Ｚａ-ｚｦ-ﾾￂ-ￇￊ-ￏￒ-ￗￚ-ￜ", t = "·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࢗ-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-ᫎᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‌‍‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯・꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏０-９＿･";
  const r = new RegExp("[" + e + "]"), i = new RegExp("[" + e + t + "]");
  e = t = null;
  const n = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 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, 39, 27, 10, 22, 251, 41, 7, 1, 17, 2, 60, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 42, 9, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 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, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 496, 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, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191], s = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 80, 3, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 343, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 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, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 726, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
  function a(c, f) {
    let h = 65536;
    for (let m = 0, g = f.length; m < g; m += 2) {
      if (h += f[m], h > c)
        return !1;
      if (h += f[m + 1], h >= c)
        return !0;
    }
    return !1;
  }
  function o(c) {
    return c < 65 ? c === 36 : c <= 90 ? !0 : c < 97 ? c === 95 : c <= 122 ? !0 : c <= 65535 ? c >= 170 && r.test(String.fromCharCode(c)) : a(c, n);
  }
  function l(c) {
    return c < 48 ? c === 36 : c < 58 ? !0 : c < 65 ? !1 : c <= 90 ? !0 : c < 97 ? c === 95 : c <= 122 ? !0 : c <= 65535 ? c >= 170 && i.test(String.fromCharCode(c)) : a(c, n) || a(c, s);
  }
  function u(c) {
    let f = !0;
    for (let h = 0; h < c.length; h++) {
      let m = c.charCodeAt(h);
      if ((m & 64512) === 55296 && h + 1 < c.length) {
        const g = c.charCodeAt(++h);
        (g & 64512) === 56320 && (m = 65536 + ((m & 1023) << 10) + (g & 1023));
      }
      if (f) {
        if (f = !1, !o(m))
          return !1;
      } else if (!l(m))
        return !1;
    }
    return !f;
  }
  return km;
}
var Xf = {}, fH;
function rWe() {
  if (fH)
    return Xf;
  fH = 1, Object.defineProperty(Xf, "__esModule", {
    value: !0
  }), Xf.isKeyword = l, Xf.isReservedWord = n, Xf.isStrictBindOnlyReservedWord = a, Xf.isStrictBindReservedWord = o, Xf.isStrictReservedWord = s;
  const e = {
    keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"],
    strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"],
    strictBind: ["eval", "arguments"]
  }, t = new Set(e.keyword), r = new Set(e.strict), i = new Set(e.strictBind);
  function n(u, c) {
    return c && u === "await" || u === "enum";
  }
  function s(u, c) {
    return n(u, c) || r.has(u);
  }
  function a(u) {
    return i.has(u);
  }
  function o(u, c) {
    return s(u, c) || a(u);
  }
  function l(u) {
    return t.has(u);
  }
  return Xf;
}
var hH;
function qc() {
  return hH || (hH = 1, function(e) {
    Object.defineProperty(e, "__esModule", {
      value: !0
    }), Object.defineProperty(e, "isIdentifierChar", {
      enumerable: !0,
      get: function() {
        return t.isIdentifierChar;
      }
    }), Object.defineProperty(e, "isIdentifierName", {
      enumerable: !0,
      get: function() {
        return t.isIdentifierName;
      }
    }), Object.defineProperty(e, "isIdentifierStart", {
      enumerable: !0,
      get: function() {
        return t.isIdentifierStart;
      }
    }), Object.defineProperty(e, "isKeyword", {
      enumerable: !0,
      get: function() {
        return r.isKeyword;
      }
    }), Object.defineProperty(e, "isReservedWord", {
      enumerable: !0,
      get: function() {
        return r.isReservedWord;
      }
    }), Object.defineProperty(e, "isStrictBindOnlyReservedWord", {
      enumerable: !0,
      get: function() {
        return r.isStrictBindOnlyReservedWord;
      }
    }), Object.defineProperty(e, "isStrictBindReservedWord", {
      enumerable: !0,
      get: function() {
        return r.isStrictBindReservedWord;
      }
    }), Object.defineProperty(e, "isStrictReservedWord", {
      enumerable: !0,
      get: function() {
        return r.isStrictReservedWord;
      }
    });
    var t = tWe(), r = rWe();
  }(PM)), PM;
}
Object.defineProperty(nm, "__esModule", {
  value: !0
});
nm.default = iWe;
var wM = qc();
function iWe(e, t = !0) {
  return typeof e != "string" || t && ((0, wM.isKeyword)(e) || (0, wM.isStrictReservedWord)(e, !0)) ? !1 : (0, wM.isIdentifierName)(e);
}
var Om = {}, dH;
function ife() {
  if (dH)
    return Om;
  dH = 1, Object.defineProperty(Om, "__esModule", {
    value: !0
  }), Om.readCodePoint = l, Om.readInt = o, Om.readStringContents = i;
  var e = function(c) {
    return c >= 48 && c <= 57;
  };
  const t = {
    decBinOct: /* @__PURE__ */ new Set([46, 66, 69, 79, 95, 98, 101, 111]),
    hex: /* @__PURE__ */ new Set([46, 88, 95, 120])
  }, r = {
    bin: (u) => u === 48 || u === 49,
    oct: (u) => u >= 48 && u <= 55,
    dec: (u) => u >= 48 && u <= 57,
    hex: (u) => u >= 48 && u <= 57 || u >= 65 && u <= 70 || u >= 97 && u <= 102
  };
  function i(u, c, f, h, m, g) {
    const y = f, v = h, T = m;
    let S = "", P = null, x = f;
    const {
      length: C
    } = c;
    for (; ; ) {
      if (f >= C) {
        g.unterminated(y, v, T), S += c.slice(x, f);
        break;
      }
      const D = c.charCodeAt(f);
      if (n(u, D, c, f)) {
        S += c.slice(x, f);
        break;
      }
      if (D === 92) {
        S += c.slice(x, f);
        const w = s(c, f, h, m, u === "template", g);
        w.ch === null && !P ? P = {
          pos: f,
          lineStart: h,
          curLine: m
        } : S += w.ch, {
          pos: f,
          lineStart: h,
          curLine: m
        } = w, x = f;
      } else
        D === 8232 || D === 8233 ? (++f, ++m, h = f) : D === 10 || D === 13 ? u === "template" ? (S += c.slice(x, f) + "\n", ++f, D === 13 && c.charCodeAt(f) === 10 && ++f, ++m, x = h = f) : g.unterminated(y, v, T) : ++f;
    }
    return {
      pos: f,
      str: S,
      firstInvalidLoc: P,
      lineStart: h,
      curLine: m,
      containsInvalid: !!P
    };
  }
  function n(u, c, f, h) {
    return u === "template" ? c === 96 || c === 36 && f.charCodeAt(h + 1) === 123 : c === (u === "double" ? 34 : 39);
  }
  function s(u, c, f, h, m, g) {
    const y = !m;
    c++;
    const v = (S) => ({
      pos: c,
      ch: S,
      lineStart: f,
      curLine: h
    }), T = u.charCodeAt(c++);
    switch (T) {
      case 110:
        return v("\n");
      case 114:
        return v("\r");
      case 120: {
        let S;
        return {
          code: S,
          pos: c
        } = a(u, c, f, h, 2, !1, y, g), v(S === null ? null : String.fromCharCode(S));
      }
      case 117: {
        let S;
        return {
          code: S,
          pos: c
        } = l(u, c, f, h, y, g), v(S === null ? null : String.fromCodePoint(S));
      }
      case 116:
        return v("	");
      case 98:
        return v("\b");
      case 118:
        return v("\v");
      case 102:
        return v("\f");
      case 13:
        u.charCodeAt(c) === 10 && ++c;
      case 10:
        f = c, ++h;
      case 8232:
      case 8233:
        return v("");
      case 56:
      case 57:
        if (m)
          return v(null);
        g.strictNumericEscape(c - 1, f, h);
      default:
        if (T >= 48 && T <= 55) {
          const S = c - 1;
          let x = u.slice(S, c + 2).match(/^[0-7]+/)[0], C = parseInt(x, 8);
          C > 255 && (x = x.slice(0, -1), C = parseInt(x, 8)), c += x.length - 1;
          const D = u.charCodeAt(c);
          if (x !== "0" || D === 56 || D === 57) {
            if (m)
              return v(null);
            g.strictNumericEscape(S, f, h);
          }
          return v(String.fromCharCode(C));
        }
        return v(String.fromCharCode(T));
    }
  }
  function a(u, c, f, h, m, g, y, v) {
    const T = c;
    let S;
    return {
      n: S,
      pos: c
    } = o(u, c, f, h, 16, m, g, !1, v, !y), S === null && (y ? v.invalidEscapeSequence(T, f, h) : c = T - 1), {
      code: S,
      pos: c
    };
  }
  function o(u, c, f, h, m, g, y, v, T, S) {
    const P = c, x = m === 16 ? t.hex : t.decBinOct, C = m === 16 ? r.hex : m === 10 ? r.dec : m === 8 ? r.oct : r.bin;
    let D = !1, w = 0;
    for (let A = 0, I = g == null ? 1 / 0 : g; A < I; ++A) {
      const L = u.charCodeAt(c);
      let O;
      if (L === 95 && v !== "bail") {
        const F = u.charCodeAt(c - 1), q = u.charCodeAt(c + 1);
        if (v) {
          if (Number.isNaN(q) || !C(q) || x.has(F) || x.has(q)) {
            if (S)
              return {
                n: null,
                pos: c
              };
            T.unexpectedNumericSeparator(c, f, h);
          }
        } else {
          if (S)
            return {
              n: null,
              pos: c
            };
          T.numericSeparatorInEscapeSequence(c, f, h);
        }
        ++c;
        continue;
      }
      if (L >= 97 ? O = L - 97 + 10 : L >= 65 ? O = L - 65 + 10 : e(L) ? O = L - 48 : O = 1 / 0, O >= m) {
        if (O <= 9 && S)
          return {
            n: null,
            pos: c
          };
        if (O <= 9 && T.invalidDigit(c, f, h, m))
          O = 0;
        else if (y)
          O = 0, D = !0;
        else
          break;
      }
      ++c, w = w * m + O;
    }
    return c === P || g != null && c - P !== g || D ? {
      n: null,
      pos: c
    } : {
      n: w,
      pos: c
    };
  }
  function l(u, c, f, h, m, g) {
    const y = u.charCodeAt(c);
    let v;
    if (y === 123) {
      if (++c, {
        code: v,
        pos: c
      } = a(u, c, f, h, u.indexOf("}", c) - c, !0, m, g), ++c, v !== null && v > 1114111)
        if (m)
          g.invalidCodePoint(c, f, h);
        else
          return {
            code: null,
            pos: c
          };
    } else
      ({
        code: v,
        pos: c
      } = a(u, c, f, h, 4, !1, m, g));
    return {
      code: v,
      pos: c
    };
  }
  return Om;
}
var Sr = {};
Object.defineProperty(Sr, "__esModule", {
  value: !0
});
Sr.UPDATE_OPERATORS = Sr.UNARY_OPERATORS = Sr.STRING_UNARY_OPERATORS = Sr.STATEMENT_OR_BLOCK_KEYS = Sr.NUMBER_UNARY_OPERATORS = Sr.NUMBER_BINARY_OPERATORS = Sr.NOT_LOCAL_BINDING = Sr.LOGICAL_OPERATORS = Sr.INHERIT_KEYS = Sr.FOR_INIT_KEYS = Sr.FLATTENABLE_KEYS = Sr.EQUALITY_BINARY_OPERATORS = Sr.COMPARISON_BINARY_OPERATORS = Sr.COMMENT_KEYS = Sr.BOOLEAN_UNARY_OPERATORS = Sr.BOOLEAN_NUMBER_BINARY_OPERATORS = Sr.BOOLEAN_BINARY_OPERATORS = Sr.BLOCK_SCOPED_SYMBOL = Sr.BINARY_OPERATORS = Sr.ASSIGNMENT_OPERATORS = void 0;
Sr.STATEMENT_OR_BLOCK_KEYS = ["consequent", "body", "alternate"];
Sr.FLATTENABLE_KEYS = ["body", "expressions"];
Sr.FOR_INIT_KEYS = ["left", "init"];
Sr.COMMENT_KEYS = ["leadingComments", "trailingComments", "innerComments"];
const nWe = Sr.LOGICAL_OPERATORS = ["||", "&&", "??"];
Sr.UPDATE_OPERATORS = ["++", "--"];
const sWe = Sr.BOOLEAN_NUMBER_BINARY_OPERATORS = [">", "<", ">=", "<="], aWe = Sr.EQUALITY_BINARY_OPERATORS = ["==", "===", "!=", "!=="], oWe = Sr.COMPARISON_BINARY_OPERATORS = [...aWe, "in", "instanceof"], lWe = Sr.BOOLEAN_BINARY_OPERATORS = [...oWe, ...sWe], nfe = Sr.NUMBER_BINARY_OPERATORS = ["-", "/", "%", "*", "**", "&", "|", ">>", ">>>", "<<", "^"];
Sr.BINARY_OPERATORS = ["+", ...nfe, ...lWe, "|>"];
Sr.ASSIGNMENT_OPERATORS = ["=", "+=", ...nfe.map((e) => e + "="), ...nWe.map((e) => e + "=")];
const uWe = Sr.BOOLEAN_UNARY_OPERATORS = ["delete", "!"], cWe = Sr.NUMBER_UNARY_OPERATORS = ["+", "-", "~"], pWe = Sr.STRING_UNARY_OPERATORS = ["typeof"];
Sr.UNARY_OPERATORS = ["void", "throw", ...uWe, ...cWe, ...pWe];
Sr.INHERIT_KEYS = {
  optional: ["typeAnnotation", "typeParameters", "returnType"],
  force: ["start", "loc", "end"]
};
Sr.BLOCK_SCOPED_SYMBOL = Symbol.for("var used to be block scoped");
Sr.NOT_LOCAL_BINDING = Symbol.for("should not be considered a local binding");
var ni = {}, mH;
function Wh() {
  if (mH)
    return ni;
  mH = 1, Object.defineProperty(ni, "__esModule", {
    value: !0
  }), ni.VISITOR_KEYS = ni.NODE_PARENT_VALIDATIONS = ni.NODE_FIELDS = ni.FLIPPED_ALIAS_KEYS = ni.DEPRECATED_KEYS = ni.BUILDER_KEYS = ni.ALIAS_KEYS = void 0, ni.arrayOf = y, ni.arrayOfType = v, ni.assertEach = S, ni.assertNodeOrValueType = C, ni.assertNodeType = x, ni.assertOneOf = P, ni.assertOptionalChainStart = A, ni.assertShape = w, ni.assertValueType = D, ni.chain = I, ni.default = j, ni.defineAliasedType = q, ni.typeIs = f, ni.validate = c, ni.validateArrayOfType = T, ni.validateOptional = m, ni.validateOptionalType = g, ni.validateType = h;
  var e = jT(), t = _6();
  const r = ni.VISITOR_KEYS = {}, i = ni.ALIAS_KEYS = {}, n = ni.FLIPPED_ALIAS_KEYS = {}, s = ni.NODE_FIELDS = {}, a = ni.BUILDER_KEYS = {}, o = ni.DEPRECATED_KEYS = {}, l = ni.NODE_PARENT_VALIDATIONS = {};
  function u(N) {
    return Array.isArray(N) ? "array" : N === null ? "null" : typeof N;
  }
  function c(N) {
    return {
      validate: N
    };
  }
  function f(N) {
    return typeof N == "string" ? x(N) : x(...N);
  }
  function h(N) {
    return c(f(N));
  }
  function m(N) {
    return {
      validate: N,
      optional: !0
    };
  }
  function g(N) {
    return {
      validate: f(N),
      optional: !0
    };
  }
  function y(N) {
    return I(D("array"), S(N));
  }
  function v(N) {
    return y(f(N));
  }
  function T(N) {
    return c(v(N));
  }
  function S(N) {
    function M(R, $, V) {
      if (Array.isArray(V))
        for (let K = 0; K < V.length; K++) {
          const z = "".concat($, "[").concat(K, "]"), W = V[K];
          N(R, z, W), process.env.BABEL_TYPES_8_BREAKING && (0, t.validateChild)(R, z, W);
        }
    }
    return M.each = N, M;
  }
  function P(...N) {
    function M(R, $, V) {
      if (N.indexOf(V) < 0)
        throw new TypeError("Property ".concat($, " expected value to be one of ").concat(JSON.stringify(N), " but got ").concat(JSON.stringify(V)));
    }
    return M.oneOf = N, M;
  }
  function x(...N) {
    function M(R, $, V) {
      for (const K of N)
        if ((0, e.default)(K, V)) {
          (0, t.validateChild)(R, $, V);
          return;
        }
      throw new TypeError("Property ".concat($, " of ").concat(R.type, " expected node to be of a type ").concat(JSON.stringify(N), " but instead got ").concat(JSON.stringify(V == null ? void 0 : V.type)));
    }
    return M.oneOfNodeTypes = N, M;
  }
  function C(...N) {
    function M(R, $, V) {
      for (const K of N)
        if (u(V) === K || (0, e.default)(K, V)) {
          (0, t.validateChild)(R, $, V);
          return;
        }
      throw new TypeError("Property ".concat($, " of ").concat(R.type, " expected node to be of a type ").concat(JSON.stringify(N), " but instead got ").concat(JSON.stringify(V == null ? void 0 : V.type)));
    }
    return M.oneOfNodeOrValueTypes = N, M;
  }
  function D(N) {
    function M(R, $, V) {
      if (!(u(V) === N))
        throw new TypeError("Property ".concat($, " expected type of ").concat(N, " but got ").concat(u(V)));
    }
    return M.type = N, M;
  }
  function w(N) {
    function M(R, $, V) {
      const K = [];
      for (const z of Object.keys(N))
        try {
          (0, t.validateField)(R, z, V[z], N[z]);
        } catch (W) {
          if (W instanceof TypeError) {
            K.push(W.message);
            continue;
          }
          throw W;
        }
      if (K.length)
        throw new TypeError("Property ".concat($, " of ").concat(R.type, " expected to have the following:\n").concat(K.join("\n")));
    }
    return M.shapeOf = N, M;
  }
  function A() {
    function N(M) {
      var R;
      let $ = M;
      for (; M; ) {
        const {
          type: V
        } = $;
        if (V === "OptionalCallExpression") {
          if ($.optional)
            return;
          $ = $.callee;
          continue;
        }
        if (V === "OptionalMemberExpression") {
          if ($.optional)
            return;
          $ = $.object;
          continue;
        }
        break;
      }
      throw new TypeError("Non-optional ".concat(M.type, " must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ").concat((R = $) == null ? void 0 : R.type));
    }
    return N;
  }
  function I(...N) {
    function M(...R) {
      for (const $ of N)
        $(...R);
    }
    if (M.chainOf = N, N.length >= 2 && "type" in N[0] && N[0].type === "array" && !("each" in N[1]))
      throw new Error('An assertValueType("array") validator can only be followed by an assertEach(...) validator.');
    return M;
  }
  const L = ["aliases", "builder", "deprecatedAlias", "fields", "inherits", "visitor", "validate"], O = ["default", "optional", "deprecated", "validate"], F = {};
  function q(...N) {
    return (M, R = {}) => {
      let $ = R.aliases;
      if (!$) {
        var V, K;
        R.inherits && ($ = (V = F[R.inherits].aliases) == null ? void 0 : V.slice()), (K = $) != null || ($ = []), R.aliases = $;
      }
      const z = N.filter((W) => !$.includes(W));
      $.unshift(...z), j(M, R);
    };
  }
  function j(N, M = {}) {
    const R = M.inherits && F[M.inherits] || {};
    let $ = M.fields;
    if (!$ && ($ = {}, R.fields)) {
      const W = Object.getOwnPropertyNames(R.fields);
      for (const Y of W) {
        const G = R.fields[Y], le = G.default;
        if (Array.isArray(le) ? le.length > 0 : le && typeof le == "object")
          throw new Error("field defaults can only be primitives or empty arrays currently");
        $[Y] = {
          default: Array.isArray(le) ? [] : le,
          optional: G.optional,
          deprecated: G.deprecated,
          validate: G.validate
        };
      }
    }
    const V = M.visitor || R.visitor || [], K = M.aliases || R.aliases || [], z = M.builder || R.builder || M.visitor || [];
    for (const W of Object.keys(M))
      if (L.indexOf(W) === -1)
        throw new Error('Unknown type option "'.concat(W, '" on ').concat(N));
    M.deprecatedAlias && (o[M.deprecatedAlias] = N);
    for (const W of V.concat(z))
      $[W] = $[W] || {};
    for (const W of Object.keys($)) {
      const Y = $[W];
      Y.default !== void 0 && z.indexOf(W) === -1 && (Y.optional = !0), Y.default === void 0 ? Y.default = null : !Y.validate && Y.default != null && (Y.validate = D(u(Y.default)));
      for (const G of Object.keys(Y))
        if (O.indexOf(G) === -1)
          throw new Error('Unknown field key "'.concat(G, '" on ').concat(N, ".").concat(W));
    }
    r[N] = M.visitor = V, a[N] = M.builder = z, s[N] = M.fields = $, i[N] = M.aliases = K, K.forEach((W) => {
      n[W] = n[W] || [], n[W].push(N);
    }), M.validate && (l[N] = M.validate), F[N] = M;
  }
  return ni;
}
var yH;
function sfe() {
  if (yH)
    return Xs;
  yH = 1, Object.defineProperty(Xs, "__esModule", {
    value: !0
  }), Xs.patternLikeCommon = Xs.functionTypeAnnotationCommon = Xs.functionDeclarationCommon = Xs.functionCommon = Xs.classMethodOrPropertyCommon = Xs.classMethodOrDeclareMethodCommon = void 0;
  var e = jT(), t = nm, r = qc(), i = ife(), n = Sr, s = Wh();
  const a = (0, s.defineAliasedType)("Standardized");
  a("ArrayExpression", {
    fields: {
      elements: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeOrValueType)("null", "Expression", "SpreadElement"))),
        default: process.env.BABEL_TYPES_8_BREAKING ? void 0 : []
      }
    },
    visitor: ["elements"],
    aliases: ["Expression"]
  }), a("AssignmentExpression", {
    fields: {
      operator: {
        validate: function() {
          if (!process.env.BABEL_TYPES_8_BREAKING)
            return (0, s.assertValueType)("string");
          const m = (0, s.assertOneOf)(...n.ASSIGNMENT_OPERATORS), g = (0, s.assertOneOf)("=");
          return function(y, v, T) {
            ((0, e.default)("Pattern", y.left) ? g : m)(y, v, T);
          };
        }()
      },
      left: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.assertNodeType)("Identifier", "MemberExpression", "OptionalMemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") : (0, s.assertNodeType)("LVal", "OptionalMemberExpression")
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      }
    },
    builder: ["operator", "left", "right"],
    visitor: ["left", "right"],
    aliases: ["Expression"]
  }), a("BinaryExpression", {
    builder: ["operator", "left", "right"],
    fields: {
      operator: {
        validate: (0, s.assertOneOf)(...n.BINARY_OPERATORS)
      },
      left: {
        validate: function() {
          const m = (0, s.assertNodeType)("Expression"), g = (0, s.assertNodeType)("Expression", "PrivateName");
          return Object.assign(function(v, T, S) {
            (v.operator === "in" ? g : m)(v, T, S);
          }, {
            oneOfNodeTypes: ["Expression", "PrivateName"]
          });
        }()
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      }
    },
    visitor: ["left", "right"],
    aliases: ["Binary", "Expression"]
  }), a("InterpreterDirective", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, s.assertValueType)("string")
      }
    }
  }), a("Directive", {
    visitor: ["value"],
    fields: {
      value: {
        validate: (0, s.assertNodeType)("DirectiveLiteral")
      }
    }
  }), a("DirectiveLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, s.assertValueType)("string")
      }
    }
  }), a("BlockStatement", {
    builder: ["body", "directives"],
    visitor: ["directives", "body"],
    fields: {
      directives: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Directive"))),
        default: []
      },
      body: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Statement")))
      }
    },
    aliases: ["Scopable", "BlockParent", "Block", "Statement"]
  }), a("BreakStatement", {
    visitor: ["label"],
    fields: {
      label: {
        validate: (0, s.assertNodeType)("Identifier"),
        optional: !0
      }
    },
    aliases: ["Statement", "Terminatorless", "CompletionStatement"]
  }), a("CallExpression", {
    visitor: ["callee", "arguments", "typeParameters", "typeArguments"],
    builder: ["callee", "arguments"],
    aliases: ["Expression"],
    fields: Object.assign({
      callee: {
        validate: (0, s.assertNodeType)("Expression", "Super", "V8IntrinsicIdentifier")
      },
      arguments: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Expression", "SpreadElement", "ArgumentPlaceholder")))
      }
    }, process.env.BABEL_TYPES_8_BREAKING ? {} : {
      optional: {
        validate: (0, s.assertOneOf)(!0, !1),
        optional: !0
      }
    }, {
      typeArguments: {
        validate: (0, s.assertNodeType)("TypeParameterInstantiation"),
        optional: !0
      },
      typeParameters: {
        validate: (0, s.assertNodeType)("TSTypeParameterInstantiation"),
        optional: !0
      }
    })
  }), a("CatchClause", {
    visitor: ["param", "body"],
    fields: {
      param: {
        validate: (0, s.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern"),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      }
    },
    aliases: ["Scopable", "BlockParent"]
  }), a("ConditionalExpression", {
    visitor: ["test", "consequent", "alternate"],
    fields: {
      test: {
        validate: (0, s.assertNodeType)("Expression")
      },
      consequent: {
        validate: (0, s.assertNodeType)("Expression")
      },
      alternate: {
        validate: (0, s.assertNodeType)("Expression")
      }
    },
    aliases: ["Expression", "Conditional"]
  }), a("ContinueStatement", {
    visitor: ["label"],
    fields: {
      label: {
        validate: (0, s.assertNodeType)("Identifier"),
        optional: !0
      }
    },
    aliases: ["Statement", "Terminatorless", "CompletionStatement"]
  }), a("DebuggerStatement", {
    aliases: ["Statement"]
  }), a("DoWhileStatement", {
    visitor: ["test", "body"],
    fields: {
      test: {
        validate: (0, s.assertNodeType)("Expression")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    },
    aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"]
  }), a("EmptyStatement", {
    aliases: ["Statement"]
  }), a("ExpressionStatement", {
    visitor: ["expression"],
    fields: {
      expression: {
        validate: (0, s.assertNodeType)("Expression")
      }
    },
    aliases: ["Statement", "ExpressionWrapper"]
  }), a("File", {
    builder: ["program", "comments", "tokens"],
    visitor: ["program"],
    fields: {
      program: {
        validate: (0, s.assertNodeType)("Program")
      },
      comments: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.assertEach)((0, s.assertNodeType)("CommentBlock", "CommentLine")) : Object.assign(() => {
        }, {
          each: {
            oneOfNodeTypes: ["CommentBlock", "CommentLine"]
          }
        }),
        optional: !0
      },
      tokens: {
        validate: (0, s.assertEach)(Object.assign(() => {
        }, {
          type: "any"
        })),
        optional: !0
      }
    }
  }), a("ForInStatement", {
    visitor: ["left", "right", "body"],
    aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"],
    fields: {
      left: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.assertNodeType)("VariableDeclaration", "Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") : (0, s.assertNodeType)("VariableDeclaration", "LVal")
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  }), a("ForStatement", {
    visitor: ["init", "test", "update", "body"],
    aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop"],
    fields: {
      init: {
        validate: (0, s.assertNodeType)("VariableDeclaration", "Expression"),
        optional: !0
      },
      test: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      update: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  });
  const o = () => ({
    params: {
      validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Identifier", "Pattern", "RestElement")))
    },
    generator: {
      default: !1
    },
    async: {
      default: !1
    }
  });
  Xs.functionCommon = o;
  const l = () => ({
    returnType: {
      validate: (0, s.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
      optional: !0
    },
    typeParameters: {
      validate: (0, s.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"),
      optional: !0
    }
  });
  Xs.functionTypeAnnotationCommon = l;
  const u = () => Object.assign({}, o(), {
    declare: {
      validate: (0, s.assertValueType)("boolean"),
      optional: !0
    },
    id: {
      validate: (0, s.assertNodeType)("Identifier"),
      optional: !0
    }
  });
  Xs.functionDeclarationCommon = u, a("FunctionDeclaration", {
    builder: ["id", "params", "body", "generator", "async"],
    visitor: ["id", "params", "body", "returnType", "typeParameters"],
    fields: Object.assign({}, u(), l(), {
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      },
      predicate: {
        validate: (0, s.assertNodeType)("DeclaredPredicate", "InferredPredicate"),
        optional: !0
      }
    }),
    aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Statement", "Pureish", "Declaration"],
    validate: function() {
      if (!process.env.BABEL_TYPES_8_BREAKING)
        return () => {
        };
      const m = (0, s.assertNodeType)("Identifier");
      return function(g, y, v) {
        (0, e.default)("ExportDefaultDeclaration", g) || m(v, "id", v.id);
      };
    }()
  }), a("FunctionExpression", {
    inherits: "FunctionDeclaration",
    aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"],
    fields: Object.assign({}, o(), l(), {
      id: {
        validate: (0, s.assertNodeType)("Identifier"),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      },
      predicate: {
        validate: (0, s.assertNodeType)("DeclaredPredicate", "InferredPredicate"),
        optional: !0
      }
    })
  });
  const c = () => ({
    typeAnnotation: {
      validate: (0, s.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
      optional: !0
    },
    optional: {
      validate: (0, s.assertValueType)("boolean"),
      optional: !0
    },
    decorators: {
      validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
      optional: !0
    }
  });
  Xs.patternLikeCommon = c, a("Identifier", {
    builder: ["name"],
    visitor: ["typeAnnotation", "decorators"],
    aliases: ["Expression", "PatternLike", "LVal", "TSEntityName"],
    fields: Object.assign({}, c(), {
      name: {
        validate: (0, s.chain)((0, s.assertValueType)("string"), Object.assign(function(m, g, y) {
          if (process.env.BABEL_TYPES_8_BREAKING && !(0, t.default)(y, !1))
            throw new TypeError('"'.concat(y, '" is not a valid identifier name'));
        }, {
          type: "string"
        }))
      }
    }),
    validate(m, g, y) {
      if (!process.env.BABEL_TYPES_8_BREAKING)
        return;
      const v = /\.(\w+)$/.exec(g);
      if (!v)
        return;
      const [, T] = v, S = {
        computed: !1
      };
      if (T === "property") {
        if ((0, e.default)("MemberExpression", m, S) || (0, e.default)("OptionalMemberExpression", m, S))
          return;
      } else if (T === "key") {
        if ((0, e.default)("Property", m, S) || (0, e.default)("Method", m, S))
          return;
      } else if (T === "exported") {
        if ((0, e.default)("ExportSpecifier", m))
          return;
      } else if (T === "imported") {
        if ((0, e.default)("ImportSpecifier", m, {
          imported: y
        }))
          return;
      } else if (T === "meta" && (0, e.default)("MetaProperty", m, {
        meta: y
      }))
        return;
      if (((0, r.isKeyword)(y.name) || (0, r.isReservedWord)(y.name, !1)) && y.name !== "this")
        throw new TypeError('"'.concat(y.name, '" is not a valid identifier'));
    }
  }), a("IfStatement", {
    visitor: ["test", "consequent", "alternate"],
    aliases: ["Statement", "Conditional"],
    fields: {
      test: {
        validate: (0, s.assertNodeType)("Expression")
      },
      consequent: {
        validate: (0, s.assertNodeType)("Statement")
      },
      alternate: {
        optional: !0,
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  }), a("LabeledStatement", {
    visitor: ["label", "body"],
    aliases: ["Statement"],
    fields: {
      label: {
        validate: (0, s.assertNodeType)("Identifier")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  }), a("StringLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, s.assertValueType)("string")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), a("NumericLiteral", {
    builder: ["value"],
    deprecatedAlias: "NumberLiteral",
    fields: {
      value: {
        validate: (0, s.chain)((0, s.assertValueType)("number"), Object.assign(function(m, g, y) {
        }, {
          type: "number"
        }))
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), a("NullLiteral", {
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), a("BooleanLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, s.assertValueType)("boolean")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), a("RegExpLiteral", {
    builder: ["pattern", "flags"],
    deprecatedAlias: "RegexLiteral",
    aliases: ["Expression", "Pureish", "Literal"],
    fields: {
      pattern: {
        validate: (0, s.assertValueType)("string")
      },
      flags: {
        validate: (0, s.chain)((0, s.assertValueType)("string"), Object.assign(function(m, g, y) {
          if (!process.env.BABEL_TYPES_8_BREAKING)
            return;
          const v = /[^gimsuy]/.exec(y);
          if (v)
            throw new TypeError('"'.concat(v[0], '" is not a valid RegExp flag'));
        }, {
          type: "string"
        })),
        default: ""
      }
    }
  }), a("LogicalExpression", {
    builder: ["operator", "left", "right"],
    visitor: ["left", "right"],
    aliases: ["Binary", "Expression"],
    fields: {
      operator: {
        validate: (0, s.assertOneOf)(...n.LOGICAL_OPERATORS)
      },
      left: {
        validate: (0, s.assertNodeType)("Expression")
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("MemberExpression", {
    builder: ["object", "property", "computed", ...process.env.BABEL_TYPES_8_BREAKING ? [] : ["optional"]],
    visitor: ["object", "property"],
    aliases: ["Expression", "LVal"],
    fields: Object.assign({
      object: {
        validate: (0, s.assertNodeType)("Expression", "Super")
      },
      property: {
        validate: function() {
          const m = (0, s.assertNodeType)("Identifier", "PrivateName"), g = (0, s.assertNodeType)("Expression"), y = function(v, T, S) {
            (v.computed ? g : m)(v, T, S);
          };
          return y.oneOfNodeTypes = ["Expression", "Identifier", "PrivateName"], y;
        }()
      },
      computed: {
        default: !1
      }
    }, process.env.BABEL_TYPES_8_BREAKING ? {} : {
      optional: {
        validate: (0, s.assertOneOf)(!0, !1),
        optional: !0
      }
    })
  }), a("NewExpression", {
    inherits: "CallExpression"
  }), a("Program", {
    visitor: ["directives", "body"],
    builder: ["body", "directives", "sourceType", "interpreter"],
    fields: {
      sourceType: {
        validate: (0, s.assertOneOf)("script", "module"),
        default: "script"
      },
      interpreter: {
        validate: (0, s.assertNodeType)("InterpreterDirective"),
        default: null,
        optional: !0
      },
      directives: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Directive"))),
        default: []
      },
      body: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Statement")))
      }
    },
    aliases: ["Scopable", "BlockParent", "Block"]
  }), a("ObjectExpression", {
    visitor: ["properties"],
    aliases: ["Expression"],
    fields: {
      properties: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ObjectMethod", "ObjectProperty", "SpreadElement")))
      }
    }
  }), a("ObjectMethod", {
    builder: ["kind", "key", "params", "body", "computed", "generator", "async"],
    fields: Object.assign({}, o(), l(), {
      kind: Object.assign({
        validate: (0, s.assertOneOf)("method", "get", "set")
      }, process.env.BABEL_TYPES_8_BREAKING ? {} : {
        default: "method"
      }),
      computed: {
        default: !1
      },
      key: {
        validate: function() {
          const m = (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"), g = (0, s.assertNodeType)("Expression"), y = function(v, T, S) {
            (v.computed ? g : m)(v, T, S);
          };
          return y.oneOfNodeTypes = ["Expression", "Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"], y;
        }()
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      }
    }),
    visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"],
    aliases: ["UserWhitespacable", "Function", "Scopable", "BlockParent", "FunctionParent", "Method", "ObjectMember"]
  }), a("ObjectProperty", {
    builder: ["key", "value", "computed", "shorthand", ...process.env.BABEL_TYPES_8_BREAKING ? [] : ["decorators"]],
    fields: {
      computed: {
        default: !1
      },
      key: {
        validate: function() {
          const m = (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "DecimalLiteral", "PrivateName"), g = (0, s.assertNodeType)("Expression");
          return Object.assign(function(v, T, S) {
            (v.computed ? g : m)(v, T, S);
          }, {
            oneOfNodeTypes: ["Expression", "Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "DecimalLiteral", "PrivateName"]
          });
        }()
      },
      value: {
        validate: (0, s.assertNodeType)("Expression", "PatternLike")
      },
      shorthand: {
        validate: (0, s.chain)((0, s.assertValueType)("boolean"), Object.assign(function(m, g, y) {
          if (process.env.BABEL_TYPES_8_BREAKING && y && m.computed)
            throw new TypeError("Property shorthand of ObjectProperty cannot be true if computed is true");
        }, {
          type: "boolean"
        }), function(m, g, y) {
          if (process.env.BABEL_TYPES_8_BREAKING && y && !(0, e.default)("Identifier", m.key))
            throw new TypeError("Property shorthand of ObjectProperty cannot be true if key is not an Identifier");
        }),
        default: !1
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      }
    },
    visitor: ["key", "value", "decorators"],
    aliases: ["UserWhitespacable", "Property", "ObjectMember"],
    validate: function() {
      const m = (0, s.assertNodeType)("Identifier", "Pattern", "TSAsExpression", "TSSatisfiesExpression", "TSNonNullExpression", "TSTypeAssertion"), g = (0, s.assertNodeType)("Expression");
      return function(y, v, T) {
        if (!process.env.BABEL_TYPES_8_BREAKING)
          return;
        ((0, e.default)("ObjectPattern", y) ? m : g)(T, "value", T.value);
      };
    }()
  }), a("RestElement", {
    visitor: ["argument", "typeAnnotation"],
    builder: ["argument"],
    aliases: ["LVal", "PatternLike"],
    deprecatedAlias: "RestProperty",
    fields: Object.assign({}, c(), {
      argument: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern", "MemberExpression", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") : (0, s.assertNodeType)("LVal")
      }
    }),
    validate(m, g) {
      if (!process.env.BABEL_TYPES_8_BREAKING)
        return;
      const y = /(\w+)\[(\d+)\]/.exec(g);
      if (!y)
        throw new Error("Internal Babel error: malformed key.");
      const [, v, T] = y;
      if (m[v].length > +T + 1)
        throw new TypeError("RestElement must be last element of ".concat(v));
    }
  }), a("ReturnStatement", {
    visitor: ["argument"],
    aliases: ["Statement", "Terminatorless", "CompletionStatement"],
    fields: {
      argument: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      }
    }
  }), a("SequenceExpression", {
    visitor: ["expressions"],
    fields: {
      expressions: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Expression")))
      }
    },
    aliases: ["Expression"]
  }), a("ParenthesizedExpression", {
    visitor: ["expression"],
    aliases: ["Expression", "ExpressionWrapper"],
    fields: {
      expression: {
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("SwitchCase", {
    visitor: ["test", "consequent"],
    fields: {
      test: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      consequent: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Statement")))
      }
    }
  }), a("SwitchStatement", {
    visitor: ["discriminant", "cases"],
    aliases: ["Statement", "BlockParent", "Scopable"],
    fields: {
      discriminant: {
        validate: (0, s.assertNodeType)("Expression")
      },
      cases: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("SwitchCase")))
      }
    }
  }), a("ThisExpression", {
    aliases: ["Expression"]
  }), a("ThrowStatement", {
    visitor: ["argument"],
    aliases: ["Statement", "Terminatorless", "CompletionStatement"],
    fields: {
      argument: {
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("TryStatement", {
    visitor: ["block", "handler", "finalizer"],
    aliases: ["Statement"],
    fields: {
      block: {
        validate: (0, s.chain)((0, s.assertNodeType)("BlockStatement"), Object.assign(function(m) {
          if (process.env.BABEL_TYPES_8_BREAKING && !m.handler && !m.finalizer)
            throw new TypeError("TryStatement expects either a handler or finalizer, or both");
        }, {
          oneOfNodeTypes: ["BlockStatement"]
        }))
      },
      handler: {
        optional: !0,
        validate: (0, s.assertNodeType)("CatchClause")
      },
      finalizer: {
        optional: !0,
        validate: (0, s.assertNodeType)("BlockStatement")
      }
    }
  }), a("UnaryExpression", {
    builder: ["operator", "argument", "prefix"],
    fields: {
      prefix: {
        default: !0
      },
      argument: {
        validate: (0, s.assertNodeType)("Expression")
      },
      operator: {
        validate: (0, s.assertOneOf)(...n.UNARY_OPERATORS)
      }
    },
    visitor: ["argument"],
    aliases: ["UnaryLike", "Expression"]
  }), a("UpdateExpression", {
    builder: ["operator", "argument", "prefix"],
    fields: {
      prefix: {
        default: !1
      },
      argument: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.assertNodeType)("Identifier", "MemberExpression") : (0, s.assertNodeType)("Expression")
      },
      operator: {
        validate: (0, s.assertOneOf)(...n.UPDATE_OPERATORS)
      }
    },
    visitor: ["argument"],
    aliases: ["Expression"]
  }), a("VariableDeclaration", {
    builder: ["kind", "declarations"],
    visitor: ["declarations"],
    aliases: ["Statement", "Declaration"],
    fields: {
      declare: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      kind: {
        validate: (0, s.assertOneOf)("var", "let", "const", "using", "await using")
      },
      declarations: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("VariableDeclarator")))
      }
    },
    validate(m, g, y) {
      if (process.env.BABEL_TYPES_8_BREAKING && (0, e.default)("ForXStatement", m, {
        left: y
      }) && y.declarations.length !== 1)
        throw new TypeError("Exactly one VariableDeclarator is required in the VariableDeclaration of a ".concat(m.type));
    }
  }), a("VariableDeclarator", {
    visitor: ["id", "init"],
    fields: {
      id: {
        validate: function() {
          if (!process.env.BABEL_TYPES_8_BREAKING)
            return (0, s.assertNodeType)("LVal");
          const m = (0, s.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern"), g = (0, s.assertNodeType)("Identifier");
          return function(y, v, T) {
            (y.init ? m : g)(y, v, T);
          };
        }()
      },
      definite: {
        optional: !0,
        validate: (0, s.assertValueType)("boolean")
      },
      init: {
        optional: !0,
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("WhileStatement", {
    visitor: ["test", "body"],
    aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"],
    fields: {
      test: {
        validate: (0, s.assertNodeType)("Expression")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  }), a("WithStatement", {
    visitor: ["object", "body"],
    aliases: ["Statement"],
    fields: {
      object: {
        validate: (0, s.assertNodeType)("Expression")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  }), a("AssignmentPattern", {
    visitor: ["left", "right", "decorators"],
    builder: ["left", "right"],
    aliases: ["Pattern", "PatternLike", "LVal"],
    fields: Object.assign({}, c(), {
      left: {
        validate: (0, s.assertNodeType)("Identifier", "ObjectPattern", "ArrayPattern", "MemberExpression", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression")
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      }
    })
  }), a("ArrayPattern", {
    visitor: ["elements", "typeAnnotation"],
    builder: ["elements"],
    aliases: ["Pattern", "PatternLike", "LVal"],
    fields: Object.assign({}, c(), {
      elements: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeOrValueType)("null", "PatternLike", "LVal")))
      }
    })
  }), a("ArrowFunctionExpression", {
    builder: ["params", "body", "async"],
    visitor: ["params", "body", "returnType", "typeParameters"],
    aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"],
    fields: Object.assign({}, o(), l(), {
      expression: {
        validate: (0, s.assertValueType)("boolean")
      },
      body: {
        validate: (0, s.assertNodeType)("BlockStatement", "Expression")
      },
      predicate: {
        validate: (0, s.assertNodeType)("DeclaredPredicate", "InferredPredicate"),
        optional: !0
      }
    })
  }), a("ClassBody", {
    visitor: ["body"],
    fields: {
      body: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ClassMethod", "ClassPrivateMethod", "ClassProperty", "ClassPrivateProperty", "ClassAccessorProperty", "TSDeclareMethod", "TSIndexSignature", "StaticBlock")))
      }
    }
  }), a("ClassExpression", {
    builder: ["id", "superClass", "body", "decorators"],
    visitor: ["id", "body", "superClass", "mixins", "typeParameters", "superTypeParameters", "implements", "decorators"],
    aliases: ["Scopable", "Class", "Expression"],
    fields: {
      id: {
        validate: (0, s.assertNodeType)("Identifier"),
        optional: !0
      },
      typeParameters: {
        validate: (0, s.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("ClassBody")
      },
      superClass: {
        optional: !0,
        validate: (0, s.assertNodeType)("Expression")
      },
      superTypeParameters: {
        validate: (0, s.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      },
      implements: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("TSExpressionWithTypeArguments", "ClassImplements"))),
        optional: !0
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      },
      mixins: {
        validate: (0, s.assertNodeType)("InterfaceExtends"),
        optional: !0
      }
    }
  }), a("ClassDeclaration", {
    inherits: "ClassExpression",
    aliases: ["Scopable", "Class", "Statement", "Declaration"],
    fields: {
      id: {
        validate: (0, s.assertNodeType)("Identifier"),
        optional: !0
      },
      typeParameters: {
        validate: (0, s.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("ClassBody")
      },
      superClass: {
        optional: !0,
        validate: (0, s.assertNodeType)("Expression")
      },
      superTypeParameters: {
        validate: (0, s.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      },
      implements: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("TSExpressionWithTypeArguments", "ClassImplements"))),
        optional: !0
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      },
      mixins: {
        validate: (0, s.assertNodeType)("InterfaceExtends"),
        optional: !0
      },
      declare: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      abstract: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      }
    },
    validate: function() {
      const m = (0, s.assertNodeType)("Identifier");
      return function(g, y, v) {
        process.env.BABEL_TYPES_8_BREAKING && ((0, e.default)("ExportDefaultDeclaration", g) || m(v, "id", v.id));
      };
    }()
  }), a("ExportAllDeclaration", {
    builder: ["source"],
    visitor: ["source", "attributes", "assertions"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration", "ExportDeclaration"],
    fields: {
      source: {
        validate: (0, s.assertNodeType)("StringLiteral")
      },
      exportKind: (0, s.validateOptional)((0, s.assertOneOf)("type", "value")),
      attributes: {
        optional: !0,
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ImportAttribute")))
      },
      assertions: {
        optional: !0,
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ImportAttribute")))
      }
    }
  }), a("ExportDefaultDeclaration", {
    visitor: ["declaration"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration", "ExportDeclaration"],
    fields: {
      declaration: {
        validate: (0, s.assertNodeType)("TSDeclareFunction", "FunctionDeclaration", "ClassDeclaration", "Expression")
      },
      exportKind: (0, s.validateOptional)((0, s.assertOneOf)("value"))
    }
  }), a("ExportNamedDeclaration", {
    builder: ["declaration", "specifiers", "source"],
    visitor: ["declaration", "specifiers", "source", "attributes", "assertions"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration", "ExportDeclaration"],
    fields: {
      declaration: {
        optional: !0,
        validate: (0, s.chain)((0, s.assertNodeType)("Declaration"), Object.assign(function(m, g, y) {
          if (process.env.BABEL_TYPES_8_BREAKING && y && m.specifiers.length)
            throw new TypeError("Only declaration or specifiers is allowed on ExportNamedDeclaration");
        }, {
          oneOfNodeTypes: ["Declaration"]
        }), function(m, g, y) {
          if (process.env.BABEL_TYPES_8_BREAKING && y && m.source)
            throw new TypeError("Cannot export a declaration from a source");
        })
      },
      attributes: {
        optional: !0,
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ImportAttribute")))
      },
      assertions: {
        optional: !0,
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ImportAttribute")))
      },
      specifiers: {
        default: [],
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)(function() {
          const m = (0, s.assertNodeType)("ExportSpecifier", "ExportDefaultSpecifier", "ExportNamespaceSpecifier"), g = (0, s.assertNodeType)("ExportSpecifier");
          return process.env.BABEL_TYPES_8_BREAKING ? function(y, v, T) {
            (y.source ? m : g)(y, v, T);
          } : m;
        }()))
      },
      source: {
        validate: (0, s.assertNodeType)("StringLiteral"),
        optional: !0
      },
      exportKind: (0, s.validateOptional)((0, s.assertOneOf)("type", "value"))
    }
  }), a("ExportSpecifier", {
    visitor: ["local", "exported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, s.assertNodeType)("Identifier")
      },
      exported: {
        validate: (0, s.assertNodeType)("Identifier", "StringLiteral")
      },
      exportKind: {
        validate: (0, s.assertOneOf)("type", "value"),
        optional: !0
      }
    }
  }), a("ForOfStatement", {
    visitor: ["left", "right", "body"],
    builder: ["left", "right", "body", "await"],
    aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"],
    fields: {
      left: {
        validate: function() {
          if (!process.env.BABEL_TYPES_8_BREAKING)
            return (0, s.assertNodeType)("VariableDeclaration", "LVal");
          const m = (0, s.assertNodeType)("VariableDeclaration"), g = (0, s.assertNodeType)("Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression");
          return function(y, v, T) {
            (0, e.default)("VariableDeclaration", T) ? m(y, v, T) : g(y, v, T);
          };
        }()
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      },
      await: {
        default: !1
      }
    }
  }), a("ImportDeclaration", {
    builder: ["specifiers", "source"],
    visitor: ["specifiers", "source", "attributes", "assertions"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration"],
    fields: {
      attributes: {
        optional: !0,
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ImportAttribute")))
      },
      assertions: {
        optional: !0,
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ImportAttribute")))
      },
      module: {
        optional: !0,
        validate: (0, s.assertValueType)("boolean")
      },
      phase: {
        default: null,
        validate: (0, s.assertOneOf)("source", "defer")
      },
      specifiers: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ImportSpecifier", "ImportDefaultSpecifier", "ImportNamespaceSpecifier")))
      },
      source: {
        validate: (0, s.assertNodeType)("StringLiteral")
      },
      importKind: {
        validate: (0, s.assertOneOf)("type", "typeof", "value"),
        optional: !0
      }
    }
  }), a("ImportDefaultSpecifier", {
    visitor: ["local"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, s.assertNodeType)("Identifier")
      }
    }
  }), a("ImportNamespaceSpecifier", {
    visitor: ["local"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, s.assertNodeType)("Identifier")
      }
    }
  }), a("ImportSpecifier", {
    visitor: ["local", "imported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, s.assertNodeType)("Identifier")
      },
      imported: {
        validate: (0, s.assertNodeType)("Identifier", "StringLiteral")
      },
      importKind: {
        validate: (0, s.assertOneOf)("type", "typeof", "value"),
        optional: !0
      }
    }
  }), a("ImportExpression", {
    visitor: ["source", "options"],
    aliases: ["Expression"],
    fields: {
      phase: {
        default: null,
        validate: (0, s.assertOneOf)("source", "defer")
      },
      source: {
        validate: (0, s.assertNodeType)("Expression")
      },
      options: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      }
    }
  }), a("MetaProperty", {
    visitor: ["meta", "property"],
    aliases: ["Expression"],
    fields: {
      meta: {
        validate: (0, s.chain)((0, s.assertNodeType)("Identifier"), Object.assign(function(m, g, y) {
          if (!process.env.BABEL_TYPES_8_BREAKING)
            return;
          let v;
          switch (y.name) {
            case "function":
              v = "sent";
              break;
            case "new":
              v = "target";
              break;
            case "import":
              v = "meta";
              break;
          }
          if (!(0, e.default)("Identifier", m.property, {
            name: v
          }))
            throw new TypeError("Unrecognised MetaProperty");
        }, {
          oneOfNodeTypes: ["Identifier"]
        }))
      },
      property: {
        validate: (0, s.assertNodeType)("Identifier")
      }
    }
  });
  const f = () => ({
    abstract: {
      validate: (0, s.assertValueType)("boolean"),
      optional: !0
    },
    accessibility: {
      validate: (0, s.assertOneOf)("public", "private", "protected"),
      optional: !0
    },
    static: {
      default: !1
    },
    override: {
      default: !1
    },
    computed: {
      default: !1
    },
    optional: {
      validate: (0, s.assertValueType)("boolean"),
      optional: !0
    },
    key: {
      validate: (0, s.chain)(function() {
        const m = (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"), g = (0, s.assertNodeType)("Expression");
        return function(y, v, T) {
          (y.computed ? g : m)(y, v, T);
        };
      }(), (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "Expression"))
    }
  });
  Xs.classMethodOrPropertyCommon = f;
  const h = () => Object.assign({}, o(), f(), {
    params: {
      validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Identifier", "Pattern", "RestElement", "TSParameterProperty")))
    },
    kind: {
      validate: (0, s.assertOneOf)("get", "set", "method", "constructor"),
      default: "method"
    },
    access: {
      validate: (0, s.chain)((0, s.assertValueType)("string"), (0, s.assertOneOf)("public", "private", "protected")),
      optional: !0
    },
    decorators: {
      validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
      optional: !0
    }
  });
  return Xs.classMethodOrDeclareMethodCommon = h, a("ClassMethod", {
    aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method"],
    builder: ["kind", "key", "params", "body", "computed", "static", "generator", "async"],
    visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"],
    fields: Object.assign({}, h(), l(), {
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      }
    })
  }), a("ObjectPattern", {
    visitor: ["properties", "typeAnnotation", "decorators"],
    builder: ["properties"],
    aliases: ["Pattern", "PatternLike", "LVal"],
    fields: Object.assign({}, c(), {
      properties: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("RestElement", "ObjectProperty")))
      }
    })
  }), a("SpreadElement", {
    visitor: ["argument"],
    aliases: ["UnaryLike"],
    deprecatedAlias: "SpreadProperty",
    fields: {
      argument: {
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("Super", {
    aliases: ["Expression"]
  }), a("TaggedTemplateExpression", {
    visitor: ["tag", "quasi", "typeParameters"],
    builder: ["tag", "quasi"],
    aliases: ["Expression"],
    fields: {
      tag: {
        validate: (0, s.assertNodeType)("Expression")
      },
      quasi: {
        validate: (0, s.assertNodeType)("TemplateLiteral")
      },
      typeParameters: {
        validate: (0, s.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      }
    }
  }), a("TemplateElement", {
    builder: ["value", "tail"],
    fields: {
      value: {
        validate: (0, s.chain)((0, s.assertShape)({
          raw: {
            validate: (0, s.assertValueType)("string")
          },
          cooked: {
            validate: (0, s.assertValueType)("string"),
            optional: !0
          }
        }), function(g) {
          const y = g.value.raw;
          let v = !1;
          const T = () => {
            throw new Error("Internal @babel/types error.");
          }, {
            str: S,
            firstInvalidLoc: P
          } = (0, i.readStringContents)("template", y, 0, 0, 0, {
            unterminated() {
              v = !0;
            },
            strictNumericEscape: T,
            invalidEscapeSequence: T,
            numericSeparatorInEscapeSequence: T,
            unexpectedNumericSeparator: T,
            invalidDigit: T,
            invalidCodePoint: T
          });
          if (!v)
            throw new Error("Invalid raw");
          g.value.cooked = P ? null : S;
        })
      },
      tail: {
        default: !1
      }
    }
  }), a("TemplateLiteral", {
    visitor: ["quasis", "expressions"],
    aliases: ["Expression", "Literal"],
    fields: {
      quasis: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("TemplateElement")))
      },
      expressions: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Expression", "TSType")), function(m, g, y) {
          if (m.quasis.length !== y.length + 1)
            throw new TypeError("Number of ".concat(m.type, " quasis should be exactly one more than the number of expressions.\nExpected ").concat(y.length + 1, " quasis but got ").concat(m.quasis.length));
        })
      }
    }
  }), a("YieldExpression", {
    builder: ["argument", "delegate"],
    visitor: ["argument"],
    aliases: ["Expression", "Terminatorless"],
    fields: {
      delegate: {
        validate: (0, s.chain)((0, s.assertValueType)("boolean"), Object.assign(function(m, g, y) {
          if (process.env.BABEL_TYPES_8_BREAKING && y && !m.argument)
            throw new TypeError("Property delegate of YieldExpression cannot be true if there is no argument");
        }, {
          type: "boolean"
        })),
        default: !1
      },
      argument: {
        optional: !0,
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("AwaitExpression", {
    builder: ["argument"],
    visitor: ["argument"],
    aliases: ["Expression", "Terminatorless"],
    fields: {
      argument: {
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("Import", {
    aliases: ["Expression"]
  }), a("BigIntLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, s.assertValueType)("string")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), a("ExportNamespaceSpecifier", {
    visitor: ["exported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      exported: {
        validate: (0, s.assertNodeType)("Identifier")
      }
    }
  }), a("OptionalMemberExpression", {
    builder: ["object", "property", "computed", "optional"],
    visitor: ["object", "property"],
    aliases: ["Expression"],
    fields: {
      object: {
        validate: (0, s.assertNodeType)("Expression")
      },
      property: {
        validate: function() {
          const m = (0, s.assertNodeType)("Identifier"), g = (0, s.assertNodeType)("Expression");
          return Object.assign(function(v, T, S) {
            (v.computed ? g : m)(v, T, S);
          }, {
            oneOfNodeTypes: ["Expression", "Identifier"]
          });
        }()
      },
      computed: {
        default: !1
      },
      optional: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.chain)((0, s.assertValueType)("boolean"), (0, s.assertOptionalChainStart)()) : (0, s.assertValueType)("boolean")
      }
    }
  }), a("OptionalCallExpression", {
    visitor: ["callee", "arguments", "typeParameters", "typeArguments"],
    builder: ["callee", "arguments", "optional"],
    aliases: ["Expression"],
    fields: {
      callee: {
        validate: (0, s.assertNodeType)("Expression")
      },
      arguments: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Expression", "SpreadElement", "ArgumentPlaceholder")))
      },
      optional: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.chain)((0, s.assertValueType)("boolean"), (0, s.assertOptionalChainStart)()) : (0, s.assertValueType)("boolean")
      },
      typeArguments: {
        validate: (0, s.assertNodeType)("TypeParameterInstantiation"),
        optional: !0
      },
      typeParameters: {
        validate: (0, s.assertNodeType)("TSTypeParameterInstantiation"),
        optional: !0
      }
    }
  }), a("ClassProperty", {
    visitor: ["key", "value", "typeAnnotation", "decorators"],
    builder: ["key", "value", "typeAnnotation", "decorators", "computed", "static"],
    aliases: ["Property"],
    fields: Object.assign({}, f(), {
      value: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      definite: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      typeAnnotation: {
        validate: (0, s.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
        optional: !0
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      },
      readonly: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      declare: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      variance: {
        validate: (0, s.assertNodeType)("Variance"),
        optional: !0
      }
    })
  }), a("ClassAccessorProperty", {
    visitor: ["key", "value", "typeAnnotation", "decorators"],
    builder: ["key", "value", "typeAnnotation", "decorators", "computed", "static"],
    aliases: ["Property", "Accessor"],
    fields: Object.assign({}, f(), {
      key: {
        validate: (0, s.chain)(function() {
          const m = (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "PrivateName"), g = (0, s.assertNodeType)("Expression");
          return function(y, v, T) {
            (y.computed ? g : m)(y, v, T);
          };
        }(), (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "Expression", "PrivateName"))
      },
      value: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      definite: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      typeAnnotation: {
        validate: (0, s.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
        optional: !0
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      },
      readonly: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      declare: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      variance: {
        validate: (0, s.assertNodeType)("Variance"),
        optional: !0
      }
    })
  }), a("ClassPrivateProperty", {
    visitor: ["key", "value", "decorators", "typeAnnotation"],
    builder: ["key", "value", "decorators", "static"],
    aliases: ["Property", "Private"],
    fields: {
      key: {
        validate: (0, s.assertNodeType)("PrivateName")
      },
      value: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      typeAnnotation: {
        validate: (0, s.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
        optional: !0
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      },
      static: {
        validate: (0, s.assertValueType)("boolean"),
        default: !1
      },
      readonly: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      definite: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      variance: {
        validate: (0, s.assertNodeType)("Variance"),
        optional: !0
      }
    }
  }), a("ClassPrivateMethod", {
    builder: ["kind", "key", "params", "body", "static"],
    visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"],
    aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method", "Private"],
    fields: Object.assign({}, h(), l(), {
      kind: {
        validate: (0, s.assertOneOf)("get", "set", "method"),
        default: "method"
      },
      key: {
        validate: (0, s.assertNodeType)("PrivateName")
      },
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      }
    })
  }), a("PrivateName", {
    visitor: ["id"],
    aliases: ["Private"],
    fields: {
      id: {
        validate: (0, s.assertNodeType)("Identifier")
      }
    }
  }), a("StaticBlock", {
    visitor: ["body"],
    fields: {
      body: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Statement")))
      }
    },
    aliases: ["Scopable", "BlockParent", "FunctionParent"]
  }), Xs;
}
var gH = {}, bH;
function fWe() {
  if (bH)
    return gH;
  bH = 1;
  var e = Wh();
  const t = (0, e.defineAliasedType)("Flow"), r = (i) => {
    const n = i === "DeclareClass";
    t(i, {
      builder: ["id", "typeParameters", "extends", "body"],
      visitor: ["id", "typeParameters", "extends", ...n ? ["mixins", "implements"] : [], "body"],
      aliases: ["FlowDeclaration", "Statement", "Declaration"],
      fields: Object.assign({
        id: (0, e.validateType)("Identifier"),
        typeParameters: (0, e.validateOptionalType)("TypeParameterDeclaration"),
        extends: (0, e.validateOptional)((0, e.arrayOfType)("InterfaceExtends"))
      }, n ? {
        mixins: (0, e.validateOptional)((0, e.arrayOfType)("InterfaceExtends")),
        implements: (0, e.validateOptional)((0, e.arrayOfType)("ClassImplements"))
      } : {}, {
        body: (0, e.validateType)("ObjectTypeAnnotation")
      })
    });
  };
  return t("AnyTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("ArrayTypeAnnotation", {
    visitor: ["elementType"],
    aliases: ["FlowType"],
    fields: {
      elementType: (0, e.validateType)("FlowType")
    }
  }), t("BooleanTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("BooleanLiteralTypeAnnotation", {
    builder: ["value"],
    aliases: ["FlowType"],
    fields: {
      value: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("NullLiteralTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("ClassImplements", {
    visitor: ["id", "typeParameters"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      typeParameters: (0, e.validateOptionalType)("TypeParameterInstantiation")
    }
  }), r("DeclareClass"), t("DeclareFunction", {
    visitor: ["id"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      predicate: (0, e.validateOptionalType)("DeclaredPredicate")
    }
  }), r("DeclareInterface"), t("DeclareModule", {
    builder: ["id", "body", "kind"],
    visitor: ["id", "body"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, e.validateType)(["Identifier", "StringLiteral"]),
      body: (0, e.validateType)("BlockStatement"),
      kind: (0, e.validateOptional)((0, e.assertOneOf)("CommonJS", "ES"))
    }
  }), t("DeclareModuleExports", {
    visitor: ["typeAnnotation"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      typeAnnotation: (0, e.validateType)("TypeAnnotation")
    }
  }), t("DeclareTypeAlias", {
    visitor: ["id", "typeParameters", "right"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      typeParameters: (0, e.validateOptionalType)("TypeParameterDeclaration"),
      right: (0, e.validateType)("FlowType")
    }
  }), t("DeclareOpaqueType", {
    visitor: ["id", "typeParameters", "supertype"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      typeParameters: (0, e.validateOptionalType)("TypeParameterDeclaration"),
      supertype: (0, e.validateOptionalType)("FlowType"),
      impltype: (0, e.validateOptionalType)("FlowType")
    }
  }), t("DeclareVariable", {
    visitor: ["id"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, e.validateType)("Identifier")
    }
  }), t("DeclareExportDeclaration", {
    visitor: ["declaration", "specifiers", "source"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      declaration: (0, e.validateOptionalType)("Flow"),
      specifiers: (0, e.validateOptional)((0, e.arrayOfType)(["ExportSpecifier", "ExportNamespaceSpecifier"])),
      source: (0, e.validateOptionalType)("StringLiteral"),
      default: (0, e.validateOptional)((0, e.assertValueType)("boolean"))
    }
  }), t("DeclareExportAllDeclaration", {
    visitor: ["source"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      source: (0, e.validateType)("StringLiteral"),
      exportKind: (0, e.validateOptional)((0, e.assertOneOf)("type", "value"))
    }
  }), t("DeclaredPredicate", {
    visitor: ["value"],
    aliases: ["FlowPredicate"],
    fields: {
      value: (0, e.validateType)("Flow")
    }
  }), t("ExistsTypeAnnotation", {
    aliases: ["FlowType"]
  }), t("FunctionTypeAnnotation", {
    visitor: ["typeParameters", "params", "rest", "returnType"],
    aliases: ["FlowType"],
    fields: {
      typeParameters: (0, e.validateOptionalType)("TypeParameterDeclaration"),
      params: (0, e.validate)((0, e.arrayOfType)("FunctionTypeParam")),
      rest: (0, e.validateOptionalType)("FunctionTypeParam"),
      this: (0, e.validateOptionalType)("FunctionTypeParam"),
      returnType: (0, e.validateType)("FlowType")
    }
  }), t("FunctionTypeParam", {
    visitor: ["name", "typeAnnotation"],
    fields: {
      name: (0, e.validateOptionalType)("Identifier"),
      typeAnnotation: (0, e.validateType)("FlowType"),
      optional: (0, e.validateOptional)((0, e.assertValueType)("boolean"))
    }
  }), t("GenericTypeAnnotation", {
    visitor: ["id", "typeParameters"],
    aliases: ["FlowType"],
    fields: {
      id: (0, e.validateType)(["Identifier", "QualifiedTypeIdentifier"]),
      typeParameters: (0, e.validateOptionalType)("TypeParameterInstantiation")
    }
  }), t("InferredPredicate", {
    aliases: ["FlowPredicate"]
  }), t("InterfaceExtends", {
    visitor: ["id", "typeParameters"],
    fields: {
      id: (0, e.validateType)(["Identifier", "QualifiedTypeIdentifier"]),
      typeParameters: (0, e.validateOptionalType)("TypeParameterInstantiation")
    }
  }), r("InterfaceDeclaration"), t("InterfaceTypeAnnotation", {
    visitor: ["extends", "body"],
    aliases: ["FlowType"],
    fields: {
      extends: (0, e.validateOptional)((0, e.arrayOfType)("InterfaceExtends")),
      body: (0, e.validateType)("ObjectTypeAnnotation")
    }
  }), t("IntersectionTypeAnnotation", {
    visitor: ["types"],
    aliases: ["FlowType"],
    fields: {
      types: (0, e.validate)((0, e.arrayOfType)("FlowType"))
    }
  }), t("MixedTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("EmptyTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("NullableTypeAnnotation", {
    visitor: ["typeAnnotation"],
    aliases: ["FlowType"],
    fields: {
      typeAnnotation: (0, e.validateType)("FlowType")
    }
  }), t("NumberLiteralTypeAnnotation", {
    builder: ["value"],
    aliases: ["FlowType"],
    fields: {
      value: (0, e.validate)((0, e.assertValueType)("number"))
    }
  }), t("NumberTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("ObjectTypeAnnotation", {
    visitor: ["properties", "indexers", "callProperties", "internalSlots"],
    aliases: ["FlowType"],
    builder: ["properties", "indexers", "callProperties", "internalSlots", "exact"],
    fields: {
      properties: (0, e.validate)((0, e.arrayOfType)(["ObjectTypeProperty", "ObjectTypeSpreadProperty"])),
      indexers: {
        validate: (0, e.arrayOfType)("ObjectTypeIndexer"),
        optional: !0,
        default: []
      },
      callProperties: {
        validate: (0, e.arrayOfType)("ObjectTypeCallProperty"),
        optional: !0,
        default: []
      },
      internalSlots: {
        validate: (0, e.arrayOfType)("ObjectTypeInternalSlot"),
        optional: !0,
        default: []
      },
      exact: {
        validate: (0, e.assertValueType)("boolean"),
        default: !1
      },
      inexact: (0, e.validateOptional)((0, e.assertValueType)("boolean"))
    }
  }), t("ObjectTypeInternalSlot", {
    visitor: ["id", "value", "optional", "static", "method"],
    aliases: ["UserWhitespacable"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      value: (0, e.validateType)("FlowType"),
      optional: (0, e.validate)((0, e.assertValueType)("boolean")),
      static: (0, e.validate)((0, e.assertValueType)("boolean")),
      method: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("ObjectTypeCallProperty", {
    visitor: ["value"],
    aliases: ["UserWhitespacable"],
    fields: {
      value: (0, e.validateType)("FlowType"),
      static: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("ObjectTypeIndexer", {
    visitor: ["id", "key", "value", "variance"],
    aliases: ["UserWhitespacable"],
    fields: {
      id: (0, e.validateOptionalType)("Identifier"),
      key: (0, e.validateType)("FlowType"),
      value: (0, e.validateType)("FlowType"),
      static: (0, e.validate)((0, e.assertValueType)("boolean")),
      variance: (0, e.validateOptionalType)("Variance")
    }
  }), t("ObjectTypeProperty", {
    visitor: ["key", "value", "variance"],
    aliases: ["UserWhitespacable"],
    fields: {
      key: (0, e.validateType)(["Identifier", "StringLiteral"]),
      value: (0, e.validateType)("FlowType"),
      kind: (0, e.validate)((0, e.assertOneOf)("init", "get", "set")),
      static: (0, e.validate)((0, e.assertValueType)("boolean")),
      proto: (0, e.validate)((0, e.assertValueType)("boolean")),
      optional: (0, e.validate)((0, e.assertValueType)("boolean")),
      variance: (0, e.validateOptionalType)("Variance"),
      method: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("ObjectTypeSpreadProperty", {
    visitor: ["argument"],
    aliases: ["UserWhitespacable"],
    fields: {
      argument: (0, e.validateType)("FlowType")
    }
  }), t("OpaqueType", {
    visitor: ["id", "typeParameters", "supertype", "impltype"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      typeParameters: (0, e.validateOptionalType)("TypeParameterDeclaration"),
      supertype: (0, e.validateOptionalType)("FlowType"),
      impltype: (0, e.validateType)("FlowType")
    }
  }), t("QualifiedTypeIdentifier", {
    visitor: ["id", "qualification"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      qualification: (0, e.validateType)(["Identifier", "QualifiedTypeIdentifier"])
    }
  }), t("StringLiteralTypeAnnotation", {
    builder: ["value"],
    aliases: ["FlowType"],
    fields: {
      value: (0, e.validate)((0, e.assertValueType)("string"))
    }
  }), t("StringTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("SymbolTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("ThisTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("TupleTypeAnnotation", {
    visitor: ["types"],
    aliases: ["FlowType"],
    fields: {
      types: (0, e.validate)((0, e.arrayOfType)("FlowType"))
    }
  }), t("TypeofTypeAnnotation", {
    visitor: ["argument"],
    aliases: ["FlowType"],
    fields: {
      argument: (0, e.validateType)("FlowType")
    }
  }), t("TypeAlias", {
    visitor: ["id", "typeParameters", "right"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      typeParameters: (0, e.validateOptionalType)("TypeParameterDeclaration"),
      right: (0, e.validateType)("FlowType")
    }
  }), t("TypeAnnotation", {
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, e.validateType)("FlowType")
    }
  }), t("TypeCastExpression", {
    visitor: ["expression", "typeAnnotation"],
    aliases: ["ExpressionWrapper", "Expression"],
    fields: {
      expression: (0, e.validateType)("Expression"),
      typeAnnotation: (0, e.validateType)("TypeAnnotation")
    }
  }), t("TypeParameter", {
    visitor: ["bound", "default", "variance"],
    fields: {
      name: (0, e.validate)((0, e.assertValueType)("string")),
      bound: (0, e.validateOptionalType)("TypeAnnotation"),
      default: (0, e.validateOptionalType)("FlowType"),
      variance: (0, e.validateOptionalType)("Variance")
    }
  }), t("TypeParameterDeclaration", {
    visitor: ["params"],
    fields: {
      params: (0, e.validate)((0, e.arrayOfType)("TypeParameter"))
    }
  }), t("TypeParameterInstantiation", {
    visitor: ["params"],
    fields: {
      params: (0, e.validate)((0, e.arrayOfType)("FlowType"))
    }
  }), t("UnionTypeAnnotation", {
    visitor: ["types"],
    aliases: ["FlowType"],
    fields: {
      types: (0, e.validate)((0, e.arrayOfType)("FlowType"))
    }
  }), t("Variance", {
    builder: ["kind"],
    fields: {
      kind: (0, e.validate)((0, e.assertOneOf)("minus", "plus"))
    }
  }), t("VoidTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("EnumDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "body"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      body: (0, e.validateType)(["EnumBooleanBody", "EnumNumberBody", "EnumStringBody", "EnumSymbolBody"])
    }
  }), t("EnumBooleanBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      explicitType: (0, e.validate)((0, e.assertValueType)("boolean")),
      members: (0, e.validateArrayOfType)("EnumBooleanMember"),
      hasUnknownMembers: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("EnumNumberBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      explicitType: (0, e.validate)((0, e.assertValueType)("boolean")),
      members: (0, e.validateArrayOfType)("EnumNumberMember"),
      hasUnknownMembers: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("EnumStringBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      explicitType: (0, e.validate)((0, e.assertValueType)("boolean")),
      members: (0, e.validateArrayOfType)(["EnumStringMember", "EnumDefaultedMember"]),
      hasUnknownMembers: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("EnumSymbolBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      members: (0, e.validateArrayOfType)("EnumDefaultedMember"),
      hasUnknownMembers: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("EnumBooleanMember", {
    aliases: ["EnumMember"],
    visitor: ["id"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      init: (0, e.validateType)("BooleanLiteral")
    }
  }), t("EnumNumberMember", {
    aliases: ["EnumMember"],
    visitor: ["id", "init"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      init: (0, e.validateType)("NumericLiteral")
    }
  }), t("EnumStringMember", {
    aliases: ["EnumMember"],
    visitor: ["id", "init"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      init: (0, e.validateType)("StringLiteral")
    }
  }), t("EnumDefaultedMember", {
    aliases: ["EnumMember"],
    visitor: ["id"],
    fields: {
      id: (0, e.validateType)("Identifier")
    }
  }), t("IndexedAccessType", {
    visitor: ["objectType", "indexType"],
    aliases: ["FlowType"],
    fields: {
      objectType: (0, e.validateType)("FlowType"),
      indexType: (0, e.validateType)("FlowType")
    }
  }), t("OptionalIndexedAccessType", {
    visitor: ["objectType", "indexType"],
    aliases: ["FlowType"],
    fields: {
      objectType: (0, e.validateType)("FlowType"),
      indexType: (0, e.validateType)("FlowType"),
      optional: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), gH;
}
var vH = {}, TH;
function hWe() {
  if (TH)
    return vH;
  TH = 1;
  var e = Wh();
  const t = (0, e.defineAliasedType)("JSX");
  return t("JSXAttribute", {
    visitor: ["name", "value"],
    aliases: ["Immutable"],
    fields: {
      name: {
        validate: (0, e.assertNodeType)("JSXIdentifier", "JSXNamespacedName")
      },
      value: {
        optional: !0,
        validate: (0, e.assertNodeType)("JSXElement", "JSXFragment", "StringLiteral", "JSXExpressionContainer")
      }
    }
  }), t("JSXClosingElement", {
    visitor: ["name"],
    aliases: ["Immutable"],
    fields: {
      name: {
        validate: (0, e.assertNodeType)("JSXIdentifier", "JSXMemberExpression", "JSXNamespacedName")
      }
    }
  }), t("JSXElement", {
    builder: ["openingElement", "closingElement", "children", "selfClosing"],
    visitor: ["openingElement", "children", "closingElement"],
    aliases: ["Immutable", "Expression"],
    fields: Object.assign({
      openingElement: {
        validate: (0, e.assertNodeType)("JSXOpeningElement")
      },
      closingElement: {
        optional: !0,
        validate: (0, e.assertNodeType)("JSXClosingElement")
      },
      children: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("JSXText", "JSXExpressionContainer", "JSXSpreadChild", "JSXElement", "JSXFragment")))
      }
    }, {
      selfClosing: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      }
    })
  }), t("JSXEmptyExpression", {}), t("JSXExpressionContainer", {
    visitor: ["expression"],
    aliases: ["Immutable"],
    fields: {
      expression: {
        validate: (0, e.assertNodeType)("Expression", "JSXEmptyExpression")
      }
    }
  }), t("JSXSpreadChild", {
    visitor: ["expression"],
    aliases: ["Immutable"],
    fields: {
      expression: {
        validate: (0, e.assertNodeType)("Expression")
      }
    }
  }), t("JSXIdentifier", {
    builder: ["name"],
    fields: {
      name: {
        validate: (0, e.assertValueType)("string")
      }
    }
  }), t("JSXMemberExpression", {
    visitor: ["object", "property"],
    fields: {
      object: {
        validate: (0, e.assertNodeType)("JSXMemberExpression", "JSXIdentifier")
      },
      property: {
        validate: (0, e.assertNodeType)("JSXIdentifier")
      }
    }
  }), t("JSXNamespacedName", {
    visitor: ["namespace", "name"],
    fields: {
      namespace: {
        validate: (0, e.assertNodeType)("JSXIdentifier")
      },
      name: {
        validate: (0, e.assertNodeType)("JSXIdentifier")
      }
    }
  }), t("JSXOpeningElement", {
    builder: ["name", "attributes", "selfClosing"],
    visitor: ["name", "attributes"],
    aliases: ["Immutable"],
    fields: {
      name: {
        validate: (0, e.assertNodeType)("JSXIdentifier", "JSXMemberExpression", "JSXNamespacedName")
      },
      selfClosing: {
        default: !1
      },
      attributes: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("JSXAttribute", "JSXSpreadAttribute")))
      },
      typeParameters: {
        validate: (0, e.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      }
    }
  }), t("JSXSpreadAttribute", {
    visitor: ["argument"],
    fields: {
      argument: {
        validate: (0, e.assertNodeType)("Expression")
      }
    }
  }), t("JSXText", {
    aliases: ["Immutable"],
    builder: ["value"],
    fields: {
      value: {
        validate: (0, e.assertValueType)("string")
      }
    }
  }), t("JSXFragment", {
    builder: ["openingFragment", "closingFragment", "children"],
    visitor: ["openingFragment", "children", "closingFragment"],
    aliases: ["Immutable", "Expression"],
    fields: {
      openingFragment: {
        validate: (0, e.assertNodeType)("JSXOpeningFragment")
      },
      closingFragment: {
        validate: (0, e.assertNodeType)("JSXClosingFragment")
      },
      children: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("JSXText", "JSXExpressionContainer", "JSXSpreadChild", "JSXElement", "JSXFragment")))
      }
    }
  }), t("JSXOpeningFragment", {
    aliases: ["Immutable"]
  }), t("JSXClosingFragment", {
    aliases: ["Immutable"]
  }), vH;
}
var SH = {}, Ip = {}, xH;
function afe() {
  if (xH)
    return Ip;
  xH = 1, Object.defineProperty(Ip, "__esModule", {
    value: !0
  }), Ip.PLACEHOLDERS_FLIPPED_ALIAS = Ip.PLACEHOLDERS_ALIAS = Ip.PLACEHOLDERS = void 0;
  var e = Wh();
  const t = Ip.PLACEHOLDERS = ["Identifier", "StringLiteral", "Expression", "Statement", "Declaration", "BlockStatement", "ClassBody", "Pattern"], r = Ip.PLACEHOLDERS_ALIAS = {
    Declaration: ["Statement"],
    Pattern: ["PatternLike", "LVal"]
  };
  for (const n of t) {
    const s = e.ALIAS_KEYS[n];
    s != null && s.length && (r[n] = s);
  }
  const i = Ip.PLACEHOLDERS_FLIPPED_ALIAS = {};
  return Object.keys(r).forEach((n) => {
    r[n].forEach((s) => {
      hasOwnProperty.call(i, s) || (i[s] = []), i[s].push(n);
    });
  }), Ip;
}
var EH;
function dWe() {
  if (EH)
    return SH;
  EH = 1;
  var e = Wh(), t = afe();
  const r = (0, e.defineAliasedType)("Miscellaneous");
  return r("Noop", {
    visitor: []
  }), r("Placeholder", {
    visitor: [],
    builder: ["expectedNode", "name"],
    fields: {
      name: {
        validate: (0, e.assertNodeType)("Identifier")
      },
      expectedNode: {
        validate: (0, e.assertOneOf)(...t.PLACEHOLDERS)
      }
    }
  }), r("V8IntrinsicIdentifier", {
    builder: ["name"],
    fields: {
      name: {
        validate: (0, e.assertValueType)("string")
      }
    }
  }), SH;
}
var PH = {}, wH;
function mWe() {
  if (wH)
    return PH;
  wH = 1;
  var e = Wh();
  return (0, e.default)("ArgumentPlaceholder", {}), (0, e.default)("BindExpression", {
    visitor: ["object", "callee"],
    aliases: ["Expression"],
    fields: process.env.BABEL_TYPES_8_BREAKING ? {
      object: {
        validate: (0, e.assertNodeType)("Expression")
      },
      callee: {
        validate: (0, e.assertNodeType)("Expression")
      }
    } : {
      object: {
        validate: Object.assign(() => {
        }, {
          oneOfNodeTypes: ["Expression"]
        })
      },
      callee: {
        validate: Object.assign(() => {
        }, {
          oneOfNodeTypes: ["Expression"]
        })
      }
    }
  }), (0, e.default)("ImportAttribute", {
    visitor: ["key", "value"],
    fields: {
      key: {
        validate: (0, e.assertNodeType)("Identifier", "StringLiteral")
      },
      value: {
        validate: (0, e.assertNodeType)("StringLiteral")
      }
    }
  }), (0, e.default)("Decorator", {
    visitor: ["expression"],
    fields: {
      expression: {
        validate: (0, e.assertNodeType)("Expression")
      }
    }
  }), (0, e.default)("DoExpression", {
    visitor: ["body"],
    builder: ["body", "async"],
    aliases: ["Expression"],
    fields: {
      body: {
        validate: (0, e.assertNodeType)("BlockStatement")
      },
      async: {
        validate: (0, e.assertValueType)("boolean"),
        default: !1
      }
    }
  }), (0, e.default)("ExportDefaultSpecifier", {
    visitor: ["exported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      exported: {
        validate: (0, e.assertNodeType)("Identifier")
      }
    }
  }), (0, e.default)("RecordExpression", {
    visitor: ["properties"],
    aliases: ["Expression"],
    fields: {
      properties: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("ObjectProperty", "SpreadElement")))
      }
    }
  }), (0, e.default)("TupleExpression", {
    fields: {
      elements: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("Expression", "SpreadElement"))),
        default: []
      }
    },
    visitor: ["elements"],
    aliases: ["Expression"]
  }), (0, e.default)("DecimalLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, e.assertValueType)("string")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), (0, e.default)("ModuleExpression", {
    visitor: ["body"],
    fields: {
      body: {
        validate: (0, e.assertNodeType)("Program")
      }
    },
    aliases: ["Expression"]
  }), (0, e.default)("TopicReference", {
    aliases: ["Expression"]
  }), (0, e.default)("PipelineTopicExpression", {
    builder: ["expression"],
    visitor: ["expression"],
    fields: {
      expression: {
        validate: (0, e.assertNodeType)("Expression")
      }
    },
    aliases: ["Expression"]
  }), (0, e.default)("PipelineBareFunction", {
    builder: ["callee"],
    visitor: ["callee"],
    fields: {
      callee: {
        validate: (0, e.assertNodeType)("Expression")
      }
    },
    aliases: ["Expression"]
  }), (0, e.default)("PipelinePrimaryTopicReference", {
    aliases: ["Expression"]
  }), PH;
}
var AH = {}, CH;
function yWe() {
  if (CH)
    return AH;
  CH = 1;
  var e = Wh(), t = sfe(), r = jT();
  const i = (0, e.defineAliasedType)("TypeScript"), n = (0, e.assertValueType)("boolean"), s = () => ({
    returnType: {
      validate: (0, e.assertNodeType)("TSTypeAnnotation", "Noop"),
      optional: !0
    },
    typeParameters: {
      validate: (0, e.assertNodeType)("TSTypeParameterDeclaration", "Noop"),
      optional: !0
    }
  });
  i("TSParameterProperty", {
    aliases: ["LVal"],
    visitor: ["parameter"],
    fields: {
      accessibility: {
        validate: (0, e.assertOneOf)("public", "private", "protected"),
        optional: !0
      },
      readonly: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      },
      parameter: {
        validate: (0, e.assertNodeType)("Identifier", "AssignmentPattern")
      },
      override: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      },
      decorators: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("Decorator"))),
        optional: !0
      }
    }
  }), i("TSDeclareFunction", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "typeParameters", "params", "returnType"],
    fields: Object.assign({}, (0, t.functionDeclarationCommon)(), s())
  }), i("TSDeclareMethod", {
    visitor: ["decorators", "key", "typeParameters", "params", "returnType"],
    fields: Object.assign({}, (0, t.classMethodOrDeclareMethodCommon)(), s())
  }), i("TSQualifiedName", {
    aliases: ["TSEntityName"],
    visitor: ["left", "right"],
    fields: {
      left: (0, e.validateType)("TSEntityName"),
      right: (0, e.validateType)("Identifier")
    }
  });
  const a = () => ({
    typeParameters: (0, e.validateOptionalType)("TSTypeParameterDeclaration"),
    parameters: (0, e.validateArrayOfType)(["ArrayPattern", "Identifier", "ObjectPattern", "RestElement"]),
    typeAnnotation: (0, e.validateOptionalType)("TSTypeAnnotation")
  }), o = {
    aliases: ["TSTypeElement"],
    visitor: ["typeParameters", "parameters", "typeAnnotation"],
    fields: a()
  };
  i("TSCallSignatureDeclaration", o), i("TSConstructSignatureDeclaration", o);
  const l = () => ({
    key: (0, e.validateType)("Expression"),
    computed: {
      default: !1
    },
    optional: (0, e.validateOptional)(n)
  });
  i("TSPropertySignature", {
    aliases: ["TSTypeElement"],
    visitor: ["key", "typeAnnotation"],
    fields: Object.assign({}, l(), {
      readonly: (0, e.validateOptional)(n),
      typeAnnotation: (0, e.validateOptionalType)("TSTypeAnnotation"),
      kind: {
        validate: (0, e.assertOneOf)("get", "set")
      }
    })
  }), i("TSMethodSignature", {
    aliases: ["TSTypeElement"],
    visitor: ["key", "typeParameters", "parameters", "typeAnnotation"],
    fields: Object.assign({}, a(), l(), {
      kind: {
        validate: (0, e.assertOneOf)("method", "get", "set")
      }
    })
  }), i("TSIndexSignature", {
    aliases: ["TSTypeElement"],
    visitor: ["parameters", "typeAnnotation"],
    fields: {
      readonly: (0, e.validateOptional)(n),
      static: (0, e.validateOptional)(n),
      parameters: (0, e.validateArrayOfType)("Identifier"),
      typeAnnotation: (0, e.validateOptionalType)("TSTypeAnnotation")
    }
  });
  const u = ["TSAnyKeyword", "TSBooleanKeyword", "TSBigIntKeyword", "TSIntrinsicKeyword", "TSNeverKeyword", "TSNullKeyword", "TSNumberKeyword", "TSObjectKeyword", "TSStringKeyword", "TSSymbolKeyword", "TSUndefinedKeyword", "TSUnknownKeyword", "TSVoidKeyword"];
  for (const m of u)
    i(m, {
      aliases: ["TSType", "TSBaseType"],
      visitor: [],
      fields: {}
    });
  i("TSThisType", {
    aliases: ["TSType", "TSBaseType"],
    visitor: [],
    fields: {}
  });
  const c = {
    aliases: ["TSType"],
    visitor: ["typeParameters", "parameters", "typeAnnotation"]
  };
  i("TSFunctionType", Object.assign({}, c, {
    fields: a()
  })), i("TSConstructorType", Object.assign({}, c, {
    fields: Object.assign({}, a(), {
      abstract: (0, e.validateOptional)(n)
    })
  })), i("TSTypeReference", {
    aliases: ["TSType"],
    visitor: ["typeName", "typeParameters"],
    fields: {
      typeName: (0, e.validateType)("TSEntityName"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterInstantiation")
    }
  }), i("TSTypePredicate", {
    aliases: ["TSType"],
    visitor: ["parameterName", "typeAnnotation"],
    builder: ["parameterName", "typeAnnotation", "asserts"],
    fields: {
      parameterName: (0, e.validateType)(["Identifier", "TSThisType"]),
      typeAnnotation: (0, e.validateOptionalType)("TSTypeAnnotation"),
      asserts: (0, e.validateOptional)(n)
    }
  }), i("TSTypeQuery", {
    aliases: ["TSType"],
    visitor: ["exprName", "typeParameters"],
    fields: {
      exprName: (0, e.validateType)(["TSEntityName", "TSImportType"]),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterInstantiation")
    }
  }), i("TSTypeLiteral", {
    aliases: ["TSType"],
    visitor: ["members"],
    fields: {
      members: (0, e.validateArrayOfType)("TSTypeElement")
    }
  }), i("TSArrayType", {
    aliases: ["TSType"],
    visitor: ["elementType"],
    fields: {
      elementType: (0, e.validateType)("TSType")
    }
  }), i("TSTupleType", {
    aliases: ["TSType"],
    visitor: ["elementTypes"],
    fields: {
      elementTypes: (0, e.validateArrayOfType)(["TSType", "TSNamedTupleMember"])
    }
  }), i("TSOptionalType", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, e.validateType)("TSType")
    }
  }), i("TSRestType", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, e.validateType)("TSType")
    }
  }), i("TSNamedTupleMember", {
    visitor: ["label", "elementType"],
    builder: ["label", "elementType", "optional"],
    fields: {
      label: (0, e.validateType)("Identifier"),
      optional: {
        validate: n,
        default: !1
      },
      elementType: (0, e.validateType)("TSType")
    }
  });
  const f = {
    aliases: ["TSType"],
    visitor: ["types"],
    fields: {
      types: (0, e.validateArrayOfType)("TSType")
    }
  };
  i("TSUnionType", f), i("TSIntersectionType", f), i("TSConditionalType", {
    aliases: ["TSType"],
    visitor: ["checkType", "extendsType", "trueType", "falseType"],
    fields: {
      checkType: (0, e.validateType)("TSType"),
      extendsType: (0, e.validateType)("TSType"),
      trueType: (0, e.validateType)("TSType"),
      falseType: (0, e.validateType)("TSType")
    }
  }), i("TSInferType", {
    aliases: ["TSType"],
    visitor: ["typeParameter"],
    fields: {
      typeParameter: (0, e.validateType)("TSTypeParameter")
    }
  }), i("TSParenthesizedType", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, e.validateType)("TSType")
    }
  }), i("TSTypeOperator", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      operator: (0, e.validate)((0, e.assertValueType)("string")),
      typeAnnotation: (0, e.validateType)("TSType")
    }
  }), i("TSIndexedAccessType", {
    aliases: ["TSType"],
    visitor: ["objectType", "indexType"],
    fields: {
      objectType: (0, e.validateType)("TSType"),
      indexType: (0, e.validateType)("TSType")
    }
  }), i("TSMappedType", {
    aliases: ["TSType"],
    visitor: ["typeParameter", "typeAnnotation", "nameType"],
    fields: {
      readonly: (0, e.validateOptional)((0, e.assertOneOf)(!0, !1, "+", "-")),
      typeParameter: (0, e.validateType)("TSTypeParameter"),
      optional: (0, e.validateOptional)((0, e.assertOneOf)(!0, !1, "+", "-")),
      typeAnnotation: (0, e.validateOptionalType)("TSType"),
      nameType: (0, e.validateOptionalType)("TSType")
    }
  }), i("TSLiteralType", {
    aliases: ["TSType", "TSBaseType"],
    visitor: ["literal"],
    fields: {
      literal: {
        validate: function() {
          const m = (0, e.assertNodeType)("NumericLiteral", "BigIntLiteral"), g = (0, e.assertOneOf)("-"), y = (0, e.assertNodeType)("NumericLiteral", "StringLiteral", "BooleanLiteral", "BigIntLiteral", "TemplateLiteral");
          function v(T, S, P) {
            (0, r.default)("UnaryExpression", P) ? (g(P, "operator", P.operator), m(P, "argument", P.argument)) : y(T, S, P);
          }
          return v.oneOfNodeTypes = ["NumericLiteral", "StringLiteral", "BooleanLiteral", "BigIntLiteral", "TemplateLiteral", "UnaryExpression"], v;
        }()
      }
    }
  }), i("TSExpressionWithTypeArguments", {
    aliases: ["TSType"],
    visitor: ["expression", "typeParameters"],
    fields: {
      expression: (0, e.validateType)("TSEntityName"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterInstantiation")
    }
  }), i("TSInterfaceDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "typeParameters", "extends", "body"],
    fields: {
      declare: (0, e.validateOptional)(n),
      id: (0, e.validateType)("Identifier"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterDeclaration"),
      extends: (0, e.validateOptional)((0, e.arrayOfType)("TSExpressionWithTypeArguments")),
      body: (0, e.validateType)("TSInterfaceBody")
    }
  }), i("TSInterfaceBody", {
    visitor: ["body"],
    fields: {
      body: (0, e.validateArrayOfType)("TSTypeElement")
    }
  }), i("TSTypeAliasDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "typeParameters", "typeAnnotation"],
    fields: {
      declare: (0, e.validateOptional)(n),
      id: (0, e.validateType)("Identifier"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterDeclaration"),
      typeAnnotation: (0, e.validateType)("TSType")
    }
  }), i("TSInstantiationExpression", {
    aliases: ["Expression"],
    visitor: ["expression", "typeParameters"],
    fields: {
      expression: (0, e.validateType)("Expression"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterInstantiation")
    }
  });
  const h = {
    aliases: ["Expression", "LVal", "PatternLike"],
    visitor: ["expression", "typeAnnotation"],
    fields: {
      expression: (0, e.validateType)("Expression"),
      typeAnnotation: (0, e.validateType)("TSType")
    }
  };
  return i("TSAsExpression", h), i("TSSatisfiesExpression", h), i("TSTypeAssertion", {
    aliases: ["Expression", "LVal", "PatternLike"],
    visitor: ["typeAnnotation", "expression"],
    fields: {
      typeAnnotation: (0, e.validateType)("TSType"),
      expression: (0, e.validateType)("Expression")
    }
  }), i("TSEnumDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "members"],
    fields: {
      declare: (0, e.validateOptional)(n),
      const: (0, e.validateOptional)(n),
      id: (0, e.validateType)("Identifier"),
      members: (0, e.validateArrayOfType)("TSEnumMember"),
      initializer: (0, e.validateOptionalType)("Expression")
    }
  }), i("TSEnumMember", {
    visitor: ["id", "initializer"],
    fields: {
      id: (0, e.validateType)(["Identifier", "StringLiteral"]),
      initializer: (0, e.validateOptionalType)("Expression")
    }
  }), i("TSModuleDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "body"],
    fields: {
      declare: (0, e.validateOptional)(n),
      global: (0, e.validateOptional)(n),
      id: (0, e.validateType)(["Identifier", "StringLiteral"]),
      body: (0, e.validateType)(["TSModuleBlock", "TSModuleDeclaration"])
    }
  }), i("TSModuleBlock", {
    aliases: ["Scopable", "Block", "BlockParent", "FunctionParent"],
    visitor: ["body"],
    fields: {
      body: (0, e.validateArrayOfType)("Statement")
    }
  }), i("TSImportType", {
    aliases: ["TSType"],
    visitor: ["argument", "qualifier", "typeParameters"],
    fields: {
      argument: (0, e.validateType)("StringLiteral"),
      qualifier: (0, e.validateOptionalType)("TSEntityName"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterInstantiation"),
      options: {
        validate: (0, e.assertNodeType)("Expression"),
        optional: !0
      }
    }
  }), i("TSImportEqualsDeclaration", {
    aliases: ["Statement"],
    visitor: ["id", "moduleReference"],
    fields: {
      isExport: (0, e.validate)(n),
      id: (0, e.validateType)("Identifier"),
      moduleReference: (0, e.validateType)(["TSEntityName", "TSExternalModuleReference"]),
      importKind: {
        validate: (0, e.assertOneOf)("type", "value"),
        optional: !0
      }
    }
  }), i("TSExternalModuleReference", {
    visitor: ["expression"],
    fields: {
      expression: (0, e.validateType)("StringLiteral")
    }
  }), i("TSNonNullExpression", {
    aliases: ["Expression", "LVal", "PatternLike"],
    visitor: ["expression"],
    fields: {
      expression: (0, e.validateType)("Expression")
    }
  }), i("TSExportAssignment", {
    aliases: ["Statement"],
    visitor: ["expression"],
    fields: {
      expression: (0, e.validateType)("Expression")
    }
  }), i("TSNamespaceExportDeclaration", {
    aliases: ["Statement"],
    visitor: ["id"],
    fields: {
      id: (0, e.validateType)("Identifier")
    }
  }), i("TSTypeAnnotation", {
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: {
        validate: (0, e.assertNodeType)("TSType")
      }
    }
  }), i("TSTypeParameterInstantiation", {
    visitor: ["params"],
    fields: {
      params: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("TSType")))
      }
    }
  }), i("TSTypeParameterDeclaration", {
    visitor: ["params"],
    fields: {
      params: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("TSTypeParameter")))
      }
    }
  }), i("TSTypeParameter", {
    builder: ["constraint", "default", "name"],
    visitor: ["constraint", "default"],
    fields: {
      name: {
        validate: (0, e.assertValueType)("string")
      },
      in: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      },
      out: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      },
      const: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      },
      constraint: {
        validate: (0, e.assertNodeType)("TSType"),
        optional: !0
      },
      default: {
        validate: (0, e.assertNodeType)("TSType"),
        optional: !0
      }
    }
  }), AH;
}
var zC = {};
Object.defineProperty(zC, "__esModule", {
  value: !0
});
zC.DEPRECATED_ALIASES = void 0;
zC.DEPRECATED_ALIASES = {
  ModuleDeclaration: "ImportOrExportDeclaration"
};
var _H;
function Vc() {
  return _H || (_H = 1, function(e) {
    Object.defineProperty(e, "__esModule", {
      value: !0
    }), Object.defineProperty(e, "ALIAS_KEYS", {
      enumerable: !0,
      get: function() {
        return r.ALIAS_KEYS;
      }
    }), Object.defineProperty(e, "BUILDER_KEYS", {
      enumerable: !0,
      get: function() {
        return r.BUILDER_KEYS;
      }
    }), Object.defineProperty(e, "DEPRECATED_ALIASES", {
      enumerable: !0,
      get: function() {
        return n.DEPRECATED_ALIASES;
      }
    }), Object.defineProperty(e, "DEPRECATED_KEYS", {
      enumerable: !0,
      get: function() {
        return r.DEPRECATED_KEYS;
      }
    }), Object.defineProperty(e, "FLIPPED_ALIAS_KEYS", {
      enumerable: !0,
      get: function() {
        return r.FLIPPED_ALIAS_KEYS;
      }
    }), Object.defineProperty(e, "NODE_FIELDS", {
      enumerable: !0,
      get: function() {
        return r.NODE_FIELDS;
      }
    }), Object.defineProperty(e, "NODE_PARENT_VALIDATIONS", {
      enumerable: !0,
      get: function() {
        return r.NODE_PARENT_VALIDATIONS;
      }
    }), Object.defineProperty(e, "PLACEHOLDERS", {
      enumerable: !0,
      get: function() {
        return i.PLACEHOLDERS;
      }
    }), Object.defineProperty(e, "PLACEHOLDERS_ALIAS", {
      enumerable: !0,
      get: function() {
        return i.PLACEHOLDERS_ALIAS;
      }
    }), Object.defineProperty(e, "PLACEHOLDERS_FLIPPED_ALIAS", {
      enumerable: !0,
      get: function() {
        return i.PLACEHOLDERS_FLIPPED_ALIAS;
      }
    }), e.TYPES = void 0, Object.defineProperty(e, "VISITOR_KEYS", {
      enumerable: !0,
      get: function() {
        return r.VISITOR_KEYS;
      }
    });
    var t = Z$;
    sfe(), fWe(), hWe(), dWe(), mWe(), yWe();
    var r = Wh(), i = afe(), n = zC;
    Object.keys(n.DEPRECATED_ALIASES).forEach((s) => {
      r.FLIPPED_ALIAS_KEYS[s] = r.FLIPPED_ALIAS_KEYS[n.DEPRECATED_ALIASES[s]];
    }), t(r.VISITOR_KEYS), t(r.ALIAS_KEYS), t(r.FLIPPED_ALIAS_KEYS), t(r.NODE_FIELDS), t(r.BUILDER_KEYS), t(r.DEPRECATED_KEYS), t(i.PLACEHOLDERS_ALIAS), t(i.PLACEHOLDERS_FLIPPED_ALIAS), e.TYPES = [].concat(Object.keys(r.VISITOR_KEYS), Object.keys(r.FLIPPED_ALIAS_KEYS), Object.keys(r.DEPRECATED_KEYS));
  }(EM)), EM;
}
var IH;
function _6() {
  if (IH)
    return Im;
  IH = 1, Object.defineProperty(Im, "__esModule", {
    value: !0
  }), Im.default = t, Im.validateChild = i, Im.validateField = r;
  var e = Vc();
  function t(n, s, a) {
    if (!n)
      return;
    const o = e.NODE_FIELDS[n.type];
    if (!o)
      return;
    const l = o[s];
    r(n, s, a, l), i(n, s, a);
  }
  function r(n, s, a, o) {
    o != null && o.validate && (o.optional && a == null || o.validate(n, s, a));
  }
  function i(n, s, a) {
    if (a == null)
      return;
    const o = e.NODE_PARENT_VALIDATIONS[a.type];
    o && o(n, s, a);
  }
  return Im;
}
var kH;
function gWe() {
  if (kH)
    return bx;
  kH = 1, Object.defineProperty(bx, "__esModule", {
    value: !0
  }), bx.default = r;
  var e = _6(), t = sn();
  function r(i) {
    const n = t.BUILDER_KEYS[i.type];
    for (const s of n)
      (0, e.default)(i, s, i[s]);
    return i;
  }
  return bx;
}
var OH;
function Wa() {
  if (OH)
    return _e;
  OH = 1, Object.defineProperty(_e, "__esModule", {
    value: !0
  }), _e.anyTypeAnnotation = en, _e.argumentPlaceholder = Ca, _e.arrayExpression = r, _e.arrayPattern = st, _e.arrayTypeAnnotation = bi, _e.arrowFunctionExpression = Se, _e.assignmentExpression = i, _e.assignmentPattern = Xe, _e.awaitExpression = ht, _e.bigIntLiteral = Ot, _e.binaryExpression = n, _e.bindExpression = Yo, _e.blockStatement = l, _e.booleanLiteral = q, _e.booleanLiteralTypeAnnotation = us, _e.booleanTypeAnnotation = No, _e.breakStatement = u, _e.callExpression = c, _e.catchClause = f, _e.classAccessorProperty = Ai, _e.classBody = oe, _e.classDeclaration = se, _e.classExpression = te, _e.classImplements = As, _e.classMethod = ie, _e.classPrivateMethod = Nn, _e.classPrivateProperty = an, _e.classProperty = kr, _e.conditionalExpression = h, _e.continueStatement = m, _e.debuggerStatement = g, _e.decimalLiteral = Jo, _e.declareClass = ba, _e.declareExportAllDeclaration = za, _e.declareExportDeclaration = Ka, _e.declareFunction = Bn, _e.declareInterface = cs, _e.declareModule = Do, _e.declareModuleExports = ps, _e.declareOpaqueType = Lo, _e.declareTypeAlias = va, _e.declareVariable = Ta, _e.declaredPredicate = Ga, _e.decorator = Iu, _e.directive = a, _e.directiveLiteral = o, _e.doExpression = ku, _e.doWhileStatement = y, _e.emptyStatement = v, _e.emptyTypeAnnotation = Bo, _e.enumBooleanBody = Pa, _e.enumBooleanMember = qo, _e.enumDeclaration = Uo, _e.enumDefaultedMember = bu, _e.enumNumberBody = Ws, _e.enumNumberMember = gu, _e.enumStringBody = ro, _e.enumStringMember = io, _e.enumSymbolBody = wa, _e.existsTypeAnnotation = Ya, _e.exportAllDeclaration = re, _e.exportDefaultDeclaration = Te, _e.exportDefaultSpecifier = Ou, _e.exportNamedDeclaration = ze, _e.exportNamespaceSpecifier = Tt, _e.exportSpecifier = Ze, _e.expressionStatement = T, _e.file = S, _e.forInStatement = P, _e.forOfStatement = pt, _e.forStatement = x, _e.functionDeclaration = C, _e.functionExpression = D, _e.functionTypeAnnotation = Us, _e.functionTypeParam = Sa, _e.genericTypeAnnotation = Mo, _e.identifier = w, _e.ifStatement = A, _e.import = Rt, _e.importAttribute = _u, _e.importDeclaration = ut, _e.importDefaultSpecifier = bt, _e.importExpression = pe, _e.importNamespaceSpecifier = vt, _e.importSpecifier = ge, _e.indexedAccessType = Vo, _e.inferredPredicate = Cs, _e.interfaceDeclaration = xa, _e.interfaceExtends = tu, _e.interfaceTypeAnnotation = Ro, _e.interpreterDirective = s, _e.intersectionTypeAnnotation = ru, _e.jSXAttribute = _e.jsxAttribute = Wo, _e.jSXClosingElement = _e.jsxClosingElement = vu, _e.jSXClosingFragment = _e.jsxClosingFragment = Cu, _e.jSXElement = _e.jsxElement = Tu, _e.jSXEmptyExpression = _e.jsxEmptyExpression = no, _e.jSXExpressionContainer = _e.jsxExpressionContainer = Ho, _e.jSXFragment = _e.jsxFragment = wu, _e.jSXIdentifier = _e.jsxIdentifier = Su, _e.jSXMemberExpression = _e.jsxMemberExpression = xu, _e.jSXNamespacedName = _e.jsxNamespacedName = Hs, _e.jSXOpeningElement = _e.jsxOpeningElement = Eu, _e.jSXOpeningFragment = _e.jsxOpeningFragment = Au, _e.jSXSpreadAttribute = _e.jsxSpreadAttribute = es, _e.jSXSpreadChild = _e.jsxSpreadChild = Ko, _e.jSXText = _e.jsxText = Pu, _e.labeledStatement = I, _e.logicalExpression = N, _e.memberExpression = M, _e.metaProperty = $e, _e.mixedTypeAnnotation = iu, _e.moduleExpression = _a, _e.newExpression = R, _e.noop = zo, _e.nullLiteral = F, _e.nullLiteralTypeAnnotation = ga, _e.nullableTypeAnnotation = Fo, _e.numberLiteral = Ks, _e.numberLiteralTypeAnnotation = Zn, _e.numberTypeAnnotation = nu, _e.numericLiteral = O, _e.objectExpression = V, _e.objectMethod = K, _e.objectPattern = Q, _e.objectProperty = z, _e.objectTypeAnnotation = su, _e.objectTypeCallProperty = jo, _e.objectTypeIndexer = ou, _e.objectTypeInternalSlot = au, _e.objectTypeProperty = Ea, _e.objectTypeSpreadProperty = Xa, _e.opaqueType = Ja, _e.optionalCallExpression = lr, _e.optionalIndexedAccessType = Aa, _e.optionalMemberExpression = lt, _e.parenthesizedExpression = le, _e.pipelineBareFunction = Nu, _e.pipelinePrimaryTopicReference = Ia, _e.pipelineTopicExpression = Is, _e.placeholder = so, _e.privateName = on, _e.program = $, _e.qualifiedTypeIdentifier = Qa, _e.recordExpression = Xo, _e.regExpLiteral = j, _e.regexLiteral = fl, _e.restElement = W, _e.restProperty = bc, _e.returnStatement = Y, _e.sequenceExpression = G, _e.spreadElement = X, _e.spreadProperty = B, _e.staticBlock = _n, _e.stringLiteral = L, _e.stringLiteralTypeAnnotation = lu, _e.stringTypeAnnotation = uu, _e.super = ce, _e.switchCase = ne, _e.switchStatement = ae, _e.symbolTypeAnnotation = cu, _e.taggedTemplateExpression = U, _e.templateElement = Ee, _e.templateLiteral = Qe, _e.thisExpression = be, _e.thisTypeAnnotation = pu, _e.throwStatement = ye, _e.topicReference = Qo, _e.tryStatement = fe, _e.tSAnyKeyword = _e.tsAnyKeyword = Wt, _e.tSArrayType = _e.tsArrayType = Ft, _e.tSAsExpression = _e.tsAsExpression = ul, _e.tSBigIntKeyword = _e.tsBigIntKeyword = Zo, _e.tSBooleanKeyword = _e.tsBooleanKeyword = Fu, _e.tSCallSignatureDeclaration = _e.tsCallSignatureDeclaration = Lu, _e.tSConditionalType = _e.tsConditionalType = il, _e.tSConstructSignatureDeclaration = _e.tsConstructSignatureDeclaration = Gn, _e.tSConstructorType = _e.tsConstructorType = el, _e.tSDeclareFunction = _e.tsDeclareFunction = ka, _e.tSDeclareMethod = _e.tsDeclareMethod = Oa, _e.tSEnumDeclaration = _e.tsEnumDeclaration = oc, _e.tSEnumMember = _e.tsEnumMember = lc, _e.tSExportAssignment = _e.tsExportAssignment = pl, _e.tSExpressionWithTypeArguments = _e.tsExpressionWithTypeArguments = hs, _e.tSExternalModuleReference = _e.tsExternalModuleReference = pc, _e.tSFunctionType = _e.tsFunctionType = zu, _e.tSImportEqualsDeclaration = _e.tsImportEqualsDeclaration = lo, _e.tSImportType = _e.tsImportType = cc, _e.tSIndexSignature = _e.tsIndexSignature = Bu, _e.tSIndexedAccessType = _e.tsIndexedAccessType = ic, _e.tSInferType = _e.tsInferType = rc, _e.tSInstantiationExpression = _e.tsInstantiationExpression = sc, _e.tSInterfaceBody = _e.tsInterfaceBody = ol, _e.tSInterfaceDeclaration = _e.tsInterfaceDeclaration = al, _e.tSIntersectionType = _e.tsIntersectionType = tc, _e.tSIntrinsicKeyword = _e.tsIntrinsicKeyword = ju, _e.tSLiteralType = _e.tsLiteralType = Di, _e.tSMappedType = _e.tsMappedType = nc, _e.tSMethodSignature = _e.tsMethodSignature = Ru, _e.tSModuleBlock = _e.tsModuleBlock = uc, _e.tSModuleDeclaration = _e.tsModuleDeclaration = oo, _e.tSNamedTupleMember = _e.tsNamedTupleMember = Zu, _e.tSNamespaceExportDeclaration = _e.tsNamespaceExportDeclaration = hc, _e.tSNeverKeyword = _e.tsNeverKeyword = $u, _e.tSNonNullExpression = _e.tsNonNullExpression = fc, _e.tSNullKeyword = _e.tsNullKeyword = Uu, _e.tSNumberKeyword = _e.tsNumberKeyword = qu, _e.tSObjectKeyword = _e.tsObjectKeyword = Vu, _e.tSOptionalType = _e.tsOptionalType = rl, _e.tSParameterProperty = _e.tsParameterProperty = Du, _e.tSParenthesizedType = _e.tsParenthesizedType = nl, _e.tSPropertySignature = _e.tsPropertySignature = Mu, _e.tSQualifiedName = _e.tsQualifiedName = ao, _e.tSRestType = _e.tsRestType = Qu, _e.tSSatisfiesExpression = _e.tsSatisfiesExpression = ac, _e.tSStringKeyword = _e.tsStringKeyword = fs, _e.tSSymbolKeyword = _e.tsSymbolKeyword = ts, _e.tSThisType = _e.tsThisType = Ku, _e.tSTupleType = _e.tsTupleType = Ju, _e.tSTypeAliasDeclaration = _e.tsTypeAliasDeclaration = ll, _e.tSTypeAnnotation = _e.tsTypeAnnotation = dc, _e.tSTypeAssertion = _e.tsTypeAssertion = cl, _e.tSTypeLiteral = _e.tsTypeLiteral = tl, _e.tSTypeOperator = _e.tsTypeOperator = sl, _e.tSTypeParameter = _e.tsTypeParameter = gc, _e.tSTypeParameterDeclaration = _e.tsTypeParameterDeclaration = yc, _e.tSTypeParameterInstantiation = _e.tsTypeParameterInstantiation = mc, _e.tSTypePredicate = _e.tsTypePredicate = Yu, _e.tSTypeQuery = _e.tsTypeQuery = Xu, _e.tSTypeReference = _e.tsTypeReference = Gu, _e.tSUndefinedKeyword = _e.tsUndefinedKeyword = ks, _e.tSUnionType = _e.tsUnionType = ec, _e.tSUnknownKeyword = _e.tsUnknownKeyword = Wu, _e.tSVoidKeyword = _e.tsVoidKeyword = Hu, _e.tupleExpression = _s, _e.tupleTypeAnnotation = Za, _e.typeAlias = to, _e.typeAnnotation = fu, _e.typeCastExpression = hu, _e.typeParameter = du, _e.typeParameterDeclaration = $o, _e.typeParameterInstantiation = mu, _e.typeofTypeAnnotation = eo, _e.unaryExpression = Z, _e.unionTypeAnnotation = qs, _e.updateExpression = ue, _e.v8IntrinsicIdentifier = Go, _e.variableDeclaration = me, _e.variableDeclarator = xe, _e.variance = Vs, _e.voidTypeAnnotation = yu, _e.whileStatement = Pe, _e.withStatement = ve, _e.yieldExpression = ft;
  var e = gWe(), t = Sg;
  function r(d = []) {
    return (0, e.default)({
      type: "ArrayExpression",
      elements: d
    });
  }
  function i(d, p, b) {
    return (0, e.default)({
      type: "AssignmentExpression",
      operator: d,
      left: p,
      right: b
    });
  }
  function n(d, p, b) {
    return (0, e.default)({
      type: "BinaryExpression",
      operator: d,
      left: p,
      right: b
    });
  }
  function s(d) {
    return (0, e.default)({
      type: "InterpreterDirective",
      value: d
    });
  }
  function a(d) {
    return (0, e.default)({
      type: "Directive",
      value: d
    });
  }
  function o(d) {
    return (0, e.default)({
      type: "DirectiveLiteral",
      value: d
    });
  }
  function l(d, p = []) {
    return (0, e.default)({
      type: "BlockStatement",
      body: d,
      directives: p
    });
  }
  function u(d = null) {
    return (0, e.default)({
      type: "BreakStatement",
      label: d
    });
  }
  function c(d, p) {
    return (0, e.default)({
      type: "CallExpression",
      callee: d,
      arguments: p
    });
  }
  function f(d = null, p) {
    return (0, e.default)({
      type: "CatchClause",
      param: d,
      body: p
    });
  }
  function h(d, p, b) {
    return (0, e.default)({
      type: "ConditionalExpression",
      test: d,
      consequent: p,
      alternate: b
    });
  }
  function m(d = null) {
    return (0, e.default)({
      type: "ContinueStatement",
      label: d
    });
  }
  function g() {
    return {
      type: "DebuggerStatement"
    };
  }
  function y(d, p) {
    return (0, e.default)({
      type: "DoWhileStatement",
      test: d,
      body: p
    });
  }
  function v() {
    return {
      type: "EmptyStatement"
    };
  }
  function T(d) {
    return (0, e.default)({
      type: "ExpressionStatement",
      expression: d
    });
  }
  function S(d, p = null, b = null) {
    return (0, e.default)({
      type: "File",
      program: d,
      comments: p,
      tokens: b
    });
  }
  function P(d, p, b) {
    return (0, e.default)({
      type: "ForInStatement",
      left: d,
      right: p,
      body: b
    });
  }
  function x(d = null, p = null, b = null, _) {
    return (0, e.default)({
      type: "ForStatement",
      init: d,
      test: p,
      update: b,
      body: _
    });
  }
  function C(d = null, p, b, _ = !1, H = !1) {
    return (0, e.default)({
      type: "FunctionDeclaration",
      id: d,
      params: p,
      body: b,
      generator: _,
      async: H
    });
  }
  function D(d = null, p, b, _ = !1, H = !1) {
    return (0, e.default)({
      type: "FunctionExpression",
      id: d,
      params: p,
      body: b,
      generator: _,
      async: H
    });
  }
  function w(d) {
    return (0, e.default)({
      type: "Identifier",
      name: d
    });
  }
  function A(d, p, b = null) {
    return (0, e.default)({
      type: "IfStatement",
      test: d,
      consequent: p,
      alternate: b
    });
  }
  function I(d, p) {
    return (0, e.default)({
      type: "LabeledStatement",
      label: d,
      body: p
    });
  }
  function L(d) {
    return (0, e.default)({
      type: "StringLiteral",
      value: d
    });
  }
  function O(d) {
    return (0, e.default)({
      type: "NumericLiteral",
      value: d
    });
  }
  function F() {
    return {
      type: "NullLiteral"
    };
  }
  function q(d) {
    return (0, e.default)({
      type: "BooleanLiteral",
      value: d
    });
  }
  function j(d, p = "") {
    return (0, e.default)({
      type: "RegExpLiteral",
      pattern: d,
      flags: p
    });
  }
  function N(d, p, b) {
    return (0, e.default)({
      type: "LogicalExpression",
      operator: d,
      left: p,
      right: b
    });
  }
  function M(d, p, b = !1, _ = null) {
    return (0, e.default)({
      type: "MemberExpression",
      object: d,
      property: p,
      computed: b,
      optional: _
    });
  }
  function R(d, p) {
    return (0, e.default)({
      type: "NewExpression",
      callee: d,
      arguments: p
    });
  }
  function $(d, p = [], b = "script", _ = null) {
    return (0, e.default)({
      type: "Program",
      body: d,
      directives: p,
      sourceType: b,
      interpreter: _
    });
  }
  function V(d) {
    return (0, e.default)({
      type: "ObjectExpression",
      properties: d
    });
  }
  function K(d = "method", p, b, _, H = !1, ee = !1, de = !1) {
    return (0, e.default)({
      type: "ObjectMethod",
      kind: d,
      key: p,
      params: b,
      body: _,
      computed: H,
      generator: ee,
      async: de
    });
  }
  function z(d, p, b = !1, _ = !1, H = null) {
    return (0, e.default)({
      type: "ObjectProperty",
      key: d,
      value: p,
      computed: b,
      shorthand: _,
      decorators: H
    });
  }
  function W(d) {
    return (0, e.default)({
      type: "RestElement",
      argument: d
    });
  }
  function Y(d = null) {
    return (0, e.default)({
      type: "ReturnStatement",
      argument: d
    });
  }
  function G(d) {
    return (0, e.default)({
      type: "SequenceExpression",
      expressions: d
    });
  }
  function le(d) {
    return (0, e.default)({
      type: "ParenthesizedExpression",
      expression: d
    });
  }
  function ne(d = null, p) {
    return (0, e.default)({
      type: "SwitchCase",
      test: d,
      consequent: p
    });
  }
  function ae(d, p) {
    return (0, e.default)({
      type: "SwitchStatement",
      discriminant: d,
      cases: p
    });
  }
  function be() {
    return {
      type: "ThisExpression"
    };
  }
  function ye(d) {
    return (0, e.default)({
      type: "ThrowStatement",
      argument: d
    });
  }
  function fe(d, p = null, b = null) {
    return (0, e.default)({
      type: "TryStatement",
      block: d,
      handler: p,
      finalizer: b
    });
  }
  function Z(d, p, b = !0) {
    return (0, e.default)({
      type: "UnaryExpression",
      operator: d,
      argument: p,
      prefix: b
    });
  }
  function ue(d, p, b = !1) {
    return (0, e.default)({
      type: "UpdateExpression",
      operator: d,
      argument: p,
      prefix: b
    });
  }
  function me(d, p) {
    return (0, e.default)({
      type: "VariableDeclaration",
      kind: d,
      declarations: p
    });
  }
  function xe(d, p = null) {
    return (0, e.default)({
      type: "VariableDeclarator",
      id: d,
      init: p
    });
  }
  function Pe(d, p) {
    return (0, e.default)({
      type: "WhileStatement",
      test: d,
      body: p
    });
  }
  function ve(d, p) {
    return (0, e.default)({
      type: "WithStatement",
      object: d,
      body: p
    });
  }
  function Xe(d, p) {
    return (0, e.default)({
      type: "AssignmentPattern",
      left: d,
      right: p
    });
  }
  function st(d) {
    return (0, e.default)({
      type: "ArrayPattern",
      elements: d
    });
  }
  function Se(d, p, b = !1) {
    return (0, e.default)({
      type: "ArrowFunctionExpression",
      params: d,
      body: p,
      async: b,
      expression: null
    });
  }
  function oe(d) {
    return (0, e.default)({
      type: "ClassBody",
      body: d
    });
  }
  function te(d = null, p = null, b, _ = null) {
    return (0, e.default)({
      type: "ClassExpression",
      id: d,
      superClass: p,
      body: b,
      decorators: _
    });
  }
  function se(d = null, p = null, b, _ = null) {
    return (0, e.default)({
      type: "ClassDeclaration",
      id: d,
      superClass: p,
      body: b,
      decorators: _
    });
  }
  function re(d) {
    return (0, e.default)({
      type: "ExportAllDeclaration",
      source: d
    });
  }
  function Te(d) {
    return (0, e.default)({
      type: "ExportDefaultDeclaration",
      declaration: d
    });
  }
  function ze(d = null, p = [], b = null) {
    return (0, e.default)({
      type: "ExportNamedDeclaration",
      declaration: d,
      specifiers: p,
      source: b
    });
  }
  function Ze(d, p) {
    return (0, e.default)({
      type: "ExportSpecifier",
      local: d,
      exported: p
    });
  }
  function pt(d, p, b, _ = !1) {
    return (0, e.default)({
      type: "ForOfStatement",
      left: d,
      right: p,
      body: b,
      await: _
    });
  }
  function ut(d, p) {
    return (0, e.default)({
      type: "ImportDeclaration",
      specifiers: d,
      source: p
    });
  }
  function bt(d) {
    return (0, e.default)({
      type: "ImportDefaultSpecifier",
      local: d
    });
  }
  function vt(d) {
    return (0, e.default)({
      type: "ImportNamespaceSpecifier",
      local: d
    });
  }
  function ge(d, p) {
    return (0, e.default)({
      type: "ImportSpecifier",
      local: d,
      imported: p
    });
  }
  function pe(d, p = null) {
    return (0, e.default)({
      type: "ImportExpression",
      source: d,
      options: p
    });
  }
  function $e(d, p) {
    return (0, e.default)({
      type: "MetaProperty",
      meta: d,
      property: p
    });
  }
  function ie(d = "method", p, b, _, H = !1, ee = !1, de = !1, Ge = !1) {
    return (0, e.default)({
      type: "ClassMethod",
      kind: d,
      key: p,
      params: b,
      body: _,
      computed: H,
      static: ee,
      generator: de,
      async: Ge
    });
  }
  function Q(d) {
    return (0, e.default)({
      type: "ObjectPattern",
      properties: d
    });
  }
  function X(d) {
    return (0, e.default)({
      type: "SpreadElement",
      argument: d
    });
  }
  function ce() {
    return {
      type: "Super"
    };
  }
  function U(d, p) {
    return (0, e.default)({
      type: "TaggedTemplateExpression",
      tag: d,
      quasi: p
    });
  }
  function Ee(d, p = !1) {
    return (0, e.default)({
      type: "TemplateElement",
      value: d,
      tail: p
    });
  }
  function Qe(d, p) {
    return (0, e.default)({
      type: "TemplateLiteral",
      quasis: d,
      expressions: p
    });
  }
  function ft(d = null, p = !1) {
    return (0, e.default)({
      type: "YieldExpression",
      argument: d,
      delegate: p
    });
  }
  function ht(d) {
    return (0, e.default)({
      type: "AwaitExpression",
      argument: d
    });
  }
  function Rt() {
    return {
      type: "Import"
    };
  }
  function Ot(d) {
    return (0, e.default)({
      type: "BigIntLiteral",
      value: d
    });
  }
  function Tt(d) {
    return (0, e.default)({
      type: "ExportNamespaceSpecifier",
      exported: d
    });
  }
  function lt(d, p, b = !1, _) {
    return (0, e.default)({
      type: "OptionalMemberExpression",
      object: d,
      property: p,
      computed: b,
      optional: _
    });
  }
  function lr(d, p, b) {
    return (0, e.default)({
      type: "OptionalCallExpression",
      callee: d,
      arguments: p,
      optional: b
    });
  }
  function kr(d, p = null, b = null, _ = null, H = !1, ee = !1) {
    return (0, e.default)({
      type: "ClassProperty",
      key: d,
      value: p,
      typeAnnotation: b,
      decorators: _,
      computed: H,
      static: ee
    });
  }
  function Ai(d, p = null, b = null, _ = null, H = !1, ee = !1) {
    return (0, e.default)({
      type: "ClassAccessorProperty",
      key: d,
      value: p,
      typeAnnotation: b,
      decorators: _,
      computed: H,
      static: ee
    });
  }
  function an(d, p = null, b = null, _ = !1) {
    return (0, e.default)({
      type: "ClassPrivateProperty",
      key: d,
      value: p,
      decorators: b,
      static: _
    });
  }
  function Nn(d = "method", p, b, _, H = !1) {
    return (0, e.default)({
      type: "ClassPrivateMethod",
      kind: d,
      key: p,
      params: b,
      body: _,
      static: H
    });
  }
  function on(d) {
    return (0, e.default)({
      type: "PrivateName",
      id: d
    });
  }
  function _n(d) {
    return (0, e.default)({
      type: "StaticBlock",
      body: d
    });
  }
  function en() {
    return {
      type: "AnyTypeAnnotation"
    };
  }
  function bi(d) {
    return (0, e.default)({
      type: "ArrayTypeAnnotation",
      elementType: d
    });
  }
  function No() {
    return {
      type: "BooleanTypeAnnotation"
    };
  }
  function us(d) {
    return (0, e.default)({
      type: "BooleanLiteralTypeAnnotation",
      value: d
    });
  }
  function ga() {
    return {
      type: "NullLiteralTypeAnnotation"
    };
  }
  function As(d, p = null) {
    return (0, e.default)({
      type: "ClassImplements",
      id: d,
      typeParameters: p
    });
  }
  function ba(d, p = null, b = null, _) {
    return (0, e.default)({
      type: "DeclareClass",
      id: d,
      typeParameters: p,
      extends: b,
      body: _
    });
  }
  function Bn(d) {
    return (0, e.default)({
      type: "DeclareFunction",
      id: d
    });
  }
  function cs(d, p = null, b = null, _) {
    return (0, e.default)({
      type: "DeclareInterface",
      id: d,
      typeParameters: p,
      extends: b,
      body: _
    });
  }
  function Do(d, p, b = null) {
    return (0, e.default)({
      type: "DeclareModule",
      id: d,
      body: p,
      kind: b
    });
  }
  function ps(d) {
    return (0, e.default)({
      type: "DeclareModuleExports",
      typeAnnotation: d
    });
  }
  function va(d, p = null, b) {
    return (0, e.default)({
      type: "DeclareTypeAlias",
      id: d,
      typeParameters: p,
      right: b
    });
  }
  function Lo(d, p = null, b = null) {
    return (0, e.default)({
      type: "DeclareOpaqueType",
      id: d,
      typeParameters: p,
      supertype: b
    });
  }
  function Ta(d) {
    return (0, e.default)({
      type: "DeclareVariable",
      id: d
    });
  }
  function Ka(d = null, p = null, b = null) {
    return (0, e.default)({
      type: "DeclareExportDeclaration",
      declaration: d,
      specifiers: p,
      source: b
    });
  }
  function za(d) {
    return (0, e.default)({
      type: "DeclareExportAllDeclaration",
      source: d
    });
  }
  function Ga(d) {
    return (0, e.default)({
      type: "DeclaredPredicate",
      value: d
    });
  }
  function Ya() {
    return {
      type: "ExistsTypeAnnotation"
    };
  }
  function Us(d = null, p, b = null, _) {
    return (0, e.default)({
      type: "FunctionTypeAnnotation",
      typeParameters: d,
      params: p,
      rest: b,
      returnType: _
    });
  }
  function Sa(d = null, p) {
    return (0, e.default)({
      type: "FunctionTypeParam",
      name: d,
      typeAnnotation: p
    });
  }
  function Mo(d, p = null) {
    return (0, e.default)({
      type: "GenericTypeAnnotation",
      id: d,
      typeParameters: p
    });
  }
  function Cs() {
    return {
      type: "InferredPredicate"
    };
  }
  function tu(d, p = null) {
    return (0, e.default)({
      type: "InterfaceExtends",
      id: d,
      typeParameters: p
    });
  }
  function xa(d, p = null, b = null, _) {
    return (0, e.default)({
      type: "InterfaceDeclaration",
      id: d,
      typeParameters: p,
      extends: b,
      body: _
    });
  }
  function Ro(d = null, p) {
    return (0, e.default)({
      type: "InterfaceTypeAnnotation",
      extends: d,
      body: p
    });
  }
  function ru(d) {
    return (0, e.default)({
      type: "IntersectionTypeAnnotation",
      types: d
    });
  }
  function iu() {
    return {
      type: "MixedTypeAnnotation"
    };
  }
  function Bo() {
    return {
      type: "EmptyTypeAnnotation"
    };
  }
  function Fo(d) {
    return (0, e.default)({
      type: "NullableTypeAnnotation",
      typeAnnotation: d
    });
  }
  function Zn(d) {
    return (0, e.default)({
      type: "NumberLiteralTypeAnnotation",
      value: d
    });
  }
  function nu() {
    return {
      type: "NumberTypeAnnotation"
    };
  }
  function su(d, p = [], b = [], _ = [], H = !1) {
    return (0, e.default)({
      type: "ObjectTypeAnnotation",
      properties: d,
      indexers: p,
      callProperties: b,
      internalSlots: _,
      exact: H
    });
  }
  function au(d, p, b, _, H) {
    return (0, e.default)({
      type: "ObjectTypeInternalSlot",
      id: d,
      value: p,
      optional: b,
      static: _,
      method: H
    });
  }
  function jo(d) {
    return (0, e.default)({
      type: "ObjectTypeCallProperty",
      value: d,
      static: null
    });
  }
  function ou(d = null, p, b, _ = null) {
    return (0, e.default)({
      type: "ObjectTypeIndexer",
      id: d,
      key: p,
      value: b,
      variance: _,
      static: null
    });
  }
  function Ea(d, p, b = null) {
    return (0, e.default)({
      type: "ObjectTypeProperty",
      key: d,
      value: p,
      variance: b,
      kind: null,
      method: null,
      optional: null,
      proto: null,
      static: null
    });
  }
  function Xa(d) {
    return (0, e.default)({
      type: "ObjectTypeSpreadProperty",
      argument: d
    });
  }
  function Ja(d, p = null, b = null, _) {
    return (0, e.default)({
      type: "OpaqueType",
      id: d,
      typeParameters: p,
      supertype: b,
      impltype: _
    });
  }
  function Qa(d, p) {
    return (0, e.default)({
      type: "QualifiedTypeIdentifier",
      id: d,
      qualification: p
    });
  }
  function lu(d) {
    return (0, e.default)({
      type: "StringLiteralTypeAnnotation",
      value: d
    });
  }
  function uu() {
    return {
      type: "StringTypeAnnotation"
    };
  }
  function cu() {
    return {
      type: "SymbolTypeAnnotation"
    };
  }
  function pu() {
    return {
      type: "ThisTypeAnnotation"
    };
  }
  function Za(d) {
    return (0, e.default)({
      type: "TupleTypeAnnotation",
      types: d
    });
  }
  function eo(d) {
    return (0, e.default)({
      type: "TypeofTypeAnnotation",
      argument: d
    });
  }
  function to(d, p = null, b) {
    return (0, e.default)({
      type: "TypeAlias",
      id: d,
      typeParameters: p,
      right: b
    });
  }
  function fu(d) {
    return (0, e.default)({
      type: "TypeAnnotation",
      typeAnnotation: d
    });
  }
  function hu(d, p) {
    return (0, e.default)({
      type: "TypeCastExpression",
      expression: d,
      typeAnnotation: p
    });
  }
  function du(d = null, p = null, b = null) {
    return (0, e.default)({
      type: "TypeParameter",
      bound: d,
      default: p,
      variance: b,
      name: null
    });
  }
  function $o(d) {
    return (0, e.default)({
      type: "TypeParameterDeclaration",
      params: d
    });
  }
  function mu(d) {
    return (0, e.default)({
      type: "TypeParameterInstantiation",
      params: d
    });
  }
  function qs(d) {
    return (0, e.default)({
      type: "UnionTypeAnnotation",
      types: d
    });
  }
  function Vs(d) {
    return (0, e.default)({
      type: "Variance",
      kind: d
    });
  }
  function yu() {
    return {
      type: "VoidTypeAnnotation"
    };
  }
  function Uo(d, p) {
    return (0, e.default)({
      type: "EnumDeclaration",
      id: d,
      body: p
    });
  }
  function Pa(d) {
    return (0, e.default)({
      type: "EnumBooleanBody",
      members: d,
      explicitType: null,
      hasUnknownMembers: null
    });
  }
  function Ws(d) {
    return (0, e.default)({
      type: "EnumNumberBody",
      members: d,
      explicitType: null,
      hasUnknownMembers: null
    });
  }
  function ro(d) {
    return (0, e.default)({
      type: "EnumStringBody",
      members: d,
      explicitType: null,
      hasUnknownMembers: null
    });
  }
  function wa(d) {
    return (0, e.default)({
      type: "EnumSymbolBody",
      members: d,
      hasUnknownMembers: null
    });
  }
  function qo(d) {
    return (0, e.default)({
      type: "EnumBooleanMember",
      id: d,
      init: null
    });
  }
  function gu(d, p) {
    return (0, e.default)({
      type: "EnumNumberMember",
      id: d,
      init: p
    });
  }
  function io(d, p) {
    return (0, e.default)({
      type: "EnumStringMember",
      id: d,
      init: p
    });
  }
  function bu(d) {
    return (0, e.default)({
      type: "EnumDefaultedMember",
      id: d
    });
  }
  function Vo(d, p) {
    return (0, e.default)({
      type: "IndexedAccessType",
      objectType: d,
      indexType: p
    });
  }
  function Aa(d, p) {
    return (0, e.default)({
      type: "OptionalIndexedAccessType",
      objectType: d,
      indexType: p,
      optional: null
    });
  }
  function Wo(d, p = null) {
    return (0, e.default)({
      type: "JSXAttribute",
      name: d,
      value: p
    });
  }
  function vu(d) {
    return (0, e.default)({
      type: "JSXClosingElement",
      name: d
    });
  }
  function Tu(d, p = null, b, _ = null) {
    return (0, e.default)({
      type: "JSXElement",
      openingElement: d,
      closingElement: p,
      children: b,
      selfClosing: _
    });
  }
  function no() {
    return {
      type: "JSXEmptyExpression"
    };
  }
  function Ho(d) {
    return (0, e.default)({
      type: "JSXExpressionContainer",
      expression: d
    });
  }
  function Ko(d) {
    return (0, e.default)({
      type: "JSXSpreadChild",
      expression: d
    });
  }
  function Su(d) {
    return (0, e.default)({
      type: "JSXIdentifier",
      name: d
    });
  }
  function xu(d, p) {
    return (0, e.default)({
      type: "JSXMemberExpression",
      object: d,
      property: p
    });
  }
  function Hs(d, p) {
    return (0, e.default)({
      type: "JSXNamespacedName",
      namespace: d,
      name: p
    });
  }
  function Eu(d, p, b = !1) {
    return (0, e.default)({
      type: "JSXOpeningElement",
      name: d,
      attributes: p,
      selfClosing: b
    });
  }
  function es(d) {
    return (0, e.default)({
      type: "JSXSpreadAttribute",
      argument: d
    });
  }
  function Pu(d) {
    return (0, e.default)({
      type: "JSXText",
      value: d
    });
  }
  function wu(d, p, b) {
    return (0, e.default)({
      type: "JSXFragment",
      openingFragment: d,
      closingFragment: p,
      children: b
    });
  }
  function Au() {
    return {
      type: "JSXOpeningFragment"
    };
  }
  function Cu() {
    return {
      type: "JSXClosingFragment"
    };
  }
  function zo() {
    return {
      type: "Noop"
    };
  }
  function so(d, p) {
    return (0, e.default)({
      type: "Placeholder",
      expectedNode: d,
      name: p
    });
  }
  function Go(d) {
    return (0, e.default)({
      type: "V8IntrinsicIdentifier",
      name: d
    });
  }
  function Ca() {
    return {
      type: "ArgumentPlaceholder"
    };
  }
  function Yo(d, p) {
    return (0, e.default)({
      type: "BindExpression",
      object: d,
      callee: p
    });
  }
  function _u(d, p) {
    return (0, e.default)({
      type: "ImportAttribute",
      key: d,
      value: p
    });
  }
  function Iu(d) {
    return (0, e.default)({
      type: "Decorator",
      expression: d
    });
  }
  function ku(d, p = !1) {
    return (0, e.default)({
      type: "DoExpression",
      body: d,
      async: p
    });
  }
  function Ou(d) {
    return (0, e.default)({
      type: "ExportDefaultSpecifier",
      exported: d
    });
  }
  function Xo(d) {
    return (0, e.default)({
      type: "RecordExpression",
      properties: d
    });
  }
  function _s(d = []) {
    return (0, e.default)({
      type: "TupleExpression",
      elements: d
    });
  }
  function Jo(d) {
    return (0, e.default)({
      type: "DecimalLiteral",
      value: d
    });
  }
  function _a(d) {
    return (0, e.default)({
      type: "ModuleExpression",
      body: d
    });
  }
  function Qo() {
    return {
      type: "TopicReference"
    };
  }
  function Is(d) {
    return (0, e.default)({
      type: "PipelineTopicExpression",
      expression: d
    });
  }
  function Nu(d) {
    return (0, e.default)({
      type: "PipelineBareFunction",
      callee: d
    });
  }
  function Ia() {
    return {
      type: "PipelinePrimaryTopicReference"
    };
  }
  function Du(d) {
    return (0, e.default)({
      type: "TSParameterProperty",
      parameter: d
    });
  }
  function ka(d = null, p = null, b, _ = null) {
    return (0, e.default)({
      type: "TSDeclareFunction",
      id: d,
      typeParameters: p,
      params: b,
      returnType: _
    });
  }
  function Oa(d = null, p, b = null, _, H = null) {
    return (0, e.default)({
      type: "TSDeclareMethod",
      decorators: d,
      key: p,
      typeParameters: b,
      params: _,
      returnType: H
    });
  }
  function ao(d, p) {
    return (0, e.default)({
      type: "TSQualifiedName",
      left: d,
      right: p
    });
  }
  function Lu(d = null, p, b = null) {
    return (0, e.default)({
      type: "TSCallSignatureDeclaration",
      typeParameters: d,
      parameters: p,
      typeAnnotation: b
    });
  }
  function Gn(d = null, p, b = null) {
    return (0, e.default)({
      type: "TSConstructSignatureDeclaration",
      typeParameters: d,
      parameters: p,
      typeAnnotation: b
    });
  }
  function Mu(d, p = null) {
    return (0, e.default)({
      type: "TSPropertySignature",
      key: d,
      typeAnnotation: p,
      kind: null
    });
  }
  function Ru(d, p = null, b, _ = null) {
    return (0, e.default)({
      type: "TSMethodSignature",
      key: d,
      typeParameters: p,
      parameters: b,
      typeAnnotation: _,
      kind: null
    });
  }
  function Bu(d, p = null) {
    return (0, e.default)({
      type: "TSIndexSignature",
      parameters: d,
      typeAnnotation: p
    });
  }
  function Wt() {
    return {
      type: "TSAnyKeyword"
    };
  }
  function Fu() {
    return {
      type: "TSBooleanKeyword"
    };
  }
  function Zo() {
    return {
      type: "TSBigIntKeyword"
    };
  }
  function ju() {
    return {
      type: "TSIntrinsicKeyword"
    };
  }
  function $u() {
    return {
      type: "TSNeverKeyword"
    };
  }
  function Uu() {
    return {
      type: "TSNullKeyword"
    };
  }
  function qu() {
    return {
      type: "TSNumberKeyword"
    };
  }
  function Vu() {
    return {
      type: "TSObjectKeyword"
    };
  }
  function fs() {
    return {
      type: "TSStringKeyword"
    };
  }
  function ts() {
    return {
      type: "TSSymbolKeyword"
    };
  }
  function ks() {
    return {
      type: "TSUndefinedKeyword"
    };
  }
  function Wu() {
    return {
      type: "TSUnknownKeyword"
    };
  }
  function Hu() {
    return {
      type: "TSVoidKeyword"
    };
  }
  function Ku() {
    return {
      type: "TSThisType"
    };
  }
  function zu(d = null, p, b = null) {
    return (0, e.default)({
      type: "TSFunctionType",
      typeParameters: d,
      parameters: p,
      typeAnnotation: b
    });
  }
  function el(d = null, p, b = null) {
    return (0, e.default)({
      type: "TSConstructorType",
      typeParameters: d,
      parameters: p,
      typeAnnotation: b
    });
  }
  function Gu(d, p = null) {
    return (0, e.default)({
      type: "TSTypeReference",
      typeName: d,
      typeParameters: p
    });
  }
  function Yu(d, p = null, b = null) {
    return (0, e.default)({
      type: "TSTypePredicate",
      parameterName: d,
      typeAnnotation: p,
      asserts: b
    });
  }
  function Xu(d, p = null) {
    return (0, e.default)({
      type: "TSTypeQuery",
      exprName: d,
      typeParameters: p
    });
  }
  function tl(d) {
    return (0, e.default)({
      type: "TSTypeLiteral",
      members: d
    });
  }
  function Ft(d) {
    return (0, e.default)({
      type: "TSArrayType",
      elementType: d
    });
  }
  function Ju(d) {
    return (0, e.default)({
      type: "TSTupleType",
      elementTypes: d
    });
  }
  function rl(d) {
    return (0, e.default)({
      type: "TSOptionalType",
      typeAnnotation: d
    });
  }
  function Qu(d) {
    return (0, e.default)({
      type: "TSRestType",
      typeAnnotation: d
    });
  }
  function Zu(d, p, b = !1) {
    return (0, e.default)({
      type: "TSNamedTupleMember",
      label: d,
      elementType: p,
      optional: b
    });
  }
  function ec(d) {
    return (0, e.default)({
      type: "TSUnionType",
      types: d
    });
  }
  function tc(d) {
    return (0, e.default)({
      type: "TSIntersectionType",
      types: d
    });
  }
  function il(d, p, b, _) {
    return (0, e.default)({
      type: "TSConditionalType",
      checkType: d,
      extendsType: p,
      trueType: b,
      falseType: _
    });
  }
  function rc(d) {
    return (0, e.default)({
      type: "TSInferType",
      typeParameter: d
    });
  }
  function nl(d) {
    return (0, e.default)({
      type: "TSParenthesizedType",
      typeAnnotation: d
    });
  }
  function sl(d) {
    return (0, e.default)({
      type: "TSTypeOperator",
      typeAnnotation: d,
      operator: null
    });
  }
  function ic(d, p) {
    return (0, e.default)({
      type: "TSIndexedAccessType",
      objectType: d,
      indexType: p
    });
  }
  function nc(d, p = null, b = null) {
    return (0, e.default)({
      type: "TSMappedType",
      typeParameter: d,
      typeAnnotation: p,
      nameType: b
    });
  }
  function Di(d) {
    return (0, e.default)({
      type: "TSLiteralType",
      literal: d
    });
  }
  function hs(d, p = null) {
    return (0, e.default)({
      type: "TSExpressionWithTypeArguments",
      expression: d,
      typeParameters: p
    });
  }
  function al(d, p = null, b = null, _) {
    return (0, e.default)({
      type: "TSInterfaceDeclaration",
      id: d,
      typeParameters: p,
      extends: b,
      body: _
    });
  }
  function ol(d) {
    return (0, e.default)({
      type: "TSInterfaceBody",
      body: d
    });
  }
  function ll(d, p = null, b) {
    return (0, e.default)({
      type: "TSTypeAliasDeclaration",
      id: d,
      typeParameters: p,
      typeAnnotation: b
    });
  }
  function sc(d, p = null) {
    return (0, e.default)({
      type: "TSInstantiationExpression",
      expression: d,
      typeParameters: p
    });
  }
  function ul(d, p) {
    return (0, e.default)({
      type: "TSAsExpression",
      expression: d,
      typeAnnotation: p
    });
  }
  function ac(d, p) {
    return (0, e.default)({
      type: "TSSatisfiesExpression",
      expression: d,
      typeAnnotation: p
    });
  }
  function cl(d, p) {
    return (0, e.default)({
      type: "TSTypeAssertion",
      typeAnnotation: d,
      expression: p
    });
  }
  function oc(d, p) {
    return (0, e.default)({
      type: "TSEnumDeclaration",
      id: d,
      members: p
    });
  }
  function lc(d, p = null) {
    return (0, e.default)({
      type: "TSEnumMember",
      id: d,
      initializer: p
    });
  }
  function oo(d, p) {
    return (0, e.default)({
      type: "TSModuleDeclaration",
      id: d,
      body: p
    });
  }
  function uc(d) {
    return (0, e.default)({
      type: "TSModuleBlock",
      body: d
    });
  }
  function cc(d, p = null, b = null) {
    return (0, e.default)({
      type: "TSImportType",
      argument: d,
      qualifier: p,
      typeParameters: b
    });
  }
  function lo(d, p) {
    return (0, e.default)({
      type: "TSImportEqualsDeclaration",
      id: d,
      moduleReference: p,
      isExport: null
    });
  }
  function pc(d) {
    return (0, e.default)({
      type: "TSExternalModuleReference",
      expression: d
    });
  }
  function fc(d) {
    return (0, e.default)({
      type: "TSNonNullExpression",
      expression: d
    });
  }
  function pl(d) {
    return (0, e.default)({
      type: "TSExportAssignment",
      expression: d
    });
  }
  function hc(d) {
    return (0, e.default)({
      type: "TSNamespaceExportDeclaration",
      id: d
    });
  }
  function dc(d) {
    return (0, e.default)({
      type: "TSTypeAnnotation",
      typeAnnotation: d
    });
  }
  function mc(d) {
    return (0, e.default)({
      type: "TSTypeParameterInstantiation",
      params: d
    });
  }
  function yc(d) {
    return (0, e.default)({
      type: "TSTypeParameterDeclaration",
      params: d
    });
  }
  function gc(d = null, p = null, b) {
    return (0, e.default)({
      type: "TSTypeParameter",
      constraint: d,
      default: p,
      name: b
    });
  }
  function Ks(d) {
    return (0, t.default)("NumberLiteral", "NumericLiteral", "The node type "), O(d);
  }
  function fl(d, p = "") {
    return (0, t.default)("RegexLiteral", "RegExpLiteral", "The node type "), j(d, p);
  }
  function bc(d) {
    return (0, t.default)("RestProperty", "RestElement", "The node type "), W(d);
  }
  function B(d) {
    return (0, t.default)("SpreadProperty", "SpreadElement", "The node type "), X(d);
  }
  return _e;
}
var NH;
function bWe() {
  if (NH)
    return gx;
  NH = 1, Object.defineProperty(gx, "__esModule", {
    value: !0
  }), gx.default = r;
  var e = Wa(), t = sn();
  function r(i, n) {
    const s = i.value.split(/\r\n|\n|\r/);
    let a = 0;
    for (let l = 0; l < s.length; l++)
      s[l].match(/[^ \t]/) && (a = l);
    let o = "";
    for (let l = 0; l < s.length; l++) {
      const u = s[l], c = l === 0, f = l === s.length - 1, h = l === a;
      let m = u.replace(/\t/g, " ");
      c || (m = m.replace(/^[ ]+/, "")), f || (m = m.replace(/[ ]+$/, "")), m && (h || (m += " "), o += m);
    }
    o && n.push((0, t.inherits)((0, e.stringLiteral)(o), i));
  }
  return gx;
}
var DH;
function vWe() {
  if (DH)
    return yx;
  DH = 1, Object.defineProperty(yx, "__esModule", {
    value: !0
  }), yx.default = r;
  var e = De, t = bWe();
  function r(i) {
    const n = [];
    for (let s = 0; s < i.children.length; s++) {
      let a = i.children[s];
      if ((0, e.isJSXText)(a)) {
        (0, t.default)(a, n);
        continue;
      }
      (0, e.isJSXExpressionContainer)(a) && (a = a.expression), !(0, e.isJSXEmptyExpression)(a) && n.push(a);
    }
    return n;
  }
  return yx;
}
var I6 = {}, GC = {};
Object.defineProperty(GC, "__esModule", {
  value: !0
});
GC.default = SWe;
var TWe = Vc();
function SWe(e) {
  return !!(e && TWe.VISITOR_KEYS[e.type]);
}
Object.defineProperty(I6, "__esModule", {
  value: !0
});
I6.default = EWe;
var xWe = GC;
function EWe(e) {
  if (!(0, xWe.default)(e)) {
    var t;
    const r = (t = e == null ? void 0 : e.type) != null ? t : JSON.stringify(e);
    throw new TypeError('Not a valid node of type "'.concat(r, '"'));
  }
}
var Fe = {};
Object.defineProperty(Fe, "__esModule", {
  value: !0
});
Fe.assertAccessor = jYe;
Fe.assertAnyTypeAnnotation = sKe;
Fe.assertArgumentPlaceholder = Lze;
Fe.assertArrayExpression = wWe;
Fe.assertArrayPattern = EHe;
Fe.assertArrayTypeAnnotation = aKe;
Fe.assertArrowFunctionExpression = PHe;
Fe.assertAssignmentExpression = AWe;
Fe.assertAssignmentPattern = xHe;
Fe.assertAwaitExpression = zHe;
Fe.assertBigIntLiteral = YHe;
Fe.assertBinary = oYe;
Fe.assertBinaryExpression = CWe;
Fe.assertBindExpression = Mze;
Fe.assertBlock = cYe;
Fe.assertBlockParent = uYe;
Fe.assertBlockStatement = OWe;
Fe.assertBooleanLiteral = QWe;
Fe.assertBooleanLiteralTypeAnnotation = lKe;
Fe.assertBooleanTypeAnnotation = oKe;
Fe.assertBreakStatement = NWe;
Fe.assertCallExpression = DWe;
Fe.assertCatchClause = LWe;
Fe.assertClass = MYe;
Fe.assertClassAccessorProperty = eKe;
Fe.assertClassBody = wHe;
Fe.assertClassDeclaration = CHe;
Fe.assertClassExpression = AHe;
Fe.assertClassImplements = cKe;
Fe.assertClassMethod = jHe;
Fe.assertClassPrivateMethod = rKe;
Fe.assertClassPrivateProperty = tKe;
Fe.assertClassProperty = ZHe;
Fe.assertCompletionStatement = hYe;
Fe.assertConditional = dYe;
Fe.assertConditionalExpression = MWe;
Fe.assertContinueStatement = RWe;
Fe.assertDebuggerStatement = BWe;
Fe.assertDecimalLiteral = qze;
Fe.assertDeclaration = EYe;
Fe.assertDeclareClass = pKe;
Fe.assertDeclareExportAllDeclaration = TKe;
Fe.assertDeclareExportDeclaration = vKe;
Fe.assertDeclareFunction = fKe;
Fe.assertDeclareInterface = hKe;
Fe.assertDeclareModule = dKe;
Fe.assertDeclareModuleExports = mKe;
Fe.assertDeclareOpaqueType = gKe;
Fe.assertDeclareTypeAlias = yKe;
Fe.assertDeclareVariable = bKe;
Fe.assertDeclaredPredicate = SKe;
Fe.assertDecorator = Bze;
Fe.assertDirective = IWe;
Fe.assertDirectiveLiteral = kWe;
Fe.assertDoExpression = Fze;
Fe.assertDoWhileStatement = FWe;
Fe.assertEmptyStatement = jWe;
Fe.assertEmptyTypeAnnotation = NKe;
Fe.assertEnumBody = KYe;
Fe.assertEnumBooleanBody = aze;
Fe.assertEnumBooleanMember = cze;
Fe.assertEnumDeclaration = sze;
Fe.assertEnumDefaultedMember = hze;
Fe.assertEnumMember = zYe;
Fe.assertEnumNumberBody = oze;
Fe.assertEnumNumberMember = pze;
Fe.assertEnumStringBody = lze;
Fe.assertEnumStringMember = fze;
Fe.assertEnumSymbolBody = uze;
Fe.assertExistsTypeAnnotation = xKe;
Fe.assertExportAllDeclaration = _He;
Fe.assertExportDeclaration = BYe;
Fe.assertExportDefaultDeclaration = IHe;
Fe.assertExportDefaultSpecifier = jze;
Fe.assertExportNamedDeclaration = kHe;
Fe.assertExportNamespaceSpecifier = XHe;
Fe.assertExportSpecifier = OHe;
Fe.assertExpression = aYe;
Fe.assertExpressionStatement = $We;
Fe.assertExpressionWrapper = gYe;
Fe.assertFile = UWe;
Fe.assertFlow = UYe;
Fe.assertFlowBaseAnnotation = VYe;
Fe.assertFlowDeclaration = WYe;
Fe.assertFlowPredicate = HYe;
Fe.assertFlowType = qYe;
Fe.assertFor = bYe;
Fe.assertForInStatement = qWe;
Fe.assertForOfStatement = NHe;
Fe.assertForStatement = VWe;
Fe.assertForXStatement = vYe;
Fe.assertFunction = TYe;
Fe.assertFunctionDeclaration = WWe;
Fe.assertFunctionExpression = HWe;
Fe.assertFunctionParent = SYe;
Fe.assertFunctionTypeAnnotation = EKe;
Fe.assertFunctionTypeParam = PKe;
Fe.assertGenericTypeAnnotation = wKe;
Fe.assertIdentifier = KWe;
Fe.assertIfStatement = zWe;
Fe.assertImmutable = _Ye;
Fe.assertImport = GHe;
Fe.assertImportAttribute = Rze;
Fe.assertImportDeclaration = DHe;
Fe.assertImportDefaultSpecifier = LHe;
Fe.assertImportExpression = BHe;
Fe.assertImportNamespaceSpecifier = MHe;
Fe.assertImportOrExportDeclaration = RYe;
Fe.assertImportSpecifier = RHe;
Fe.assertIndexedAccessType = dze;
Fe.assertInferredPredicate = AKe;
Fe.assertInterfaceDeclaration = _Ke;
Fe.assertInterfaceExtends = CKe;
Fe.assertInterfaceTypeAnnotation = IKe;
Fe.assertInterpreterDirective = _We;
Fe.assertIntersectionTypeAnnotation = kKe;
Fe.assertJSX = GYe;
Fe.assertJSXAttribute = yze;
Fe.assertJSXClosingElement = gze;
Fe.assertJSXClosingFragment = kze;
Fe.assertJSXElement = bze;
Fe.assertJSXEmptyExpression = vze;
Fe.assertJSXExpressionContainer = Tze;
Fe.assertJSXFragment = _ze;
Fe.assertJSXIdentifier = xze;
Fe.assertJSXMemberExpression = Eze;
Fe.assertJSXNamespacedName = Pze;
Fe.assertJSXOpeningElement = wze;
Fe.assertJSXOpeningFragment = Ize;
Fe.assertJSXSpreadAttribute = Aze;
Fe.assertJSXSpreadChild = Sze;
Fe.assertJSXText = Cze;
Fe.assertLVal = wYe;
Fe.assertLabeledStatement = GWe;
Fe.assertLiteral = CYe;
Fe.assertLogicalExpression = eHe;
Fe.assertLoop = mYe;
Fe.assertMemberExpression = tHe;
Fe.assertMetaProperty = FHe;
Fe.assertMethod = kYe;
Fe.assertMiscellaneous = YYe;
Fe.assertMixedTypeAnnotation = OKe;
Fe.assertModuleDeclaration = nXe;
Fe.assertModuleExpression = Vze;
Fe.assertModuleSpecifier = FYe;
Fe.assertNewExpression = rHe;
Fe.assertNoop = Oze;
Fe.assertNullLiteral = JWe;
Fe.assertNullLiteralTypeAnnotation = uKe;
Fe.assertNullableTypeAnnotation = DKe;
Fe.assertNumberLiteral = eXe;
Fe.assertNumberLiteralTypeAnnotation = LKe;
Fe.assertNumberTypeAnnotation = MKe;
Fe.assertNumericLiteral = XWe;
Fe.assertObjectExpression = nHe;
Fe.assertObjectMember = OYe;
Fe.assertObjectMethod = sHe;
Fe.assertObjectPattern = $He;
Fe.assertObjectProperty = aHe;
Fe.assertObjectTypeAnnotation = RKe;
Fe.assertObjectTypeCallProperty = FKe;
Fe.assertObjectTypeIndexer = jKe;
Fe.assertObjectTypeInternalSlot = BKe;
Fe.assertObjectTypeProperty = $Ke;
Fe.assertObjectTypeSpreadProperty = UKe;
Fe.assertOpaqueType = qKe;
Fe.assertOptionalCallExpression = QHe;
Fe.assertOptionalIndexedAccessType = mze;
Fe.assertOptionalMemberExpression = JHe;
Fe.assertParenthesizedExpression = cHe;
Fe.assertPattern = LYe;
Fe.assertPatternLike = PYe;
Fe.assertPipelineBareFunction = Kze;
Fe.assertPipelinePrimaryTopicReference = zze;
Fe.assertPipelineTopicExpression = Hze;
Fe.assertPlaceholder = Nze;
Fe.assertPrivate = $Ye;
Fe.assertPrivateName = iKe;
Fe.assertProgram = iHe;
Fe.assertProperty = NYe;
Fe.assertPureish = xYe;
Fe.assertQualifiedTypeIdentifier = VKe;
Fe.assertRecordExpression = $ze;
Fe.assertRegExpLiteral = ZWe;
Fe.assertRegexLiteral = tXe;
Fe.assertRestElement = oHe;
Fe.assertRestProperty = rXe;
Fe.assertReturnStatement = lHe;
Fe.assertScopable = lYe;
Fe.assertSequenceExpression = uHe;
Fe.assertSpreadElement = UHe;
Fe.assertSpreadProperty = iXe;
Fe.assertStandardized = sYe;
Fe.assertStatement = pYe;
Fe.assertStaticBlock = nKe;
Fe.assertStringLiteral = YWe;
Fe.assertStringLiteralTypeAnnotation = WKe;
Fe.assertStringTypeAnnotation = HKe;
Fe.assertSuper = qHe;
Fe.assertSwitchCase = pHe;
Fe.assertSwitchStatement = fHe;
Fe.assertSymbolTypeAnnotation = KKe;
Fe.assertTSAnyKeyword = iGe;
Fe.assertTSArrayType = EGe;
Fe.assertTSAsExpression = qGe;
Fe.assertTSBaseType = ZYe;
Fe.assertTSBigIntKeyword = sGe;
Fe.assertTSBooleanKeyword = nGe;
Fe.assertTSCallSignatureDeclaration = Qze;
Fe.assertTSConditionalType = kGe;
Fe.assertTSConstructSignatureDeclaration = Zze;
Fe.assertTSConstructorType = bGe;
Fe.assertTSDeclareFunction = Yze;
Fe.assertTSDeclareMethod = Xze;
Fe.assertTSEntityName = AYe;
Fe.assertTSEnumDeclaration = HGe;
Fe.assertTSEnumMember = KGe;
Fe.assertTSExportAssignment = ZGe;
Fe.assertTSExpressionWithTypeArguments = BGe;
Fe.assertTSExternalModuleReference = JGe;
Fe.assertTSFunctionType = gGe;
Fe.assertTSImportEqualsDeclaration = XGe;
Fe.assertTSImportType = YGe;
Fe.assertTSIndexSignature = rGe;
Fe.assertTSIndexedAccessType = LGe;
Fe.assertTSInferType = OGe;
Fe.assertTSInstantiationExpression = UGe;
Fe.assertTSInterfaceBody = jGe;
Fe.assertTSInterfaceDeclaration = FGe;
Fe.assertTSIntersectionType = IGe;
Fe.assertTSIntrinsicKeyword = aGe;
Fe.assertTSLiteralType = RGe;
Fe.assertTSMappedType = MGe;
Fe.assertTSMethodSignature = tGe;
Fe.assertTSModuleBlock = GGe;
Fe.assertTSModuleDeclaration = zGe;
Fe.assertTSNamedTupleMember = CGe;
Fe.assertTSNamespaceExportDeclaration = eYe;
Fe.assertTSNeverKeyword = oGe;
Fe.assertTSNonNullExpression = QGe;
Fe.assertTSNullKeyword = lGe;
Fe.assertTSNumberKeyword = uGe;
Fe.assertTSObjectKeyword = cGe;
Fe.assertTSOptionalType = wGe;
Fe.assertTSParameterProperty = Gze;
Fe.assertTSParenthesizedType = NGe;
Fe.assertTSPropertySignature = eGe;
Fe.assertTSQualifiedName = Jze;
Fe.assertTSRestType = AGe;
Fe.assertTSSatisfiesExpression = VGe;
Fe.assertTSStringKeyword = pGe;
Fe.assertTSSymbolKeyword = fGe;
Fe.assertTSThisType = yGe;
Fe.assertTSTupleType = PGe;
Fe.assertTSType = QYe;
Fe.assertTSTypeAliasDeclaration = $Ge;
Fe.assertTSTypeAnnotation = tYe;
Fe.assertTSTypeAssertion = WGe;
Fe.assertTSTypeElement = JYe;
Fe.assertTSTypeLiteral = xGe;
Fe.assertTSTypeOperator = DGe;
Fe.assertTSTypeParameter = nYe;
Fe.assertTSTypeParameterDeclaration = iYe;
Fe.assertTSTypeParameterInstantiation = rYe;
Fe.assertTSTypePredicate = TGe;
Fe.assertTSTypeQuery = SGe;
Fe.assertTSTypeReference = vGe;
Fe.assertTSUndefinedKeyword = hGe;
Fe.assertTSUnionType = _Ge;
Fe.assertTSUnknownKeyword = dGe;
Fe.assertTSVoidKeyword = mGe;
Fe.assertTaggedTemplateExpression = VHe;
Fe.assertTemplateElement = WHe;
Fe.assertTemplateLiteral = HHe;
Fe.assertTerminatorless = fYe;
Fe.assertThisExpression = hHe;
Fe.assertThisTypeAnnotation = zKe;
Fe.assertThrowStatement = dHe;
Fe.assertTopicReference = Wze;
Fe.assertTryStatement = mHe;
Fe.assertTupleExpression = Uze;
Fe.assertTupleTypeAnnotation = GKe;
Fe.assertTypeAlias = XKe;
Fe.assertTypeAnnotation = JKe;
Fe.assertTypeCastExpression = QKe;
Fe.assertTypeParameter = ZKe;
Fe.assertTypeParameterDeclaration = eze;
Fe.assertTypeParameterInstantiation = tze;
Fe.assertTypeScript = XYe;
Fe.assertTypeofTypeAnnotation = YKe;
Fe.assertUnaryExpression = yHe;
Fe.assertUnaryLike = DYe;
Fe.assertUnionTypeAnnotation = rze;
Fe.assertUpdateExpression = gHe;
Fe.assertUserWhitespacable = IYe;
Fe.assertV8IntrinsicIdentifier = Dze;
Fe.assertVariableDeclaration = bHe;
Fe.assertVariableDeclarator = vHe;
Fe.assertVariance = ize;
Fe.assertVoidTypeAnnotation = nze;
Fe.assertWhile = yYe;
Fe.assertWhileStatement = THe;
Fe.assertWithStatement = SHe;
Fe.assertYieldExpression = KHe;
var PWe = jT(), $T = Sg;
function qe(e, t, r) {
  if (!(0, PWe.default)(e, t, r))
    throw new Error('Expected type "'.concat(e, '" with option ').concat(JSON.stringify(r), ", ") + 'but instead got "'.concat(t.type, '".'));
}
function wWe(e, t) {
  qe("ArrayExpression", e, t);
}
function AWe(e, t) {
  qe("AssignmentExpression", e, t);
}
function CWe(e, t) {
  qe("BinaryExpression", e, t);
}
function _We(e, t) {
  qe("InterpreterDirective", e, t);
}
function IWe(e, t) {
  qe("Directive", e, t);
}
function kWe(e, t) {
  qe("DirectiveLiteral", e, t);
}
function OWe(e, t) {
  qe("BlockStatement", e, t);
}
function NWe(e, t) {
  qe("BreakStatement", e, t);
}
function DWe(e, t) {
  qe("CallExpression", e, t);
}
function LWe(e, t) {
  qe("CatchClause", e, t);
}
function MWe(e, t) {
  qe("ConditionalExpression", e, t);
}
function RWe(e, t) {
  qe("ContinueStatement", e, t);
}
function BWe(e, t) {
  qe("DebuggerStatement", e, t);
}
function FWe(e, t) {
  qe("DoWhileStatement", e, t);
}
function jWe(e, t) {
  qe("EmptyStatement", e, t);
}
function $We(e, t) {
  qe("ExpressionStatement", e, t);
}
function UWe(e, t) {
  qe("File", e, t);
}
function qWe(e, t) {
  qe("ForInStatement", e, t);
}
function VWe(e, t) {
  qe("ForStatement", e, t);
}
function WWe(e, t) {
  qe("FunctionDeclaration", e, t);
}
function HWe(e, t) {
  qe("FunctionExpression", e, t);
}
function KWe(e, t) {
  qe("Identifier", e, t);
}
function zWe(e, t) {
  qe("IfStatement", e, t);
}
function GWe(e, t) {
  qe("LabeledStatement", e, t);
}
function YWe(e, t) {
  qe("StringLiteral", e, t);
}
function XWe(e, t) {
  qe("NumericLiteral", e, t);
}
function JWe(e, t) {
  qe("NullLiteral", e, t);
}
function QWe(e, t) {
  qe("BooleanLiteral", e, t);
}
function ZWe(e, t) {
  qe("RegExpLiteral", e, t);
}
function eHe(e, t) {
  qe("LogicalExpression", e, t);
}
function tHe(e, t) {
  qe("MemberExpression", e, t);
}
function rHe(e, t) {
  qe("NewExpression", e, t);
}
function iHe(e, t) {
  qe("Program", e, t);
}
function nHe(e, t) {
  qe("ObjectExpression", e, t);
}
function sHe(e, t) {
  qe("ObjectMethod", e, t);
}
function aHe(e, t) {
  qe("ObjectProperty", e, t);
}
function oHe(e, t) {
  qe("RestElement", e, t);
}
function lHe(e, t) {
  qe("ReturnStatement", e, t);
}
function uHe(e, t) {
  qe("SequenceExpression", e, t);
}
function cHe(e, t) {
  qe("ParenthesizedExpression", e, t);
}
function pHe(e, t) {
  qe("SwitchCase", e, t);
}
function fHe(e, t) {
  qe("SwitchStatement", e, t);
}
function hHe(e, t) {
  qe("ThisExpression", e, t);
}
function dHe(e, t) {
  qe("ThrowStatement", e, t);
}
function mHe(e, t) {
  qe("TryStatement", e, t);
}
function yHe(e, t) {
  qe("UnaryExpression", e, t);
}
function gHe(e, t) {
  qe("UpdateExpression", e, t);
}
function bHe(e, t) {
  qe("VariableDeclaration", e, t);
}
function vHe(e, t) {
  qe("VariableDeclarator", e, t);
}
function THe(e, t) {
  qe("WhileStatement", e, t);
}
function SHe(e, t) {
  qe("WithStatement", e, t);
}
function xHe(e, t) {
  qe("AssignmentPattern", e, t);
}
function EHe(e, t) {
  qe("ArrayPattern", e, t);
}
function PHe(e, t) {
  qe("ArrowFunctionExpression", e, t);
}
function wHe(e, t) {
  qe("ClassBody", e, t);
}
function AHe(e, t) {
  qe("ClassExpression", e, t);
}
function CHe(e, t) {
  qe("ClassDeclaration", e, t);
}
function _He(e, t) {
  qe("ExportAllDeclaration", e, t);
}
function IHe(e, t) {
  qe("ExportDefaultDeclaration", e, t);
}
function kHe(e, t) {
  qe("ExportNamedDeclaration", e, t);
}
function OHe(e, t) {
  qe("ExportSpecifier", e, t);
}
function NHe(e, t) {
  qe("ForOfStatement", e, t);
}
function DHe(e, t) {
  qe("ImportDeclaration", e, t);
}
function LHe(e, t) {
  qe("ImportDefaultSpecifier", e, t);
}
function MHe(e, t) {
  qe("ImportNamespaceSpecifier", e, t);
}
function RHe(e, t) {
  qe("ImportSpecifier", e, t);
}
function BHe(e, t) {
  qe("ImportExpression", e, t);
}
function FHe(e, t) {
  qe("MetaProperty", e, t);
}
function jHe(e, t) {
  qe("ClassMethod", e, t);
}
function $He(e, t) {
  qe("ObjectPattern", e, t);
}
function UHe(e, t) {
  qe("SpreadElement", e, t);
}
function qHe(e, t) {
  qe("Super", e, t);
}
function VHe(e, t) {
  qe("TaggedTemplateExpression", e, t);
}
function WHe(e, t) {
  qe("TemplateElement", e, t);
}
function HHe(e, t) {
  qe("TemplateLiteral", e, t);
}
function KHe(e, t) {
  qe("YieldExpression", e, t);
}
function zHe(e, t) {
  qe("AwaitExpression", e, t);
}
function GHe(e, t) {
  qe("Import", e, t);
}
function YHe(e, t) {
  qe("BigIntLiteral", e, t);
}
function XHe(e, t) {
  qe("ExportNamespaceSpecifier", e, t);
}
function JHe(e, t) {
  qe("OptionalMemberExpression", e, t);
}
function QHe(e, t) {
  qe("OptionalCallExpression", e, t);
}
function ZHe(e, t) {
  qe("ClassProperty", e, t);
}
function eKe(e, t) {
  qe("ClassAccessorProperty", e, t);
}
function tKe(e, t) {
  qe("ClassPrivateProperty", e, t);
}
function rKe(e, t) {
  qe("ClassPrivateMethod", e, t);
}
function iKe(e, t) {
  qe("PrivateName", e, t);
}
function nKe(e, t) {
  qe("StaticBlock", e, t);
}
function sKe(e, t) {
  qe("AnyTypeAnnotation", e, t);
}
function aKe(e, t) {
  qe("ArrayTypeAnnotation", e, t);
}
function oKe(e, t) {
  qe("BooleanTypeAnnotation", e, t);
}
function lKe(e, t) {
  qe("BooleanLiteralTypeAnnotation", e, t);
}
function uKe(e, t) {
  qe("NullLiteralTypeAnnotation", e, t);
}
function cKe(e, t) {
  qe("ClassImplements", e, t);
}
function pKe(e, t) {
  qe("DeclareClass", e, t);
}
function fKe(e, t) {
  qe("DeclareFunction", e, t);
}
function hKe(e, t) {
  qe("DeclareInterface", e, t);
}
function dKe(e, t) {
  qe("DeclareModule", e, t);
}
function mKe(e, t) {
  qe("DeclareModuleExports", e, t);
}
function yKe(e, t) {
  qe("DeclareTypeAlias", e, t);
}
function gKe(e, t) {
  qe("DeclareOpaqueType", e, t);
}
function bKe(e, t) {
  qe("DeclareVariable", e, t);
}
function vKe(e, t) {
  qe("DeclareExportDeclaration", e, t);
}
function TKe(e, t) {
  qe("DeclareExportAllDeclaration", e, t);
}
function SKe(e, t) {
  qe("DeclaredPredicate", e, t);
}
function xKe(e, t) {
  qe("ExistsTypeAnnotation", e, t);
}
function EKe(e, t) {
  qe("FunctionTypeAnnotation", e, t);
}
function PKe(e, t) {
  qe("FunctionTypeParam", e, t);
}
function wKe(e, t) {
  qe("GenericTypeAnnotation", e, t);
}
function AKe(e, t) {
  qe("InferredPredicate", e, t);
}
function CKe(e, t) {
  qe("InterfaceExtends", e, t);
}
function _Ke(e, t) {
  qe("InterfaceDeclaration", e, t);
}
function IKe(e, t) {
  qe("InterfaceTypeAnnotation", e, t);
}
function kKe(e, t) {
  qe("IntersectionTypeAnnotation", e, t);
}
function OKe(e, t) {
  qe("MixedTypeAnnotation", e, t);
}
function NKe(e, t) {
  qe("EmptyTypeAnnotation", e, t);
}
function DKe(e, t) {
  qe("NullableTypeAnnotation", e, t);
}
function LKe(e, t) {
  qe("NumberLiteralTypeAnnotation", e, t);
}
function MKe(e, t) {
  qe("NumberTypeAnnotation", e, t);
}
function RKe(e, t) {
  qe("ObjectTypeAnnotation", e, t);
}
function BKe(e, t) {
  qe("ObjectTypeInternalSlot", e, t);
}
function FKe(e, t) {
  qe("ObjectTypeCallProperty", e, t);
}
function jKe(e, t) {
  qe("ObjectTypeIndexer", e, t);
}
function $Ke(e, t) {
  qe("ObjectTypeProperty", e, t);
}
function UKe(e, t) {
  qe("ObjectTypeSpreadProperty", e, t);
}
function qKe(e, t) {
  qe("OpaqueType", e, t);
}
function VKe(e, t) {
  qe("QualifiedTypeIdentifier", e, t);
}
function WKe(e, t) {
  qe("StringLiteralTypeAnnotation", e, t);
}
function HKe(e, t) {
  qe("StringTypeAnnotation", e, t);
}
function KKe(e, t) {
  qe("SymbolTypeAnnotation", e, t);
}
function zKe(e, t) {
  qe("ThisTypeAnnotation", e, t);
}
function GKe(e, t) {
  qe("TupleTypeAnnotation", e, t);
}
function YKe(e, t) {
  qe("TypeofTypeAnnotation", e, t);
}
function XKe(e, t) {
  qe("TypeAlias", e, t);
}
function JKe(e, t) {
  qe("TypeAnnotation", e, t);
}
function QKe(e, t) {
  qe("TypeCastExpression", e, t);
}
function ZKe(e, t) {
  qe("TypeParameter", e, t);
}
function eze(e, t) {
  qe("TypeParameterDeclaration", e, t);
}
function tze(e, t) {
  qe("TypeParameterInstantiation", e, t);
}
function rze(e, t) {
  qe("UnionTypeAnnotation", e, t);
}
function ize(e, t) {
  qe("Variance", e, t);
}
function nze(e, t) {
  qe("VoidTypeAnnotation", e, t);
}
function sze(e, t) {
  qe("EnumDeclaration", e, t);
}
function aze(e, t) {
  qe("EnumBooleanBody", e, t);
}
function oze(e, t) {
  qe("EnumNumberBody", e, t);
}
function lze(e, t) {
  qe("EnumStringBody", e, t);
}
function uze(e, t) {
  qe("EnumSymbolBody", e, t);
}
function cze(e, t) {
  qe("EnumBooleanMember", e, t);
}
function pze(e, t) {
  qe("EnumNumberMember", e, t);
}
function fze(e, t) {
  qe("EnumStringMember", e, t);
}
function hze(e, t) {
  qe("EnumDefaultedMember", e, t);
}
function dze(e, t) {
  qe("IndexedAccessType", e, t);
}
function mze(e, t) {
  qe("OptionalIndexedAccessType", e, t);
}
function yze(e, t) {
  qe("JSXAttribute", e, t);
}
function gze(e, t) {
  qe("JSXClosingElement", e, t);
}
function bze(e, t) {
  qe("JSXElement", e, t);
}
function vze(e, t) {
  qe("JSXEmptyExpression", e, t);
}
function Tze(e, t) {
  qe("JSXExpressionContainer", e, t);
}
function Sze(e, t) {
  qe("JSXSpreadChild", e, t);
}
function xze(e, t) {
  qe("JSXIdentifier", e, t);
}
function Eze(e, t) {
  qe("JSXMemberExpression", e, t);
}
function Pze(e, t) {
  qe("JSXNamespacedName", e, t);
}
function wze(e, t) {
  qe("JSXOpeningElement", e, t);
}
function Aze(e, t) {
  qe("JSXSpreadAttribute", e, t);
}
function Cze(e, t) {
  qe("JSXText", e, t);
}
function _ze(e, t) {
  qe("JSXFragment", e, t);
}
function Ize(e, t) {
  qe("JSXOpeningFragment", e, t);
}
function kze(e, t) {
  qe("JSXClosingFragment", e, t);
}
function Oze(e, t) {
  qe("Noop", e, t);
}
function Nze(e, t) {
  qe("Placeholder", e, t);
}
function Dze(e, t) {
  qe("V8IntrinsicIdentifier", e, t);
}
function Lze(e, t) {
  qe("ArgumentPlaceholder", e, t);
}
function Mze(e, t) {
  qe("BindExpression", e, t);
}
function Rze(e, t) {
  qe("ImportAttribute", e, t);
}
function Bze(e, t) {
  qe("Decorator", e, t);
}
function Fze(e, t) {
  qe("DoExpression", e, t);
}
function jze(e, t) {
  qe("ExportDefaultSpecifier", e, t);
}
function $ze(e, t) {
  qe("RecordExpression", e, t);
}
function Uze(e, t) {
  qe("TupleExpression", e, t);
}
function qze(e, t) {
  qe("DecimalLiteral", e, t);
}
function Vze(e, t) {
  qe("ModuleExpression", e, t);
}
function Wze(e, t) {
  qe("TopicReference", e, t);
}
function Hze(e, t) {
  qe("PipelineTopicExpression", e, t);
}
function Kze(e, t) {
  qe("PipelineBareFunction", e, t);
}
function zze(e, t) {
  qe("PipelinePrimaryTopicReference", e, t);
}
function Gze(e, t) {
  qe("TSParameterProperty", e, t);
}
function Yze(e, t) {
  qe("TSDeclareFunction", e, t);
}
function Xze(e, t) {
  qe("TSDeclareMethod", e, t);
}
function Jze(e, t) {
  qe("TSQualifiedName", e, t);
}
function Qze(e, t) {
  qe("TSCallSignatureDeclaration", e, t);
}
function Zze(e, t) {
  qe("TSConstructSignatureDeclaration", e, t);
}
function eGe(e, t) {
  qe("TSPropertySignature", e, t);
}
function tGe(e, t) {
  qe("TSMethodSignature", e, t);
}
function rGe(e, t) {
  qe("TSIndexSignature", e, t);
}
function iGe(e, t) {
  qe("TSAnyKeyword", e, t);
}
function nGe(e, t) {
  qe("TSBooleanKeyword", e, t);
}
function sGe(e, t) {
  qe("TSBigIntKeyword", e, t);
}
function aGe(e, t) {
  qe("TSIntrinsicKeyword", e, t);
}
function oGe(e, t) {
  qe("TSNeverKeyword", e, t);
}
function lGe(e, t) {
  qe("TSNullKeyword", e, t);
}
function uGe(e, t) {
  qe("TSNumberKeyword", e, t);
}
function cGe(e, t) {
  qe("TSObjectKeyword", e, t);
}
function pGe(e, t) {
  qe("TSStringKeyword", e, t);
}
function fGe(e, t) {
  qe("TSSymbolKeyword", e, t);
}
function hGe(e, t) {
  qe("TSUndefinedKeyword", e, t);
}
function dGe(e, t) {
  qe("TSUnknownKeyword", e, t);
}
function mGe(e, t) {
  qe("TSVoidKeyword", e, t);
}
function yGe(e, t) {
  qe("TSThisType", e, t);
}
function gGe(e, t) {
  qe("TSFunctionType", e, t);
}
function bGe(e, t) {
  qe("TSConstructorType", e, t);
}
function vGe(e, t) {
  qe("TSTypeReference", e, t);
}
function TGe(e, t) {
  qe("TSTypePredicate", e, t);
}
function SGe(e, t) {
  qe("TSTypeQuery", e, t);
}
function xGe(e, t) {
  qe("TSTypeLiteral", e, t);
}
function EGe(e, t) {
  qe("TSArrayType", e, t);
}
function PGe(e, t) {
  qe("TSTupleType", e, t);
}
function wGe(e, t) {
  qe("TSOptionalType", e, t);
}
function AGe(e, t) {
  qe("TSRestType", e, t);
}
function CGe(e, t) {
  qe("TSNamedTupleMember", e, t);
}
function _Ge(e, t) {
  qe("TSUnionType", e, t);
}
function IGe(e, t) {
  qe("TSIntersectionType", e, t);
}
function kGe(e, t) {
  qe("TSConditionalType", e, t);
}
function OGe(e, t) {
  qe("TSInferType", e, t);
}
function NGe(e, t) {
  qe("TSParenthesizedType", e, t);
}
function DGe(e, t) {
  qe("TSTypeOperator", e, t);
}
function LGe(e, t) {
  qe("TSIndexedAccessType", e, t);
}
function MGe(e, t) {
  qe("TSMappedType", e, t);
}
function RGe(e, t) {
  qe("TSLiteralType", e, t);
}
function BGe(e, t) {
  qe("TSExpressionWithTypeArguments", e, t);
}
function FGe(e, t) {
  qe("TSInterfaceDeclaration", e, t);
}
function jGe(e, t) {
  qe("TSInterfaceBody", e, t);
}
function $Ge(e, t) {
  qe("TSTypeAliasDeclaration", e, t);
}
function UGe(e, t) {
  qe("TSInstantiationExpression", e, t);
}
function qGe(e, t) {
  qe("TSAsExpression", e, t);
}
function VGe(e, t) {
  qe("TSSatisfiesExpression", e, t);
}
function WGe(e, t) {
  qe("TSTypeAssertion", e, t);
}
function HGe(e, t) {
  qe("TSEnumDeclaration", e, t);
}
function KGe(e, t) {
  qe("TSEnumMember", e, t);
}
function zGe(e, t) {
  qe("TSModuleDeclaration", e, t);
}
function GGe(e, t) {
  qe("TSModuleBlock", e, t);
}
function YGe(e, t) {
  qe("TSImportType", e, t);
}
function XGe(e, t) {
  qe("TSImportEqualsDeclaration", e, t);
}
function JGe(e, t) {
  qe("TSExternalModuleReference", e, t);
}
function QGe(e, t) {
  qe("TSNonNullExpression", e, t);
}
function ZGe(e, t) {
  qe("TSExportAssignment", e, t);
}
function eYe(e, t) {
  qe("TSNamespaceExportDeclaration", e, t);
}
function tYe(e, t) {
  qe("TSTypeAnnotation", e, t);
}
function rYe(e, t) {
  qe("TSTypeParameterInstantiation", e, t);
}
function iYe(e, t) {
  qe("TSTypeParameterDeclaration", e, t);
}
function nYe(e, t) {
  qe("TSTypeParameter", e, t);
}
function sYe(e, t) {
  qe("Standardized", e, t);
}
function aYe(e, t) {
  qe("Expression", e, t);
}
function oYe(e, t) {
  qe("Binary", e, t);
}
function lYe(e, t) {
  qe("Scopable", e, t);
}
function uYe(e, t) {
  qe("BlockParent", e, t);
}
function cYe(e, t) {
  qe("Block", e, t);
}
function pYe(e, t) {
  qe("Statement", e, t);
}
function fYe(e, t) {
  qe("Terminatorless", e, t);
}
function hYe(e, t) {
  qe("CompletionStatement", e, t);
}
function dYe(e, t) {
  qe("Conditional", e, t);
}
function mYe(e, t) {
  qe("Loop", e, t);
}
function yYe(e, t) {
  qe("While", e, t);
}
function gYe(e, t) {
  qe("ExpressionWrapper", e, t);
}
function bYe(e, t) {
  qe("For", e, t);
}
function vYe(e, t) {
  qe("ForXStatement", e, t);
}
function TYe(e, t) {
  qe("Function", e, t);
}
function SYe(e, t) {
  qe("FunctionParent", e, t);
}
function xYe(e, t) {
  qe("Pureish", e, t);
}
function EYe(e, t) {
  qe("Declaration", e, t);
}
function PYe(e, t) {
  qe("PatternLike", e, t);
}
function wYe(e, t) {
  qe("LVal", e, t);
}
function AYe(e, t) {
  qe("TSEntityName", e, t);
}
function CYe(e, t) {
  qe("Literal", e, t);
}
function _Ye(e, t) {
  qe("Immutable", e, t);
}
function IYe(e, t) {
  qe("UserWhitespacable", e, t);
}
function kYe(e, t) {
  qe("Method", e, t);
}
function OYe(e, t) {
  qe("ObjectMember", e, t);
}
function NYe(e, t) {
  qe("Property", e, t);
}
function DYe(e, t) {
  qe("UnaryLike", e, t);
}
function LYe(e, t) {
  qe("Pattern", e, t);
}
function MYe(e, t) {
  qe("Class", e, t);
}
function RYe(e, t) {
  qe("ImportOrExportDeclaration", e, t);
}
function BYe(e, t) {
  qe("ExportDeclaration", e, t);
}
function FYe(e, t) {
  qe("ModuleSpecifier", e, t);
}
function jYe(e, t) {
  qe("Accessor", e, t);
}
function $Ye(e, t) {
  qe("Private", e, t);
}
function UYe(e, t) {
  qe("Flow", e, t);
}
function qYe(e, t) {
  qe("FlowType", e, t);
}
function VYe(e, t) {
  qe("FlowBaseAnnotation", e, t);
}
function WYe(e, t) {
  qe("FlowDeclaration", e, t);
}
function HYe(e, t) {
  qe("FlowPredicate", e, t);
}
function KYe(e, t) {
  qe("EnumBody", e, t);
}
function zYe(e, t) {
  qe("EnumMember", e, t);
}
function GYe(e, t) {
  qe("JSX", e, t);
}
function YYe(e, t) {
  qe("Miscellaneous", e, t);
}
function XYe(e, t) {
  qe("TypeScript", e, t);
}
function JYe(e, t) {
  qe("TSTypeElement", e, t);
}
function QYe(e, t) {
  qe("TSType", e, t);
}
function ZYe(e, t) {
  qe("TSBaseType", e, t);
}
function eXe(e, t) {
  (0, $T.default)("assertNumberLiteral", "assertNumericLiteral"), qe("NumberLiteral", e, t);
}
function tXe(e, t) {
  (0, $T.default)("assertRegexLiteral", "assertRegExpLiteral"), qe("RegexLiteral", e, t);
}
function rXe(e, t) {
  (0, $T.default)("assertRestProperty", "assertRestElement"), qe("RestProperty", e, t);
}
function iXe(e, t) {
  (0, $T.default)("assertSpreadProperty", "assertSpreadElement"), qe("SpreadProperty", e, t);
}
function nXe(e, t) {
  (0, $T.default)("assertModuleDeclaration", "assertImportOrExportDeclaration"), qe("ModuleDeclaration", e, t);
}
var hb = {}, LH;
function sXe() {
  if (LH)
    return hb;
  LH = 1, Object.defineProperty(hb, "__esModule", {
    value: !0
  }), hb.default = void 0;
  var e = Wa();
  hb.default = t;
  function t(r) {
    switch (r) {
      case "string":
        return (0, e.stringTypeAnnotation)();
      case "number":
        return (0, e.numberTypeAnnotation)();
      case "undefined":
        return (0, e.voidTypeAnnotation)();
      case "boolean":
        return (0, e.booleanTypeAnnotation)();
      case "function":
        return (0, e.genericTypeAnnotation)((0, e.identifier)("Function"));
      case "object":
        return (0, e.genericTypeAnnotation)((0, e.identifier)("Object"));
      case "symbol":
        return (0, e.genericTypeAnnotation)((0, e.identifier)("Symbol"));
      case "bigint":
        return (0, e.anyTypeAnnotation)();
    }
    throw new Error("Invalid typeof value: " + r);
  }
  return hb;
}
var xx = {}, YC = {};
Object.defineProperty(YC, "__esModule", {
  value: !0
});
YC.default = lfe;
var v0 = De;
function ofe(e) {
  return (0, v0.isIdentifier)(e) ? e.name : "".concat(e.id.name, ".").concat(ofe(e.qualification));
}
function lfe(e) {
  const t = Array.from(e), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Set(), s = [];
  for (let a = 0; a < t.length; a++) {
    const o = t[a];
    if (o && !(s.indexOf(o) >= 0)) {
      if ((0, v0.isAnyTypeAnnotation)(o))
        return [o];
      if ((0, v0.isFlowBaseAnnotation)(o)) {
        i.set(o.type, o);
        continue;
      }
      if ((0, v0.isUnionTypeAnnotation)(o)) {
        n.has(o.types) || (t.push(...o.types), n.add(o.types));
        continue;
      }
      if ((0, v0.isGenericTypeAnnotation)(o)) {
        const l = ofe(o.id);
        if (r.has(l)) {
          let u = r.get(l);
          u.typeParameters ? o.typeParameters && (u.typeParameters.params.push(...o.typeParameters.params), u.typeParameters.params = lfe(u.typeParameters.params)) : u = o.typeParameters;
        } else
          r.set(l, o);
        continue;
      }
      s.push(o);
    }
  }
  for (const [, a] of i)
    s.push(a);
  for (const [, a] of r)
    s.push(a);
  return s;
}
var MH;
function aXe() {
  if (MH)
    return xx;
  MH = 1, Object.defineProperty(xx, "__esModule", {
    value: !0
  }), xx.default = r;
  var e = Wa(), t = YC;
  function r(i) {
    const n = (0, t.default)(i);
    return n.length === 1 ? n[0] : (0, e.unionTypeAnnotation)(n);
  }
  return xx;
}
var Ex = {}, k6 = {};
Object.defineProperty(k6, "__esModule", {
  value: !0
});
k6.default = cfe;
var T0 = De;
function ufe(e) {
  return (0, T0.isIdentifier)(e) ? e.name : "".concat(e.right.name, ".").concat(ufe(e.left));
}
function cfe(e) {
  const t = Array.from(e), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Set(), s = [];
  for (let a = 0; a < t.length; a++) {
    const o = t[a];
    if (o && !(s.indexOf(o) >= 0)) {
      if ((0, T0.isTSAnyKeyword)(o))
        return [o];
      if ((0, T0.isTSBaseType)(o)) {
        i.set(o.type, o);
        continue;
      }
      if ((0, T0.isTSUnionType)(o)) {
        n.has(o.types) || (t.push(...o.types), n.add(o.types));
        continue;
      }
      if ((0, T0.isTSTypeReference)(o) && o.typeParameters) {
        const l = ufe(o.typeName);
        if (r.has(l)) {
          let u = r.get(l);
          u.typeParameters ? o.typeParameters && (u.typeParameters.params.push(...o.typeParameters.params), u.typeParameters.params = cfe(u.typeParameters.params)) : u = o.typeParameters;
        } else
          r.set(l, o);
        continue;
      }
      s.push(o);
    }
  }
  for (const [, a] of i)
    s.push(a);
  for (const [, a] of r)
    s.push(a);
  return s;
}
var RH;
function oXe() {
  if (RH)
    return Ex;
  RH = 1, Object.defineProperty(Ex, "__esModule", {
    value: !0
  }), Ex.default = i;
  var e = Wa(), t = k6, r = De;
  function i(n) {
    const s = n.map((o) => (0, r.isTSTypeAnnotation)(o) ? o.typeAnnotation : o), a = (0, t.default)(s);
    return a.length === 1 ? a[0] : (0, e.tsUnionType)(a);
  }
  return Ex;
}
var AM = {}, BH;
function lXe() {
  return BH || (BH = 1, function(e) {
    Object.defineProperty(e, "__esModule", {
      value: !0
    }), Object.defineProperty(e, "AnyTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.anyTypeAnnotation;
      }
    }), Object.defineProperty(e, "ArgumentPlaceholder", {
      enumerable: !0,
      get: function() {
        return t.argumentPlaceholder;
      }
    }), Object.defineProperty(e, "ArrayExpression", {
      enumerable: !0,
      get: function() {
        return t.arrayExpression;
      }
    }), Object.defineProperty(e, "ArrayPattern", {
      enumerable: !0,
      get: function() {
        return t.arrayPattern;
      }
    }), Object.defineProperty(e, "ArrayTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.arrayTypeAnnotation;
      }
    }), Object.defineProperty(e, "ArrowFunctionExpression", {
      enumerable: !0,
      get: function() {
        return t.arrowFunctionExpression;
      }
    }), Object.defineProperty(e, "AssignmentExpression", {
      enumerable: !0,
      get: function() {
        return t.assignmentExpression;
      }
    }), Object.defineProperty(e, "AssignmentPattern", {
      enumerable: !0,
      get: function() {
        return t.assignmentPattern;
      }
    }), Object.defineProperty(e, "AwaitExpression", {
      enumerable: !0,
      get: function() {
        return t.awaitExpression;
      }
    }), Object.defineProperty(e, "BigIntLiteral", {
      enumerable: !0,
      get: function() {
        return t.bigIntLiteral;
      }
    }), Object.defineProperty(e, "BinaryExpression", {
      enumerable: !0,
      get: function() {
        return t.binaryExpression;
      }
    }), Object.defineProperty(e, "BindExpression", {
      enumerable: !0,
      get: function() {
        return t.bindExpression;
      }
    }), Object.defineProperty(e, "BlockStatement", {
      enumerable: !0,
      get: function() {
        return t.blockStatement;
      }
    }), Object.defineProperty(e, "BooleanLiteral", {
      enumerable: !0,
      get: function() {
        return t.booleanLiteral;
      }
    }), Object.defineProperty(e, "BooleanLiteralTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.booleanLiteralTypeAnnotation;
      }
    }), Object.defineProperty(e, "BooleanTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.booleanTypeAnnotation;
      }
    }), Object.defineProperty(e, "BreakStatement", {
      enumerable: !0,
      get: function() {
        return t.breakStatement;
      }
    }), Object.defineProperty(e, "CallExpression", {
      enumerable: !0,
      get: function() {
        return t.callExpression;
      }
    }), Object.defineProperty(e, "CatchClause", {
      enumerable: !0,
      get: function() {
        return t.catchClause;
      }
    }), Object.defineProperty(e, "ClassAccessorProperty", {
      enumerable: !0,
      get: function() {
        return t.classAccessorProperty;
      }
    }), Object.defineProperty(e, "ClassBody", {
      enumerable: !0,
      get: function() {
        return t.classBody;
      }
    }), Object.defineProperty(e, "ClassDeclaration", {
      enumerable: !0,
      get: function() {
        return t.classDeclaration;
      }
    }), Object.defineProperty(e, "ClassExpression", {
      enumerable: !0,
      get: function() {
        return t.classExpression;
      }
    }), Object.defineProperty(e, "ClassImplements", {
      enumerable: !0,
      get: function() {
        return t.classImplements;
      }
    }), Object.defineProperty(e, "ClassMethod", {
      enumerable: !0,
      get: function() {
        return t.classMethod;
      }
    }), Object.defineProperty(e, "ClassPrivateMethod", {
      enumerable: !0,
      get: function() {
        return t.classPrivateMethod;
      }
    }), Object.defineProperty(e, "ClassPrivateProperty", {
      enumerable: !0,
      get: function() {
        return t.classPrivateProperty;
      }
    }), Object.defineProperty(e, "ClassProperty", {
      enumerable: !0,
      get: function() {
        return t.classProperty;
      }
    }), Object.defineProperty(e, "ConditionalExpression", {
      enumerable: !0,
      get: function() {
        return t.conditionalExpression;
      }
    }), Object.defineProperty(e, "ContinueStatement", {
      enumerable: !0,
      get: function() {
        return t.continueStatement;
      }
    }), Object.defineProperty(e, "DebuggerStatement", {
      enumerable: !0,
      get: function() {
        return t.debuggerStatement;
      }
    }), Object.defineProperty(e, "DecimalLiteral", {
      enumerable: !0,
      get: function() {
        return t.decimalLiteral;
      }
    }), Object.defineProperty(e, "DeclareClass", {
      enumerable: !0,
      get: function() {
        return t.declareClass;
      }
    }), Object.defineProperty(e, "DeclareExportAllDeclaration", {
      enumerable: !0,
      get: function() {
        return t.declareExportAllDeclaration;
      }
    }), Object.defineProperty(e, "DeclareExportDeclaration", {
      enumerable: !0,
      get: function() {
        return t.declareExportDeclaration;
      }
    }), Object.defineProperty(e, "DeclareFunction", {
      enumerable: !0,
      get: function() {
        return t.declareFunction;
      }
    }), Object.defineProperty(e, "DeclareInterface", {
      enumerable: !0,
      get: function() {
        return t.declareInterface;
      }
    }), Object.defineProperty(e, "DeclareModule", {
      enumerable: !0,
      get: function() {
        return t.declareModule;
      }
    }), Object.defineProperty(e, "DeclareModuleExports", {
      enumerable: !0,
      get: function() {
        return t.declareModuleExports;
      }
    }), Object.defineProperty(e, "DeclareOpaqueType", {
      enumerable: !0,
      get: function() {
        return t.declareOpaqueType;
      }
    }), Object.defineProperty(e, "DeclareTypeAlias", {
      enumerable: !0,
      get: function() {
        return t.declareTypeAlias;
      }
    }), Object.defineProperty(e, "DeclareVariable", {
      enumerable: !0,
      get: function() {
        return t.declareVariable;
      }
    }), Object.defineProperty(e, "DeclaredPredicate", {
      enumerable: !0,
      get: function() {
        return t.declaredPredicate;
      }
    }), Object.defineProperty(e, "Decorator", {
      enumerable: !0,
      get: function() {
        return t.decorator;
      }
    }), Object.defineProperty(e, "Directive", {
      enumerable: !0,
      get: function() {
        return t.directive;
      }
    }), Object.defineProperty(e, "DirectiveLiteral", {
      enumerable: !0,
      get: function() {
        return t.directiveLiteral;
      }
    }), Object.defineProperty(e, "DoExpression", {
      enumerable: !0,
      get: function() {
        return t.doExpression;
      }
    }), Object.defineProperty(e, "DoWhileStatement", {
      enumerable: !0,
      get: function() {
        return t.doWhileStatement;
      }
    }), Object.defineProperty(e, "EmptyStatement", {
      enumerable: !0,
      get: function() {
        return t.emptyStatement;
      }
    }), Object.defineProperty(e, "EmptyTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.emptyTypeAnnotation;
      }
    }), Object.defineProperty(e, "EnumBooleanBody", {
      enumerable: !0,
      get: function() {
        return t.enumBooleanBody;
      }
    }), Object.defineProperty(e, "EnumBooleanMember", {
      enumerable: !0,
      get: function() {
        return t.enumBooleanMember;
      }
    }), Object.defineProperty(e, "EnumDeclaration", {
      enumerable: !0,
      get: function() {
        return t.enumDeclaration;
      }
    }), Object.defineProperty(e, "EnumDefaultedMember", {
      enumerable: !0,
      get: function() {
        return t.enumDefaultedMember;
      }
    }), Object.defineProperty(e, "EnumNumberBody", {
      enumerable: !0,
      get: function() {
        return t.enumNumberBody;
      }
    }), Object.defineProperty(e, "EnumNumberMember", {
      enumerable: !0,
      get: function() {
        return t.enumNumberMember;
      }
    }), Object.defineProperty(e, "EnumStringBody", {
      enumerable: !0,
      get: function() {
        return t.enumStringBody;
      }
    }), Object.defineProperty(e, "EnumStringMember", {
      enumerable: !0,
      get: function() {
        return t.enumStringMember;
      }
    }), Object.defineProperty(e, "EnumSymbolBody", {
      enumerable: !0,
      get: function() {
        return t.enumSymbolBody;
      }
    }), Object.defineProperty(e, "ExistsTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.existsTypeAnnotation;
      }
    }), Object.defineProperty(e, "ExportAllDeclaration", {
      enumerable: !0,
      get: function() {
        return t.exportAllDeclaration;
      }
    }), Object.defineProperty(e, "ExportDefaultDeclaration", {
      enumerable: !0,
      get: function() {
        return t.exportDefaultDeclaration;
      }
    }), Object.defineProperty(e, "ExportDefaultSpecifier", {
      enumerable: !0,
      get: function() {
        return t.exportDefaultSpecifier;
      }
    }), Object.defineProperty(e, "ExportNamedDeclaration", {
      enumerable: !0,
      get: function() {
        return t.exportNamedDeclaration;
      }
    }), Object.defineProperty(e, "ExportNamespaceSpecifier", {
      enumerable: !0,
      get: function() {
        return t.exportNamespaceSpecifier;
      }
    }), Object.defineProperty(e, "ExportSpecifier", {
      enumerable: !0,
      get: function() {
        return t.exportSpecifier;
      }
    }), Object.defineProperty(e, "ExpressionStatement", {
      enumerable: !0,
      get: function() {
        return t.expressionStatement;
      }
    }), Object.defineProperty(e, "File", {
      enumerable: !0,
      get: function() {
        return t.file;
      }
    }), Object.defineProperty(e, "ForInStatement", {
      enumerable: !0,
      get: function() {
        return t.forInStatement;
      }
    }), Object.defineProperty(e, "ForOfStatement", {
      enumerable: !0,
      get: function() {
        return t.forOfStatement;
      }
    }), Object.defineProperty(e, "ForStatement", {
      enumerable: !0,
      get: function() {
        return t.forStatement;
      }
    }), Object.defineProperty(e, "FunctionDeclaration", {
      enumerable: !0,
      get: function() {
        return t.functionDeclaration;
      }
    }), Object.defineProperty(e, "FunctionExpression", {
      enumerable: !0,
      get: function() {
        return t.functionExpression;
      }
    }), Object.defineProperty(e, "FunctionTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.functionTypeAnnotation;
      }
    }), Object.defineProperty(e, "FunctionTypeParam", {
      enumerable: !0,
      get: function() {
        return t.functionTypeParam;
      }
    }), Object.defineProperty(e, "GenericTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.genericTypeAnnotation;
      }
    }), Object.defineProperty(e, "Identifier", {
      enumerable: !0,
      get: function() {
        return t.identifier;
      }
    }), Object.defineProperty(e, "IfStatement", {
      enumerable: !0,
      get: function() {
        return t.ifStatement;
      }
    }), Object.defineProperty(e, "Import", {
      enumerable: !0,
      get: function() {
        return t.import;
      }
    }), Object.defineProperty(e, "ImportAttribute", {
      enumerable: !0,
      get: function() {
        return t.importAttribute;
      }
    }), Object.defineProperty(e, "ImportDeclaration", {
      enumerable: !0,
      get: function() {
        return t.importDeclaration;
      }
    }), Object.defineProperty(e, "ImportDefaultSpecifier", {
      enumerable: !0,
      get: function() {
        return t.importDefaultSpecifier;
      }
    }), Object.defineProperty(e, "ImportExpression", {
      enumerable: !0,
      get: function() {
        return t.importExpression;
      }
    }), Object.defineProperty(e, "ImportNamespaceSpecifier", {
      enumerable: !0,
      get: function() {
        return t.importNamespaceSpecifier;
      }
    }), Object.defineProperty(e, "ImportSpecifier", {
      enumerable: !0,
      get: function() {
        return t.importSpecifier;
      }
    }), Object.defineProperty(e, "IndexedAccessType", {
      enumerable: !0,
      get: function() {
        return t.indexedAccessType;
      }
    }), Object.defineProperty(e, "InferredPredicate", {
      enumerable: !0,
      get: function() {
        return t.inferredPredicate;
      }
    }), Object.defineProperty(e, "InterfaceDeclaration", {
      enumerable: !0,
      get: function() {
        return t.interfaceDeclaration;
      }
    }), Object.defineProperty(e, "InterfaceExtends", {
      enumerable: !0,
      get: function() {
        return t.interfaceExtends;
      }
    }), Object.defineProperty(e, "InterfaceTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.interfaceTypeAnnotation;
      }
    }), Object.defineProperty(e, "InterpreterDirective", {
      enumerable: !0,
      get: function() {
        return t.interpreterDirective;
      }
    }), Object.defineProperty(e, "IntersectionTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.intersectionTypeAnnotation;
      }
    }), Object.defineProperty(e, "JSXAttribute", {
      enumerable: !0,
      get: function() {
        return t.jsxAttribute;
      }
    }), Object.defineProperty(e, "JSXClosingElement", {
      enumerable: !0,
      get: function() {
        return t.jsxClosingElement;
      }
    }), Object.defineProperty(e, "JSXClosingFragment", {
      enumerable: !0,
      get: function() {
        return t.jsxClosingFragment;
      }
    }), Object.defineProperty(e, "JSXElement", {
      enumerable: !0,
      get: function() {
        return t.jsxElement;
      }
    }), Object.defineProperty(e, "JSXEmptyExpression", {
      enumerable: !0,
      get: function() {
        return t.jsxEmptyExpression;
      }
    }), Object.defineProperty(e, "JSXExpressionContainer", {
      enumerable: !0,
      get: function() {
        return t.jsxExpressionContainer;
      }
    }), Object.defineProperty(e, "JSXFragment", {
      enumerable: !0,
      get: function() {
        return t.jsxFragment;
      }
    }), Object.defineProperty(e, "JSXIdentifier", {
      enumerable: !0,
      get: function() {
        return t.jsxIdentifier;
      }
    }), Object.defineProperty(e, "JSXMemberExpression", {
      enumerable: !0,
      get: function() {
        return t.jsxMemberExpression;
      }
    }), Object.defineProperty(e, "JSXNamespacedName", {
      enumerable: !0,
      get: function() {
        return t.jsxNamespacedName;
      }
    }), Object.defineProperty(e, "JSXOpeningElement", {
      enumerable: !0,
      get: function() {
        return t.jsxOpeningElement;
      }
    }), Object.defineProperty(e, "JSXOpeningFragment", {
      enumerable: !0,
      get: function() {
        return t.jsxOpeningFragment;
      }
    }), Object.defineProperty(e, "JSXSpreadAttribute", {
      enumerable: !0,
      get: function() {
        return t.jsxSpreadAttribute;
      }
    }), Object.defineProperty(e, "JSXSpreadChild", {
      enumerable: !0,
      get: function() {
        return t.jsxSpreadChild;
      }
    }), Object.defineProperty(e, "JSXText", {
      enumerable: !0,
      get: function() {
        return t.jsxText;
      }
    }), Object.defineProperty(e, "LabeledStatement", {
      enumerable: !0,
      get: function() {
        return t.labeledStatement;
      }
    }), Object.defineProperty(e, "LogicalExpression", {
      enumerable: !0,
      get: function() {
        return t.logicalExpression;
      }
    }), Object.defineProperty(e, "MemberExpression", {
      enumerable: !0,
      get: function() {
        return t.memberExpression;
      }
    }), Object.defineProperty(e, "MetaProperty", {
      enumerable: !0,
      get: function() {
        return t.metaProperty;
      }
    }), Object.defineProperty(e, "MixedTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.mixedTypeAnnotation;
      }
    }), Object.defineProperty(e, "ModuleExpression", {
      enumerable: !0,
      get: function() {
        return t.moduleExpression;
      }
    }), Object.defineProperty(e, "NewExpression", {
      enumerable: !0,
      get: function() {
        return t.newExpression;
      }
    }), Object.defineProperty(e, "Noop", {
      enumerable: !0,
      get: function() {
        return t.noop;
      }
    }), Object.defineProperty(e, "NullLiteral", {
      enumerable: !0,
      get: function() {
        return t.nullLiteral;
      }
    }), Object.defineProperty(e, "NullLiteralTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.nullLiteralTypeAnnotation;
      }
    }), Object.defineProperty(e, "NullableTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.nullableTypeAnnotation;
      }
    }), Object.defineProperty(e, "NumberLiteral", {
      enumerable: !0,
      get: function() {
        return t.numberLiteral;
      }
    }), Object.defineProperty(e, "NumberLiteralTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.numberLiteralTypeAnnotation;
      }
    }), Object.defineProperty(e, "NumberTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.numberTypeAnnotation;
      }
    }), Object.defineProperty(e, "NumericLiteral", {
      enumerable: !0,
      get: function() {
        return t.numericLiteral;
      }
    }), Object.defineProperty(e, "ObjectExpression", {
      enumerable: !0,
      get: function() {
        return t.objectExpression;
      }
    }), Object.defineProperty(e, "ObjectMethod", {
      enumerable: !0,
      get: function() {
        return t.objectMethod;
      }
    }), Object.defineProperty(e, "ObjectPattern", {
      enumerable: !0,
      get: function() {
        return t.objectPattern;
      }
    }), Object.defineProperty(e, "ObjectProperty", {
      enumerable: !0,
      get: function() {
        return t.objectProperty;
      }
    }), Object.defineProperty(e, "ObjectTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.objectTypeAnnotation;
      }
    }), Object.defineProperty(e, "ObjectTypeCallProperty", {
      enumerable: !0,
      get: function() {
        return t.objectTypeCallProperty;
      }
    }), Object.defineProperty(e, "ObjectTypeIndexer", {
      enumerable: !0,
      get: function() {
        return t.objectTypeIndexer;
      }
    }), Object.defineProperty(e, "ObjectTypeInternalSlot", {
      enumerable: !0,
      get: function() {
        return t.objectTypeInternalSlot;
      }
    }), Object.defineProperty(e, "ObjectTypeProperty", {
      enumerable: !0,
      get: function() {
        return t.objectTypeProperty;
      }
    }), Object.defineProperty(e, "ObjectTypeSpreadProperty", {
      enumerable: !0,
      get: function() {
        return t.objectTypeSpreadProperty;
      }
    }), Object.defineProperty(e, "OpaqueType", {
      enumerable: !0,
      get: function() {
        return t.opaqueType;
      }
    }), Object.defineProperty(e, "OptionalCallExpression", {
      enumerable: !0,
      get: function() {
        return t.optionalCallExpression;
      }
    }), Object.defineProperty(e, "OptionalIndexedAccessType", {
      enumerable: !0,
      get: function() {
        return t.optionalIndexedAccessType;
      }
    }), Object.defineProperty(e, "OptionalMemberExpression", {
      enumerable: !0,
      get: function() {
        return t.optionalMemberExpression;
      }
    }), Object.defineProperty(e, "ParenthesizedExpression", {
      enumerable: !0,
      get: function() {
        return t.parenthesizedExpression;
      }
    }), Object.defineProperty(e, "PipelineBareFunction", {
      enumerable: !0,
      get: function() {
        return t.pipelineBareFunction;
      }
    }), Object.defineProperty(e, "PipelinePrimaryTopicReference", {
      enumerable: !0,
      get: function() {
        return t.pipelinePrimaryTopicReference;
      }
    }), Object.defineProperty(e, "PipelineTopicExpression", {
      enumerable: !0,
      get: function() {
        return t.pipelineTopicExpression;
      }
    }), Object.defineProperty(e, "Placeholder", {
      enumerable: !0,
      get: function() {
        return t.placeholder;
      }
    }), Object.defineProperty(e, "PrivateName", {
      enumerable: !0,
      get: function() {
        return t.privateName;
      }
    }), Object.defineProperty(e, "Program", {
      enumerable: !0,
      get: function() {
        return t.program;
      }
    }), Object.defineProperty(e, "QualifiedTypeIdentifier", {
      enumerable: !0,
      get: function() {
        return t.qualifiedTypeIdentifier;
      }
    }), Object.defineProperty(e, "RecordExpression", {
      enumerable: !0,
      get: function() {
        return t.recordExpression;
      }
    }), Object.defineProperty(e, "RegExpLiteral", {
      enumerable: !0,
      get: function() {
        return t.regExpLiteral;
      }
    }), Object.defineProperty(e, "RegexLiteral", {
      enumerable: !0,
      get: function() {
        return t.regexLiteral;
      }
    }), Object.defineProperty(e, "RestElement", {
      enumerable: !0,
      get: function() {
        return t.restElement;
      }
    }), Object.defineProperty(e, "RestProperty", {
      enumerable: !0,
      get: function() {
        return t.restProperty;
      }
    }), Object.defineProperty(e, "ReturnStatement", {
      enumerable: !0,
      get: function() {
        return t.returnStatement;
      }
    }), Object.defineProperty(e, "SequenceExpression", {
      enumerable: !0,
      get: function() {
        return t.sequenceExpression;
      }
    }), Object.defineProperty(e, "SpreadElement", {
      enumerable: !0,
      get: function() {
        return t.spreadElement;
      }
    }), Object.defineProperty(e, "SpreadProperty", {
      enumerable: !0,
      get: function() {
        return t.spreadProperty;
      }
    }), Object.defineProperty(e, "StaticBlock", {
      enumerable: !0,
      get: function() {
        return t.staticBlock;
      }
    }), Object.defineProperty(e, "StringLiteral", {
      enumerable: !0,
      get: function() {
        return t.stringLiteral;
      }
    }), Object.defineProperty(e, "StringLiteralTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.stringLiteralTypeAnnotation;
      }
    }), Object.defineProperty(e, "StringTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.stringTypeAnnotation;
      }
    }), Object.defineProperty(e, "Super", {
      enumerable: !0,
      get: function() {
        return t.super;
      }
    }), Object.defineProperty(e, "SwitchCase", {
      enumerable: !0,
      get: function() {
        return t.switchCase;
      }
    }), Object.defineProperty(e, "SwitchStatement", {
      enumerable: !0,
      get: function() {
        return t.switchStatement;
      }
    }), Object.defineProperty(e, "SymbolTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.symbolTypeAnnotation;
      }
    }), Object.defineProperty(e, "TSAnyKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsAnyKeyword;
      }
    }), Object.defineProperty(e, "TSArrayType", {
      enumerable: !0,
      get: function() {
        return t.tsArrayType;
      }
    }), Object.defineProperty(e, "TSAsExpression", {
      enumerable: !0,
      get: function() {
        return t.tsAsExpression;
      }
    }), Object.defineProperty(e, "TSBigIntKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsBigIntKeyword;
      }
    }), Object.defineProperty(e, "TSBooleanKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsBooleanKeyword;
      }
    }), Object.defineProperty(e, "TSCallSignatureDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsCallSignatureDeclaration;
      }
    }), Object.defineProperty(e, "TSConditionalType", {
      enumerable: !0,
      get: function() {
        return t.tsConditionalType;
      }
    }), Object.defineProperty(e, "TSConstructSignatureDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsConstructSignatureDeclaration;
      }
    }), Object.defineProperty(e, "TSConstructorType", {
      enumerable: !0,
      get: function() {
        return t.tsConstructorType;
      }
    }), Object.defineProperty(e, "TSDeclareFunction", {
      enumerable: !0,
      get: function() {
        return t.tsDeclareFunction;
      }
    }), Object.defineProperty(e, "TSDeclareMethod", {
      enumerable: !0,
      get: function() {
        return t.tsDeclareMethod;
      }
    }), Object.defineProperty(e, "TSEnumDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsEnumDeclaration;
      }
    }), Object.defineProperty(e, "TSEnumMember", {
      enumerable: !0,
      get: function() {
        return t.tsEnumMember;
      }
    }), Object.defineProperty(e, "TSExportAssignment", {
      enumerable: !0,
      get: function() {
        return t.tsExportAssignment;
      }
    }), Object.defineProperty(e, "TSExpressionWithTypeArguments", {
      enumerable: !0,
      get: function() {
        return t.tsExpressionWithTypeArguments;
      }
    }), Object.defineProperty(e, "TSExternalModuleReference", {
      enumerable: !0,
      get: function() {
        return t.tsExternalModuleReference;
      }
    }), Object.defineProperty(e, "TSFunctionType", {
      enumerable: !0,
      get: function() {
        return t.tsFunctionType;
      }
    }), Object.defineProperty(e, "TSImportEqualsDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsImportEqualsDeclaration;
      }
    }), Object.defineProperty(e, "TSImportType", {
      enumerable: !0,
      get: function() {
        return t.tsImportType;
      }
    }), Object.defineProperty(e, "TSIndexSignature", {
      enumerable: !0,
      get: function() {
        return t.tsIndexSignature;
      }
    }), Object.defineProperty(e, "TSIndexedAccessType", {
      enumerable: !0,
      get: function() {
        return t.tsIndexedAccessType;
      }
    }), Object.defineProperty(e, "TSInferType", {
      enumerable: !0,
      get: function() {
        return t.tsInferType;
      }
    }), Object.defineProperty(e, "TSInstantiationExpression", {
      enumerable: !0,
      get: function() {
        return t.tsInstantiationExpression;
      }
    }), Object.defineProperty(e, "TSInterfaceBody", {
      enumerable: !0,
      get: function() {
        return t.tsInterfaceBody;
      }
    }), Object.defineProperty(e, "TSInterfaceDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsInterfaceDeclaration;
      }
    }), Object.defineProperty(e, "TSIntersectionType", {
      enumerable: !0,
      get: function() {
        return t.tsIntersectionType;
      }
    }), Object.defineProperty(e, "TSIntrinsicKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsIntrinsicKeyword;
      }
    }), Object.defineProperty(e, "TSLiteralType", {
      enumerable: !0,
      get: function() {
        return t.tsLiteralType;
      }
    }), Object.defineProperty(e, "TSMappedType", {
      enumerable: !0,
      get: function() {
        return t.tsMappedType;
      }
    }), Object.defineProperty(e, "TSMethodSignature", {
      enumerable: !0,
      get: function() {
        return t.tsMethodSignature;
      }
    }), Object.defineProperty(e, "TSModuleBlock", {
      enumerable: !0,
      get: function() {
        return t.tsModuleBlock;
      }
    }), Object.defineProperty(e, "TSModuleDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsModuleDeclaration;
      }
    }), Object.defineProperty(e, "TSNamedTupleMember", {
      enumerable: !0,
      get: function() {
        return t.tsNamedTupleMember;
      }
    }), Object.defineProperty(e, "TSNamespaceExportDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsNamespaceExportDeclaration;
      }
    }), Object.defineProperty(e, "TSNeverKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsNeverKeyword;
      }
    }), Object.defineProperty(e, "TSNonNullExpression", {
      enumerable: !0,
      get: function() {
        return t.tsNonNullExpression;
      }
    }), Object.defineProperty(e, "TSNullKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsNullKeyword;
      }
    }), Object.defineProperty(e, "TSNumberKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsNumberKeyword;
      }
    }), Object.defineProperty(e, "TSObjectKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsObjectKeyword;
      }
    }), Object.defineProperty(e, "TSOptionalType", {
      enumerable: !0,
      get: function() {
        return t.tsOptionalType;
      }
    }), Object.defineProperty(e, "TSParameterProperty", {
      enumerable: !0,
      get: function() {
        return t.tsParameterProperty;
      }
    }), Object.defineProperty(e, "TSParenthesizedType", {
      enumerable: !0,
      get: function() {
        return t.tsParenthesizedType;
      }
    }), Object.defineProperty(e, "TSPropertySignature", {
      enumerable: !0,
      get: function() {
        return t.tsPropertySignature;
      }
    }), Object.defineProperty(e, "TSQualifiedName", {
      enumerable: !0,
      get: function() {
        return t.tsQualifiedName;
      }
    }), Object.defineProperty(e, "TSRestType", {
      enumerable: !0,
      get: function() {
        return t.tsRestType;
      }
    }), Object.defineProperty(e, "TSSatisfiesExpression", {
      enumerable: !0,
      get: function() {
        return t.tsSatisfiesExpression;
      }
    }), Object.defineProperty(e, "TSStringKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsStringKeyword;
      }
    }), Object.defineProperty(e, "TSSymbolKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsSymbolKeyword;
      }
    }), Object.defineProperty(e, "TSThisType", {
      enumerable: !0,
      get: function() {
        return t.tsThisType;
      }
    }), Object.defineProperty(e, "TSTupleType", {
      enumerable: !0,
      get: function() {
        return t.tsTupleType;
      }
    }), Object.defineProperty(e, "TSTypeAliasDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsTypeAliasDeclaration;
      }
    }), Object.defineProperty(e, "TSTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.tsTypeAnnotation;
      }
    }), Object.defineProperty(e, "TSTypeAssertion", {
      enumerable: !0,
      get: function() {
        return t.tsTypeAssertion;
      }
    }), Object.defineProperty(e, "TSTypeLiteral", {
      enumerable: !0,
      get: function() {
        return t.tsTypeLiteral;
      }
    }), Object.defineProperty(e, "TSTypeOperator", {
      enumerable: !0,
      get: function() {
        return t.tsTypeOperator;
      }
    }), Object.defineProperty(e, "TSTypeParameter", {
      enumerable: !0,
      get: function() {
        return t.tsTypeParameter;
      }
    }), Object.defineProperty(e, "TSTypeParameterDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsTypeParameterDeclaration;
      }
    }), Object.defineProperty(e, "TSTypeParameterInstantiation", {
      enumerable: !0,
      get: function() {
        return t.tsTypeParameterInstantiation;
      }
    }), Object.defineProperty(e, "TSTypePredicate", {
      enumerable: !0,
      get: function() {
        return t.tsTypePredicate;
      }
    }), Object.defineProperty(e, "TSTypeQuery", {
      enumerable: !0,
      get: function() {
        return t.tsTypeQuery;
      }
    }), Object.defineProperty(e, "TSTypeReference", {
      enumerable: !0,
      get: function() {
        return t.tsTypeReference;
      }
    }), Object.defineProperty(e, "TSUndefinedKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsUndefinedKeyword;
      }
    }), Object.defineProperty(e, "TSUnionType", {
      enumerable: !0,
      get: function() {
        return t.tsUnionType;
      }
    }), Object.defineProperty(e, "TSUnknownKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsUnknownKeyword;
      }
    }), Object.defineProperty(e, "TSVoidKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsVoidKeyword;
      }
    }), Object.defineProperty(e, "TaggedTemplateExpression", {
      enumerable: !0,
      get: function() {
        return t.taggedTemplateExpression;
      }
    }), Object.defineProperty(e, "TemplateElement", {
      enumerable: !0,
      get: function() {
        return t.templateElement;
      }
    }), Object.defineProperty(e, "TemplateLiteral", {
      enumerable: !0,
      get: function() {
        return t.templateLiteral;
      }
    }), Object.defineProperty(e, "ThisExpression", {
      enumerable: !0,
      get: function() {
        return t.thisExpression;
      }
    }), Object.defineProperty(e, "ThisTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.thisTypeAnnotation;
      }
    }), Object.defineProperty(e, "ThrowStatement", {
      enumerable: !0,
      get: function() {
        return t.throwStatement;
      }
    }), Object.defineProperty(e, "TopicReference", {
      enumerable: !0,
      get: function() {
        return t.topicReference;
      }
    }), Object.defineProperty(e, "TryStatement", {
      enumerable: !0,
      get: function() {
        return t.tryStatement;
      }
    }), Object.defineProperty(e, "TupleExpression", {
      enumerable: !0,
      get: function() {
        return t.tupleExpression;
      }
    }), Object.defineProperty(e, "TupleTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.tupleTypeAnnotation;
      }
    }), Object.defineProperty(e, "TypeAlias", {
      enumerable: !0,
      get: function() {
        return t.typeAlias;
      }
    }), Object.defineProperty(e, "TypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.typeAnnotation;
      }
    }), Object.defineProperty(e, "TypeCastExpression", {
      enumerable: !0,
      get: function() {
        return t.typeCastExpression;
      }
    }), Object.defineProperty(e, "TypeParameter", {
      enumerable: !0,
      get: function() {
        return t.typeParameter;
      }
    }), Object.defineProperty(e, "TypeParameterDeclaration", {
      enumerable: !0,
      get: function() {
        return t.typeParameterDeclaration;
      }
    }), Object.defineProperty(e, "TypeParameterInstantiation", {
      enumerable: !0,
      get: function() {
        return t.typeParameterInstantiation;
      }
    }), Object.defineProperty(e, "TypeofTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.typeofTypeAnnotation;
      }
    }), Object.defineProperty(e, "UnaryExpression", {
      enumerable: !0,
      get: function() {
        return t.unaryExpression;
      }
    }), Object.defineProperty(e, "UnionTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.unionTypeAnnotation;
      }
    }), Object.defineProperty(e, "UpdateExpression", {
      enumerable: !0,
      get: function() {
        return t.updateExpression;
      }
    }), Object.defineProperty(e, "V8IntrinsicIdentifier", {
      enumerable: !0,
      get: function() {
        return t.v8IntrinsicIdentifier;
      }
    }), Object.defineProperty(e, "VariableDeclaration", {
      enumerable: !0,
      get: function() {
        return t.variableDeclaration;
      }
    }), Object.defineProperty(e, "VariableDeclarator", {
      enumerable: !0,
      get: function() {
        return t.variableDeclarator;
      }
    }), Object.defineProperty(e, "Variance", {
      enumerable: !0,
      get: function() {
        return t.variance;
      }
    }), Object.defineProperty(e, "VoidTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.voidTypeAnnotation;
      }
    }), Object.defineProperty(e, "WhileStatement", {
      enumerable: !0,
      get: function() {
        return t.whileStatement;
      }
    }), Object.defineProperty(e, "WithStatement", {
      enumerable: !0,
      get: function() {
        return t.withStatement;
      }
    }), Object.defineProperty(e, "YieldExpression", {
      enumerable: !0,
      get: function() {
        return t.yieldExpression;
      }
    });
    var t = Wa();
  }(AM)), AM;
}
var Px = {}, FH;
function pfe() {
  if (FH)
    return Px;
  FH = 1, Object.defineProperty(Px, "__esModule", {
    value: !0
  }), Px.buildUndefinedNode = t;
  var e = Wa();
  function t() {
    return (0, e.unaryExpression)("void", (0, e.numericLiteral)(0), !0);
  }
  return Px;
}
var Mf = {};
Object.defineProperty(Mf, "__esModule", {
  value: !0
});
Mf.default = uXe;
var jH = Vc(), $H = De;
const {
  hasOwn: kp
} = {
  hasOwn: Function.call.bind(Object.prototype.hasOwnProperty)
};
function UH(e, t, r, i) {
  return e && typeof e.type == "string" ? ffe(e, t, r, i) : e;
}
function qH(e, t, r, i) {
  return Array.isArray(e) ? e.map((n) => UH(n, t, r, i)) : UH(e, t, r, i);
}
function uXe(e, t = !0, r = !1) {
  return ffe(e, t, r, /* @__PURE__ */ new Map());
}
function ffe(e, t = !0, r = !1, i) {
  if (!e)
    return e;
  const {
    type: n
  } = e, s = {
    type: e.type
  };
  if ((0, $H.isIdentifier)(e))
    s.name = e.name, kp(e, "optional") && typeof e.optional == "boolean" && (s.optional = e.optional), kp(e, "typeAnnotation") && (s.typeAnnotation = t ? qH(e.typeAnnotation, !0, r, i) : e.typeAnnotation);
  else if (kp(jH.NODE_FIELDS, n))
    for (const a of Object.keys(jH.NODE_FIELDS[n]))
      kp(e, a) && (t ? s[a] = (0, $H.isFile)(e) && a === "comments" ? wx(e.comments, t, r, i) : qH(e[a], !0, r, i) : s[a] = e[a]);
  else
    throw new Error('Unknown node type: "'.concat(n, '"'));
  return kp(e, "loc") && (r ? s.loc = null : s.loc = e.loc), kp(e, "leadingComments") && (s.leadingComments = wx(e.leadingComments, t, r, i)), kp(e, "innerComments") && (s.innerComments = wx(e.innerComments, t, r, i)), kp(e, "trailingComments") && (s.trailingComments = wx(e.trailingComments, t, r, i)), kp(e, "extra") && (s.extra = Object.assign({}, e.extra)), s;
}
function wx(e, t, r, i) {
  return !e || !t ? e : e.map((n) => {
    const s = i.get(n);
    if (s)
      return s;
    const {
      type: a,
      value: o,
      loc: l
    } = n, u = {
      type: a,
      value: o,
      loc: l
    };
    return r && (u.loc = null), i.set(n, u), u;
  });
}
var O6 = {};
Object.defineProperty(O6, "__esModule", {
  value: !0
});
O6.default = pXe;
var cXe = Mf;
function pXe(e) {
  return (0, cXe.default)(e, !1);
}
var N6 = {};
Object.defineProperty(N6, "__esModule", {
  value: !0
});
N6.default = hXe;
var fXe = Mf;
function hXe(e) {
  return (0, fXe.default)(e);
}
var D6 = {};
Object.defineProperty(D6, "__esModule", {
  value: !0
});
D6.default = mXe;
var dXe = Mf;
function mXe(e) {
  return (0, dXe.default)(e, !0, !0);
}
var L6 = {};
Object.defineProperty(L6, "__esModule", {
  value: !0
});
L6.default = gXe;
var yXe = Mf;
function gXe(e) {
  return (0, yXe.default)(e, !1, !0);
}
var M6 = {}, XC = {};
Object.defineProperty(XC, "__esModule", {
  value: !0
});
XC.default = bXe;
function bXe(e, t, r) {
  if (!r || !e)
    return e;
  const i = "".concat(t, "Comments");
  return e[i] ? t === "leading" ? e[i] = r.concat(e[i]) : e[i].push(...r) : e[i] = r, e;
}
Object.defineProperty(M6, "__esModule", {
  value: !0
});
M6.default = TXe;
var vXe = XC;
function TXe(e, t, r, i) {
  return (0, vXe.default)(e, t, [{
    type: i ? "CommentLine" : "CommentBlock",
    value: r
  }]);
}
var JC = {}, UT = {};
Object.defineProperty(UT, "__esModule", {
  value: !0
});
UT.default = SXe;
function SXe(e, t, r) {
  t && r && (t[e] = Array.from(new Set([].concat(t[e], r[e]).filter(Boolean))));
}
Object.defineProperty(JC, "__esModule", {
  value: !0
});
JC.default = EXe;
var xXe = UT;
function EXe(e, t) {
  (0, xXe.default)("innerComments", e, t);
}
var QC = {};
Object.defineProperty(QC, "__esModule", {
  value: !0
});
QC.default = wXe;
var PXe = UT;
function wXe(e, t) {
  (0, PXe.default)("leadingComments", e, t);
}
var ZC = {}, e_ = {};
Object.defineProperty(e_, "__esModule", {
  value: !0
});
e_.default = CXe;
var AXe = UT;
function CXe(e, t) {
  (0, AXe.default)("trailingComments", e, t);
}
Object.defineProperty(ZC, "__esModule", {
  value: !0
});
ZC.default = OXe;
var _Xe = e_, IXe = QC, kXe = JC;
function OXe(e, t) {
  return (0, _Xe.default)(e, t), (0, IXe.default)(e, t), (0, kXe.default)(e, t), e;
}
var R6 = {};
Object.defineProperty(R6, "__esModule", {
  value: !0
});
R6.default = DXe;
var NXe = Sr;
function DXe(e) {
  return NXe.COMMENT_KEYS.forEach((t) => {
    e[t] = null;
  }), e;
}
var wt = {};
Object.defineProperty(wt, "__esModule", {
  value: !0
});
wt.WHILE_TYPES = wt.USERWHITESPACABLE_TYPES = wt.UNARYLIKE_TYPES = wt.TYPESCRIPT_TYPES = wt.TSTYPE_TYPES = wt.TSTYPEELEMENT_TYPES = wt.TSENTITYNAME_TYPES = wt.TSBASETYPE_TYPES = wt.TERMINATORLESS_TYPES = wt.STATEMENT_TYPES = wt.STANDARDIZED_TYPES = wt.SCOPABLE_TYPES = wt.PUREISH_TYPES = wt.PROPERTY_TYPES = wt.PRIVATE_TYPES = wt.PATTERN_TYPES = wt.PATTERNLIKE_TYPES = wt.OBJECTMEMBER_TYPES = wt.MODULESPECIFIER_TYPES = wt.MODULEDECLARATION_TYPES = wt.MISCELLANEOUS_TYPES = wt.METHOD_TYPES = wt.LVAL_TYPES = wt.LOOP_TYPES = wt.LITERAL_TYPES = wt.JSX_TYPES = wt.IMPORTOREXPORTDECLARATION_TYPES = wt.IMMUTABLE_TYPES = wt.FUNCTION_TYPES = wt.FUNCTIONPARENT_TYPES = wt.FOR_TYPES = wt.FORXSTATEMENT_TYPES = wt.FLOW_TYPES = wt.FLOWTYPE_TYPES = wt.FLOWPREDICATE_TYPES = wt.FLOWDECLARATION_TYPES = wt.FLOWBASEANNOTATION_TYPES = wt.EXPRESSION_TYPES = wt.EXPRESSIONWRAPPER_TYPES = wt.EXPORTDECLARATION_TYPES = wt.ENUMMEMBER_TYPES = wt.ENUMBODY_TYPES = wt.DECLARATION_TYPES = wt.CONDITIONAL_TYPES = wt.COMPLETIONSTATEMENT_TYPES = wt.CLASS_TYPES = wt.BLOCK_TYPES = wt.BLOCKPARENT_TYPES = wt.BINARY_TYPES = wt.ACCESSOR_TYPES = void 0;
var br = Vc();
wt.STANDARDIZED_TYPES = br.FLIPPED_ALIAS_KEYS.Standardized;
wt.EXPRESSION_TYPES = br.FLIPPED_ALIAS_KEYS.Expression;
wt.BINARY_TYPES = br.FLIPPED_ALIAS_KEYS.Binary;
wt.SCOPABLE_TYPES = br.FLIPPED_ALIAS_KEYS.Scopable;
wt.BLOCKPARENT_TYPES = br.FLIPPED_ALIAS_KEYS.BlockParent;
wt.BLOCK_TYPES = br.FLIPPED_ALIAS_KEYS.Block;
wt.STATEMENT_TYPES = br.FLIPPED_ALIAS_KEYS.Statement;
wt.TERMINATORLESS_TYPES = br.FLIPPED_ALIAS_KEYS.Terminatorless;
wt.COMPLETIONSTATEMENT_TYPES = br.FLIPPED_ALIAS_KEYS.CompletionStatement;
wt.CONDITIONAL_TYPES = br.FLIPPED_ALIAS_KEYS.Conditional;
wt.LOOP_TYPES = br.FLIPPED_ALIAS_KEYS.Loop;
wt.WHILE_TYPES = br.FLIPPED_ALIAS_KEYS.While;
wt.EXPRESSIONWRAPPER_TYPES = br.FLIPPED_ALIAS_KEYS.ExpressionWrapper;
wt.FOR_TYPES = br.FLIPPED_ALIAS_KEYS.For;
wt.FORXSTATEMENT_TYPES = br.FLIPPED_ALIAS_KEYS.ForXStatement;
wt.FUNCTION_TYPES = br.FLIPPED_ALIAS_KEYS.Function;
wt.FUNCTIONPARENT_TYPES = br.FLIPPED_ALIAS_KEYS.FunctionParent;
wt.PUREISH_TYPES = br.FLIPPED_ALIAS_KEYS.Pureish;
wt.DECLARATION_TYPES = br.FLIPPED_ALIAS_KEYS.Declaration;
wt.PATTERNLIKE_TYPES = br.FLIPPED_ALIAS_KEYS.PatternLike;
wt.LVAL_TYPES = br.FLIPPED_ALIAS_KEYS.LVal;
wt.TSENTITYNAME_TYPES = br.FLIPPED_ALIAS_KEYS.TSEntityName;
wt.LITERAL_TYPES = br.FLIPPED_ALIAS_KEYS.Literal;
wt.IMMUTABLE_TYPES = br.FLIPPED_ALIAS_KEYS.Immutable;
wt.USERWHITESPACABLE_TYPES = br.FLIPPED_ALIAS_KEYS.UserWhitespacable;
wt.METHOD_TYPES = br.FLIPPED_ALIAS_KEYS.Method;
wt.OBJECTMEMBER_TYPES = br.FLIPPED_ALIAS_KEYS.ObjectMember;
wt.PROPERTY_TYPES = br.FLIPPED_ALIAS_KEYS.Property;
wt.UNARYLIKE_TYPES = br.FLIPPED_ALIAS_KEYS.UnaryLike;
wt.PATTERN_TYPES = br.FLIPPED_ALIAS_KEYS.Pattern;
wt.CLASS_TYPES = br.FLIPPED_ALIAS_KEYS.Class;
const LXe = wt.IMPORTOREXPORTDECLARATION_TYPES = br.FLIPPED_ALIAS_KEYS.ImportOrExportDeclaration;
wt.EXPORTDECLARATION_TYPES = br.FLIPPED_ALIAS_KEYS.ExportDeclaration;
wt.MODULESPECIFIER_TYPES = br.FLIPPED_ALIAS_KEYS.ModuleSpecifier;
wt.ACCESSOR_TYPES = br.FLIPPED_ALIAS_KEYS.Accessor;
wt.PRIVATE_TYPES = br.FLIPPED_ALIAS_KEYS.Private;
wt.FLOW_TYPES = br.FLIPPED_ALIAS_KEYS.Flow;
wt.FLOWTYPE_TYPES = br.FLIPPED_ALIAS_KEYS.FlowType;
wt.FLOWBASEANNOTATION_TYPES = br.FLIPPED_ALIAS_KEYS.FlowBaseAnnotation;
wt.FLOWDECLARATION_TYPES = br.FLIPPED_ALIAS_KEYS.FlowDeclaration;
wt.FLOWPREDICATE_TYPES = br.FLIPPED_ALIAS_KEYS.FlowPredicate;
wt.ENUMBODY_TYPES = br.FLIPPED_ALIAS_KEYS.EnumBody;
wt.ENUMMEMBER_TYPES = br.FLIPPED_ALIAS_KEYS.EnumMember;
wt.JSX_TYPES = br.FLIPPED_ALIAS_KEYS.JSX;
wt.MISCELLANEOUS_TYPES = br.FLIPPED_ALIAS_KEYS.Miscellaneous;
wt.TYPESCRIPT_TYPES = br.FLIPPED_ALIAS_KEYS.TypeScript;
wt.TSTYPEELEMENT_TYPES = br.FLIPPED_ALIAS_KEYS.TSTypeElement;
wt.TSTYPE_TYPES = br.FLIPPED_ALIAS_KEYS.TSType;
wt.TSBASETYPE_TYPES = br.FLIPPED_ALIAS_KEYS.TSBaseType;
wt.MODULEDECLARATION_TYPES = LXe;
var Ax = {}, Cx = {}, VH;
function hfe() {
  if (VH)
    return Cx;
  VH = 1, Object.defineProperty(Cx, "__esModule", {
    value: !0
  }), Cx.default = r;
  var e = De, t = Wa();
  function r(i, n) {
    if ((0, e.isBlockStatement)(i))
      return i;
    let s = [];
    return (0, e.isEmptyStatement)(i) ? s = [] : ((0, e.isStatement)(i) || ((0, e.isFunction)(n) ? i = (0, t.returnStatement)(i) : i = (0, t.expressionStatement)(i)), s = [i]), (0, t.blockStatement)(s);
  }
  return Cx;
}
var WH;
function MXe() {
  if (WH)
    return Ax;
  WH = 1, Object.defineProperty(Ax, "__esModule", {
    value: !0
  }), Ax.default = t;
  var e = hfe();
  function t(r, i = "body") {
    const n = (0, e.default)(r[i], r);
    return r[i] = n, n;
  }
  return Ax;
}
var B6 = {}, t_ = {};
Object.defineProperty(t_, "__esModule", {
  value: !0
});
t_.default = FXe;
var RXe = nm, BXe = qc();
function FXe(e) {
  e = e + "";
  let t = "";
  for (const r of e)
    t += (0, BXe.isIdentifierChar)(r.codePointAt(0)) ? r : "-";
  return t = t.replace(/^[-0-9]+/, ""), t = t.replace(/[-\s]+(.)?/g, function(r, i) {
    return i ? i.toUpperCase() : "";
  }), (0, RXe.default)(t) || (t = "_".concat(t)), t || "_";
}
Object.defineProperty(B6, "__esModule", {
  value: !0
});
B6.default = $Xe;
var jXe = t_;
function $Xe(e) {
  return e = (0, jXe.default)(e), (e === "eval" || e === "arguments") && (e = "_" + e), e;
}
var _x = {}, HH;
function UXe() {
  if (HH)
    return _x;
  HH = 1, Object.defineProperty(_x, "__esModule", {
    value: !0
  }), _x.default = r;
  var e = De, t = Wa();
  function r(i, n = i.key || i.property) {
    return !i.computed && (0, e.isIdentifier)(n) && (n = (0, t.stringLiteral)(n.name)), n;
  }
  return _x;
}
var r_ = {};
Object.defineProperty(r_, "__esModule", {
  value: !0
});
r_.default = void 0;
var db = De;
r_.default = qXe;
function qXe(e) {
  if ((0, db.isExpressionStatement)(e) && (e = e.expression), (0, db.isExpression)(e))
    return e;
  if ((0, db.isClass)(e) ? e.type = "ClassExpression" : (0, db.isFunction)(e) && (e.type = "FunctionExpression"), !(0, db.isExpression)(e))
    throw new Error("cannot turn ".concat(e.type, " to an expression"));
  return e;
}
var F6 = {}, i_ = {}, n_ = {};
Object.defineProperty(n_, "__esModule", {
  value: !0
});
n_.default = IF;
var VXe = Vc();
function IF(e, t, r) {
  if (!e)
    return;
  const i = VXe.VISITOR_KEYS[e.type];
  if (i) {
    r = r || {}, t(e, r);
    for (const n of i) {
      const s = e[n];
      if (Array.isArray(s))
        for (const a of s)
          IF(a, t, r);
      else
        IF(s, t, r);
    }
  }
}
var s_ = {};
Object.defineProperty(s_, "__esModule", {
  value: !0
});
s_.default = KXe;
var WXe = Sr;
const dfe = ["tokens", "start", "end", "loc", "raw", "rawValue"], HXe = [...WXe.COMMENT_KEYS, "comments", ...dfe];
function KXe(e, t = {}) {
  const r = t.preserveComments ? dfe : HXe;
  for (const n of r)
    e[n] != null && (e[n] = void 0);
  for (const n of Object.keys(e))
    n[0] === "_" && e[n] != null && (e[n] = void 0);
  const i = Object.getOwnPropertySymbols(e);
  for (const n of i)
    e[n] = null;
}
Object.defineProperty(i_, "__esModule", {
  value: !0
});
i_.default = YXe;
var zXe = n_, GXe = s_;
function YXe(e, t) {
  return (0, zXe.default)(e, GXe.default, t), e;
}
Object.defineProperty(F6, "__esModule", {
  value: !0
});
F6.default = _d;
var KH = De, XXe = Mf, JXe = i_;
function _d(e, t = e.key) {
  let r;
  return e.kind === "method" ? _d.increment() + "" : ((0, KH.isIdentifier)(t) ? r = t.name : (0, KH.isStringLiteral)(t) ? r = JSON.stringify(t.value) : r = JSON.stringify((0, JXe.default)((0, XXe.default)(t))), e.computed && (r = "[".concat(r, "]")), e.static && (r = "static:".concat(r)), r);
}
_d.uid = 0;
_d.increment = function() {
  return _d.uid >= Number.MAX_SAFE_INTEGER ? _d.uid = 0 : _d.uid++;
};
var mb = {}, zH;
function QXe() {
  if (zH)
    return mb;
  zH = 1, Object.defineProperty(mb, "__esModule", {
    value: !0
  }), mb.default = void 0;
  var e = De, t = Wa();
  mb.default = r;
  function r(i, n) {
    if ((0, e.isStatement)(i))
      return i;
    let s = !1, a;
    if ((0, e.isClass)(i))
      s = !0, a = "ClassDeclaration";
    else if ((0, e.isFunction)(i))
      s = !0, a = "FunctionDeclaration";
    else if ((0, e.isAssignmentExpression)(i))
      return (0, t.expressionStatement)(i);
    if (s && !i.id && (a = !1), !a) {
      if (n)
        return !1;
      throw new Error("cannot turn ".concat(i.type, " to a statement"));
    }
    return i.type = a, i;
  }
  return mb;
}
var yb = {}, GH;
function ZXe() {
  if (GH)
    return yb;
  GH = 1, Object.defineProperty(yb, "__esModule", {
    value: !0
  }), yb.default = void 0;
  var e = nm, t = Wa();
  yb.default = s;
  const r = Function.call.bind(Object.prototype.toString);
  function i(a) {
    return r(a) === "[object RegExp]";
  }
  function n(a) {
    if (typeof a != "object" || a === null || Object.prototype.toString.call(a) !== "[object Object]")
      return !1;
    const o = Object.getPrototypeOf(a);
    return o === null || Object.getPrototypeOf(o) === null;
  }
  function s(a) {
    if (a === void 0)
      return (0, t.identifier)("undefined");
    if (a === !0 || a === !1)
      return (0, t.booleanLiteral)(a);
    if (a === null)
      return (0, t.nullLiteral)();
    if (typeof a == "string")
      return (0, t.stringLiteral)(a);
    if (typeof a == "number") {
      let o;
      if (Number.isFinite(a))
        o = (0, t.numericLiteral)(Math.abs(a));
      else {
        let l;
        Number.isNaN(a) ? l = (0, t.numericLiteral)(0) : l = (0, t.numericLiteral)(1), o = (0, t.binaryExpression)("/", l, (0, t.numericLiteral)(0));
      }
      return (a < 0 || Object.is(a, -0)) && (o = (0, t.unaryExpression)("-", o)), o;
    }
    if (i(a)) {
      const o = a.source, l = a.toString().match(/\/([a-z]+|)$/)[1];
      return (0, t.regExpLiteral)(o, l);
    }
    if (Array.isArray(a))
      return (0, t.arrayExpression)(a.map(s));
    if (n(a)) {
      const o = [];
      for (const l of Object.keys(a)) {
        let u;
        (0, e.default)(l) ? u = (0, t.identifier)(l) : u = (0, t.stringLiteral)(l), o.push((0, t.objectProperty)(u, s(a[l])));
      }
      return (0, t.objectExpression)(o);
    }
    throw new Error("don't know how to turn this value into a node");
  }
  return yb;
}
var Ix = {}, YH;
function eJe() {
  if (YH)
    return Ix;
  YH = 1, Object.defineProperty(Ix, "__esModule", {
    value: !0
  }), Ix.default = t;
  var e = Wa();
  function t(r, i, n = !1) {
    return r.object = (0, e.memberExpression)(r.object, r.property, r.computed), r.property = i, r.computed = !!n, r;
  }
  return Ix;
}
var j6 = {};
Object.defineProperty(j6, "__esModule", {
  value: !0
});
j6.default = rJe;
var XH = Sr, tJe = ZC;
function rJe(e, t) {
  if (!e || !t)
    return e;
  for (const r of XH.INHERIT_KEYS.optional)
    e[r] == null && (e[r] = t[r]);
  for (const r of Object.keys(t))
    r[0] === "_" && r !== "__clone" && (e[r] = t[r]);
  for (const r of XH.INHERIT_KEYS.force)
    e[r] = t[r];
  return (0, tJe.default)(e, t), e;
}
var kx = {}, JH;
function iJe() {
  if (JH)
    return kx;
  JH = 1, Object.defineProperty(kx, "__esModule", {
    value: !0
  }), kx.default = r;
  var e = Wa(), t = sn();
  function r(i, n) {
    if ((0, t.isSuper)(i.object))
      throw new Error("Cannot prepend node to super property access (`super.foo`).");
    return i.object = (0, e.memberExpression)(n, i.object), i;
  }
  return kx;
}
var xg = {};
Object.defineProperty(xg, "__esModule", {
  value: !0
});
xg.default = $6;
var Op = De;
function $6(e, t, r, i) {
  const n = [].concat(e), s = /* @__PURE__ */ Object.create(null);
  for (; n.length; ) {
    const a = n.shift();
    if (!a || i && ((0, Op.isAssignmentExpression)(a) || (0, Op.isUnaryExpression)(a) || (0, Op.isUpdateExpression)(a)))
      continue;
    if ((0, Op.isIdentifier)(a)) {
      t ? (s[a.name] = s[a.name] || []).push(a) : s[a.name] = a;
      continue;
    }
    if ((0, Op.isExportDeclaration)(a) && !(0, Op.isExportAllDeclaration)(a)) {
      (0, Op.isDeclaration)(a.declaration) && n.push(a.declaration);
      continue;
    }
    if (r) {
      if ((0, Op.isFunctionDeclaration)(a)) {
        n.push(a.id);
        continue;
      }
      if ((0, Op.isFunctionExpression)(a))
        continue;
    }
    const o = $6.keys[a.type];
    if (o)
      for (let l = 0; l < o.length; l++) {
        const u = o[l], c = a[u];
        c && (Array.isArray(c) ? n.push(...c) : n.push(c));
      }
  }
  return s;
}
$6.keys = {
  DeclareClass: ["id"],
  DeclareFunction: ["id"],
  DeclareModule: ["id"],
  DeclareVariable: ["id"],
  DeclareInterface: ["id"],
  DeclareTypeAlias: ["id"],
  DeclareOpaqueType: ["id"],
  InterfaceDeclaration: ["id"],
  TypeAlias: ["id"],
  OpaqueType: ["id"],
  CatchClause: ["param"],
  LabeledStatement: ["label"],
  UnaryExpression: ["argument"],
  AssignmentExpression: ["left"],
  ImportSpecifier: ["local"],
  ImportNamespaceSpecifier: ["local"],
  ImportDefaultSpecifier: ["local"],
  ImportDeclaration: ["specifiers"],
  ExportSpecifier: ["exported"],
  ExportNamespaceSpecifier: ["exported"],
  ExportDefaultSpecifier: ["exported"],
  FunctionDeclaration: ["id", "params"],
  FunctionExpression: ["id", "params"],
  ArrowFunctionExpression: ["params"],
  ObjectMethod: ["params"],
  ClassMethod: ["params"],
  ClassPrivateMethod: ["params"],
  ForInStatement: ["left"],
  ForOfStatement: ["left"],
  ClassDeclaration: ["id"],
  ClassExpression: ["id"],
  RestElement: ["argument"],
  UpdateExpression: ["argument"],
  ObjectProperty: ["value"],
  AssignmentPattern: ["left"],
  ArrayPattern: ["elements"],
  ObjectPattern: ["properties"],
  VariableDeclaration: ["declarations"],
  VariableDeclarator: ["id"]
};
var a_ = {};
Object.defineProperty(a_, "__esModule", {
  value: !0
});
a_.default = void 0;
var nJe = xg;
a_.default = sJe;
function sJe(e, t) {
  return (0, nJe.default)(e, t, !0);
}
var U6 = {};
Object.defineProperty(U6, "__esModule", {
  value: !0
});
U6.default = oJe;
var aJe = Vc();
function oJe(e, t, r) {
  typeof t == "function" && (t = {
    enter: t
  });
  const {
    enter: i,
    exit: n
  } = t;
  kF(e, i, n, r, []);
}
function kF(e, t, r, i, n) {
  const s = aJe.VISITOR_KEYS[e.type];
  if (s) {
    t && t(e, n, i);
    for (const a of s) {
      const o = e[a];
      if (Array.isArray(o))
        for (let l = 0; l < o.length; l++) {
          const u = o[l];
          u && (n.push({
            node: e,
            key: a,
            index: l
          }), kF(u, t, r, i, n), n.pop());
        }
      else
        o && (n.push({
          node: e,
          key: a
        }), kF(o, t, r, i, n), n.pop());
    }
    r && r(e, n, i);
  }
}
var q6 = {};
Object.defineProperty(q6, "__esModule", {
  value: !0
});
q6.default = uJe;
var lJe = xg;
function uJe(e, t, r) {
  if (r && e.type === "Identifier" && t.type === "ObjectProperty" && r.type === "ObjectExpression")
    return !1;
  const i = lJe.default.keys[t.type];
  if (i)
    for (let n = 0; n < i.length; n++) {
      const s = i[n], a = t[s];
      if (Array.isArray(a)) {
        if (a.indexOf(e) >= 0)
          return !0;
      } else if (a === e)
        return !0;
    }
  return !1;
}
var V6 = {}, o_ = {};
Object.defineProperty(o_, "__esModule", {
  value: !0
});
o_.default = fJe;
var cJe = De, pJe = Sr;
function fJe(e) {
  return (0, cJe.isVariableDeclaration)(e) && (e.kind !== "var" || e[pJe.BLOCK_SCOPED_SYMBOL]);
}
Object.defineProperty(V6, "__esModule", {
  value: !0
});
V6.default = dJe;
var QH = De, hJe = o_;
function dJe(e) {
  return (0, QH.isFunctionDeclaration)(e) || (0, QH.isClassDeclaration)(e) || (0, hJe.default)(e);
}
var W6 = {};
Object.defineProperty(W6, "__esModule", {
  value: !0
});
W6.default = gJe;
var mJe = C6(), yJe = De;
function gJe(e) {
  return (0, mJe.default)(e.type, "Immutable") ? !0 : (0, yJe.isIdentifier)(e) ? e.name === "undefined" : !1;
}
var H6 = {};
Object.defineProperty(H6, "__esModule", {
  value: !0
});
H6.default = OF;
var ZH = Vc();
function OF(e, t) {
  if (typeof e != "object" || typeof t != "object" || e == null || t == null)
    return e === t;
  if (e.type !== t.type)
    return !1;
  const r = Object.keys(ZH.NODE_FIELDS[e.type] || e.type), i = ZH.VISITOR_KEYS[e.type];
  for (const n of r) {
    const s = e[n], a = t[n];
    if (typeof s != typeof a)
      return !1;
    if (!(s == null && a == null)) {
      if (s == null || a == null)
        return !1;
      if (Array.isArray(s)) {
        if (!Array.isArray(a) || s.length !== a.length)
          return !1;
        for (let o = 0; o < s.length; o++)
          if (!OF(s[o], a[o]))
            return !1;
        continue;
      }
      if (typeof s == "object" && !(i != null && i.includes(n))) {
        for (const o of Object.keys(s))
          if (s[o] !== a[o])
            return !1;
        continue;
      }
      if (!OF(s, a))
        return !1;
    }
  }
  return !0;
}
var K6 = {};
Object.defineProperty(K6, "__esModule", {
  value: !0
});
K6.default = bJe;
function bJe(e, t, r) {
  switch (t.type) {
    case "MemberExpression":
    case "OptionalMemberExpression":
      return t.property === e ? !!t.computed : t.object === e;
    case "JSXMemberExpression":
      return t.object === e;
    case "VariableDeclarator":
      return t.init === e;
    case "ArrowFunctionExpression":
      return t.body === e;
    case "PrivateName":
      return !1;
    case "ClassMethod":
    case "ClassPrivateMethod":
    case "ObjectMethod":
      return t.key === e ? !!t.computed : !1;
    case "ObjectProperty":
      return t.key === e ? !!t.computed : !r || r.type !== "ObjectPattern";
    case "ClassProperty":
    case "ClassAccessorProperty":
      return t.key === e ? !!t.computed : !0;
    case "ClassPrivateProperty":
      return t.key !== e;
    case "ClassDeclaration":
    case "ClassExpression":
      return t.superClass === e;
    case "AssignmentExpression":
      return t.right === e;
    case "AssignmentPattern":
      return t.right === e;
    case "LabeledStatement":
      return !1;
    case "CatchClause":
      return !1;
    case "RestElement":
      return !1;
    case "BreakStatement":
    case "ContinueStatement":
      return !1;
    case "FunctionDeclaration":
    case "FunctionExpression":
      return !1;
    case "ExportNamespaceSpecifier":
    case "ExportDefaultSpecifier":
      return !1;
    case "ExportSpecifier":
      return r != null && r.source ? !1 : t.local === e;
    case "ImportDefaultSpecifier":
    case "ImportNamespaceSpecifier":
    case "ImportSpecifier":
      return !1;
    case "ImportAttribute":
      return !1;
    case "JSXAttribute":
      return !1;
    case "ObjectPattern":
    case "ArrayPattern":
      return !1;
    case "MetaProperty":
      return !1;
    case "ObjectTypeProperty":
      return t.key !== e;
    case "TSEnumMember":
      return t.id !== e;
    case "TSPropertySignature":
      return t.key === e ? !!t.computed : !0;
  }
  return !0;
}
var z6 = {};
Object.defineProperty(z6, "__esModule", {
  value: !0
});
z6.default = vJe;
var td = De;
function vJe(e, t) {
  return (0, td.isBlockStatement)(e) && ((0, td.isFunction)(t) || (0, td.isCatchClause)(t)) ? !1 : (0, td.isPattern)(e) && ((0, td.isFunction)(t) || (0, td.isCatchClause)(t)) ? !0 : (0, td.isScopable)(e);
}
var G6 = {};
Object.defineProperty(G6, "__esModule", {
  value: !0
});
G6.default = TJe;
var eK = De;
function TJe(e) {
  return (0, eK.isImportDefaultSpecifier)(e) || (0, eK.isIdentifier)(e.imported || e.exported, {
    name: "default"
  });
}
var Y6 = {};
Object.defineProperty(Y6, "__esModule", {
  value: !0
});
Y6.default = EJe;
var SJe = nm;
const xJe = /* @__PURE__ */ new Set(["abstract", "boolean", "byte", "char", "double", "enum", "final", "float", "goto", "implements", "int", "interface", "long", "native", "package", "private", "protected", "public", "short", "static", "synchronized", "throws", "transient", "volatile"]);
function EJe(e) {
  return (0, SJe.default)(e) && !xJe.has(e);
}
var X6 = {};
Object.defineProperty(X6, "__esModule", {
  value: !0
});
X6.default = AJe;
var PJe = De, wJe = Sr;
function AJe(e) {
  return (0, PJe.isVariableDeclaration)(e, {
    kind: "var"
  }) && !e[wJe.BLOCK_SCOPED_SYMBOL];
}
var Ox = {}, Nx = {}, tK;
function CJe() {
  if (tK)
    return Nx;
  tK = 1, Object.defineProperty(Nx, "__esModule", {
    value: !0
  }), Nx.default = s;
  var e = xg, t = De, r = Wa(), i = pfe(), n = Mf;
  function s(a, o) {
    const l = [];
    let u = !0;
    for (const c of a)
      if ((0, t.isEmptyStatement)(c) || (u = !1), (0, t.isExpression)(c))
        l.push(c);
      else if ((0, t.isExpressionStatement)(c))
        l.push(c.expression);
      else if ((0, t.isVariableDeclaration)(c)) {
        if (c.kind !== "var")
          return;
        for (const f of c.declarations) {
          const h = (0, e.default)(f);
          for (const m of Object.keys(h))
            o.push({
              kind: c.kind,
              id: (0, n.default)(h[m])
            });
          f.init && l.push((0, r.assignmentExpression)("=", f.id, f.init));
        }
        u = !0;
      } else if ((0, t.isIfStatement)(c)) {
        const f = c.consequent ? s([c.consequent], o) : (0, i.buildUndefinedNode)(), h = c.alternate ? s([c.alternate], o) : (0, i.buildUndefinedNode)();
        if (!f || !h)
          return;
        l.push((0, r.conditionalExpression)(c.test, f, h));
      } else if ((0, t.isBlockStatement)(c)) {
        const f = s(c.body, o);
        if (!f)
          return;
        l.push(f);
      } else if ((0, t.isEmptyStatement)(c))
        a.indexOf(c) === 0 && (u = !0);
      else
        return;
    return u && l.push((0, i.buildUndefinedNode)()), l.length === 1 ? l[0] : (0, r.sequenceExpression)(l);
  }
  return Nx;
}
var rK;
function _Je() {
  if (rK)
    return Ox;
  rK = 1, Object.defineProperty(Ox, "__esModule", {
    value: !0
  }), Ox.default = t;
  var e = CJe();
  function t(r, i) {
    if (!(r != null && r.length))
      return;
    const n = [], s = (0, e.default)(r, n);
    if (s) {
      for (const a of n)
        i.push(a);
      return s;
    }
  }
  return Ox;
}
var iK;
function sn() {
  return iK || (iK = 1, function(e) {
    Object.defineProperty(e, "__esModule", {
      value: !0
    });
    var t = {
      react: !0,
      assertNode: !0,
      createTypeAnnotationBasedOnTypeof: !0,
      createUnionTypeAnnotation: !0,
      createFlowUnionType: !0,
      createTSUnionType: !0,
      cloneNode: !0,
      clone: !0,
      cloneDeep: !0,
      cloneDeepWithoutLoc: !0,
      cloneWithoutLoc: !0,
      addComment: !0,
      addComments: !0,
      inheritInnerComments: !0,
      inheritLeadingComments: !0,
      inheritsComments: !0,
      inheritTrailingComments: !0,
      removeComments: !0,
      ensureBlock: !0,
      toBindingIdentifierName: !0,
      toBlock: !0,
      toComputedKey: !0,
      toExpression: !0,
      toIdentifier: !0,
      toKeyAlias: !0,
      toStatement: !0,
      valueToNode: !0,
      appendToMemberExpression: !0,
      inherits: !0,
      prependToMemberExpression: !0,
      removeProperties: !0,
      removePropertiesDeep: !0,
      removeTypeDuplicates: !0,
      getBindingIdentifiers: !0,
      getOuterBindingIdentifiers: !0,
      traverse: !0,
      traverseFast: !0,
      shallowEqual: !0,
      is: !0,
      isBinding: !0,
      isBlockScoped: !0,
      isImmutable: !0,
      isLet: !0,
      isNode: !0,
      isNodesEquivalent: !0,
      isPlaceholderType: !0,
      isReferenced: !0,
      isScope: !0,
      isSpecifierDefault: !0,
      isType: !0,
      isValidES3Identifier: !0,
      isValidIdentifier: !0,
      isVar: !0,
      matchesPattern: !0,
      validate: !0,
      buildMatchMemberExpression: !0,
      __internal__deprecationWarning: !0
    };
    Object.defineProperty(e, "__internal__deprecationWarning", {
      enumerable: !0,
      get: function() {
        return ge.default;
      }
    }), Object.defineProperty(e, "addComment", {
      enumerable: !0,
      get: function() {
        return S.default;
      }
    }), Object.defineProperty(e, "addComments", {
      enumerable: !0,
      get: function() {
        return P.default;
      }
    }), Object.defineProperty(e, "appendToMemberExpression", {
      enumerable: !0,
      get: function() {
        return z.default;
      }
    }), Object.defineProperty(e, "assertNode", {
      enumerable: !0,
      get: function() {
        return s.default;
      }
    }), Object.defineProperty(e, "buildMatchMemberExpression", {
      enumerable: !0,
      get: function() {
        return bt.default;
      }
    }), Object.defineProperty(e, "clone", {
      enumerable: !0,
      get: function() {
        return g.default;
      }
    }), Object.defineProperty(e, "cloneDeep", {
      enumerable: !0,
      get: function() {
        return y.default;
      }
    }), Object.defineProperty(e, "cloneDeepWithoutLoc", {
      enumerable: !0,
      get: function() {
        return v.default;
      }
    }), Object.defineProperty(e, "cloneNode", {
      enumerable: !0,
      get: function() {
        return m.default;
      }
    }), Object.defineProperty(e, "cloneWithoutLoc", {
      enumerable: !0,
      get: function() {
        return T.default;
      }
    }), Object.defineProperty(e, "createFlowUnionType", {
      enumerable: !0,
      get: function() {
        return l.default;
      }
    }), Object.defineProperty(e, "createTSUnionType", {
      enumerable: !0,
      get: function() {
        return u.default;
      }
    }), Object.defineProperty(e, "createTypeAnnotationBasedOnTypeof", {
      enumerable: !0,
      get: function() {
        return o.default;
      }
    }), Object.defineProperty(e, "createUnionTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return l.default;
      }
    }), Object.defineProperty(e, "ensureBlock", {
      enumerable: !0,
      get: function() {
        return O.default;
      }
    }), Object.defineProperty(e, "getBindingIdentifiers", {
      enumerable: !0,
      get: function() {
        return ae.default;
      }
    }), Object.defineProperty(e, "getOuterBindingIdentifiers", {
      enumerable: !0,
      get: function() {
        return be.default;
      }
    }), Object.defineProperty(e, "inheritInnerComments", {
      enumerable: !0,
      get: function() {
        return x.default;
      }
    }), Object.defineProperty(e, "inheritLeadingComments", {
      enumerable: !0,
      get: function() {
        return C.default;
      }
    }), Object.defineProperty(e, "inheritTrailingComments", {
      enumerable: !0,
      get: function() {
        return w.default;
      }
    }), Object.defineProperty(e, "inherits", {
      enumerable: !0,
      get: function() {
        return W.default;
      }
    }), Object.defineProperty(e, "inheritsComments", {
      enumerable: !0,
      get: function() {
        return D.default;
      }
    }), Object.defineProperty(e, "is", {
      enumerable: !0,
      get: function() {
        return ue.default;
      }
    }), Object.defineProperty(e, "isBinding", {
      enumerable: !0,
      get: function() {
        return me.default;
      }
    }), Object.defineProperty(e, "isBlockScoped", {
      enumerable: !0,
      get: function() {
        return xe.default;
      }
    }), Object.defineProperty(e, "isImmutable", {
      enumerable: !0,
      get: function() {
        return Pe.default;
      }
    }), Object.defineProperty(e, "isLet", {
      enumerable: !0,
      get: function() {
        return ve.default;
      }
    }), Object.defineProperty(e, "isNode", {
      enumerable: !0,
      get: function() {
        return Xe.default;
      }
    }), Object.defineProperty(e, "isNodesEquivalent", {
      enumerable: !0,
      get: function() {
        return st.default;
      }
    }), Object.defineProperty(e, "isPlaceholderType", {
      enumerable: !0,
      get: function() {
        return Se.default;
      }
    }), Object.defineProperty(e, "isReferenced", {
      enumerable: !0,
      get: function() {
        return oe.default;
      }
    }), Object.defineProperty(e, "isScope", {
      enumerable: !0,
      get: function() {
        return te.default;
      }
    }), Object.defineProperty(e, "isSpecifierDefault", {
      enumerable: !0,
      get: function() {
        return se.default;
      }
    }), Object.defineProperty(e, "isType", {
      enumerable: !0,
      get: function() {
        return re.default;
      }
    }), Object.defineProperty(e, "isValidES3Identifier", {
      enumerable: !0,
      get: function() {
        return Te.default;
      }
    }), Object.defineProperty(e, "isValidIdentifier", {
      enumerable: !0,
      get: function() {
        return ze.default;
      }
    }), Object.defineProperty(e, "isVar", {
      enumerable: !0,
      get: function() {
        return Ze.default;
      }
    }), Object.defineProperty(e, "matchesPattern", {
      enumerable: !0,
      get: function() {
        return pt.default;
      }
    }), Object.defineProperty(e, "prependToMemberExpression", {
      enumerable: !0,
      get: function() {
        return Y.default;
      }
    }), e.react = void 0, Object.defineProperty(e, "removeComments", {
      enumerable: !0,
      get: function() {
        return A.default;
      }
    }), Object.defineProperty(e, "removeProperties", {
      enumerable: !0,
      get: function() {
        return G.default;
      }
    }), Object.defineProperty(e, "removePropertiesDeep", {
      enumerable: !0,
      get: function() {
        return le.default;
      }
    }), Object.defineProperty(e, "removeTypeDuplicates", {
      enumerable: !0,
      get: function() {
        return ne.default;
      }
    }), Object.defineProperty(e, "shallowEqual", {
      enumerable: !0,
      get: function() {
        return Z.default;
      }
    }), Object.defineProperty(e, "toBindingIdentifierName", {
      enumerable: !0,
      get: function() {
        return F.default;
      }
    }), Object.defineProperty(e, "toBlock", {
      enumerable: !0,
      get: function() {
        return q.default;
      }
    }), Object.defineProperty(e, "toComputedKey", {
      enumerable: !0,
      get: function() {
        return j.default;
      }
    }), Object.defineProperty(e, "toExpression", {
      enumerable: !0,
      get: function() {
        return N.default;
      }
    }), Object.defineProperty(e, "toIdentifier", {
      enumerable: !0,
      get: function() {
        return M.default;
      }
    }), Object.defineProperty(e, "toKeyAlias", {
      enumerable: !0,
      get: function() {
        return R.default;
      }
    }), Object.defineProperty(e, "toStatement", {
      enumerable: !0,
      get: function() {
        return $.default;
      }
    }), Object.defineProperty(e, "traverse", {
      enumerable: !0,
      get: function() {
        return ye.default;
      }
    }), Object.defineProperty(e, "traverseFast", {
      enumerable: !0,
      get: function() {
        return fe.default;
      }
    }), Object.defineProperty(e, "validate", {
      enumerable: !0,
      get: function() {
        return ut.default;
      }
    }), Object.defineProperty(e, "valueToNode", {
      enumerable: !0,
      get: function() {
        return V.default;
      }
    });
    var r = WC, i = A6, n = vWe(), s = I6, a = Fe;
    Object.keys(a).forEach(function(pe) {
      pe === "default" || pe === "__esModule" || Object.prototype.hasOwnProperty.call(t, pe) || pe in e && e[pe] === a[pe] || Object.defineProperty(e, pe, {
        enumerable: !0,
        get: function() {
          return a[pe];
        }
      });
    });
    var o = sXe(), l = aXe(), u = oXe(), c = Wa();
    Object.keys(c).forEach(function(pe) {
      pe === "default" || pe === "__esModule" || Object.prototype.hasOwnProperty.call(t, pe) || pe in e && e[pe] === c[pe] || Object.defineProperty(e, pe, {
        enumerable: !0,
        get: function() {
          return c[pe];
        }
      });
    });
    var f = lXe();
    Object.keys(f).forEach(function(pe) {
      pe === "default" || pe === "__esModule" || Object.prototype.hasOwnProperty.call(t, pe) || pe in e && e[pe] === f[pe] || Object.defineProperty(e, pe, {
        enumerable: !0,
        get: function() {
          return f[pe];
        }
      });
    });
    var h = pfe();
    Object.keys(h).forEach(function(pe) {
      pe === "default" || pe === "__esModule" || Object.prototype.hasOwnProperty.call(t, pe) || pe in e && e[pe] === h[pe] || Object.defineProperty(e, pe, {
        enumerable: !0,
        get: function() {
          return h[pe];
        }
      });
    });
    var m = Mf, g = O6, y = N6, v = D6, T = L6, S = M6, P = XC, x = JC, C = QC, D = ZC, w = e_, A = R6, I = wt;
    Object.keys(I).forEach(function(pe) {
      pe === "default" || pe === "__esModule" || Object.prototype.hasOwnProperty.call(t, pe) || pe in e && e[pe] === I[pe] || Object.defineProperty(e, pe, {
        enumerable: !0,
        get: function() {
          return I[pe];
        }
      });
    });
    var L = Sr;
    Object.keys(L).forEach(function(pe) {
      pe === "default" || pe === "__esModule" || Object.prototype.hasOwnProperty.call(t, pe) || pe in e && e[pe] === L[pe] || Object.defineProperty(e, pe, {
        enumerable: !0,
        get: function() {
          return L[pe];
        }
      });
    });
    var O = MXe(), F = B6, q = hfe(), j = UXe(), N = r_, M = t_, R = F6, $ = QXe(), V = ZXe(), K = Vc();
    Object.keys(K).forEach(function(pe) {
      pe === "default" || pe === "__esModule" || Object.prototype.hasOwnProperty.call(t, pe) || pe in e && e[pe] === K[pe] || Object.defineProperty(e, pe, {
        enumerable: !0,
        get: function() {
          return K[pe];
        }
      });
    });
    var z = eJe(), W = j6, Y = iJe(), G = s_, le = i_, ne = YC, ae = xg, be = a_, ye = U6;
    Object.keys(ye).forEach(function(pe) {
      pe === "default" || pe === "__esModule" || Object.prototype.hasOwnProperty.call(t, pe) || pe in e && e[pe] === ye[pe] || Object.defineProperty(e, pe, {
        enumerable: !0,
        get: function() {
          return ye[pe];
        }
      });
    });
    var fe = n_, Z = BT, ue = jT(), me = q6, xe = V6, Pe = W6, ve = o_, Xe = GC, st = H6, Se = rfe(), oe = K6, te = z6, se = G6, re = C6(), Te = Y6, ze = nm, Ze = X6, pt = KC, ut = _6(), bt = HC, vt = De;
    Object.keys(vt).forEach(function(pe) {
      pe === "default" || pe === "__esModule" || Object.prototype.hasOwnProperty.call(t, pe) || pe in e && e[pe] === vt[pe] || Object.defineProperty(e, pe, {
        enumerable: !0,
        get: function() {
          return vt[pe];
        }
      });
    });
    var ge = Sg;
    e.react = {
      isReactComponent: r.default,
      isCompatTag: i.default,
      buildChildren: n.default
    }, e.toSequenceExpression = _Je().default;
  }(xM)), xM;
}
Object.defineProperty(Dl, "__esModule", {
  value: !0
});
Dl.statements = Dl.statement = Dl.smart = Dl.program = Dl.expression = void 0;
var IJe = sn();
const {
  assertExpressionStatement: kJe
} = IJe;
function J6(e) {
  return {
    code: (t) => "/* @babel/template */;\n".concat(t),
    validate: () => {
    },
    unwrap: (t) => e(t.program.body.slice(1))
  };
}
const OJe = J6((e) => e.length > 1 ? e : e[0]);
Dl.smart = OJe;
const NJe = J6((e) => e);
Dl.statements = NJe;
const DJe = J6((e) => {
  if (e.length === 0)
    throw new Error("Found nothing to return.");
  if (e.length > 1)
    throw new Error("Found multiple statements but wanted one");
  return e[0];
});
Dl.statement = DJe;
const mfe = {
  code: (e) => "(\n".concat(e, "\n)"),
  validate: (e) => {
    if (e.program.body.length > 1)
      throw new Error("Found multiple statements but wanted one");
    if (mfe.unwrap(e).start === 0)
      throw new Error("Parse result included parens.");
  },
  unwrap: ({
    program: e
  }) => {
    const [t] = e.body;
    return kJe(t), t.expression;
  }
};
Dl.expression = mfe;
const LJe = {
  code: (e) => e,
  validate: () => {
  },
  unwrap: (e) => e.program
};
Dl.program = LJe;
var Q6 = {}, sm = {};
Object.defineProperty(sm, "__esModule", {
  value: !0
});
sm.merge = BJe;
sm.normalizeReplacements = jJe;
sm.validate = FJe;
const MJe = ["placeholderWhitelist", "placeholderPattern", "preserveComments", "syntacticPlaceholders"];
function RJe(e, t) {
  if (e == null)
    return {};
  var r = {}, i = Object.keys(e), n, s;
  for (s = 0; s < i.length; s++)
    n = i[s], !(t.indexOf(n) >= 0) && (r[n] = e[n]);
  return r;
}
function BJe(e, t) {
  const {
    placeholderWhitelist: r = e.placeholderWhitelist,
    placeholderPattern: i = e.placeholderPattern,
    preserveComments: n = e.preserveComments,
    syntacticPlaceholders: s = e.syntacticPlaceholders
  } = t;
  return {
    parser: Object.assign({}, e.parser, t.parser),
    placeholderWhitelist: r,
    placeholderPattern: i,
    preserveComments: n,
    syntacticPlaceholders: s
  };
}
function FJe(e) {
  if (e != null && typeof e != "object")
    throw new Error("Unknown template options.");
  const t = e || {}, {
    placeholderWhitelist: r,
    placeholderPattern: i,
    preserveComments: n,
    syntacticPlaceholders: s
  } = t, a = RJe(t, MJe);
  if (r != null && !(r instanceof Set))
    throw new Error("'.placeholderWhitelist' must be a Set, null, or undefined");
  if (i != null && !(i instanceof RegExp) && i !== !1)
    throw new Error("'.placeholderPattern' must be a RegExp, false, null, or undefined");
  if (n != null && typeof n != "boolean")
    throw new Error("'.preserveComments' must be a boolean, null, or undefined");
  if (s != null && typeof s != "boolean")
    throw new Error("'.syntacticPlaceholders' must be a boolean, null, or undefined");
  if (s === !0 && (r != null || i != null))
    throw new Error("'.placeholderWhitelist' and '.placeholderPattern' aren't compatible with '.syntacticPlaceholders: true'");
  return {
    parser: a,
    placeholderWhitelist: r || void 0,
    placeholderPattern: i == null ? void 0 : i,
    preserveComments: n == null ? void 0 : n,
    syntacticPlaceholders: s == null ? void 0 : s
  };
}
function jJe(e) {
  if (Array.isArray(e))
    return e.reduce((t, r, i) => (t["$" + i] = r, t), {});
  if (typeof e == "object" || e == null)
    return e || void 0;
  throw new Error("Template replacements must be an array, object, null, or undefined");
}
var Z6 = {}, l_ = {}, qT = {};
Object.defineProperty(qT, "__esModule", {
  value: !0
});
function yfe(e, t) {
  if (e == null)
    return {};
  var r = {}, i = Object.keys(e), n, s;
  for (s = 0; s < i.length; s++)
    n = i[s], !(t.indexOf(n) >= 0) && (r[n] = e[n]);
  return r;
}
let Ih = class {
  constructor(t, r, i) {
    this.line = void 0, this.column = void 0, this.index = void 0, this.line = t, this.column = r, this.index = i;
  }
}, Lw = class {
  constructor(t, r) {
    this.start = void 0, this.end = void 0, this.filename = void 0, this.identifierName = void 0, this.start = t, this.end = r;
  }
};
function la(e, t) {
  const {
    line: r,
    column: i,
    index: n
  } = e;
  return new Ih(r, i + t, n + t);
}
const nK = "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED";
var $Je = {
  ImportMetaOutsideModule: {
    message: "import.meta may appear only with 'sourceType: \"module\"'",
    code: nK
  },
  ImportOutsideModule: {
    message: "'import' and 'export' may appear only with 'sourceType: \"module\"'",
    code: nK
  }
};
const sK = {
  ArrayPattern: "array destructuring pattern",
  AssignmentExpression: "assignment expression",
  AssignmentPattern: "assignment expression",
  ArrowFunctionExpression: "arrow function expression",
  ConditionalExpression: "conditional expression",
  CatchClause: "catch clause",
  ForOfStatement: "for-of statement",
  ForInStatement: "for-in statement",
  ForStatement: "for-loop",
  FormalParameters: "function parameter list",
  Identifier: "identifier",
  ImportSpecifier: "import specifier",
  ImportDefaultSpecifier: "import default specifier",
  ImportNamespaceSpecifier: "import namespace specifier",
  ObjectPattern: "object destructuring pattern",
  ParenthesizedExpression: "parenthesized expression",
  RestElement: "rest element",
  UpdateExpression: {
    true: "prefix operation",
    false: "postfix operation"
  },
  VariableDeclarator: "variable declaration",
  YieldExpression: "yield expression"
}, pP = (e) => e.type === "UpdateExpression" ? sK.UpdateExpression["".concat(e.prefix)] : sK[e.type];
var UJe = {
  AccessorIsGenerator: ({
    kind: e
  }) => "A ".concat(e, "ter cannot be a generator."),
  ArgumentsInClass: "'arguments' is only allowed in functions and class methods.",
  AsyncFunctionInSingleStatementContext: "Async functions can only be declared at the top level or inside a block.",
  AwaitBindingIdentifier: "Can not use 'await' as identifier inside an async function.",
  AwaitBindingIdentifierInStaticBlock: "Can not use 'await' as identifier inside a static block.",
  AwaitExpressionFormalParameter: "'await' is not allowed in async function parameters.",
  AwaitUsingNotInAsyncContext: "'await using' is only allowed within async functions and at the top levels of modules.",
  AwaitNotInAsyncContext: "'await' is only allowed within async functions and at the top levels of modules.",
  AwaitNotInAsyncFunction: "'await' is only allowed within async functions.",
  BadGetterArity: "A 'get' accessor must not have any formal parameters.",
  BadSetterArity: "A 'set' accessor must have exactly one formal parameter.",
  BadSetterRestParameter: "A 'set' accessor function argument must not be a rest parameter.",
  ConstructorClassField: "Classes may not have a field named 'constructor'.",
  ConstructorClassPrivateField: "Classes may not have a private field named '#constructor'.",
  ConstructorIsAccessor: "Class constructor may not be an accessor.",
  ConstructorIsAsync: "Constructor can't be an async function.",
  ConstructorIsGenerator: "Constructor can't be a generator.",
  DeclarationMissingInitializer: ({
    kind: e
  }) => "Missing initializer in ".concat(e, " declaration."),
  DecoratorArgumentsOutsideParentheses: "Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.",
  DecoratorBeforeExport: "Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.",
  DecoratorsBeforeAfterExport: "Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.",
  DecoratorConstructor: "Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?",
  DecoratorExportClass: "Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.",
  DecoratorSemicolon: "Decorators must not be followed by a semicolon.",
  DecoratorStaticBlock: "Decorators can't be used with a static block.",
  DeferImportRequiresNamespace: 'Only `import defer * as x from "./module"` is valid.',
  DeletePrivateField: "Deleting a private field is not allowed.",
  DestructureNamedImport: "ES2015 named imports do not destructure. Use another statement for destructuring after the import.",
  DuplicateConstructor: "Duplicate constructor in the same class.",
  DuplicateDefaultExport: "Only one default export allowed per module.",
  DuplicateExport: ({
    exportName: e
  }) => "`".concat(e, "` has already been exported. Exported identifiers must be unique."),
  DuplicateProto: "Redefinition of __proto__ property.",
  DuplicateRegExpFlags: "Duplicate regular expression flag.",
  DynamicImportPhaseRequiresImportExpressions: ({
    phase: e
  }) => "'import.".concat(e, "(...)' can only be parsed when using the 'createImportExpressions' option."),
  ElementAfterRest: "Rest element must be last element.",
  EscapedCharNotAnIdentifier: "Invalid Unicode escape.",
  ExportBindingIsString: ({
    localName: e,
    exportName: t
  }) => "A string literal cannot be used as an exported binding without `from`.\n- Did you mean `export { '".concat(e, "' as '").concat(t, "' } from 'some-module'`?"),
  ExportDefaultFromAsIdentifier: "'from' is not allowed as an identifier after 'export default'.",
  ForInOfLoopInitializer: ({
    type: e
  }) => "'".concat(e === "ForInStatement" ? "for-in" : "for-of", "' loop variable declaration may not have an initializer."),
  ForInUsing: "For-in loop may not start with 'using' declaration.",
  ForOfAsync: "The left-hand side of a for-of loop may not be 'async'.",
  ForOfLet: "The left-hand side of a for-of loop may not start with 'let'.",
  GeneratorInSingleStatementContext: "Generators can only be declared at the top level or inside a block.",
  IllegalBreakContinue: ({
    type: e
  }) => "Unsyntactic ".concat(e === "BreakStatement" ? "break" : "continue", "."),
  IllegalLanguageModeDirective: "Illegal 'use strict' directive in function with non-simple parameter list.",
  IllegalReturn: "'return' outside of function.",
  ImportAttributesUseAssert: "The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedAssertSyntax: true` option in the import attributes plugin to suppress this error.",
  ImportBindingIsString: ({
    importName: e
  }) => 'A string literal cannot be used as an imported binding.\n- Did you mean `import { "'.concat(e, '" as foo }`?'),
  ImportCallArgumentTrailingComma: "Trailing comma is disallowed inside import(...) arguments.",
  ImportCallArity: ({
    maxArgumentCount: e
  }) => "`import()` requires exactly ".concat(e === 1 ? "one argument" : "one or two arguments", "."),
  ImportCallNotNewExpression: "Cannot use new with import(...).",
  ImportCallSpreadArgument: "`...` is not allowed in `import()`.",
  ImportJSONBindingNotDefault: "A JSON module can only be imported with `default`.",
  ImportReflectionHasAssertion: "`import module x` cannot have assertions.",
  ImportReflectionNotBinding: 'Only `import module x from "./module"` is valid.',
  IncompatibleRegExpUVFlags: "The 'u' and 'v' regular expression flags cannot be enabled at the same time.",
  InvalidBigIntLiteral: "Invalid BigIntLiteral.",
  InvalidCodePoint: "Code point out of bounds.",
  InvalidCoverInitializedName: "Invalid shorthand property initializer.",
  InvalidDecimal: "Invalid decimal.",
  InvalidDigit: ({
    radix: e
  }) => "Expected number in radix ".concat(e, "."),
  InvalidEscapeSequence: "Bad character escape sequence.",
  InvalidEscapeSequenceTemplate: "Invalid escape sequence in template.",
  InvalidEscapedReservedWord: ({
    reservedWord: e
  }) => "Escape sequence in keyword ".concat(e, "."),
  InvalidIdentifier: ({
    identifierName: e
  }) => "Invalid identifier ".concat(e, "."),
  InvalidLhs: ({
    ancestor: e
  }) => "Invalid left-hand side in ".concat(pP(e), "."),
  InvalidLhsBinding: ({
    ancestor: e
  }) => "Binding invalid left-hand side in ".concat(pP(e), "."),
  InvalidLhsOptionalChaining: ({
    ancestor: e
  }) => "Invalid optional chaining in the left-hand side of ".concat(pP(e), "."),
  InvalidNumber: "Invalid number.",
  InvalidOrMissingExponent: "Floating-point numbers require a valid exponent after the 'e'.",
  InvalidOrUnexpectedToken: ({
    unexpected: e
  }) => "Unexpected character '".concat(e, "'."),
  InvalidParenthesizedAssignment: "Invalid parenthesized assignment pattern.",
  InvalidPrivateFieldResolution: ({
    identifierName: e
  }) => "Private name #".concat(e, " is not defined."),
  InvalidPropertyBindingPattern: "Binding member expression.",
  InvalidRecordProperty: "Only properties and spread elements are allowed in record definitions.",
  InvalidRestAssignmentPattern: "Invalid rest operator's argument.",
  LabelRedeclaration: ({
    labelName: e
  }) => "Label '".concat(e, "' is already declared."),
  LetInLexicalBinding: "'let' is disallowed as a lexically bound name.",
  LineTerminatorBeforeArrow: "No line break is allowed before '=>'.",
  MalformedRegExpFlags: "Invalid regular expression flag.",
  MissingClassName: "A class name is required.",
  MissingEqInAssignment: "Only '=' operator can be used for specifying default value.",
  MissingSemicolon: "Missing semicolon.",
  MissingPlugin: ({
    missingPlugin: e
  }) => "This experimental syntax requires enabling the parser plugin: ".concat(e.map((t) => JSON.stringify(t)).join(", "), "."),
  MissingOneOfPlugins: ({
    missingPlugin: e
  }) => "This experimental syntax requires enabling one of the following parser plugin(s): ".concat(e.map((t) => JSON.stringify(t)).join(", "), "."),
  MissingUnicodeEscape: "Expecting Unicode escape sequence \\uXXXX.",
  MixingCoalesceWithLogical: "Nullish coalescing operator(??) requires parens when mixing with logical operators.",
  ModuleAttributeDifferentFromType: "The only accepted module attribute is `type`.",
  ModuleAttributeInvalidValue: "Only string literals are allowed as module attribute values.",
  ModuleAttributesWithDuplicateKeys: ({
    key: e
  }) => 'Duplicate key "'.concat(e, '" is not allowed in module attributes.'),
  ModuleExportNameHasLoneSurrogate: ({
    surrogateCharCode: e
  }) => "An export name cannot include a lone surrogate, found '\\u".concat(e.toString(16), "'."),
  ModuleExportUndefined: ({
    localName: e
  }) => "Export '".concat(e, "' is not defined."),
  MultipleDefaultsInSwitch: "Multiple default clauses.",
  NewlineAfterThrow: "Illegal newline after throw.",
  NoCatchOrFinally: "Missing catch or finally clause.",
  NumberIdentifier: "Identifier directly after number.",
  NumericSeparatorInEscapeSequence: "Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.",
  ObsoleteAwaitStar: "'await*' has been removed from the async functions proposal. Use Promise.all() instead.",
  OptionalChainingNoNew: "Constructors in/after an Optional Chain are not allowed.",
  OptionalChainingNoTemplate: "Tagged Template Literals are not allowed in optionalChain.",
  OverrideOnConstructor: "'override' modifier cannot appear on a constructor declaration.",
  ParamDupe: "Argument name clash.",
  PatternHasAccessor: "Object pattern can't contain getter or setter.",
  PatternHasMethod: "Object pattern can't contain methods.",
  PrivateInExpectedIn: ({
    identifierName: e
  }) => "Private names are only allowed in property accesses (`obj.#".concat(e, "`) or in `in` expressions (`#").concat(e, " in obj`)."),
  PrivateNameRedeclaration: ({
    identifierName: e
  }) => "Duplicate private name #".concat(e, "."),
  RecordExpressionBarIncorrectEndSyntaxType: "Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
  RecordExpressionBarIncorrectStartSyntaxType: "Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
  RecordExpressionHashIncorrectStartSyntaxType: "Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",
  RecordNoProto: "'__proto__' is not allowed in Record expressions.",
  RestTrailingComma: "Unexpected trailing comma after rest element.",
  SloppyFunction: "In non-strict mode code, functions can only be declared at top level or inside a block.",
  SloppyFunctionAnnexB: "In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.",
  SourcePhaseImportRequiresDefault: 'Only `import source x from "./module"` is valid.',
  StaticPrototype: "Classes may not have static property named prototype.",
  SuperNotAllowed: "`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?",
  SuperPrivateField: "Private fields can't be accessed on super.",
  TrailingDecorator: "Decorators must be attached to a class element.",
  TupleExpressionBarIncorrectEndSyntaxType: "Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
  TupleExpressionBarIncorrectStartSyntaxType: "Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
  TupleExpressionHashIncorrectStartSyntaxType: "Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",
  UnexpectedArgumentPlaceholder: "Unexpected argument placeholder.",
  UnexpectedAwaitAfterPipelineBody: 'Unexpected "await" after pipeline body; await must have parentheses in minimal proposal.',
  UnexpectedDigitAfterHash: "Unexpected digit after hash token.",
  UnexpectedImportExport: "'import' and 'export' may only appear at the top level.",
  UnexpectedKeyword: ({
    keyword: e
  }) => "Unexpected keyword '".concat(e, "'."),
  UnexpectedLeadingDecorator: "Leading decorators must be attached to a class declaration.",
  UnexpectedLexicalDeclaration: "Lexical declaration cannot appear in a single-statement context.",
  UnexpectedNewTarget: "`new.target` can only be used in functions or class properties.",
  UnexpectedNumericSeparator: "A numeric separator is only allowed between two digits.",
  UnexpectedPrivateField: "Unexpected private name.",
  UnexpectedReservedWord: ({
    reservedWord: e
  }) => "Unexpected reserved word '".concat(e, "'."),
  UnexpectedSuper: "'super' is only allowed in object methods and classes.",
  UnexpectedToken: ({
    expected: e,
    unexpected: t
  }) => "Unexpected token".concat(t ? " '".concat(t, "'.") : "").concat(e ? ', expected "'.concat(e, '"') : ""),
  UnexpectedTokenUnaryExponentiation: "Illegal expression. Wrap left hand side or entire exponentiation in parentheses.",
  UnexpectedUsingDeclaration: "Using declaration cannot appear in the top level when source type is `script`.",
  UnsupportedBind: "Binding should be performed on object property.",
  UnsupportedDecoratorExport: "A decorated export must export a class declaration.",
  UnsupportedDefaultExport: "Only expressions, functions or classes are allowed as the `default` export.",
  UnsupportedImport: "`import` can only be used in `import()` or `import.meta`.",
  UnsupportedMetaProperty: ({
    target: e,
    onlyValidPropertyName: t
  }) => "The only valid meta property for ".concat(e, " is ").concat(e, ".").concat(t, "."),
  UnsupportedParameterDecorator: "Decorators cannot be used to decorate parameters.",
  UnsupportedPropertyDecorator: "Decorators cannot be used to decorate object literal properties.",
  UnsupportedSuper: "'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).",
  UnterminatedComment: "Unterminated comment.",
  UnterminatedRegExp: "Unterminated regular expression.",
  UnterminatedString: "Unterminated string constant.",
  UnterminatedTemplate: "Unterminated template.",
  UsingDeclarationExport: "Using declaration cannot be exported.",
  UsingDeclarationHasBindingPattern: "Using declaration cannot have destructuring patterns.",
  VarRedeclaration: ({
    identifierName: e
  }) => "Identifier '".concat(e, "' has already been declared."),
  YieldBindingIdentifier: "Can not use 'yield' as identifier inside a generator.",
  YieldInParameter: "Yield expression is not allowed in formal parameters.",
  ZeroDigitNumericSeparator: "Numeric separator can not be used after leading 0."
}, qJe = {
  StrictDelete: "Deleting local variable in strict mode.",
  StrictEvalArguments: ({
    referenceName: e
  }) => "Assigning to '".concat(e, "' in strict mode."),
  StrictEvalArgumentsBinding: ({
    bindingName: e
  }) => "Binding '".concat(e, "' in strict mode."),
  StrictFunction: "In strict mode code, functions can only be declared at top level or inside a block.",
  StrictNumericEscape: "The only valid numeric escape in strict mode is '\\0'.",
  StrictOctalLiteral: "Legacy octal literals are not allowed in strict mode.",
  StrictWith: "'with' in strict mode."
};
const VJe = /* @__PURE__ */ new Set(["ArrowFunctionExpression", "AssignmentExpression", "ConditionalExpression", "YieldExpression"]);
var WJe = {
  PipeBodyIsTighter: "Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.",
  PipeTopicRequiresHackPipes: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.',
  PipeTopicUnbound: "Topic reference is unbound; it must be inside a pipe body.",
  PipeTopicUnconfiguredToken: ({
    token: e
  }) => "Invalid topic token ".concat(e, ". In order to use ").concat(e, ' as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "').concat(e, '" }.'),
  PipeTopicUnused: "Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.",
  PipeUnparenthesizedBody: ({
    type: e
  }) => "Hack-style pipe body cannot be an unparenthesized ".concat(pP({
    type: e
  }), "; please wrap it in parentheses."),
  PipelineBodyNoArrow: 'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.',
  PipelineBodySequenceExpression: "Pipeline body may not be a comma-separated sequence expression.",
  PipelineHeadSequenceExpression: "Pipeline head should not be a comma-separated sequence expression.",
  PipelineTopicUnused: "Pipeline is in topic style but does not use topic reference.",
  PrimaryTopicNotAllowed: "Topic reference was used in a lexical context without topic binding.",
  PrimaryTopicRequiresSmartPipeline: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.'
};
const HJe = ["toMessage"], KJe = ["message"];
function aK(e, t, r) {
  Object.defineProperty(e, t, {
    enumerable: !1,
    configurable: !0,
    value: r
  });
}
function zJe(e) {
  let {
    toMessage: t
  } = e, r = yfe(e, HJe);
  return function i(n, s) {
    const a = new SyntaxError();
    return Object.assign(a, r, {
      loc: n,
      pos: n.index
    }), "missingPlugin" in s && Object.assign(a, {
      missingPlugin: s.missingPlugin
    }), aK(a, "clone", function(l = {}) {
      var u;
      const {
        line: c,
        column: f,
        index: h
      } = (u = l.loc) != null ? u : n;
      return i(new Ih(c, f, h), Object.assign({}, s, l.details));
    }), aK(a, "details", s), Object.defineProperty(a, "message", {
      configurable: !0,
      get() {
        const o = "".concat(t(s), " (").concat(n.line, ":").concat(n.column, ")");
        return this.message = o, o;
      },
      set(o) {
        Object.defineProperty(this, "message", {
          value: o,
          writable: !0
        });
      }
    }), a;
  };
}
function hf(e, t) {
  if (Array.isArray(e))
    return (i) => hf(i, e[0]);
  const r = {};
  for (const i of Object.keys(e)) {
    const n = e[i], s = typeof n == "string" ? {
      message: () => n
    } : typeof n == "function" ? {
      message: n
    } : n, {
      message: a
    } = s, o = yfe(s, KJe), l = typeof a == "string" ? () => a : a;
    r[i] = zJe(Object.assign({
      code: "BABEL_PARSER_SYNTAX_ERROR",
      reasonCode: i,
      toMessage: l
    }, t ? {
      syntaxPlugin: t
    } : {}, o));
  }
  return r;
}
var dne;
const tt = Object.assign({}, hf($Je), hf(UJe), hf(qJe), hf(dne || (dne = at(["pipelineOperator"])))(WJe)), {
  defineProperty: GJe
} = Object, oK = (e, t) => GJe(e, t, {
  enumerable: !1,
  value: e[t]
});
function gb(e) {
  return e.loc.start && oK(e.loc.start, "index"), e.loc.end && oK(e.loc.end, "index"), e;
}
var YJe = (e) => class extends e {
  parse() {
    const r = gb(super.parse());
    return this.options.tokens && (r.tokens = r.tokens.map(gb)), r;
  }
  parseRegExpLiteral({
    pattern: r,
    flags: i
  }) {
    let n = null;
    try {
      n = new RegExp(r, i);
    } catch (a) {
    }
    const s = this.estreeParseLiteral(n);
    return s.regex = {
      pattern: r,
      flags: i
    }, s;
  }
  parseBigIntLiteral(r) {
    let i;
    try {
      i = BigInt(r);
    } catch (s) {
      i = null;
    }
    const n = this.estreeParseLiteral(i);
    return n.bigint = String(n.value || r), n;
  }
  parseDecimalLiteral(r) {
    const n = this.estreeParseLiteral(null);
    return n.decimal = String(n.value || r), n;
  }
  estreeParseLiteral(r) {
    return this.parseLiteral(r, "Literal");
  }
  parseStringLiteral(r) {
    return this.estreeParseLiteral(r);
  }
  parseNumericLiteral(r) {
    return this.estreeParseLiteral(r);
  }
  parseNullLiteral() {
    return this.estreeParseLiteral(null);
  }
  parseBooleanLiteral(r) {
    return this.estreeParseLiteral(r);
  }
  directiveToStmt(r) {
    const i = r.value;
    delete r.value, i.type = "Literal", i.raw = i.extra.raw, i.value = i.extra.expressionValue;
    const n = r;
    return n.type = "ExpressionStatement", n.expression = i, n.directive = i.extra.rawValue, delete i.extra, n;
  }
  initFunction(r, i) {
    super.initFunction(r, i), r.expression = !1;
  }
  checkDeclaration(r) {
    r != null && this.isObjectProperty(r) ? this.checkDeclaration(r.value) : super.checkDeclaration(r);
  }
  getObjectOrClassMethodParams(r) {
    return r.value.params;
  }
  isValidDirective(r) {
    var i;
    return r.type === "ExpressionStatement" && r.expression.type === "Literal" && typeof r.expression.value == "string" && !((i = r.expression.extra) != null && i.parenthesized);
  }
  parseBlockBody(r, i, n, s, a) {
    super.parseBlockBody(r, i, n, s, a);
    const o = r.directives.map((l) => this.directiveToStmt(l));
    r.body = o.concat(r.body), delete r.directives;
  }
  pushClassMethod(r, i, n, s, a, o) {
    this.parseMethod(i, n, s, a, o, "ClassMethod", !0), i.typeParameters && (i.value.typeParameters = i.typeParameters, delete i.typeParameters), r.body.push(i);
  }
  parsePrivateName() {
    const r = super.parsePrivateName();
    return this.getPluginOption("estree", "classFeatures") ? this.convertPrivateNameToPrivateIdentifier(r) : r;
  }
  convertPrivateNameToPrivateIdentifier(r) {
    const i = super.getPrivateNameSV(r);
    return r = r, delete r.id, r.name = i, r.type = "PrivateIdentifier", r;
  }
  isPrivateName(r) {
    return this.getPluginOption("estree", "classFeatures") ? r.type === "PrivateIdentifier" : super.isPrivateName(r);
  }
  getPrivateNameSV(r) {
    return this.getPluginOption("estree", "classFeatures") ? r.name : super.getPrivateNameSV(r);
  }
  parseLiteral(r, i) {
    const n = super.parseLiteral(r, i);
    return n.raw = n.extra.raw, delete n.extra, n;
  }
  parseFunctionBody(r, i, n = !1) {
    super.parseFunctionBody(r, i, n), r.expression = r.body.type !== "BlockStatement";
  }
  parseMethod(r, i, n, s, a, o, l = !1) {
    let u = this.startNode();
    return u.kind = r.kind, u = super.parseMethod(u, i, n, s, a, o, l), u.type = "FunctionExpression", delete u.kind, r.value = u, o === "ClassPrivateMethod" && (r.computed = !1), this.finishNode(r, "MethodDefinition");
  }
  nameIsConstructor(r) {
    return r.type === "Literal" ? r.value === "constructor" : super.nameIsConstructor(r);
  }
  parseClassProperty(...r) {
    const i = super.parseClassProperty(...r);
    return this.getPluginOption("estree", "classFeatures") && (i.type = "PropertyDefinition"), i;
  }
  parseClassPrivateProperty(...r) {
    const i = super.parseClassPrivateProperty(...r);
    return this.getPluginOption("estree", "classFeatures") && (i.type = "PropertyDefinition", i.computed = !1), i;
  }
  parseObjectMethod(r, i, n, s, a) {
    const o = super.parseObjectMethod(r, i, n, s, a);
    return o && (o.type = "Property", o.kind === "method" && (o.kind = "init"), o.shorthand = !1), o;
  }
  parseObjectProperty(r, i, n, s) {
    const a = super.parseObjectProperty(r, i, n, s);
    return a && (a.kind = "init", a.type = "Property"), a;
  }
  isValidLVal(r, i, n) {
    return r === "Property" ? "value" : super.isValidLVal(r, i, n);
  }
  isAssignable(r, i) {
    return r != null && this.isObjectProperty(r) ? this.isAssignable(r.value, i) : super.isAssignable(r, i);
  }
  toAssignable(r, i = !1) {
    if (r != null && this.isObjectProperty(r)) {
      const {
        key: n,
        value: s
      } = r;
      this.isPrivateName(n) && this.classScope.usePrivateName(this.getPrivateNameSV(n), n.loc.start), this.toAssignable(s, i);
    } else
      super.toAssignable(r, i);
  }
  toAssignableObjectExpressionProp(r, i, n) {
    r.type === "Property" && (r.kind === "get" || r.kind === "set") ? this.raise(tt.PatternHasAccessor, r.key) : r.type === "Property" && r.method ? this.raise(tt.PatternHasMethod, r.key) : super.toAssignableObjectExpressionProp(r, i, n);
  }
  finishCallExpression(r, i) {
    const n = super.finishCallExpression(r, i);
    if (n.callee.type === "Import") {
      if (n.type = "ImportExpression", n.source = n.arguments[0], this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions")) {
        var s, a;
        n.options = (s = n.arguments[1]) != null ? s : null, n.attributes = (a = n.arguments[1]) != null ? a : null;
      }
      delete n.arguments, delete n.callee;
    }
    return n;
  }
  toReferencedArguments(r) {
    r.type !== "ImportExpression" && super.toReferencedArguments(r);
  }
  parseExport(r, i) {
    const n = this.state.lastTokStartLoc, s = super.parseExport(r, i);
    switch (s.type) {
      case "ExportAllDeclaration":
        s.exported = null;
        break;
      case "ExportNamedDeclaration":
        s.specifiers.length === 1 && s.specifiers[0].type === "ExportNamespaceSpecifier" && (s.type = "ExportAllDeclaration", s.exported = s.specifiers[0].exported, delete s.specifiers);
      case "ExportDefaultDeclaration":
        {
          var a;
          const {
            declaration: o
          } = s;
          (o == null ? void 0 : o.type) === "ClassDeclaration" && ((a = o.decorators) == null ? void 0 : a.length) > 0 && o.start === s.start && this.resetStartLocation(s, n);
        }
        break;
    }
    return s;
  }
  parseSubscript(r, i, n, s) {
    const a = super.parseSubscript(r, i, n, s);
    if (s.optionalChainMember) {
      if ((a.type === "OptionalMemberExpression" || a.type === "OptionalCallExpression") && (a.type = a.type.substring(8)), s.stop) {
        const o = this.startNodeAtNode(a);
        return o.expression = a, this.finishNode(o, "ChainExpression");
      }
    } else
      (a.type === "MemberExpression" || a.type === "CallExpression") && (a.optional = !1);
    return a;
  }
  isOptionalMemberExpression(r) {
    return r.type === "ChainExpression" ? r.expression.type === "MemberExpression" : super.isOptionalMemberExpression(r);
  }
  hasPropertyAsPrivateName(r) {
    return r.type === "ChainExpression" && (r = r.expression), super.hasPropertyAsPrivateName(r);
  }
  isObjectProperty(r) {
    return r.type === "Property" && r.kind === "init" && !r.method;
  }
  isObjectMethod(r) {
    return r.type === "Property" && (r.method || r.kind === "get" || r.kind === "set");
  }
  finishNodeAt(r, i, n) {
    return gb(super.finishNodeAt(r, i, n));
  }
  resetStartLocation(r, i) {
    super.resetStartLocation(r, i), gb(r);
  }
  resetEndLocation(r, i = this.state.lastTokEndLoc) {
    super.resetEndLocation(r, i), gb(r);
  }
};
let S0 = class {
  constructor(t, r) {
    this.token = void 0, this.preserveSpace = void 0, this.token = t, this.preserveSpace = !!r;
  }
};
const Ri = {
  brace: new S0("{"),
  j_oTag: new S0("<tag"),
  j_cTag: new S0("</tag"),
  j_expr: new S0("<tag>...</tag>", !0)
};
Ri.template = new S0("`", !0);
const jr = !0, Dt = !0, CM = !0, bb = !0, Jf = !0, XJe = !0;
let gfe = class {
  constructor(t, r = {}) {
    this.label = void 0, this.keyword = void 0, this.beforeExpr = void 0, this.startsExpr = void 0, this.rightAssociative = void 0, this.isLoop = void 0, this.isAssign = void 0, this.prefix = void 0, this.postfix = void 0, this.binop = void 0, this.label = t, this.keyword = r.keyword, this.beforeExpr = !!r.beforeExpr, this.startsExpr = !!r.startsExpr, this.rightAssociative = !!r.rightAssociative, this.isLoop = !!r.isLoop, this.isAssign = !!r.isAssign, this.prefix = !!r.prefix, this.postfix = !!r.postfix, this.binop = r.binop != null ? r.binop : null, this.updateContext = null;
  }
};
const e9 = /* @__PURE__ */ new Map();
function si(e, t = {}) {
  t.keyword = e;
  const r = ir(e, t);
  return e9.set(e, r), r;
}
function Js(e, t) {
  return ir(e, {
    beforeExpr: jr,
    binop: t
  });
}
let Q0 = -1;
const Jp = [], t9 = [], r9 = [], i9 = [], n9 = [], s9 = [];
function ir(e, t = {}) {
  var r, i, n, s;
  return ++Q0, t9.push(e), r9.push((r = t.binop) != null ? r : -1), i9.push((i = t.beforeExpr) != null ? i : !1), n9.push((n = t.startsExpr) != null ? n : !1), s9.push((s = t.prefix) != null ? s : !1), Jp.push(new gfe(e, t)), Q0;
}
function Lr(e, t = {}) {
  var r, i, n, s;
  return ++Q0, e9.set(e, Q0), t9.push(e), r9.push((r = t.binop) != null ? r : -1), i9.push((i = t.beforeExpr) != null ? i : !1), n9.push((n = t.startsExpr) != null ? n : !1), s9.push((s = t.prefix) != null ? s : !1), Jp.push(new gfe("name", t)), Q0;
}
const JJe = {
  bracketL: ir("[", {
    beforeExpr: jr,
    startsExpr: Dt
  }),
  bracketHashL: ir("#[", {
    beforeExpr: jr,
    startsExpr: Dt
  }),
  bracketBarL: ir("[|", {
    beforeExpr: jr,
    startsExpr: Dt
  }),
  bracketR: ir("]"),
  bracketBarR: ir("|]"),
  braceL: ir("{", {
    beforeExpr: jr,
    startsExpr: Dt
  }),
  braceBarL: ir("{|", {
    beforeExpr: jr,
    startsExpr: Dt
  }),
  braceHashL: ir("#{", {
    beforeExpr: jr,
    startsExpr: Dt
  }),
  braceR: ir("}"),
  braceBarR: ir("|}"),
  parenL: ir("(", {
    beforeExpr: jr,
    startsExpr: Dt
  }),
  parenR: ir(")"),
  comma: ir(",", {
    beforeExpr: jr
  }),
  semi: ir(";", {
    beforeExpr: jr
  }),
  colon: ir(":", {
    beforeExpr: jr
  }),
  doubleColon: ir("::", {
    beforeExpr: jr
  }),
  dot: ir("."),
  question: ir("?", {
    beforeExpr: jr
  }),
  questionDot: ir("?."),
  arrow: ir("=>", {
    beforeExpr: jr
  }),
  template: ir("template"),
  ellipsis: ir("...", {
    beforeExpr: jr
  }),
  backQuote: ir("`", {
    startsExpr: Dt
  }),
  dollarBraceL: ir("${", {
    beforeExpr: jr,
    startsExpr: Dt
  }),
  templateTail: ir("...`", {
    startsExpr: Dt
  }),
  templateNonTail: ir("...${", {
    beforeExpr: jr,
    startsExpr: Dt
  }),
  at: ir("@"),
  hash: ir("#", {
    startsExpr: Dt
  }),
  interpreterDirective: ir("#!..."),
  eq: ir("=", {
    beforeExpr: jr,
    isAssign: bb
  }),
  assign: ir("_=", {
    beforeExpr: jr,
    isAssign: bb
  }),
  slashAssign: ir("_=", {
    beforeExpr: jr,
    isAssign: bb
  }),
  xorAssign: ir("_=", {
    beforeExpr: jr,
    isAssign: bb
  }),
  moduloAssign: ir("_=", {
    beforeExpr: jr,
    isAssign: bb
  }),
  incDec: ir("++/--", {
    prefix: Jf,
    postfix: XJe,
    startsExpr: Dt
  }),
  bang: ir("!", {
    beforeExpr: jr,
    prefix: Jf,
    startsExpr: Dt
  }),
  tilde: ir("~", {
    beforeExpr: jr,
    prefix: Jf,
    startsExpr: Dt
  }),
  doubleCaret: ir("^^", {
    startsExpr: Dt
  }),
  doubleAt: ir("@@", {
    startsExpr: Dt
  }),
  pipeline: Js("|>", 0),
  nullishCoalescing: Js("??", 1),
  logicalOR: Js("||", 1),
  logicalAND: Js("&&", 2),
  bitwiseOR: Js("|", 3),
  bitwiseXOR: Js("^", 4),
  bitwiseAND: Js("&", 5),
  equality: Js("==/!=/===/!==", 6),
  lt: Js("</>/<=/>=", 7),
  gt: Js("</>/<=/>=", 7),
  relational: Js("</>/<=/>=", 7),
  bitShift: Js("<</>>/>>>", 8),
  bitShiftL: Js("<</>>/>>>", 8),
  bitShiftR: Js("<</>>/>>>", 8),
  plusMin: ir("+/-", {
    beforeExpr: jr,
    binop: 9,
    prefix: Jf,
    startsExpr: Dt
  }),
  modulo: ir("%", {
    binop: 10,
    startsExpr: Dt
  }),
  star: ir("*", {
    binop: 10
  }),
  slash: Js("/", 10),
  exponent: ir("**", {
    beforeExpr: jr,
    binop: 11,
    rightAssociative: !0
  }),
  _in: si("in", {
    beforeExpr: jr,
    binop: 7
  }),
  _instanceof: si("instanceof", {
    beforeExpr: jr,
    binop: 7
  }),
  _break: si("break"),
  _case: si("case", {
    beforeExpr: jr
  }),
  _catch: si("catch"),
  _continue: si("continue"),
  _debugger: si("debugger"),
  _default: si("default", {
    beforeExpr: jr
  }),
  _else: si("else", {
    beforeExpr: jr
  }),
  _finally: si("finally"),
  _function: si("function", {
    startsExpr: Dt
  }),
  _if: si("if"),
  _return: si("return", {
    beforeExpr: jr
  }),
  _switch: si("switch"),
  _throw: si("throw", {
    beforeExpr: jr,
    prefix: Jf,
    startsExpr: Dt
  }),
  _try: si("try"),
  _var: si("var"),
  _const: si("const"),
  _with: si("with"),
  _new: si("new", {
    beforeExpr: jr,
    startsExpr: Dt
  }),
  _this: si("this", {
    startsExpr: Dt
  }),
  _super: si("super", {
    startsExpr: Dt
  }),
  _class: si("class", {
    startsExpr: Dt
  }),
  _extends: si("extends", {
    beforeExpr: jr
  }),
  _export: si("export"),
  _import: si("import", {
    startsExpr: Dt
  }),
  _null: si("null", {
    startsExpr: Dt
  }),
  _true: si("true", {
    startsExpr: Dt
  }),
  _false: si("false", {
    startsExpr: Dt
  }),
  _typeof: si("typeof", {
    beforeExpr: jr,
    prefix: Jf,
    startsExpr: Dt
  }),
  _void: si("void", {
    beforeExpr: jr,
    prefix: Jf,
    startsExpr: Dt
  }),
  _delete: si("delete", {
    beforeExpr: jr,
    prefix: Jf,
    startsExpr: Dt
  }),
  _do: si("do", {
    isLoop: CM,
    beforeExpr: jr
  }),
  _for: si("for", {
    isLoop: CM
  }),
  _while: si("while", {
    isLoop: CM
  }),
  _as: Lr("as", {
    startsExpr: Dt
  }),
  _assert: Lr("assert", {
    startsExpr: Dt
  }),
  _async: Lr("async", {
    startsExpr: Dt
  }),
  _await: Lr("await", {
    startsExpr: Dt
  }),
  _defer: Lr("defer", {
    startsExpr: Dt
  }),
  _from: Lr("from", {
    startsExpr: Dt
  }),
  _get: Lr("get", {
    startsExpr: Dt
  }),
  _let: Lr("let", {
    startsExpr: Dt
  }),
  _meta: Lr("meta", {
    startsExpr: Dt
  }),
  _of: Lr("of", {
    startsExpr: Dt
  }),
  _sent: Lr("sent", {
    startsExpr: Dt
  }),
  _set: Lr("set", {
    startsExpr: Dt
  }),
  _source: Lr("source", {
    startsExpr: Dt
  }),
  _static: Lr("static", {
    startsExpr: Dt
  }),
  _using: Lr("using", {
    startsExpr: Dt
  }),
  _yield: Lr("yield", {
    startsExpr: Dt
  }),
  _asserts: Lr("asserts", {
    startsExpr: Dt
  }),
  _checks: Lr("checks", {
    startsExpr: Dt
  }),
  _exports: Lr("exports", {
    startsExpr: Dt
  }),
  _global: Lr("global", {
    startsExpr: Dt
  }),
  _implements: Lr("implements", {
    startsExpr: Dt
  }),
  _intrinsic: Lr("intrinsic", {
    startsExpr: Dt
  }),
  _infer: Lr("infer", {
    startsExpr: Dt
  }),
  _is: Lr("is", {
    startsExpr: Dt
  }),
  _mixins: Lr("mixins", {
    startsExpr: Dt
  }),
  _proto: Lr("proto", {
    startsExpr: Dt
  }),
  _require: Lr("require", {
    startsExpr: Dt
  }),
  _satisfies: Lr("satisfies", {
    startsExpr: Dt
  }),
  _keyof: Lr("keyof", {
    startsExpr: Dt
  }),
  _readonly: Lr("readonly", {
    startsExpr: Dt
  }),
  _unique: Lr("unique", {
    startsExpr: Dt
  }),
  _abstract: Lr("abstract", {
    startsExpr: Dt
  }),
  _declare: Lr("declare", {
    startsExpr: Dt
  }),
  _enum: Lr("enum", {
    startsExpr: Dt
  }),
  _module: Lr("module", {
    startsExpr: Dt
  }),
  _namespace: Lr("namespace", {
    startsExpr: Dt
  }),
  _interface: Lr("interface", {
    startsExpr: Dt
  }),
  _type: Lr("type", {
    startsExpr: Dt
  }),
  _opaque: Lr("opaque", {
    startsExpr: Dt
  }),
  name: ir("name", {
    startsExpr: Dt
  }),
  string: ir("string", {
    startsExpr: Dt
  }),
  num: ir("num", {
    startsExpr: Dt
  }),
  bigint: ir("bigint", {
    startsExpr: Dt
  }),
  decimal: ir("decimal", {
    startsExpr: Dt
  }),
  regexp: ir("regexp", {
    startsExpr: Dt
  }),
  privateName: ir("#name", {
    startsExpr: Dt
  }),
  eof: ir("eof"),
  jsxName: ir("jsxName"),
  jsxText: ir("jsxText", {
    beforeExpr: !0
  }),
  jsxTagStart: ir("jsxTagStart", {
    startsExpr: !0
  }),
  jsxTagEnd: ir("jsxTagEnd"),
  placeholder: ir("%%", {
    startsExpr: !0
  })
};
function Si(e) {
  return e >= 93 && e <= 132;
}
function QJe(e) {
  return e <= 92;
}
function kc(e) {
  return e >= 58 && e <= 132;
}
function bfe(e) {
  return e >= 58 && e <= 136;
}
function ZJe(e) {
  return i9[e];
}
function NF(e) {
  return n9[e];
}
function eQe(e) {
  return e >= 29 && e <= 33;
}
function lK(e) {
  return e >= 129 && e <= 131;
}
function tQe(e) {
  return e >= 90 && e <= 92;
}
function a9(e) {
  return e >= 58 && e <= 92;
}
function rQe(e) {
  return e >= 39 && e <= 59;
}
function iQe(e) {
  return e === 34;
}
function nQe(e) {
  return s9[e];
}
function sQe(e) {
  return e >= 121 && e <= 123;
}
function aQe(e) {
  return e >= 124 && e <= 130;
}
function kh(e) {
  return t9[e];
}
function fP(e) {
  return r9[e];
}
function oQe(e) {
  return e === 57;
}
function Mw(e) {
  return e >= 24 && e <= 25;
}
function Wp(e) {
  return Jp[e];
}
Jp[8].updateContext = (e) => {
  e.pop();
}, Jp[5].updateContext = Jp[7].updateContext = Jp[23].updateContext = (e) => {
  e.push(Ri.brace);
}, Jp[22].updateContext = (e) => {
  e[e.length - 1] === Ri.template ? e.pop() : e.push(Ri.template);
}, Jp[142].updateContext = (e) => {
  e.push(Ri.j_expr, Ri.j_oTag);
};
let o9 = "ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢎࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೝೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꟊꟐꟑꟓꟕ-ꟙꟲ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ﬀ-ﬆﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼＡ-Ｚａ-ｚｦ-ﾾￂ-ￇￊ-ￏￒ-ￗￚ-ￜ", vfe = "‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࢘-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-ᫎᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‌‍‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯・꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏０-９＿･";
const lQe = new RegExp("[" + o9 + "]"), uQe = new RegExp("[" + o9 + vfe + "]");
o9 = vfe = null;
const Tfe = [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, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 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, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 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, 16, 0, 30, 2, 3, 0, 15, 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, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 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, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191], cQe = [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, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 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, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 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, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
function DF(e, t) {
  let r = 65536;
  for (let i = 0, n = t.length; i < n; i += 2) {
    if (r += t[i], r > e)
      return !1;
    if (r += t[i + 1], r >= e)
      return !0;
  }
  return !1;
}
function nf(e) {
  return e < 65 ? e === 36 : e <= 90 ? !0 : e < 97 ? e === 95 : e <= 122 ? !0 : e <= 65535 ? e >= 170 && lQe.test(String.fromCharCode(e)) : DF(e, Tfe);
}
function Iy(e) {
  return e < 48 ? e === 36 : e < 58 ? !0 : e < 65 ? !1 : e <= 90 ? !0 : e < 97 ? e === 95 : e <= 122 ? !0 : e <= 65535 ? e >= 170 && uQe.test(String.fromCharCode(e)) : DF(e, Tfe) || DF(e, cQe);
}
const l9 = {
  keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"],
  strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"],
  strictBind: ["eval", "arguments"]
}, pQe = new Set(l9.keyword), fQe = new Set(l9.strict), hQe = new Set(l9.strictBind);
function Sfe(e, t) {
  return t && e === "await" || e === "enum";
}
function xfe(e, t) {
  return Sfe(e, t) || fQe.has(e);
}
function Efe(e) {
  return hQe.has(e);
}
function Pfe(e, t) {
  return xfe(e, t) || Efe(e);
}
function dQe(e) {
  return pQe.has(e);
}
function mQe(e, t, r) {
  return e === 64 && t === 64 && nf(r);
}
const yQe = /* @__PURE__ */ new Set(["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete", "implements", "interface", "let", "package", "private", "protected", "public", "static", "yield", "eval", "arguments", "enum", "await"]);
function gQe(e) {
  return yQe.has(e);
}
let u9 = class {
  constructor(t) {
    this.flags = 0, this.names = /* @__PURE__ */ new Map(), this.firstLexicalName = "", this.flags = t;
  }
}, c9 = class {
  constructor(t, r) {
    this.parser = void 0, this.scopeStack = [], this.inModule = void 0, this.undefinedExports = /* @__PURE__ */ new Map(), this.parser = t, this.inModule = r;
  }
  get inTopLevel() {
    return (this.currentScope().flags & 1) > 0;
  }
  get inFunction() {
    return (this.currentVarScopeFlags() & 2) > 0;
  }
  get allowSuper() {
    return (this.currentThisScopeFlags() & 16) > 0;
  }
  get allowDirectSuper() {
    return (this.currentThisScopeFlags() & 32) > 0;
  }
  get inClass() {
    return (this.currentThisScopeFlags() & 64) > 0;
  }
  get inClassAndNotInNonArrowFunction() {
    const t = this.currentThisScopeFlags();
    return (t & 64) > 0 && (t & 2) === 0;
  }
  get inStaticBlock() {
    for (let t = this.scopeStack.length - 1; ; t--) {
      const {
        flags: r
      } = this.scopeStack[t];
      if (r & 128)
        return !0;
      if (r & 451)
        return !1;
    }
  }
  get inNonArrowFunction() {
    return (this.currentThisScopeFlags() & 2) > 0;
  }
  get treatFunctionsAsVar() {
    return this.treatFunctionsAsVarInScope(this.currentScope());
  }
  createScope(t) {
    return new u9(t);
  }
  enter(t) {
    this.scopeStack.push(this.createScope(t));
  }
  exit() {
    return this.scopeStack.pop().flags;
  }
  treatFunctionsAsVarInScope(t) {
    return !!(t.flags & 130 || !this.parser.inModule && t.flags & 1);
  }
  declareName(t, r, i) {
    let n = this.currentScope();
    if (r & 8 || r & 16) {
      this.checkRedeclarationInScope(n, t, r, i);
      let s = n.names.get(t) || 0;
      r & 16 ? s = s | 4 : (n.firstLexicalName || (n.firstLexicalName = t), s = s | 2), n.names.set(t, s), r & 8 && this.maybeExportDefined(n, t);
    } else if (r & 4)
      for (let s = this.scopeStack.length - 1; s >= 0 && (n = this.scopeStack[s], this.checkRedeclarationInScope(n, t, r, i), n.names.set(t, (n.names.get(t) || 0) | 1), this.maybeExportDefined(n, t), !(n.flags & 387)); --s)
        ;
    this.parser.inModule && n.flags & 1 && this.undefinedExports.delete(t);
  }
  maybeExportDefined(t, r) {
    this.parser.inModule && t.flags & 1 && this.undefinedExports.delete(r);
  }
  checkRedeclarationInScope(t, r, i, n) {
    this.isRedeclaredInScope(t, r, i) && this.parser.raise(tt.VarRedeclaration, n, {
      identifierName: r
    });
  }
  isRedeclaredInScope(t, r, i) {
    if (!(i & 1))
      return !1;
    if (i & 8)
      return t.names.has(r);
    const n = t.names.get(r);
    return i & 16 ? (n & 2) > 0 || !this.treatFunctionsAsVarInScope(t) && (n & 1) > 0 : (n & 2) > 0 && !(t.flags & 8 && t.firstLexicalName === r) || !this.treatFunctionsAsVarInScope(t) && (n & 4) > 0;
  }
  checkLocalExport(t) {
    const {
      name: r
    } = t;
    this.scopeStack[0].names.has(r) || this.undefinedExports.set(r, t.loc.start);
  }
  currentScope() {
    return this.scopeStack[this.scopeStack.length - 1];
  }
  currentVarScopeFlags() {
    for (let t = this.scopeStack.length - 1; ; t--) {
      const {
        flags: r
      } = this.scopeStack[t];
      if (r & 387)
        return r;
    }
  }
  currentThisScopeFlags() {
    for (let t = this.scopeStack.length - 1; ; t--) {
      const {
        flags: r
      } = this.scopeStack[t];
      if (r & 451 && !(r & 4))
        return r;
    }
  }
}, bQe = class extends u9 {
  constructor(...t) {
    super(...t), this.declareFunctions = /* @__PURE__ */ new Set();
  }
}, vQe = class extends c9 {
  createScope(t) {
    return new bQe(t);
  }
  declareName(t, r, i) {
    const n = this.currentScope();
    if (r & 2048) {
      this.checkRedeclarationInScope(n, t, r, i), this.maybeExportDefined(n, t), n.declareFunctions.add(t);
      return;
    }
    super.declareName(t, r, i);
  }
  isRedeclaredInScope(t, r, i) {
    if (super.isRedeclaredInScope(t, r, i))
      return !0;
    if (i & 2048 && !t.declareFunctions.has(r)) {
      const n = t.names.get(r);
      return (n & 4) > 0 || (n & 2) > 0;
    }
    return !1;
  }
  checkLocalExport(t) {
    this.scopeStack[0].declareFunctions.has(t.name) || super.checkLocalExport(t);
  }
}, TQe = class {
  constructor() {
    this.sawUnambiguousESM = !1, this.ambiguousScriptDifferentAst = !1;
  }
  hasPlugin(t) {
    if (typeof t == "string")
      return this.plugins.has(t);
    {
      const [r, i] = t;
      if (!this.hasPlugin(r))
        return !1;
      const n = this.plugins.get(r);
      for (const s of Object.keys(i))
        if ((n == null ? void 0 : n[s]) !== i[s])
          return !1;
      return !0;
    }
  }
  getPluginOption(t, r) {
    var i;
    return (i = this.plugins.get(t)) == null ? void 0 : i[r];
  }
};
function wfe(e, t) {
  e.trailingComments === void 0 ? e.trailingComments = t : e.trailingComments.unshift(...t);
}
function SQe(e, t) {
  e.leadingComments === void 0 ? e.leadingComments = t : e.leadingComments.unshift(...t);
}
function Xv(e, t) {
  e.innerComments === void 0 ? e.innerComments = t : e.innerComments.unshift(...t);
}
function vb(e, t, r) {
  let i = null, n = t.length;
  for (; i === null && n > 0; )
    i = t[--n];
  i === null || i.start > r.start ? Xv(e, r.comments) : wfe(i, r.comments);
}
let xQe = class extends TQe {
  addComment(t) {
    this.filename && (t.loc.filename = this.filename);
    const {
      commentsLen: r
    } = this.state;
    this.comments.length !== r && (this.comments.length = r), this.comments.push(t), this.state.commentsLen++;
  }
  processComment(t) {
    const {
      commentStack: r
    } = this.state, i = r.length;
    if (i === 0)
      return;
    let n = i - 1;
    const s = r[n];
    s.start === t.end && (s.leadingNode = t, n--);
    const {
      start: a
    } = t;
    for (; n >= 0; n--) {
      const o = r[n], l = o.end;
      if (l > a)
        o.containingNode = t, this.finalizeComment(o), r.splice(n, 1);
      else {
        l === a && (o.trailingNode = t);
        break;
      }
    }
  }
  finalizeComment(t) {
    const {
      comments: r
    } = t;
    if (t.leadingNode !== null || t.trailingNode !== null)
      t.leadingNode !== null && wfe(t.leadingNode, r), t.trailingNode !== null && SQe(t.trailingNode, r);
    else {
      const {
        containingNode: i,
        start: n
      } = t;
      if (this.input.charCodeAt(n - 1) === 44)
        switch (i.type) {
          case "ObjectExpression":
          case "ObjectPattern":
          case "RecordExpression":
            vb(i, i.properties, t);
            break;
          case "CallExpression":
          case "OptionalCallExpression":
            vb(i, i.arguments, t);
            break;
          case "FunctionDeclaration":
          case "FunctionExpression":
          case "ArrowFunctionExpression":
          case "ObjectMethod":
          case "ClassMethod":
          case "ClassPrivateMethod":
            vb(i, i.params, t);
            break;
          case "ArrayExpression":
          case "ArrayPattern":
          case "TupleExpression":
            vb(i, i.elements, t);
            break;
          case "ExportNamedDeclaration":
          case "ImportDeclaration":
            vb(i, i.specifiers, t);
            break;
          default:
            Xv(i, r);
        }
      else
        Xv(i, r);
    }
  }
  finalizeRemainingComments() {
    const {
      commentStack: t
    } = this.state;
    for (let r = t.length - 1; r >= 0; r--)
      this.finalizeComment(t[r]);
    this.state.commentStack = [];
  }
  resetPreviousNodeTrailingComments(t) {
    const {
      commentStack: r
    } = this.state, {
      length: i
    } = r;
    if (i === 0)
      return;
    const n = r[i - 1];
    n.leadingNode === t && (n.leadingNode = null);
  }
  resetPreviousIdentifierLeadingComments(t) {
    const {
      commentStack: r
    } = this.state, {
      length: i
    } = r;
    i !== 0 && (r[i - 1].trailingNode === t ? r[i - 1].trailingNode = null : i >= 2 && r[i - 2].trailingNode === t && (r[i - 2].trailingNode = null));
  }
  takeSurroundingComments(t, r, i) {
    const {
      commentStack: n
    } = this.state, s = n.length;
    if (s === 0)
      return;
    let a = s - 1;
    for (; a >= 0; a--) {
      const o = n[a], l = o.end;
      if (o.start === i)
        o.leadingNode = t;
      else if (l === r)
        o.trailingNode = t;
      else if (l < r)
        break;
    }
  }
};
const Afe = /\r\n?|[\n\u2028\u2029]/, Dx = new RegExp(Afe.source, "g");
function Z0(e) {
  switch (e) {
    case 10:
    case 13:
    case 8232:
    case 8233:
      return !0;
    default:
      return !1;
  }
}
const _M = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g, hP = /(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g, uK = new RegExp("(?=(" + hP.source + "))\\1" + /(?=[\n\r\u2028\u2029]|\/\*(?!.*?\*\/)|$)/.source, "y");
function EQe(e) {
  switch (e) {
    case 9:
    case 11:
    case 12:
    case 32:
    case 160:
    case 5760:
    case 8192:
    case 8193:
    case 8194:
    case 8195:
    case 8196:
    case 8197:
    case 8198:
    case 8199:
    case 8200:
    case 8201:
    case 8202:
    case 8239:
    case 8287:
    case 12288:
    case 65279:
      return !0;
    default:
      return !1;
  }
}
let PQe = class Cfe {
  constructor() {
    this.flags = 1024, this.curLine = void 0, this.lineStart = void 0, this.startLoc = void 0, this.endLoc = void 0, this.errors = [], this.potentialArrowAt = -1, this.noArrowAt = [], this.noArrowParamsConversionAt = [], this.topicContext = {
      maxNumOfResolvableTopics: 0,
      maxTopicIndex: null
    }, this.labels = [], this.commentsLen = 0, this.commentStack = [], this.pos = 0, this.type = 139, this.value = null, this.start = 0, this.end = 0, this.lastTokEndLoc = null, this.lastTokStartLoc = null, this.context = [Ri.brace], this.firstInvalidTemplateEscapePos = null, this.strictErrors = /* @__PURE__ */ new Map(), this.tokensLength = 0;
  }
  get strict() {
    return (this.flags & 1) > 0;
  }
  set strict(t) {
    t ? this.flags |= 1 : this.flags &= -2;
  }
  init({
    strictMode: t,
    sourceType: r,
    startLine: i,
    startColumn: n
  }) {
    this.strict = t === !1 ? !1 : t === !0 ? !0 : r === "module", this.curLine = i, this.lineStart = -n, this.startLoc = this.endLoc = new Ih(i, n, 0);
  }
  get maybeInArrowParameters() {
    return (this.flags & 2) > 0;
  }
  set maybeInArrowParameters(t) {
    t ? this.flags |= 2 : this.flags &= -3;
  }
  get inType() {
    return (this.flags & 4) > 0;
  }
  set inType(t) {
    t ? this.flags |= 4 : this.flags &= -5;
  }
  get noAnonFunctionType() {
    return (this.flags & 8) > 0;
  }
  set noAnonFunctionType(t) {
    t ? this.flags |= 8 : this.flags &= -9;
  }
  get hasFlowComment() {
    return (this.flags & 16) > 0;
  }
  set hasFlowComment(t) {
    t ? this.flags |= 16 : this.flags &= -17;
  }
  get isAmbientContext() {
    return (this.flags & 32) > 0;
  }
  set isAmbientContext(t) {
    t ? this.flags |= 32 : this.flags &= -33;
  }
  get inAbstractClass() {
    return (this.flags & 64) > 0;
  }
  set inAbstractClass(t) {
    t ? this.flags |= 64 : this.flags &= -65;
  }
  get inDisallowConditionalTypesContext() {
    return (this.flags & 128) > 0;
  }
  set inDisallowConditionalTypesContext(t) {
    t ? this.flags |= 128 : this.flags &= -129;
  }
  get soloAwait() {
    return (this.flags & 256) > 0;
  }
  set soloAwait(t) {
    t ? this.flags |= 256 : this.flags &= -257;
  }
  get inFSharpPipelineDirectBody() {
    return (this.flags & 512) > 0;
  }
  set inFSharpPipelineDirectBody(t) {
    t ? this.flags |= 512 : this.flags &= -513;
  }
  get canStartJSXElement() {
    return (this.flags & 1024) > 0;
  }
  set canStartJSXElement(t) {
    t ? this.flags |= 1024 : this.flags &= -1025;
  }
  get containsEsc() {
    return (this.flags & 2048) > 0;
  }
  set containsEsc(t) {
    t ? this.flags |= 2048 : this.flags &= -2049;
  }
  curPosition() {
    return new Ih(this.curLine, this.pos - this.lineStart, this.pos);
  }
  clone() {
    const t = new Cfe();
    return t.flags = this.flags, t.curLine = this.curLine, t.lineStart = this.lineStart, t.startLoc = this.startLoc, t.endLoc = this.endLoc, t.errors = this.errors.slice(), t.potentialArrowAt = this.potentialArrowAt, t.noArrowAt = this.noArrowAt.slice(), t.noArrowParamsConversionAt = this.noArrowParamsConversionAt.slice(), t.topicContext = this.topicContext, t.labels = this.labels.slice(), t.commentsLen = this.commentsLen, t.commentStack = this.commentStack.slice(), t.pos = this.pos, t.type = this.type, t.value = this.value, t.start = this.start, t.end = this.end, t.lastTokEndLoc = this.lastTokEndLoc, t.lastTokStartLoc = this.lastTokStartLoc, t.context = this.context.slice(), t.firstInvalidTemplateEscapePos = this.firstInvalidTemplateEscapePos, t.strictErrors = this.strictErrors, t.tokensLength = this.tokensLength, t;
  }
};
var wQe = function(t) {
  return t >= 48 && t <= 57;
};
const cK = {
  decBinOct: /* @__PURE__ */ new Set([46, 66, 69, 79, 95, 98, 101, 111]),
  hex: /* @__PURE__ */ new Set([46, 88, 95, 120])
}, Lx = {
  bin: (e) => e === 48 || e === 49,
  oct: (e) => e >= 48 && e <= 55,
  dec: (e) => e >= 48 && e <= 57,
  hex: (e) => e >= 48 && e <= 57 || e >= 65 && e <= 70 || e >= 97 && e <= 102
};
function pK(e, t, r, i, n, s) {
  const a = r, o = i, l = n;
  let u = "", c = null, f = r;
  const {
    length: h
  } = t;
  for (; ; ) {
    if (r >= h) {
      s.unterminated(a, o, l), u += t.slice(f, r);
      break;
    }
    const m = t.charCodeAt(r);
    if (AQe(e, m, t, r)) {
      u += t.slice(f, r);
      break;
    }
    if (m === 92) {
      u += t.slice(f, r);
      const g = CQe(t, r, i, n, e === "template", s);
      g.ch === null && !c ? c = {
        pos: r,
        lineStart: i,
        curLine: n
      } : u += g.ch, {
        pos: r,
        lineStart: i,
        curLine: n
      } = g, f = r;
    } else
      m === 8232 || m === 8233 ? (++r, ++n, i = r) : m === 10 || m === 13 ? e === "template" ? (u += t.slice(f, r) + "\n", ++r, m === 13 && t.charCodeAt(r) === 10 && ++r, ++n, f = i = r) : s.unterminated(a, o, l) : ++r;
  }
  return {
    pos: r,
    str: u,
    firstInvalidLoc: c,
    lineStart: i,
    curLine: n,
    containsInvalid: !!c
  };
}
function AQe(e, t, r, i) {
  return e === "template" ? t === 96 || t === 36 && r.charCodeAt(i + 1) === 123 : t === (e === "double" ? 34 : 39);
}
function CQe(e, t, r, i, n, s) {
  const a = !n;
  t++;
  const o = (u) => ({
    pos: t,
    ch: u,
    lineStart: r,
    curLine: i
  }), l = e.charCodeAt(t++);
  switch (l) {
    case 110:
      return o("\n");
    case 114:
      return o("\r");
    case 120: {
      let u;
      return {
        code: u,
        pos: t
      } = LF(e, t, r, i, 2, !1, a, s), o(u === null ? null : String.fromCharCode(u));
    }
    case 117: {
      let u;
      return {
        code: u,
        pos: t
      } = Ife(e, t, r, i, a, s), o(u === null ? null : String.fromCodePoint(u));
    }
    case 116:
      return o("	");
    case 98:
      return o("\b");
    case 118:
      return o("\v");
    case 102:
      return o("\f");
    case 13:
      e.charCodeAt(t) === 10 && ++t;
    case 10:
      r = t, ++i;
    case 8232:
    case 8233:
      return o("");
    case 56:
    case 57:
      if (n)
        return o(null);
      s.strictNumericEscape(t - 1, r, i);
    default:
      if (l >= 48 && l <= 55) {
        const u = t - 1;
        let f = e.slice(u, t + 2).match(/^[0-7]+/)[0], h = parseInt(f, 8);
        h > 255 && (f = f.slice(0, -1), h = parseInt(f, 8)), t += f.length - 1;
        const m = e.charCodeAt(t);
        if (f !== "0" || m === 56 || m === 57) {
          if (n)
            return o(null);
          s.strictNumericEscape(u, r, i);
        }
        return o(String.fromCharCode(h));
      }
      return o(String.fromCharCode(l));
  }
}
function LF(e, t, r, i, n, s, a, o) {
  const l = t;
  let u;
  return {
    n: u,
    pos: t
  } = _fe(e, t, r, i, 16, n, s, !1, o, !a), u === null && (a ? o.invalidEscapeSequence(l, r, i) : t = l - 1), {
    code: u,
    pos: t
  };
}
function _fe(e, t, r, i, n, s, a, o, l, u) {
  const c = t, f = n === 16 ? cK.hex : cK.decBinOct, h = n === 16 ? Lx.hex : n === 10 ? Lx.dec : n === 8 ? Lx.oct : Lx.bin;
  let m = !1, g = 0;
  for (let y = 0, v = s == null ? 1 / 0 : s; y < v; ++y) {
    const T = e.charCodeAt(t);
    let S;
    if (T === 95 && o !== "bail") {
      const P = e.charCodeAt(t - 1), x = e.charCodeAt(t + 1);
      if (o) {
        if (Number.isNaN(x) || !h(x) || f.has(P) || f.has(x)) {
          if (u)
            return {
              n: null,
              pos: t
            };
          l.unexpectedNumericSeparator(t, r, i);
        }
      } else {
        if (u)
          return {
            n: null,
            pos: t
          };
        l.numericSeparatorInEscapeSequence(t, r, i);
      }
      ++t;
      continue;
    }
    if (T >= 97 ? S = T - 97 + 10 : T >= 65 ? S = T - 65 + 10 : wQe(T) ? S = T - 48 : S = 1 / 0, S >= n) {
      if (S <= 9 && u)
        return {
          n: null,
          pos: t
        };
      if (S <= 9 && l.invalidDigit(t, r, i, n))
        S = 0;
      else if (a)
        S = 0, m = !0;
      else
        break;
    }
    ++t, g = g * n + S;
  }
  return t === c || s != null && t - c !== s || m ? {
    n: null,
    pos: t
  } : {
    n: g,
    pos: t
  };
}
function Ife(e, t, r, i, n, s) {
  const a = e.charCodeAt(t);
  let o;
  if (a === 123) {
    if (++t, {
      code: o,
      pos: t
    } = LF(e, t, r, i, e.indexOf("}", t) - t, !0, n, s), ++t, o !== null && o > 1114111)
      if (n)
        s.invalidCodePoint(t, r, i);
      else
        return {
          code: null,
          pos: t
        };
  } else
    ({
      code: o,
      pos: t
    } = LF(e, t, r, i, 4, !1, n, s));
  return {
    code: o,
    pos: t
  };
}
function Tb(e, t, r) {
  return new Ih(r, e - t, e);
}
const _Qe = /* @__PURE__ */ new Set([103, 109, 115, 105, 121, 117, 100, 118]);
let fh = class {
  constructor(t) {
    this.type = t.type, this.value = t.value, this.start = t.start, this.end = t.end, this.loc = new Lw(t.startLoc, t.endLoc);
  }
}, IQe = class extends xQe {
  constructor(t, r) {
    super(), this.isLookahead = void 0, this.tokens = [], this.errorHandlers_readInt = {
      invalidDigit: (i, n, s, a) => this.options.errorRecovery ? (this.raise(tt.InvalidDigit, Tb(i, n, s), {
        radix: a
      }), !0) : !1,
      numericSeparatorInEscapeSequence: this.errorBuilder(tt.NumericSeparatorInEscapeSequence),
      unexpectedNumericSeparator: this.errorBuilder(tt.UnexpectedNumericSeparator)
    }, this.errorHandlers_readCodePoint = Object.assign({}, this.errorHandlers_readInt, {
      invalidEscapeSequence: this.errorBuilder(tt.InvalidEscapeSequence),
      invalidCodePoint: this.errorBuilder(tt.InvalidCodePoint)
    }), this.errorHandlers_readStringContents_string = Object.assign({}, this.errorHandlers_readCodePoint, {
      strictNumericEscape: (i, n, s) => {
        this.recordStrictModeErrors(tt.StrictNumericEscape, Tb(i, n, s));
      },
      unterminated: (i, n, s) => {
        throw this.raise(tt.UnterminatedString, Tb(i - 1, n, s));
      }
    }), this.errorHandlers_readStringContents_template = Object.assign({}, this.errorHandlers_readCodePoint, {
      strictNumericEscape: this.errorBuilder(tt.StrictNumericEscape),
      unterminated: (i, n, s) => {
        throw this.raise(tt.UnterminatedTemplate, Tb(i, n, s));
      }
    }), this.state = new PQe(), this.state.init(t), this.input = r, this.length = r.length, this.comments = [], this.isLookahead = !1;
  }
  pushToken(t) {
    this.tokens.length = this.state.tokensLength, this.tokens.push(t), ++this.state.tokensLength;
  }
  next() {
    this.checkKeywordEscapes(), this.options.tokens && this.pushToken(new fh(this.state)), this.state.lastTokEndLoc = this.state.endLoc, this.state.lastTokStartLoc = this.state.startLoc, this.nextToken();
  }
  eat(t) {
    return this.match(t) ? (this.next(), !0) : !1;
  }
  match(t) {
    return this.state.type === t;
  }
  createLookaheadState(t) {
    return {
      pos: t.pos,
      value: null,
      type: t.type,
      start: t.start,
      end: t.end,
      context: [this.curContext()],
      inType: t.inType,
      startLoc: t.startLoc,
      lastTokEndLoc: t.lastTokEndLoc,
      curLine: t.curLine,
      lineStart: t.lineStart,
      curPosition: t.curPosition
    };
  }
  lookahead() {
    const t = this.state;
    this.state = this.createLookaheadState(t), this.isLookahead = !0, this.nextToken(), this.isLookahead = !1;
    const r = this.state;
    return this.state = t, r;
  }
  nextTokenStart() {
    return this.nextTokenStartSince(this.state.pos);
  }
  nextTokenStartSince(t) {
    return _M.lastIndex = t, _M.test(this.input) ? _M.lastIndex : t;
  }
  lookaheadCharCode() {
    return this.input.charCodeAt(this.nextTokenStart());
  }
  nextTokenInLineStart() {
    return this.nextTokenInLineStartSince(this.state.pos);
  }
  nextTokenInLineStartSince(t) {
    return hP.lastIndex = t, hP.test(this.input) ? hP.lastIndex : t;
  }
  lookaheadInLineCharCode() {
    return this.input.charCodeAt(this.nextTokenInLineStart());
  }
  codePointAtPos(t) {
    let r = this.input.charCodeAt(t);
    if ((r & 64512) === 55296 && ++t < this.input.length) {
      const i = this.input.charCodeAt(t);
      (i & 64512) === 56320 && (r = 65536 + ((r & 1023) << 10) + (i & 1023));
    }
    return r;
  }
  setStrict(t) {
    this.state.strict = t, t && (this.state.strictErrors.forEach(([r, i]) => this.raise(r, i)), this.state.strictErrors.clear());
  }
  curContext() {
    return this.state.context[this.state.context.length - 1];
  }
  nextToken() {
    if (this.skipSpace(), this.state.start = this.state.pos, this.isLookahead || (this.state.startLoc = this.state.curPosition()), this.state.pos >= this.length) {
      this.finishToken(139);
      return;
    }
    this.getTokenFromCode(this.codePointAtPos(this.state.pos));
  }
  skipBlockComment(t) {
    let r;
    this.isLookahead || (r = this.state.curPosition());
    const i = this.state.pos, n = this.input.indexOf(t, i + 2);
    if (n === -1)
      throw this.raise(tt.UnterminatedComment, this.state.curPosition());
    for (this.state.pos = n + t.length, Dx.lastIndex = i + 2; Dx.test(this.input) && Dx.lastIndex <= n; )
      ++this.state.curLine, this.state.lineStart = Dx.lastIndex;
    if (this.isLookahead)
      return;
    const s = {
      type: "CommentBlock",
      value: this.input.slice(i + 2, n),
      start: i,
      end: n + t.length,
      loc: new Lw(r, this.state.curPosition())
    };
    return this.options.tokens && this.pushToken(s), s;
  }
  skipLineComment(t) {
    const r = this.state.pos;
    let i;
    this.isLookahead || (i = this.state.curPosition());
    let n = this.input.charCodeAt(this.state.pos += t);
    if (this.state.pos < this.length)
      for (; !Z0(n) && ++this.state.pos < this.length; )
        n = this.input.charCodeAt(this.state.pos);
    if (this.isLookahead)
      return;
    const s = this.state.pos, o = {
      type: "CommentLine",
      value: this.input.slice(r + t, s),
      start: r,
      end: s,
      loc: new Lw(i, this.state.curPosition())
    };
    return this.options.tokens && this.pushToken(o), o;
  }
  skipSpace() {
    const t = this.state.pos, r = [];
    e:
      for (; this.state.pos < this.length; ) {
        const i = this.input.charCodeAt(this.state.pos);
        switch (i) {
          case 32:
          case 160:
          case 9:
            ++this.state.pos;
            break;
          case 13:
            this.input.charCodeAt(this.state.pos + 1) === 10 && ++this.state.pos;
          case 10:
          case 8232:
          case 8233:
            ++this.state.pos, ++this.state.curLine, this.state.lineStart = this.state.pos;
            break;
          case 47:
            switch (this.input.charCodeAt(this.state.pos + 1)) {
              case 42: {
                const n = this.skipBlockComment("*/");
                n !== void 0 && (this.addComment(n), this.options.attachComment && r.push(n));
                break;
              }
              case 47: {
                const n = this.skipLineComment(2);
                n !== void 0 && (this.addComment(n), this.options.attachComment && r.push(n));
                break;
              }
              default:
                break e;
            }
            break;
          default:
            if (EQe(i))
              ++this.state.pos;
            else if (i === 45 && !this.inModule && this.options.annexB) {
              const n = this.state.pos;
              if (this.input.charCodeAt(n + 1) === 45 && this.input.charCodeAt(n + 2) === 62 && (t === 0 || this.state.lineStart > t)) {
                const s = this.skipLineComment(3);
                s !== void 0 && (this.addComment(s), this.options.attachComment && r.push(s));
              } else
                break e;
            } else if (i === 60 && !this.inModule && this.options.annexB) {
              const n = this.state.pos;
              if (this.input.charCodeAt(n + 1) === 33 && this.input.charCodeAt(n + 2) === 45 && this.input.charCodeAt(n + 3) === 45) {
                const s = this.skipLineComment(4);
                s !== void 0 && (this.addComment(s), this.options.attachComment && r.push(s));
              } else
                break e;
            } else
              break e;
        }
      }
    if (r.length > 0) {
      const i = this.state.pos, n = {
        start: t,
        end: i,
        comments: r,
        leadingNode: null,
        trailingNode: null,
        containingNode: null
      };
      this.state.commentStack.push(n);
    }
  }
  finishToken(t, r) {
    this.state.end = this.state.pos, this.state.endLoc = this.state.curPosition();
    const i = this.state.type;
    this.state.type = t, this.state.value = r, this.isLookahead || this.updateContext(i);
  }
  replaceToken(t) {
    this.state.type = t, this.updateContext();
  }
  readToken_numberSign() {
    if (this.state.pos === 0 && this.readToken_interpreter())
      return;
    const t = this.state.pos + 1, r = this.codePointAtPos(t);
    if (r >= 48 && r <= 57)
      throw this.raise(tt.UnexpectedDigitAfterHash, this.state.curPosition());
    if (r === 123 || r === 91 && this.hasPlugin("recordAndTuple")) {
      if (this.expectPlugin("recordAndTuple"), this.getPluginOption("recordAndTuple", "syntaxType") === "bar")
        throw this.raise(r === 123 ? tt.RecordExpressionHashIncorrectStartSyntaxType : tt.TupleExpressionHashIncorrectStartSyntaxType, this.state.curPosition());
      this.state.pos += 2, r === 123 ? this.finishToken(7) : this.finishToken(1);
    } else
      nf(r) ? (++this.state.pos, this.finishToken(138, this.readWord1(r))) : r === 92 ? (++this.state.pos, this.finishToken(138, this.readWord1())) : this.finishOp(27, 1);
  }
  readToken_dot() {
    const t = this.input.charCodeAt(this.state.pos + 1);
    if (t >= 48 && t <= 57) {
      this.readNumber(!0);
      return;
    }
    t === 46 && this.input.charCodeAt(this.state.pos + 2) === 46 ? (this.state.pos += 3, this.finishToken(21)) : (++this.state.pos, this.finishToken(16));
  }
  readToken_slash() {
    this.input.charCodeAt(this.state.pos + 1) === 61 ? this.finishOp(31, 2) : this.finishOp(56, 1);
  }
  readToken_interpreter() {
    if (this.state.pos !== 0 || this.length < 2)
      return !1;
    let t = this.input.charCodeAt(this.state.pos + 1);
    if (t !== 33)
      return !1;
    const r = this.state.pos;
    for (this.state.pos += 1; !Z0(t) && ++this.state.pos < this.length; )
      t = this.input.charCodeAt(this.state.pos);
    const i = this.input.slice(r + 2, this.state.pos);
    return this.finishToken(28, i), !0;
  }
  readToken_mult_modulo(t) {
    let r = t === 42 ? 55 : 54, i = 1, n = this.input.charCodeAt(this.state.pos + 1);
    t === 42 && n === 42 && (i++, n = this.input.charCodeAt(this.state.pos + 2), r = 57), n === 61 && !this.state.inType && (i++, r = t === 37 ? 33 : 30), this.finishOp(r, i);
  }
  readToken_pipe_amp(t) {
    const r = this.input.charCodeAt(this.state.pos + 1);
    if (r === t) {
      this.input.charCodeAt(this.state.pos + 2) === 61 ? this.finishOp(30, 3) : this.finishOp(t === 124 ? 41 : 42, 2);
      return;
    }
    if (t === 124) {
      if (r === 62) {
        this.finishOp(39, 2);
        return;
      }
      if (this.hasPlugin("recordAndTuple") && r === 125) {
        if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
          throw this.raise(tt.RecordExpressionBarIncorrectEndSyntaxType, this.state.curPosition());
        this.state.pos += 2, this.finishToken(9);
        return;
      }
      if (this.hasPlugin("recordAndTuple") && r === 93) {
        if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
          throw this.raise(tt.TupleExpressionBarIncorrectEndSyntaxType, this.state.curPosition());
        this.state.pos += 2, this.finishToken(4);
        return;
      }
    }
    if (r === 61) {
      this.finishOp(30, 2);
      return;
    }
    this.finishOp(t === 124 ? 43 : 45, 1);
  }
  readToken_caret() {
    const t = this.input.charCodeAt(this.state.pos + 1);
    t === 61 && !this.state.inType ? this.finishOp(32, 2) : t === 94 && this.hasPlugin(["pipelineOperator", {
      proposal: "hack",
      topicToken: "^^"
    }]) ? (this.finishOp(37, 2), this.input.codePointAt(this.state.pos) === 94 && this.unexpected()) : this.finishOp(44, 1);
  }
  readToken_atSign() {
    this.input.charCodeAt(this.state.pos + 1) === 64 && this.hasPlugin(["pipelineOperator", {
      proposal: "hack",
      topicToken: "@@"
    }]) ? this.finishOp(38, 2) : this.finishOp(26, 1);
  }
  readToken_plus_min(t) {
    const r = this.input.charCodeAt(this.state.pos + 1);
    if (r === t) {
      this.finishOp(34, 2);
      return;
    }
    r === 61 ? this.finishOp(30, 2) : this.finishOp(53, 1);
  }
  readToken_lt() {
    const {
      pos: t
    } = this.state, r = this.input.charCodeAt(t + 1);
    if (r === 60) {
      if (this.input.charCodeAt(t + 2) === 61) {
        this.finishOp(30, 3);
        return;
      }
      this.finishOp(51, 2);
      return;
    }
    if (r === 61) {
      this.finishOp(49, 2);
      return;
    }
    this.finishOp(47, 1);
  }
  readToken_gt() {
    const {
      pos: t
    } = this.state, r = this.input.charCodeAt(t + 1);
    if (r === 62) {
      const i = this.input.charCodeAt(t + 2) === 62 ? 3 : 2;
      if (this.input.charCodeAt(t + i) === 61) {
        this.finishOp(30, i + 1);
        return;
      }
      this.finishOp(52, i);
      return;
    }
    if (r === 61) {
      this.finishOp(49, 2);
      return;
    }
    this.finishOp(48, 1);
  }
  readToken_eq_excl(t) {
    const r = this.input.charCodeAt(this.state.pos + 1);
    if (r === 61) {
      this.finishOp(46, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2);
      return;
    }
    if (t === 61 && r === 62) {
      this.state.pos += 2, this.finishToken(19);
      return;
    }
    this.finishOp(t === 61 ? 29 : 35, 1);
  }
  readToken_question() {
    const t = this.input.charCodeAt(this.state.pos + 1), r = this.input.charCodeAt(this.state.pos + 2);
    t === 63 ? r === 61 ? this.finishOp(30, 3) : this.finishOp(40, 2) : t === 46 && !(r >= 48 && r <= 57) ? (this.state.pos += 2, this.finishToken(18)) : (++this.state.pos, this.finishToken(17));
  }
  getTokenFromCode(t) {
    switch (t) {
      case 46:
        this.readToken_dot();
        return;
      case 40:
        ++this.state.pos, this.finishToken(10);
        return;
      case 41:
        ++this.state.pos, this.finishToken(11);
        return;
      case 59:
        ++this.state.pos, this.finishToken(13);
        return;
      case 44:
        ++this.state.pos, this.finishToken(12);
        return;
      case 91:
        if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) {
          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
            throw this.raise(tt.TupleExpressionBarIncorrectStartSyntaxType, this.state.curPosition());
          this.state.pos += 2, this.finishToken(2);
        } else
          ++this.state.pos, this.finishToken(0);
        return;
      case 93:
        ++this.state.pos, this.finishToken(3);
        return;
      case 123:
        if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) {
          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
            throw this.raise(tt.RecordExpressionBarIncorrectStartSyntaxType, this.state.curPosition());
          this.state.pos += 2, this.finishToken(6);
        } else
          ++this.state.pos, this.finishToken(5);
        return;
      case 125:
        ++this.state.pos, this.finishToken(8);
        return;
      case 58:
        this.hasPlugin("functionBind") && this.input.charCodeAt(this.state.pos + 1) === 58 ? this.finishOp(15, 2) : (++this.state.pos, this.finishToken(14));
        return;
      case 63:
        this.readToken_question();
        return;
      case 96:
        this.readTemplateToken();
        return;
      case 48: {
        const r = this.input.charCodeAt(this.state.pos + 1);
        if (r === 120 || r === 88) {
          this.readRadixNumber(16);
          return;
        }
        if (r === 111 || r === 79) {
          this.readRadixNumber(8);
          return;
        }
        if (r === 98 || r === 66) {
          this.readRadixNumber(2);
          return;
        }
      }
      case 49:
      case 50:
      case 51:
      case 52:
      case 53:
      case 54:
      case 55:
      case 56:
      case 57:
        this.readNumber(!1);
        return;
      case 34:
      case 39:
        this.readString(t);
        return;
      case 47:
        this.readToken_slash();
        return;
      case 37:
      case 42:
        this.readToken_mult_modulo(t);
        return;
      case 124:
      case 38:
        this.readToken_pipe_amp(t);
        return;
      case 94:
        this.readToken_caret();
        return;
      case 43:
      case 45:
        this.readToken_plus_min(t);
        return;
      case 60:
        this.readToken_lt();
        return;
      case 62:
        this.readToken_gt();
        return;
      case 61:
      case 33:
        this.readToken_eq_excl(t);
        return;
      case 126:
        this.finishOp(36, 1);
        return;
      case 64:
        this.readToken_atSign();
        return;
      case 35:
        this.readToken_numberSign();
        return;
      case 92:
        this.readWord();
        return;
      default:
        if (nf(t)) {
          this.readWord(t);
          return;
        }
    }
    throw this.raise(tt.InvalidOrUnexpectedToken, this.state.curPosition(), {
      unexpected: String.fromCodePoint(t)
    });
  }
  finishOp(t, r) {
    const i = this.input.slice(this.state.pos, this.state.pos + r);
    this.state.pos += r, this.finishToken(t, i);
  }
  readRegexp() {
    const t = this.state.startLoc, r = this.state.start + 1;
    let i, n, {
      pos: s
    } = this.state;
    for (; ; ++s) {
      if (s >= this.length)
        throw this.raise(tt.UnterminatedRegExp, la(t, 1));
      const u = this.input.charCodeAt(s);
      if (Z0(u))
        throw this.raise(tt.UnterminatedRegExp, la(t, 1));
      if (i)
        i = !1;
      else {
        if (u === 91)
          n = !0;
        else if (u === 93 && n)
          n = !1;
        else if (u === 47 && !n)
          break;
        i = u === 92;
      }
    }
    const a = this.input.slice(r, s);
    ++s;
    let o = "";
    const l = () => la(t, s + 2 - r);
    for (; s < this.length; ) {
      const u = this.codePointAtPos(s), c = String.fromCharCode(u);
      if (_Qe.has(u))
        u === 118 ? o.includes("u") && this.raise(tt.IncompatibleRegExpUVFlags, l()) : u === 117 && o.includes("v") && this.raise(tt.IncompatibleRegExpUVFlags, l()), o.includes(c) && this.raise(tt.DuplicateRegExpFlags, l());
      else if (Iy(u) || u === 92)
        this.raise(tt.MalformedRegExpFlags, l());
      else
        break;
      ++s, o += c;
    }
    this.state.pos = s, this.finishToken(137, {
      pattern: a,
      flags: o
    });
  }
  readInt(t, r, i = !1, n = !0) {
    const {
      n: s,
      pos: a
    } = _fe(this.input, this.state.pos, this.state.lineStart, this.state.curLine, t, r, i, n, this.errorHandlers_readInt, !1);
    return this.state.pos = a, s;
  }
  readRadixNumber(t) {
    const r = this.state.curPosition();
    let i = !1;
    this.state.pos += 2;
    const n = this.readInt(t);
    n == null && this.raise(tt.InvalidDigit, la(r, 2), {
      radix: t
    });
    const s = this.input.charCodeAt(this.state.pos);
    if (s === 110)
      ++this.state.pos, i = !0;
    else if (s === 109)
      throw this.raise(tt.InvalidDecimal, r);
    if (nf(this.codePointAtPos(this.state.pos)))
      throw this.raise(tt.NumberIdentifier, this.state.curPosition());
    if (i) {
      const a = this.input.slice(r.index, this.state.pos).replace(/[_n]/g, "");
      this.finishToken(135, a);
      return;
    }
    this.finishToken(134, n);
  }
  readNumber(t) {
    const r = this.state.pos, i = this.state.curPosition();
    let n = !1, s = !1, a = !1, o = !1, l = !1;
    !t && this.readInt(10) === null && this.raise(tt.InvalidNumber, this.state.curPosition());
    const u = this.state.pos - r >= 2 && this.input.charCodeAt(r) === 48;
    if (u) {
      const m = this.input.slice(r, this.state.pos);
      if (this.recordStrictModeErrors(tt.StrictOctalLiteral, i), !this.state.strict) {
        const g = m.indexOf("_");
        g > 0 && this.raise(tt.ZeroDigitNumericSeparator, la(i, g));
      }
      l = u && !/[89]/.test(m);
    }
    let c = this.input.charCodeAt(this.state.pos);
    if (c === 46 && !l && (++this.state.pos, this.readInt(10), n = !0, c = this.input.charCodeAt(this.state.pos)), (c === 69 || c === 101) && !l && (c = this.input.charCodeAt(++this.state.pos), (c === 43 || c === 45) && ++this.state.pos, this.readInt(10) === null && this.raise(tt.InvalidOrMissingExponent, i), n = !0, o = !0, c = this.input.charCodeAt(this.state.pos)), c === 110 && ((n || u) && this.raise(tt.InvalidBigIntLiteral, i), ++this.state.pos, s = !0), c === 109 && (this.expectPlugin("decimal", this.state.curPosition()), (o || u) && this.raise(tt.InvalidDecimal, i), ++this.state.pos, a = !0), nf(this.codePointAtPos(this.state.pos)))
      throw this.raise(tt.NumberIdentifier, this.state.curPosition());
    const f = this.input.slice(r, this.state.pos).replace(/[_mn]/g, "");
    if (s) {
      this.finishToken(135, f);
      return;
    }
    if (a) {
      this.finishToken(136, f);
      return;
    }
    const h = l ? parseInt(f, 8) : parseFloat(f);
    this.finishToken(134, h);
  }
  readCodePoint(t) {
    const {
      code: r,
      pos: i
    } = Ife(this.input, this.state.pos, this.state.lineStart, this.state.curLine, t, this.errorHandlers_readCodePoint);
    return this.state.pos = i, r;
  }
  readString(t) {
    const {
      str: r,
      pos: i,
      curLine: n,
      lineStart: s
    } = pK(t === 34 ? "double" : "single", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_string);
    this.state.pos = i + 1, this.state.lineStart = s, this.state.curLine = n, this.finishToken(133, r);
  }
  readTemplateContinuation() {
    this.match(8) || this.unexpected(null, 8), this.state.pos--, this.readTemplateToken();
  }
  readTemplateToken() {
    const t = this.input[this.state.pos], {
      str: r,
      firstInvalidLoc: i,
      pos: n,
      curLine: s,
      lineStart: a
    } = pK("template", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_template);
    this.state.pos = n + 1, this.state.lineStart = a, this.state.curLine = s, i && (this.state.firstInvalidTemplateEscapePos = new Ih(i.curLine, i.pos - i.lineStart, i.pos)), this.input.codePointAt(n) === 96 ? this.finishToken(24, i ? null : t + r + "`") : (this.state.pos++, this.finishToken(25, i ? null : t + r + "${"));
  }
  recordStrictModeErrors(t, r) {
    const i = r.index;
    this.state.strict && !this.state.strictErrors.has(i) ? this.raise(t, r) : this.state.strictErrors.set(i, [t, r]);
  }
  readWord1(t) {
    this.state.containsEsc = !1;
    let r = "";
    const i = this.state.pos;
    let n = this.state.pos;
    for (t !== void 0 && (this.state.pos += t <= 65535 ? 1 : 2); this.state.pos < this.length; ) {
      const s = this.codePointAtPos(this.state.pos);
      if (Iy(s))
        this.state.pos += s <= 65535 ? 1 : 2;
      else if (s === 92) {
        this.state.containsEsc = !0, r += this.input.slice(n, this.state.pos);
        const a = this.state.curPosition(), o = this.state.pos === i ? nf : Iy;
        if (this.input.charCodeAt(++this.state.pos) !== 117) {
          this.raise(tt.MissingUnicodeEscape, this.state.curPosition()), n = this.state.pos - 1;
          continue;
        }
        ++this.state.pos;
        const l = this.readCodePoint(!0);
        l !== null && (o(l) || this.raise(tt.EscapedCharNotAnIdentifier, a), r += String.fromCodePoint(l)), n = this.state.pos;
      } else
        break;
    }
    return r + this.input.slice(n, this.state.pos);
  }
  readWord(t) {
    const r = this.readWord1(t), i = e9.get(r);
    i !== void 0 ? this.finishToken(i, kh(i)) : this.finishToken(132, r);
  }
  checkKeywordEscapes() {
    const {
      type: t
    } = this.state;
    a9(t) && this.state.containsEsc && this.raise(tt.InvalidEscapedReservedWord, this.state.startLoc, {
      reservedWord: kh(t)
    });
  }
  raise(t, r, i = {}) {
    const n = r instanceof Ih ? r : r.loc.start, s = t(n, i);
    if (!this.options.errorRecovery)
      throw s;
    return this.isLookahead || this.state.errors.push(s), s;
  }
  raiseOverwrite(t, r, i = {}) {
    const n = r instanceof Ih ? r : r.loc.start, s = n.index, a = this.state.errors;
    for (let o = a.length - 1; o >= 0; o--) {
      const l = a[o];
      if (l.loc.index === s)
        return a[o] = t(n, i);
      if (l.loc.index < s)
        break;
    }
    return this.raise(t, r, i);
  }
  updateContext(t) {
  }
  unexpected(t, r) {
    throw this.raise(tt.UnexpectedToken, t != null ? t : this.state.startLoc, {
      expected: r ? kh(r) : null
    });
  }
  expectPlugin(t, r) {
    if (this.hasPlugin(t))
      return !0;
    throw this.raise(tt.MissingPlugin, r != null ? r : this.state.startLoc, {
      missingPlugin: [t]
    });
  }
  expectOnePlugin(t) {
    if (!t.some((r) => this.hasPlugin(r)))
      throw this.raise(tt.MissingOneOfPlugins, this.state.startLoc, {
        missingPlugin: t
      });
  }
  errorBuilder(t) {
    return (r, i, n) => {
      this.raise(t, Tb(r, i, n));
    };
  }
}, kQe = class {
  constructor() {
    this.privateNames = /* @__PURE__ */ new Set(), this.loneAccessors = /* @__PURE__ */ new Map(), this.undefinedPrivateNames = /* @__PURE__ */ new Map();
  }
}, OQe = class {
  constructor(t) {
    this.parser = void 0, this.stack = [], this.undefinedPrivateNames = /* @__PURE__ */ new Map(), this.parser = t;
  }
  current() {
    return this.stack[this.stack.length - 1];
  }
  enter() {
    this.stack.push(new kQe());
  }
  exit() {
    const t = this.stack.pop(), r = this.current();
    for (const [i, n] of Array.from(t.undefinedPrivateNames))
      r ? r.undefinedPrivateNames.has(i) || r.undefinedPrivateNames.set(i, n) : this.parser.raise(tt.InvalidPrivateFieldResolution, n, {
        identifierName: i
      });
  }
  declarePrivateName(t, r, i) {
    const {
      privateNames: n,
      loneAccessors: s,
      undefinedPrivateNames: a
    } = this.current();
    let o = n.has(t);
    if (r & 3) {
      const l = o && s.get(t);
      if (l) {
        const u = l & 4, c = r & 4, f = l & 3, h = r & 3;
        o = f === h || u !== c, o || s.delete(t);
      } else
        o || s.set(t, r);
    }
    o && this.parser.raise(tt.PrivateNameRedeclaration, i, {
      identifierName: t
    }), n.add(t), a.delete(t);
  }
  usePrivateName(t, r) {
    let i;
    for (i of this.stack)
      if (i.privateNames.has(t))
        return;
    i ? i.undefinedPrivateNames.set(t, r) : this.parser.raise(tt.InvalidPrivateFieldResolution, r, {
      identifierName: t
    });
  }
}, u_ = class {
  constructor(t = 0) {
    this.type = t;
  }
  canBeArrowParameterDeclaration() {
    return this.type === 2 || this.type === 1;
  }
  isCertainlyParameterDeclaration() {
    return this.type === 3;
  }
}, kfe = class extends u_ {
  constructor(t) {
    super(t), this.declarationErrors = /* @__PURE__ */ new Map();
  }
  recordDeclarationError(t, r) {
    const i = r.index;
    this.declarationErrors.set(i, [t, r]);
  }
  clearDeclarationError(t) {
    this.declarationErrors.delete(t);
  }
  iterateErrors(t) {
    this.declarationErrors.forEach(t);
  }
}, NQe = class {
  constructor(t) {
    this.parser = void 0, this.stack = [new u_()], this.parser = t;
  }
  enter(t) {
    this.stack.push(t);
  }
  exit() {
    this.stack.pop();
  }
  recordParameterInitializerError(t, r) {
    const i = r.loc.start, {
      stack: n
    } = this;
    let s = n.length - 1, a = n[s];
    for (; !a.isCertainlyParameterDeclaration(); ) {
      if (a.canBeArrowParameterDeclaration())
        a.recordDeclarationError(t, i);
      else
        return;
      a = n[--s];
    }
    this.parser.raise(t, i);
  }
  recordArrowParameterBindingError(t, r) {
    const {
      stack: i
    } = this, n = i[i.length - 1], s = r.loc.start;
    if (n.isCertainlyParameterDeclaration())
      this.parser.raise(t, s);
    else if (n.canBeArrowParameterDeclaration())
      n.recordDeclarationError(t, s);
    else
      return;
  }
  recordAsyncArrowParametersError(t) {
    const {
      stack: r
    } = this;
    let i = r.length - 1, n = r[i];
    for (; n.canBeArrowParameterDeclaration(); )
      n.type === 2 && n.recordDeclarationError(tt.AwaitBindingIdentifier, t), n = r[--i];
  }
  validateAsPattern() {
    const {
      stack: t
    } = this, r = t[t.length - 1];
    r.canBeArrowParameterDeclaration() && r.iterateErrors(([i, n]) => {
      this.parser.raise(i, n);
      let s = t.length - 2, a = t[s];
      for (; a.canBeArrowParameterDeclaration(); )
        a.clearDeclarationError(n.index), a = t[--s];
    });
  }
};
function DQe() {
  return new u_(3);
}
function LQe() {
  return new kfe(1);
}
function MQe() {
  return new kfe(2);
}
function Ofe() {
  return new u_();
}
let RQe = class {
  constructor() {
    this.stacks = [];
  }
  enter(t) {
    this.stacks.push(t);
  }
  exit() {
    this.stacks.pop();
  }
  currentFlags() {
    return this.stacks[this.stacks.length - 1];
  }
  get hasAwait() {
    return (this.currentFlags() & 2) > 0;
  }
  get hasYield() {
    return (this.currentFlags() & 1) > 0;
  }
  get hasReturn() {
    return (this.currentFlags() & 4) > 0;
  }
  get hasIn() {
    return (this.currentFlags() & 8) > 0;
  }
};
function dP(e, t) {
  return (e ? 2 : 0) | (t ? 1 : 0);
}
let BQe = class extends IQe {
  addExtra(t, r, i, n = !0) {
    if (!t)
      return;
    const s = t.extra = t.extra || {};
    n ? s[r] = i : Object.defineProperty(s, r, {
      enumerable: n,
      value: i
    });
  }
  isContextual(t) {
    return this.state.type === t && !this.state.containsEsc;
  }
  isUnparsedContextual(t, r) {
    const i = t + r.length;
    if (this.input.slice(t, i) === r) {
      const n = this.input.charCodeAt(i);
      return !(Iy(n) || (n & 64512) === 55296);
    }
    return !1;
  }
  isLookaheadContextual(t) {
    const r = this.nextTokenStart();
    return this.isUnparsedContextual(r, t);
  }
  eatContextual(t) {
    return this.isContextual(t) ? (this.next(), !0) : !1;
  }
  expectContextual(t, r) {
    if (!this.eatContextual(t)) {
      if (r != null)
        throw this.raise(r, this.state.startLoc);
      this.unexpected(null, t);
    }
  }
  canInsertSemicolon() {
    return this.match(139) || this.match(8) || this.hasPrecedingLineBreak();
  }
  hasPrecedingLineBreak() {
    return Afe.test(this.input.slice(this.state.lastTokEndLoc.index, this.state.start));
  }
  hasFollowingLineBreak() {
    return uK.lastIndex = this.state.end, uK.test(this.input);
  }
  isLineTerminator() {
    return this.eat(13) || this.canInsertSemicolon();
  }
  semicolon(t = !0) {
    (t ? this.isLineTerminator() : this.eat(13)) || this.raise(tt.MissingSemicolon, this.state.lastTokEndLoc);
  }
  expect(t, r) {
    this.eat(t) || this.unexpected(r, t);
  }
  tryParse(t, r = this.state.clone()) {
    const i = {
      node: null
    };
    try {
      const n = t((s = null) => {
        throw i.node = s, i;
      });
      if (this.state.errors.length > r.errors.length) {
        const s = this.state;
        return this.state = r, this.state.tokensLength = s.tokensLength, {
          node: n,
          error: s.errors[r.errors.length],
          thrown: !1,
          aborted: !1,
          failState: s
        };
      }
      return {
        node: n,
        error: null,
        thrown: !1,
        aborted: !1,
        failState: null
      };
    } catch (n) {
      const s = this.state;
      if (this.state = r, n instanceof SyntaxError)
        return {
          node: null,
          error: n,
          thrown: !0,
          aborted: !1,
          failState: s
        };
      if (n === i)
        return {
          node: i.node,
          error: null,
          thrown: !1,
          aborted: !0,
          failState: s
        };
      throw n;
    }
  }
  checkExpressionErrors(t, r) {
    if (!t)
      return !1;
    const {
      shorthandAssignLoc: i,
      doubleProtoLoc: n,
      privateKeyLoc: s,
      optionalParametersLoc: a
    } = t, o = !!i || !!n || !!a || !!s;
    if (!r)
      return o;
    i != null && this.raise(tt.InvalidCoverInitializedName, i), n != null && this.raise(tt.DuplicateProto, n), s != null && this.raise(tt.UnexpectedPrivateField, s), a != null && this.unexpected(a);
  }
  isLiteralPropertyName() {
    return bfe(this.state.type);
  }
  isPrivateName(t) {
    return t.type === "PrivateName";
  }
  getPrivateNameSV(t) {
    return t.id.name;
  }
  hasPropertyAsPrivateName(t) {
    return (t.type === "MemberExpression" || t.type === "OptionalMemberExpression") && this.isPrivateName(t.property);
  }
  isObjectProperty(t) {
    return t.type === "ObjectProperty";
  }
  isObjectMethod(t) {
    return t.type === "ObjectMethod";
  }
  initializeScopes(t = this.options.sourceType === "module") {
    const r = this.state.labels;
    this.state.labels = [];
    const i = this.exportedIdentifiers;
    this.exportedIdentifiers = /* @__PURE__ */ new Set();
    const n = this.inModule;
    this.inModule = t;
    const s = this.scope, a = this.getScopeHandler();
    this.scope = new a(this, t);
    const o = this.prodParam;
    this.prodParam = new RQe();
    const l = this.classScope;
    this.classScope = new OQe(this);
    const u = this.expressionScope;
    return this.expressionScope = new NQe(this), () => {
      this.state.labels = r, this.exportedIdentifiers = i, this.inModule = n, this.scope = s, this.prodParam = o, this.classScope = l, this.expressionScope = u;
    };
  }
  enterInitialScopes() {
    let t = 0;
    this.inModule && (t |= 2), this.scope.enter(1), this.prodParam.enter(t);
  }
  checkDestructuringPrivate(t) {
    const {
      privateKeyLoc: r
    } = t;
    r !== null && this.expectPlugin("destructuringPrivate", r);
  }
}, mP = class {
  constructor() {
    this.shorthandAssignLoc = null, this.doubleProtoLoc = null, this.privateKeyLoc = null, this.optionalParametersLoc = null;
  }
}, Rw = class {
  constructor(t, r, i) {
    this.type = "", this.start = r, this.end = 0, this.loc = new Lw(i), t != null && t.options.ranges && (this.range = [r, 0]), t != null && t.filename && (this.loc.filename = t.filename);
  }
};
const p9 = Rw.prototype;
p9.__clone = function() {
  const e = new Rw(void 0, this.start, this.loc.start), t = Object.keys(this);
  for (let r = 0, i = t.length; r < i; r++) {
    const n = t[r];
    n !== "leadingComments" && n !== "trailingComments" && n !== "innerComments" && (e[n] = this[n]);
  }
  return e;
};
function FQe(e) {
  return vf(e);
}
function vf(e) {
  const {
    type: t,
    start: r,
    end: i,
    loc: n,
    range: s,
    extra: a,
    name: o
  } = e, l = Object.create(p9);
  return l.type = t, l.start = r, l.end = i, l.loc = n, l.range = s, l.extra = a, l.name = o, t === "Placeholder" && (l.expectedNode = e.expectedNode), l;
}
function jQe(e) {
  const {
    type: t,
    start: r,
    end: i,
    loc: n,
    range: s,
    extra: a
  } = e;
  if (t === "Placeholder")
    return FQe(e);
  const o = Object.create(p9);
  return o.type = t, o.start = r, o.end = i, o.loc = n, o.range = s, e.raw !== void 0 ? o.raw = e.raw : o.extra = a, o.value = e.value, o;
}
let $Qe = class extends BQe {
  startNode() {
    const t = this.state.startLoc;
    return new Rw(this, t.index, t);
  }
  startNodeAt(t) {
    return new Rw(this, t.index, t);
  }
  startNodeAtNode(t) {
    return this.startNodeAt(t.loc.start);
  }
  finishNode(t, r) {
    return this.finishNodeAt(t, r, this.state.lastTokEndLoc);
  }
  finishNodeAt(t, r, i) {
    return t.type = r, t.end = i.index, t.loc.end = i, this.options.ranges && (t.range[1] = i.index), this.options.attachComment && this.processComment(t), t;
  }
  resetStartLocation(t, r) {
    t.start = r.index, t.loc.start = r, this.options.ranges && (t.range[0] = r.index);
  }
  resetEndLocation(t, r = this.state.lastTokEndLoc) {
    t.end = r.index, t.loc.end = r, this.options.ranges && (t.range[1] = r.index);
  }
  resetStartLocationFromNode(t, r) {
    this.resetStartLocation(t, r.loc.start);
  }
};
const UQe = /* @__PURE__ */ new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "static", "string", "true", "typeof", "void"]);
var mne;
const cr = hf(mne || (mne = at(["flow"])))({
  AmbiguousConditionalArrow: "Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.",
  AmbiguousDeclareModuleKind: "Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.",
  AssignReservedType: ({
    reservedType: e
  }) => "Cannot overwrite reserved type ".concat(e, "."),
  DeclareClassElement: "The `declare` modifier can only appear on class fields.",
  DeclareClassFieldInitializer: "Initializers are not allowed in fields with the `declare` modifier.",
  DuplicateDeclareModuleExports: "Duplicate `declare module.exports` statement.",
  EnumBooleanMemberNotInitialized: ({
    memberName: e,
    enumName: t
  }) => "Boolean enum members need to be initialized. Use either `".concat(e, " = true,` or `").concat(e, " = false,` in enum `").concat(t, "`."),
  EnumDuplicateMemberName: ({
    memberName: e,
    enumName: t
  }) => "Enum member names need to be unique, but the name `".concat(e, "` has already been used before in enum `").concat(t, "`."),
  EnumInconsistentMemberValues: ({
    enumName: e
  }) => "Enum `".concat(e, "` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers."),
  EnumInvalidExplicitType: ({
    invalidEnumType: e,
    enumName: t
  }) => "Enum type `".concat(e, "` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `").concat(t, "`."),
  EnumInvalidExplicitTypeUnknownSupplied: ({
    enumName: e
  }) => "Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `".concat(e, "`."),
  EnumInvalidMemberInitializerPrimaryType: ({
    enumName: e,
    memberName: t,
    explicitType: r
  }) => "Enum `".concat(e, "` has type `").concat(r, "`, so the initializer of `").concat(t, "` needs to be a ").concat(r, " literal."),
  EnumInvalidMemberInitializerSymbolType: ({
    enumName: e,
    memberName: t
  }) => "Symbol enum members cannot be initialized. Use `".concat(t, ",` in enum `").concat(e, "`."),
  EnumInvalidMemberInitializerUnknownType: ({
    enumName: e,
    memberName: t
  }) => "The enum member initializer for `".concat(t, "` needs to be a literal (either a boolean, number, or string) in enum `").concat(e, "`."),
  EnumInvalidMemberName: ({
    enumName: e,
    memberName: t,
    suggestion: r
  }) => "Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `".concat(t, "`, consider using `").concat(r, "`, in enum `").concat(e, "`."),
  EnumNumberMemberNotInitialized: ({
    enumName: e,
    memberName: t
  }) => "Number enum members need to be initialized, e.g. `".concat(t, " = 1` in enum `").concat(e, "`."),
  EnumStringMemberInconsistentlyInitialized: ({
    enumName: e
  }) => "String enum members need to consistently either all use initializers, or use no initializers, in enum `".concat(e, "`."),
  GetterMayNotHaveThisParam: "A getter cannot have a `this` parameter.",
  ImportReflectionHasImportType: "An `import module` declaration can not use `type` or `typeof` keyword.",
  ImportTypeShorthandOnlyInPureImport: "The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.",
  InexactInsideExact: "Explicit inexact syntax cannot appear inside an explicit exact object type.",
  InexactInsideNonObject: "Explicit inexact syntax cannot appear in class or interface definitions.",
  InexactVariance: "Explicit inexact syntax cannot have variance.",
  InvalidNonTypeImportInDeclareModule: "Imports within a `declare module` body must always be `import type` or `import typeof`.",
  MissingTypeParamDefault: "Type parameter declaration needs a default, since a preceding type parameter declaration has a default.",
  NestedDeclareModule: "`declare module` cannot be used inside another `declare module`.",
  NestedFlowComment: "Cannot have a flow comment inside another flow comment.",
  PatternIsOptional: Object.assign({
    message: "A binding pattern parameter cannot be optional in an implementation signature."
  }, {
    reasonCode: "OptionalBindingPattern"
  }),
  SetterMayNotHaveThisParam: "A setter cannot have a `this` parameter.",
  SpreadVariance: "Spread properties cannot have variance.",
  ThisParamAnnotationRequired: "A type annotation is required for the `this` parameter.",
  ThisParamBannedInConstructor: "Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.",
  ThisParamMayNotBeOptional: "The `this` parameter cannot be optional.",
  ThisParamMustBeFirst: "The `this` parameter must be the first function parameter.",
  ThisParamNoDefault: "The `this` parameter may not have a default value.",
  TypeBeforeInitializer: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",
  TypeCastInPattern: "The type cast expression is expected to be wrapped with parenthesis.",
  UnexpectedExplicitInexactInObject: "Explicit inexact syntax must appear at the end of an inexact object.",
  UnexpectedReservedType: ({
    reservedType: e
  }) => "Unexpected reserved type ".concat(e, "."),
  UnexpectedReservedUnderscore: "`_` is only allowed as a type argument to call or new.",
  UnexpectedSpaceBetweenModuloChecks: "Spaces between `%` and `checks` are not allowed here.",
  UnexpectedSpreadType: "Spread operator cannot appear in class or interface definitions.",
  UnexpectedSubtractionOperand: 'Unexpected token, expected "number" or "bigint".',
  UnexpectedTokenAfterTypeParameter: "Expected an arrow function after this type parameter declaration.",
  UnexpectedTypeParameterBeforeAsyncArrowFunction: "Type parameters must come after the async keyword, e.g. instead of `<T> async () => {}`, use `async <T>() => {}`.",
  UnsupportedDeclareExportKind: ({
    unsupportedExportKind: e,
    suggestion: t
  }) => "`declare export ".concat(e, "` is not supported. Use `").concat(t, "` instead."),
  UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.",
  UnterminatedFlowComment: "Unterminated flow-comment."
});
function qQe(e) {
  return e.type === "DeclareExportAllDeclaration" || e.type === "DeclareExportDeclaration" && (!e.declaration || e.declaration.type !== "TypeAlias" && e.declaration.type !== "InterfaceDeclaration");
}
function fK(e) {
  return e.importKind === "type" || e.importKind === "typeof";
}
const VQe = {
  const: "declare export var",
  let: "declare export var",
  type: "export type",
  interface: "export interface"
};
function WQe(e, t) {
  const r = [], i = [];
  for (let n = 0; n < e.length; n++)
    (t(e[n], n, e) ? r : i).push(e[n]);
  return [r, i];
}
const HQe = /\*?\s*@((?:no)?flow)\b/;
var KQe = (e) => class extends e {
  constructor(...r) {
    super(...r), this.flowPragma = void 0;
  }
  getScopeHandler() {
    return vQe;
  }
  shouldParseTypes() {
    return this.getPluginOption("flow", "all") || this.flowPragma === "flow";
  }
  shouldParseEnums() {
    return !!this.getPluginOption("flow", "enums");
  }
  finishToken(r, i) {
    r !== 133 && r !== 13 && r !== 28 && this.flowPragma === void 0 && (this.flowPragma = null), super.finishToken(r, i);
  }
  addComment(r) {
    if (this.flowPragma === void 0) {
      const i = HQe.exec(r.value);
      if (i)
        if (i[1] === "flow")
          this.flowPragma = "flow";
        else if (i[1] === "noflow")
          this.flowPragma = "noflow";
        else
          throw new Error("Unexpected flow pragma");
    }
    super.addComment(r);
  }
  flowParseTypeInitialiser(r) {
    const i = this.state.inType;
    this.state.inType = !0, this.expect(r || 14);
    const n = this.flowParseType();
    return this.state.inType = i, n;
  }
  flowParsePredicate() {
    const r = this.startNode(), i = this.state.startLoc;
    return this.next(), this.expectContextual(110), this.state.lastTokStartLoc.index > i.index + 1 && this.raise(cr.UnexpectedSpaceBetweenModuloChecks, i), this.eat(10) ? (r.value = super.parseExpression(), this.expect(11), this.finishNode(r, "DeclaredPredicate")) : this.finishNode(r, "InferredPredicate");
  }
  flowParseTypeAndPredicateInitialiser() {
    const r = this.state.inType;
    this.state.inType = !0, this.expect(14);
    let i = null, n = null;
    return this.match(54) ? (this.state.inType = r, n = this.flowParsePredicate()) : (i = this.flowParseType(), this.state.inType = r, this.match(54) && (n = this.flowParsePredicate())), [i, n];
  }
  flowParseDeclareClass(r) {
    return this.next(), this.flowParseInterfaceish(r, !0), this.finishNode(r, "DeclareClass");
  }
  flowParseDeclareFunction(r) {
    this.next();
    const i = r.id = this.parseIdentifier(), n = this.startNode(), s = this.startNode();
    this.match(47) ? n.typeParameters = this.flowParseTypeParameterDeclaration() : n.typeParameters = null, this.expect(10);
    const a = this.flowParseFunctionTypeParams();
    return n.params = a.params, n.rest = a.rest, n.this = a._this, this.expect(11), [n.returnType, r.predicate] = this.flowParseTypeAndPredicateInitialiser(), s.typeAnnotation = this.finishNode(n, "FunctionTypeAnnotation"), i.typeAnnotation = this.finishNode(s, "TypeAnnotation"), this.resetEndLocation(i), this.semicolon(), this.scope.declareName(r.id.name, 2048, r.id.loc.start), this.finishNode(r, "DeclareFunction");
  }
  flowParseDeclare(r, i) {
    if (this.match(80))
      return this.flowParseDeclareClass(r);
    if (this.match(68))
      return this.flowParseDeclareFunction(r);
    if (this.match(74))
      return this.flowParseDeclareVariable(r);
    if (this.eatContextual(127))
      return this.match(16) ? this.flowParseDeclareModuleExports(r) : (i && this.raise(cr.NestedDeclareModule, this.state.lastTokStartLoc), this.flowParseDeclareModule(r));
    if (this.isContextual(130))
      return this.flowParseDeclareTypeAlias(r);
    if (this.isContextual(131))
      return this.flowParseDeclareOpaqueType(r);
    if (this.isContextual(129))
      return this.flowParseDeclareInterface(r);
    if (this.match(82))
      return this.flowParseDeclareExportDeclaration(r, i);
    this.unexpected();
  }
  flowParseDeclareVariable(r) {
    return this.next(), r.id = this.flowParseTypeAnnotatableIdentifier(!0), this.scope.declareName(r.id.name, 5, r.id.loc.start), this.semicolon(), this.finishNode(r, "DeclareVariable");
  }
  flowParseDeclareModule(r) {
    this.scope.enter(0), this.match(133) ? r.id = super.parseExprAtom() : r.id = this.parseIdentifier();
    const i = r.body = this.startNode(), n = i.body = [];
    for (this.expect(5); !this.match(8); ) {
      let o = this.startNode();
      this.match(83) ? (this.next(), !this.isContextual(130) && !this.match(87) && this.raise(cr.InvalidNonTypeImportInDeclareModule, this.state.lastTokStartLoc), super.parseImport(o)) : (this.expectContextual(125, cr.UnsupportedStatementInDeclareModule), o = this.flowParseDeclare(o, !0)), n.push(o);
    }
    this.scope.exit(), this.expect(8), this.finishNode(i, "BlockStatement");
    let s = null, a = !1;
    return n.forEach((o) => {
      qQe(o) ? (s === "CommonJS" && this.raise(cr.AmbiguousDeclareModuleKind, o), s = "ES") : o.type === "DeclareModuleExports" && (a && this.raise(cr.DuplicateDeclareModuleExports, o), s === "ES" && this.raise(cr.AmbiguousDeclareModuleKind, o), s = "CommonJS", a = !0);
    }), r.kind = s || "CommonJS", this.finishNode(r, "DeclareModule");
  }
  flowParseDeclareExportDeclaration(r, i) {
    if (this.expect(82), this.eat(65))
      return this.match(68) || this.match(80) ? r.declaration = this.flowParseDeclare(this.startNode()) : (r.declaration = this.flowParseType(), this.semicolon()), r.default = !0, this.finishNode(r, "DeclareExportDeclaration");
    if (this.match(75) || this.isLet() || (this.isContextual(130) || this.isContextual(129)) && !i) {
      const n = this.state.value;
      throw this.raise(cr.UnsupportedDeclareExportKind, this.state.startLoc, {
        unsupportedExportKind: n,
        suggestion: VQe[n]
      });
    }
    if (this.match(74) || this.match(68) || this.match(80) || this.isContextual(131))
      return r.declaration = this.flowParseDeclare(this.startNode()), r.default = !1, this.finishNode(r, "DeclareExportDeclaration");
    if (this.match(55) || this.match(5) || this.isContextual(129) || this.isContextual(130) || this.isContextual(131))
      return r = this.parseExport(r, null), r.type === "ExportNamedDeclaration" && (r.type = "ExportDeclaration", r.default = !1, delete r.exportKind), r.type = "Declare" + r.type, r;
    this.unexpected();
  }
  flowParseDeclareModuleExports(r) {
    return this.next(), this.expectContextual(111), r.typeAnnotation = this.flowParseTypeAnnotation(), this.semicolon(), this.finishNode(r, "DeclareModuleExports");
  }
  flowParseDeclareTypeAlias(r) {
    this.next();
    const i = this.flowParseTypeAlias(r);
    return i.type = "DeclareTypeAlias", i;
  }
  flowParseDeclareOpaqueType(r) {
    this.next();
    const i = this.flowParseOpaqueType(r, !0);
    return i.type = "DeclareOpaqueType", i;
  }
  flowParseDeclareInterface(r) {
    return this.next(), this.flowParseInterfaceish(r, !1), this.finishNode(r, "DeclareInterface");
  }
  flowParseInterfaceish(r, i) {
    if (r.id = this.flowParseRestrictedIdentifier(!i, !0), this.scope.declareName(r.id.name, i ? 17 : 8201, r.id.loc.start), this.match(47) ? r.typeParameters = this.flowParseTypeParameterDeclaration() : r.typeParameters = null, r.extends = [], this.eat(81))
      do
        r.extends.push(this.flowParseInterfaceExtends());
      while (!i && this.eat(12));
    if (i) {
      if (r.implements = [], r.mixins = [], this.eatContextual(117))
        do
          r.mixins.push(this.flowParseInterfaceExtends());
        while (this.eat(12));
      if (this.eatContextual(113))
        do
          r.implements.push(this.flowParseInterfaceExtends());
        while (this.eat(12));
    }
    r.body = this.flowParseObjectType({
      allowStatic: i,
      allowExact: !1,
      allowSpread: !1,
      allowProto: i,
      allowInexact: !1
    });
  }
  flowParseInterfaceExtends() {
    const r = this.startNode();
    return r.id = this.flowParseQualifiedTypeIdentifier(), this.match(47) ? r.typeParameters = this.flowParseTypeParameterInstantiation() : r.typeParameters = null, this.finishNode(r, "InterfaceExtends");
  }
  flowParseInterface(r) {
    return this.flowParseInterfaceish(r, !1), this.finishNode(r, "InterfaceDeclaration");
  }
  checkNotUnderscore(r) {
    r === "_" && this.raise(cr.UnexpectedReservedUnderscore, this.state.startLoc);
  }
  checkReservedType(r, i, n) {
    UQe.has(r) && this.raise(n ? cr.AssignReservedType : cr.UnexpectedReservedType, i, {
      reservedType: r
    });
  }
  flowParseRestrictedIdentifier(r, i) {
    return this.checkReservedType(this.state.value, this.state.startLoc, i), this.parseIdentifier(r);
  }
  flowParseTypeAlias(r) {
    return r.id = this.flowParseRestrictedIdentifier(!1, !0), this.scope.declareName(r.id.name, 8201, r.id.loc.start), this.match(47) ? r.typeParameters = this.flowParseTypeParameterDeclaration() : r.typeParameters = null, r.right = this.flowParseTypeInitialiser(29), this.semicolon(), this.finishNode(r, "TypeAlias");
  }
  flowParseOpaqueType(r, i) {
    return this.expectContextual(130), r.id = this.flowParseRestrictedIdentifier(!0, !0), this.scope.declareName(r.id.name, 8201, r.id.loc.start), this.match(47) ? r.typeParameters = this.flowParseTypeParameterDeclaration() : r.typeParameters = null, r.supertype = null, this.match(14) && (r.supertype = this.flowParseTypeInitialiser(14)), r.impltype = null, i || (r.impltype = this.flowParseTypeInitialiser(29)), this.semicolon(), this.finishNode(r, "OpaqueType");
  }
  flowParseTypeParameter(r = !1) {
    const i = this.state.startLoc, n = this.startNode(), s = this.flowParseVariance(), a = this.flowParseTypeAnnotatableIdentifier();
    return n.name = a.name, n.variance = s, n.bound = a.typeAnnotation, this.match(29) ? (this.eat(29), n.default = this.flowParseType()) : r && this.raise(cr.MissingTypeParamDefault, i), this.finishNode(n, "TypeParameter");
  }
  flowParseTypeParameterDeclaration() {
    const r = this.state.inType, i = this.startNode();
    i.params = [], this.state.inType = !0, this.match(47) || this.match(142) ? this.next() : this.unexpected();
    let n = !1;
    do {
      const s = this.flowParseTypeParameter(n);
      i.params.push(s), s.default && (n = !0), this.match(48) || this.expect(12);
    } while (!this.match(48));
    return this.expect(48), this.state.inType = r, this.finishNode(i, "TypeParameterDeclaration");
  }
  flowParseTypeParameterInstantiation() {
    const r = this.startNode(), i = this.state.inType;
    r.params = [], this.state.inType = !0, this.expect(47);
    const n = this.state.noAnonFunctionType;
    for (this.state.noAnonFunctionType = !1; !this.match(48); )
      r.params.push(this.flowParseType()), this.match(48) || this.expect(12);
    return this.state.noAnonFunctionType = n, this.expect(48), this.state.inType = i, this.finishNode(r, "TypeParameterInstantiation");
  }
  flowParseTypeParameterInstantiationCallOrNew() {
    const r = this.startNode(), i = this.state.inType;
    for (r.params = [], this.state.inType = !0, this.expect(47); !this.match(48); )
      r.params.push(this.flowParseTypeOrImplicitInstantiation()), this.match(48) || this.expect(12);
    return this.expect(48), this.state.inType = i, this.finishNode(r, "TypeParameterInstantiation");
  }
  flowParseInterfaceType() {
    const r = this.startNode();
    if (this.expectContextual(129), r.extends = [], this.eat(81))
      do
        r.extends.push(this.flowParseInterfaceExtends());
      while (this.eat(12));
    return r.body = this.flowParseObjectType({
      allowStatic: !1,
      allowExact: !1,
      allowSpread: !1,
      allowProto: !1,
      allowInexact: !1
    }), this.finishNode(r, "InterfaceTypeAnnotation");
  }
  flowParseObjectPropertyKey() {
    return this.match(134) || this.match(133) ? super.parseExprAtom() : this.parseIdentifier(!0);
  }
  flowParseObjectTypeIndexer(r, i, n) {
    return r.static = i, this.lookahead().type === 14 ? (r.id = this.flowParseObjectPropertyKey(), r.key = this.flowParseTypeInitialiser()) : (r.id = null, r.key = this.flowParseType()), this.expect(3), r.value = this.flowParseTypeInitialiser(), r.variance = n, this.finishNode(r, "ObjectTypeIndexer");
  }
  flowParseObjectTypeInternalSlot(r, i) {
    return r.static = i, r.id = this.flowParseObjectPropertyKey(), this.expect(3), this.expect(3), this.match(47) || this.match(10) ? (r.method = !0, r.optional = !1, r.value = this.flowParseObjectTypeMethodish(this.startNodeAt(r.loc.start))) : (r.method = !1, this.eat(17) && (r.optional = !0), r.value = this.flowParseTypeInitialiser()), this.finishNode(r, "ObjectTypeInternalSlot");
  }
  flowParseObjectTypeMethodish(r) {
    for (r.params = [], r.rest = null, r.typeParameters = null, r.this = null, this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration()), this.expect(10), this.match(78) && (r.this = this.flowParseFunctionTypeParam(!0), r.this.name = null, this.match(11) || this.expect(12)); !this.match(11) && !this.match(21); )
      r.params.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
    return this.eat(21) && (r.rest = this.flowParseFunctionTypeParam(!1)), this.expect(11), r.returnType = this.flowParseTypeInitialiser(), this.finishNode(r, "FunctionTypeAnnotation");
  }
  flowParseObjectTypeCallProperty(r, i) {
    const n = this.startNode();
    return r.static = i, r.value = this.flowParseObjectTypeMethodish(n), this.finishNode(r, "ObjectTypeCallProperty");
  }
  flowParseObjectType({
    allowStatic: r,
    allowExact: i,
    allowSpread: n,
    allowProto: s,
    allowInexact: a
  }) {
    const o = this.state.inType;
    this.state.inType = !0;
    const l = this.startNode();
    l.callProperties = [], l.properties = [], l.indexers = [], l.internalSlots = [];
    let u, c, f = !1;
    for (i && this.match(6) ? (this.expect(6), u = 9, c = !0) : (this.expect(5), u = 8, c = !1), l.exact = c; !this.match(u); ) {
      let m = !1, g = null, y = null;
      const v = this.startNode();
      if (s && this.isContextual(118)) {
        const S = this.lookahead();
        S.type !== 14 && S.type !== 17 && (this.next(), g = this.state.startLoc, r = !1);
      }
      if (r && this.isContextual(106)) {
        const S = this.lookahead();
        S.type !== 14 && S.type !== 17 && (this.next(), m = !0);
      }
      const T = this.flowParseVariance();
      if (this.eat(0))
        g != null && this.unexpected(g), this.eat(0) ? (T && this.unexpected(T.loc.start), l.internalSlots.push(this.flowParseObjectTypeInternalSlot(v, m))) : l.indexers.push(this.flowParseObjectTypeIndexer(v, m, T));
      else if (this.match(10) || this.match(47))
        g != null && this.unexpected(g), T && this.unexpected(T.loc.start), l.callProperties.push(this.flowParseObjectTypeCallProperty(v, m));
      else {
        let S = "init";
        if (this.isContextual(99) || this.isContextual(104)) {
          const x = this.lookahead();
          bfe(x.type) && (S = this.state.value, this.next());
        }
        const P = this.flowParseObjectTypeProperty(v, m, g, T, S, n, a != null ? a : !c);
        P === null ? (f = !0, y = this.state.lastTokStartLoc) : l.properties.push(P);
      }
      this.flowObjectTypeSemicolon(), y && !this.match(8) && !this.match(9) && this.raise(cr.UnexpectedExplicitInexactInObject, y);
    }
    this.expect(u), n && (l.inexact = f);
    const h = this.finishNode(l, "ObjectTypeAnnotation");
    return this.state.inType = o, h;
  }
  flowParseObjectTypeProperty(r, i, n, s, a, o, l) {
    if (this.eat(21))
      return this.match(12) || this.match(13) || this.match(8) || this.match(9) ? (o ? l || this.raise(cr.InexactInsideExact, this.state.lastTokStartLoc) : this.raise(cr.InexactInsideNonObject, this.state.lastTokStartLoc), s && this.raise(cr.InexactVariance, s), null) : (o || this.raise(cr.UnexpectedSpreadType, this.state.lastTokStartLoc), n != null && this.unexpected(n), s && this.raise(cr.SpreadVariance, s), r.argument = this.flowParseType(), this.finishNode(r, "ObjectTypeSpreadProperty"));
    {
      r.key = this.flowParseObjectPropertyKey(), r.static = i, r.proto = n != null, r.kind = a;
      let u = !1;
      return this.match(47) || this.match(10) ? (r.method = !0, n != null && this.unexpected(n), s && this.unexpected(s.loc.start), r.value = this.flowParseObjectTypeMethodish(this.startNodeAt(r.loc.start)), (a === "get" || a === "set") && this.flowCheckGetterSetterParams(r), !o && r.key.name === "constructor" && r.value.this && this.raise(cr.ThisParamBannedInConstructor, r.value.this)) : (a !== "init" && this.unexpected(), r.method = !1, this.eat(17) && (u = !0), r.value = this.flowParseTypeInitialiser(), r.variance = s), r.optional = u, this.finishNode(r, "ObjectTypeProperty");
    }
  }
  flowCheckGetterSetterParams(r) {
    const i = r.kind === "get" ? 0 : 1, n = r.value.params.length + (r.value.rest ? 1 : 0);
    r.value.this && this.raise(r.kind === "get" ? cr.GetterMayNotHaveThisParam : cr.SetterMayNotHaveThisParam, r.value.this), n !== i && this.raise(r.kind === "get" ? tt.BadGetterArity : tt.BadSetterArity, r), r.kind === "set" && r.value.rest && this.raise(tt.BadSetterRestParameter, r);
  }
  flowObjectTypeSemicolon() {
    !this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9) && this.unexpected();
  }
  flowParseQualifiedTypeIdentifier(r, i) {
    var n;
    (n = r) != null || (r = this.state.startLoc);
    let s = i || this.flowParseRestrictedIdentifier(!0);
    for (; this.eat(16); ) {
      const a = this.startNodeAt(r);
      a.qualification = s, a.id = this.flowParseRestrictedIdentifier(!0), s = this.finishNode(a, "QualifiedTypeIdentifier");
    }
    return s;
  }
  flowParseGenericType(r, i) {
    const n = this.startNodeAt(r);
    return n.typeParameters = null, n.id = this.flowParseQualifiedTypeIdentifier(r, i), this.match(47) && (n.typeParameters = this.flowParseTypeParameterInstantiation()), this.finishNode(n, "GenericTypeAnnotation");
  }
  flowParseTypeofType() {
    const r = this.startNode();
    return this.expect(87), r.argument = this.flowParsePrimaryType(), this.finishNode(r, "TypeofTypeAnnotation");
  }
  flowParseTupleType() {
    const r = this.startNode();
    for (r.types = [], this.expect(0); this.state.pos < this.length && !this.match(3) && (r.types.push(this.flowParseType()), !this.match(3)); )
      this.expect(12);
    return this.expect(3), this.finishNode(r, "TupleTypeAnnotation");
  }
  flowParseFunctionTypeParam(r) {
    let i = null, n = !1, s = null;
    const a = this.startNode(), o = this.lookahead(), l = this.state.type === 78;
    return o.type === 14 || o.type === 17 ? (l && !r && this.raise(cr.ThisParamMustBeFirst, a), i = this.parseIdentifier(l), this.eat(17) && (n = !0, l && this.raise(cr.ThisParamMayNotBeOptional, a)), s = this.flowParseTypeInitialiser()) : s = this.flowParseType(), a.name = i, a.optional = n, a.typeAnnotation = s, this.finishNode(a, "FunctionTypeParam");
  }
  reinterpretTypeAsFunctionTypeParam(r) {
    const i = this.startNodeAt(r.loc.start);
    return i.name = null, i.optional = !1, i.typeAnnotation = r, this.finishNode(i, "FunctionTypeParam");
  }
  flowParseFunctionTypeParams(r = []) {
    let i = null, n = null;
    for (this.match(78) && (n = this.flowParseFunctionTypeParam(!0), n.name = null, this.match(11) || this.expect(12)); !this.match(11) && !this.match(21); )
      r.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
    return this.eat(21) && (i = this.flowParseFunctionTypeParam(!1)), {
      params: r,
      rest: i,
      _this: n
    };
  }
  flowIdentToTypeAnnotation(r, i, n) {
    switch (n.name) {
      case "any":
        return this.finishNode(i, "AnyTypeAnnotation");
      case "bool":
      case "boolean":
        return this.finishNode(i, "BooleanTypeAnnotation");
      case "mixed":
        return this.finishNode(i, "MixedTypeAnnotation");
      case "empty":
        return this.finishNode(i, "EmptyTypeAnnotation");
      case "number":
        return this.finishNode(i, "NumberTypeAnnotation");
      case "string":
        return this.finishNode(i, "StringTypeAnnotation");
      case "symbol":
        return this.finishNode(i, "SymbolTypeAnnotation");
      default:
        return this.checkNotUnderscore(n.name), this.flowParseGenericType(r, n);
    }
  }
  flowParsePrimaryType() {
    const r = this.state.startLoc, i = this.startNode();
    let n, s, a = !1;
    const o = this.state.noAnonFunctionType;
    switch (this.state.type) {
      case 5:
        return this.flowParseObjectType({
          allowStatic: !1,
          allowExact: !1,
          allowSpread: !0,
          allowProto: !1,
          allowInexact: !0
        });
      case 6:
        return this.flowParseObjectType({
          allowStatic: !1,
          allowExact: !0,
          allowSpread: !0,
          allowProto: !1,
          allowInexact: !1
        });
      case 0:
        return this.state.noAnonFunctionType = !1, s = this.flowParseTupleType(), this.state.noAnonFunctionType = o, s;
      case 47: {
        const l = this.startNode();
        return l.typeParameters = this.flowParseTypeParameterDeclaration(), this.expect(10), n = this.flowParseFunctionTypeParams(), l.params = n.params, l.rest = n.rest, l.this = n._this, this.expect(11), this.expect(19), l.returnType = this.flowParseType(), this.finishNode(l, "FunctionTypeAnnotation");
      }
      case 10: {
        const l = this.startNode();
        if (this.next(), !this.match(11) && !this.match(21))
          if (Si(this.state.type) || this.match(78)) {
            const u = this.lookahead().type;
            a = u !== 17 && u !== 14;
          } else
            a = !0;
        if (a) {
          if (this.state.noAnonFunctionType = !1, s = this.flowParseType(), this.state.noAnonFunctionType = o, this.state.noAnonFunctionType || !(this.match(12) || this.match(11) && this.lookahead().type === 19))
            return this.expect(11), s;
          this.eat(12);
        }
        return s ? n = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(s)]) : n = this.flowParseFunctionTypeParams(), l.params = n.params, l.rest = n.rest, l.this = n._this, this.expect(11), this.expect(19), l.returnType = this.flowParseType(), l.typeParameters = null, this.finishNode(l, "FunctionTypeAnnotation");
      }
      case 133:
        return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation");
      case 85:
      case 86:
        return i.value = this.match(85), this.next(), this.finishNode(i, "BooleanLiteralTypeAnnotation");
      case 53:
        if (this.state.value === "-") {
          if (this.next(), this.match(134))
            return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", i);
          if (this.match(135))
            return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", i);
          throw this.raise(cr.UnexpectedSubtractionOperand, this.state.startLoc);
        }
        this.unexpected();
        return;
      case 134:
        return this.parseLiteral(this.state.value, "NumberLiteralTypeAnnotation");
      case 135:
        return this.parseLiteral(this.state.value, "BigIntLiteralTypeAnnotation");
      case 88:
        return this.next(), this.finishNode(i, "VoidTypeAnnotation");
      case 84:
        return this.next(), this.finishNode(i, "NullLiteralTypeAnnotation");
      case 78:
        return this.next(), this.finishNode(i, "ThisTypeAnnotation");
      case 55:
        return this.next(), this.finishNode(i, "ExistsTypeAnnotation");
      case 87:
        return this.flowParseTypeofType();
      default:
        if (a9(this.state.type)) {
          const l = kh(this.state.type);
          return this.next(), super.createIdentifier(i, l);
        } else if (Si(this.state.type))
          return this.isContextual(129) ? this.flowParseInterfaceType() : this.flowIdentToTypeAnnotation(r, i, this.parseIdentifier());
    }
    this.unexpected();
  }
  flowParsePostfixType() {
    const r = this.state.startLoc;
    let i = this.flowParsePrimaryType(), n = !1;
    for (; (this.match(0) || this.match(18)) && !this.canInsertSemicolon(); ) {
      const s = this.startNodeAt(r), a = this.eat(18);
      n = n || a, this.expect(0), !a && this.match(3) ? (s.elementType = i, this.next(), i = this.finishNode(s, "ArrayTypeAnnotation")) : (s.objectType = i, s.indexType = this.flowParseType(), this.expect(3), n ? (s.optional = a, i = this.finishNode(s, "OptionalIndexedAccessType")) : i = this.finishNode(s, "IndexedAccessType"));
    }
    return i;
  }
  flowParsePrefixType() {
    const r = this.startNode();
    return this.eat(17) ? (r.typeAnnotation = this.flowParsePrefixType(), this.finishNode(r, "NullableTypeAnnotation")) : this.flowParsePostfixType();
  }
  flowParseAnonFunctionWithoutParens() {
    const r = this.flowParsePrefixType();
    if (!this.state.noAnonFunctionType && this.eat(19)) {
      const i = this.startNodeAt(r.loc.start);
      return i.params = [this.reinterpretTypeAsFunctionTypeParam(r)], i.rest = null, i.this = null, i.returnType = this.flowParseType(), i.typeParameters = null, this.finishNode(i, "FunctionTypeAnnotation");
    }
    return r;
  }
  flowParseIntersectionType() {
    const r = this.startNode();
    this.eat(45);
    const i = this.flowParseAnonFunctionWithoutParens();
    for (r.types = [i]; this.eat(45); )
      r.types.push(this.flowParseAnonFunctionWithoutParens());
    return r.types.length === 1 ? i : this.finishNode(r, "IntersectionTypeAnnotation");
  }
  flowParseUnionType() {
    const r = this.startNode();
    this.eat(43);
    const i = this.flowParseIntersectionType();
    for (r.types = [i]; this.eat(43); )
      r.types.push(this.flowParseIntersectionType());
    return r.types.length === 1 ? i : this.finishNode(r, "UnionTypeAnnotation");
  }
  flowParseType() {
    const r = this.state.inType;
    this.state.inType = !0;
    const i = this.flowParseUnionType();
    return this.state.inType = r, i;
  }
  flowParseTypeOrImplicitInstantiation() {
    if (this.state.type === 132 && this.state.value === "_") {
      const r = this.state.startLoc, i = this.parseIdentifier();
      return this.flowParseGenericType(r, i);
    } else
      return this.flowParseType();
  }
  flowParseTypeAnnotation() {
    const r = this.startNode();
    return r.typeAnnotation = this.flowParseTypeInitialiser(), this.finishNode(r, "TypeAnnotation");
  }
  flowParseTypeAnnotatableIdentifier(r) {
    const i = r ? this.parseIdentifier() : this.flowParseRestrictedIdentifier();
    return this.match(14) && (i.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(i)), i;
  }
  typeCastToParameter(r) {
    return r.expression.typeAnnotation = r.typeAnnotation, this.resetEndLocation(r.expression, r.typeAnnotation.loc.end), r.expression;
  }
  flowParseVariance() {
    let r = null;
    return this.match(53) ? (r = this.startNode(), this.state.value === "+" ? r.kind = "plus" : r.kind = "minus", this.next(), this.finishNode(r, "Variance")) : r;
  }
  parseFunctionBody(r, i, n = !1) {
    if (i) {
      this.forwardNoArrowParamsConversionAt(r, () => super.parseFunctionBody(r, !0, n));
      return;
    }
    super.parseFunctionBody(r, !1, n);
  }
  parseFunctionBodyAndFinish(r, i, n = !1) {
    if (this.match(14)) {
      const s = this.startNode();
      [s.typeAnnotation, r.predicate] = this.flowParseTypeAndPredicateInitialiser(), r.returnType = s.typeAnnotation ? this.finishNode(s, "TypeAnnotation") : null;
    }
    return super.parseFunctionBodyAndFinish(r, i, n);
  }
  parseStatementLike(r) {
    if (this.state.strict && this.isContextual(129)) {
      const n = this.lookahead();
      if (kc(n.type)) {
        const s = this.startNode();
        return this.next(), this.flowParseInterface(s);
      }
    } else if (this.shouldParseEnums() && this.isContextual(126)) {
      const n = this.startNode();
      return this.next(), this.flowParseEnumDeclaration(n);
    }
    const i = super.parseStatementLike(r);
    return this.flowPragma === void 0 && !this.isValidDirective(i) && (this.flowPragma = null), i;
  }
  parseExpressionStatement(r, i, n) {
    if (i.type === "Identifier") {
      if (i.name === "declare") {
        if (this.match(80) || Si(this.state.type) || this.match(68) || this.match(74) || this.match(82))
          return this.flowParseDeclare(r);
      } else if (Si(this.state.type)) {
        if (i.name === "interface")
          return this.flowParseInterface(r);
        if (i.name === "type")
          return this.flowParseTypeAlias(r);
        if (i.name === "opaque")
          return this.flowParseOpaqueType(r, !1);
      }
    }
    return super.parseExpressionStatement(r, i, n);
  }
  shouldParseExportDeclaration() {
    const {
      type: r
    } = this.state;
    return lK(r) || this.shouldParseEnums() && r === 126 ? !this.state.containsEsc : super.shouldParseExportDeclaration();
  }
  isExportDefaultSpecifier() {
    const {
      type: r
    } = this.state;
    return lK(r) || this.shouldParseEnums() && r === 126 ? this.state.containsEsc : super.isExportDefaultSpecifier();
  }
  parseExportDefaultExpression() {
    if (this.shouldParseEnums() && this.isContextual(126)) {
      const r = this.startNode();
      return this.next(), this.flowParseEnumDeclaration(r);
    }
    return super.parseExportDefaultExpression();
  }
  parseConditional(r, i, n) {
    if (!this.match(17))
      return r;
    if (this.state.maybeInArrowParameters) {
      const h = this.lookaheadCharCode();
      if (h === 44 || h === 61 || h === 58 || h === 41)
        return this.setOptionalParametersError(n), r;
    }
    this.expect(17);
    const s = this.state.clone(), a = this.state.noArrowAt, o = this.startNodeAt(i);
    let {
      consequent: l,
      failed: u
    } = this.tryParseConditionalConsequent(), [c, f] = this.getArrowLikeExpressions(l);
    if (u || f.length > 0) {
      const h = [...a];
      if (f.length > 0) {
        this.state = s, this.state.noArrowAt = h;
        for (let m = 0; m < f.length; m++)
          h.push(f[m].start);
        ({
          consequent: l,
          failed: u
        } = this.tryParseConditionalConsequent()), [c, f] = this.getArrowLikeExpressions(l);
      }
      u && c.length > 1 && this.raise(cr.AmbiguousConditionalArrow, s.startLoc), u && c.length === 1 && (this.state = s, h.push(c[0].start), this.state.noArrowAt = h, {
        consequent: l,
        failed: u
      } = this.tryParseConditionalConsequent());
    }
    return this.getArrowLikeExpressions(l, !0), this.state.noArrowAt = a, this.expect(14), o.test = r, o.consequent = l, o.alternate = this.forwardNoArrowParamsConversionAt(o, () => this.parseMaybeAssign(void 0, void 0)), this.finishNode(o, "ConditionalExpression");
  }
  tryParseConditionalConsequent() {
    this.state.noArrowParamsConversionAt.push(this.state.start);
    const r = this.parseMaybeAssignAllowIn(), i = !this.match(14);
    return this.state.noArrowParamsConversionAt.pop(), {
      consequent: r,
      failed: i
    };
  }
  getArrowLikeExpressions(r, i) {
    const n = [r], s = [];
    for (; n.length !== 0; ) {
      const a = n.pop();
      a.type === "ArrowFunctionExpression" && a.body.type !== "BlockStatement" ? (a.typeParameters || !a.returnType ? this.finishArrowValidation(a) : s.push(a), n.push(a.body)) : a.type === "ConditionalExpression" && (n.push(a.consequent), n.push(a.alternate));
    }
    return i ? (s.forEach((a) => this.finishArrowValidation(a)), [s, []]) : WQe(s, (a) => a.params.every((o) => this.isAssignable(o, !0)));
  }
  finishArrowValidation(r) {
    var i;
    this.toAssignableList(r.params, (i = r.extra) == null ? void 0 : i.trailingCommaLoc, !1), this.scope.enter(6), super.checkParams(r, !1, !0), this.scope.exit();
  }
  forwardNoArrowParamsConversionAt(r, i) {
    let n;
    return this.state.noArrowParamsConversionAt.indexOf(r.start) !== -1 ? (this.state.noArrowParamsConversionAt.push(this.state.start), n = i(), this.state.noArrowParamsConversionAt.pop()) : n = i(), n;
  }
  parseParenItem(r, i) {
    const n = super.parseParenItem(r, i);
    if (this.eat(17) && (n.optional = !0, this.resetEndLocation(r)), this.match(14)) {
      const s = this.startNodeAt(i);
      return s.expression = n, s.typeAnnotation = this.flowParseTypeAnnotation(), this.finishNode(s, "TypeCastExpression");
    }
    return n;
  }
  assertModuleNodeAllowed(r) {
    r.type === "ImportDeclaration" && (r.importKind === "type" || r.importKind === "typeof") || r.type === "ExportNamedDeclaration" && r.exportKind === "type" || r.type === "ExportAllDeclaration" && r.exportKind === "type" || super.assertModuleNodeAllowed(r);
  }
  parseExportDeclaration(r) {
    if (this.isContextual(130)) {
      r.exportKind = "type";
      const i = this.startNode();
      return this.next(), this.match(5) ? (r.specifiers = this.parseExportSpecifiers(!0), super.parseExportFrom(r), null) : this.flowParseTypeAlias(i);
    } else if (this.isContextual(131)) {
      r.exportKind = "type";
      const i = this.startNode();
      return this.next(), this.flowParseOpaqueType(i, !1);
    } else if (this.isContextual(129)) {
      r.exportKind = "type";
      const i = this.startNode();
      return this.next(), this.flowParseInterface(i);
    } else if (this.shouldParseEnums() && this.isContextual(126)) {
      r.exportKind = "value";
      const i = this.startNode();
      return this.next(), this.flowParseEnumDeclaration(i);
    } else
      return super.parseExportDeclaration(r);
  }
  eatExportStar(r) {
    return super.eatExportStar(r) ? !0 : this.isContextual(130) && this.lookahead().type === 55 ? (r.exportKind = "type", this.next(), this.next(), !0) : !1;
  }
  maybeParseExportNamespaceSpecifier(r) {
    const {
      startLoc: i
    } = this.state, n = super.maybeParseExportNamespaceSpecifier(r);
    return n && r.exportKind === "type" && this.unexpected(i), n;
  }
  parseClassId(r, i, n) {
    super.parseClassId(r, i, n), this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration());
  }
  parseClassMember(r, i, n) {
    const {
      startLoc: s
    } = this.state;
    if (this.isContextual(125)) {
      if (super.parseClassMemberFromModifier(r, i))
        return;
      i.declare = !0;
    }
    super.parseClassMember(r, i, n), i.declare && (i.type !== "ClassProperty" && i.type !== "ClassPrivateProperty" && i.type !== "PropertyDefinition" ? this.raise(cr.DeclareClassElement, s) : i.value && this.raise(cr.DeclareClassFieldInitializer, i.value));
  }
  isIterator(r) {
    return r === "iterator" || r === "asyncIterator";
  }
  readIterator() {
    const r = super.readWord1(), i = "@@" + r;
    (!this.isIterator(r) || !this.state.inType) && this.raise(tt.InvalidIdentifier, this.state.curPosition(), {
      identifierName: i
    }), this.finishToken(132, i);
  }
  getTokenFromCode(r) {
    const i = this.input.charCodeAt(this.state.pos + 1);
    r === 123 && i === 124 ? this.finishOp(6, 2) : this.state.inType && (r === 62 || r === 60) ? this.finishOp(r === 62 ? 48 : 47, 1) : this.state.inType && r === 63 ? i === 46 ? this.finishOp(18, 2) : this.finishOp(17, 1) : mQe(r, i, this.input.charCodeAt(this.state.pos + 2)) ? (this.state.pos += 2, this.readIterator()) : super.getTokenFromCode(r);
  }
  isAssignable(r, i) {
    return r.type === "TypeCastExpression" ? this.isAssignable(r.expression, i) : super.isAssignable(r, i);
  }
  toAssignable(r, i = !1) {
    !i && r.type === "AssignmentExpression" && r.left.type === "TypeCastExpression" && (r.left = this.typeCastToParameter(r.left)), super.toAssignable(r, i);
  }
  toAssignableList(r, i, n) {
    for (let s = 0; s < r.length; s++) {
      const a = r[s];
      (a == null ? void 0 : a.type) === "TypeCastExpression" && (r[s] = this.typeCastToParameter(a));
    }
    super.toAssignableList(r, i, n);
  }
  toReferencedList(r, i) {
    for (let s = 0; s < r.length; s++) {
      var n;
      const a = r[s];
      a && a.type === "TypeCastExpression" && !((n = a.extra) != null && n.parenthesized) && (r.length > 1 || !i) && this.raise(cr.TypeCastInPattern, a.typeAnnotation);
    }
    return r;
  }
  parseArrayLike(r, i, n, s) {
    const a = super.parseArrayLike(r, i, n, s);
    return i && !this.state.maybeInArrowParameters && this.toReferencedList(a.elements), a;
  }
  isValidLVal(r, i, n) {
    return r === "TypeCastExpression" || super.isValidLVal(r, i, n);
  }
  parseClassProperty(r) {
    return this.match(14) && (r.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassProperty(r);
  }
  parseClassPrivateProperty(r) {
    return this.match(14) && (r.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassPrivateProperty(r);
  }
  isClassMethod() {
    return this.match(47) || super.isClassMethod();
  }
  isClassProperty() {
    return this.match(14) || super.isClassProperty();
  }
  isNonstaticConstructor(r) {
    return !this.match(14) && super.isNonstaticConstructor(r);
  }
  pushClassMethod(r, i, n, s, a, o) {
    if (i.variance && this.unexpected(i.variance.loc.start), delete i.variance, this.match(47) && (i.typeParameters = this.flowParseTypeParameterDeclaration()), super.pushClassMethod(r, i, n, s, a, o), i.params && a) {
      const l = i.params;
      l.length > 0 && this.isThisParam(l[0]) && this.raise(cr.ThisParamBannedInConstructor, i);
    } else if (i.type === "MethodDefinition" && a && i.value.params) {
      const l = i.value.params;
      l.length > 0 && this.isThisParam(l[0]) && this.raise(cr.ThisParamBannedInConstructor, i);
    }
  }
  pushClassPrivateMethod(r, i, n, s) {
    i.variance && this.unexpected(i.variance.loc.start), delete i.variance, this.match(47) && (i.typeParameters = this.flowParseTypeParameterDeclaration()), super.pushClassPrivateMethod(r, i, n, s);
  }
  parseClassSuper(r) {
    if (super.parseClassSuper(r), r.superClass && this.match(47) && (r.superTypeParameters = this.flowParseTypeParameterInstantiation()), this.isContextual(113)) {
      this.next();
      const i = r.implements = [];
      do {
        const n = this.startNode();
        n.id = this.flowParseRestrictedIdentifier(!0), this.match(47) ? n.typeParameters = this.flowParseTypeParameterInstantiation() : n.typeParameters = null, i.push(this.finishNode(n, "ClassImplements"));
      } while (this.eat(12));
    }
  }
  checkGetterSetterParams(r) {
    super.checkGetterSetterParams(r);
    const i = this.getObjectOrClassMethodParams(r);
    if (i.length > 0) {
      const n = i[0];
      this.isThisParam(n) && r.kind === "get" ? this.raise(cr.GetterMayNotHaveThisParam, n) : this.isThisParam(n) && this.raise(cr.SetterMayNotHaveThisParam, n);
    }
  }
  parsePropertyNamePrefixOperator(r) {
    r.variance = this.flowParseVariance();
  }
  parseObjPropValue(r, i, n, s, a, o, l) {
    r.variance && this.unexpected(r.variance.loc.start), delete r.variance;
    let u;
    this.match(47) && !o && (u = this.flowParseTypeParameterDeclaration(), this.match(10) || this.unexpected());
    const c = super.parseObjPropValue(r, i, n, s, a, o, l);
    return u && ((c.value || c).typeParameters = u), c;
  }
  parseAssignableListItemTypes(r) {
    return this.eat(17) && (r.type !== "Identifier" && this.raise(cr.PatternIsOptional, r), this.isThisParam(r) && this.raise(cr.ThisParamMayNotBeOptional, r), r.optional = !0), this.match(14) ? r.typeAnnotation = this.flowParseTypeAnnotation() : this.isThisParam(r) && this.raise(cr.ThisParamAnnotationRequired, r), this.match(29) && this.isThisParam(r) && this.raise(cr.ThisParamNoDefault, r), this.resetEndLocation(r), r;
  }
  parseMaybeDefault(r, i) {
    const n = super.parseMaybeDefault(r, i);
    return n.type === "AssignmentPattern" && n.typeAnnotation && n.right.start < n.typeAnnotation.start && this.raise(cr.TypeBeforeInitializer, n.typeAnnotation), n;
  }
  checkImportReflection(r) {
    super.checkImportReflection(r), r.module && r.importKind !== "value" && this.raise(cr.ImportReflectionHasImportType, r.specifiers[0].loc.start);
  }
  parseImportSpecifierLocal(r, i, n) {
    i.local = fK(r) ? this.flowParseRestrictedIdentifier(!0, !0) : this.parseIdentifier(), r.specifiers.push(this.finishImportSpecifier(i, n));
  }
  isPotentialImportPhase(r) {
    if (super.isPotentialImportPhase(r))
      return !0;
    if (this.isContextual(130)) {
      if (!r)
        return !0;
      const i = this.lookaheadCharCode();
      return i === 123 || i === 42;
    }
    return !r && this.isContextual(87);
  }
  applyImportPhase(r, i, n, s) {
    if (super.applyImportPhase(r, i, n, s), i) {
      if (!n && this.match(65))
        return;
      r.exportKind = n === "type" ? n : "value";
    } else
      n === "type" && this.match(55) && this.unexpected(), r.importKind = n === "type" || n === "typeof" ? n : "value";
  }
  parseImportSpecifier(r, i, n, s, a) {
    const o = r.imported;
    let l = null;
    o.type === "Identifier" && (o.name === "type" ? l = "type" : o.name === "typeof" && (l = "typeof"));
    let u = !1;
    if (this.isContextual(93) && !this.isLookaheadContextual("as")) {
      const f = this.parseIdentifier(!0);
      l !== null && !kc(this.state.type) ? (r.imported = f, r.importKind = l, r.local = vf(f)) : (r.imported = o, r.importKind = null, r.local = this.parseIdentifier());
    } else {
      if (l !== null && kc(this.state.type))
        r.imported = this.parseIdentifier(!0), r.importKind = l;
      else {
        if (i)
          throw this.raise(tt.ImportBindingIsString, r, {
            importName: o.value
          });
        r.imported = o, r.importKind = null;
      }
      this.eatContextual(93) ? r.local = this.parseIdentifier() : (u = !0, r.local = vf(r.imported));
    }
    const c = fK(r);
    return n && c && this.raise(cr.ImportTypeShorthandOnlyInPureImport, r), (n || c) && this.checkReservedType(r.local.name, r.local.loc.start, !0), u && !n && !c && this.checkReservedWord(r.local.name, r.loc.start, !0, !0), this.finishImportSpecifier(r, "ImportSpecifier");
  }
  parseBindingAtom() {
    switch (this.state.type) {
      case 78:
        return this.parseIdentifier(!0);
      default:
        return super.parseBindingAtom();
    }
  }
  parseFunctionParams(r, i) {
    const n = r.kind;
    n !== "get" && n !== "set" && this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration()), super.parseFunctionParams(r, i);
  }
  parseVarId(r, i) {
    super.parseVarId(r, i), this.match(14) && (r.id.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(r.id));
  }
  parseAsyncArrowFromCallExpression(r, i) {
    if (this.match(14)) {
      const n = this.state.noAnonFunctionType;
      this.state.noAnonFunctionType = !0, r.returnType = this.flowParseTypeAnnotation(), this.state.noAnonFunctionType = n;
    }
    return super.parseAsyncArrowFromCallExpression(r, i);
  }
  shouldParseAsyncArrow() {
    return this.match(14) || super.shouldParseAsyncArrow();
  }
  parseMaybeAssign(r, i) {
    var n;
    let s = null, a;
    if (this.hasPlugin("jsx") && (this.match(142) || this.match(47))) {
      if (s = this.state.clone(), a = this.tryParse(() => super.parseMaybeAssign(r, i), s), !a.error)
        return a.node;
      const {
        context: u
      } = this.state, c = u[u.length - 1];
      (c === Ri.j_oTag || c === Ri.j_expr) && u.pop();
    }
    if ((n = a) != null && n.error || this.match(47)) {
      var o, l;
      s = s || this.state.clone();
      let u;
      const c = this.tryParse((h) => {
        var m;
        u = this.flowParseTypeParameterDeclaration();
        const g = this.forwardNoArrowParamsConversionAt(u, () => {
          const v = super.parseMaybeAssign(r, i);
          return this.resetStartLocationFromNode(v, u), v;
        });
        (m = g.extra) != null && m.parenthesized && h();
        const y = this.maybeUnwrapTypeCastExpression(g);
        return y.type !== "ArrowFunctionExpression" && h(), y.typeParameters = u, this.resetStartLocationFromNode(y, u), g;
      }, s);
      let f = null;
      if (c.node && this.maybeUnwrapTypeCastExpression(c.node).type === "ArrowFunctionExpression") {
        if (!c.error && !c.aborted)
          return c.node.async && this.raise(cr.UnexpectedTypeParameterBeforeAsyncArrowFunction, u), c.node;
        f = c.node;
      }
      if ((o = a) != null && o.node)
        return this.state = a.failState, a.node;
      if (f)
        return this.state = c.failState, f;
      throw (l = a) != null && l.thrown ? a.error : c.thrown ? c.error : this.raise(cr.UnexpectedTokenAfterTypeParameter, u);
    }
    return super.parseMaybeAssign(r, i);
  }
  parseArrow(r) {
    if (this.match(14)) {
      const i = this.tryParse(() => {
        const n = this.state.noAnonFunctionType;
        this.state.noAnonFunctionType = !0;
        const s = this.startNode();
        return [s.typeAnnotation, r.predicate] = this.flowParseTypeAndPredicateInitialiser(), this.state.noAnonFunctionType = n, this.canInsertSemicolon() && this.unexpected(), this.match(19) || this.unexpected(), s;
      });
      if (i.thrown)
        return null;
      i.error && (this.state = i.failState), r.returnType = i.node.typeAnnotation ? this.finishNode(i.node, "TypeAnnotation") : null;
    }
    return super.parseArrow(r);
  }
  shouldParseArrow(r) {
    return this.match(14) || super.shouldParseArrow(r);
  }
  setArrowFunctionParameters(r, i) {
    this.state.noArrowParamsConversionAt.indexOf(r.start) !== -1 ? r.params = i : super.setArrowFunctionParameters(r, i);
  }
  checkParams(r, i, n, s = !0) {
    if (!(n && this.state.noArrowParamsConversionAt.indexOf(r.start) !== -1)) {
      for (let a = 0; a < r.params.length; a++)
        this.isThisParam(r.params[a]) && a > 0 && this.raise(cr.ThisParamMustBeFirst, r.params[a]);
      super.checkParams(r, i, n, s);
    }
  }
  parseParenAndDistinguishExpression(r) {
    return super.parseParenAndDistinguishExpression(r && this.state.noArrowAt.indexOf(this.state.start) === -1);
  }
  parseSubscripts(r, i, n) {
    if (r.type === "Identifier" && r.name === "async" && this.state.noArrowAt.indexOf(i.index) !== -1) {
      this.next();
      const s = this.startNodeAt(i);
      s.callee = r, s.arguments = super.parseCallExpressionArguments(11, !1), r = this.finishNode(s, "CallExpression");
    } else if (r.type === "Identifier" && r.name === "async" && this.match(47)) {
      const s = this.state.clone(), a = this.tryParse((l) => this.parseAsyncArrowWithTypeParameters(i) || l(), s);
      if (!a.error && !a.aborted)
        return a.node;
      const o = this.tryParse(() => super.parseSubscripts(r, i, n), s);
      if (o.node && !o.error)
        return o.node;
      if (a.node)
        return this.state = a.failState, a.node;
      if (o.node)
        return this.state = o.failState, o.node;
      throw a.error || o.error;
    }
    return super.parseSubscripts(r, i, n);
  }
  parseSubscript(r, i, n, s) {
    if (this.match(18) && this.isLookaheadToken_lt()) {
      if (s.optionalChainMember = !0, n)
        return s.stop = !0, r;
      this.next();
      const a = this.startNodeAt(i);
      return a.callee = r, a.typeArguments = this.flowParseTypeParameterInstantiation(), this.expect(10), a.arguments = this.parseCallExpressionArguments(11, !1), a.optional = !0, this.finishCallExpression(a, !0);
    } else if (!n && this.shouldParseTypes() && this.match(47)) {
      const a = this.startNodeAt(i);
      a.callee = r;
      const o = this.tryParse(() => (a.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(), this.expect(10), a.arguments = super.parseCallExpressionArguments(11, !1), s.optionalChainMember && (a.optional = !1), this.finishCallExpression(a, s.optionalChainMember)));
      if (o.node)
        return o.error && (this.state = o.failState), o.node;
    }
    return super.parseSubscript(r, i, n, s);
  }
  parseNewCallee(r) {
    super.parseNewCallee(r);
    let i = null;
    this.shouldParseTypes() && this.match(47) && (i = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node), r.typeArguments = i;
  }
  parseAsyncArrowWithTypeParameters(r) {
    const i = this.startNodeAt(r);
    if (this.parseFunctionParams(i, !1), !!this.parseArrow(i))
      return super.parseArrowExpression(i, void 0, !0);
  }
  readToken_mult_modulo(r) {
    const i = this.input.charCodeAt(this.state.pos + 1);
    if (r === 42 && i === 47 && this.state.hasFlowComment) {
      this.state.hasFlowComment = !1, this.state.pos += 2, this.nextToken();
      return;
    }
    super.readToken_mult_modulo(r);
  }
  readToken_pipe_amp(r) {
    const i = this.input.charCodeAt(this.state.pos + 1);
    if (r === 124 && i === 125) {
      this.finishOp(9, 2);
      return;
    }
    super.readToken_pipe_amp(r);
  }
  parseTopLevel(r, i) {
    const n = super.parseTopLevel(r, i);
    return this.state.hasFlowComment && this.raise(cr.UnterminatedFlowComment, this.state.curPosition()), n;
  }
  skipBlockComment() {
    if (this.hasPlugin("flowComments") && this.skipFlowComment()) {
      if (this.state.hasFlowComment)
        throw this.raise(cr.NestedFlowComment, this.state.startLoc);
      this.hasFlowCommentCompletion();
      const r = this.skipFlowComment();
      r && (this.state.pos += r, this.state.hasFlowComment = !0);
      return;
    }
    return super.skipBlockComment(this.state.hasFlowComment ? "*-/" : "*/");
  }
  skipFlowComment() {
    const {
      pos: r
    } = this.state;
    let i = 2;
    for (; [32, 9].includes(this.input.charCodeAt(r + i)); )
      i++;
    const n = this.input.charCodeAt(i + r), s = this.input.charCodeAt(i + r + 1);
    return n === 58 && s === 58 ? i + 2 : this.input.slice(i + r, i + r + 12) === "flow-include" ? i + 12 : n === 58 && s !== 58 ? i : !1;
  }
  hasFlowCommentCompletion() {
    if (this.input.indexOf("*/", this.state.pos) === -1)
      throw this.raise(tt.UnterminatedComment, this.state.curPosition());
  }
  flowEnumErrorBooleanMemberNotInitialized(r, {
    enumName: i,
    memberName: n
  }) {
    this.raise(cr.EnumBooleanMemberNotInitialized, r, {
      memberName: n,
      enumName: i
    });
  }
  flowEnumErrorInvalidMemberInitializer(r, i) {
    return this.raise(i.explicitType ? i.explicitType === "symbol" ? cr.EnumInvalidMemberInitializerSymbolType : cr.EnumInvalidMemberInitializerPrimaryType : cr.EnumInvalidMemberInitializerUnknownType, r, i);
  }
  flowEnumErrorNumberMemberNotInitialized(r, i) {
    this.raise(cr.EnumNumberMemberNotInitialized, r, i);
  }
  flowEnumErrorStringMemberInconsistentlyInitialized(r, i) {
    this.raise(cr.EnumStringMemberInconsistentlyInitialized, r, i);
  }
  flowEnumMemberInit() {
    const r = this.state.startLoc, i = () => this.match(12) || this.match(8);
    switch (this.state.type) {
      case 134: {
        const n = this.parseNumericLiteral(this.state.value);
        return i() ? {
          type: "number",
          loc: n.loc.start,
          value: n
        } : {
          type: "invalid",
          loc: r
        };
      }
      case 133: {
        const n = this.parseStringLiteral(this.state.value);
        return i() ? {
          type: "string",
          loc: n.loc.start,
          value: n
        } : {
          type: "invalid",
          loc: r
        };
      }
      case 85:
      case 86: {
        const n = this.parseBooleanLiteral(this.match(85));
        return i() ? {
          type: "boolean",
          loc: n.loc.start,
          value: n
        } : {
          type: "invalid",
          loc: r
        };
      }
      default:
        return {
          type: "invalid",
          loc: r
        };
    }
  }
  flowEnumMemberRaw() {
    const r = this.state.startLoc, i = this.parseIdentifier(!0), n = this.eat(29) ? this.flowEnumMemberInit() : {
      type: "none",
      loc: r
    };
    return {
      id: i,
      init: n
    };
  }
  flowEnumCheckExplicitTypeMismatch(r, i, n) {
    const {
      explicitType: s
    } = i;
    s !== null && s !== n && this.flowEnumErrorInvalidMemberInitializer(r, i);
  }
  flowEnumMembers({
    enumName: r,
    explicitType: i
  }) {
    const n = /* @__PURE__ */ new Set(), s = {
      booleanMembers: [],
      numberMembers: [],
      stringMembers: [],
      defaultedMembers: []
    };
    let a = !1;
    for (; !this.match(8); ) {
      if (this.eat(21)) {
        a = !0;
        break;
      }
      const o = this.startNode(), {
        id: l,
        init: u
      } = this.flowEnumMemberRaw(), c = l.name;
      if (c === "")
        continue;
      /^[a-z]/.test(c) && this.raise(cr.EnumInvalidMemberName, l, {
        memberName: c,
        suggestion: c[0].toUpperCase() + c.slice(1),
        enumName: r
      }), n.has(c) && this.raise(cr.EnumDuplicateMemberName, l, {
        memberName: c,
        enumName: r
      }), n.add(c);
      const f = {
        enumName: r,
        explicitType: i,
        memberName: c
      };
      switch (o.id = l, u.type) {
        case "boolean": {
          this.flowEnumCheckExplicitTypeMismatch(u.loc, f, "boolean"), o.init = u.value, s.booleanMembers.push(this.finishNode(o, "EnumBooleanMember"));
          break;
        }
        case "number": {
          this.flowEnumCheckExplicitTypeMismatch(u.loc, f, "number"), o.init = u.value, s.numberMembers.push(this.finishNode(o, "EnumNumberMember"));
          break;
        }
        case "string": {
          this.flowEnumCheckExplicitTypeMismatch(u.loc, f, "string"), o.init = u.value, s.stringMembers.push(this.finishNode(o, "EnumStringMember"));
          break;
        }
        case "invalid":
          throw this.flowEnumErrorInvalidMemberInitializer(u.loc, f);
        case "none":
          switch (i) {
            case "boolean":
              this.flowEnumErrorBooleanMemberNotInitialized(u.loc, f);
              break;
            case "number":
              this.flowEnumErrorNumberMemberNotInitialized(u.loc, f);
              break;
            default:
              s.defaultedMembers.push(this.finishNode(o, "EnumDefaultedMember"));
          }
      }
      this.match(8) || this.expect(12);
    }
    return {
      members: s,
      hasUnknownMembers: a
    };
  }
  flowEnumStringMembers(r, i, {
    enumName: n
  }) {
    if (r.length === 0)
      return i;
    if (i.length === 0)
      return r;
    if (i.length > r.length) {
      for (const s of r)
        this.flowEnumErrorStringMemberInconsistentlyInitialized(s, {
          enumName: n
        });
      return i;
    } else {
      for (const s of i)
        this.flowEnumErrorStringMemberInconsistentlyInitialized(s, {
          enumName: n
        });
      return r;
    }
  }
  flowEnumParseExplicitType({
    enumName: r
  }) {
    if (!this.eatContextual(102))
      return null;
    if (!Si(this.state.type))
      throw this.raise(cr.EnumInvalidExplicitTypeUnknownSupplied, this.state.startLoc, {
        enumName: r
      });
    const {
      value: i
    } = this.state;
    return this.next(), i !== "boolean" && i !== "number" && i !== "string" && i !== "symbol" && this.raise(cr.EnumInvalidExplicitType, this.state.startLoc, {
      enumName: r,
      invalidEnumType: i
    }), i;
  }
  flowEnumBody(r, i) {
    const n = i.name, s = i.loc.start, a = this.flowEnumParseExplicitType({
      enumName: n
    });
    this.expect(5);
    const {
      members: o,
      hasUnknownMembers: l
    } = this.flowEnumMembers({
      enumName: n,
      explicitType: a
    });
    switch (r.hasUnknownMembers = l, a) {
      case "boolean":
        return r.explicitType = !0, r.members = o.booleanMembers, this.expect(8), this.finishNode(r, "EnumBooleanBody");
      case "number":
        return r.explicitType = !0, r.members = o.numberMembers, this.expect(8), this.finishNode(r, "EnumNumberBody");
      case "string":
        return r.explicitType = !0, r.members = this.flowEnumStringMembers(o.stringMembers, o.defaultedMembers, {
          enumName: n
        }), this.expect(8), this.finishNode(r, "EnumStringBody");
      case "symbol":
        return r.members = o.defaultedMembers, this.expect(8), this.finishNode(r, "EnumSymbolBody");
      default: {
        const u = () => (r.members = [], this.expect(8), this.finishNode(r, "EnumStringBody"));
        r.explicitType = !1;
        const c = o.booleanMembers.length, f = o.numberMembers.length, h = o.stringMembers.length, m = o.defaultedMembers.length;
        if (!c && !f && !h && !m)
          return u();
        if (!c && !f)
          return r.members = this.flowEnumStringMembers(o.stringMembers, o.defaultedMembers, {
            enumName: n
          }), this.expect(8), this.finishNode(r, "EnumStringBody");
        if (!f && !h && c >= m) {
          for (const g of o.defaultedMembers)
            this.flowEnumErrorBooleanMemberNotInitialized(g.loc.start, {
              enumName: n,
              memberName: g.id.name
            });
          return r.members = o.booleanMembers, this.expect(8), this.finishNode(r, "EnumBooleanBody");
        } else if (!c && !h && f >= m) {
          for (const g of o.defaultedMembers)
            this.flowEnumErrorNumberMemberNotInitialized(g.loc.start, {
              enumName: n,
              memberName: g.id.name
            });
          return r.members = o.numberMembers, this.expect(8), this.finishNode(r, "EnumNumberBody");
        } else
          return this.raise(cr.EnumInconsistentMemberValues, s, {
            enumName: n
          }), u();
      }
    }
  }
  flowParseEnumDeclaration(r) {
    const i = this.parseIdentifier();
    return r.id = i, r.body = this.flowEnumBody(this.startNode(), i), this.finishNode(r, "EnumDeclaration");
  }
  isLookaheadToken_lt() {
    const r = this.nextTokenStart();
    if (this.input.charCodeAt(r) === 60) {
      const i = this.input.charCodeAt(r + 1);
      return i !== 60 && i !== 61;
    }
    return !1;
  }
  maybeUnwrapTypeCastExpression(r) {
    return r.type === "TypeCastExpression" ? r.expression : r;
  }
};
const zQe = {
  __proto__: null,
  quot: '"',
  amp: "&",
  apos: "'",
  lt: "<",
  gt: ">",
  nbsp: " ",
  iexcl: "¡",
  cent: "¢",
  pound: "£",
  curren: "¤",
  yen: "¥",
  brvbar: "¦",
  sect: "§",
  uml: "¨",
  copy: "©",
  ordf: "ª",
  laquo: "«",
  not: "¬",
  shy: "­",
  reg: "®",
  macr: "¯",
  deg: "°",
  plusmn: "±",
  sup2: "²",
  sup3: "³",
  acute: "´",
  micro: "µ",
  para: "¶",
  middot: "·",
  cedil: "¸",
  sup1: "¹",
  ordm: "º",
  raquo: "»",
  frac14: "¼",
  frac12: "½",
  frac34: "¾",
  iquest: "¿",
  Agrave: "À",
  Aacute: "Á",
  Acirc: "Â",
  Atilde: "Ã",
  Auml: "Ä",
  Aring: "Å",
  AElig: "Æ",
  Ccedil: "Ç",
  Egrave: "È",
  Eacute: "É",
  Ecirc: "Ê",
  Euml: "Ë",
  Igrave: "Ì",
  Iacute: "Í",
  Icirc: "Î",
  Iuml: "Ï",
  ETH: "Ð",
  Ntilde: "Ñ",
  Ograve: "Ò",
  Oacute: "Ó",
  Ocirc: "Ô",
  Otilde: "Õ",
  Ouml: "Ö",
  times: "×",
  Oslash: "Ø",
  Ugrave: "Ù",
  Uacute: "Ú",
  Ucirc: "Û",
  Uuml: "Ü",
  Yacute: "Ý",
  THORN: "Þ",
  szlig: "ß",
  agrave: "à",
  aacute: "á",
  acirc: "â",
  atilde: "ã",
  auml: "ä",
  aring: "å",
  aelig: "æ",
  ccedil: "ç",
  egrave: "è",
  eacute: "é",
  ecirc: "ê",
  euml: "ë",
  igrave: "ì",
  iacute: "í",
  icirc: "î",
  iuml: "ï",
  eth: "ð",
  ntilde: "ñ",
  ograve: "ò",
  oacute: "ó",
  ocirc: "ô",
  otilde: "õ",
  ouml: "ö",
  divide: "÷",
  oslash: "ø",
  ugrave: "ù",
  uacute: "ú",
  ucirc: "û",
  uuml: "ü",
  yacute: "ý",
  thorn: "þ",
  yuml: "ÿ",
  OElig: "Œ",
  oelig: "œ",
  Scaron: "Š",
  scaron: "š",
  Yuml: "Ÿ",
  fnof: "ƒ",
  circ: "ˆ",
  tilde: "˜",
  Alpha: "Α",
  Beta: "Β",
  Gamma: "Γ",
  Delta: "Δ",
  Epsilon: "Ε",
  Zeta: "Ζ",
  Eta: "Η",
  Theta: "Θ",
  Iota: "Ι",
  Kappa: "Κ",
  Lambda: "Λ",
  Mu: "Μ",
  Nu: "Ν",
  Xi: "Ξ",
  Omicron: "Ο",
  Pi: "Π",
  Rho: "Ρ",
  Sigma: "Σ",
  Tau: "Τ",
  Upsilon: "Υ",
  Phi: "Φ",
  Chi: "Χ",
  Psi: "Ψ",
  Omega: "Ω",
  alpha: "α",
  beta: "β",
  gamma: "γ",
  delta: "δ",
  epsilon: "ε",
  zeta: "ζ",
  eta: "η",
  theta: "θ",
  iota: "ι",
  kappa: "κ",
  lambda: "λ",
  mu: "μ",
  nu: "ν",
  xi: "ξ",
  omicron: "ο",
  pi: "π",
  rho: "ρ",
  sigmaf: "ς",
  sigma: "σ",
  tau: "τ",
  upsilon: "υ",
  phi: "φ",
  chi: "χ",
  psi: "ψ",
  omega: "ω",
  thetasym: "ϑ",
  upsih: "ϒ",
  piv: "ϖ",
  ensp: " ",
  emsp: " ",
  thinsp: " ",
  zwnj: "‌",
  zwj: "‍",
  lrm: "‎",
  rlm: "‏",
  ndash: "–",
  mdash: "—",
  lsquo: "‘",
  rsquo: "’",
  sbquo: "‚",
  ldquo: "“",
  rdquo: "”",
  bdquo: "„",
  dagger: "†",
  Dagger: "‡",
  bull: "•",
  hellip: "…",
  permil: "‰",
  prime: "′",
  Prime: "″",
  lsaquo: "‹",
  rsaquo: "›",
  oline: "‾",
  frasl: "⁄",
  euro: "€",
  image: "ℑ",
  weierp: "℘",
  real: "ℜ",
  trade: "™",
  alefsym: "ℵ",
  larr: "←",
  uarr: "↑",
  rarr: "→",
  darr: "↓",
  harr: "↔",
  crarr: "↵",
  lArr: "⇐",
  uArr: "⇑",
  rArr: "⇒",
  dArr: "⇓",
  hArr: "⇔",
  forall: "∀",
  part: "∂",
  exist: "∃",
  empty: "∅",
  nabla: "∇",
  isin: "∈",
  notin: "∉",
  ni: "∋",
  prod: "∏",
  sum: "∑",
  minus: "−",
  lowast: "∗",
  radic: "√",
  prop: "∝",
  infin: "∞",
  ang: "∠",
  and: "∧",
  or: "∨",
  cap: "∩",
  cup: "∪",
  int: "∫",
  there4: "∴",
  sim: "∼",
  cong: "≅",
  asymp: "≈",
  ne: "≠",
  equiv: "≡",
  le: "≤",
  ge: "≥",
  sub: "⊂",
  sup: "⊃",
  nsub: "⊄",
  sube: "⊆",
  supe: "⊇",
  oplus: "⊕",
  otimes: "⊗",
  perp: "⊥",
  sdot: "⋅",
  lceil: "⌈",
  rceil: "⌉",
  lfloor: "⌊",
  rfloor: "⌋",
  lang: "〈",
  rang: "〉",
  loz: "◊",
  spades: "♠",
  clubs: "♣",
  hearts: "♥",
  diams: "♦"
};
var yne;
const rd = hf(yne || (yne = at(["jsx"])))({
  AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.",
  MissingClosingTagElement: ({
    openingTagName: e
  }) => "Expected corresponding JSX closing tag for <".concat(e, ">."),
  MissingClosingTagFragment: "Expected corresponding JSX closing tag for <>.",
  UnexpectedSequenceExpression: "Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?",
  UnexpectedToken: ({
    unexpected: e,
    HTMLEntity: t
  }) => "Unexpected token `".concat(e, "`. Did you mean `").concat(t, "` or `{'").concat(e, "'}`?"),
  UnsupportedJsxValue: "JSX value should be either an expression or a quoted JSX text.",
  UnterminatedJsxContent: "Unterminated JSX contents.",
  UnwrappedAdjacentJSXElements: "Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?"
});
function Qf(e) {
  return e ? e.type === "JSXOpeningFragment" || e.type === "JSXClosingFragment" : !1;
}
function dy(e) {
  if (e.type === "JSXIdentifier")
    return e.name;
  if (e.type === "JSXNamespacedName")
    return e.namespace.name + ":" + e.name.name;
  if (e.type === "JSXMemberExpression")
    return dy(e.object) + "." + dy(e.property);
  throw new Error("Node had unexpected type: " + e.type);
}
var GQe = (e) => class extends e {
  jsxReadToken() {
    let r = "", i = this.state.pos;
    for (; ; ) {
      if (this.state.pos >= this.length)
        throw this.raise(rd.UnterminatedJsxContent, this.state.startLoc);
      const n = this.input.charCodeAt(this.state.pos);
      switch (n) {
        case 60:
        case 123:
          if (this.state.pos === this.state.start) {
            n === 60 && this.state.canStartJSXElement ? (++this.state.pos, this.finishToken(142)) : super.getTokenFromCode(n);
            return;
          }
          r += this.input.slice(i, this.state.pos), this.finishToken(141, r);
          return;
        case 38:
          r += this.input.slice(i, this.state.pos), r += this.jsxReadEntity(), i = this.state.pos;
          break;
        case 62:
        case 125:
        default:
          Z0(n) ? (r += this.input.slice(i, this.state.pos), r += this.jsxReadNewLine(!0), i = this.state.pos) : ++this.state.pos;
      }
    }
  }
  jsxReadNewLine(r) {
    const i = this.input.charCodeAt(this.state.pos);
    let n;
    return ++this.state.pos, i === 13 && this.input.charCodeAt(this.state.pos) === 10 ? (++this.state.pos, n = r ? "\n" : "\r\n") : n = String.fromCharCode(i), ++this.state.curLine, this.state.lineStart = this.state.pos, n;
  }
  jsxReadString(r) {
    let i = "", n = ++this.state.pos;
    for (; ; ) {
      if (this.state.pos >= this.length)
        throw this.raise(tt.UnterminatedString, this.state.startLoc);
      const s = this.input.charCodeAt(this.state.pos);
      if (s === r)
        break;
      s === 38 ? (i += this.input.slice(n, this.state.pos), i += this.jsxReadEntity(), n = this.state.pos) : Z0(s) ? (i += this.input.slice(n, this.state.pos), i += this.jsxReadNewLine(!1), n = this.state.pos) : ++this.state.pos;
    }
    i += this.input.slice(n, this.state.pos++), this.finishToken(133, i);
  }
  jsxReadEntity() {
    const r = ++this.state.pos;
    if (this.codePointAtPos(this.state.pos) === 35) {
      ++this.state.pos;
      let i = 10;
      this.codePointAtPos(this.state.pos) === 120 && (i = 16, ++this.state.pos);
      const n = this.readInt(i, void 0, !1, "bail");
      if (n !== null && this.codePointAtPos(this.state.pos) === 59)
        return ++this.state.pos, String.fromCodePoint(n);
    } else {
      let i = 0, n = !1;
      for (; i++ < 10 && this.state.pos < this.length && !(n = this.codePointAtPos(this.state.pos) === 59); )
        ++this.state.pos;
      if (n) {
        const s = this.input.slice(r, this.state.pos), a = zQe[s];
        if (++this.state.pos, a)
          return a;
      }
    }
    return this.state.pos = r, "&";
  }
  jsxReadWord() {
    let r;
    const i = this.state.pos;
    do
      r = this.input.charCodeAt(++this.state.pos);
    while (Iy(r) || r === 45);
    this.finishToken(140, this.input.slice(i, this.state.pos));
  }
  jsxParseIdentifier() {
    const r = this.startNode();
    return this.match(140) ? r.name = this.state.value : a9(this.state.type) ? r.name = kh(this.state.type) : this.unexpected(), this.next(), this.finishNode(r, "JSXIdentifier");
  }
  jsxParseNamespacedName() {
    const r = this.state.startLoc, i = this.jsxParseIdentifier();
    if (!this.eat(14))
      return i;
    const n = this.startNodeAt(r);
    return n.namespace = i, n.name = this.jsxParseIdentifier(), this.finishNode(n, "JSXNamespacedName");
  }
  jsxParseElementName() {
    const r = this.state.startLoc;
    let i = this.jsxParseNamespacedName();
    if (i.type === "JSXNamespacedName")
      return i;
    for (; this.eat(16); ) {
      const n = this.startNodeAt(r);
      n.object = i, n.property = this.jsxParseIdentifier(), i = this.finishNode(n, "JSXMemberExpression");
    }
    return i;
  }
  jsxParseAttributeValue() {
    let r;
    switch (this.state.type) {
      case 5:
        return r = this.startNode(), this.setContext(Ri.brace), this.next(), r = this.jsxParseExpressionContainer(r, Ri.j_oTag), r.expression.type === "JSXEmptyExpression" && this.raise(rd.AttributeIsEmpty, r), r;
      case 142:
      case 133:
        return this.parseExprAtom();
      default:
        throw this.raise(rd.UnsupportedJsxValue, this.state.startLoc);
    }
  }
  jsxParseEmptyExpression() {
    const r = this.startNodeAt(this.state.lastTokEndLoc);
    return this.finishNodeAt(r, "JSXEmptyExpression", this.state.startLoc);
  }
  jsxParseSpreadChild(r) {
    return this.next(), r.expression = this.parseExpression(), this.setContext(Ri.j_expr), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(r, "JSXSpreadChild");
  }
  jsxParseExpressionContainer(r, i) {
    if (this.match(8))
      r.expression = this.jsxParseEmptyExpression();
    else {
      const n = this.parseExpression();
      r.expression = n;
    }
    return this.setContext(i), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(r, "JSXExpressionContainer");
  }
  jsxParseAttribute() {
    const r = this.startNode();
    return this.match(5) ? (this.setContext(Ri.brace), this.next(), this.expect(21), r.argument = this.parseMaybeAssignAllowIn(), this.setContext(Ri.j_oTag), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(r, "JSXSpreadAttribute")) : (r.name = this.jsxParseNamespacedName(), r.value = this.eat(29) ? this.jsxParseAttributeValue() : null, this.finishNode(r, "JSXAttribute"));
  }
  jsxParseOpeningElementAt(r) {
    const i = this.startNodeAt(r);
    return this.eat(143) ? this.finishNode(i, "JSXOpeningFragment") : (i.name = this.jsxParseElementName(), this.jsxParseOpeningElementAfterName(i));
  }
  jsxParseOpeningElementAfterName(r) {
    const i = [];
    for (; !this.match(56) && !this.match(143); )
      i.push(this.jsxParseAttribute());
    return r.attributes = i, r.selfClosing = this.eat(56), this.expect(143), this.finishNode(r, "JSXOpeningElement");
  }
  jsxParseClosingElementAt(r) {
    const i = this.startNodeAt(r);
    return this.eat(143) ? this.finishNode(i, "JSXClosingFragment") : (i.name = this.jsxParseElementName(), this.expect(143), this.finishNode(i, "JSXClosingElement"));
  }
  jsxParseElementAt(r) {
    const i = this.startNodeAt(r), n = [], s = this.jsxParseOpeningElementAt(r);
    let a = null;
    if (!s.selfClosing) {
      e:
        for (; ; )
          switch (this.state.type) {
            case 142:
              if (r = this.state.startLoc, this.next(), this.eat(56)) {
                a = this.jsxParseClosingElementAt(r);
                break e;
              }
              n.push(this.jsxParseElementAt(r));
              break;
            case 141:
              n.push(this.parseLiteral(this.state.value, "JSXText"));
              break;
            case 5: {
              const o = this.startNode();
              this.setContext(Ri.brace), this.next(), this.match(21) ? n.push(this.jsxParseSpreadChild(o)) : n.push(this.jsxParseExpressionContainer(o, Ri.j_expr));
              break;
            }
            default:
              this.unexpected();
          }
      Qf(s) && !Qf(a) && a !== null ? this.raise(rd.MissingClosingTagFragment, a) : !Qf(s) && Qf(a) ? this.raise(rd.MissingClosingTagElement, a, {
        openingTagName: dy(s.name)
      }) : !Qf(s) && !Qf(a) && dy(a.name) !== dy(s.name) && this.raise(rd.MissingClosingTagElement, a, {
        openingTagName: dy(s.name)
      });
    }
    if (Qf(s) ? (i.openingFragment = s, i.closingFragment = a) : (i.openingElement = s, i.closingElement = a), i.children = n, this.match(47))
      throw this.raise(rd.UnwrappedAdjacentJSXElements, this.state.startLoc);
    return Qf(s) ? this.finishNode(i, "JSXFragment") : this.finishNode(i, "JSXElement");
  }
  jsxParseElement() {
    const r = this.state.startLoc;
    return this.next(), this.jsxParseElementAt(r);
  }
  setContext(r) {
    const {
      context: i
    } = this.state;
    i[i.length - 1] = r;
  }
  parseExprAtom(r) {
    return this.match(142) ? this.jsxParseElement() : this.match(47) && this.input.charCodeAt(this.state.pos) !== 33 ? (this.replaceToken(142), this.jsxParseElement()) : super.parseExprAtom(r);
  }
  skipSpace() {
    this.curContext().preserveSpace || super.skipSpace();
  }
  getTokenFromCode(r) {
    const i = this.curContext();
    if (i === Ri.j_expr) {
      this.jsxReadToken();
      return;
    }
    if (i === Ri.j_oTag || i === Ri.j_cTag) {
      if (nf(r)) {
        this.jsxReadWord();
        return;
      }
      if (r === 62) {
        ++this.state.pos, this.finishToken(143);
        return;
      }
      if ((r === 34 || r === 39) && i === Ri.j_oTag) {
        this.jsxReadString(r);
        return;
      }
    }
    if (r === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) {
      ++this.state.pos, this.finishToken(142);
      return;
    }
    super.getTokenFromCode(r);
  }
  updateContext(r) {
    const {
      context: i,
      type: n
    } = this.state;
    if (n === 56 && r === 142)
      i.splice(-2, 2, Ri.j_cTag), this.state.canStartJSXElement = !1;
    else if (n === 142)
      i.push(Ri.j_oTag);
    else if (n === 143) {
      const s = i[i.length - 1];
      s === Ri.j_oTag && r === 56 || s === Ri.j_cTag ? (i.pop(), this.state.canStartJSXElement = i[i.length - 1] === Ri.j_expr) : (this.setContext(Ri.j_expr), this.state.canStartJSXElement = !0);
    } else
      this.state.canStartJSXElement = ZJe(n);
  }
};
let YQe = class extends u9 {
  constructor(...t) {
    super(...t), this.tsNames = /* @__PURE__ */ new Map();
  }
}, XQe = class extends c9 {
  constructor(...t) {
    super(...t), this.importsStack = [];
  }
  createScope(t) {
    return this.importsStack.push(/* @__PURE__ */ new Set()), new YQe(t);
  }
  enter(t) {
    t === 256 && this.importsStack.push(/* @__PURE__ */ new Set()), super.enter(t);
  }
  exit() {
    const t = super.exit();
    return t === 256 && this.importsStack.pop(), t;
  }
  hasImport(t, r) {
    const i = this.importsStack.length;
    if (this.importsStack[i - 1].has(t))
      return !0;
    if (!r && i > 1) {
      for (let n = 0; n < i - 1; n++)
        if (this.importsStack[n].has(t))
          return !0;
    }
    return !1;
  }
  declareName(t, r, i) {
    if (r & 4096) {
      this.hasImport(t, !0) && this.parser.raise(tt.VarRedeclaration, i, {
        identifierName: t
      }), this.importsStack[this.importsStack.length - 1].add(t);
      return;
    }
    const n = this.currentScope();
    let s = n.tsNames.get(t) || 0;
    if (r & 1024) {
      this.maybeExportDefined(n, t), n.tsNames.set(t, s | 16);
      return;
    }
    super.declareName(t, r, i), r & 2 && (r & 1 || (this.checkRedeclarationInScope(n, t, r, i), this.maybeExportDefined(n, t)), s = s | 1), r & 256 && (s = s | 2), r & 512 && (s = s | 4), r & 128 && (s = s | 8), s && n.tsNames.set(t, s);
  }
  isRedeclaredInScope(t, r, i) {
    const n = t.tsNames.get(r);
    if ((n & 2) > 0) {
      if (i & 256) {
        const s = !!(i & 512), a = (n & 4) > 0;
        return s !== a;
      }
      return !0;
    }
    return i & 128 && (n & 8) > 0 ? t.names.get(r) & 2 ? !!(i & 1) : !1 : i & 2 && (n & 1) > 0 ? !0 : super.isRedeclaredInScope(t, r, i);
  }
  checkLocalExport(t) {
    const {
      name: r
    } = t;
    if (this.hasImport(r))
      return;
    const i = this.scopeStack.length;
    for (let n = i - 1; n >= 0; n--) {
      const a = this.scopeStack[n].tsNames.get(r);
      if ((a & 1) > 0 || (a & 16) > 0)
        return;
    }
    super.checkLocalExport(t);
  }
};
const JQe = (e, t) => hasOwnProperty.call(e, t) && e[t], Nfe = (e) => e.type === "ParenthesizedExpression" ? Nfe(e.expression) : e;
let QQe = class extends $Qe {
  toAssignable(t, r = !1) {
    var i, n;
    let s;
    switch ((t.type === "ParenthesizedExpression" || (i = t.extra) != null && i.parenthesized) && (s = Nfe(t), r ? s.type === "Identifier" ? this.expressionScope.recordArrowParameterBindingError(tt.InvalidParenthesizedAssignment, t) : s.type !== "MemberExpression" && !this.isOptionalMemberExpression(s) && this.raise(tt.InvalidParenthesizedAssignment, t) : this.raise(tt.InvalidParenthesizedAssignment, t)), t.type) {
      case "Identifier":
      case "ObjectPattern":
      case "ArrayPattern":
      case "AssignmentPattern":
      case "RestElement":
        break;
      case "ObjectExpression":
        t.type = "ObjectPattern";
        for (let o = 0, l = t.properties.length, u = l - 1; o < l; o++) {
          var a;
          const c = t.properties[o], f = o === u;
          this.toAssignableObjectExpressionProp(c, f, r), f && c.type === "RestElement" && (a = t.extra) != null && a.trailingCommaLoc && this.raise(tt.RestTrailingComma, t.extra.trailingCommaLoc);
        }
        break;
      case "ObjectProperty": {
        const {
          key: o,
          value: l
        } = t;
        this.isPrivateName(o) && this.classScope.usePrivateName(this.getPrivateNameSV(o), o.loc.start), this.toAssignable(l, r);
        break;
      }
      case "SpreadElement":
        throw new Error("Internal @babel/parser error (this is a bug, please report it). SpreadElement should be converted by .toAssignable's caller.");
      case "ArrayExpression":
        t.type = "ArrayPattern", this.toAssignableList(t.elements, (n = t.extra) == null ? void 0 : n.trailingCommaLoc, r);
        break;
      case "AssignmentExpression":
        t.operator !== "=" && this.raise(tt.MissingEqInAssignment, t.left.loc.end), t.type = "AssignmentPattern", delete t.operator, this.toAssignable(t.left, r);
        break;
      case "ParenthesizedExpression":
        this.toAssignable(s, r);
        break;
    }
  }
  toAssignableObjectExpressionProp(t, r, i) {
    if (t.type === "ObjectMethod")
      this.raise(t.kind === "get" || t.kind === "set" ? tt.PatternHasAccessor : tt.PatternHasMethod, t.key);
    else if (t.type === "SpreadElement") {
      t.type = "RestElement";
      const n = t.argument;
      this.checkToRestConversion(n, !1), this.toAssignable(n, i), r || this.raise(tt.RestTrailingComma, t);
    } else
      this.toAssignable(t, i);
  }
  toAssignableList(t, r, i) {
    const n = t.length - 1;
    for (let s = 0; s <= n; s++) {
      const a = t[s];
      if (a) {
        if (a.type === "SpreadElement") {
          a.type = "RestElement";
          const o = a.argument;
          this.checkToRestConversion(o, !0), this.toAssignable(o, i);
        } else
          this.toAssignable(a, i);
        a.type === "RestElement" && (s < n ? this.raise(tt.RestTrailingComma, a) : r && this.raise(tt.RestTrailingComma, r));
      }
    }
  }
  isAssignable(t, r) {
    switch (t.type) {
      case "Identifier":
      case "ObjectPattern":
      case "ArrayPattern":
      case "AssignmentPattern":
      case "RestElement":
        return !0;
      case "ObjectExpression": {
        const i = t.properties.length - 1;
        return t.properties.every((n, s) => n.type !== "ObjectMethod" && (s === i || n.type !== "SpreadElement") && this.isAssignable(n));
      }
      case "ObjectProperty":
        return this.isAssignable(t.value);
      case "SpreadElement":
        return this.isAssignable(t.argument);
      case "ArrayExpression":
        return t.elements.every((i) => i === null || this.isAssignable(i));
      case "AssignmentExpression":
        return t.operator === "=";
      case "ParenthesizedExpression":
        return this.isAssignable(t.expression);
      case "MemberExpression":
      case "OptionalMemberExpression":
        return !r;
      default:
        return !1;
    }
  }
  toReferencedList(t, r) {
    return t;
  }
  toReferencedListDeep(t, r) {
    this.toReferencedList(t, r);
    for (const i of t)
      (i == null ? void 0 : i.type) === "ArrayExpression" && this.toReferencedListDeep(i.elements);
  }
  parseSpread(t) {
    const r = this.startNode();
    return this.next(), r.argument = this.parseMaybeAssignAllowIn(t, void 0), this.finishNode(r, "SpreadElement");
  }
  parseRestBinding() {
    const t = this.startNode();
    return this.next(), t.argument = this.parseBindingAtom(), this.finishNode(t, "RestElement");
  }
  parseBindingAtom() {
    switch (this.state.type) {
      case 0: {
        const t = this.startNode();
        return this.next(), t.elements = this.parseBindingList(3, 93, 1), this.finishNode(t, "ArrayPattern");
      }
      case 5:
        return this.parseObjectLike(8, !0);
    }
    return this.parseIdentifier();
  }
  parseBindingList(t, r, i) {
    const n = i & 1, s = [];
    let a = !0;
    for (; !this.eat(t); )
      if (a ? a = !1 : this.expect(12), n && this.match(12))
        s.push(null);
      else {
        if (this.eat(t))
          break;
        if (this.match(21)) {
          if (s.push(this.parseAssignableListItemTypes(this.parseRestBinding(), i)), !this.checkCommaAfterRest(r)) {
            this.expect(t);
            break;
          }
        } else {
          const o = [];
          for (this.match(26) && this.hasPlugin("decorators") && this.raise(tt.UnsupportedParameterDecorator, this.state.startLoc); this.match(26); )
            o.push(this.parseDecorator());
          s.push(this.parseAssignableListItem(i, o));
        }
      }
    return s;
  }
  parseBindingRestProperty(t) {
    return this.next(), t.argument = this.parseIdentifier(), this.checkCommaAfterRest(125), this.finishNode(t, "RestElement");
  }
  parseBindingProperty() {
    const {
      type: t,
      startLoc: r
    } = this.state;
    if (t === 21)
      return this.parseBindingRestProperty(this.startNode());
    const i = this.startNode();
    return t === 138 ? (this.expectPlugin("destructuringPrivate", r), this.classScope.usePrivateName(this.state.value, r), i.key = this.parsePrivateName()) : this.parsePropertyName(i), i.method = !1, this.parseObjPropValue(i, r, !1, !1, !0, !1);
  }
  parseAssignableListItem(t, r) {
    const i = this.parseMaybeDefault();
    this.parseAssignableListItemTypes(i, t);
    const n = this.parseMaybeDefault(i.loc.start, i);
    return r.length && (i.decorators = r), n;
  }
  parseAssignableListItemTypes(t, r) {
    return t;
  }
  parseMaybeDefault(t, r) {
    var i, n;
    if ((i = t) != null || (t = this.state.startLoc), r = (n = r) != null ? n : this.parseBindingAtom(), !this.eat(29))
      return r;
    const s = this.startNodeAt(t);
    return s.left = r, s.right = this.parseMaybeAssignAllowIn(), this.finishNode(s, "AssignmentPattern");
  }
  isValidLVal(t, r, i) {
    return JQe({
      AssignmentPattern: "left",
      RestElement: "argument",
      ObjectProperty: "value",
      ParenthesizedExpression: "expression",
      ArrayPattern: "elements",
      ObjectPattern: "properties"
    }, t);
  }
  isOptionalMemberExpression(t) {
    return t.type === "OptionalMemberExpression";
  }
  checkLVal(t, {
    in: r,
    binding: i = 64,
    checkClashes: n = !1,
    strictModeChanged: s = !1,
    hasParenthesizedAncestor: a = !1
  }) {
    var o;
    const l = t.type;
    if (this.isObjectMethod(t))
      return;
    const u = this.isOptionalMemberExpression(t);
    if (u || l === "MemberExpression") {
      u && (this.expectPlugin("optionalChainingAssign", t.loc.start), r.type !== "AssignmentExpression" && this.raise(tt.InvalidLhsOptionalChaining, t, {
        ancestor: r
      })), i !== 64 && this.raise(tt.InvalidPropertyBindingPattern, t);
      return;
    }
    if (l === "Identifier") {
      this.checkIdentifier(t, i, s);
      const {
        name: g
      } = t;
      n && (n.has(g) ? this.raise(tt.ParamDupe, t) : n.add(g));
      return;
    }
    const c = this.isValidLVal(l, !(a || (o = t.extra) != null && o.parenthesized) && r.type === "AssignmentExpression", i);
    if (c === !0)
      return;
    if (c === !1) {
      const g = i === 64 ? tt.InvalidLhs : tt.InvalidLhsBinding;
      this.raise(g, t, {
        ancestor: r
      });
      return;
    }
    const [f, h] = Array.isArray(c) ? c : [c, l === "ParenthesizedExpression"], m = l === "ArrayPattern" || l === "ObjectPattern" ? {
      type: l
    } : r;
    for (const g of [].concat(t[f]))
      g && this.checkLVal(g, {
        in: m,
        binding: i,
        checkClashes: n,
        strictModeChanged: s,
        hasParenthesizedAncestor: h
      });
  }
  checkIdentifier(t, r, i = !1) {
    this.state.strict && (i ? Pfe(t.name, this.inModule) : Efe(t.name)) && (r === 64 ? this.raise(tt.StrictEvalArguments, t, {
      referenceName: t.name
    }) : this.raise(tt.StrictEvalArgumentsBinding, t, {
      bindingName: t.name
    })), r & 8192 && t.name === "let" && this.raise(tt.LetInLexicalBinding, t), r & 64 || this.declareNameFromIdentifier(t, r);
  }
  declareNameFromIdentifier(t, r) {
    this.scope.declareName(t.name, r, t.loc.start);
  }
  checkToRestConversion(t, r) {
    switch (t.type) {
      case "ParenthesizedExpression":
        this.checkToRestConversion(t.expression, r);
        break;
      case "Identifier":
      case "MemberExpression":
        break;
      case "ArrayExpression":
      case "ObjectExpression":
        if (r)
          break;
      default:
        this.raise(tt.InvalidRestAssignmentPattern, t);
    }
  }
  checkCommaAfterRest(t) {
    return this.match(12) ? (this.raise(this.lookaheadCharCode() === t ? tt.RestTrailingComma : tt.ElementAfterRest, this.state.startLoc), !0) : !1;
  }
};
const ZQe = (e, t) => hasOwnProperty.call(e, t) && e[t];
function eZe(e) {
  if (e == null)
    throw new Error("Unexpected ".concat(e, " value."));
  return e;
}
function hK(e) {
  if (!e)
    throw new Error("Assert fail");
}
var gne;
const Gt = hf(gne || (gne = at(["typescript"])))({
  AbstractMethodHasImplementation: ({
    methodName: e
  }) => "Method '".concat(e, "' cannot have an implementation because it is marked abstract."),
  AbstractPropertyHasInitializer: ({
    propertyName: e
  }) => "Property '".concat(e, "' cannot have an initializer because it is marked abstract."),
  AccesorCannotDeclareThisParameter: "'get' and 'set' accessors cannot declare 'this' parameters.",
  AccesorCannotHaveTypeParameters: "An accessor cannot have type parameters.",
  AccessorCannotBeOptional: "An 'accessor' property cannot be declared optional.",
  ClassMethodHasDeclare: "Class methods cannot have the 'declare' modifier.",
  ClassMethodHasReadonly: "Class methods cannot have the 'readonly' modifier.",
  ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference: "A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.",
  ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.",
  DeclareAccessor: ({
    kind: e
  }) => "'declare' is not allowed in ".concat(e, "ters."),
  DeclareClassFieldHasInitializer: "Initializers are not allowed in ambient contexts.",
  DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.",
  DuplicateAccessibilityModifier: ({
    modifier: e
  }) => "Accessibility modifier already seen.",
  DuplicateModifier: ({
    modifier: e
  }) => "Duplicate modifier: '".concat(e, "'."),
  EmptyHeritageClauseType: ({
    token: e
  }) => "'".concat(e, "' list cannot be empty."),
  EmptyTypeArguments: "Type argument list cannot be empty.",
  EmptyTypeParameters: "Type parameter list cannot be empty.",
  ExpectedAmbientAfterExportDeclare: "'export declare' must be followed by an ambient declaration.",
  ImportAliasHasImportType: "An import alias can not use 'import type'.",
  ImportReflectionHasImportType: "An `import module` declaration can not use `type` modifier",
  IncompatibleModifiers: ({
    modifiers: e
  }) => "'".concat(e[0], "' modifier cannot be used with '").concat(e[1], "' modifier."),
  IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier.",
  IndexSignatureHasAccessibility: ({
    modifier: e
  }) => "Index signatures cannot have an accessibility modifier ('".concat(e, "')."),
  IndexSignatureHasDeclare: "Index signatures cannot have the 'declare' modifier.",
  IndexSignatureHasOverride: "'override' modifier cannot appear on an index signature.",
  IndexSignatureHasStatic: "Index signatures cannot have the 'static' modifier.",
  InitializerNotAllowedInAmbientContext: "Initializers are not allowed in ambient contexts.",
  InvalidModifierOnTypeMember: ({
    modifier: e
  }) => "'".concat(e, "' modifier cannot appear on a type member."),
  InvalidModifierOnTypeParameter: ({
    modifier: e
  }) => "'".concat(e, "' modifier cannot appear on a type parameter."),
  InvalidModifierOnTypeParameterPositions: ({
    modifier: e
  }) => "'".concat(e, "' modifier can only appear on a type parameter of a class, interface or type alias."),
  InvalidModifiersOrder: ({
    orderedModifiers: e
  }) => "'".concat(e[0], "' modifier must precede '").concat(e[1], "' modifier."),
  InvalidPropertyAccessAfterInstantiationExpression: "Invalid property access after an instantiation expression. You can either wrap the instantiation expression in parentheses, or delete the type arguments.",
  InvalidTupleMemberLabel: "Tuple members must be labeled with a simple identifier.",
  MissingInterfaceName: "'interface' declarations must be followed by an identifier.",
  NonAbstractClassHasAbstractMethod: "Abstract methods can only appear within an abstract class.",
  NonClassMethodPropertyHasAbstractModifer: "'abstract' modifier can only appear on a class, method, or property declaration.",
  OptionalTypeBeforeRequired: "A required element cannot follow an optional element.",
  OverrideNotInSubClass: "This member cannot have an 'override' modifier because its containing class does not extend another class.",
  PatternIsOptional: "A binding pattern parameter cannot be optional in an implementation signature.",
  PrivateElementHasAbstract: "Private elements cannot have the 'abstract' modifier.",
  PrivateElementHasAccessibility: ({
    modifier: e
  }) => "Private elements cannot have an accessibility modifier ('".concat(e, "')."),
  ReadonlyForMethodSignature: "'readonly' modifier can only appear on a property declaration or index signature.",
  ReservedArrowTypeParam: "This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `<T,>() => ...`.",
  ReservedTypeAssertion: "This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.",
  SetAccesorCannotHaveOptionalParameter: "A 'set' accessor cannot have an optional parameter.",
  SetAccesorCannotHaveRestParameter: "A 'set' accessor cannot have rest parameter.",
  SetAccesorCannotHaveReturnType: "A 'set' accessor cannot have a return type annotation.",
  SingleTypeParameterWithoutTrailingComma: ({
    typeParameterName: e
  }) => "Single type parameter ".concat(e, " should have a trailing comma. Example usage: <").concat(e, ",>."),
  StaticBlockCannotHaveModifier: "Static class blocks cannot have any modifier.",
  TupleOptionalAfterType: "A labeled tuple optional element must be declared using a question mark after the name and before the colon (`name?: type`), rather than after the type (`name: type?`).",
  TypeAnnotationAfterAssign: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",
  TypeImportCannotSpecifyDefaultAndNamed: "A type-only import can specify a default import or named bindings, but not both.",
  TypeModifierIsUsedInTypeExports: "The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.",
  TypeModifierIsUsedInTypeImports: "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.",
  UnexpectedParameterModifier: "A parameter property is only allowed in a constructor implementation.",
  UnexpectedReadonly: "'readonly' type modifier is only permitted on array and tuple literal types.",
  UnexpectedTypeAnnotation: "Did not expect a type annotation here.",
  UnexpectedTypeCastInParameter: "Unexpected type cast in parameter position.",
  UnsupportedImportTypeArgument: "Argument in a type import must be a string literal.",
  UnsupportedParameterPropertyKind: "A parameter property may not be declared using a binding pattern.",
  UnsupportedSignatureParameterKind: ({
    type: e
  }) => "Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ".concat(e, ".")
});
function tZe(e) {
  switch (e) {
    case "any":
      return "TSAnyKeyword";
    case "boolean":
      return "TSBooleanKeyword";
    case "bigint":
      return "TSBigIntKeyword";
    case "never":
      return "TSNeverKeyword";
    case "number":
      return "TSNumberKeyword";
    case "object":
      return "TSObjectKeyword";
    case "string":
      return "TSStringKeyword";
    case "symbol":
      return "TSSymbolKeyword";
    case "undefined":
      return "TSUndefinedKeyword";
    case "unknown":
      return "TSUnknownKeyword";
    default:
      return;
  }
}
function dK(e) {
  return e === "private" || e === "public" || e === "protected";
}
function rZe(e) {
  return e === "in" || e === "out";
}
var iZe = (e) => class extends e {
  constructor(...r) {
    super(...r), this.tsParseInOutModifiers = this.tsParseModifiers.bind(this, {
      allowedModifiers: ["in", "out"],
      disallowedModifiers: ["const", "public", "private", "protected", "readonly", "declare", "abstract", "override"],
      errorTemplate: Gt.InvalidModifierOnTypeParameter
    }), this.tsParseConstModifier = this.tsParseModifiers.bind(this, {
      allowedModifiers: ["const"],
      disallowedModifiers: ["in", "out"],
      errorTemplate: Gt.InvalidModifierOnTypeParameterPositions
    }), this.tsParseInOutConstModifiers = this.tsParseModifiers.bind(this, {
      allowedModifiers: ["in", "out", "const"],
      disallowedModifiers: ["public", "private", "protected", "readonly", "declare", "abstract", "override"],
      errorTemplate: Gt.InvalidModifierOnTypeParameter
    });
  }
  getScopeHandler() {
    return XQe;
  }
  tsIsIdentifier() {
    return Si(this.state.type);
  }
  tsTokenCanFollowModifier() {
    return (this.match(0) || this.match(5) || this.match(55) || this.match(21) || this.match(138) || this.isLiteralPropertyName()) && !this.hasPrecedingLineBreak();
  }
  tsNextTokenCanFollowModifier() {
    return this.next(), this.tsTokenCanFollowModifier();
  }
  tsParseModifier(r, i) {
    if (!Si(this.state.type) && this.state.type !== 58 && this.state.type !== 75)
      return;
    const n = this.state.value;
    if (r.indexOf(n) !== -1) {
      if (i && this.tsIsStartOfStaticBlocks())
        return;
      if (this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))
        return n;
    }
  }
  tsParseModifiers({
    allowedModifiers: r,
    disallowedModifiers: i,
    stopOnStartOfClassStaticBlock: n,
    errorTemplate: s = Gt.InvalidModifierOnTypeMember
  }, a) {
    const o = (u, c, f, h) => {
      c === f && a[h] && this.raise(Gt.InvalidModifiersOrder, u, {
        orderedModifiers: [f, h]
      });
    }, l = (u, c, f, h) => {
      (a[f] && c === h || a[h] && c === f) && this.raise(Gt.IncompatibleModifiers, u, {
        modifiers: [f, h]
      });
    };
    for (; ; ) {
      const {
        startLoc: u
      } = this.state, c = this.tsParseModifier(r.concat(i != null ? i : []), n);
      if (!c)
        break;
      dK(c) ? a.accessibility ? this.raise(Gt.DuplicateAccessibilityModifier, u, {
        modifier: c
      }) : (o(u, c, c, "override"), o(u, c, c, "static"), o(u, c, c, "readonly"), a.accessibility = c) : rZe(c) ? (a[c] && this.raise(Gt.DuplicateModifier, u, {
        modifier: c
      }), a[c] = !0, o(u, c, "in", "out")) : (hasOwnProperty.call(a, c) ? this.raise(Gt.DuplicateModifier, u, {
        modifier: c
      }) : (o(u, c, "static", "readonly"), o(u, c, "static", "override"), o(u, c, "override", "readonly"), o(u, c, "abstract", "override"), l(u, c, "declare", "override"), l(u, c, "static", "abstract")), a[c] = !0), i != null && i.includes(c) && this.raise(s, u, {
        modifier: c
      });
    }
  }
  tsIsListTerminator(r) {
    switch (r) {
      case "EnumMembers":
      case "TypeMembers":
        return this.match(8);
      case "HeritageClauseElement":
        return this.match(5);
      case "TupleElementTypes":
        return this.match(3);
      case "TypeParametersOrArguments":
        return this.match(48);
    }
  }
  tsParseList(r, i) {
    const n = [];
    for (; !this.tsIsListTerminator(r); )
      n.push(i());
    return n;
  }
  tsParseDelimitedList(r, i, n) {
    return eZe(this.tsParseDelimitedListWorker(r, i, !0, n));
  }
  tsParseDelimitedListWorker(r, i, n, s) {
    const a = [];
    let o = -1;
    for (; !this.tsIsListTerminator(r); ) {
      o = -1;
      const l = i();
      if (l == null)
        return;
      if (a.push(l), this.eat(12)) {
        o = this.state.lastTokStartLoc.index;
        continue;
      }
      if (this.tsIsListTerminator(r))
        break;
      n && this.expect(12);
      return;
    }
    return s && (s.value = o), a;
  }
  tsParseBracketedList(r, i, n, s, a) {
    s || (n ? this.expect(0) : this.expect(47));
    const o = this.tsParseDelimitedList(r, i, a);
    return n ? this.expect(3) : this.expect(48), o;
  }
  tsParseImportType() {
    const r = this.startNode();
    return this.expect(83), this.expect(10), this.match(133) || this.raise(Gt.UnsupportedImportTypeArgument, this.state.startLoc), r.argument = super.parseExprAtom(), (this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions")) && (r.options = null), this.eat(12) && (this.expectImportAttributesPlugin(), this.match(11) || (r.options = super.parseMaybeAssignAllowIn(), this.eat(12))), this.expect(11), this.eat(16) && (r.qualifier = this.tsParseEntityName()), this.match(47) && (r.typeParameters = this.tsParseTypeArguments()), this.finishNode(r, "TSImportType");
  }
  tsParseEntityName(r = !0) {
    let i = this.parseIdentifier(r);
    for (; this.eat(16); ) {
      const n = this.startNodeAtNode(i);
      n.left = i, n.right = this.parseIdentifier(r), i = this.finishNode(n, "TSQualifiedName");
    }
    return i;
  }
  tsParseTypeReference() {
    const r = this.startNode();
    return r.typeName = this.tsParseEntityName(), !this.hasPrecedingLineBreak() && this.match(47) && (r.typeParameters = this.tsParseTypeArguments()), this.finishNode(r, "TSTypeReference");
  }
  tsParseThisTypePredicate(r) {
    this.next();
    const i = this.startNodeAtNode(r);
    return i.parameterName = r, i.typeAnnotation = this.tsParseTypeAnnotation(!1), i.asserts = !1, this.finishNode(i, "TSTypePredicate");
  }
  tsParseThisTypeNode() {
    const r = this.startNode();
    return this.next(), this.finishNode(r, "TSThisType");
  }
  tsParseTypeQuery() {
    const r = this.startNode();
    return this.expect(87), this.match(83) ? r.exprName = this.tsParseImportType() : r.exprName = this.tsParseEntityName(), !this.hasPrecedingLineBreak() && this.match(47) && (r.typeParameters = this.tsParseTypeArguments()), this.finishNode(r, "TSTypeQuery");
  }
  tsParseTypeParameter(r) {
    const i = this.startNode();
    return r(i), i.name = this.tsParseTypeParameterName(), i.constraint = this.tsEatThenParseType(81), i.default = this.tsEatThenParseType(29), this.finishNode(i, "TSTypeParameter");
  }
  tsTryParseTypeParameters(r) {
    if (this.match(47))
      return this.tsParseTypeParameters(r);
  }
  tsParseTypeParameters(r) {
    const i = this.startNode();
    this.match(47) || this.match(142) ? this.next() : this.unexpected();
    const n = {
      value: -1
    };
    return i.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this, r), !1, !0, n), i.params.length === 0 && this.raise(Gt.EmptyTypeParameters, i), n.value !== -1 && this.addExtra(i, "trailingComma", n.value), this.finishNode(i, "TSTypeParameterDeclaration");
  }
  tsFillSignature(r, i) {
    const n = r === 19, s = "parameters", a = "typeAnnotation";
    i.typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier), this.expect(10), i[s] = this.tsParseBindingListForSignature(), n ? i[a] = this.tsParseTypeOrTypePredicateAnnotation(r) : this.match(r) && (i[a] = this.tsParseTypeOrTypePredicateAnnotation(r));
  }
  tsParseBindingListForSignature() {
    const r = super.parseBindingList(11, 41, 2);
    for (const i of r) {
      const {
        type: n
      } = i;
      (n === "AssignmentPattern" || n === "TSParameterProperty") && this.raise(Gt.UnsupportedSignatureParameterKind, i, {
        type: n
      });
    }
    return r;
  }
  tsParseTypeMemberSemicolon() {
    !this.eat(12) && !this.isLineTerminator() && this.expect(13);
  }
  tsParseSignatureMember(r, i) {
    return this.tsFillSignature(14, i), this.tsParseTypeMemberSemicolon(), this.finishNode(i, r);
  }
  tsIsUnambiguouslyIndexSignature() {
    return this.next(), Si(this.state.type) ? (this.next(), this.match(14)) : !1;
  }
  tsTryParseIndexSignature(r) {
    if (!(this.match(0) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))))
      return;
    this.expect(0);
    const i = this.parseIdentifier();
    i.typeAnnotation = this.tsParseTypeAnnotation(), this.resetEndLocation(i), this.expect(3), r.parameters = [i];
    const n = this.tsTryParseTypeAnnotation();
    return n && (r.typeAnnotation = n), this.tsParseTypeMemberSemicolon(), this.finishNode(r, "TSIndexSignature");
  }
  tsParsePropertyOrMethodSignature(r, i) {
    this.eat(17) && (r.optional = !0);
    const n = r;
    if (this.match(10) || this.match(47)) {
      i && this.raise(Gt.ReadonlyForMethodSignature, r);
      const s = n;
      s.kind && this.match(47) && this.raise(Gt.AccesorCannotHaveTypeParameters, this.state.curPosition()), this.tsFillSignature(14, s), this.tsParseTypeMemberSemicolon();
      const a = "parameters", o = "typeAnnotation";
      if (s.kind === "get")
        s[a].length > 0 && (this.raise(tt.BadGetterArity, this.state.curPosition()), this.isThisParam(s[a][0]) && this.raise(Gt.AccesorCannotDeclareThisParameter, this.state.curPosition()));
      else if (s.kind === "set") {
        if (s[a].length !== 1)
          this.raise(tt.BadSetterArity, this.state.curPosition());
        else {
          const l = s[a][0];
          this.isThisParam(l) && this.raise(Gt.AccesorCannotDeclareThisParameter, this.state.curPosition()), l.type === "Identifier" && l.optional && this.raise(Gt.SetAccesorCannotHaveOptionalParameter, this.state.curPosition()), l.type === "RestElement" && this.raise(Gt.SetAccesorCannotHaveRestParameter, this.state.curPosition());
        }
        s[o] && this.raise(Gt.SetAccesorCannotHaveReturnType, s[o]);
      } else
        s.kind = "method";
      return this.finishNode(s, "TSMethodSignature");
    } else {
      const s = n;
      i && (s.readonly = !0);
      const a = this.tsTryParseTypeAnnotation();
      return a && (s.typeAnnotation = a), this.tsParseTypeMemberSemicolon(), this.finishNode(s, "TSPropertySignature");
    }
  }
  tsParseTypeMember() {
    const r = this.startNode();
    if (this.match(10) || this.match(47))
      return this.tsParseSignatureMember("TSCallSignatureDeclaration", r);
    if (this.match(77)) {
      const n = this.startNode();
      return this.next(), this.match(10) || this.match(47) ? this.tsParseSignatureMember("TSConstructSignatureDeclaration", r) : (r.key = this.createIdentifier(n, "new"), this.tsParsePropertyOrMethodSignature(r, !1));
    }
    this.tsParseModifiers({
      allowedModifiers: ["readonly"],
      disallowedModifiers: ["declare", "abstract", "private", "protected", "public", "static", "override"]
    }, r);
    const i = this.tsTryParseIndexSignature(r);
    return i || (super.parsePropertyName(r), !r.computed && r.key.type === "Identifier" && (r.key.name === "get" || r.key.name === "set") && this.tsTokenCanFollowModifier() && (r.kind = r.key.name, super.parsePropertyName(r)), this.tsParsePropertyOrMethodSignature(r, !!r.readonly));
  }
  tsParseTypeLiteral() {
    const r = this.startNode();
    return r.members = this.tsParseObjectTypeMembers(), this.finishNode(r, "TSTypeLiteral");
  }
  tsParseObjectTypeMembers() {
    this.expect(5);
    const r = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this));
    return this.expect(8), r;
  }
  tsIsStartOfMappedType() {
    return this.next(), this.eat(53) ? this.isContextual(122) : (this.isContextual(122) && this.next(), !this.match(0) || (this.next(), !this.tsIsIdentifier()) ? !1 : (this.next(), this.match(58)));
  }
  tsParseMappedTypeParameter() {
    const r = this.startNode();
    return r.name = this.tsParseTypeParameterName(), r.constraint = this.tsExpectThenParseType(58), this.finishNode(r, "TSTypeParameter");
  }
  tsParseMappedType() {
    const r = this.startNode();
    return this.expect(5), this.match(53) ? (r.readonly = this.state.value, this.next(), this.expectContextual(122)) : this.eatContextual(122) && (r.readonly = !0), this.expect(0), r.typeParameter = this.tsParseMappedTypeParameter(), r.nameType = this.eatContextual(93) ? this.tsParseType() : null, this.expect(3), this.match(53) ? (r.optional = this.state.value, this.next(), this.expect(17)) : this.eat(17) && (r.optional = !0), r.typeAnnotation = this.tsTryParseType(), this.semicolon(), this.expect(8), this.finishNode(r, "TSMappedType");
  }
  tsParseTupleType() {
    const r = this.startNode();
    r.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), !0, !1);
    let i = !1;
    return r.elementTypes.forEach((n) => {
      const {
        type: s
      } = n;
      i && s !== "TSRestType" && s !== "TSOptionalType" && !(s === "TSNamedTupleMember" && n.optional) && this.raise(Gt.OptionalTypeBeforeRequired, n), i || (i = s === "TSNamedTupleMember" && n.optional || s === "TSOptionalType");
    }), this.finishNode(r, "TSTupleType");
  }
  tsParseTupleElementType() {
    const {
      startLoc: r
    } = this.state, i = this.eat(21);
    let n, s, a, o;
    const u = kc(this.state.type) ? this.lookaheadCharCode() : null;
    if (u === 58)
      n = !0, a = !1, s = this.parseIdentifier(!0), this.expect(14), o = this.tsParseType();
    else if (u === 63) {
      a = !0;
      const c = this.state.startLoc, f = this.state.value, h = this.tsParseNonArrayType();
      this.lookaheadCharCode() === 58 ? (n = !0, s = this.createIdentifier(this.startNodeAt(c), f), this.expect(17), this.expect(14), o = this.tsParseType()) : (n = !1, o = h, this.expect(17));
    } else
      o = this.tsParseType(), a = this.eat(17), n = this.eat(14);
    if (n) {
      let c;
      s ? (c = this.startNodeAtNode(s), c.optional = a, c.label = s, c.elementType = o, this.eat(17) && (c.optional = !0, this.raise(Gt.TupleOptionalAfterType, this.state.lastTokStartLoc))) : (c = this.startNodeAtNode(o), c.optional = a, this.raise(Gt.InvalidTupleMemberLabel, o), c.label = o, c.elementType = this.tsParseType()), o = this.finishNode(c, "TSNamedTupleMember");
    } else if (a) {
      const c = this.startNodeAtNode(o);
      c.typeAnnotation = o, o = this.finishNode(c, "TSOptionalType");
    }
    if (i) {
      const c = this.startNodeAt(r);
      c.typeAnnotation = o, o = this.finishNode(c, "TSRestType");
    }
    return o;
  }
  tsParseParenthesizedType() {
    const r = this.startNode();
    return this.expect(10), r.typeAnnotation = this.tsParseType(), this.expect(11), this.finishNode(r, "TSParenthesizedType");
  }
  tsParseFunctionOrConstructorType(r, i) {
    const n = this.startNode();
    return r === "TSConstructorType" && (n.abstract = !!i, i && this.next(), this.next()), this.tsInAllowConditionalTypesContext(() => this.tsFillSignature(19, n)), this.finishNode(n, r);
  }
  tsParseLiteralTypeNode() {
    const r = this.startNode();
    switch (this.state.type) {
      case 134:
      case 135:
      case 133:
      case 85:
      case 86:
        r.literal = super.parseExprAtom();
        break;
      default:
        this.unexpected();
    }
    return this.finishNode(r, "TSLiteralType");
  }
  tsParseTemplateLiteralType() {
    const r = this.startNode();
    return r.literal = super.parseTemplate(!1), this.finishNode(r, "TSLiteralType");
  }
  parseTemplateSubstitution() {
    return this.state.inType ? this.tsParseType() : super.parseTemplateSubstitution();
  }
  tsParseThisTypeOrThisTypePredicate() {
    const r = this.tsParseThisTypeNode();
    return this.isContextual(116) && !this.hasPrecedingLineBreak() ? this.tsParseThisTypePredicate(r) : r;
  }
  tsParseNonArrayType() {
    switch (this.state.type) {
      case 133:
      case 134:
      case 135:
      case 85:
      case 86:
        return this.tsParseLiteralTypeNode();
      case 53:
        if (this.state.value === "-") {
          const r = this.startNode(), i = this.lookahead();
          return i.type !== 134 && i.type !== 135 && this.unexpected(), r.literal = this.parseMaybeUnary(), this.finishNode(r, "TSLiteralType");
        }
        break;
      case 78:
        return this.tsParseThisTypeOrThisTypePredicate();
      case 87:
        return this.tsParseTypeQuery();
      case 83:
        return this.tsParseImportType();
      case 5:
        return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this)) ? this.tsParseMappedType() : this.tsParseTypeLiteral();
      case 0:
        return this.tsParseTupleType();
      case 10:
        return this.tsParseParenthesizedType();
      case 25:
      case 24:
        return this.tsParseTemplateLiteralType();
      default: {
        const {
          type: r
        } = this.state;
        if (Si(r) || r === 88 || r === 84) {
          const i = r === 88 ? "TSVoidKeyword" : r === 84 ? "TSNullKeyword" : tZe(this.state.value);
          if (i !== void 0 && this.lookaheadCharCode() !== 46) {
            const n = this.startNode();
            return this.next(), this.finishNode(n, i);
          }
          return this.tsParseTypeReference();
        }
      }
    }
    this.unexpected();
  }
  tsParseArrayTypeOrHigher() {
    let r = this.tsParseNonArrayType();
    for (; !this.hasPrecedingLineBreak() && this.eat(0); )
      if (this.match(3)) {
        const i = this.startNodeAtNode(r);
        i.elementType = r, this.expect(3), r = this.finishNode(i, "TSArrayType");
      } else {
        const i = this.startNodeAtNode(r);
        i.objectType = r, i.indexType = this.tsParseType(), this.expect(3), r = this.finishNode(i, "TSIndexedAccessType");
      }
    return r;
  }
  tsParseTypeOperator() {
    const r = this.startNode(), i = this.state.value;
    return this.next(), r.operator = i, r.typeAnnotation = this.tsParseTypeOperatorOrHigher(), i === "readonly" && this.tsCheckTypeAnnotationForReadOnly(r), this.finishNode(r, "TSTypeOperator");
  }
  tsCheckTypeAnnotationForReadOnly(r) {
    switch (r.typeAnnotation.type) {
      case "TSTupleType":
      case "TSArrayType":
        return;
      default:
        this.raise(Gt.UnexpectedReadonly, r);
    }
  }
  tsParseInferType() {
    const r = this.startNode();
    this.expectContextual(115);
    const i = this.startNode();
    return i.name = this.tsParseTypeParameterName(), i.constraint = this.tsTryParse(() => this.tsParseConstraintForInferType()), r.typeParameter = this.finishNode(i, "TSTypeParameter"), this.finishNode(r, "TSInferType");
  }
  tsParseConstraintForInferType() {
    if (this.eat(81)) {
      const r = this.tsInDisallowConditionalTypesContext(() => this.tsParseType());
      if (this.state.inDisallowConditionalTypesContext || !this.match(17))
        return r;
    }
  }
  tsParseTypeOperatorOrHigher() {
    return sQe(this.state.type) && !this.state.containsEsc ? this.tsParseTypeOperator() : this.isContextual(115) ? this.tsParseInferType() : this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher());
  }
  tsParseUnionOrIntersectionType(r, i, n) {
    const s = this.startNode(), a = this.eat(n), o = [];
    do
      o.push(i());
    while (this.eat(n));
    return o.length === 1 && !a ? o[0] : (s.types = o, this.finishNode(s, r));
  }
  tsParseIntersectionTypeOrHigher() {
    return this.tsParseUnionOrIntersectionType("TSIntersectionType", this.tsParseTypeOperatorOrHigher.bind(this), 45);
  }
  tsParseUnionTypeOrHigher() {
    return this.tsParseUnionOrIntersectionType("TSUnionType", this.tsParseIntersectionTypeOrHigher.bind(this), 43);
  }
  tsIsStartOfFunctionType() {
    return this.match(47) ? !0 : this.match(10) && this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this));
  }
  tsSkipParameterStart() {
    if (Si(this.state.type) || this.match(78))
      return this.next(), !0;
    if (this.match(5)) {
      const {
        errors: r
      } = this.state, i = r.length;
      try {
        return this.parseObjectLike(8, !0), r.length === i;
      } catch (n) {
        return !1;
      }
    }
    if (this.match(0)) {
      this.next();
      const {
        errors: r
      } = this.state, i = r.length;
      try {
        return super.parseBindingList(3, 93, 1), r.length === i;
      } catch (n) {
        return !1;
      }
    }
    return !1;
  }
  tsIsUnambiguouslyStartOfFunctionType() {
    return this.next(), !!(this.match(11) || this.match(21) || this.tsSkipParameterStart() && (this.match(14) || this.match(12) || this.match(17) || this.match(29) || this.match(11) && (this.next(), this.match(19))));
  }
  tsParseTypeOrTypePredicateAnnotation(r) {
    return this.tsInType(() => {
      const i = this.startNode();
      this.expect(r);
      const n = this.startNode(), s = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));
      if (s && this.match(78)) {
        let l = this.tsParseThisTypeOrThisTypePredicate();
        return l.type === "TSThisType" ? (n.parameterName = l, n.asserts = !0, n.typeAnnotation = null, l = this.finishNode(n, "TSTypePredicate")) : (this.resetStartLocationFromNode(l, n), l.asserts = !0), i.typeAnnotation = l, this.finishNode(i, "TSTypeAnnotation");
      }
      const a = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));
      if (!a)
        return s ? (n.parameterName = this.parseIdentifier(), n.asserts = s, n.typeAnnotation = null, i.typeAnnotation = this.finishNode(n, "TSTypePredicate"), this.finishNode(i, "TSTypeAnnotation")) : this.tsParseTypeAnnotation(!1, i);
      const o = this.tsParseTypeAnnotation(!1);
      return n.parameterName = a, n.typeAnnotation = o, n.asserts = s, i.typeAnnotation = this.finishNode(n, "TSTypePredicate"), this.finishNode(i, "TSTypeAnnotation");
    });
  }
  tsTryParseTypeOrTypePredicateAnnotation() {
    if (this.match(14))
      return this.tsParseTypeOrTypePredicateAnnotation(14);
  }
  tsTryParseTypeAnnotation() {
    if (this.match(14))
      return this.tsParseTypeAnnotation();
  }
  tsTryParseType() {
    return this.tsEatThenParseType(14);
  }
  tsParseTypePredicatePrefix() {
    const r = this.parseIdentifier();
    if (this.isContextual(116) && !this.hasPrecedingLineBreak())
      return this.next(), r;
  }
  tsParseTypePredicateAsserts() {
    if (this.state.type !== 109)
      return !1;
    const r = this.state.containsEsc;
    return this.next(), !Si(this.state.type) && !this.match(78) ? !1 : (r && this.raise(tt.InvalidEscapedReservedWord, this.state.lastTokStartLoc, {
      reservedWord: "asserts"
    }), !0);
  }
  tsParseTypeAnnotation(r = !0, i = this.startNode()) {
    return this.tsInType(() => {
      r && this.expect(14), i.typeAnnotation = this.tsParseType();
    }), this.finishNode(i, "TSTypeAnnotation");
  }
  tsParseType() {
    hK(this.state.inType);
    const r = this.tsParseNonConditionalType();
    if (this.state.inDisallowConditionalTypesContext || this.hasPrecedingLineBreak() || !this.eat(81))
      return r;
    const i = this.startNodeAtNode(r);
    return i.checkType = r, i.extendsType = this.tsInDisallowConditionalTypesContext(() => this.tsParseNonConditionalType()), this.expect(17), i.trueType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()), this.expect(14), i.falseType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()), this.finishNode(i, "TSConditionalType");
  }
  isAbstractConstructorSignature() {
    return this.isContextual(124) && this.lookahead().type === 77;
  }
  tsParseNonConditionalType() {
    return this.tsIsStartOfFunctionType() ? this.tsParseFunctionOrConstructorType("TSFunctionType") : this.match(77) ? this.tsParseFunctionOrConstructorType("TSConstructorType") : this.isAbstractConstructorSignature() ? this.tsParseFunctionOrConstructorType("TSConstructorType", !0) : this.tsParseUnionTypeOrHigher();
  }
  tsParseTypeAssertion() {
    this.getPluginOption("typescript", "disallowAmbiguousJSXLike") && this.raise(Gt.ReservedTypeAssertion, this.state.startLoc);
    const r = this.startNode();
    return r.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? this.tsParseTypeReference() : this.tsParseType())), this.expect(48), r.expression = this.parseMaybeUnary(), this.finishNode(r, "TSTypeAssertion");
  }
  tsParseHeritageClause(r) {
    const i = this.state.startLoc, n = this.tsParseDelimitedList("HeritageClauseElement", () => {
      const s = this.startNode();
      return s.expression = this.tsParseEntityName(), this.match(47) && (s.typeParameters = this.tsParseTypeArguments()), this.finishNode(s, "TSExpressionWithTypeArguments");
    });
    return n.length || this.raise(Gt.EmptyHeritageClauseType, i, {
      token: r
    }), n;
  }
  tsParseInterfaceDeclaration(r, i = {}) {
    if (this.hasFollowingLineBreak())
      return null;
    this.expectContextual(129), i.declare && (r.declare = !0), Si(this.state.type) ? (r.id = this.parseIdentifier(), this.checkIdentifier(r.id, 130)) : (r.id = null, this.raise(Gt.MissingInterfaceName, this.state.startLoc)), r.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers), this.eat(81) && (r.extends = this.tsParseHeritageClause("extends"));
    const n = this.startNode();
    return n.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this)), r.body = this.finishNode(n, "TSInterfaceBody"), this.finishNode(r, "TSInterfaceDeclaration");
  }
  tsParseTypeAliasDeclaration(r) {
    return r.id = this.parseIdentifier(), this.checkIdentifier(r.id, 2), r.typeAnnotation = this.tsInType(() => {
      if (r.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers), this.expect(29), this.isContextual(114) && this.lookahead().type !== 16) {
        const i = this.startNode();
        return this.next(), this.finishNode(i, "TSIntrinsicKeyword");
      }
      return this.tsParseType();
    }), this.semicolon(), this.finishNode(r, "TSTypeAliasDeclaration");
  }
  tsInNoContext(r) {
    const i = this.state.context;
    this.state.context = [i[0]];
    try {
      return r();
    } finally {
      this.state.context = i;
    }
  }
  tsInType(r) {
    const i = this.state.inType;
    this.state.inType = !0;
    try {
      return r();
    } finally {
      this.state.inType = i;
    }
  }
  tsInDisallowConditionalTypesContext(r) {
    const i = this.state.inDisallowConditionalTypesContext;
    this.state.inDisallowConditionalTypesContext = !0;
    try {
      return r();
    } finally {
      this.state.inDisallowConditionalTypesContext = i;
    }
  }
  tsInAllowConditionalTypesContext(r) {
    const i = this.state.inDisallowConditionalTypesContext;
    this.state.inDisallowConditionalTypesContext = !1;
    try {
      return r();
    } finally {
      this.state.inDisallowConditionalTypesContext = i;
    }
  }
  tsEatThenParseType(r) {
    if (this.match(r))
      return this.tsNextThenParseType();
  }
  tsExpectThenParseType(r) {
    return this.tsInType(() => (this.expect(r), this.tsParseType()));
  }
  tsNextThenParseType() {
    return this.tsInType(() => (this.next(), this.tsParseType()));
  }
  tsParseEnumMember() {
    const r = this.startNode();
    return r.id = this.match(133) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(!0), this.eat(29) && (r.initializer = super.parseMaybeAssignAllowIn()), this.finishNode(r, "TSEnumMember");
  }
  tsParseEnumDeclaration(r, i = {}) {
    return i.const && (r.const = !0), i.declare && (r.declare = !0), this.expectContextual(126), r.id = this.parseIdentifier(), this.checkIdentifier(r.id, r.const ? 8971 : 8459), this.expect(5), r.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)), this.expect(8), this.finishNode(r, "TSEnumDeclaration");
  }
  tsParseModuleBlock() {
    const r = this.startNode();
    return this.scope.enter(0), this.expect(5), super.parseBlockOrModuleBlockBody(r.body = [], void 0, !0, 8), this.scope.exit(), this.finishNode(r, "TSModuleBlock");
  }
  tsParseModuleOrNamespaceDeclaration(r, i = !1) {
    if (r.id = this.parseIdentifier(), i || this.checkIdentifier(r.id, 1024), this.eat(16)) {
      const n = this.startNode();
      this.tsParseModuleOrNamespaceDeclaration(n, !0), r.body = n;
    } else
      this.scope.enter(256), this.prodParam.enter(0), r.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit();
    return this.finishNode(r, "TSModuleDeclaration");
  }
  tsParseAmbientExternalModuleDeclaration(r) {
    return this.isContextual(112) ? (r.global = !0, r.id = this.parseIdentifier()) : this.match(133) ? r.id = super.parseStringLiteral(this.state.value) : this.unexpected(), this.match(5) ? (this.scope.enter(256), this.prodParam.enter(0), r.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit()) : this.semicolon(), this.finishNode(r, "TSModuleDeclaration");
  }
  tsParseImportEqualsDeclaration(r, i, n) {
    r.isExport = n || !1, r.id = i || this.parseIdentifier(), this.checkIdentifier(r.id, 4096), this.expect(29);
    const s = this.tsParseModuleReference();
    return r.importKind === "type" && s.type !== "TSExternalModuleReference" && this.raise(Gt.ImportAliasHasImportType, s), r.moduleReference = s, this.semicolon(), this.finishNode(r, "TSImportEqualsDeclaration");
  }
  tsIsExternalModuleReference() {
    return this.isContextual(119) && this.lookaheadCharCode() === 40;
  }
  tsParseModuleReference() {
    return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(!1);
  }
  tsParseExternalModuleReference() {
    const r = this.startNode();
    return this.expectContextual(119), this.expect(10), this.match(133) || this.unexpected(), r.expression = super.parseExprAtom(), this.expect(11), this.sawUnambiguousESM = !0, this.finishNode(r, "TSExternalModuleReference");
  }
  tsLookAhead(r) {
    const i = this.state.clone(), n = r();
    return this.state = i, n;
  }
  tsTryParseAndCatch(r) {
    const i = this.tryParse((n) => r() || n());
    if (!(i.aborted || !i.node))
      return i.error && (this.state = i.failState), i.node;
  }
  tsTryParse(r) {
    const i = this.state.clone(), n = r();
    if (n !== void 0 && n !== !1)
      return n;
    this.state = i;
  }
  tsTryParseDeclare(r) {
    if (this.isLineTerminator())
      return;
    let i = this.state.type, n;
    return this.isContextual(100) && (i = 74, n = "let"), this.tsInAmbientContext(() => {
      switch (i) {
        case 68:
          return r.declare = !0, super.parseFunctionStatement(r, !1, !1);
        case 80:
          return r.declare = !0, this.parseClass(r, !0, !1);
        case 126:
          return this.tsParseEnumDeclaration(r, {
            declare: !0
          });
        case 112:
          return this.tsParseAmbientExternalModuleDeclaration(r);
        case 75:
        case 74:
          return !this.match(75) || !this.isLookaheadContextual("enum") ? (r.declare = !0, this.parseVarStatement(r, n || this.state.value, !0)) : (this.expect(75), this.tsParseEnumDeclaration(r, {
            const: !0,
            declare: !0
          }));
        case 129: {
          const s = this.tsParseInterfaceDeclaration(r, {
            declare: !0
          });
          if (s)
            return s;
        }
        default:
          if (Si(i))
            return this.tsParseDeclaration(r, this.state.value, !0, null);
      }
    });
  }
  tsTryParseExportDeclaration() {
    return this.tsParseDeclaration(this.startNode(), this.state.value, !0, null);
  }
  tsParseExpressionStatement(r, i, n) {
    switch (i.name) {
      case "declare": {
        const s = this.tsTryParseDeclare(r);
        return s && (s.declare = !0), s;
      }
      case "global":
        if (this.match(5)) {
          this.scope.enter(256), this.prodParam.enter(0);
          const s = r;
          return s.global = !0, s.id = i, s.body = this.tsParseModuleBlock(), this.scope.exit(), this.prodParam.exit(), this.finishNode(s, "TSModuleDeclaration");
        }
        break;
      default:
        return this.tsParseDeclaration(r, i.name, !1, n);
    }
  }
  tsParseDeclaration(r, i, n, s) {
    switch (i) {
      case "abstract":
        if (this.tsCheckLineTerminator(n) && (this.match(80) || Si(this.state.type)))
          return this.tsParseAbstractDeclaration(r, s);
        break;
      case "module":
        if (this.tsCheckLineTerminator(n)) {
          if (this.match(133))
            return this.tsParseAmbientExternalModuleDeclaration(r);
          if (Si(this.state.type))
            return this.tsParseModuleOrNamespaceDeclaration(r);
        }
        break;
      case "namespace":
        if (this.tsCheckLineTerminator(n) && Si(this.state.type))
          return this.tsParseModuleOrNamespaceDeclaration(r);
        break;
      case "type":
        if (this.tsCheckLineTerminator(n) && Si(this.state.type))
          return this.tsParseTypeAliasDeclaration(r);
        break;
    }
  }
  tsCheckLineTerminator(r) {
    return r ? this.hasFollowingLineBreak() ? !1 : (this.next(), !0) : !this.isLineTerminator();
  }
  tsTryParseGenericAsyncArrowFunction(r) {
    if (!this.match(47))
      return;
    const i = this.state.maybeInArrowParameters;
    this.state.maybeInArrowParameters = !0;
    const n = this.tsTryParseAndCatch(() => {
      const s = this.startNodeAt(r);
      return s.typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier), super.parseFunctionParams(s), s.returnType = this.tsTryParseTypeOrTypePredicateAnnotation(), this.expect(19), s;
    });
    if (this.state.maybeInArrowParameters = i, !!n)
      return super.parseArrowExpression(n, null, !0);
  }
  tsParseTypeArgumentsInExpression() {
    if (this.reScan_lt() === 47)
      return this.tsParseTypeArguments();
  }
  tsParseTypeArguments() {
    const r = this.startNode();
    return r.params = this.tsInType(() => this.tsInNoContext(() => (this.expect(47), this.tsParseDelimitedList("TypeParametersOrArguments", this.tsParseType.bind(this))))), r.params.length === 0 ? this.raise(Gt.EmptyTypeArguments, r) : !this.state.inType && this.curContext() === Ri.brace && this.reScan_lt_gt(), this.expect(48), this.finishNode(r, "TSTypeParameterInstantiation");
  }
  tsIsDeclarationStart() {
    return aQe(this.state.type);
  }
  isExportDefaultSpecifier() {
    return this.tsIsDeclarationStart() ? !1 : super.isExportDefaultSpecifier();
  }
  parseAssignableListItem(r, i) {
    const n = this.state.startLoc, s = {};
    this.tsParseModifiers({
      allowedModifiers: ["public", "private", "protected", "override", "readonly"]
    }, s);
    const a = s.accessibility, o = s.override, l = s.readonly;
    !(r & 4) && (a || l || o) && this.raise(Gt.UnexpectedParameterModifier, n);
    const u = this.parseMaybeDefault();
    this.parseAssignableListItemTypes(u, r);
    const c = this.parseMaybeDefault(u.loc.start, u);
    if (a || l || o) {
      const f = this.startNodeAt(n);
      return i.length && (f.decorators = i), a && (f.accessibility = a), l && (f.readonly = l), o && (f.override = o), c.type !== "Identifier" && c.type !== "AssignmentPattern" && this.raise(Gt.UnsupportedParameterPropertyKind, f), f.parameter = c, this.finishNode(f, "TSParameterProperty");
    }
    return i.length && (u.decorators = i), c;
  }
  isSimpleParameter(r) {
    return r.type === "TSParameterProperty" && super.isSimpleParameter(r.parameter) || super.isSimpleParameter(r);
  }
  tsDisallowOptionalPattern(r) {
    for (const i of r.params)
      i.type !== "Identifier" && i.optional && !this.state.isAmbientContext && this.raise(Gt.PatternIsOptional, i);
  }
  setArrowFunctionParameters(r, i, n) {
    super.setArrowFunctionParameters(r, i, n), this.tsDisallowOptionalPattern(r);
  }
  parseFunctionBodyAndFinish(r, i, n = !1) {
    this.match(14) && (r.returnType = this.tsParseTypeOrTypePredicateAnnotation(14));
    const s = i === "FunctionDeclaration" ? "TSDeclareFunction" : i === "ClassMethod" || i === "ClassPrivateMethod" ? "TSDeclareMethod" : void 0;
    return s && !this.match(5) && this.isLineTerminator() ? this.finishNode(r, s) : s === "TSDeclareFunction" && this.state.isAmbientContext && (this.raise(Gt.DeclareFunctionHasImplementation, r), r.declare) ? super.parseFunctionBodyAndFinish(r, s, n) : (this.tsDisallowOptionalPattern(r), super.parseFunctionBodyAndFinish(r, i, n));
  }
  registerFunctionStatementId(r) {
    !r.body && r.id ? this.checkIdentifier(r.id, 1024) : super.registerFunctionStatementId(r);
  }
  tsCheckForInvalidTypeCasts(r) {
    r.forEach((i) => {
      (i == null ? void 0 : i.type) === "TSTypeCastExpression" && this.raise(Gt.UnexpectedTypeAnnotation, i.typeAnnotation);
    });
  }
  toReferencedList(r, i) {
    return this.tsCheckForInvalidTypeCasts(r), r;
  }
  parseArrayLike(r, i, n, s) {
    const a = super.parseArrayLike(r, i, n, s);
    return a.type === "ArrayExpression" && this.tsCheckForInvalidTypeCasts(a.elements), a;
  }
  parseSubscript(r, i, n, s) {
    if (!this.hasPrecedingLineBreak() && this.match(35)) {
      this.state.canStartJSXElement = !1, this.next();
      const o = this.startNodeAt(i);
      return o.expression = r, this.finishNode(o, "TSNonNullExpression");
    }
    let a = !1;
    if (this.match(18) && this.lookaheadCharCode() === 60) {
      if (n)
        return s.stop = !0, r;
      s.optionalChainMember = a = !0, this.next();
    }
    if (this.match(47) || this.match(51)) {
      let o;
      const l = this.tsTryParseAndCatch(() => {
        if (!n && this.atPossibleAsyncArrow(r)) {
          const h = this.tsTryParseGenericAsyncArrowFunction(i);
          if (h)
            return h;
        }
        const u = this.tsParseTypeArgumentsInExpression();
        if (!u)
          return;
        if (a && !this.match(10)) {
          o = this.state.curPosition();
          return;
        }
        if (Mw(this.state.type)) {
          const h = super.parseTaggedTemplateExpression(r, i, s);
          return h.typeParameters = u, h;
        }
        if (!n && this.eat(10)) {
          const h = this.startNodeAt(i);
          return h.callee = r, h.arguments = this.parseCallExpressionArguments(11, !1), this.tsCheckForInvalidTypeCasts(h.arguments), h.typeParameters = u, s.optionalChainMember && (h.optional = a), this.finishCallExpression(h, s.optionalChainMember);
        }
        const c = this.state.type;
        if (c === 48 || c === 52 || c !== 10 && NF(c) && !this.hasPrecedingLineBreak())
          return;
        const f = this.startNodeAt(i);
        return f.expression = r, f.typeParameters = u, this.finishNode(f, "TSInstantiationExpression");
      });
      if (o && this.unexpected(o, 10), l)
        return l.type === "TSInstantiationExpression" && (this.match(16) || this.match(18) && this.lookaheadCharCode() !== 40) && this.raise(Gt.InvalidPropertyAccessAfterInstantiationExpression, this.state.startLoc), l;
    }
    return super.parseSubscript(r, i, n, s);
  }
  parseNewCallee(r) {
    var i;
    super.parseNewCallee(r);
    const {
      callee: n
    } = r;
    n.type === "TSInstantiationExpression" && !((i = n.extra) != null && i.parenthesized) && (r.typeParameters = n.typeParameters, r.callee = n.expression);
  }
  parseExprOp(r, i, n) {
    let s;
    if (fP(58) > n && !this.hasPrecedingLineBreak() && (this.isContextual(93) || (s = this.isContextual(120)))) {
      const a = this.startNodeAt(i);
      return a.expression = r, a.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? (s && this.raise(tt.UnexpectedKeyword, this.state.startLoc, {
        keyword: "const"
      }), this.tsParseTypeReference()) : this.tsParseType())), this.finishNode(a, s ? "TSSatisfiesExpression" : "TSAsExpression"), this.reScan_lt_gt(), this.parseExprOp(a, i, n);
    }
    return super.parseExprOp(r, i, n);
  }
  checkReservedWord(r, i, n, s) {
    this.state.isAmbientContext || super.checkReservedWord(r, i, n, s);
  }
  checkImportReflection(r) {
    super.checkImportReflection(r), r.module && r.importKind !== "value" && this.raise(Gt.ImportReflectionHasImportType, r.specifiers[0].loc.start);
  }
  checkDuplicateExports() {
  }
  isPotentialImportPhase(r) {
    if (super.isPotentialImportPhase(r))
      return !0;
    if (this.isContextual(130)) {
      const i = this.lookaheadCharCode();
      return r ? i === 123 || i === 42 : i !== 61;
    }
    return !r && this.isContextual(87);
  }
  applyImportPhase(r, i, n, s) {
    super.applyImportPhase(r, i, n, s), i ? r.exportKind = n === "type" ? "type" : "value" : r.importKind = n === "type" || n === "typeof" ? n : "value";
  }
  parseImport(r) {
    if (this.match(133))
      return r.importKind = "value", super.parseImport(r);
    let i;
    if (Si(this.state.type) && this.lookaheadCharCode() === 61)
      return r.importKind = "value", this.tsParseImportEqualsDeclaration(r);
    if (this.isContextual(130)) {
      const n = this.parseMaybeImportPhase(r, !1);
      if (this.lookaheadCharCode() === 61)
        return this.tsParseImportEqualsDeclaration(r, n);
      i = super.parseImportSpecifiersAndAfter(r, n);
    } else
      i = super.parseImport(r);
    return i.importKind === "type" && i.specifiers.length > 1 && i.specifiers[0].type === "ImportDefaultSpecifier" && this.raise(Gt.TypeImportCannotSpecifyDefaultAndNamed, i), i;
  }
  parseExport(r, i) {
    if (this.match(83)) {
      this.next();
      const n = r;
      let s = null;
      return this.isContextual(130) && this.isPotentialImportPhase(!1) ? s = this.parseMaybeImportPhase(n, !1) : n.importKind = "value", this.tsParseImportEqualsDeclaration(n, s, !0);
    } else if (this.eat(29)) {
      const n = r;
      return n.expression = super.parseExpression(), this.semicolon(), this.sawUnambiguousESM = !0, this.finishNode(n, "TSExportAssignment");
    } else if (this.eatContextual(93)) {
      const n = r;
      return this.expectContextual(128), n.id = this.parseIdentifier(), this.semicolon(), this.finishNode(n, "TSNamespaceExportDeclaration");
    } else
      return super.parseExport(r, i);
  }
  isAbstractClass() {
    return this.isContextual(124) && this.lookahead().type === 80;
  }
  parseExportDefaultExpression() {
    if (this.isAbstractClass()) {
      const r = this.startNode();
      return this.next(), r.abstract = !0, this.parseClass(r, !0, !0);
    }
    if (this.match(129)) {
      const r = this.tsParseInterfaceDeclaration(this.startNode());
      if (r)
        return r;
    }
    return super.parseExportDefaultExpression();
  }
  parseVarStatement(r, i, n = !1) {
    const {
      isAmbientContext: s
    } = this.state, a = super.parseVarStatement(r, i, n || s);
    if (!s)
      return a;
    for (const {
      id: o,
      init: l
    } of a.declarations)
      l && (i !== "const" || o.typeAnnotation ? this.raise(Gt.InitializerNotAllowedInAmbientContext, l) : sZe(l, this.hasPlugin("estree")) || this.raise(Gt.ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference, l));
    return a;
  }
  parseStatementContent(r, i) {
    if (this.match(75) && this.isLookaheadContextual("enum")) {
      const n = this.startNode();
      return this.expect(75), this.tsParseEnumDeclaration(n, {
        const: !0
      });
    }
    if (this.isContextual(126))
      return this.tsParseEnumDeclaration(this.startNode());
    if (this.isContextual(129)) {
      const n = this.tsParseInterfaceDeclaration(this.startNode());
      if (n)
        return n;
    }
    return super.parseStatementContent(r, i);
  }
  parseAccessModifier() {
    return this.tsParseModifier(["public", "protected", "private"]);
  }
  tsHasSomeModifiers(r, i) {
    return i.some((n) => dK(n) ? r.accessibility === n : !!r[n]);
  }
  tsIsStartOfStaticBlocks() {
    return this.isContextual(106) && this.lookaheadCharCode() === 123;
  }
  parseClassMember(r, i, n) {
    const s = ["declare", "private", "public", "protected", "override", "abstract", "readonly", "static"];
    this.tsParseModifiers({
      allowedModifiers: s,
      disallowedModifiers: ["in", "out"],
      stopOnStartOfClassStaticBlock: !0,
      errorTemplate: Gt.InvalidModifierOnTypeParameterPositions
    }, i);
    const a = () => {
      this.tsIsStartOfStaticBlocks() ? (this.next(), this.next(), this.tsHasSomeModifiers(i, s) && this.raise(Gt.StaticBlockCannotHaveModifier, this.state.curPosition()), super.parseClassStaticBlock(r, i)) : this.parseClassMemberWithIsStatic(r, i, n, !!i.static);
    };
    i.declare ? this.tsInAmbientContext(a) : a();
  }
  parseClassMemberWithIsStatic(r, i, n, s) {
    const a = this.tsTryParseIndexSignature(i);
    if (a) {
      r.body.push(a), i.abstract && this.raise(Gt.IndexSignatureHasAbstract, i), i.accessibility && this.raise(Gt.IndexSignatureHasAccessibility, i, {
        modifier: i.accessibility
      }), i.declare && this.raise(Gt.IndexSignatureHasDeclare, i), i.override && this.raise(Gt.IndexSignatureHasOverride, i);
      return;
    }
    !this.state.inAbstractClass && i.abstract && this.raise(Gt.NonAbstractClassHasAbstractMethod, i), i.override && (n.hadSuperClass || this.raise(Gt.OverrideNotInSubClass, i)), super.parseClassMemberWithIsStatic(r, i, n, s);
  }
  parsePostMemberNameModifiers(r) {
    this.eat(17) && (r.optional = !0), r.readonly && this.match(10) && this.raise(Gt.ClassMethodHasReadonly, r), r.declare && this.match(10) && this.raise(Gt.ClassMethodHasDeclare, r);
  }
  parseExpressionStatement(r, i, n) {
    return (i.type === "Identifier" ? this.tsParseExpressionStatement(r, i, n) : void 0) || super.parseExpressionStatement(r, i, n);
  }
  shouldParseExportDeclaration() {
    return this.tsIsDeclarationStart() ? !0 : super.shouldParseExportDeclaration();
  }
  parseConditional(r, i, n) {
    if (!this.state.maybeInArrowParameters || !this.match(17))
      return super.parseConditional(r, i, n);
    const s = this.tryParse(() => super.parseConditional(r, i));
    return s.node ? (s.error && (this.state = s.failState), s.node) : (s.error && super.setOptionalParametersError(n, s.error), r);
  }
  parseParenItem(r, i) {
    const n = super.parseParenItem(r, i);
    if (this.eat(17) && (n.optional = !0, this.resetEndLocation(r)), this.match(14)) {
      const s = this.startNodeAt(i);
      return s.expression = r, s.typeAnnotation = this.tsParseTypeAnnotation(), this.finishNode(s, "TSTypeCastExpression");
    }
    return r;
  }
  parseExportDeclaration(r) {
    if (!this.state.isAmbientContext && this.isContextual(125))
      return this.tsInAmbientContext(() => this.parseExportDeclaration(r));
    const i = this.state.startLoc, n = this.eatContextual(125);
    if (n && (this.isContextual(125) || !this.shouldParseExportDeclaration()))
      throw this.raise(Gt.ExpectedAmbientAfterExportDeclare, this.state.startLoc);
    const a = Si(this.state.type) && this.tsTryParseExportDeclaration() || super.parseExportDeclaration(r);
    return a ? ((a.type === "TSInterfaceDeclaration" || a.type === "TSTypeAliasDeclaration" || n) && (r.exportKind = "type"), n && (this.resetStartLocation(a, i), a.declare = !0), a) : null;
  }
  parseClassId(r, i, n, s) {
    if ((!i || n) && this.isContextual(113))
      return;
    super.parseClassId(r, i, n, r.declare ? 1024 : 8331);
    const a = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);
    a && (r.typeParameters = a);
  }
  parseClassPropertyAnnotation(r) {
    r.optional || (this.eat(35) ? r.definite = !0 : this.eat(17) && (r.optional = !0));
    const i = this.tsTryParseTypeAnnotation();
    i && (r.typeAnnotation = i);
  }
  parseClassProperty(r) {
    if (this.parseClassPropertyAnnotation(r), this.state.isAmbientContext && !(r.readonly && !r.typeAnnotation) && this.match(29) && this.raise(Gt.DeclareClassFieldHasInitializer, this.state.startLoc), r.abstract && this.match(29)) {
      const {
        key: i
      } = r;
      this.raise(Gt.AbstractPropertyHasInitializer, this.state.startLoc, {
        propertyName: i.type === "Identifier" && !r.computed ? i.name : "[".concat(this.input.slice(i.start, i.end), "]")
      });
    }
    return super.parseClassProperty(r);
  }
  parseClassPrivateProperty(r) {
    return r.abstract && this.raise(Gt.PrivateElementHasAbstract, r), r.accessibility && this.raise(Gt.PrivateElementHasAccessibility, r, {
      modifier: r.accessibility
    }), this.parseClassPropertyAnnotation(r), super.parseClassPrivateProperty(r);
  }
  parseClassAccessorProperty(r) {
    return this.parseClassPropertyAnnotation(r), r.optional && this.raise(Gt.AccessorCannotBeOptional, r), super.parseClassAccessorProperty(r);
  }
  pushClassMethod(r, i, n, s, a, o) {
    const l = this.tsTryParseTypeParameters(this.tsParseConstModifier);
    l && a && this.raise(Gt.ConstructorHasTypeParameters, l);
    const {
      declare: u = !1,
      kind: c
    } = i;
    u && (c === "get" || c === "set") && this.raise(Gt.DeclareAccessor, i, {
      kind: c
    }), l && (i.typeParameters = l), super.pushClassMethod(r, i, n, s, a, o);
  }
  pushClassPrivateMethod(r, i, n, s) {
    const a = this.tsTryParseTypeParameters(this.tsParseConstModifier);
    a && (i.typeParameters = a), super.pushClassPrivateMethod(r, i, n, s);
  }
  declareClassPrivateMethodInScope(r, i) {
    r.type !== "TSDeclareMethod" && (r.type === "MethodDefinition" && !hasOwnProperty.call(r.value, "body") || super.declareClassPrivateMethodInScope(r, i));
  }
  parseClassSuper(r) {
    super.parseClassSuper(r), r.superClass && (this.match(47) || this.match(51)) && (r.superTypeParameters = this.tsParseTypeArgumentsInExpression()), this.eatContextual(113) && (r.implements = this.tsParseHeritageClause("implements"));
  }
  parseObjPropValue(r, i, n, s, a, o, l) {
    const u = this.tsTryParseTypeParameters(this.tsParseConstModifier);
    return u && (r.typeParameters = u), super.parseObjPropValue(r, i, n, s, a, o, l);
  }
  parseFunctionParams(r, i) {
    const n = this.tsTryParseTypeParameters(this.tsParseConstModifier);
    n && (r.typeParameters = n), super.parseFunctionParams(r, i);
  }
  parseVarId(r, i) {
    super.parseVarId(r, i), r.id.type === "Identifier" && !this.hasPrecedingLineBreak() && this.eat(35) && (r.definite = !0);
    const n = this.tsTryParseTypeAnnotation();
    n && (r.id.typeAnnotation = n, this.resetEndLocation(r.id));
  }
  parseAsyncArrowFromCallExpression(r, i) {
    return this.match(14) && (r.returnType = this.tsParseTypeAnnotation()), super.parseAsyncArrowFromCallExpression(r, i);
  }
  parseMaybeAssign(r, i) {
    var n, s, a, o, l;
    let u, c, f;
    if (this.hasPlugin("jsx") && (this.match(142) || this.match(47))) {
      if (u = this.state.clone(), c = this.tryParse(() => super.parseMaybeAssign(r, i), u), !c.error)
        return c.node;
      const {
        context: g
      } = this.state, y = g[g.length - 1];
      (y === Ri.j_oTag || y === Ri.j_expr) && g.pop();
    }
    if (!((n = c) != null && n.error) && !this.match(47))
      return super.parseMaybeAssign(r, i);
    (!u || u === this.state) && (u = this.state.clone());
    let h;
    const m = this.tryParse((g) => {
      var y, v;
      h = this.tsParseTypeParameters(this.tsParseConstModifier);
      const T = super.parseMaybeAssign(r, i);
      return (T.type !== "ArrowFunctionExpression" || (y = T.extra) != null && y.parenthesized) && g(), ((v = h) == null ? void 0 : v.params.length) !== 0 && this.resetStartLocationFromNode(T, h), T.typeParameters = h, T;
    }, u);
    if (!m.error && !m.aborted)
      return h && this.reportReservedArrowTypeParam(h), m.node;
    if (!c && (hK(!this.hasPlugin("jsx")), f = this.tryParse(() => super.parseMaybeAssign(r, i), u), !f.error))
      return f.node;
    if ((s = c) != null && s.node)
      return this.state = c.failState, c.node;
    if (m.node)
      return this.state = m.failState, h && this.reportReservedArrowTypeParam(h), m.node;
    if ((a = f) != null && a.node)
      return this.state = f.failState, f.node;
    throw ((o = c) == null ? void 0 : o.error) || m.error || ((l = f) == null ? void 0 : l.error);
  }
  reportReservedArrowTypeParam(r) {
    var i;
    r.params.length === 1 && !r.params[0].constraint && !((i = r.extra) != null && i.trailingComma) && this.getPluginOption("typescript", "disallowAmbiguousJSXLike") && this.raise(Gt.ReservedArrowTypeParam, r);
  }
  parseMaybeUnary(r, i) {
    return !this.hasPlugin("jsx") && this.match(47) ? this.tsParseTypeAssertion() : super.parseMaybeUnary(r, i);
  }
  parseArrow(r) {
    if (this.match(14)) {
      const i = this.tryParse((n) => {
        const s = this.tsParseTypeOrTypePredicateAnnotation(14);
        return (this.canInsertSemicolon() || !this.match(19)) && n(), s;
      });
      if (i.aborted)
        return;
      i.thrown || (i.error && (this.state = i.failState), r.returnType = i.node);
    }
    return super.parseArrow(r);
  }
  parseAssignableListItemTypes(r, i) {
    if (!(i & 2))
      return r;
    this.eat(17) && (r.optional = !0);
    const n = this.tsTryParseTypeAnnotation();
    return n && (r.typeAnnotation = n), this.resetEndLocation(r), r;
  }
  isAssignable(r, i) {
    switch (r.type) {
      case "TSTypeCastExpression":
        return this.isAssignable(r.expression, i);
      case "TSParameterProperty":
        return !0;
      default:
        return super.isAssignable(r, i);
    }
  }
  toAssignable(r, i = !1) {
    switch (r.type) {
      case "ParenthesizedExpression":
        this.toAssignableParenthesizedExpression(r, i);
        break;
      case "TSAsExpression":
      case "TSSatisfiesExpression":
      case "TSNonNullExpression":
      case "TSTypeAssertion":
        i ? this.expressionScope.recordArrowParameterBindingError(Gt.UnexpectedTypeCastInParameter, r) : this.raise(Gt.UnexpectedTypeCastInParameter, r), this.toAssignable(r.expression, i);
        break;
      case "AssignmentExpression":
        !i && r.left.type === "TSTypeCastExpression" && (r.left = this.typeCastToParameter(r.left));
      default:
        super.toAssignable(r, i);
    }
  }
  toAssignableParenthesizedExpression(r, i) {
    switch (r.expression.type) {
      case "TSAsExpression":
      case "TSSatisfiesExpression":
      case "TSNonNullExpression":
      case "TSTypeAssertion":
      case "ParenthesizedExpression":
        this.toAssignable(r.expression, i);
        break;
      default:
        super.toAssignable(r, i);
    }
  }
  checkToRestConversion(r, i) {
    switch (r.type) {
      case "TSAsExpression":
      case "TSSatisfiesExpression":
      case "TSTypeAssertion":
      case "TSNonNullExpression":
        this.checkToRestConversion(r.expression, !1);
        break;
      default:
        super.checkToRestConversion(r, i);
    }
  }
  isValidLVal(r, i, n) {
    return ZQe({
      TSTypeCastExpression: !0,
      TSParameterProperty: "parameter",
      TSNonNullExpression: "expression",
      TSInstantiationExpression: "expression",
      TSAsExpression: (n !== 64 || !i) && ["expression", !0],
      TSSatisfiesExpression: (n !== 64 || !i) && ["expression", !0],
      TSTypeAssertion: (n !== 64 || !i) && ["expression", !0]
    }, r) || super.isValidLVal(r, i, n);
  }
  parseBindingAtom() {
    return this.state.type === 78 ? this.parseIdentifier(!0) : super.parseBindingAtom();
  }
  parseMaybeDecoratorArguments(r) {
    if (this.match(47) || this.match(51)) {
      const i = this.tsParseTypeArgumentsInExpression();
      if (this.match(10)) {
        const n = super.parseMaybeDecoratorArguments(r);
        return n.typeParameters = i, n;
      }
      this.unexpected(null, 10);
    }
    return super.parseMaybeDecoratorArguments(r);
  }
  checkCommaAfterRest(r) {
    return this.state.isAmbientContext && this.match(12) && this.lookaheadCharCode() === r ? (this.next(), !1) : super.checkCommaAfterRest(r);
  }
  isClassMethod() {
    return this.match(47) || super.isClassMethod();
  }
  isClassProperty() {
    return this.match(35) || this.match(14) || super.isClassProperty();
  }
  parseMaybeDefault(r, i) {
    const n = super.parseMaybeDefault(r, i);
    return n.type === "AssignmentPattern" && n.typeAnnotation && n.right.start < n.typeAnnotation.start && this.raise(Gt.TypeAnnotationAfterAssign, n.typeAnnotation), n;
  }
  getTokenFromCode(r) {
    if (this.state.inType) {
      if (r === 62) {
        this.finishOp(48, 1);
        return;
      }
      if (r === 60) {
        this.finishOp(47, 1);
        return;
      }
    }
    super.getTokenFromCode(r);
  }
  reScan_lt_gt() {
    const {
      type: r
    } = this.state;
    r === 47 ? (this.state.pos -= 1, this.readToken_lt()) : r === 48 && (this.state.pos -= 1, this.readToken_gt());
  }
  reScan_lt() {
    const {
      type: r
    } = this.state;
    return r === 51 ? (this.state.pos -= 2, this.finishOp(47, 1), 47) : r;
  }
  toAssignableList(r, i, n) {
    for (let s = 0; s < r.length; s++) {
      const a = r[s];
      (a == null ? void 0 : a.type) === "TSTypeCastExpression" && (r[s] = this.typeCastToParameter(a));
    }
    super.toAssignableList(r, i, n);
  }
  typeCastToParameter(r) {
    return r.expression.typeAnnotation = r.typeAnnotation, this.resetEndLocation(r.expression, r.typeAnnotation.loc.end), r.expression;
  }
  shouldParseArrow(r) {
    return this.match(14) ? r.every((i) => this.isAssignable(i, !0)) : super.shouldParseArrow(r);
  }
  shouldParseAsyncArrow() {
    return this.match(14) || super.shouldParseAsyncArrow();
  }
  canHaveLeadingDecorator() {
    return super.canHaveLeadingDecorator() || this.isAbstractClass();
  }
  jsxParseOpeningElementAfterName(r) {
    if (this.match(47) || this.match(51)) {
      const i = this.tsTryParseAndCatch(() => this.tsParseTypeArgumentsInExpression());
      i && (r.typeParameters = i);
    }
    return super.jsxParseOpeningElementAfterName(r);
  }
  getGetterSetterExpectedParamCount(r) {
    const i = super.getGetterSetterExpectedParamCount(r), s = this.getObjectOrClassMethodParams(r)[0];
    return s && this.isThisParam(s) ? i + 1 : i;
  }
  parseCatchClauseParam() {
    const r = super.parseCatchClauseParam(), i = this.tsTryParseTypeAnnotation();
    return i && (r.typeAnnotation = i, this.resetEndLocation(r)), r;
  }
  tsInAmbientContext(r) {
    const i = this.state.isAmbientContext;
    this.state.isAmbientContext = !0;
    try {
      return r();
    } finally {
      this.state.isAmbientContext = i;
    }
  }
  parseClass(r, i, n) {
    const s = this.state.inAbstractClass;
    this.state.inAbstractClass = !!r.abstract;
    try {
      return super.parseClass(r, i, n);
    } finally {
      this.state.inAbstractClass = s;
    }
  }
  tsParseAbstractDeclaration(r, i) {
    if (this.match(80))
      return r.abstract = !0, this.maybeTakeDecorators(i, this.parseClass(r, !0, !1));
    if (this.isContextual(129)) {
      if (!this.hasFollowingLineBreak())
        return r.abstract = !0, this.raise(Gt.NonClassMethodPropertyHasAbstractModifer, r), this.tsParseInterfaceDeclaration(r);
    } else
      this.unexpected(null, 80);
  }
  parseMethod(r, i, n, s, a, o, l) {
    const u = super.parseMethod(r, i, n, s, a, o, l);
    if (u.abstract && (this.hasPlugin("estree") ? !!u.value.body : !!u.body)) {
      const {
        key: f
      } = u;
      this.raise(Gt.AbstractMethodHasImplementation, u, {
        methodName: f.type === "Identifier" && !u.computed ? f.name : "[".concat(this.input.slice(f.start, f.end), "]")
      });
    }
    return u;
  }
  tsParseTypeParameterName() {
    return this.parseIdentifier().name;
  }
  shouldParseAsAmbientContext() {
    return !!this.getPluginOption("typescript", "dts");
  }
  parse() {
    return this.shouldParseAsAmbientContext() && (this.state.isAmbientContext = !0), super.parse();
  }
  getExpression() {
    return this.shouldParseAsAmbientContext() && (this.state.isAmbientContext = !0), super.getExpression();
  }
  parseExportSpecifier(r, i, n, s) {
    return !i && s ? (this.parseTypeOnlyImportExportSpecifier(r, !1, n), this.finishNode(r, "ExportSpecifier")) : (r.exportKind = "value", super.parseExportSpecifier(r, i, n, s));
  }
  parseImportSpecifier(r, i, n, s, a) {
    return !i && s ? (this.parseTypeOnlyImportExportSpecifier(r, !0, n), this.finishNode(r, "ImportSpecifier")) : (r.importKind = "value", super.parseImportSpecifier(r, i, n, s, n ? 4098 : 4096));
  }
  parseTypeOnlyImportExportSpecifier(r, i, n) {
    const s = i ? "imported" : "local", a = i ? "local" : "exported";
    let o = r[s], l, u = !1, c = !0;
    const f = o.loc.start;
    if (this.isContextual(93)) {
      const m = this.parseIdentifier();
      if (this.isContextual(93)) {
        const g = this.parseIdentifier();
        kc(this.state.type) ? (u = !0, o = m, l = i ? this.parseIdentifier() : this.parseModuleExportName(), c = !1) : (l = g, c = !1);
      } else
        kc(this.state.type) ? (c = !1, l = i ? this.parseIdentifier() : this.parseModuleExportName()) : (u = !0, o = m);
    } else
      kc(this.state.type) && (u = !0, i ? (o = this.parseIdentifier(!0), this.isContextual(93) || this.checkReservedWord(o.name, o.loc.start, !0, !0)) : o = this.parseModuleExportName());
    u && n && this.raise(i ? Gt.TypeModifierIsUsedInTypeImports : Gt.TypeModifierIsUsedInTypeExports, f), r[s] = o, r[a] = l;
    const h = i ? "importKind" : "exportKind";
    r[h] = u ? "type" : "value", c && this.eatContextual(93) && (r[a] = i ? this.parseIdentifier() : this.parseModuleExportName()), r[a] || (r[a] = vf(r[s])), i && this.checkIdentifier(r[a], u ? 4098 : 4096);
  }
};
function nZe(e) {
  if (e.type !== "MemberExpression")
    return !1;
  const {
    computed: t,
    property: r
  } = e;
  return t && r.type !== "StringLiteral" && (r.type !== "TemplateLiteral" || r.expressions.length > 0) ? !1 : Lfe(e.object);
}
function sZe(e, t) {
  var r;
  const {
    type: i
  } = e;
  if ((r = e.extra) != null && r.parenthesized)
    return !1;
  if (t) {
    if (i === "Literal") {
      const {
        value: n
      } = e;
      if (typeof n == "string" || typeof n == "boolean")
        return !0;
    }
  } else if (i === "StringLiteral" || i === "BooleanLiteral")
    return !0;
  return !!(Dfe(e, t) || aZe(e, t) || i === "TemplateLiteral" && e.expressions.length === 0 || nZe(e));
}
function Dfe(e, t) {
  return t ? e.type === "Literal" && (typeof e.value == "number" || "bigint" in e) : e.type === "NumericLiteral" || e.type === "BigIntLiteral";
}
function aZe(e, t) {
  if (e.type === "UnaryExpression") {
    const {
      operator: r,
      argument: i
    } = e;
    if (r === "-" && Dfe(i, t))
      return !0;
  }
  return !1;
}
function Lfe(e) {
  return e.type === "Identifier" ? !0 : e.type !== "MemberExpression" || e.computed ? !1 : Lfe(e.object);
}
var bne;
const mK = hf(bne || (bne = at(["placeholders"])))({
  ClassNameIsRequired: "A class name is required.",
  UnexpectedSpace: "Unexpected space in placeholder."
});
var oZe = (e) => class extends e {
  parsePlaceholder(r) {
    if (this.match(144)) {
      const i = this.startNode();
      return this.next(), this.assertNoSpace(), i.name = super.parseIdentifier(!0), this.assertNoSpace(), this.expect(144), this.finishPlaceholder(i, r);
    }
  }
  finishPlaceholder(r, i) {
    let n = r;
    return (!n.expectedNode || !n.type) && (n = this.finishNode(n, "Placeholder")), n.expectedNode = i, n;
  }
  getTokenFromCode(r) {
    r === 37 && this.input.charCodeAt(this.state.pos + 1) === 37 ? this.finishOp(144, 2) : super.getTokenFromCode(r);
  }
  parseExprAtom(r) {
    return this.parsePlaceholder("Expression") || super.parseExprAtom(r);
  }
  parseIdentifier(r) {
    return this.parsePlaceholder("Identifier") || super.parseIdentifier(r);
  }
  checkReservedWord(r, i, n, s) {
    r !== void 0 && super.checkReservedWord(r, i, n, s);
  }
  parseBindingAtom() {
    return this.parsePlaceholder("Pattern") || super.parseBindingAtom();
  }
  isValidLVal(r, i, n) {
    return r === "Placeholder" || super.isValidLVal(r, i, n);
  }
  toAssignable(r, i) {
    r && r.type === "Placeholder" && r.expectedNode === "Expression" ? r.expectedNode = "Pattern" : super.toAssignable(r, i);
  }
  chStartsBindingIdentifier(r, i) {
    return !!(super.chStartsBindingIdentifier(r, i) || this.lookahead().type === 144);
  }
  verifyBreakContinue(r, i) {
    r.label && r.label.type === "Placeholder" || super.verifyBreakContinue(r, i);
  }
  parseExpressionStatement(r, i) {
    var n;
    if (i.type !== "Placeholder" || (n = i.extra) != null && n.parenthesized)
      return super.parseExpressionStatement(r, i);
    if (this.match(14)) {
      const a = r;
      return a.label = this.finishPlaceholder(i, "Identifier"), this.next(), a.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration(), this.finishNode(a, "LabeledStatement");
    }
    this.semicolon();
    const s = r;
    return s.name = i.name, this.finishPlaceholder(s, "Statement");
  }
  parseBlock(r, i, n) {
    return this.parsePlaceholder("BlockStatement") || super.parseBlock(r, i, n);
  }
  parseFunctionId(r) {
    return this.parsePlaceholder("Identifier") || super.parseFunctionId(r);
  }
  parseClass(r, i, n) {
    const s = i ? "ClassDeclaration" : "ClassExpression";
    this.next();
    const a = this.state.strict, o = this.parsePlaceholder("Identifier");
    if (o)
      if (this.match(81) || this.match(144) || this.match(5))
        r.id = o;
      else {
        if (n || !i)
          return r.id = null, r.body = this.finishPlaceholder(o, "ClassBody"), this.finishNode(r, s);
        throw this.raise(mK.ClassNameIsRequired, this.state.startLoc);
      }
    else
      this.parseClassId(r, i, n);
    return super.parseClassSuper(r), r.body = this.parsePlaceholder("ClassBody") || super.parseClassBody(!!r.superClass, a), this.finishNode(r, s);
  }
  parseExport(r, i) {
    const n = this.parsePlaceholder("Identifier");
    if (!n)
      return super.parseExport(r, i);
    const s = r;
    if (!this.isContextual(98) && !this.match(12))
      return s.specifiers = [], s.source = null, s.declaration = this.finishPlaceholder(n, "Declaration"), this.finishNode(s, "ExportNamedDeclaration");
    this.expectPlugin("exportDefaultFrom");
    const a = this.startNode();
    return a.exported = n, s.specifiers = [this.finishNode(a, "ExportDefaultSpecifier")], super.parseExport(s, i);
  }
  isExportDefaultSpecifier() {
    if (this.match(65)) {
      const r = this.nextTokenStart();
      if (this.isUnparsedContextual(r, "from") && this.input.startsWith(kh(144), this.nextTokenStartSince(r + 4)))
        return !0;
    }
    return super.isExportDefaultSpecifier();
  }
  maybeParseExportDefaultSpecifier(r, i) {
    var n;
    return (n = r.specifiers) != null && n.length ? !0 : super.maybeParseExportDefaultSpecifier(r, i);
  }
  checkExport(r) {
    const {
      specifiers: i
    } = r;
    i != null && i.length && (r.specifiers = i.filter((n) => n.exported.type === "Placeholder")), super.checkExport(r), r.specifiers = i;
  }
  parseImport(r) {
    const i = this.parsePlaceholder("Identifier");
    if (!i)
      return super.parseImport(r);
    if (r.specifiers = [], !this.isContextual(98) && !this.match(12))
      return r.source = this.finishPlaceholder(i, "StringLiteral"), this.semicolon(), this.finishNode(r, "ImportDeclaration");
    const n = this.startNodeAtNode(i);
    return n.local = i, r.specifiers.push(this.finishNode(n, "ImportDefaultSpecifier")), this.eat(12) && (this.maybeParseStarImportSpecifier(r) || this.parseNamedImportSpecifiers(r)), this.expectContextual(98), r.source = this.parseImportSource(), this.semicolon(), this.finishNode(r, "ImportDeclaration");
  }
  parseImportSource() {
    return this.parsePlaceholder("StringLiteral") || super.parseImportSource();
  }
  assertNoSpace() {
    this.state.start > this.state.lastTokEndLoc.index && this.raise(mK.UnexpectedSpace, this.state.lastTokEndLoc);
  }
}, lZe = (e) => class extends e {
  parseV8Intrinsic() {
    if (this.match(54)) {
      const r = this.state.startLoc, i = this.startNode();
      if (this.next(), Si(this.state.type)) {
        const n = this.parseIdentifierName(), s = this.createIdentifier(i, n);
        if (s.type = "V8IntrinsicIdentifier", this.match(10))
          return s;
      }
      this.unexpected(r);
    }
  }
  parseExprAtom(r) {
    return this.parseV8Intrinsic() || super.parseExprAtom(r);
  }
};
function Fn(e, t) {
  const [r, i] = typeof t == "string" ? [t, {}] : t, n = Object.keys(i), s = n.length === 0;
  return e.some((a) => {
    if (typeof a == "string")
      return s && a === r;
    {
      const [o, l] = a;
      if (o !== r)
        return !1;
      for (const u of n)
        if (l[u] !== i[u])
          return !1;
      return !0;
    }
  });
}
function id(e, t, r) {
  const i = e.find((n) => Array.isArray(n) ? n[0] === t : n === t);
  return i && Array.isArray(i) && i.length > 1 ? i[1][r] : null;
}
const yK = ["minimal", "fsharp", "hack", "smart"], gK = ["^^", "@@", "^", "%", "#"];
function uZe(e) {
  if (Fn(e, "decorators")) {
    if (Fn(e, "decorators-legacy"))
      throw new Error("Cannot use the decorators and decorators-legacy plugin together");
    const t = id(e, "decorators", "decoratorsBeforeExport");
    if (t != null && typeof t != "boolean")
      throw new Error("'decoratorsBeforeExport' must be a boolean, if specified.");
    const r = id(e, "decorators", "allowCallParenthesized");
    if (r != null && typeof r != "boolean")
      throw new Error("'allowCallParenthesized' must be a boolean.");
  }
  if (Fn(e, "flow") && Fn(e, "typescript"))
    throw new Error("Cannot combine flow and typescript plugins.");
  if (Fn(e, "placeholders") && Fn(e, "v8intrinsic"))
    throw new Error("Cannot combine placeholders and v8intrinsic plugins.");
  if (Fn(e, "pipelineOperator")) {
    const t = id(e, "pipelineOperator", "proposal");
    if (!yK.includes(t)) {
      const n = yK.map((s) => '"'.concat(s, '"')).join(", ");
      throw new Error('"pipelineOperator" requires "proposal" option whose value must be one of: '.concat(n, "."));
    }
    const r = ["recordAndTuple", {
      syntaxType: "hash"
    }], i = Fn(e, r);
    if (t === "hack") {
      if (Fn(e, "placeholders"))
        throw new Error("Cannot combine placeholders plugin and Hack-style pipes.");
      if (Fn(e, "v8intrinsic"))
        throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes.");
      const n = id(e, "pipelineOperator", "topicToken");
      if (!gK.includes(n)) {
        const s = gK.map((a) => '"'.concat(a, '"')).join(", ");
        throw new Error('"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: '.concat(s, "."));
      }
      if (n === "#" && i)
        throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "hack", topicToken: "#" }]` and `'.concat(JSON.stringify(r), "`."));
    } else if (t === "smart" && i)
      throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "smart" }]` and `'.concat(JSON.stringify(r), "`."));
  }
  if (Fn(e, "moduleAttributes")) {
    if (Fn(e, "importAssertions") || Fn(e, "importAttributes"))
      throw new Error("Cannot combine importAssertions, importAttributes and moduleAttributes plugins.");
    if (id(e, "moduleAttributes", "version") !== "may-2020")
      throw new Error("The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is 'may-2020'.");
  }
  if (Fn(e, "importAssertions") && Fn(e, "importAttributes"))
    throw new Error("Cannot combine importAssertions and importAttributes plugins.");
  if (Fn(e, "recordAndTuple")) {
    const t = id(e, "recordAndTuple", "syntaxType");
    if (t != null) {
      const r = ["hash", "bar"];
      if (!r.includes(t))
        throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: " + r.map((i) => "'".concat(i, "'")).join(", "));
    }
  }
  if (Fn(e, "asyncDoExpressions") && !Fn(e, "doExpressions")) {
    const t = new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.");
    throw t.missingPlugins = "doExpressions", t;
  }
  if (Fn(e, "optionalChainingAssign") && id(e, "optionalChainingAssign", "version") !== "2023-07")
    throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is '2023-07'.");
}
const Mfe = {
  estree: YJe,
  jsx: GQe,
  flow: KQe,
  typescript: iZe,
  v8intrinsic: lZe,
  placeholders: oZe
}, cZe = Object.keys(Mfe), IM = {
  sourceType: "script",
  sourceFilename: void 0,
  startColumn: 0,
  startLine: 1,
  allowAwaitOutsideFunction: !1,
  allowReturnOutsideFunction: !1,
  allowNewTargetOutsideFunction: !1,
  allowImportExportEverywhere: !1,
  allowSuperOutsideMethod: !1,
  allowUndeclaredExports: !1,
  plugins: [],
  strictMode: null,
  ranges: !1,
  tokens: !1,
  createImportExpressions: !1,
  createParenthesizedExpressions: !1,
  errorRecovery: !1,
  attachComment: !0,
  annexB: !0
};
function pZe(e) {
  if (e == null)
    return Object.assign({}, IM);
  if (e.annexB != null && e.annexB !== !1)
    throw new Error("The `annexB` option can only be set to `false`.");
  const t = {};
  for (const i of Object.keys(IM)) {
    var r;
    t[i] = (r = e[i]) != null ? r : IM[i];
  }
  return t;
}
let fZe = class extends QQe {
  checkProto(t, r, i, n) {
    if (t.type === "SpreadElement" || this.isObjectMethod(t) || t.computed || t.shorthand)
      return;
    const s = t.key;
    if ((s.type === "Identifier" ? s.name : s.value) === "__proto__") {
      if (r) {
        this.raise(tt.RecordNoProto, s);
        return;
      }
      i.used && (n ? n.doubleProtoLoc === null && (n.doubleProtoLoc = s.loc.start) : this.raise(tt.DuplicateProto, s)), i.used = !0;
    }
  }
  shouldExitDescending(t, r) {
    return t.type === "ArrowFunctionExpression" && t.start === r;
  }
  getExpression() {
    this.enterInitialScopes(), this.nextToken();
    const t = this.parseExpression();
    return this.match(139) || this.unexpected(), this.finalizeRemainingComments(), t.comments = this.comments, t.errors = this.state.errors, this.options.tokens && (t.tokens = this.tokens), t;
  }
  parseExpression(t, r) {
    return t ? this.disallowInAnd(() => this.parseExpressionBase(r)) : this.allowInAnd(() => this.parseExpressionBase(r));
  }
  parseExpressionBase(t) {
    const r = this.state.startLoc, i = this.parseMaybeAssign(t);
    if (this.match(12)) {
      const n = this.startNodeAt(r);
      for (n.expressions = [i]; this.eat(12); )
        n.expressions.push(this.parseMaybeAssign(t));
      return this.toReferencedList(n.expressions), this.finishNode(n, "SequenceExpression");
    }
    return i;
  }
  parseMaybeAssignDisallowIn(t, r) {
    return this.disallowInAnd(() => this.parseMaybeAssign(t, r));
  }
  parseMaybeAssignAllowIn(t, r) {
    return this.allowInAnd(() => this.parseMaybeAssign(t, r));
  }
  setOptionalParametersError(t, r) {
    var i;
    t.optionalParametersLoc = (i = r == null ? void 0 : r.loc) != null ? i : this.state.startLoc;
  }
  parseMaybeAssign(t, r) {
    const i = this.state.startLoc;
    if (this.isContextual(108) && this.prodParam.hasYield) {
      let o = this.parseYield();
      return r && (o = r.call(this, o, i)), o;
    }
    let n;
    t ? n = !1 : (t = new mP(), n = !0);
    const {
      type: s
    } = this.state;
    (s === 10 || Si(s)) && (this.state.potentialArrowAt = this.state.start);
    let a = this.parseMaybeConditional(t);
    if (r && (a = r.call(this, a, i)), eQe(this.state.type)) {
      const o = this.startNodeAt(i), l = this.state.value;
      if (o.operator = l, this.match(29)) {
        this.toAssignable(a, !0), o.left = a;
        const u = i.index;
        t.doubleProtoLoc != null && t.doubleProtoLoc.index >= u && (t.doubleProtoLoc = null), t.shorthandAssignLoc != null && t.shorthandAssignLoc.index >= u && (t.shorthandAssignLoc = null), t.privateKeyLoc != null && t.privateKeyLoc.index >= u && (this.checkDestructuringPrivate(t), t.privateKeyLoc = null);
      } else
        o.left = a;
      return this.next(), o.right = this.parseMaybeAssign(), this.checkLVal(a, {
        in: this.finishNode(o, "AssignmentExpression")
      }), o;
    } else
      n && this.checkExpressionErrors(t, !0);
    return a;
  }
  parseMaybeConditional(t) {
    const r = this.state.startLoc, i = this.state.potentialArrowAt, n = this.parseExprOps(t);
    return this.shouldExitDescending(n, i) ? n : this.parseConditional(n, r, t);
  }
  parseConditional(t, r, i) {
    if (this.eat(17)) {
      const n = this.startNodeAt(r);
      return n.test = t, n.consequent = this.parseMaybeAssignAllowIn(), this.expect(14), n.alternate = this.parseMaybeAssign(), this.finishNode(n, "ConditionalExpression");
    }
    return t;
  }
  parseMaybeUnaryOrPrivate(t) {
    return this.match(138) ? this.parsePrivateName() : this.parseMaybeUnary(t);
  }
  parseExprOps(t) {
    const r = this.state.startLoc, i = this.state.potentialArrowAt, n = this.parseMaybeUnaryOrPrivate(t);
    return this.shouldExitDescending(n, i) ? n : this.parseExprOp(n, r, -1);
  }
  parseExprOp(t, r, i) {
    if (this.isPrivateName(t)) {
      const s = this.getPrivateNameSV(t);
      (i >= fP(58) || !this.prodParam.hasIn || !this.match(58)) && this.raise(tt.PrivateInExpectedIn, t, {
        identifierName: s
      }), this.classScope.usePrivateName(s, t.loc.start);
    }
    const n = this.state.type;
    if (rQe(n) && (this.prodParam.hasIn || !this.match(58))) {
      let s = fP(n);
      if (s > i) {
        if (n === 39) {
          if (this.expectPlugin("pipelineOperator"), this.state.inFSharpPipelineDirectBody)
            return t;
          this.checkPipelineAtInfixOperator(t, r);
        }
        const a = this.startNodeAt(r);
        a.left = t, a.operator = this.state.value;
        const o = n === 41 || n === 42, l = n === 40;
        if (l && (s = fP(42)), this.next(), n === 39 && this.hasPlugin(["pipelineOperator", {
          proposal: "minimal"
        }]) && this.state.type === 96 && this.prodParam.hasAwait)
          throw this.raise(tt.UnexpectedAwaitAfterPipelineBody, this.state.startLoc);
        a.right = this.parseExprOpRightExpr(n, s);
        const u = this.finishNode(a, o || l ? "LogicalExpression" : "BinaryExpression"), c = this.state.type;
        if (l && (c === 41 || c === 42) || o && c === 40)
          throw this.raise(tt.MixingCoalesceWithLogical, this.state.startLoc);
        return this.parseExprOp(u, r, i);
      }
    }
    return t;
  }
  parseExprOpRightExpr(t, r) {
    const i = this.state.startLoc;
    switch (t) {
      case 39:
        switch (this.getPluginOption("pipelineOperator", "proposal")) {
          case "hack":
            return this.withTopicBindingContext(() => this.parseHackPipeBody());
          case "smart":
            return this.withTopicBindingContext(() => {
              if (this.prodParam.hasYield && this.isContextual(108))
                throw this.raise(tt.PipeBodyIsTighter, this.state.startLoc);
              return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(t, r), i);
            });
          case "fsharp":
            return this.withSoloAwaitPermittingContext(() => this.parseFSharpPipelineBody(r));
        }
      default:
        return this.parseExprOpBaseRightExpr(t, r);
    }
  }
  parseExprOpBaseRightExpr(t, r) {
    const i = this.state.startLoc;
    return this.parseExprOp(this.parseMaybeUnaryOrPrivate(), i, oQe(t) ? r - 1 : r);
  }
  parseHackPipeBody() {
    var t;
    const {
      startLoc: r
    } = this.state, i = this.parseMaybeAssign();
    return VJe.has(i.type) && !((t = i.extra) != null && t.parenthesized) && this.raise(tt.PipeUnparenthesizedBody, r, {
      type: i.type
    }), this.topicReferenceWasUsedInCurrentContext() || this.raise(tt.PipeTopicUnused, r), i;
  }
  checkExponentialAfterUnary(t) {
    this.match(57) && this.raise(tt.UnexpectedTokenUnaryExponentiation, t.argument);
  }
  parseMaybeUnary(t, r) {
    const i = this.state.startLoc, n = this.isContextual(96);
    if (n && this.isAwaitAllowed()) {
      this.next();
      const l = this.parseAwait(i);
      return r || this.checkExponentialAfterUnary(l), l;
    }
    const s = this.match(34), a = this.startNode();
    if (nQe(this.state.type)) {
      a.operator = this.state.value, a.prefix = !0, this.match(72) && this.expectPlugin("throwExpressions");
      const l = this.match(89);
      if (this.next(), a.argument = this.parseMaybeUnary(null, !0), this.checkExpressionErrors(t, !0), this.state.strict && l) {
        const u = a.argument;
        u.type === "Identifier" ? this.raise(tt.StrictDelete, a) : this.hasPropertyAsPrivateName(u) && this.raise(tt.DeletePrivateField, a);
      }
      if (!s)
        return r || this.checkExponentialAfterUnary(a), this.finishNode(a, "UnaryExpression");
    }
    const o = this.parseUpdate(a, s, t);
    if (n) {
      const {
        type: l
      } = this.state;
      if ((this.hasPlugin("v8intrinsic") ? NF(l) : NF(l) && !this.match(54)) && !this.isAmbiguousAwait())
        return this.raiseOverwrite(tt.AwaitNotInAsyncContext, i), this.parseAwait(i);
    }
    return o;
  }
  parseUpdate(t, r, i) {
    if (r) {
      const a = t;
      return this.checkLVal(a.argument, {
        in: this.finishNode(a, "UpdateExpression")
      }), t;
    }
    const n = this.state.startLoc;
    let s = this.parseExprSubscripts(i);
    if (this.checkExpressionErrors(i, !1))
      return s;
    for (; iQe(this.state.type) && !this.canInsertSemicolon(); ) {
      const a = this.startNodeAt(n);
      a.operator = this.state.value, a.prefix = !1, a.argument = s, this.next(), this.checkLVal(s, {
        in: s = this.finishNode(a, "UpdateExpression")
      });
    }
    return s;
  }
  parseExprSubscripts(t) {
    const r = this.state.startLoc, i = this.state.potentialArrowAt, n = this.parseExprAtom(t);
    return this.shouldExitDescending(n, i) ? n : this.parseSubscripts(n, r);
  }
  parseSubscripts(t, r, i) {
    const n = {
      optionalChainMember: !1,
      maybeAsyncArrow: this.atPossibleAsyncArrow(t),
      stop: !1
    };
    do
      t = this.parseSubscript(t, r, i, n), n.maybeAsyncArrow = !1;
    while (!n.stop);
    return t;
  }
  parseSubscript(t, r, i, n) {
    const {
      type: s
    } = this.state;
    if (!i && s === 15)
      return this.parseBind(t, r, i, n);
    if (Mw(s))
      return this.parseTaggedTemplateExpression(t, r, n);
    let a = !1;
    if (s === 18) {
      if (i && (this.raise(tt.OptionalChainingNoNew, this.state.startLoc), this.lookaheadCharCode() === 40))
        return n.stop = !0, t;
      n.optionalChainMember = a = !0, this.next();
    }
    if (!i && this.match(10))
      return this.parseCoverCallAndAsyncArrowHead(t, r, n, a);
    {
      const o = this.eat(0);
      return o || a || this.eat(16) ? this.parseMember(t, r, n, o, a) : (n.stop = !0, t);
    }
  }
  parseMember(t, r, i, n, s) {
    const a = this.startNodeAt(r);
    return a.object = t, a.computed = n, n ? (a.property = this.parseExpression(), this.expect(3)) : this.match(138) ? (t.type === "Super" && this.raise(tt.SuperPrivateField, r), this.classScope.usePrivateName(this.state.value, this.state.startLoc), a.property = this.parsePrivateName()) : a.property = this.parseIdentifier(!0), i.optionalChainMember ? (a.optional = s, this.finishNode(a, "OptionalMemberExpression")) : this.finishNode(a, "MemberExpression");
  }
  parseBind(t, r, i, n) {
    const s = this.startNodeAt(r);
    return s.object = t, this.next(), s.callee = this.parseNoCallExpr(), n.stop = !0, this.parseSubscripts(this.finishNode(s, "BindExpression"), r, i);
  }
  parseCoverCallAndAsyncArrowHead(t, r, i, n) {
    const s = this.state.maybeInArrowParameters;
    let a = null;
    this.state.maybeInArrowParameters = !0, this.next();
    const o = this.startNodeAt(r);
    o.callee = t;
    const {
      maybeAsyncArrow: l,
      optionalChainMember: u
    } = i;
    l && (this.expressionScope.enter(MQe()), a = new mP()), u && (o.optional = n), n ? o.arguments = this.parseCallExpressionArguments(11) : o.arguments = this.parseCallExpressionArguments(11, t.type === "Import", t.type !== "Super", o, a);
    let c = this.finishCallExpression(o, u);
    return l && this.shouldParseAsyncArrow() && !n ? (i.stop = !0, this.checkDestructuringPrivate(a), this.expressionScope.validateAsPattern(), this.expressionScope.exit(), c = this.parseAsyncArrowFromCallExpression(this.startNodeAt(r), c)) : (l && (this.checkExpressionErrors(a, !0), this.expressionScope.exit()), this.toReferencedArguments(c)), this.state.maybeInArrowParameters = s, c;
  }
  toReferencedArguments(t, r) {
    this.toReferencedListDeep(t.arguments, r);
  }
  parseTaggedTemplateExpression(t, r, i) {
    const n = this.startNodeAt(r);
    return n.tag = t, n.quasi = this.parseTemplate(!0), i.optionalChainMember && this.raise(tt.OptionalChainingNoTemplate, r), this.finishNode(n, "TaggedTemplateExpression");
  }
  atPossibleAsyncArrow(t) {
    return t.type === "Identifier" && t.name === "async" && this.state.lastTokEndLoc.index === t.end && !this.canInsertSemicolon() && t.end - t.start === 5 && t.start === this.state.potentialArrowAt;
  }
  expectImportAttributesPlugin() {
    this.hasPlugin("importAssertions") || this.expectPlugin("importAttributes");
  }
  finishCallExpression(t, r) {
    if (t.callee.type === "Import")
      if (t.arguments.length === 2 && (this.hasPlugin("moduleAttributes") || this.expectImportAttributesPlugin()), t.arguments.length === 0 || t.arguments.length > 2)
        this.raise(tt.ImportCallArity, t, {
          maxArgumentCount: this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions") || this.hasPlugin("moduleAttributes") ? 2 : 1
        });
      else
        for (const i of t.arguments)
          i.type === "SpreadElement" && this.raise(tt.ImportCallSpreadArgument, i);
    return this.finishNode(t, r ? "OptionalCallExpression" : "CallExpression");
  }
  parseCallExpressionArguments(t, r, i, n, s) {
    const a = [];
    let o = !0;
    const l = this.state.inFSharpPipelineDirectBody;
    for (this.state.inFSharpPipelineDirectBody = !1; !this.eat(t); ) {
      if (o)
        o = !1;
      else if (this.expect(12), this.match(t)) {
        r && !this.hasPlugin("importAttributes") && !this.hasPlugin("importAssertions") && !this.hasPlugin("moduleAttributes") && this.raise(tt.ImportCallArgumentTrailingComma, this.state.lastTokStartLoc), n && this.addTrailingCommaExtraToNode(n), this.next();
        break;
      }
      a.push(this.parseExprListItem(!1, s, i));
    }
    return this.state.inFSharpPipelineDirectBody = l, a;
  }
  shouldParseAsyncArrow() {
    return this.match(19) && !this.canInsertSemicolon();
  }
  parseAsyncArrowFromCallExpression(t, r) {
    var i;
    return this.resetPreviousNodeTrailingComments(r), this.expect(19), this.parseArrowExpression(t, r.arguments, !0, (i = r.extra) == null ? void 0 : i.trailingCommaLoc), r.innerComments && Xv(t, r.innerComments), r.callee.trailingComments && Xv(t, r.callee.trailingComments), t;
  }
  parseNoCallExpr() {
    const t = this.state.startLoc;
    return this.parseSubscripts(this.parseExprAtom(), t, !0);
  }
  parseExprAtom(t) {
    let r, i = null;
    const {
      type: n
    } = this.state;
    switch (n) {
      case 79:
        return this.parseSuper();
      case 83:
        return r = this.startNode(), this.next(), this.match(16) ? this.parseImportMetaProperty(r) : this.match(10) ? this.options.createImportExpressions ? this.parseImportCall(r) : this.finishNode(r, "Import") : (this.raise(tt.UnsupportedImport, this.state.lastTokStartLoc), this.finishNode(r, "Import"));
      case 78:
        return r = this.startNode(), this.next(), this.finishNode(r, "ThisExpression");
      case 90:
        return this.parseDo(this.startNode(), !1);
      case 56:
      case 31:
        return this.readRegexp(), this.parseRegExpLiteral(this.state.value);
      case 134:
        return this.parseNumericLiteral(this.state.value);
      case 135:
        return this.parseBigIntLiteral(this.state.value);
      case 136:
        return this.parseDecimalLiteral(this.state.value);
      case 133:
        return this.parseStringLiteral(this.state.value);
      case 84:
        return this.parseNullLiteral();
      case 85:
        return this.parseBooleanLiteral(!0);
      case 86:
        return this.parseBooleanLiteral(!1);
      case 10: {
        const s = this.state.potentialArrowAt === this.state.start;
        return this.parseParenAndDistinguishExpression(s);
      }
      case 2:
      case 1:
        return this.parseArrayLike(this.state.type === 2 ? 4 : 3, !1, !0);
      case 0:
        return this.parseArrayLike(3, !0, !1, t);
      case 6:
      case 7:
        return this.parseObjectLike(this.state.type === 6 ? 9 : 8, !1, !0);
      case 5:
        return this.parseObjectLike(8, !1, !1, t);
      case 68:
        return this.parseFunctionOrFunctionSent();
      case 26:
        i = this.parseDecorators();
      case 80:
        return this.parseClass(this.maybeTakeDecorators(i, this.startNode()), !1);
      case 77:
        return this.parseNewOrNewTarget();
      case 25:
      case 24:
        return this.parseTemplate(!1);
      case 15: {
        r = this.startNode(), this.next(), r.object = null;
        const s = r.callee = this.parseNoCallExpr();
        if (s.type === "MemberExpression")
          return this.finishNode(r, "BindExpression");
        throw this.raise(tt.UnsupportedBind, s);
      }
      case 138:
        return this.raise(tt.PrivateInExpectedIn, this.state.startLoc, {
          identifierName: this.state.value
        }), this.parsePrivateName();
      case 33:
        return this.parseTopicReferenceThenEqualsSign(54, "%");
      case 32:
        return this.parseTopicReferenceThenEqualsSign(44, "^");
      case 37:
      case 38:
        return this.parseTopicReference("hack");
      case 44:
      case 54:
      case 27: {
        const s = this.getPluginOption("pipelineOperator", "proposal");
        if (s)
          return this.parseTopicReference(s);
        this.unexpected();
        break;
      }
      case 47: {
        const s = this.input.codePointAt(this.nextTokenStart());
        nf(s) || s === 62 ? this.expectOnePlugin(["jsx", "flow", "typescript"]) : this.unexpected();
        break;
      }
      default:
        if (Si(n)) {
          if (this.isContextual(127) && this.lookaheadInLineCharCode() === 123)
            return this.parseModuleExpression();
          const s = this.state.potentialArrowAt === this.state.start, a = this.state.containsEsc, o = this.parseIdentifier();
          if (!a && o.name === "async" && !this.canInsertSemicolon()) {
            const {
              type: l
            } = this.state;
            if (l === 68)
              return this.resetPreviousNodeTrailingComments(o), this.next(), this.parseAsyncFunctionExpression(this.startNodeAtNode(o));
            if (Si(l))
              return this.lookaheadCharCode() === 61 ? this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(o)) : o;
            if (l === 90)
              return this.resetPreviousNodeTrailingComments(o), this.parseDo(this.startNodeAtNode(o), !0);
          }
          return s && this.match(19) && !this.canInsertSemicolon() ? (this.next(), this.parseArrowExpression(this.startNodeAtNode(o), [o], !1)) : o;
        } else
          this.unexpected();
    }
  }
  parseTopicReferenceThenEqualsSign(t, r) {
    const i = this.getPluginOption("pipelineOperator", "proposal");
    if (i)
      return this.state.type = t, this.state.value = r, this.state.pos--, this.state.end--, this.state.endLoc = la(this.state.endLoc, -1), this.parseTopicReference(i);
    this.unexpected();
  }
  parseTopicReference(t) {
    const r = this.startNode(), i = this.state.startLoc, n = this.state.type;
    return this.next(), this.finishTopicReference(r, i, t, n);
  }
  finishTopicReference(t, r, i, n) {
    if (this.testTopicReferenceConfiguration(i, r, n)) {
      const s = i === "smart" ? "PipelinePrimaryTopicReference" : "TopicReference";
      return this.topicReferenceIsAllowedInCurrentContext() || this.raise(i === "smart" ? tt.PrimaryTopicNotAllowed : tt.PipeTopicUnbound, r), this.registerTopicReference(), this.finishNode(t, s);
    } else
      throw this.raise(tt.PipeTopicUnconfiguredToken, r, {
        token: kh(n)
      });
  }
  testTopicReferenceConfiguration(t, r, i) {
    switch (t) {
      case "hack":
        return this.hasPlugin(["pipelineOperator", {
          topicToken: kh(i)
        }]);
      case "smart":
        return i === 27;
      default:
        throw this.raise(tt.PipeTopicRequiresHackPipes, r);
    }
  }
  parseAsyncArrowUnaryFunction(t) {
    this.prodParam.enter(dP(!0, this.prodParam.hasYield));
    const r = [this.parseIdentifier()];
    return this.prodParam.exit(), this.hasPrecedingLineBreak() && this.raise(tt.LineTerminatorBeforeArrow, this.state.curPosition()), this.expect(19), this.parseArrowExpression(t, r, !0);
  }
  parseDo(t, r) {
    this.expectPlugin("doExpressions"), r && this.expectPlugin("asyncDoExpressions"), t.async = r, this.next();
    const i = this.state.labels;
    return this.state.labels = [], r ? (this.prodParam.enter(2), t.body = this.parseBlock(), this.prodParam.exit()) : t.body = this.parseBlock(), this.state.labels = i, this.finishNode(t, "DoExpression");
  }
  parseSuper() {
    const t = this.startNode();
    return this.next(), this.match(10) && !this.scope.allowDirectSuper && !this.options.allowSuperOutsideMethod ? this.raise(tt.SuperNotAllowed, t) : !this.scope.allowSuper && !this.options.allowSuperOutsideMethod && this.raise(tt.UnexpectedSuper, t), !this.match(10) && !this.match(0) && !this.match(16) && this.raise(tt.UnsupportedSuper, t), this.finishNode(t, "Super");
  }
  parsePrivateName() {
    const t = this.startNode(), r = this.startNodeAt(la(this.state.startLoc, 1)), i = this.state.value;
    return this.next(), t.id = this.createIdentifier(r, i), this.finishNode(t, "PrivateName");
  }
  parseFunctionOrFunctionSent() {
    const t = this.startNode();
    if (this.next(), this.prodParam.hasYield && this.match(16)) {
      const r = this.createIdentifier(this.startNodeAtNode(t), "function");
      return this.next(), this.match(103) ? this.expectPlugin("functionSent") : this.hasPlugin("functionSent") || this.unexpected(), this.parseMetaProperty(t, r, "sent");
    }
    return this.parseFunction(t);
  }
  parseMetaProperty(t, r, i) {
    t.meta = r;
    const n = this.state.containsEsc;
    return t.property = this.parseIdentifier(!0), (t.property.name !== i || n) && this.raise(tt.UnsupportedMetaProperty, t.property, {
      target: r.name,
      onlyValidPropertyName: i
    }), this.finishNode(t, "MetaProperty");
  }
  parseImportMetaProperty(t) {
    const r = this.createIdentifier(this.startNodeAtNode(t), "import");
    if (this.next(), this.isContextual(101))
      this.inModule || this.raise(tt.ImportMetaOutsideModule, r), this.sawUnambiguousESM = !0;
    else if (this.isContextual(105) || this.isContextual(97)) {
      const i = this.isContextual(105);
      if (i || this.unexpected(), this.expectPlugin(i ? "sourcePhaseImports" : "deferredImportEvaluation"), !this.options.createImportExpressions)
        throw this.raise(tt.DynamicImportPhaseRequiresImportExpressions, this.state.startLoc, {
          phase: this.state.value
        });
      return this.next(), t.phase = i ? "source" : "defer", this.parseImportCall(t);
    }
    return this.parseMetaProperty(t, r, "meta");
  }
  parseLiteralAtNode(t, r, i) {
    return this.addExtra(i, "rawValue", t), this.addExtra(i, "raw", this.input.slice(i.start, this.state.end)), i.value = t, this.next(), this.finishNode(i, r);
  }
  parseLiteral(t, r) {
    const i = this.startNode();
    return this.parseLiteralAtNode(t, r, i);
  }
  parseStringLiteral(t) {
    return this.parseLiteral(t, "StringLiteral");
  }
  parseNumericLiteral(t) {
    return this.parseLiteral(t, "NumericLiteral");
  }
  parseBigIntLiteral(t) {
    return this.parseLiteral(t, "BigIntLiteral");
  }
  parseDecimalLiteral(t) {
    return this.parseLiteral(t, "DecimalLiteral");
  }
  parseRegExpLiteral(t) {
    const r = this.parseLiteral(t.value, "RegExpLiteral");
    return r.pattern = t.pattern, r.flags = t.flags, r;
  }
  parseBooleanLiteral(t) {
    const r = this.startNode();
    return r.value = t, this.next(), this.finishNode(r, "BooleanLiteral");
  }
  parseNullLiteral() {
    const t = this.startNode();
    return this.next(), this.finishNode(t, "NullLiteral");
  }
  parseParenAndDistinguishExpression(t) {
    const r = this.state.startLoc;
    let i;
    this.next(), this.expressionScope.enter(LQe());
    const n = this.state.maybeInArrowParameters, s = this.state.inFSharpPipelineDirectBody;
    this.state.maybeInArrowParameters = !0, this.state.inFSharpPipelineDirectBody = !1;
    const a = this.state.startLoc, o = [], l = new mP();
    let u = !0, c, f;
    for (; !this.match(11); ) {
      if (u)
        u = !1;
      else if (this.expect(12, l.optionalParametersLoc === null ? null : l.optionalParametersLoc), this.match(11)) {
        f = this.state.startLoc;
        break;
      }
      if (this.match(21)) {
        const g = this.state.startLoc;
        if (c = this.state.startLoc, o.push(this.parseParenItem(this.parseRestBinding(), g)), !this.checkCommaAfterRest(41))
          break;
      } else
        o.push(this.parseMaybeAssignAllowIn(l, this.parseParenItem));
    }
    const h = this.state.lastTokEndLoc;
    this.expect(11), this.state.maybeInArrowParameters = n, this.state.inFSharpPipelineDirectBody = s;
    let m = this.startNodeAt(r);
    return t && this.shouldParseArrow(o) && (m = this.parseArrow(m)) ? (this.checkDestructuringPrivate(l), this.expressionScope.validateAsPattern(), this.expressionScope.exit(), this.parseArrowExpression(m, o, !1), m) : (this.expressionScope.exit(), o.length || this.unexpected(this.state.lastTokStartLoc), f && this.unexpected(f), c && this.unexpected(c), this.checkExpressionErrors(l, !0), this.toReferencedListDeep(o, !0), o.length > 1 ? (i = this.startNodeAt(a), i.expressions = o, this.finishNode(i, "SequenceExpression"), this.resetEndLocation(i, h)) : i = o[0], this.wrapParenthesis(r, i));
  }
  wrapParenthesis(t, r) {
    if (!this.options.createParenthesizedExpressions)
      return this.addExtra(r, "parenthesized", !0), this.addExtra(r, "parenStart", t.index), this.takeSurroundingComments(r, t.index, this.state.lastTokEndLoc.index), r;
    const i = this.startNodeAt(t);
    return i.expression = r, this.finishNode(i, "ParenthesizedExpression");
  }
  shouldParseArrow(t) {
    return !this.canInsertSemicolon();
  }
  parseArrow(t) {
    if (this.eat(19))
      return t;
  }
  parseParenItem(t, r) {
    return t;
  }
  parseNewOrNewTarget() {
    const t = this.startNode();
    if (this.next(), this.match(16)) {
      const r = this.createIdentifier(this.startNodeAtNode(t), "new");
      this.next();
      const i = this.parseMetaProperty(t, r, "target");
      return !this.scope.inNonArrowFunction && !this.scope.inClass && !this.options.allowNewTargetOutsideFunction && this.raise(tt.UnexpectedNewTarget, i), i;
    }
    return this.parseNew(t);
  }
  parseNew(t) {
    if (this.parseNewCallee(t), this.eat(10)) {
      const r = this.parseExprList(11);
      this.toReferencedList(r), t.arguments = r;
    } else
      t.arguments = [];
    return this.finishNode(t, "NewExpression");
  }
  parseNewCallee(t) {
    const r = this.match(83), i = this.parseNoCallExpr();
    t.callee = i, r && (i.type === "Import" || i.type === "ImportExpression") && this.raise(tt.ImportCallNotNewExpression, i);
  }
  parseTemplateElement(t) {
    const {
      start: r,
      startLoc: i,
      end: n,
      value: s
    } = this.state, a = r + 1, o = this.startNodeAt(la(i, 1));
    s === null && (t || this.raise(tt.InvalidEscapeSequenceTemplate, la(this.state.firstInvalidTemplateEscapePos, 1)));
    const l = this.match(24), u = l ? -1 : -2, c = n + u;
    o.value = {
      raw: this.input.slice(a, c).replace(/\r\n?/g, "\n"),
      cooked: s === null ? null : s.slice(1, u)
    }, o.tail = l, this.next();
    const f = this.finishNode(o, "TemplateElement");
    return this.resetEndLocation(f, la(this.state.lastTokEndLoc, u)), f;
  }
  parseTemplate(t) {
    const r = this.startNode();
    let i = this.parseTemplateElement(t);
    const n = [i], s = [];
    for (; !i.tail; )
      s.push(this.parseTemplateSubstitution()), this.readTemplateContinuation(), n.push(i = this.parseTemplateElement(t));
    return r.expressions = s, r.quasis = n, this.finishNode(r, "TemplateLiteral");
  }
  parseTemplateSubstitution() {
    return this.parseExpression();
  }
  parseObjectLike(t, r, i, n) {
    i && this.expectPlugin("recordAndTuple");
    const s = this.state.inFSharpPipelineDirectBody;
    this.state.inFSharpPipelineDirectBody = !1;
    const a = /* @__PURE__ */ Object.create(null);
    let o = !0;
    const l = this.startNode();
    for (l.properties = [], this.next(); !this.match(t); ) {
      if (o)
        o = !1;
      else if (this.expect(12), this.match(t)) {
        this.addTrailingCommaExtraToNode(l);
        break;
      }
      let c;
      r ? c = this.parseBindingProperty() : (c = this.parsePropertyDefinition(n), this.checkProto(c, i, a, n)), i && !this.isObjectProperty(c) && c.type !== "SpreadElement" && this.raise(tt.InvalidRecordProperty, c), c.shorthand && this.addExtra(c, "shorthand", !0), l.properties.push(c);
    }
    this.next(), this.state.inFSharpPipelineDirectBody = s;
    let u = "ObjectExpression";
    return r ? u = "ObjectPattern" : i && (u = "RecordExpression"), this.finishNode(l, u);
  }
  addTrailingCommaExtraToNode(t) {
    this.addExtra(t, "trailingComma", this.state.lastTokStartLoc.index), this.addExtra(t, "trailingCommaLoc", this.state.lastTokStartLoc, !1);
  }
  maybeAsyncOrAccessorProp(t) {
    return !t.computed && t.key.type === "Identifier" && (this.isLiteralPropertyName() || this.match(0) || this.match(55));
  }
  parsePropertyDefinition(t) {
    let r = [];
    if (this.match(26))
      for (this.hasPlugin("decorators") && this.raise(tt.UnsupportedPropertyDecorator, this.state.startLoc); this.match(26); )
        r.push(this.parseDecorator());
    const i = this.startNode();
    let n = !1, s = !1, a;
    if (this.match(21))
      return r.length && this.unexpected(), this.parseSpread();
    r.length && (i.decorators = r, r = []), i.method = !1, t && (a = this.state.startLoc);
    let o = this.eat(55);
    this.parsePropertyNamePrefixOperator(i);
    const l = this.state.containsEsc;
    if (this.parsePropertyName(i, t), !o && !l && this.maybeAsyncOrAccessorProp(i)) {
      const {
        key: u
      } = i, c = u.name;
      c === "async" && !this.hasPrecedingLineBreak() && (n = !0, this.resetPreviousNodeTrailingComments(u), o = this.eat(55), this.parsePropertyName(i)), (c === "get" || c === "set") && (s = !0, this.resetPreviousNodeTrailingComments(u), i.kind = c, this.match(55) && (o = !0, this.raise(tt.AccessorIsGenerator, this.state.curPosition(), {
        kind: c
      }), this.next()), this.parsePropertyName(i));
    }
    return this.parseObjPropValue(i, a, o, n, !1, s, t);
  }
  getGetterSetterExpectedParamCount(t) {
    return t.kind === "get" ? 0 : 1;
  }
  getObjectOrClassMethodParams(t) {
    return t.params;
  }
  checkGetterSetterParams(t) {
    var r;
    const i = this.getGetterSetterExpectedParamCount(t), n = this.getObjectOrClassMethodParams(t);
    n.length !== i && this.raise(t.kind === "get" ? tt.BadGetterArity : tt.BadSetterArity, t), t.kind === "set" && ((r = n[n.length - 1]) == null ? void 0 : r.type) === "RestElement" && this.raise(tt.BadSetterRestParameter, t);
  }
  parseObjectMethod(t, r, i, n, s) {
    if (s) {
      const a = this.parseMethod(t, r, !1, !1, !1, "ObjectMethod");
      return this.checkGetterSetterParams(a), a;
    }
    if (i || r || this.match(10))
      return n && this.unexpected(), t.kind = "method", t.method = !0, this.parseMethod(t, r, i, !1, !1, "ObjectMethod");
  }
  parseObjectProperty(t, r, i, n) {
    if (t.shorthand = !1, this.eat(14))
      return t.value = i ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowIn(n), this.finishNode(t, "ObjectProperty");
    if (!t.computed && t.key.type === "Identifier") {
      if (this.checkReservedWord(t.key.name, t.key.loc.start, !0, !1), i)
        t.value = this.parseMaybeDefault(r, vf(t.key));
      else if (this.match(29)) {
        const s = this.state.startLoc;
        n != null ? n.shorthandAssignLoc === null && (n.shorthandAssignLoc = s) : this.raise(tt.InvalidCoverInitializedName, s), t.value = this.parseMaybeDefault(r, vf(t.key));
      } else
        t.value = vf(t.key);
      return t.shorthand = !0, this.finishNode(t, "ObjectProperty");
    }
  }
  parseObjPropValue(t, r, i, n, s, a, o) {
    const l = this.parseObjectMethod(t, i, n, s, a) || this.parseObjectProperty(t, r, s, o);
    return l || this.unexpected(), l;
  }
  parsePropertyName(t, r) {
    if (this.eat(0))
      t.computed = !0, t.key = this.parseMaybeAssignAllowIn(), this.expect(3);
    else {
      const {
        type: i,
        value: n
      } = this.state;
      let s;
      if (kc(i))
        s = this.parseIdentifier(!0);
      else
        switch (i) {
          case 134:
            s = this.parseNumericLiteral(n);
            break;
          case 133:
            s = this.parseStringLiteral(n);
            break;
          case 135:
            s = this.parseBigIntLiteral(n);
            break;
          case 136:
            s = this.parseDecimalLiteral(n);
            break;
          case 138: {
            const a = this.state.startLoc;
            r != null ? r.privateKeyLoc === null && (r.privateKeyLoc = a) : this.raise(tt.UnexpectedPrivateField, a), s = this.parsePrivateName();
            break;
          }
          default:
            this.unexpected();
        }
      t.key = s, i !== 138 && (t.computed = !1);
    }
  }
  initFunction(t, r) {
    t.id = null, t.generator = !1, t.async = r;
  }
  parseMethod(t, r, i, n, s, a, o = !1) {
    this.initFunction(t, i), t.generator = r, this.scope.enter(18 | (o ? 64 : 0) | (s ? 32 : 0)), this.prodParam.enter(dP(i, t.generator)), this.parseFunctionParams(t, n);
    const l = this.parseFunctionBodyAndFinish(t, a, !0);
    return this.prodParam.exit(), this.scope.exit(), l;
  }
  parseArrayLike(t, r, i, n) {
    i && this.expectPlugin("recordAndTuple");
    const s = this.state.inFSharpPipelineDirectBody;
    this.state.inFSharpPipelineDirectBody = !1;
    const a = this.startNode();
    return this.next(), a.elements = this.parseExprList(t, !i, n, a), this.state.inFSharpPipelineDirectBody = s, this.finishNode(a, i ? "TupleExpression" : "ArrayExpression");
  }
  parseArrowExpression(t, r, i, n) {
    this.scope.enter(6);
    let s = dP(i, !1);
    !this.match(5) && this.prodParam.hasIn && (s |= 8), this.prodParam.enter(s), this.initFunction(t, i);
    const a = this.state.maybeInArrowParameters;
    return r && (this.state.maybeInArrowParameters = !0, this.setArrowFunctionParameters(t, r, n)), this.state.maybeInArrowParameters = !1, this.parseFunctionBody(t, !0), this.prodParam.exit(), this.scope.exit(), this.state.maybeInArrowParameters = a, this.finishNode(t, "ArrowFunctionExpression");
  }
  setArrowFunctionParameters(t, r, i) {
    this.toAssignableList(r, i, !1), t.params = r;
  }
  parseFunctionBodyAndFinish(t, r, i = !1) {
    return this.parseFunctionBody(t, !1, i), this.finishNode(t, r);
  }
  parseFunctionBody(t, r, i = !1) {
    const n = r && !this.match(5);
    if (this.expressionScope.enter(Ofe()), n)
      t.body = this.parseMaybeAssign(), this.checkParams(t, !1, r, !1);
    else {
      const s = this.state.strict, a = this.state.labels;
      this.state.labels = [], this.prodParam.enter(this.prodParam.currentFlags() | 4), t.body = this.parseBlock(!0, !1, (o) => {
        const l = !this.isSimpleParamList(t.params);
        o && l && this.raise(tt.IllegalLanguageModeDirective, (t.kind === "method" || t.kind === "constructor") && t.key ? t.key.loc.end : t);
        const u = !s && this.state.strict;
        this.checkParams(t, !this.state.strict && !r && !i && !l, r, u), this.state.strict && t.id && this.checkIdentifier(t.id, 65, u);
      }), this.prodParam.exit(), this.state.labels = a;
    }
    this.expressionScope.exit();
  }
  isSimpleParameter(t) {
    return t.type === "Identifier";
  }
  isSimpleParamList(t) {
    for (let r = 0, i = t.length; r < i; r++)
      if (!this.isSimpleParameter(t[r]))
        return !1;
    return !0;
  }
  checkParams(t, r, i, n = !0) {
    const s = !r && /* @__PURE__ */ new Set(), a = {
      type: "FormalParameters"
    };
    for (const o of t.params)
      this.checkLVal(o, {
        in: a,
        binding: 5,
        checkClashes: s,
        strictModeChanged: n
      });
  }
  parseExprList(t, r, i, n) {
    const s = [];
    let a = !0;
    for (; !this.eat(t); ) {
      if (a)
        a = !1;
      else if (this.expect(12), this.match(t)) {
        n && this.addTrailingCommaExtraToNode(n), this.next();
        break;
      }
      s.push(this.parseExprListItem(r, i));
    }
    return s;
  }
  parseExprListItem(t, r, i) {
    let n;
    if (this.match(12))
      t || this.raise(tt.UnexpectedToken, this.state.curPosition(), {
        unexpected: ","
      }), n = null;
    else if (this.match(21)) {
      const s = this.state.startLoc;
      n = this.parseParenItem(this.parseSpread(r), s);
    } else if (this.match(17)) {
      this.expectPlugin("partialApplication"), i || this.raise(tt.UnexpectedArgumentPlaceholder, this.state.startLoc);
      const s = this.startNode();
      this.next(), n = this.finishNode(s, "ArgumentPlaceholder");
    } else
      n = this.parseMaybeAssignAllowIn(r, this.parseParenItem);
    return n;
  }
  parseIdentifier(t) {
    const r = this.startNode(), i = this.parseIdentifierName(t);
    return this.createIdentifier(r, i);
  }
  createIdentifier(t, r) {
    return t.name = r, t.loc.identifierName = r, this.finishNode(t, "Identifier");
  }
  parseIdentifierName(t) {
    let r;
    const {
      startLoc: i,
      type: n
    } = this.state;
    kc(n) ? r = this.state.value : this.unexpected();
    const s = QJe(n);
    return t ? s && this.replaceToken(132) : this.checkReservedWord(r, i, s, !1), this.next(), r;
  }
  checkReservedWord(t, r, i, n) {
    if (t.length > 10 || !gQe(t))
      return;
    if (i && dQe(t)) {
      this.raise(tt.UnexpectedKeyword, r, {
        keyword: t
      });
      return;
    }
    if ((this.state.strict ? n ? Pfe : xfe : Sfe)(t, this.inModule)) {
      this.raise(tt.UnexpectedReservedWord, r, {
        reservedWord: t
      });
      return;
    } else if (t === "yield") {
      if (this.prodParam.hasYield) {
        this.raise(tt.YieldBindingIdentifier, r);
        return;
      }
    } else if (t === "await") {
      if (this.prodParam.hasAwait) {
        this.raise(tt.AwaitBindingIdentifier, r);
        return;
      }
      if (this.scope.inStaticBlock) {
        this.raise(tt.AwaitBindingIdentifierInStaticBlock, r);
        return;
      }
      this.expressionScope.recordAsyncArrowParametersError(r);
    } else if (t === "arguments" && this.scope.inClassAndNotInNonArrowFunction) {
      this.raise(tt.ArgumentsInClass, r);
      return;
    }
  }
  isAwaitAllowed() {
    return !!(this.prodParam.hasAwait || this.options.allowAwaitOutsideFunction && !this.scope.inFunction);
  }
  parseAwait(t) {
    const r = this.startNodeAt(t);
    return this.expressionScope.recordParameterInitializerError(tt.AwaitExpressionFormalParameter, r), this.eat(55) && this.raise(tt.ObsoleteAwaitStar, r), !this.scope.inFunction && !this.options.allowAwaitOutsideFunction && (this.isAmbiguousAwait() ? this.ambiguousScriptDifferentAst = !0 : this.sawUnambiguousESM = !0), this.state.soloAwait || (r.argument = this.parseMaybeUnary(null, !0)), this.finishNode(r, "AwaitExpression");
  }
  isAmbiguousAwait() {
    if (this.hasPrecedingLineBreak())
      return !0;
    const {
      type: t
    } = this.state;
    return t === 53 || t === 10 || t === 0 || Mw(t) || t === 102 && !this.state.containsEsc || t === 137 || t === 56 || this.hasPlugin("v8intrinsic") && t === 54;
  }
  parseYield() {
    const t = this.startNode();
    this.expressionScope.recordParameterInitializerError(tt.YieldInParameter, t), this.next();
    let r = !1, i = null;
    if (!this.hasPrecedingLineBreak())
      switch (r = this.eat(55), this.state.type) {
        case 13:
        case 139:
        case 8:
        case 11:
        case 3:
        case 9:
        case 14:
        case 12:
          if (!r)
            break;
        default:
          i = this.parseMaybeAssign();
      }
    return t.delegate = r, t.argument = i, this.finishNode(t, "YieldExpression");
  }
  parseImportCall(t) {
    return this.next(), t.source = this.parseMaybeAssignAllowIn(), (this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions")) && (t.options = null), this.eat(12) && (this.expectImportAttributesPlugin(), this.match(11) || (t.options = this.parseMaybeAssignAllowIn(), this.eat(12))), this.expect(11), this.finishNode(t, "ImportExpression");
  }
  checkPipelineAtInfixOperator(t, r) {
    this.hasPlugin(["pipelineOperator", {
      proposal: "smart"
    }]) && t.type === "SequenceExpression" && this.raise(tt.PipelineHeadSequenceExpression, r);
  }
  parseSmartPipelineBodyInStyle(t, r) {
    if (this.isSimpleReference(t)) {
      const i = this.startNodeAt(r);
      return i.callee = t, this.finishNode(i, "PipelineBareFunction");
    } else {
      const i = this.startNodeAt(r);
      return this.checkSmartPipeTopicBodyEarlyErrors(r), i.expression = t, this.finishNode(i, "PipelineTopicExpression");
    }
  }
  isSimpleReference(t) {
    switch (t.type) {
      case "MemberExpression":
        return !t.computed && this.isSimpleReference(t.object);
      case "Identifier":
        return !0;
      default:
        return !1;
    }
  }
  checkSmartPipeTopicBodyEarlyErrors(t) {
    if (this.match(19))
      throw this.raise(tt.PipelineBodyNoArrow, this.state.startLoc);
    this.topicReferenceWasUsedInCurrentContext() || this.raise(tt.PipelineTopicUnused, t);
  }
  withTopicBindingContext(t) {
    const r = this.state.topicContext;
    this.state.topicContext = {
      maxNumOfResolvableTopics: 1,
      maxTopicIndex: null
    };
    try {
      return t();
    } finally {
      this.state.topicContext = r;
    }
  }
  withSmartMixTopicForbiddingContext(t) {
    if (this.hasPlugin(["pipelineOperator", {
      proposal: "smart"
    }])) {
      const r = this.state.topicContext;
      this.state.topicContext = {
        maxNumOfResolvableTopics: 0,
        maxTopicIndex: null
      };
      try {
        return t();
      } finally {
        this.state.topicContext = r;
      }
    } else
      return t();
  }
  withSoloAwaitPermittingContext(t) {
    const r = this.state.soloAwait;
    this.state.soloAwait = !0;
    try {
      return t();
    } finally {
      this.state.soloAwait = r;
    }
  }
  allowInAnd(t) {
    const r = this.prodParam.currentFlags();
    if (8 & ~r) {
      this.prodParam.enter(r | 8);
      try {
        return t();
      } finally {
        this.prodParam.exit();
      }
    }
    return t();
  }
  disallowInAnd(t) {
    const r = this.prodParam.currentFlags();
    if (8 & r) {
      this.prodParam.enter(r & -9);
      try {
        return t();
      } finally {
        this.prodParam.exit();
      }
    }
    return t();
  }
  registerTopicReference() {
    this.state.topicContext.maxTopicIndex = 0;
  }
  topicReferenceIsAllowedInCurrentContext() {
    return this.state.topicContext.maxNumOfResolvableTopics >= 1;
  }
  topicReferenceWasUsedInCurrentContext() {
    return this.state.topicContext.maxTopicIndex != null && this.state.topicContext.maxTopicIndex >= 0;
  }
  parseFSharpPipelineBody(t) {
    const r = this.state.startLoc;
    this.state.potentialArrowAt = this.state.start;
    const i = this.state.inFSharpPipelineDirectBody;
    this.state.inFSharpPipelineDirectBody = !0;
    const n = this.parseExprOp(this.parseMaybeUnaryOrPrivate(), r, t);
    return this.state.inFSharpPipelineDirectBody = i, n;
  }
  parseModuleExpression() {
    this.expectPlugin("moduleBlocks");
    const t = this.startNode();
    this.next(), this.match(5) || this.unexpected(null, 5);
    const r = this.startNodeAt(this.state.endLoc);
    this.next();
    const i = this.initializeScopes(!0);
    this.enterInitialScopes();
    try {
      t.body = this.parseProgram(r, 8, "module");
    } finally {
      i();
    }
    return this.finishNode(t, "ModuleExpression");
  }
  parsePropertyNamePrefixOperator(t) {
  }
};
const kM = {
  kind: 1
}, hZe = {
  kind: 2
}, dZe = /[\uD800-\uDFFF]/u, OM = /in(?:stanceof)?/y;
function mZe(e, t) {
  for (let r = 0; r < e.length; r++) {
    const i = e[r], {
      type: n
    } = i;
    if (typeof n == "number") {
      {
        if (n === 138) {
          const {
            loc: s,
            start: a,
            value: o,
            end: l
          } = i, u = a + 1, c = la(s.start, 1);
          e.splice(r, 1, new fh({
            type: Wp(27),
            value: "#",
            start: a,
            end: u,
            startLoc: s.start,
            endLoc: c
          }), new fh({
            type: Wp(132),
            value: o,
            start: u,
            end: l,
            startLoc: c,
            endLoc: s.end
          })), r++;
          continue;
        }
        if (Mw(n)) {
          const {
            loc: s,
            start: a,
            value: o,
            end: l
          } = i, u = a + 1, c = la(s.start, 1);
          let f;
          t.charCodeAt(a) === 96 ? f = new fh({
            type: Wp(22),
            value: "`",
            start: a,
            end: u,
            startLoc: s.start,
            endLoc: c
          }) : f = new fh({
            type: Wp(8),
            value: "}",
            start: a,
            end: u,
            startLoc: s.start,
            endLoc: c
          });
          let h, m, g, y;
          n === 24 ? (m = l - 1, g = la(s.end, -1), h = o === null ? null : o.slice(1, -1), y = new fh({
            type: Wp(22),
            value: "`",
            start: m,
            end: l,
            startLoc: g,
            endLoc: s.end
          })) : (m = l - 2, g = la(s.end, -2), h = o === null ? null : o.slice(1, -2), y = new fh({
            type: Wp(23),
            value: "${",
            start: m,
            end: l,
            startLoc: g,
            endLoc: s.end
          })), e.splice(r, 1, f, new fh({
            type: Wp(20),
            value: h,
            start: u,
            end: m,
            startLoc: c,
            endLoc: g
          }), y), r += 2;
          continue;
        }
      }
      i.type = Wp(n);
    }
  }
  return e;
}
let yZe = class extends fZe {
  parseTopLevel(t, r) {
    return t.program = this.parseProgram(r), t.comments = this.comments, this.options.tokens && (t.tokens = mZe(this.tokens, this.input)), this.finishNode(t, "File");
  }
  parseProgram(t, r = 139, i = this.options.sourceType) {
    if (t.sourceType = i, t.interpreter = this.parseInterpreterDirective(), this.parseBlockBody(t, !0, !0, r), this.inModule && !this.options.allowUndeclaredExports && this.scope.undefinedExports.size > 0)
      for (const [s, a] of Array.from(this.scope.undefinedExports))
        this.raise(tt.ModuleExportUndefined, a, {
          localName: s
        });
    let n;
    return r === 139 ? n = this.finishNode(t, "Program") : n = this.finishNodeAt(t, "Program", la(this.state.startLoc, -1)), n;
  }
  stmtToDirective(t) {
    const r = t;
    r.type = "Directive", r.value = r.expression, delete r.expression;
    const i = r.value, n = i.value, s = this.input.slice(i.start, i.end), a = i.value = s.slice(1, -1);
    return this.addExtra(i, "raw", s), this.addExtra(i, "rawValue", a), this.addExtra(i, "expressionValue", n), i.type = "DirectiveLiteral", r;
  }
  parseInterpreterDirective() {
    if (!this.match(28))
      return null;
    const t = this.startNode();
    return t.value = this.state.value, this.next(), this.finishNode(t, "InterpreterDirective");
  }
  isLet() {
    return this.isContextual(100) ? this.hasFollowingBindingAtom() : !1;
  }
  chStartsBindingIdentifier(t, r) {
    if (nf(t)) {
      if (OM.lastIndex = r, OM.test(this.input)) {
        const i = this.codePointAtPos(OM.lastIndex);
        if (!Iy(i) && i !== 92)
          return !1;
      }
      return !0;
    } else
      return t === 92;
  }
  chStartsBindingPattern(t) {
    return t === 91 || t === 123;
  }
  hasFollowingBindingAtom() {
    const t = this.nextTokenStart(), r = this.codePointAtPos(t);
    return this.chStartsBindingPattern(r) || this.chStartsBindingIdentifier(r, t);
  }
  hasInLineFollowingBindingIdentifier() {
    const t = this.nextTokenInLineStart(), r = this.codePointAtPos(t);
    return this.chStartsBindingIdentifier(r, t);
  }
  startsUsingForOf() {
    const {
      type: t,
      containsEsc: r
    } = this.lookahead();
    if (t === 102 && !r)
      return !1;
    if (Si(t) && !this.hasFollowingLineBreak())
      return this.expectPlugin("explicitResourceManagement"), !0;
  }
  startsAwaitUsing() {
    let t = this.nextTokenInLineStart();
    if (this.isUnparsedContextual(t, "using")) {
      t = this.nextTokenInLineStartSince(t + 5);
      const r = this.codePointAtPos(t);
      if (this.chStartsBindingIdentifier(r, t))
        return this.expectPlugin("explicitResourceManagement"), !0;
    }
    return !1;
  }
  parseModuleItem() {
    return this.parseStatementLike(15);
  }
  parseStatementListItem() {
    return this.parseStatementLike(6 | (!this.options.annexB || this.state.strict ? 0 : 8));
  }
  parseStatementOrSloppyAnnexBFunctionDeclaration(t = !1) {
    let r = 0;
    return this.options.annexB && !this.state.strict && (r |= 4, t && (r |= 8)), this.parseStatementLike(r);
  }
  parseStatement() {
    return this.parseStatementLike(0);
  }
  parseStatementLike(t) {
    let r = null;
    return this.match(26) && (r = this.parseDecorators(!0)), this.parseStatementContent(t, r);
  }
  parseStatementContent(t, r) {
    const i = this.state.type, n = this.startNode(), s = !!(t & 2), a = !!(t & 4), o = t & 1;
    switch (i) {
      case 60:
        return this.parseBreakContinueStatement(n, !0);
      case 63:
        return this.parseBreakContinueStatement(n, !1);
      case 64:
        return this.parseDebuggerStatement(n);
      case 90:
        return this.parseDoWhileStatement(n);
      case 91:
        return this.parseForStatement(n);
      case 68:
        if (this.lookaheadCharCode() === 46)
          break;
        return a || this.raise(this.state.strict ? tt.StrictFunction : this.options.annexB ? tt.SloppyFunctionAnnexB : tt.SloppyFunction, this.state.startLoc), this.parseFunctionStatement(n, !1, !s && a);
      case 80:
        return s || this.unexpected(), this.parseClass(this.maybeTakeDecorators(r, n), !0);
      case 69:
        return this.parseIfStatement(n);
      case 70:
        return this.parseReturnStatement(n);
      case 71:
        return this.parseSwitchStatement(n);
      case 72:
        return this.parseThrowStatement(n);
      case 73:
        return this.parseTryStatement(n);
      case 96:
        if (!this.state.containsEsc && this.startsAwaitUsing())
          return this.isAwaitAllowed() ? s || this.raise(tt.UnexpectedLexicalDeclaration, n) : this.raise(tt.AwaitUsingNotInAsyncContext, n), this.next(), this.parseVarStatement(n, "await using");
        break;
      case 107:
        if (this.state.containsEsc || !this.hasInLineFollowingBindingIdentifier())
          break;
        return this.expectPlugin("explicitResourceManagement"), !this.scope.inModule && this.scope.inTopLevel ? this.raise(tt.UnexpectedUsingDeclaration, this.state.startLoc) : s || this.raise(tt.UnexpectedLexicalDeclaration, this.state.startLoc), this.parseVarStatement(n, "using");
      case 100: {
        if (this.state.containsEsc)
          break;
        const c = this.nextTokenStart(), f = this.codePointAtPos(c);
        if (f !== 91 && (!s && this.hasFollowingLineBreak() || !this.chStartsBindingIdentifier(f, c) && f !== 123))
          break;
      }
      case 75:
        s || this.raise(tt.UnexpectedLexicalDeclaration, this.state.startLoc);
      case 74: {
        const c = this.state.value;
        return this.parseVarStatement(n, c);
      }
      case 92:
        return this.parseWhileStatement(n);
      case 76:
        return this.parseWithStatement(n);
      case 5:
        return this.parseBlock();
      case 13:
        return this.parseEmptyStatement(n);
      case 83: {
        const c = this.lookaheadCharCode();
        if (c === 40 || c === 46)
          break;
      }
      case 82: {
        !this.options.allowImportExportEverywhere && !o && this.raise(tt.UnexpectedImportExport, this.state.startLoc), this.next();
        let c;
        return i === 83 ? (c = this.parseImport(n), c.type === "ImportDeclaration" && (!c.importKind || c.importKind === "value") && (this.sawUnambiguousESM = !0)) : (c = this.parseExport(n, r), (c.type === "ExportNamedDeclaration" && (!c.exportKind || c.exportKind === "value") || c.type === "ExportAllDeclaration" && (!c.exportKind || c.exportKind === "value") || c.type === "ExportDefaultDeclaration") && (this.sawUnambiguousESM = !0)), this.assertModuleNodeAllowed(c), c;
      }
      default:
        if (this.isAsyncFunction())
          return s || this.raise(tt.AsyncFunctionInSingleStatementContext, this.state.startLoc), this.next(), this.parseFunctionStatement(n, !0, !s && a);
    }
    const l = this.state.value, u = this.parseExpression();
    return Si(i) && u.type === "Identifier" && this.eat(14) ? this.parseLabeledStatement(n, l, u, t) : this.parseExpressionStatement(n, u, r);
  }
  assertModuleNodeAllowed(t) {
    !this.options.allowImportExportEverywhere && !this.inModule && this.raise(tt.ImportOutsideModule, t);
  }
  decoratorsEnabledBeforeExport() {
    return this.hasPlugin("decorators-legacy") ? !0 : this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") !== !1;
  }
  maybeTakeDecorators(t, r, i) {
    return t && (r.decorators && r.decorators.length > 0 ? (typeof this.getPluginOption("decorators", "decoratorsBeforeExport") != "boolean" && this.raise(tt.DecoratorsBeforeAfterExport, r.decorators[0]), r.decorators.unshift(...t)) : r.decorators = t, this.resetStartLocationFromNode(r, t[0]), i && this.resetStartLocationFromNode(i, r)), r;
  }
  canHaveLeadingDecorator() {
    return this.match(80);
  }
  parseDecorators(t) {
    const r = [];
    do
      r.push(this.parseDecorator());
    while (this.match(26));
    if (this.match(82))
      t || this.unexpected(), this.decoratorsEnabledBeforeExport() || this.raise(tt.DecoratorExportClass, this.state.startLoc);
    else if (!this.canHaveLeadingDecorator())
      throw this.raise(tt.UnexpectedLeadingDecorator, this.state.startLoc);
    return r;
  }
  parseDecorator() {
    this.expectOnePlugin(["decorators", "decorators-legacy"]);
    const t = this.startNode();
    if (this.next(), this.hasPlugin("decorators")) {
      const r = this.state.startLoc;
      let i;
      if (this.match(10)) {
        const n = this.state.startLoc;
        this.next(), i = this.parseExpression(), this.expect(11), i = this.wrapParenthesis(n, i);
        const s = this.state.startLoc;
        t.expression = this.parseMaybeDecoratorArguments(i), this.getPluginOption("decorators", "allowCallParenthesized") === !1 && t.expression !== i && this.raise(tt.DecoratorArgumentsOutsideParentheses, s);
      } else {
        for (i = this.parseIdentifier(!1); this.eat(16); ) {
          const n = this.startNodeAt(r);
          n.object = i, this.match(138) ? (this.classScope.usePrivateName(this.state.value, this.state.startLoc), n.property = this.parsePrivateName()) : n.property = this.parseIdentifier(!0), n.computed = !1, i = this.finishNode(n, "MemberExpression");
        }
        t.expression = this.parseMaybeDecoratorArguments(i);
      }
    } else
      t.expression = this.parseExprSubscripts();
    return this.finishNode(t, "Decorator");
  }
  parseMaybeDecoratorArguments(t) {
    if (this.eat(10)) {
      const r = this.startNodeAtNode(t);
      return r.callee = t, r.arguments = this.parseCallExpressionArguments(11, !1), this.toReferencedList(r.arguments), this.finishNode(r, "CallExpression");
    }
    return t;
  }
  parseBreakContinueStatement(t, r) {
    return this.next(), this.isLineTerminator() ? t.label = null : (t.label = this.parseIdentifier(), this.semicolon()), this.verifyBreakContinue(t, r), this.finishNode(t, r ? "BreakStatement" : "ContinueStatement");
  }
  verifyBreakContinue(t, r) {
    let i;
    for (i = 0; i < this.state.labels.length; ++i) {
      const n = this.state.labels[i];
      if ((t.label == null || n.name === t.label.name) && (n.kind != null && (r || n.kind === 1) || t.label && r))
        break;
    }
    if (i === this.state.labels.length) {
      const n = r ? "BreakStatement" : "ContinueStatement";
      this.raise(tt.IllegalBreakContinue, t, {
        type: n
      });
    }
  }
  parseDebuggerStatement(t) {
    return this.next(), this.semicolon(), this.finishNode(t, "DebuggerStatement");
  }
  parseHeaderExpression() {
    this.expect(10);
    const t = this.parseExpression();
    return this.expect(11), t;
  }
  parseDoWhileStatement(t) {
    return this.next(), this.state.labels.push(kM), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.state.labels.pop(), this.expect(92), t.test = this.parseHeaderExpression(), this.eat(13), this.finishNode(t, "DoWhileStatement");
  }
  parseForStatement(t) {
    this.next(), this.state.labels.push(kM);
    let r = null;
    if (this.isAwaitAllowed() && this.eatContextual(96) && (r = this.state.lastTokStartLoc), this.scope.enter(0), this.expect(10), this.match(13))
      return r !== null && this.unexpected(r), this.parseFor(t, null);
    const i = this.isContextual(100);
    {
      const l = this.isContextual(96) && this.startsAwaitUsing(), u = l || this.isContextual(107) && this.startsUsingForOf(), c = i && this.hasFollowingBindingAtom() || u;
      if (this.match(74) || this.match(75) || c) {
        const f = this.startNode();
        let h;
        l ? (h = "await using", this.isAwaitAllowed() || this.raise(tt.AwaitUsingNotInAsyncContext, this.state.startLoc), this.next()) : h = this.state.value, this.next(), this.parseVar(f, !0, h);
        const m = this.finishNode(f, "VariableDeclaration"), g = this.match(58);
        return g && u && this.raise(tt.ForInUsing, m), (g || this.isContextual(102)) && m.declarations.length === 1 ? this.parseForIn(t, m, r) : (r !== null && this.unexpected(r), this.parseFor(t, m));
      }
    }
    const n = this.isContextual(95), s = new mP(), a = this.parseExpression(!0, s), o = this.isContextual(102);
    if (o && (i && this.raise(tt.ForOfLet, a), r === null && n && a.type === "Identifier" && this.raise(tt.ForOfAsync, a)), o || this.match(58)) {
      this.checkDestructuringPrivate(s), this.toAssignable(a, !0);
      const l = o ? "ForOfStatement" : "ForInStatement";
      return this.checkLVal(a, {
        in: {
          type: l
        }
      }), this.parseForIn(t, a, r);
    } else
      this.checkExpressionErrors(s, !0);
    return r !== null && this.unexpected(r), this.parseFor(t, a);
  }
  parseFunctionStatement(t, r, i) {
    return this.next(), this.parseFunction(t, 1 | (i ? 2 : 0) | (r ? 8 : 0));
  }
  parseIfStatement(t) {
    return this.next(), t.test = this.parseHeaderExpression(), t.consequent = this.parseStatementOrSloppyAnnexBFunctionDeclaration(), t.alternate = this.eat(66) ? this.parseStatementOrSloppyAnnexBFunctionDeclaration() : null, this.finishNode(t, "IfStatement");
  }
  parseReturnStatement(t) {
    return !this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction && this.raise(tt.IllegalReturn, this.state.startLoc), this.next(), this.isLineTerminator() ? t.argument = null : (t.argument = this.parseExpression(), this.semicolon()), this.finishNode(t, "ReturnStatement");
  }
  parseSwitchStatement(t) {
    this.next(), t.discriminant = this.parseHeaderExpression();
    const r = t.cases = [];
    this.expect(5), this.state.labels.push(hZe), this.scope.enter(0);
    let i;
    for (let n; !this.match(8); )
      if (this.match(61) || this.match(65)) {
        const s = this.match(61);
        i && this.finishNode(i, "SwitchCase"), r.push(i = this.startNode()), i.consequent = [], this.next(), s ? i.test = this.parseExpression() : (n && this.raise(tt.MultipleDefaultsInSwitch, this.state.lastTokStartLoc), n = !0, i.test = null), this.expect(14);
      } else
        i ? i.consequent.push(this.parseStatementListItem()) : this.unexpected();
    return this.scope.exit(), i && this.finishNode(i, "SwitchCase"), this.next(), this.state.labels.pop(), this.finishNode(t, "SwitchStatement");
  }
  parseThrowStatement(t) {
    return this.next(), this.hasPrecedingLineBreak() && this.raise(tt.NewlineAfterThrow, this.state.lastTokEndLoc), t.argument = this.parseExpression(), this.semicolon(), this.finishNode(t, "ThrowStatement");
  }
  parseCatchClauseParam() {
    const t = this.parseBindingAtom();
    return this.scope.enter(this.options.annexB && t.type === "Identifier" ? 8 : 0), this.checkLVal(t, {
      in: {
        type: "CatchClause"
      },
      binding: 9
    }), t;
  }
  parseTryStatement(t) {
    if (this.next(), t.block = this.parseBlock(), t.handler = null, this.match(62)) {
      const r = this.startNode();
      this.next(), this.match(10) ? (this.expect(10), r.param = this.parseCatchClauseParam(), this.expect(11)) : (r.param = null, this.scope.enter(0)), r.body = this.withSmartMixTopicForbiddingContext(() => this.parseBlock(!1, !1)), this.scope.exit(), t.handler = this.finishNode(r, "CatchClause");
    }
    return t.finalizer = this.eat(67) ? this.parseBlock() : null, !t.handler && !t.finalizer && this.raise(tt.NoCatchOrFinally, t), this.finishNode(t, "TryStatement");
  }
  parseVarStatement(t, r, i = !1) {
    return this.next(), this.parseVar(t, !1, r, i), this.semicolon(), this.finishNode(t, "VariableDeclaration");
  }
  parseWhileStatement(t) {
    return this.next(), t.test = this.parseHeaderExpression(), this.state.labels.push(kM), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.state.labels.pop(), this.finishNode(t, "WhileStatement");
  }
  parseWithStatement(t) {
    return this.state.strict && this.raise(tt.StrictWith, this.state.startLoc), this.next(), t.object = this.parseHeaderExpression(), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.finishNode(t, "WithStatement");
  }
  parseEmptyStatement(t) {
    return this.next(), this.finishNode(t, "EmptyStatement");
  }
  parseLabeledStatement(t, r, i, n) {
    for (const a of this.state.labels)
      a.name === r && this.raise(tt.LabelRedeclaration, i, {
        labelName: r
      });
    const s = tQe(this.state.type) ? 1 : this.match(71) ? 2 : null;
    for (let a = this.state.labels.length - 1; a >= 0; a--) {
      const o = this.state.labels[a];
      if (o.statementStart === t.start)
        o.statementStart = this.state.start, o.kind = s;
      else
        break;
    }
    return this.state.labels.push({
      name: r,
      kind: s,
      statementStart: this.state.start
    }), t.body = n & 8 ? this.parseStatementOrSloppyAnnexBFunctionDeclaration(!0) : this.parseStatement(), this.state.labels.pop(), t.label = i, this.finishNode(t, "LabeledStatement");
  }
  parseExpressionStatement(t, r, i) {
    return t.expression = r, this.semicolon(), this.finishNode(t, "ExpressionStatement");
  }
  parseBlock(t = !1, r = !0, i) {
    const n = this.startNode();
    return t && this.state.strictErrors.clear(), this.expect(5), r && this.scope.enter(0), this.parseBlockBody(n, t, !1, 8, i), r && this.scope.exit(), this.finishNode(n, "BlockStatement");
  }
  isValidDirective(t) {
    return t.type === "ExpressionStatement" && t.expression.type === "StringLiteral" && !t.expression.extra.parenthesized;
  }
  parseBlockBody(t, r, i, n, s) {
    const a = t.body = [], o = t.directives = [];
    this.parseBlockOrModuleBlockBody(a, r ? o : void 0, i, n, s);
  }
  parseBlockOrModuleBlockBody(t, r, i, n, s) {
    const a = this.state.strict;
    let o = !1, l = !1;
    for (; !this.match(n); ) {
      const u = i ? this.parseModuleItem() : this.parseStatementListItem();
      if (r && !l) {
        if (this.isValidDirective(u)) {
          const c = this.stmtToDirective(u);
          r.push(c), !o && c.value.value === "use strict" && (o = !0, this.setStrict(!0));
          continue;
        }
        l = !0, this.state.strictErrors.clear();
      }
      t.push(u);
    }
    s == null || s.call(this, o), a || this.setStrict(!1), this.next();
  }
  parseFor(t, r) {
    return t.init = r, this.semicolon(!1), t.test = this.match(13) ? null : this.parseExpression(), this.semicolon(!1), t.update = this.match(11) ? null : this.parseExpression(), this.expect(11), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.scope.exit(), this.state.labels.pop(), this.finishNode(t, "ForStatement");
  }
  parseForIn(t, r, i) {
    const n = this.match(58);
    return this.next(), n ? i !== null && this.unexpected(i) : t.await = i !== null, r.type === "VariableDeclaration" && r.declarations[0].init != null && (!n || !this.options.annexB || this.state.strict || r.kind !== "var" || r.declarations[0].id.type !== "Identifier") && this.raise(tt.ForInOfLoopInitializer, r, {
      type: n ? "ForInStatement" : "ForOfStatement"
    }), r.type === "AssignmentPattern" && this.raise(tt.InvalidLhs, r, {
      ancestor: {
        type: "ForStatement"
      }
    }), t.left = r, t.right = n ? this.parseExpression() : this.parseMaybeAssignAllowIn(), this.expect(11), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.scope.exit(), this.state.labels.pop(), this.finishNode(t, n ? "ForInStatement" : "ForOfStatement");
  }
  parseVar(t, r, i, n = !1) {
    const s = t.declarations = [];
    for (t.kind = i; ; ) {
      const a = this.startNode();
      if (this.parseVarId(a, i), a.init = this.eat(29) ? r ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn() : null, a.init === null && !n && (a.id.type !== "Identifier" && !(r && (this.match(58) || this.isContextual(102))) ? this.raise(tt.DeclarationMissingInitializer, this.state.lastTokEndLoc, {
        kind: "destructuring"
      }) : (i === "const" || i === "using" || i === "await using") && !(this.match(58) || this.isContextual(102)) && this.raise(tt.DeclarationMissingInitializer, this.state.lastTokEndLoc, {
        kind: i
      })), s.push(this.finishNode(a, "VariableDeclarator")), !this.eat(12))
        break;
    }
    return t;
  }
  parseVarId(t, r) {
    const i = this.parseBindingAtom();
    this.checkLVal(i, {
      in: {
        type: "VariableDeclarator"
      },
      binding: r === "var" ? 5 : 8201
    }), t.id = i;
  }
  parseAsyncFunctionExpression(t) {
    return this.parseFunction(t, 8);
  }
  parseFunction(t, r = 0) {
    const i = r & 2, n = !!(r & 1), s = n && !(r & 4), a = !!(r & 8);
    this.initFunction(t, a), this.match(55) && (i && this.raise(tt.GeneratorInSingleStatementContext, this.state.startLoc), this.next(), t.generator = !0), n && (t.id = this.parseFunctionId(s));
    const o = this.state.maybeInArrowParameters;
    return this.state.maybeInArrowParameters = !1, this.scope.enter(2), this.prodParam.enter(dP(a, t.generator)), n || (t.id = this.parseFunctionId()), this.parseFunctionParams(t, !1), this.withSmartMixTopicForbiddingContext(() => {
      this.parseFunctionBodyAndFinish(t, n ? "FunctionDeclaration" : "FunctionExpression");
    }), this.prodParam.exit(), this.scope.exit(), n && !i && this.registerFunctionStatementId(t), this.state.maybeInArrowParameters = o, t;
  }
  parseFunctionId(t) {
    return t || Si(this.state.type) ? this.parseIdentifier() : null;
  }
  parseFunctionParams(t, r) {
    this.expect(10), this.expressionScope.enter(DQe()), t.params = this.parseBindingList(11, 41, 2 | (r ? 4 : 0)), this.expressionScope.exit();
  }
  registerFunctionStatementId(t) {
    t.id && this.scope.declareName(t.id.name, !this.options.annexB || this.state.strict || t.generator || t.async ? this.scope.treatFunctionsAsVar ? 5 : 8201 : 17, t.id.loc.start);
  }
  parseClass(t, r, i) {
    this.next();
    const n = this.state.strict;
    return this.state.strict = !0, this.parseClassId(t, r, i), this.parseClassSuper(t), t.body = this.parseClassBody(!!t.superClass, n), this.finishNode(t, r ? "ClassDeclaration" : "ClassExpression");
  }
  isClassProperty() {
    return this.match(29) || this.match(13) || this.match(8);
  }
  isClassMethod() {
    return this.match(10);
  }
  nameIsConstructor(t) {
    return t.type === "Identifier" && t.name === "constructor" || t.type === "StringLiteral" && t.value === "constructor";
  }
  isNonstaticConstructor(t) {
    return !t.computed && !t.static && this.nameIsConstructor(t.key);
  }
  parseClassBody(t, r) {
    this.classScope.enter();
    const i = {
      hadConstructor: !1,
      hadSuperClass: t
    };
    let n = [];
    const s = this.startNode();
    if (s.body = [], this.expect(5), this.withSmartMixTopicForbiddingContext(() => {
      for (; !this.match(8); ) {
        if (this.eat(13)) {
          if (n.length > 0)
            throw this.raise(tt.DecoratorSemicolon, this.state.lastTokEndLoc);
          continue;
        }
        if (this.match(26)) {
          n.push(this.parseDecorator());
          continue;
        }
        const a = this.startNode();
        n.length && (a.decorators = n, this.resetStartLocationFromNode(a, n[0]), n = []), this.parseClassMember(s, a, i), a.kind === "constructor" && a.decorators && a.decorators.length > 0 && this.raise(tt.DecoratorConstructor, a);
      }
    }), this.state.strict = r, this.next(), n.length)
      throw this.raise(tt.TrailingDecorator, this.state.startLoc);
    return this.classScope.exit(), this.finishNode(s, "ClassBody");
  }
  parseClassMemberFromModifier(t, r) {
    const i = this.parseIdentifier(!0);
    if (this.isClassMethod()) {
      const n = r;
      return n.kind = "method", n.computed = !1, n.key = i, n.static = !1, this.pushClassMethod(t, n, !1, !1, !1, !1), !0;
    } else if (this.isClassProperty()) {
      const n = r;
      return n.computed = !1, n.key = i, n.static = !1, t.body.push(this.parseClassProperty(n)), !0;
    }
    return this.resetPreviousNodeTrailingComments(i), !1;
  }
  parseClassMember(t, r, i) {
    const n = this.isContextual(106);
    if (n) {
      if (this.parseClassMemberFromModifier(t, r))
        return;
      if (this.eat(5)) {
        this.parseClassStaticBlock(t, r);
        return;
      }
    }
    this.parseClassMemberWithIsStatic(t, r, i, n);
  }
  parseClassMemberWithIsStatic(t, r, i, n) {
    const s = r, a = r, o = r, l = r, u = r, c = s, f = s;
    if (r.static = n, this.parsePropertyNamePrefixOperator(r), this.eat(55)) {
      c.kind = "method";
      const T = this.match(138);
      if (this.parseClassElementName(c), T) {
        this.pushClassPrivateMethod(t, a, !0, !1);
        return;
      }
      this.isNonstaticConstructor(s) && this.raise(tt.ConstructorIsGenerator, s.key), this.pushClassMethod(t, s, !0, !1, !1, !1);
      return;
    }
    const h = !this.state.containsEsc && Si(this.state.type), m = this.parseClassElementName(r), g = h ? m.name : null, y = this.isPrivateName(m), v = this.state.startLoc;
    if (this.parsePostMemberNameModifiers(f), this.isClassMethod()) {
      if (c.kind = "method", y) {
        this.pushClassPrivateMethod(t, a, !1, !1);
        return;
      }
      const T = this.isNonstaticConstructor(s);
      let S = !1;
      T && (s.kind = "constructor", i.hadConstructor && !this.hasPlugin("typescript") && this.raise(tt.DuplicateConstructor, m), T && this.hasPlugin("typescript") && r.override && this.raise(tt.OverrideOnConstructor, m), i.hadConstructor = !0, S = i.hadSuperClass), this.pushClassMethod(t, s, !1, !1, T, S);
    } else if (this.isClassProperty())
      y ? this.pushClassPrivateProperty(t, l) : this.pushClassProperty(t, o);
    else if (g === "async" && !this.isLineTerminator()) {
      this.resetPreviousNodeTrailingComments(m);
      const T = this.eat(55);
      f.optional && this.unexpected(v), c.kind = "method";
      const S = this.match(138);
      this.parseClassElementName(c), this.parsePostMemberNameModifiers(f), S ? this.pushClassPrivateMethod(t, a, T, !0) : (this.isNonstaticConstructor(s) && this.raise(tt.ConstructorIsAsync, s.key), this.pushClassMethod(t, s, T, !0, !1, !1));
    } else if ((g === "get" || g === "set") && !(this.match(55) && this.isLineTerminator())) {
      this.resetPreviousNodeTrailingComments(m), c.kind = g;
      const T = this.match(138);
      this.parseClassElementName(s), T ? this.pushClassPrivateMethod(t, a, !1, !1) : (this.isNonstaticConstructor(s) && this.raise(tt.ConstructorIsAccessor, s.key), this.pushClassMethod(t, s, !1, !1, !1, !1)), this.checkGetterSetterParams(s);
    } else if (g === "accessor" && !this.isLineTerminator()) {
      this.expectPlugin("decoratorAutoAccessors"), this.resetPreviousNodeTrailingComments(m);
      const T = this.match(138);
      this.parseClassElementName(o), this.pushClassAccessorProperty(t, u, T);
    } else
      this.isLineTerminator() ? y ? this.pushClassPrivateProperty(t, l) : this.pushClassProperty(t, o) : this.unexpected();
  }
  parseClassElementName(t) {
    const {
      type: r,
      value: i
    } = this.state;
    if ((r === 132 || r === 133) && t.static && i === "prototype" && this.raise(tt.StaticPrototype, this.state.startLoc), r === 138) {
      i === "constructor" && this.raise(tt.ConstructorClassPrivateField, this.state.startLoc);
      const n = this.parsePrivateName();
      return t.key = n, n;
    }
    return this.parsePropertyName(t), t.key;
  }
  parseClassStaticBlock(t, r) {
    var i;
    this.scope.enter(208);
    const n = this.state.labels;
    this.state.labels = [], this.prodParam.enter(0);
    const s = r.body = [];
    this.parseBlockOrModuleBlockBody(s, void 0, !1, 8), this.prodParam.exit(), this.scope.exit(), this.state.labels = n, t.body.push(this.finishNode(r, "StaticBlock")), (i = r.decorators) != null && i.length && this.raise(tt.DecoratorStaticBlock, r);
  }
  pushClassProperty(t, r) {
    !r.computed && this.nameIsConstructor(r.key) && this.raise(tt.ConstructorClassField, r.key), t.body.push(this.parseClassProperty(r));
  }
  pushClassPrivateProperty(t, r) {
    const i = this.parseClassPrivateProperty(r);
    t.body.push(i), this.classScope.declarePrivateName(this.getPrivateNameSV(i.key), 0, i.key.loc.start);
  }
  pushClassAccessorProperty(t, r, i) {
    !i && !r.computed && this.nameIsConstructor(r.key) && this.raise(tt.ConstructorClassField, r.key);
    const n = this.parseClassAccessorProperty(r);
    t.body.push(n), i && this.classScope.declarePrivateName(this.getPrivateNameSV(n.key), 0, n.key.loc.start);
  }
  pushClassMethod(t, r, i, n, s, a) {
    t.body.push(this.parseMethod(r, i, n, s, a, "ClassMethod", !0));
  }
  pushClassPrivateMethod(t, r, i, n) {
    const s = this.parseMethod(r, i, n, !1, !1, "ClassPrivateMethod", !0);
    t.body.push(s);
    const a = s.kind === "get" ? s.static ? 6 : 2 : s.kind === "set" ? s.static ? 5 : 1 : 0;
    this.declareClassPrivateMethodInScope(s, a);
  }
  declareClassPrivateMethodInScope(t, r) {
    this.classScope.declarePrivateName(this.getPrivateNameSV(t.key), r, t.key.loc.start);
  }
  parsePostMemberNameModifiers(t) {
  }
  parseClassPrivateProperty(t) {
    return this.parseInitializer(t), this.semicolon(), this.finishNode(t, "ClassPrivateProperty");
  }
  parseClassProperty(t) {
    return this.parseInitializer(t), this.semicolon(), this.finishNode(t, "ClassProperty");
  }
  parseClassAccessorProperty(t) {
    return this.parseInitializer(t), this.semicolon(), this.finishNode(t, "ClassAccessorProperty");
  }
  parseInitializer(t) {
    this.scope.enter(80), this.expressionScope.enter(Ofe()), this.prodParam.enter(0), t.value = this.eat(29) ? this.parseMaybeAssignAllowIn() : null, this.expressionScope.exit(), this.prodParam.exit(), this.scope.exit();
  }
  parseClassId(t, r, i, n = 8331) {
    if (Si(this.state.type))
      t.id = this.parseIdentifier(), r && this.declareNameFromIdentifier(t.id, n);
    else if (i || !r)
      t.id = null;
    else
      throw this.raise(tt.MissingClassName, this.state.startLoc);
  }
  parseClassSuper(t) {
    t.superClass = this.eat(81) ? this.parseExprSubscripts() : null;
  }
  parseExport(t, r) {
    const i = this.parseMaybeImportPhase(t, !0), n = this.maybeParseExportDefaultSpecifier(t, i), s = !n || this.eat(12), a = s && this.eatExportStar(t), o = a && this.maybeParseExportNamespaceSpecifier(t), l = s && (!o || this.eat(12)), u = n || a;
    if (a && !o) {
      if (n && this.unexpected(), r)
        throw this.raise(tt.UnsupportedDecoratorExport, t);
      return this.parseExportFrom(t, !0), this.finishNode(t, "ExportAllDeclaration");
    }
    const c = this.maybeParseExportNamedSpecifiers(t);
    n && s && !a && !c && this.unexpected(null, 5), o && l && this.unexpected(null, 98);
    let f;
    if (u || c) {
      if (f = !1, r)
        throw this.raise(tt.UnsupportedDecoratorExport, t);
      this.parseExportFrom(t, u);
    } else
      f = this.maybeParseExportDeclaration(t);
    if (u || c || f) {
      var h;
      const m = t;
      if (this.checkExport(m, !0, !1, !!m.source), ((h = m.declaration) == null ? void 0 : h.type) === "ClassDeclaration")
        this.maybeTakeDecorators(r, m.declaration, m);
      else if (r)
        throw this.raise(tt.UnsupportedDecoratorExport, t);
      return this.finishNode(m, "ExportNamedDeclaration");
    }
    if (this.eat(65)) {
      const m = t, g = this.parseExportDefaultExpression();
      if (m.declaration = g, g.type === "ClassDeclaration")
        this.maybeTakeDecorators(r, g, m);
      else if (r)
        throw this.raise(tt.UnsupportedDecoratorExport, t);
      return this.checkExport(m, !0, !0), this.finishNode(m, "ExportDefaultDeclaration");
    }
    this.unexpected(null, 5);
  }
  eatExportStar(t) {
    return this.eat(55);
  }
  maybeParseExportDefaultSpecifier(t, r) {
    if (r || this.isExportDefaultSpecifier()) {
      this.expectPlugin("exportDefaultFrom", r == null ? void 0 : r.loc.start);
      const i = r || this.parseIdentifier(!0), n = this.startNodeAtNode(i);
      return n.exported = i, t.specifiers = [this.finishNode(n, "ExportDefaultSpecifier")], !0;
    }
    return !1;
  }
  maybeParseExportNamespaceSpecifier(t) {
    if (this.isContextual(93)) {
      var r, i;
      (i = (r = t).specifiers) != null || (r.specifiers = []);
      const n = this.startNodeAt(this.state.lastTokStartLoc);
      return this.next(), n.exported = this.parseModuleExportName(), t.specifiers.push(this.finishNode(n, "ExportNamespaceSpecifier")), !0;
    }
    return !1;
  }
  maybeParseExportNamedSpecifiers(t) {
    if (this.match(5)) {
      const r = t;
      r.specifiers || (r.specifiers = []);
      const i = r.exportKind === "type";
      return r.specifiers.push(...this.parseExportSpecifiers(i)), r.source = null, r.declaration = null, this.hasPlugin("importAssertions") && (r.assertions = []), !0;
    }
    return !1;
  }
  maybeParseExportDeclaration(t) {
    return this.shouldParseExportDeclaration() ? (t.specifiers = [], t.source = null, this.hasPlugin("importAssertions") && (t.assertions = []), t.declaration = this.parseExportDeclaration(t), !0) : !1;
  }
  isAsyncFunction() {
    if (!this.isContextual(95))
      return !1;
    const t = this.nextTokenInLineStart();
    return this.isUnparsedContextual(t, "function");
  }
  parseExportDefaultExpression() {
    const t = this.startNode();
    if (this.match(68))
      return this.next(), this.parseFunction(t, 5);
    if (this.isAsyncFunction())
      return this.next(), this.next(), this.parseFunction(t, 13);
    if (this.match(80))
      return this.parseClass(t, !0, !0);
    if (this.match(26))
      return this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") === !0 && this.raise(tt.DecoratorBeforeExport, this.state.startLoc), this.parseClass(this.maybeTakeDecorators(this.parseDecorators(!1), this.startNode()), !0, !0);
    if (this.match(75) || this.match(74) || this.isLet())
      throw this.raise(tt.UnsupportedDefaultExport, this.state.startLoc);
    const r = this.parseMaybeAssignAllowIn();
    return this.semicolon(), r;
  }
  parseExportDeclaration(t) {
    return this.match(80) ? this.parseClass(this.startNode(), !0, !1) : this.parseStatementListItem();
  }
  isExportDefaultSpecifier() {
    const {
      type: t
    } = this.state;
    if (Si(t)) {
      if (t === 95 && !this.state.containsEsc || t === 100)
        return !1;
      if ((t === 130 || t === 129) && !this.state.containsEsc) {
        const {
          type: n
        } = this.lookahead();
        if (Si(n) && n !== 98 || n === 5)
          return this.expectOnePlugin(["flow", "typescript"]), !1;
      }
    } else if (!this.match(65))
      return !1;
    const r = this.nextTokenStart(), i = this.isUnparsedContextual(r, "from");
    if (this.input.charCodeAt(r) === 44 || Si(this.state.type) && i)
      return !0;
    if (this.match(65) && i) {
      const n = this.input.charCodeAt(this.nextTokenStartSince(r + 4));
      return n === 34 || n === 39;
    }
    return !1;
  }
  parseExportFrom(t, r) {
    this.eatContextual(98) ? (t.source = this.parseImportSource(), this.checkExport(t), this.maybeParseImportAttributes(t), this.checkJSONModuleImport(t)) : r && this.unexpected(), this.semicolon();
  }
  shouldParseExportDeclaration() {
    const {
      type: t
    } = this.state;
    return t === 26 && (this.expectOnePlugin(["decorators", "decorators-legacy"]), this.hasPlugin("decorators")) ? (this.getPluginOption("decorators", "decoratorsBeforeExport") === !0 && this.raise(tt.DecoratorBeforeExport, this.state.startLoc), !0) : this.isContextual(107) ? (this.raise(tt.UsingDeclarationExport, this.state.startLoc), !0) : this.isContextual(96) && this.startsAwaitUsing() ? (this.raise(tt.UsingDeclarationExport, this.state.startLoc), !0) : t === 74 || t === 75 || t === 68 || t === 80 || this.isLet() || this.isAsyncFunction();
  }
  checkExport(t, r, i, n) {
    if (r) {
      var s;
      if (i) {
        if (this.checkDuplicateExports(t, "default"), this.hasPlugin("exportDefaultFrom")) {
          var a;
          const o = t.declaration;
          o.type === "Identifier" && o.name === "from" && o.end - o.start === 4 && !((a = o.extra) != null && a.parenthesized) && this.raise(tt.ExportDefaultFromAsIdentifier, o);
        }
      } else if ((s = t.specifiers) != null && s.length)
        for (const o of t.specifiers) {
          const {
            exported: l
          } = o, u = l.type === "Identifier" ? l.name : l.value;
          if (this.checkDuplicateExports(o, u), !n && o.local) {
            const {
              local: c
            } = o;
            c.type !== "Identifier" ? this.raise(tt.ExportBindingIsString, o, {
              localName: c.value,
              exportName: u
            }) : (this.checkReservedWord(c.name, c.loc.start, !0, !1), this.scope.checkLocalExport(c));
          }
        }
      else if (t.declaration) {
        const o = t.declaration;
        if (o.type === "FunctionDeclaration" || o.type === "ClassDeclaration") {
          const {
            id: l
          } = o;
          if (!l)
            throw new Error("Assertion failure");
          this.checkDuplicateExports(t, l.name);
        } else if (o.type === "VariableDeclaration")
          for (const l of o.declarations)
            this.checkDeclaration(l.id);
      }
    }
  }
  checkDeclaration(t) {
    if (t.type === "Identifier")
      this.checkDuplicateExports(t, t.name);
    else if (t.type === "ObjectPattern")
      for (const r of t.properties)
        this.checkDeclaration(r);
    else if (t.type === "ArrayPattern")
      for (const r of t.elements)
        r && this.checkDeclaration(r);
    else
      t.type === "ObjectProperty" ? this.checkDeclaration(t.value) : t.type === "RestElement" ? this.checkDeclaration(t.argument) : t.type === "AssignmentPattern" && this.checkDeclaration(t.left);
  }
  checkDuplicateExports(t, r) {
    this.exportedIdentifiers.has(r) && (r === "default" ? this.raise(tt.DuplicateDefaultExport, t) : this.raise(tt.DuplicateExport, t, {
      exportName: r
    })), this.exportedIdentifiers.add(r);
  }
  parseExportSpecifiers(t) {
    const r = [];
    let i = !0;
    for (this.expect(5); !this.eat(8); ) {
      if (i)
        i = !1;
      else if (this.expect(12), this.eat(8))
        break;
      const n = this.isContextual(130), s = this.match(133), a = this.startNode();
      a.local = this.parseModuleExportName(), r.push(this.parseExportSpecifier(a, s, t, n));
    }
    return r;
  }
  parseExportSpecifier(t, r, i, n) {
    return this.eatContextual(93) ? t.exported = this.parseModuleExportName() : r ? t.exported = jQe(t.local) : t.exported || (t.exported = vf(t.local)), this.finishNode(t, "ExportSpecifier");
  }
  parseModuleExportName() {
    if (this.match(133)) {
      const t = this.parseStringLiteral(this.state.value), r = t.value.match(dZe);
      return r && this.raise(tt.ModuleExportNameHasLoneSurrogate, t, {
        surrogateCharCode: r[0].charCodeAt(0)
      }), t;
    }
    return this.parseIdentifier(!0);
  }
  isJSONModuleImport(t) {
    return t.assertions != null ? t.assertions.some(({
      key: r,
      value: i
    }) => i.value === "json" && (r.type === "Identifier" ? r.name === "type" : r.value === "type")) : !1;
  }
  checkImportReflection(t) {
    const {
      specifiers: r
    } = t, i = r.length === 1 ? r[0].type : null;
    if (t.phase === "source")
      i !== "ImportDefaultSpecifier" && this.raise(tt.SourcePhaseImportRequiresDefault, r[0].loc.start);
    else if (t.phase === "defer")
      i !== "ImportNamespaceSpecifier" && this.raise(tt.DeferImportRequiresNamespace, r[0].loc.start);
    else if (t.module) {
      var n;
      i !== "ImportDefaultSpecifier" && this.raise(tt.ImportReflectionNotBinding, r[0].loc.start), ((n = t.assertions) == null ? void 0 : n.length) > 0 && this.raise(tt.ImportReflectionHasAssertion, r[0].loc.start);
    }
  }
  checkJSONModuleImport(t) {
    if (this.isJSONModuleImport(t) && t.type !== "ExportAllDeclaration") {
      const {
        specifiers: r
      } = t;
      if (r != null) {
        const i = r.find((n) => {
          let s;
          if (n.type === "ExportSpecifier" ? s = n.local : n.type === "ImportSpecifier" && (s = n.imported), s !== void 0)
            return s.type === "Identifier" ? s.name !== "default" : s.value !== "default";
        });
        i !== void 0 && this.raise(tt.ImportJSONBindingNotDefault, i.loc.start);
      }
    }
  }
  isPotentialImportPhase(t) {
    return t ? !1 : this.isContextual(105) || this.isContextual(97) || this.isContextual(127);
  }
  applyImportPhase(t, r, i, n) {
    r || (i === "module" ? (this.expectPlugin("importReflection", n), t.module = !0) : this.hasPlugin("importReflection") && (t.module = !1), i === "source" ? (this.expectPlugin("sourcePhaseImports", n), t.phase = "source") : i === "defer" ? (this.expectPlugin("deferredImportEvaluation", n), t.phase = "defer") : this.hasPlugin("sourcePhaseImports") && (t.phase = null));
  }
  parseMaybeImportPhase(t, r) {
    if (!this.isPotentialImportPhase(r))
      return this.applyImportPhase(t, r, null), null;
    const i = this.parseIdentifier(!0), {
      type: n
    } = this.state;
    return (kc(n) ? n !== 98 || this.lookaheadCharCode() === 102 : n !== 12) ? (this.resetPreviousIdentifierLeadingComments(i), this.applyImportPhase(t, r, i.name, i.loc.start), null) : (this.applyImportPhase(t, r, null), i);
  }
  isPrecedingIdImportPhase(t) {
    const {
      type: r
    } = this.state;
    return Si(r) ? r !== 98 || this.lookaheadCharCode() === 102 : r !== 12;
  }
  parseImport(t) {
    return this.match(133) ? this.parseImportSourceAndAttributes(t) : this.parseImportSpecifiersAndAfter(t, this.parseMaybeImportPhase(t, !1));
  }
  parseImportSpecifiersAndAfter(t, r) {
    t.specifiers = [];
    const n = !this.maybeParseDefaultImportSpecifier(t, r) || this.eat(12), s = n && this.maybeParseStarImportSpecifier(t);
    return n && !s && this.parseNamedImportSpecifiers(t), this.expectContextual(98), this.parseImportSourceAndAttributes(t);
  }
  parseImportSourceAndAttributes(t) {
    var r;
    return (r = t.specifiers) != null || (t.specifiers = []), t.source = this.parseImportSource(), this.maybeParseImportAttributes(t), this.checkImportReflection(t), this.checkJSONModuleImport(t), this.semicolon(), this.finishNode(t, "ImportDeclaration");
  }
  parseImportSource() {
    return this.match(133) || this.unexpected(), this.parseExprAtom();
  }
  parseImportSpecifierLocal(t, r, i) {
    r.local = this.parseIdentifier(), t.specifiers.push(this.finishImportSpecifier(r, i));
  }
  finishImportSpecifier(t, r, i = 8201) {
    return this.checkLVal(t.local, {
      in: {
        type: r
      },
      binding: i
    }), this.finishNode(t, r);
  }
  parseImportAttributes() {
    this.expect(5);
    const t = [], r = /* @__PURE__ */ new Set();
    do {
      if (this.match(8))
        break;
      const i = this.startNode(), n = this.state.value;
      if (r.has(n) && this.raise(tt.ModuleAttributesWithDuplicateKeys, this.state.startLoc, {
        key: n
      }), r.add(n), this.match(133) ? i.key = this.parseStringLiteral(n) : i.key = this.parseIdentifier(!0), this.expect(14), !this.match(133))
        throw this.raise(tt.ModuleAttributeInvalidValue, this.state.startLoc);
      i.value = this.parseStringLiteral(this.state.value), t.push(this.finishNode(i, "ImportAttribute"));
    } while (this.eat(12));
    return this.expect(8), t;
  }
  parseModuleAttributes() {
    const t = [], r = /* @__PURE__ */ new Set();
    do {
      const i = this.startNode();
      if (i.key = this.parseIdentifier(!0), i.key.name !== "type" && this.raise(tt.ModuleAttributeDifferentFromType, i.key), r.has(i.key.name) && this.raise(tt.ModuleAttributesWithDuplicateKeys, i.key, {
        key: i.key.name
      }), r.add(i.key.name), this.expect(14), !this.match(133))
        throw this.raise(tt.ModuleAttributeInvalidValue, this.state.startLoc);
      i.value = this.parseStringLiteral(this.state.value), t.push(this.finishNode(i, "ImportAttribute"));
    } while (this.eat(12));
    return t;
  }
  maybeParseImportAttributes(t) {
    let r, i = !1;
    if (this.match(76)) {
      if (this.hasPrecedingLineBreak() && this.lookaheadCharCode() === 40)
        return;
      this.next(), this.hasPlugin("moduleAttributes") ? r = this.parseModuleAttributes() : (this.expectImportAttributesPlugin(), r = this.parseImportAttributes()), i = !0;
    } else if (this.isContextual(94) && !this.hasPrecedingLineBreak())
      this.hasPlugin("importAttributes") ? (this.getPluginOption("importAttributes", "deprecatedAssertSyntax") !== !0 && this.raise(tt.ImportAttributesUseAssert, this.state.startLoc), this.addExtra(t, "deprecatedAssertSyntax", !0)) : this.expectOnePlugin(["importAttributes", "importAssertions"]), this.next(), r = this.parseImportAttributes();
    else if (this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions"))
      r = [];
    else if (this.hasPlugin("moduleAttributes"))
      r = [];
    else
      return;
    !i && this.hasPlugin("importAssertions") ? t.assertions = r : t.attributes = r;
  }
  maybeParseDefaultImportSpecifier(t, r) {
    if (r) {
      const i = this.startNodeAtNode(r);
      return i.local = r, t.specifiers.push(this.finishImportSpecifier(i, "ImportDefaultSpecifier")), !0;
    } else if (kc(this.state.type))
      return this.parseImportSpecifierLocal(t, this.startNode(), "ImportDefaultSpecifier"), !0;
    return !1;
  }
  maybeParseStarImportSpecifier(t) {
    if (this.match(55)) {
      const r = this.startNode();
      return this.next(), this.expectContextual(93), this.parseImportSpecifierLocal(t, r, "ImportNamespaceSpecifier"), !0;
    }
    return !1;
  }
  parseNamedImportSpecifiers(t) {
    let r = !0;
    for (this.expect(5); !this.eat(8); ) {
      if (r)
        r = !1;
      else {
        if (this.eat(14))
          throw this.raise(tt.DestructureNamedImport, this.state.startLoc);
        if (this.expect(12), this.eat(8))
          break;
      }
      const i = this.startNode(), n = this.match(133), s = this.isContextual(130);
      i.imported = this.parseModuleExportName();
      const a = this.parseImportSpecifier(i, n, t.importKind === "type" || t.importKind === "typeof", s, void 0);
      t.specifiers.push(a);
    }
  }
  parseImportSpecifier(t, r, i, n, s) {
    if (this.eatContextual(93))
      t.local = this.parseIdentifier();
    else {
      const {
        imported: a
      } = t;
      if (r)
        throw this.raise(tt.ImportBindingIsString, t, {
          importName: a.value
        });
      this.checkReservedWord(a.name, t.loc.start, !0, !0), t.local || (t.local = vf(a));
    }
    return this.finishImportSpecifier(t, "ImportSpecifier", s);
  }
  isThisParam(t) {
    return t.type === "Identifier" && t.name === "this";
  }
}, Rfe = class extends yZe {
  constructor(t, r) {
    t = pZe(t), super(t, r), this.options = t, this.initializeScopes(), this.plugins = gZe(this.options.plugins), this.filename = t.sourceFilename;
  }
  getScopeHandler() {
    return c9;
  }
  parse() {
    this.enterInitialScopes();
    const t = this.startNode(), r = this.startNode();
    return this.nextToken(), t.errors = null, this.parseTopLevel(t, r), t.errors = this.state.errors, t.comments.length = this.state.commentsLen, t;
  }
};
function gZe(e) {
  const t = /* @__PURE__ */ new Map();
  for (const r of e) {
    const [i, n] = Array.isArray(r) ? r : [r, {}];
    t.has(i) || t.set(i, n || {});
  }
  return t;
}
function bZe(e, t) {
  var r;
  if (((r = t) == null ? void 0 : r.sourceType) === "unambiguous") {
    t = Object.assign({}, t);
    try {
      t.sourceType = "module";
      const i = x0(t, e), n = i.parse();
      if (i.sawUnambiguousESM)
        return n;
      if (i.ambiguousScriptDifferentAst)
        try {
          return t.sourceType = "script", x0(t, e).parse();
        } catch (s) {
        }
      else
        n.program.sourceType = "script";
      return n;
    } catch (i) {
      try {
        return t.sourceType = "script", x0(t, e).parse();
      } catch (n) {
      }
      throw i;
    }
  } else
    return x0(t, e).parse();
}
function vZe(e, t) {
  const r = x0(t, e);
  return r.options.strictMode && (r.state.strict = !0), r.getExpression();
}
function TZe(e) {
  const t = {};
  for (const r of Object.keys(e))
    t[r] = Wp(e[r]);
  return t;
}
const SZe = TZe(JJe);
function x0(e, t) {
  let r = Rfe;
  return e != null && e.plugins && (uZe(e.plugins), r = xZe(e.plugins)), new r(e, t);
}
const bK = {};
function xZe(e) {
  const t = cZe.filter((n) => Fn(e, n)), r = t.join("/");
  let i = bK[r];
  if (!i) {
    i = Rfe;
    for (const n of t)
      i = Mfe[n](i);
    bK[r] = i;
  }
  return i;
}
qT.parse = bZe;
qT.parseExpression = vZe;
qT.tokTypes = SZe;
var am = {}, Nm = {}, Sb = {}, vK;
function EZe() {
  return vK || (vK = 1, Object.defineProperty(Sb, "__esModule", {
    value: !0
  }), Sb.default = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g, Sb.matchToToken = function(e) {
    var t = { type: "invalid", value: e[0], closed: void 0 };
    return e[1] ? (t.type = "string", t.closed = !!(e[3] || e[4])) : e[5] ? t.type = "comment" : e[6] ? (t.type = "comment", t.closed = !!e[7]) : e[8] ? t.type = "regex" : e[9] ? t.type = "number" : e[10] ? t.type = "name" : e[11] ? t.type = "punctuator" : e[12] && (t.type = "whitespace"), t;
  }), Sb;
}
var Mx = { exports: {} }, TK;
function Bfe() {
  if (TK)
    return Mx.exports;
  TK = 1;
  var e = String, t = function() {
    return { isColorSupported: !1, reset: e, bold: e, dim: e, italic: e, underline: e, inverse: e, hidden: e, strikethrough: e, black: e, red: e, green: e, yellow: e, blue: e, magenta: e, cyan: e, white: e, gray: e, bgBlack: e, bgRed: e, bgGreen: e, bgYellow: e, bgBlue: e, bgMagenta: e, bgCyan: e, bgWhite: e };
  };
  return Mx.exports = t(), Mx.exports.createColors = t, Mx.exports;
}
var SK;
function Ffe() {
  if (SK)
    return Nm;
  SK = 1, Object.defineProperty(Nm, "__esModule", {
    value: !0
  }), Nm.default = v, Nm.shouldHighlight = m;
  var e = EZe(), t = qc(), r = n(Bfe(), !0);
  function i(T) {
    if (typeof WeakMap != "function")
      return null;
    var S = /* @__PURE__ */ new WeakMap(), P = /* @__PURE__ */ new WeakMap();
    return (i = function(x) {
      return x ? P : S;
    })(T);
  }
  function n(T, S) {
    if (!S && T && T.__esModule)
      return T;
    if (T === null || typeof T != "object" && typeof T != "function")
      return { default: T };
    var P = i(S);
    if (P && P.has(T))
      return P.get(T);
    var x = { __proto__: null }, C = Object.defineProperty && Object.getOwnPropertyDescriptor;
    for (var D in T)
      if (D !== "default" && {}.hasOwnProperty.call(T, D)) {
        var w = C ? Object.getOwnPropertyDescriptor(T, D) : null;
        w && (w.get || w.set) ? Object.defineProperty(x, D, w) : x[D] = T[D];
      }
    return x.default = T, P && P.set(T, x), x;
  }
  const s = typeof process == "object" && (process.env.FORCE_COLOR === "0" || process.env.FORCE_COLOR === "false") ? (0, r.createColors)(!1) : r.default, a = (T, S) => (P) => T(S(P)), o = /* @__PURE__ */ new Set(["as", "async", "from", "get", "of", "set"]);
  function l(T) {
    return {
      keyword: T.cyan,
      capitalized: T.yellow,
      jsxIdentifier: T.yellow,
      punctuator: T.yellow,
      number: T.magenta,
      string: T.green,
      regex: T.magenta,
      comment: T.gray,
      invalid: a(a(T.white, T.bgRed), T.bold)
    };
  }
  const u = /\r\n|[\n\r\u2028\u2029]/, c = /^[()[\]{}]$/;
  let f;
  {
    const T = /^[a-z][\w-]*$/i, S = function(P, x, C) {
      if (P.type === "name") {
        if ((0, t.isKeyword)(P.value) || (0, t.isStrictReservedWord)(P.value, !0) || o.has(P.value))
          return "keyword";
        if (T.test(P.value) && (C[x - 1] === "<" || C.slice(x - 2, x) === "</"))
          return "jsxIdentifier";
        if (P.value[0] !== P.value[0].toLowerCase())
          return "capitalized";
      }
      return P.type === "punctuator" && c.test(P.value) ? "bracket" : P.type === "invalid" && (P.value === "@" || P.value === "#") ? "punctuator" : P.type;
    };
    f = function* (P) {
      let x;
      for (; x = e.default.exec(P); ) {
        const C = e.matchToToken(x);
        yield {
          type: S(C, x.index, P),
          value: C.value
        };
      }
    };
  }
  function h(T, S) {
    let P = "";
    for (const {
      type: x,
      value: C
    } of f(S)) {
      const D = T[x];
      D ? P += C.split(u).map((w) => D(w)).join("\n") : P += C;
    }
    return P;
  }
  function m(T) {
    return s.isColorSupported || T.forceColor;
  }
  let g;
  function y(T) {
    if (T) {
      var S;
      return (S = g) != null || (g = (0, r.createColors)(!0)), g;
    }
    return s;
  }
  function v(T, S = {}) {
    if (T !== "" && m(S)) {
      const P = l(y(S.forceColor));
      return h(P, T);
    } else
      return T;
  }
  {
    let T, S;
    Nm.getChalk = ({
      forceColor: P
    }) => {
      var x;
      if ((x = T) != null || (T = yo), P) {
        var C;
        return (C = S) != null || (S = new T.constructor({
          enabled: !0,
          level: 1
        })), S;
      }
      return T;
    };
  }
  return Nm;
}
Object.defineProperty(am, "__esModule", {
  value: !0
});
am.codeFrameColumns = $fe;
am.default = IZe;
var xK = Ffe(), MF = PZe(Bfe(), !0);
function jfe(e) {
  if (typeof WeakMap != "function")
    return null;
  var t = /* @__PURE__ */ new WeakMap(), r = /* @__PURE__ */ new WeakMap();
  return (jfe = function(i) {
    return i ? r : t;
  })(e);
}
function PZe(e, t) {
  if (!t && e && e.__esModule)
    return e;
  if (e === null || typeof e != "object" && typeof e != "function")
    return { default: e };
  var r = jfe(t);
  if (r && r.has(e))
    return r.get(e);
  var i = { __proto__: null }, n = Object.defineProperty && Object.getOwnPropertyDescriptor;
  for (var s in e)
    if (s !== "default" && {}.hasOwnProperty.call(e, s)) {
      var a = n ? Object.getOwnPropertyDescriptor(e, s) : null;
      a && (a.get || a.set) ? Object.defineProperty(i, s, a) : i[s] = e[s];
    }
  return i.default = e, r && r.set(e, i), i;
}
const wZe = typeof process == "object" && (process.env.FORCE_COLOR === "0" || process.env.FORCE_COLOR === "false") ? (0, MF.createColors)(!1) : MF.default, EK = (e, t) => (r) => e(t(r));
let NM;
function AZe(e) {
  if (e) {
    var t;
    return (t = NM) != null || (NM = (0, MF.createColors)(!0)), NM;
  }
  return wZe;
}
let PK = !1;
function CZe(e) {
  return {
    gutter: e.gray,
    marker: EK(e.red, e.bold),
    message: EK(e.red, e.bold)
  };
}
const wK = /\r\n|[\n\r\u2028\u2029]/;
function _Ze(e, t, r) {
  const i = Object.assign({
    column: 0,
    line: -1
  }, e.start), n = Object.assign({}, i, e.end), {
    linesAbove: s = 2,
    linesBelow: a = 3
  } = r || {}, o = i.line, l = i.column, u = n.line, c = n.column;
  let f = Math.max(o - (s + 1), 0), h = Math.min(t.length, u + a);
  o === -1 && (f = 0), u === -1 && (h = t.length);
  const m = u - o, g = {};
  if (m)
    for (let y = 0; y <= m; y++) {
      const v = y + o;
      if (!l)
        g[v] = !0;
      else if (y === 0) {
        const T = t[v - 1].length;
        g[v] = [l, T - l + 1];
      } else if (y === m)
        g[v] = [0, c];
      else {
        const T = t[v - y].length;
        g[v] = [0, T];
      }
    }
  else
    l === c ? l ? g[o] = [l, 0] : g[o] = !0 : g[o] = [l, c - l];
  return {
    start: f,
    end: h,
    markerLines: g
  };
}
function $fe(e, t, r = {}) {
  const i = (r.highlightCode || r.forceColor) && (0, xK.shouldHighlight)(r), n = AZe(r.forceColor), s = CZe(n), a = (y, v) => i ? y(v) : v, o = e.split(wK), {
    start: l,
    end: u,
    markerLines: c
  } = _Ze(t, o, r), f = t.start && typeof t.start.column == "number", h = String(u).length;
  let g = (i ? (0, xK.default)(e, r) : e).split(wK, u).slice(l, u).map((y, v) => {
    const T = l + 1 + v, S = " ".concat(T).slice(-h), P = " ".concat(S, " |"), x = c[T], C = !c[T + 1];
    if (x) {
      let D = "";
      if (Array.isArray(x)) {
        const w = y.slice(0, Math.max(x[0] - 1, 0)).replace(/[^\t]/g, " "), A = x[1] || 1;
        D = ["\n ", a(s.gutter, P.replace(/\d/g, " ")), " ", w, a(s.marker, "^").repeat(A)].join(""), C && r.message && (D += " " + a(s.message, r.message));
      }
      return [a(s.marker, ">"), a(s.gutter, P), y.length > 0 ? " ".concat(y) : "", D].join("");
    } else
      return " ".concat(a(s.gutter, P)).concat(y.length > 0 ? " ".concat(y) : "");
  }).join("\n");
  return r.message && !f && (g = "".concat(" ".repeat(h + 1)).concat(r.message, "\n").concat(g)), i ? n.reset(g) : g;
}
function IZe(e, t, r, i = {}) {
  if (!PK) {
    PK = !0;
    const s = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";
    if (process.emitWarning)
      process.emitWarning(s, "DeprecationWarning");
    else {
      const a = new Error(s);
      a.name = "DeprecationWarning", console.warn(new Error(s));
    }
  }
  return r = Math.max(r, 0), $fe(e, {
    start: {
      column: r,
      line: t
    }
  }, i);
}
Object.defineProperty(l_, "__esModule", {
  value: !0
});
l_.default = VZe;
var kZe = sn(), OZe = qT, NZe = am;
const {
  isCallExpression: DZe,
  isExpressionStatement: LZe,
  isFunction: MZe,
  isIdentifier: RZe,
  isJSXIdentifier: BZe,
  isNewExpression: FZe,
  isPlaceholder: Rx,
  isStatement: jZe,
  isStringLiteral: AK,
  removePropertiesDeep: $Ze,
  traverse: UZe
} = kZe, qZe = /^[_$A-Z0-9]+$/;
function VZe(e, t, r) {
  const {
    placeholderWhitelist: i,
    placeholderPattern: n,
    preserveComments: s,
    syntacticPlaceholders: a
  } = r, o = KZe(t, r.parser, a);
  $Ze(o, {
    preserveComments: s
  }), e.validate(o);
  const l = {
    syntactic: {
      placeholders: [],
      placeholderNames: /* @__PURE__ */ new Set()
    },
    legacy: {
      placeholders: [],
      placeholderNames: /* @__PURE__ */ new Set()
    },
    placeholderWhitelist: i,
    placeholderPattern: n,
    syntacticPlaceholders: a
  };
  return UZe(o, WZe, l), Object.assign({
    ast: o
  }, l.syntactic.placeholders.length ? l.syntactic : l.legacy);
}
function WZe(e, t, r) {
  var i;
  let n, s = r.syntactic.placeholders.length > 0;
  if (Rx(e)) {
    if (r.syntacticPlaceholders === !1)
      throw new Error("%%foo%%-style placeholders can't be used when '.syntacticPlaceholders' is false.");
    n = e.name.name, s = !0;
  } else {
    if (s || r.syntacticPlaceholders)
      return;
    if (RZe(e) || BZe(e))
      n = e.name;
    else if (AK(e))
      n = e.value;
    else
      return;
  }
  if (s && (r.placeholderPattern != null || r.placeholderWhitelist != null))
    throw new Error("'.placeholderWhitelist' and '.placeholderPattern' aren't compatible with '.syntacticPlaceholders: true'");
  if (!s && (r.placeholderPattern === !1 || !(r.placeholderPattern || qZe).test(n)) && !((i = r.placeholderWhitelist) != null && i.has(n)))
    return;
  t = t.slice();
  const {
    node: a,
    key: o
  } = t[t.length - 1];
  let l;
  AK(e) || Rx(e, {
    expectedNode: "StringLiteral"
  }) ? l = "string" : FZe(a) && o === "arguments" || DZe(a) && o === "arguments" || MZe(a) && o === "params" ? l = "param" : LZe(a) && !Rx(e) ? (l = "statement", t = t.slice(0, -1)) : jZe(e) && Rx(e) ? l = "statement" : l = "other";
  const {
    placeholders: u,
    placeholderNames: c
  } = s ? r.syntactic : r.legacy;
  u.push({
    name: n,
    type: l,
    resolve: (f) => HZe(f, t),
    isDuplicate: c.has(n)
  }), c.add(n);
}
function HZe(e, t) {
  let r = e;
  for (let s = 0; s < t.length - 1; s++) {
    const {
      key: a,
      index: o
    } = t[s];
    o === void 0 ? r = r[a] : r = r[a][o];
  }
  const {
    key: i,
    index: n
  } = t[t.length - 1];
  return {
    parent: r,
    key: i,
    index: n
  };
}
function KZe(e, t, r) {
  const i = (t.plugins || []).slice();
  r !== !1 && i.push("placeholders"), t = Object.assign({
    allowReturnOutsideFunction: !0,
    allowSuperOutsideMethod: !0,
    sourceType: "module"
  }, t, {
    plugins: i
  });
  try {
    return (0, OZe.parse)(e, t);
  } catch (n) {
    const s = n.loc;
    throw s && (n.message += "\n" + (0, NZe.codeFrameColumns)(e, {
      start: s
    }), n.code = "BABEL_TEMPLATE_PARSE_ERROR"), n;
  }
}
var c_ = {};
Object.defineProperty(c_, "__esModule", {
  value: !0
});
c_.default = QZe;
var zZe = sn();
const {
  blockStatement: GZe,
  cloneNode: RF,
  emptyStatement: YZe,
  expressionStatement: DM,
  identifier: Bx,
  isStatement: CK,
  isStringLiteral: XZe,
  stringLiteral: JZe,
  validate: _K
} = zZe;
function QZe(e, t) {
  const r = RF(e.ast);
  return t && (e.placeholders.forEach((i) => {
    if (!Object.prototype.hasOwnProperty.call(t, i.name)) {
      const n = i.name;
      throw new Error('Error: No substitution given for "'.concat(n, "\". If this is not meant to be a\n            placeholder you may want to consider passing one of the following options to @babel/template:\n            - { placeholderPattern: false, placeholderWhitelist: new Set(['").concat(n, "'])}\n            - { placeholderPattern: /^").concat(n, "$/ }"));
    }
  }), Object.keys(t).forEach((i) => {
    if (!e.placeholderNames.has(i))
      throw new Error('Unknown substitution "'.concat(i, '" given'));
  })), e.placeholders.slice().reverse().forEach((i) => {
    try {
      ZZe(i, r, t && t[i.name] || null);
    } catch (n) {
      throw n.message = '@babel/template placeholder "'.concat(i.name, '": ').concat(n.message), n;
    }
  }), r;
}
function ZZe(e, t, r) {
  e.isDuplicate && (Array.isArray(r) ? r = r.map((a) => RF(a)) : typeof r == "object" && (r = RF(r)));
  const {
    parent: i,
    key: n,
    index: s
  } = e.resolve(t);
  if (e.type === "string") {
    if (typeof r == "string" && (r = JZe(r)), !r || !XZe(r))
      throw new Error("Expected string substitution");
  } else if (e.type === "statement")
    s === void 0 ? r ? Array.isArray(r) ? r = GZe(r) : typeof r == "string" ? r = DM(Bx(r)) : CK(r) || (r = DM(r)) : r = YZe() : r && !Array.isArray(r) && (typeof r == "string" && (r = Bx(r)), CK(r) || (r = DM(r)));
  else if (e.type === "param") {
    if (typeof r == "string" && (r = Bx(r)), s === void 0)
      throw new Error("Assertion failure.");
  } else if (typeof r == "string" && (r = Bx(r)), Array.isArray(r))
    throw new Error("Cannot replace single expression with an array.");
  if (s === void 0)
    _K(i, n, r), i[n] = r;
  else {
    const a = i[n].slice();
    e.type === "statement" || e.type === "param" ? r == null ? a.splice(s, 1) : Array.isArray(r) ? a.splice(s, 1, ...r) : a[s] = r : a[s] = r, _K(i, n, a), i[n] = a;
  }
}
Object.defineProperty(Z6, "__esModule", {
  value: !0
});
Z6.default = iet;
var eet = sm, tet = l_, ret = c_;
function iet(e, t, r) {
  t = e.code(t);
  let i;
  return (n) => {
    const s = (0, eet.normalizeReplacements)(n);
    return i || (i = (0, tet.default)(e, t, r)), e.unwrap((0, ret.default)(i, s));
  };
}
var f9 = {};
Object.defineProperty(f9, "__esModule", {
  value: !0
});
f9.default = oet;
var net = sm, set = l_, aet = c_;
function oet(e, t, r) {
  const {
    metadata: i,
    names: n
  } = uet(e, t, r);
  return (s) => {
    const a = {};
    return s.forEach((o, l) => {
      a[n[l]] = o;
    }), (o) => {
      const l = (0, net.normalizeReplacements)(o);
      return l && Object.keys(l).forEach((u) => {
        if (Object.prototype.hasOwnProperty.call(a, u))
          throw new Error("Unexpected replacement overlap.");
      }), e.unwrap((0, aet.default)(i, l ? Object.assign(l, a) : a));
    };
  };
}
function uet(e, t, r) {
  let i = "BABEL_TPL$";
  const n = t.join("");
  do
    i = "$$" + i;
  while (n.includes(i));
  const {
    names: s,
    code: a
  } = cet(t, i);
  return {
    metadata: (0, set.default)(e, e.code(a), {
      parser: r.parser,
      placeholderWhitelist: new Set(s.concat(r.placeholderWhitelist ? Array.from(r.placeholderWhitelist) : [])),
      placeholderPattern: r.placeholderPattern,
      preserveComments: r.preserveComments,
      syntacticPlaceholders: r.syntacticPlaceholders
    }),
    names: s
  };
}
function cet(e, t) {
  const r = [];
  let i = e[0];
  for (let n = 1; n < e.length; n++) {
    const s = "".concat(t).concat(n - 1);
    r.push(s), i += s + e[n];
  }
  return {
    names: r,
    code: i
  };
}
Object.defineProperty(Q6, "__esModule", {
  value: !0
});
Q6.default = Ufe;
var Jc = sm, IK = Z6, kK = f9;
const OK = (0, Jc.validate)({
  placeholderPattern: !1
});
function Ufe(e, t) {
  const r = /* @__PURE__ */ new WeakMap(), i = /* @__PURE__ */ new WeakMap(), n = t || (0, Jc.validate)(null);
  return Object.assign((s, ...a) => {
    if (typeof s == "string") {
      if (a.length > 1)
        throw new Error("Unexpected extra params.");
      return NK((0, IK.default)(e, s, (0, Jc.merge)(n, (0, Jc.validate)(a[0]))));
    } else if (Array.isArray(s)) {
      let o = r.get(s);
      return o || (o = (0, kK.default)(e, s, n), r.set(s, o)), NK(o(a));
    } else if (typeof s == "object" && s) {
      if (a.length > 0)
        throw new Error("Unexpected extra params.");
      return Ufe(e, (0, Jc.merge)(n, (0, Jc.validate)(s)));
    }
    throw new Error("Unexpected template param ".concat(typeof s));
  }, {
    ast: (s, ...a) => {
      if (typeof s == "string") {
        if (a.length > 1)
          throw new Error("Unexpected extra params.");
        return (0, IK.default)(e, s, (0, Jc.merge)((0, Jc.merge)(n, (0, Jc.validate)(a[0])), OK))();
      } else if (Array.isArray(s)) {
        let o = i.get(s);
        return o || (o = (0, kK.default)(e, s, (0, Jc.merge)(n, OK)), i.set(s, o)), o(a)();
      }
      throw new Error("Unexpected template param ".concat(typeof s));
    }
  });
}
function NK(e) {
  let t = "";
  try {
    throw new Error();
  } catch (r) {
    r.stack && (t = r.stack.split("\n").slice(3).join("\n"));
  }
  return (r) => {
    try {
      return e(r);
    } catch (i) {
      throw i.stack += "\n    =============\n".concat(t), i;
    }
  };
}
Object.defineProperty(rn, "__esModule", {
  value: !0
});
rn.statements = rn.statement = rn.smart = rn.program = rn.expression = rn.default = void 0;
var VT = Dl, WT = Q6;
const yP = (0, WT.default)(VT.smart);
rn.smart = yP;
const qfe = (0, WT.default)(VT.statement);
rn.statement = qfe;
const Vfe = (0, WT.default)(VT.statements);
rn.statements = Vfe;
const Wfe = (0, WT.default)(VT.expression);
rn.expression = Wfe;
const Hfe = (0, WT.default)(VT.program);
rn.program = Hfe;
var pet = Object.assign(yP.bind(void 0), {
  smart: yP,
  statement: qfe,
  statements: Vfe,
  expression: Wfe,
  program: Hfe,
  ast: yP.ast
});
rn.default = pet;
var p_ = {}, Hh = {};
Object.defineProperty(Hh, "__esModule", {
  value: !0
});
Hh.declare = Kfe;
Hh.declarePreset = void 0;
const BF = {
  assertVersion: (e) => (t) => {
    det(t, e.version);
  }
};
Object.assign(BF, {
  targets: () => () => ({}),
  assumption: () => () => {
  }
});
function Kfe(e) {
  return (t, r, i) => {
    var n;
    let s;
    for (const o of Object.keys(BF)) {
      var a;
      t[o] || ((a = s) != null || (s = het(t)), s[o] = BF[o](s));
    }
    return e((n = s) != null ? n : t, r || {}, i);
  };
}
const fet = Kfe;
Hh.declarePreset = fet;
function het(e) {
  let t = null;
  return typeof e.version == "string" && /^7\./.test(e.version) && (t = Object.getPrototypeOf(e), t && (!Fx(t, "version") || !Fx(t, "transform") || !Fx(t, "template") || !Fx(t, "types")) && (t = null)), Object.assign({}, t, e);
}
function Fx(e, t) {
  return Object.prototype.hasOwnProperty.call(e, t);
}
function det(e, t) {
  if (typeof e == "number") {
    if (!Number.isInteger(e))
      throw new Error("Expected string or integer value.");
    e = "^".concat(e, ".0.0-0");
  }
  if (typeof e != "string")
    throw new Error("Expected string or integer value.");
  const r = Error.stackTraceLimit;
  typeof r == "number" && r < 25 && (Error.stackTraceLimit = 25);
  let i;
  throw t.slice(0, 2) === "7." ? i = new Error('Requires Babel "^7.0.0-beta.41", but was loaded with "'.concat(t, '". ') + "You'll need to update your @babel/core version.") : i = new Error('Requires Babel "'.concat(e, '", but was loaded with "').concat(t, '". ') + 'If you are sure you have a compatible version of @babel/core, it is likely that something in your build process is loading the wrong version. Inspect the stack trace of this error to look for the first entry that doesn\'t mention "@babel/core" or "babel-core" to see what is calling Babel.'), typeof r == "number" && (Error.stackTraceLimit = r), Object.assign(i, {
    code: "BABEL_VERSION_UNSUPPORTED",
    version: t,
    range: e
  });
}
Object.defineProperty(p_, "__esModule", {
  value: !0
});
p_.default = void 0;
var met = Hh, yet = (0, met.declare)((e) => (e.assertVersion(7), {
  name: "syntax-jsx",
  manipulateOptions(t, r) {
    r.plugins.some((i) => (Array.isArray(i) ? i[0] : i) === "typescript") || r.plugins.push("jsx");
  }
}));
p_.default = yet;
var f_ = {}, h_ = {}, LM = { exports: {} }, MM = {}, Jy = {}, zfe = {}, Gfe = function() {
  if (typeof Symbol != "function" || typeof Object.getOwnPropertySymbols != "function")
    return !1;
  if (typeof Symbol.iterator == "symbol")
    return !0;
  var t = {}, r = Symbol("test"), i = Object(r);
  if (typeof r == "string" || Object.prototype.toString.call(r) !== "[object Symbol]" || Object.prototype.toString.call(i) !== "[object Symbol]")
    return !1;
  var n = 42;
  t[r] = n;
  for (var s in t)
    return !1;
  if (typeof Object.keys == "function" && Object.keys(t).length !== 0 || typeof Object.getOwnPropertyNames == "function" && Object.getOwnPropertyNames(t).length !== 0)
    return !1;
  var a = Object.getOwnPropertySymbols(t);
  if (a.length !== 1 || a[0] !== r || !Object.prototype.propertyIsEnumerable.call(t, r))
    return !1;
  if (typeof Object.getOwnPropertyDescriptor == "function") {
    var o = (
      /** @type {PropertyDescriptor} */
      Object.getOwnPropertyDescriptor(t, r)
    );
    if (o.value !== n || o.enumerable !== !0)
      return !1;
  }
  return !0;
}, get = Gfe, d_ = function() {
  return get() && !!Symbol.toStringTag;
}, Yfe = Object, bet = Error, vet = EvalError, Tet = RangeError, xet = ReferenceError, Xfe = SyntaxError, m_ = TypeError, Eet = URIError, Pet = Math.abs, wet = Math.floor, Aet = Math.max, Cet = Math.min, _et = Math.pow, Iet = Math.round, ket = Number.isNaN || function(t) {
  return t !== t;
}, Oet = ket, Net = function(t) {
  return Oet(t) || t === 0 ? t : t < 0 ? -1 : 1;
}, Det = Object.getOwnPropertyDescriptor, gP = Det;
if (gP)
  try {
    gP([], "length");
  } catch (e) {
    gP = null;
  }
var Eg = gP, bP = Object.defineProperty || !1;
if (bP)
  try {
    bP({}, "a", { value: 1 });
  } catch (e) {
    bP = !1;
  }
var y_ = bP, RM, DK;
function Let() {
  if (DK)
    return RM;
  DK = 1;
  var e = typeof Symbol != "undefined" && Symbol, t = Gfe;
  return RM = function() {
    return typeof e != "function" || typeof Symbol != "function" || typeof e("foo") != "symbol" || typeof Symbol("bar") != "symbol" ? !1 : t();
  }, RM;
}
var BM, LK;
function Jfe() {
  return LK || (LK = 1, BM = typeof Reflect != "undefined" && Reflect.getPrototypeOf || null), BM;
}
var FM, MK;
function Qfe() {
  if (MK)
    return FM;
  MK = 1;
  var e = Yfe;
  return FM = e.getPrototypeOf || null, FM;
}
var Met = "Function.prototype.bind called on incompatible ", Ret = Object.prototype.toString, Bet = Math.max, Fet = "[object Function]", RK = function(t, r) {
  for (var i = [], n = 0; n < t.length; n += 1)
    i[n] = t[n];
  for (var s = 0; s < r.length; s += 1)
    i[s + t.length] = r[s];
  return i;
}, jet = function(t, r) {
  for (var i = [], n = r || 0, s = 0; n < t.length; n += 1, s += 1)
    i[s] = t[n];
  return i;
}, $et = function(e, t) {
  for (var r = "", i = 0; i < e.length; i += 1)
    r += e[i], i + 1 < e.length && (r += t);
  return r;
}, Uet = function(t) {
  var r = this;
  if (typeof r != "function" || Ret.apply(r) !== Fet)
    throw new TypeError(Met + r);
  for (var i = jet(arguments, 1), n, s = function() {
    if (this instanceof n) {
      var c = r.apply(
        this,
        RK(i, arguments)
      );
      return Object(c) === c ? c : this;
    }
    return r.apply(
      t,
      RK(i, arguments)
    );
  }, a = Bet(0, r.length - i.length), o = [], l = 0; l < a; l++)
    o[l] = "$" + l;
  if (n = Function("binder", "return function (" + $et(o, ",") + "){ return binder.apply(this,arguments); }")(s), r.prototype) {
    var u = function() {
    };
    u.prototype = r.prototype, n.prototype = new u(), u.prototype = null;
  }
  return n;
}, qet = Uet, Pg = Function.prototype.bind || qet, h9 = Function.prototype.call, jM, BK;
function d9() {
  return BK || (BK = 1, jM = Function.prototype.apply), jM;
}
var Vet = typeof Reflect != "undefined" && Reflect && Reflect.apply, Wet = Pg, Het = d9(), Ket = h9, zet = Vet, Zfe = zet || Wet.call(Ket, Het), Get = Pg, Yet = m_, Xet = h9, Jet = Zfe, m9 = function(t) {
  if (t.length < 1 || typeof t[0] != "function")
    throw new Yet("a function is required");
  return Jet(Get, Xet, t);
}, $M, FK;
function Qet() {
  if (FK)
    return $M;
  FK = 1;
  var e = m9, t = Eg, r;
  try {
    r = /** @type {{ __proto__?: typeof Array.prototype }} */
    [].__proto__ === Array.prototype;
  } catch (a) {
    if (!a || typeof a != "object" || !("code" in a) || a.code !== "ERR_PROTO_ACCESS")
      throw a;
  }
  var i = !!r && t && t(
    Object.prototype,
    /** @type {keyof typeof Object.prototype} */
    "__proto__"
  ), n = Object, s = n.getPrototypeOf;
  return $M = i && typeof i.get == "function" ? e([i.get]) : typeof s == "function" ? (
    /** @type {import('./get')} */
    function(o) {
      return s(o == null ? o : n(o));
    }
  ) : !1, $M;
}
var UM, jK;
function Zet() {
  if (jK)
    return UM;
  jK = 1;
  var e = Jfe(), t = Qfe(), r = Qet();
  return UM = e ? function(n) {
    return e(n);
  } : t ? function(n) {
    if (!n || typeof n != "object" && typeof n != "function")
      throw new TypeError("getProto: not an object");
    return t(n);
  } : r ? function(n) {
    return r(n);
  } : null, UM;
}
var ett = Function.prototype.call, ttt = Object.prototype.hasOwnProperty, rtt = Pg, ehe = rtt.call(ett, ttt), Jr, itt = Yfe, ntt = bet, stt = vet, att = Tet, ott = xet, Qy = Xfe, ky = m_, ltt = Eet, utt = Pet, ctt = wet, ptt = Aet, ftt = Cet, htt = _et, dtt = Iet, mtt = Net, the = Function, qM = function(e) {
  try {
    return the('"use strict"; return (' + e + ").constructor;")();
  } catch (t) {
  }
}, Jv = Eg, ytt = y_, VM = function() {
  throw new ky();
}, gtt = Jv ? function() {
  try {
    return arguments.callee, VM;
  } catch (e) {
    try {
      return Jv(arguments, "callee").get;
    } catch (t) {
      return VM;
    }
  }
}() : VM, Dm = Let()(), is = Zet(), btt = Qfe(), vtt = Jfe(), rhe = d9(), HT = h9, ry = {}, Ttt = typeof Uint8Array == "undefined" || !is ? Jr : is(Uint8Array), $d = {
  __proto__: null,
  "%AggregateError%": typeof AggregateError == "undefined" ? Jr : AggregateError,
  "%Array%": Array,
  "%ArrayBuffer%": typeof ArrayBuffer == "undefined" ? Jr : ArrayBuffer,
  "%ArrayIteratorPrototype%": Dm && is ? is([][Symbol.iterator]()) : Jr,
  "%AsyncFromSyncIteratorPrototype%": Jr,
  "%AsyncFunction%": ry,
  "%AsyncGenerator%": ry,
  "%AsyncGeneratorFunction%": ry,
  "%AsyncIteratorPrototype%": ry,
  "%Atomics%": typeof Atomics == "undefined" ? Jr : Atomics,
  "%BigInt%": typeof BigInt == "undefined" ? Jr : BigInt,
  "%BigInt64Array%": typeof BigInt64Array == "undefined" ? Jr : BigInt64Array,
  "%BigUint64Array%": typeof BigUint64Array == "undefined" ? Jr : BigUint64Array,
  "%Boolean%": Boolean,
  "%DataView%": typeof DataView == "undefined" ? Jr : DataView,
  "%Date%": Date,
  "%decodeURI%": decodeURI,
  "%decodeURIComponent%": decodeURIComponent,
  "%encodeURI%": encodeURI,
  "%encodeURIComponent%": encodeURIComponent,
  "%Error%": ntt,
  "%eval%": eval,
  // eslint-disable-line no-eval
  "%EvalError%": stt,
  "%Float32Array%": typeof Float32Array == "undefined" ? Jr : Float32Array,
  "%Float64Array%": typeof Float64Array == "undefined" ? Jr : Float64Array,
  "%FinalizationRegistry%": typeof FinalizationRegistry == "undefined" ? Jr : FinalizationRegistry,
  "%Function%": the,
  "%GeneratorFunction%": ry,
  "%Int8Array%": typeof Int8Array == "undefined" ? Jr : Int8Array,
  "%Int16Array%": typeof Int16Array == "undefined" ? Jr : Int16Array,
  "%Int32Array%": typeof Int32Array == "undefined" ? Jr : Int32Array,
  "%isFinite%": isFinite,
  "%isNaN%": isNaN,
  "%IteratorPrototype%": Dm && is ? is(is([][Symbol.iterator]())) : Jr,
  "%JSON%": typeof JSON == "object" ? JSON : Jr,
  "%Map%": typeof Map == "undefined" ? Jr : Map,
  "%MapIteratorPrototype%": typeof Map == "undefined" || !Dm || !is ? Jr : is((/* @__PURE__ */ new Map())[Symbol.iterator]()),
  "%Math%": Math,
  "%Number%": Number,
  "%Object%": itt,
  "%Object.getOwnPropertyDescriptor%": Jv,
  "%parseFloat%": parseFloat,
  "%parseInt%": parseInt,
  "%Promise%": typeof Promise == "undefined" ? Jr : Promise,
  "%Proxy%": typeof Proxy == "undefined" ? Jr : Proxy,
  "%RangeError%": att,
  "%ReferenceError%": ott,
  "%Reflect%": typeof Reflect == "undefined" ? Jr : Reflect,
  "%RegExp%": RegExp,
  "%Set%": typeof Set == "undefined" ? Jr : Set,
  "%SetIteratorPrototype%": typeof Set == "undefined" || !Dm || !is ? Jr : is((/* @__PURE__ */ new Set())[Symbol.iterator]()),
  "%SharedArrayBuffer%": typeof SharedArrayBuffer == "undefined" ? Jr : SharedArrayBuffer,
  "%String%": String,
  "%StringIteratorPrototype%": Dm && is ? is(""[Symbol.iterator]()) : Jr,
  "%Symbol%": Dm ? Symbol : Jr,
  "%SyntaxError%": Qy,
  "%ThrowTypeError%": gtt,
  "%TypedArray%": Ttt,
  "%TypeError%": ky,
  "%Uint8Array%": typeof Uint8Array == "undefined" ? Jr : Uint8Array,
  "%Uint8ClampedArray%": typeof Uint8ClampedArray == "undefined" ? Jr : Uint8ClampedArray,
  "%Uint16Array%": typeof Uint16Array == "undefined" ? Jr : Uint16Array,
  "%Uint32Array%": typeof Uint32Array == "undefined" ? Jr : Uint32Array,
  "%URIError%": ltt,
  "%WeakMap%": typeof WeakMap == "undefined" ? Jr : WeakMap,
  "%WeakRef%": typeof WeakRef == "undefined" ? Jr : WeakRef,
  "%WeakSet%": typeof WeakSet == "undefined" ? Jr : WeakSet,
  "%Function.prototype.call%": HT,
  "%Function.prototype.apply%": rhe,
  "%Object.defineProperty%": ytt,
  "%Object.getPrototypeOf%": btt,
  "%Math.abs%": utt,
  "%Math.floor%": ctt,
  "%Math.max%": ptt,
  "%Math.min%": ftt,
  "%Math.pow%": htt,
  "%Math.round%": dtt,
  "%Math.sign%": mtt,
  "%Reflect.getPrototypeOf%": vtt
};
if (is)
  try {
    null.error;
  } catch (e) {
    var Stt = is(is(e));
    $d["%Error.prototype%"] = Stt;
  }
var xtt = function e(t) {
  var r;
  if (t === "%AsyncFunction%")
    r = qM("async function () {}");
  else if (t === "%GeneratorFunction%")
    r = qM("function* () {}");
  else if (t === "%AsyncGeneratorFunction%")
    r = qM("async function* () {}");
  else if (t === "%AsyncGenerator%") {
    var i = e("%AsyncGeneratorFunction%");
    i && (r = i.prototype);
  } else if (t === "%AsyncIteratorPrototype%") {
    var n = e("%AsyncGenerator%");
    n && is && (r = is(n.prototype));
  }
  return $d[t] = r, r;
}, $K = {
  __proto__: null,
  "%ArrayBufferPrototype%": ["ArrayBuffer", "prototype"],
  "%ArrayPrototype%": ["Array", "prototype"],
  "%ArrayProto_entries%": ["Array", "prototype", "entries"],
  "%ArrayProto_forEach%": ["Array", "prototype", "forEach"],
  "%ArrayProto_keys%": ["Array", "prototype", "keys"],
  "%ArrayProto_values%": ["Array", "prototype", "values"],
  "%AsyncFunctionPrototype%": ["AsyncFunction", "prototype"],
  "%AsyncGenerator%": ["AsyncGeneratorFunction", "prototype"],
  "%AsyncGeneratorPrototype%": ["AsyncGeneratorFunction", "prototype", "prototype"],
  "%BooleanPrototype%": ["Boolean", "prototype"],
  "%DataViewPrototype%": ["DataView", "prototype"],
  "%DatePrototype%": ["Date", "prototype"],
  "%ErrorPrototype%": ["Error", "prototype"],
  "%EvalErrorPrototype%": ["EvalError", "prototype"],
  "%Float32ArrayPrototype%": ["Float32Array", "prototype"],
  "%Float64ArrayPrototype%": ["Float64Array", "prototype"],
  "%FunctionPrototype%": ["Function", "prototype"],
  "%Generator%": ["GeneratorFunction", "prototype"],
  "%GeneratorPrototype%": ["GeneratorFunction", "prototype", "prototype"],
  "%Int8ArrayPrototype%": ["Int8Array", "prototype"],
  "%Int16ArrayPrototype%": ["Int16Array", "prototype"],
  "%Int32ArrayPrototype%": ["Int32Array", "prototype"],
  "%JSONParse%": ["JSON", "parse"],
  "%JSONStringify%": ["JSON", "stringify"],
  "%MapPrototype%": ["Map", "prototype"],
  "%NumberPrototype%": ["Number", "prototype"],
  "%ObjectPrototype%": ["Object", "prototype"],
  "%ObjProto_toString%": ["Object", "prototype", "toString"],
  "%ObjProto_valueOf%": ["Object", "prototype", "valueOf"],
  "%PromisePrototype%": ["Promise", "prototype"],
  "%PromiseProto_then%": ["Promise", "prototype", "then"],
  "%Promise_all%": ["Promise", "all"],
  "%Promise_reject%": ["Promise", "reject"],
  "%Promise_resolve%": ["Promise", "resolve"],
  "%RangeErrorPrototype%": ["RangeError", "prototype"],
  "%ReferenceErrorPrototype%": ["ReferenceError", "prototype"],
  "%RegExpPrototype%": ["RegExp", "prototype"],
  "%SetPrototype%": ["Set", "prototype"],
  "%SharedArrayBufferPrototype%": ["SharedArrayBuffer", "prototype"],
  "%StringPrototype%": ["String", "prototype"],
  "%SymbolPrototype%": ["Symbol", "prototype"],
  "%SyntaxErrorPrototype%": ["SyntaxError", "prototype"],
  "%TypedArrayPrototype%": ["TypedArray", "prototype"],
  "%TypeErrorPrototype%": ["TypeError", "prototype"],
  "%Uint8ArrayPrototype%": ["Uint8Array", "prototype"],
  "%Uint8ClampedArrayPrototype%": ["Uint8ClampedArray", "prototype"],
  "%Uint16ArrayPrototype%": ["Uint16Array", "prototype"],
  "%Uint32ArrayPrototype%": ["Uint32Array", "prototype"],
  "%URIErrorPrototype%": ["URIError", "prototype"],
  "%WeakMapPrototype%": ["WeakMap", "prototype"],
  "%WeakSetPrototype%": ["WeakSet", "prototype"]
}, KT = Pg, Bw = ehe, Ett = KT.call(HT, Array.prototype.concat), Ptt = KT.call(rhe, Array.prototype.splice), UK = KT.call(HT, String.prototype.replace), Fw = KT.call(HT, String.prototype.slice), wtt = KT.call(HT, RegExp.prototype.exec), Att = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g, Ctt = /\\(\\)?/g, _tt = function(t) {
  var r = Fw(t, 0, 1), i = Fw(t, -1);
  if (r === "%" && i !== "%")
    throw new Qy("invalid intrinsic syntax, expected closing `%`");
  if (i === "%" && r !== "%")
    throw new Qy("invalid intrinsic syntax, expected opening `%`");
  var n = [];
  return UK(t, Att, function(s, a, o, l) {
    n[n.length] = o ? UK(l, Ctt, "$1") : a || s;
  }), n;
}, Itt = function(t, r) {
  var i = t, n;
  if (Bw($K, i) && (n = $K[i], i = "%" + n[0] + "%"), Bw($d, i)) {
    var s = $d[i];
    if (s === ry && (s = xtt(i)), typeof s == "undefined" && !r)
      throw new ky("intrinsic " + t + " exists, but is not available. Please file an issue!");
    return {
      alias: n,
      name: i,
      value: s
    };
  }
  throw new Qy("intrinsic " + t + " does not exist!");
}, zT = function(t, r) {
  if (typeof t != "string" || t.length === 0)
    throw new ky("intrinsic name must be a non-empty string");
  if (arguments.length > 1 && typeof r != "boolean")
    throw new ky('"allowMissing" argument must be a boolean');
  if (wtt(/^%?[^%]*%?$/, t) === null)
    throw new Qy("`%` may not be present anywhere but at the beginning and end of the intrinsic name");
  var i = _tt(t), n = i.length > 0 ? i[0] : "", s = Itt("%" + n + "%", r), a = s.name, o = s.value, l = !1, u = s.alias;
  u && (n = u[0], Ptt(i, Ett([0, 1], u)));
  for (var c = 1, f = !0; c < i.length; c += 1) {
    var h = i[c], m = Fw(h, 0, 1), g = Fw(h, -1);
    if ((m === '"' || m === "'" || m === "`" || g === '"' || g === "'" || g === "`") && m !== g)
      throw new Qy("property names with quotes must have matching quotes");
    if ((h === "constructor" || !f) && (l = !0), n += "." + h, a = "%" + n + "%", Bw($d, a))
      o = $d[a];
    else if (o != null) {
      if (!(h in o)) {
        if (!r)
          throw new ky("base intrinsic for " + t + " exists, but the property is not available.");
        return;
      }
      if (Jv && c + 1 >= i.length) {
        var y = Jv(o, h);
        f = !!y, f && "get" in y && !("originalValue" in y.get) ? o = y.get : o = o[h];
      } else
        f = Bw(o, h), o = o[h];
      f && !l && ($d[a] = o);
    }
  }
  return o;
}, WM = { exports: {} }, qK;
function ihe() {
  return qK || (qK = 1, function(e) {
    var t = Pg, r = zT, i = r("%Function.prototype.apply%"), n = r("%Function.prototype.call%"), s = r("%Reflect.apply%", !0) || t.call(n, i), a = r("%Object.getOwnPropertyDescriptor%", !0), o = r("%Object.defineProperty%", !0), l = r("%Math.max%");
    if (o)
      try {
        o({}, "a", { value: 1 });
      } catch (c) {
        o = null;
      }
    e.exports = function(f) {
      var h = s(t, n, arguments);
      if (a && o) {
        var m = a(h, "length");
        m.configurable && o(
          h,
          "length",
          { value: 1 + l(0, f.length - (arguments.length - 1)) }
        );
      }
      return h;
    };
    var u = function() {
      return s(t, i, arguments);
    };
    o ? o(e.exports, "apply", { value: u }) : e.exports.apply = u;
  }(WM)), WM.exports;
}
var nhe = zT, she = ihe(), ktt = she(nhe("String.prototype.indexOf")), Ott = function(t, r) {
  var i = nhe(t, !!r);
  return typeof i == "function" && ktt(t, ".prototype.") > -1 ? she(i) : i;
}, Ntt = d_(), Dtt = Ott, FF = Dtt("Object.prototype.toString"), g_ = function(t) {
  return Ntt && t && typeof t == "object" && Symbol.toStringTag in t ? !1 : FF(t) === "[object Arguments]";
}, ahe = function(t) {
  return g_(t) ? !0 : t !== null && typeof t == "object" && typeof t.length == "number" && t.length >= 0 && FF(t) !== "[object Array]" && FF(t.callee) === "[object Function]";
}, Ltt = function() {
  return g_(arguments);
}();
g_.isLegacyArguments = ahe;
var Mtt = Ltt ? g_ : ahe, Rtt = Object.prototype.toString, Btt = Function.prototype.toString, Ftt = /^\s*(?:function)?\*/, ohe = d_(), HM = Object.getPrototypeOf, jtt = function() {
  if (!ohe)
    return !1;
  try {
    return Function("return function*() {}")();
  } catch (e) {
  }
}, KM, $tt = function(t) {
  if (typeof t != "function")
    return !1;
  if (Ftt.test(Btt.call(t)))
    return !0;
  if (!ohe) {
    var r = Rtt.call(t);
    return r === "[object GeneratorFunction]";
  }
  if (!HM)
    return !1;
  if (typeof KM == "undefined") {
    var i = jtt();
    KM = i ? HM(i) : !1;
  }
  return HM(t) === KM;
}, lhe = Function.prototype.toString, my = typeof Reflect == "object" && Reflect !== null && Reflect.apply, jF, vP;
if (typeof my == "function" && typeof Object.defineProperty == "function")
  try {
    jF = Object.defineProperty({}, "length", {
      get: function() {
        throw vP;
      }
    }), vP = {}, my(function() {
      throw 42;
    }, null, jF);
  } catch (e) {
    e !== vP && (my = null);
  }
else
  my = null;
var Utt = /^\s*class\b/, $F = function(t) {
  try {
    var r = lhe.call(t);
    return Utt.test(r);
  } catch (i) {
    return !1;
  }
}, zM = function(t) {
  try {
    return $F(t) ? !1 : (lhe.call(t), !0);
  } catch (r) {
    return !1;
  }
}, TP = Object.prototype.toString, qtt = "[object Object]", Vtt = "[object Function]", Wtt = "[object GeneratorFunction]", Htt = "[object HTMLAllCollection]", Ktt = "[object HTML document.all class]", ztt = "[object HTMLCollection]", Gtt = typeof Symbol == "function" && !!Symbol.toStringTag, Ytt = !(0 in [,]), UF = function() {
  return !1;
};
if (typeof document == "object") {
  var Xtt = document.all;
  TP.call(Xtt) === TP.call(document.all) && (UF = function(t) {
    if ((Ytt || !t) && (typeof t == "undefined" || typeof t == "object"))
      try {
        var r = TP.call(t);
        return (r === Htt || r === Ktt || r === ztt || r === qtt) && t("") == null;
      } catch (i) {
      }
    return !1;
  });
}
var Jtt = my ? function(t) {
  if (UF(t))
    return !0;
  if (!t || typeof t != "function" && typeof t != "object")
    return !1;
  try {
    my(t, null, jF);
  } catch (r) {
    if (r !== vP)
      return !1;
  }
  return !$F(t) && zM(t);
} : function(t) {
  if (UF(t))
    return !0;
  if (!t || typeof t != "function" && typeof t != "object")
    return !1;
  if (Gtt)
    return zM(t);
  if ($F(t))
    return !1;
  var r = TP.call(t);
  return r !== Vtt && r !== Wtt && !/^\[object HTML/.test(r) ? !1 : zM(t);
}, Qtt = Jtt, Ztt = Object.prototype.toString, uhe = Object.prototype.hasOwnProperty, ert = function(t, r, i) {
  for (var n = 0, s = t.length; n < s; n++)
    uhe.call(t, n) && (i == null ? r(t[n], n, t) : r.call(i, t[n], n, t));
}, trt = function(t, r, i) {
  for (var n = 0, s = t.length; n < s; n++)
    i == null ? r(t.charAt(n), n, t) : r.call(i, t.charAt(n), n, t);
}, rrt = function(t, r, i) {
  for (var n in t)
    uhe.call(t, n) && (i == null ? r(t[n], n, t) : r.call(i, t[n], n, t));
}, irt = function(t, r, i) {
  if (!Qtt(r))
    throw new TypeError("iterator must be a function");
  var n;
  arguments.length >= 3 && (n = i), Ztt.call(t) === "[object Array]" ? ert(t, r, n) : typeof t == "string" ? trt(t, r, n) : rrt(t, r, n);
}, nrt = irt, srt = [
  "Float32Array",
  "Float64Array",
  "Int8Array",
  "Int16Array",
  "Int32Array",
  "Uint8Array",
  "Uint8ClampedArray",
  "Uint16Array",
  "Uint32Array",
  "BigInt64Array",
  "BigUint64Array"
], GM = srt, art = typeof globalThis == "undefined" ? jt : globalThis, ort = function() {
  for (var t = [], r = 0; r < GM.length; r++)
    typeof art[GM[r]] == "function" && (t[t.length] = GM[r]);
  return t;
}, che = { exports: {} }, YM, VK;
function phe() {
  if (VK)
    return YM;
  VK = 1;
  var e = y_, t = Xfe, r = m_, i = Eg;
  return YM = function(s, a, o) {
    if (!s || typeof s != "object" && typeof s != "function")
      throw new r("`obj` must be an object or a function`");
    if (typeof a != "string" && typeof a != "symbol")
      throw new r("`property` must be a string or a symbol`");
    if (arguments.length > 3 && typeof arguments[3] != "boolean" && arguments[3] !== null)
      throw new r("`nonEnumerable`, if provided, must be a boolean or null");
    if (arguments.length > 4 && typeof arguments[4] != "boolean" && arguments[4] !== null)
      throw new r("`nonWritable`, if provided, must be a boolean or null");
    if (arguments.length > 5 && typeof arguments[5] != "boolean" && arguments[5] !== null)
      throw new r("`nonConfigurable`, if provided, must be a boolean or null");
    if (arguments.length > 6 && typeof arguments[6] != "boolean")
      throw new r("`loose`, if provided, must be a boolean");
    var l = arguments.length > 3 ? arguments[3] : null, u = arguments.length > 4 ? arguments[4] : null, c = arguments.length > 5 ? arguments[5] : null, f = arguments.length > 6 ? arguments[6] : !1, h = !!i && i(s, a);
    if (e)
      e(s, a, {
        configurable: c === null && h ? h.configurable : !c,
        enumerable: l === null && h ? h.enumerable : !l,
        value: o,
        writable: u === null && h ? h.writable : !u
      });
    else if (f || !l && !u && !c)
      s[a] = o;
    else
      throw new t("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");
  }, YM;
}
var qF = y_, fhe = function() {
  return !!qF;
};
fhe.hasArrayLengthDefineBug = function() {
  if (!qF)
    return null;
  try {
    return qF([], "length", { value: 1 }).length !== 1;
  } catch (t) {
    return !0;
  }
};
var lrt = fhe, urt = zT, WK = phe(), crt = lrt(), HK = Eg, KK = m_, prt = urt("%Math.floor%"), frt = function(t, r) {
  if (typeof t != "function")
    throw new KK("`fn` is not a function");
  if (typeof r != "number" || r < 0 || r > 4294967295 || prt(r) !== r)
    throw new KK("`length` must be a positive 32-bit integer");
  var i = arguments.length > 2 && !!arguments[2], n = !0, s = !0;
  if ("length" in t && HK) {
    var a = HK(t, "length");
    a && !a.configurable && (n = !1), a && !a.writable && (s = !1);
  }
  return (n || s || !i) && (crt ? WK(
    /** @type {Parameters<define>[0]} */
    t,
    "length",
    r,
    !0,
    !0
  ) : WK(
    /** @type {Parameters<define>[0]} */
    t,
    "length",
    r
  )), t;
}, hrt = Pg, drt = d9(), mrt = Zfe, yrt = function() {
  return mrt(hrt, drt, arguments);
};
(function(e) {
  var t = frt, r = y_, i = m9, n = yrt;
  e.exports = function(a) {
    var o = i(arguments), l = a.length - (arguments.length - 1);
    return t(
      o,
      1 + (l > 0 ? l : 0),
      !0
    );
  }, r ? r(e.exports, "apply", { value: n }) : e.exports.apply = n;
})(che);
var hhe = che.exports, dhe = zT, mhe = m9, grt = mhe([dhe("%String.prototype.indexOf%")]), yhe = function(t, r) {
  var i = (
    /** @type {Parameters<typeof callBindBasic>[0][0]} */
    dhe(t, !!r)
  );
  return typeof i == "function" && grt(t, ".prototype.") > -1 ? mhe([i]) : i;
}, jw = nrt, brt = ort, zK = hhe, y9 = yhe, SP = Eg, vrt = y9("Object.prototype.toString"), ghe = d_(), GK = typeof globalThis == "undefined" ? jt : globalThis, VF = brt(), g9 = y9("String.prototype.slice"), XM = Object.getPrototypeOf, Trt = y9("Array.prototype.indexOf", !0) || function(t, r) {
  for (var i = 0; i < t.length; i += 1)
    if (t[i] === r)
      return i;
  return -1;
}, $w = { __proto__: null };
ghe && SP && XM ? jw(VF, function(e) {
  var t = new GK[e]();
  if (Symbol.toStringTag in t) {
    var r = XM(t), i = SP(r, Symbol.toStringTag);
    if (!i) {
      var n = XM(r);
      i = SP(n, Symbol.toStringTag);
    }
    $w["$" + e] = zK(i.get);
  }
}) : jw(VF, function(e) {
  var t = new GK[e](), r = t.slice || t.set;
  r && ($w["$" + e] = zK(r));
});
var Srt = function(t) {
  var r = !1;
  return jw(
    // eslint-disable-next-line no-extra-parens
    /** @type {Record<`\$${TypedArrayName}`, Getter>} */
    /** @type {any} */
    $w,
    /** @type {(getter: Getter, name: `\$${import('.').TypedArrayName}`) => void} */
    function(i, n) {
      if (!r)
        try {
          "$" + i(t) === n && (r = g9(n, 1));
        } catch (s) {
        }
    }
  ), r;
}, xrt = function(t) {
  var r = !1;
  return jw(
    // eslint-disable-next-line no-extra-parens
    /** @type {Record<`\$${TypedArrayName}`, Getter>} */
    /** @type {any} */
    $w,
    /** @type {(getter: typeof cache, name: `\$${import('.').TypedArrayName}`) => void} */
    function(i, n) {
      if (!r)
        try {
          i(t), r = g9(n, 1);
        } catch (s) {
        }
    }
  ), r;
}, bhe = function(t) {
  if (!t || typeof t != "object")
    return !1;
  if (!ghe) {
    var r = g9(vrt(t), 8, -1);
    return Trt(VF, r) > -1 ? r : r !== "Object" ? !1 : xrt(t);
  }
  return SP ? Srt(t) : null;
}, Ert = bhe, Prt = function(t) {
  return !!Ert(t);
};
(function(e) {
  var t = Mtt, r = $tt, i = bhe, n = Prt;
  function s(Se) {
    return Se.call.bind(Se);
  }
  var a = typeof BigInt != "undefined", o = typeof Symbol != "undefined", l = s(Object.prototype.toString), u = s(Number.prototype.valueOf), c = s(String.prototype.valueOf), f = s(Boolean.prototype.valueOf);
  if (a)
    var h = s(BigInt.prototype.valueOf);
  if (o)
    var m = s(Symbol.prototype.valueOf);
  function g(Se, oe) {
    if (typeof Se != "object")
      return !1;
    try {
      return oe(Se), !0;
    } catch (te) {
      return !1;
    }
  }
  e.isArgumentsObject = t, e.isGeneratorFunction = r, e.isTypedArray = n;
  function y(Se) {
    return typeof Promise != "undefined" && Se instanceof Promise || Se !== null && typeof Se == "object" && typeof Se.then == "function" && typeof Se.catch == "function";
  }
  e.isPromise = y;
  function v(Se) {
    return typeof ArrayBuffer != "undefined" && ArrayBuffer.isView ? ArrayBuffer.isView(Se) : n(Se) || Y(Se);
  }
  e.isArrayBufferView = v;
  function T(Se) {
    return i(Se) === "Uint8Array";
  }
  e.isUint8Array = T;
  function S(Se) {
    return i(Se) === "Uint8ClampedArray";
  }
  e.isUint8ClampedArray = S;
  function P(Se) {
    return i(Se) === "Uint16Array";
  }
  e.isUint16Array = P;
  function x(Se) {
    return i(Se) === "Uint32Array";
  }
  e.isUint32Array = x;
  function C(Se) {
    return i(Se) === "Int8Array";
  }
  e.isInt8Array = C;
  function D(Se) {
    return i(Se) === "Int16Array";
  }
  e.isInt16Array = D;
  function w(Se) {
    return i(Se) === "Int32Array";
  }
  e.isInt32Array = w;
  function A(Se) {
    return i(Se) === "Float32Array";
  }
  e.isFloat32Array = A;
  function I(Se) {
    return i(Se) === "Float64Array";
  }
  e.isFloat64Array = I;
  function L(Se) {
    return i(Se) === "BigInt64Array";
  }
  e.isBigInt64Array = L;
  function O(Se) {
    return i(Se) === "BigUint64Array";
  }
  e.isBigUint64Array = O;
  function F(Se) {
    return l(Se) === "[object Map]";
  }
  F.working = typeof Map != "undefined" && F(/* @__PURE__ */ new Map());
  function q(Se) {
    return typeof Map == "undefined" ? !1 : F.working ? F(Se) : Se instanceof Map;
  }
  e.isMap = q;
  function j(Se) {
    return l(Se) === "[object Set]";
  }
  j.working = typeof Set != "undefined" && j(/* @__PURE__ */ new Set());
  function N(Se) {
    return typeof Set == "undefined" ? !1 : j.working ? j(Se) : Se instanceof Set;
  }
  e.isSet = N;
  function M(Se) {
    return l(Se) === "[object WeakMap]";
  }
  M.working = typeof WeakMap != "undefined" && M(/* @__PURE__ */ new WeakMap());
  function R(Se) {
    return typeof WeakMap == "undefined" ? !1 : M.working ? M(Se) : Se instanceof WeakMap;
  }
  e.isWeakMap = R;
  function $(Se) {
    return l(Se) === "[object WeakSet]";
  }
  $.working = typeof WeakSet != "undefined" && $(/* @__PURE__ */ new WeakSet());
  function V(Se) {
    return $(Se);
  }
  e.isWeakSet = V;
  function K(Se) {
    return l(Se) === "[object ArrayBuffer]";
  }
  K.working = typeof ArrayBuffer != "undefined" && K(new ArrayBuffer());
  function z(Se) {
    return typeof ArrayBuffer == "undefined" ? !1 : K.working ? K(Se) : Se instanceof ArrayBuffer;
  }
  e.isArrayBuffer = z;
  function W(Se) {
    return l(Se) === "[object DataView]";
  }
  W.working = typeof ArrayBuffer != "undefined" && typeof DataView != "undefined" && W(new DataView(new ArrayBuffer(1), 0, 1));
  function Y(Se) {
    return typeof DataView == "undefined" ? !1 : W.working ? W(Se) : Se instanceof DataView;
  }
  e.isDataView = Y;
  var G = typeof SharedArrayBuffer != "undefined" ? SharedArrayBuffer : void 0;
  function le(Se) {
    return l(Se) === "[object SharedArrayBuffer]";
  }
  function ne(Se) {
    return typeof G == "undefined" ? !1 : (typeof le.working == "undefined" && (le.working = le(new G())), le.working ? le(Se) : Se instanceof G);
  }
  e.isSharedArrayBuffer = ne;
  function ae(Se) {
    return l(Se) === "[object AsyncFunction]";
  }
  e.isAsyncFunction = ae;
  function be(Se) {
    return l(Se) === "[object Map Iterator]";
  }
  e.isMapIterator = be;
  function ye(Se) {
    return l(Se) === "[object Set Iterator]";
  }
  e.isSetIterator = ye;
  function fe(Se) {
    return l(Se) === "[object Generator]";
  }
  e.isGeneratorObject = fe;
  function Z(Se) {
    return l(Se) === "[object WebAssembly.Module]";
  }
  e.isWebAssemblyCompiledModule = Z;
  function ue(Se) {
    return g(Se, u);
  }
  e.isNumberObject = ue;
  function me(Se) {
    return g(Se, c);
  }
  e.isStringObject = me;
  function xe(Se) {
    return g(Se, f);
  }
  e.isBooleanObject = xe;
  function Pe(Se) {
    return a && g(Se, h);
  }
  e.isBigIntObject = Pe;
  function ve(Se) {
    return o && g(Se, m);
  }
  e.isSymbolObject = ve;
  function Xe(Se) {
    return ue(Se) || me(Se) || xe(Se) || Pe(Se) || ve(Se);
  }
  e.isBoxedPrimitive = Xe;
  function st(Se) {
    return typeof Uint8Array != "undefined" && (z(Se) || ne(Se));
  }
  e.isAnyArrayBuffer = st, ["isProxy", "isExternal", "isModuleNamespaceObject"].forEach(function(Se) {
    Object.defineProperty(e, Se, {
      enumerable: !1,
      value: function() {
        throw new Error(Se + " is not supported in userland");
      }
    });
  });
})(zfe);
var wrt = function(t) {
  return t && typeof t == "object" && typeof t.copy == "function" && typeof t.fill == "function" && typeof t.readUInt8 == "function";
}, WF = { exports: {} };
typeof Object.create == "function" ? WF.exports = function(t, r) {
  r && (t.super_ = r, t.prototype = Object.create(r.prototype, {
    constructor: {
      value: t,
      enumerable: !1,
      writable: !0,
      configurable: !0
    }
  }));
} : WF.exports = function(t, r) {
  if (r) {
    t.super_ = r;
    var i = function() {
    };
    i.prototype = r.prototype, t.prototype = new i(), t.prototype.constructor = t;
  }
};
var Art = WF.exports;
(function(e) {
  var t = Object.getOwnPropertyDescriptors || function(Y) {
    for (var G = Object.keys(Y), le = {}, ne = 0; ne < G.length; ne++)
      le[G[ne]] = Object.getOwnPropertyDescriptor(Y, G[ne]);
    return le;
  }, r = /%[sdj%]/g;
  e.format = function(W) {
    if (!C(W)) {
      for (var Y = [], G = 0; G < arguments.length; G++)
        Y.push(a(arguments[G]));
      return Y.join(" ");
    }
    for (var G = 1, le = arguments, ne = le.length, ae = String(W).replace(r, function(ye) {
      if (ye === "%%")
        return "%";
      if (G >= ne)
        return ye;
      switch (ye) {
        case "%s":
          return String(le[G++]);
        case "%d":
          return Number(le[G++]);
        case "%j":
          try {
            return JSON.stringify(le[G++]);
          } catch (fe) {
            return "[Circular]";
          }
        default:
          return ye;
      }
    }), be = le[G]; G < ne; be = le[++G])
      S(be) || !I(be) ? ae += " " + be : ae += " " + a(be);
    return ae;
  }, e.deprecate = function(W, Y) {
    if (typeof process != "undefined" && process.noDeprecation === !0)
      return W;
    if (typeof process == "undefined")
      return function() {
        return e.deprecate(W, Y).apply(this, arguments);
      };
    var G = !1;
    function le() {
      if (!G) {
        if (process.throwDeprecation)
          throw new Error(Y);
        process.traceDeprecation ? console.trace(Y) : console.error(Y), G = !0;
      }
      return W.apply(this, arguments);
    }
    return le;
  };
  var i = {}, n = /^$/;
  if (process.env.NODE_DEBUG) {
    var s = process.env.NODE_DEBUG;
    s = s.replace(/[|\\{}()[\]^$+?.]/g, "\\$&").replace(/\*/g, ".*").replace(/,/g, "$|^").toUpperCase(), n = new RegExp("^" + s + "$", "i");
  }
  e.debuglog = function(W) {
    if (W = W.toUpperCase(), !i[W])
      if (n.test(W)) {
        var Y = process.pid;
        i[W] = function() {
          var G = e.format.apply(e, arguments);
          console.error("%s %d: %s", W, Y, G);
        };
      } else
        i[W] = function() {
        };
    return i[W];
  };
  function a(W, Y) {
    var G = {
      seen: [],
      stylize: l
    };
    return arguments.length >= 3 && (G.depth = arguments[2]), arguments.length >= 4 && (G.colors = arguments[3]), T(Y) ? G.showHidden = Y : Y && e._extend(G, Y), w(G.showHidden) && (G.showHidden = !1), w(G.depth) && (G.depth = 2), w(G.colors) && (G.colors = !1), w(G.customInspect) && (G.customInspect = !0), G.colors && (G.stylize = o), c(G, W, G.depth);
  }
  e.inspect = a, a.colors = {
    bold: [1, 22],
    italic: [3, 23],
    underline: [4, 24],
    inverse: [7, 27],
    white: [37, 39],
    grey: [90, 39],
    black: [30, 39],
    blue: [34, 39],
    cyan: [36, 39],
    green: [32, 39],
    magenta: [35, 39],
    red: [31, 39],
    yellow: [33, 39]
  }, a.styles = {
    special: "cyan",
    number: "yellow",
    boolean: "yellow",
    undefined: "grey",
    null: "bold",
    string: "green",
    date: "magenta",
    // "name": intentionally not styling
    regexp: "red"
  };
  function o(W, Y) {
    var G = a.styles[Y];
    return G ? "\x1B[" + a.colors[G][0] + "m" + W + "\x1B[" + a.colors[G][1] + "m" : W;
  }
  function l(W, Y) {
    return W;
  }
  function u(W) {
    var Y = {};
    return W.forEach(function(G, le) {
      Y[G] = !0;
    }), Y;
  }
  function c(W, Y, G) {
    if (W.customInspect && Y && F(Y.inspect) && // Filter out the util module, it's inspect function is special
    Y.inspect !== e.inspect && // Also filter out any prototype objects using the circular check.
    !(Y.constructor && Y.constructor.prototype === Y)) {
      var le = Y.inspect(G, W);
      return C(le) || (le = c(W, le, G)), le;
    }
    var ne = f(W, Y);
    if (ne)
      return ne;
    var ae = Object.keys(Y), be = u(ae);
    if (W.showHidden && (ae = Object.getOwnPropertyNames(Y)), O(Y) && (ae.indexOf("message") >= 0 || ae.indexOf("description") >= 0))
      return h(Y);
    if (ae.length === 0) {
      if (F(Y)) {
        var ye = Y.name ? ": " + Y.name : "";
        return W.stylize("[Function" + ye + "]", "special");
      }
      if (A(Y))
        return W.stylize(RegExp.prototype.toString.call(Y), "regexp");
      if (L(Y))
        return W.stylize(Date.prototype.toString.call(Y), "date");
      if (O(Y))
        return h(Y);
    }
    var fe = "", Z = !1, ue = ["{", "}"];
    if (v(Y) && (Z = !0, ue = ["[", "]"]), F(Y)) {
      var me = Y.name ? ": " + Y.name : "";
      fe = " [Function" + me + "]";
    }
    if (A(Y) && (fe = " " + RegExp.prototype.toString.call(Y)), L(Y) && (fe = " " + Date.prototype.toUTCString.call(Y)), O(Y) && (fe = " " + h(Y)), ae.length === 0 && (!Z || Y.length == 0))
      return ue[0] + fe + ue[1];
    if (G < 0)
      return A(Y) ? W.stylize(RegExp.prototype.toString.call(Y), "regexp") : W.stylize("[Object]", "special");
    W.seen.push(Y);
    var xe;
    return Z ? xe = m(W, Y, G, be, ae) : xe = ae.map(function(Pe) {
      return g(W, Y, G, be, Pe, Z);
    }), W.seen.pop(), y(xe, fe, ue);
  }
  function f(W, Y) {
    if (w(Y))
      return W.stylize("undefined", "undefined");
    if (C(Y)) {
      var G = "'" + JSON.stringify(Y).replace(/^"|"$/g, "").replace(/'/g, "\\'").replace(/\\"/g, '"') + "'";
      return W.stylize(G, "string");
    }
    if (x(Y))
      return W.stylize("" + Y, "number");
    if (T(Y))
      return W.stylize("" + Y, "boolean");
    if (S(Y))
      return W.stylize("null", "null");
  }
  function h(W) {
    return "[" + Error.prototype.toString.call(W) + "]";
  }
  function m(W, Y, G, le, ne) {
    for (var ae = [], be = 0, ye = Y.length; be < ye; ++be)
      $(Y, String(be)) ? ae.push(g(
        W,
        Y,
        G,
        le,
        String(be),
        !0
      )) : ae.push("");
    return ne.forEach(function(fe) {
      fe.match(/^\d+$/) || ae.push(g(
        W,
        Y,
        G,
        le,
        fe,
        !0
      ));
    }), ae;
  }
  function g(W, Y, G, le, ne, ae) {
    var be, ye, fe;
    if (fe = Object.getOwnPropertyDescriptor(Y, ne) || { value: Y[ne] }, fe.get ? fe.set ? ye = W.stylize("[Getter/Setter]", "special") : ye = W.stylize("[Getter]", "special") : fe.set && (ye = W.stylize("[Setter]", "special")), $(le, ne) || (be = "[" + ne + "]"), ye || (W.seen.indexOf(fe.value) < 0 ? (S(G) ? ye = c(W, fe.value, null) : ye = c(W, fe.value, G - 1), ye.indexOf("\n") > -1 && (ae ? ye = ye.split("\n").map(function(Z) {
      return "  " + Z;
    }).join("\n").slice(2) : ye = "\n" + ye.split("\n").map(function(Z) {
      return "   " + Z;
    }).join("\n"))) : ye = W.stylize("[Circular]", "special")), w(be)) {
      if (ae && ne.match(/^\d+$/))
        return ye;
      be = JSON.stringify("" + ne), be.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/) ? (be = be.slice(1, -1), be = W.stylize(be, "name")) : (be = be.replace(/'/g, "\\'").replace(/\\"/g, '"').replace(/(^"|"$)/g, "'"), be = W.stylize(be, "string"));
    }
    return be + ": " + ye;
  }
  function y(W, Y, G) {
    var le = W.reduce(function(ne, ae) {
      return ae.indexOf("\n") >= 0, ne + ae.replace(/\u001b\[\d\d?m/g, "").length + 1;
    }, 0);
    return le > 60 ? G[0] + (Y === "" ? "" : Y + "\n ") + " " + W.join(",\n  ") + " " + G[1] : G[0] + Y + " " + W.join(", ") + " " + G[1];
  }
  e.types = zfe;
  function v(W) {
    return Array.isArray(W);
  }
  e.isArray = v;
  function T(W) {
    return typeof W == "boolean";
  }
  e.isBoolean = T;
  function S(W) {
    return W === null;
  }
  e.isNull = S;
  function P(W) {
    return W == null;
  }
  e.isNullOrUndefined = P;
  function x(W) {
    return typeof W == "number";
  }
  e.isNumber = x;
  function C(W) {
    return typeof W == "string";
  }
  e.isString = C;
  function D(W) {
    return typeof W == "symbol";
  }
  e.isSymbol = D;
  function w(W) {
    return W === void 0;
  }
  e.isUndefined = w;
  function A(W) {
    return I(W) && j(W) === "[object RegExp]";
  }
  e.isRegExp = A, e.types.isRegExp = A;
  function I(W) {
    return typeof W == "object" && W !== null;
  }
  e.isObject = I;
  function L(W) {
    return I(W) && j(W) === "[object Date]";
  }
  e.isDate = L, e.types.isDate = L;
  function O(W) {
    return I(W) && (j(W) === "[object Error]" || W instanceof Error);
  }
  e.isError = O, e.types.isNativeError = O;
  function F(W) {
    return typeof W == "function";
  }
  e.isFunction = F;
  function q(W) {
    return W === null || typeof W == "boolean" || typeof W == "number" || typeof W == "string" || typeof W == "symbol" || // ES6 symbol
    typeof W == "undefined";
  }
  e.isPrimitive = q, e.isBuffer = wrt;
  function j(W) {
    return Object.prototype.toString.call(W);
  }
  function N(W) {
    return W < 10 ? "0" + W.toString(10) : W.toString(10);
  }
  var M = [
    "Jan",
    "Feb",
    "Mar",
    "Apr",
    "May",
    "Jun",
    "Jul",
    "Aug",
    "Sep",
    "Oct",
    "Nov",
    "Dec"
  ];
  function R() {
    var W = /* @__PURE__ */ new Date(), Y = [
      N(W.getHours()),
      N(W.getMinutes()),
      N(W.getSeconds())
    ].join(":");
    return [W.getDate(), M[W.getMonth()], Y].join(" ");
  }
  e.log = function() {
    console.log("%s - %s", R(), e.format.apply(e, arguments));
  }, e.inherits = Art, e._extend = function(W, Y) {
    if (!Y || !I(Y))
      return W;
    for (var G = Object.keys(Y), le = G.length; le--; )
      W[G[le]] = Y[G[le]];
    return W;
  };
  function $(W, Y) {
    return Object.prototype.hasOwnProperty.call(W, Y);
  }
  var V = typeof Symbol != "undefined" ? Symbol("util.promisify.custom") : void 0;
  e.promisify = function(Y) {
    if (typeof Y != "function")
      throw new TypeError('The "original" argument must be of type Function');
    if (V && Y[V]) {
      var G = Y[V];
      if (typeof G != "function")
        throw new TypeError('The "util.promisify.custom" argument must be of type Function');
      return Object.defineProperty(G, V, {
        value: G,
        enumerable: !1,
        writable: !1,
        configurable: !0
      }), G;
    }
    function G() {
      for (var le, ne, ae = new Promise(function(fe, Z) {
        le = fe, ne = Z;
      }), be = [], ye = 0; ye < arguments.length; ye++)
        be.push(arguments[ye]);
      be.push(function(fe, Z) {
        fe ? ne(fe) : le(Z);
      });
      try {
        Y.apply(this, be);
      } catch (fe) {
        ne(fe);
      }
      return ae;
    }
    return Object.setPrototypeOf(G, Object.getPrototypeOf(Y)), V && Object.defineProperty(G, V, {
      value: G,
      enumerable: !1,
      writable: !1,
      configurable: !0
    }), Object.defineProperties(
      G,
      t(Y)
    );
  }, e.promisify.custom = V;
  function K(W, Y) {
    if (!W) {
      var G = new Error("Promise was rejected with a falsy value");
      G.reason = W, W = G;
    }
    return Y(W);
  }
  function z(W) {
    if (typeof W != "function")
      throw new TypeError('The "original" argument must be of type Function');
    function Y() {
      for (var G = [], le = 0; le < arguments.length; le++)
        G.push(arguments[le]);
      var ne = G.pop();
      if (typeof ne != "function")
        throw new TypeError("The last argument must be of type Function");
      var ae = this, be = function() {
        return ne.apply(ae, arguments);
      };
      W.apply(this, G).then(
        function(ye) {
          process.nextTick(be.bind(null, null, ye));
        },
        function(ye) {
          process.nextTick(K.bind(null, ye, be));
        }
      );
    }
    return Object.setPrototypeOf(Y, Object.getPrototypeOf(W)), Object.defineProperties(
      Y,
      t(W)
    ), Y;
  }
  e.callbackify = z;
})(Jy);
var YK;
function vhe() {
  if (YK)
    return MM;
  YK = 1;
  function e(y) {
    return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? e = function(T) {
      return typeof T;
    } : e = function(T) {
      return T && typeof Symbol == "function" && T.constructor === Symbol && T !== Symbol.prototype ? "symbol" : typeof T;
    }, e(y);
  }
  function t(y, v) {
    if (!(y instanceof v))
      throw new TypeError("Cannot call a class as a function");
  }
  function r(y, v) {
    return v && (e(v) === "object" || typeof v == "function") ? v : i(y);
  }
  function i(y) {
    if (y === void 0)
      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
    return y;
  }
  function n(y) {
    return n = Object.setPrototypeOf ? Object.getPrototypeOf : function(T) {
      return T.__proto__ || Object.getPrototypeOf(T);
    }, n(y);
  }
  function s(y, v) {
    if (typeof v != "function" && v !== null)
      throw new TypeError("Super expression must either be null or a function");
    y.prototype = Object.create(v && v.prototype, { constructor: { value: y, writable: !0, configurable: !0 } }), v && a(y, v);
  }
  function a(y, v) {
    return a = Object.setPrototypeOf || function(S, P) {
      return S.__proto__ = P, S;
    }, a(y, v);
  }
  var o = {}, l, u;
  function c(y, v, T) {
    T || (T = Error);
    function S(x, C, D) {
      return typeof v == "string" ? v : v(x, C, D);
    }
    var P = /* @__PURE__ */ function(x) {
      s(C, x);
      function C(D, w, A) {
        var I;
        return t(this, C), I = r(this, n(C).call(this, S(D, w, A))), I.code = y, I;
      }
      return C;
    }(T);
    o[y] = P;
  }
  function f(y, v) {
    if (Array.isArray(y)) {
      var T = y.length;
      return y = y.map(function(S) {
        return String(S);
      }), T > 2 ? "one of ".concat(v, " ").concat(y.slice(0, T - 1).join(", "), ", or ") + y[T - 1] : T === 2 ? "one of ".concat(v, " ").concat(y[0], " or ").concat(y[1]) : "of ".concat(v, " ").concat(y[0]);
    } else
      return "of ".concat(v, " ").concat(String(y));
  }
  function h(y, v, T) {
    return y.substr(!T || T < 0 ? 0 : +T, v.length) === v;
  }
  function m(y, v, T) {
    return (T === void 0 || T > y.length) && (T = y.length), y.substring(T - v.length, T) === v;
  }
  function g(y, v, T) {
    return typeof T != "number" && (T = 0), T + v.length > y.length ? !1 : y.indexOf(v, T) !== -1;
  }
  return c("ERR_AMBIGUOUS_ARGUMENT", 'The "%s" argument is ambiguous. %s', TypeError), c("ERR_INVALID_ARG_TYPE", function(y, v, T) {
    l === void 0 && (l = Af()), l(typeof y == "string", "'name' must be a string");
    var S;
    typeof v == "string" && h(v, "not ") ? (S = "must not be", v = v.replace(/^not /, "")) : S = "must be";
    var P;
    if (m(y, " argument"))
      P = "The ".concat(y, " ").concat(S, " ").concat(f(v, "type"));
    else {
      var x = g(y, ".") ? "property" : "argument";
      P = 'The "'.concat(y, '" ').concat(x, " ").concat(S, " ").concat(f(v, "type"));
    }
    return P += ". Received type ".concat(e(T)), P;
  }, TypeError), c("ERR_INVALID_ARG_VALUE", function(y, v) {
    var T = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "is invalid";
    u === void 0 && (u = Jy);
    var S = u.inspect(v);
    return S.length > 128 && (S = "".concat(S.slice(0, 128), "...")), "The argument '".concat(y, "' ").concat(T, ". Received ").concat(S);
  }, TypeError), c("ERR_INVALID_RETURN_VALUE", function(y, v, T) {
    var S;
    return T && T.constructor && T.constructor.name ? S = "instance of ".concat(T.constructor.name) : S = "type ".concat(e(T)), "Expected ".concat(y, ' to be returned from the "').concat(v, '"') + " function but got ".concat(S, ".");
  }, TypeError), c("ERR_MISSING_ARGS", function() {
    for (var y = arguments.length, v = new Array(y), T = 0; T < y; T++)
      v[T] = arguments[T];
    l === void 0 && (l = Af()), l(v.length > 0, "At least one arg needs to be specified");
    var S = "The ", P = v.length;
    switch (v = v.map(function(x) {
      return '"'.concat(x, '"');
    }), P) {
      case 1:
        S += "".concat(v[0], " argument");
        break;
      case 2:
        S += "".concat(v[0], " and ").concat(v[1], " arguments");
        break;
      default:
        S += v.slice(0, P - 1).join(", "), S += ", and ".concat(v[P - 1], " arguments");
        break;
    }
    return "".concat(S, " must be specified");
  }, TypeError), MM.codes = o, MM;
}
var JM, XK;
function Crt() {
  if (XK)
    return JM;
  XK = 1;
  function e(N) {
    for (var M = 1; M < arguments.length; M++) {
      var R = arguments[M] != null ? arguments[M] : {}, $ = Object.keys(R);
      typeof Object.getOwnPropertySymbols == "function" && ($ = $.concat(Object.getOwnPropertySymbols(R).filter(function(V) {
        return Object.getOwnPropertyDescriptor(R, V).enumerable;
      }))), $.forEach(function(V) {
        t(N, V, R[V]);
      });
    }
    return N;
  }
  function t(N, M, R) {
    return M in N ? Object.defineProperty(N, M, { value: R, enumerable: !0, configurable: !0, writable: !0 }) : N[M] = R, N;
  }
  function r(N, M) {
    if (!(N instanceof M))
      throw new TypeError("Cannot call a class as a function");
  }
  function i(N, M) {
    for (var R = 0; R < M.length; R++) {
      var $ = M[R];
      $.enumerable = $.enumerable || !1, $.configurable = !0, "value" in $ && ($.writable = !0), Object.defineProperty(N, $.key, $);
    }
  }
  function n(N, M, R) {
    return M && i(N.prototype, M), R && i(N, R), N;
  }
  function s(N, M) {
    return M && (g(M) === "object" || typeof M == "function") ? M : a(N);
  }
  function a(N) {
    if (N === void 0)
      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
    return N;
  }
  function o(N, M) {
    if (typeof M != "function" && M !== null)
      throw new TypeError("Super expression must either be null or a function");
    N.prototype = Object.create(M && M.prototype, { constructor: { value: N, writable: !0, configurable: !0 } }), M && h(N, M);
  }
  function l(N) {
    var M = typeof Map == "function" ? /* @__PURE__ */ new Map() : void 0;
    return l = function($) {
      if ($ === null || !f($))
        return $;
      if (typeof $ != "function")
        throw new TypeError("Super expression must either be null or a function");
      if (typeof M != "undefined") {
        if (M.has($))
          return M.get($);
        M.set($, V);
      }
      function V() {
        return c($, arguments, m(this).constructor);
      }
      return V.prototype = Object.create($.prototype, { constructor: { value: V, enumerable: !1, writable: !0, configurable: !0 } }), h(V, $);
    }, l(N);
  }
  function u() {
    if (typeof Reflect == "undefined" || !Reflect.construct || Reflect.construct.sham)
      return !1;
    if (typeof Proxy == "function")
      return !0;
    try {
      return Date.prototype.toString.call(Reflect.construct(Date, [], function() {
      })), !0;
    } catch (N) {
      return !1;
    }
  }
  function c(N, M, R) {
    return u() ? c = Reflect.construct : c = function(V, K, z) {
      var W = [null];
      W.push.apply(W, K);
      var Y = Function.bind.apply(V, W), G = new Y();
      return z && h(G, z.prototype), G;
    }, c.apply(null, arguments);
  }
  function f(N) {
    return Function.toString.call(N).indexOf("[native code]") !== -1;
  }
  function h(N, M) {
    return h = Object.setPrototypeOf || function($, V) {
      return $.__proto__ = V, $;
    }, h(N, M);
  }
  function m(N) {
    return m = Object.setPrototypeOf ? Object.getPrototypeOf : function(R) {
      return R.__proto__ || Object.getPrototypeOf(R);
    }, m(N);
  }
  function g(N) {
    return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? g = function(R) {
      return typeof R;
    } : g = function(R) {
      return R && typeof Symbol == "function" && R.constructor === Symbol && R !== Symbol.prototype ? "symbol" : typeof R;
    }, g(N);
  }
  var y = Jy, v = y.inspect, T = vhe(), S = T.codes.ERR_INVALID_ARG_TYPE;
  function P(N, M, R) {
    return (R === void 0 || R > N.length) && (R = N.length), N.substring(R - M.length, R) === M;
  }
  function x(N, M) {
    if (M = Math.floor(M), N.length == 0 || M == 0)
      return "";
    var R = N.length * M;
    for (M = Math.floor(Math.log(M) / Math.log(2)); M; )
      N += N, M--;
    return N += N.substring(0, R - N.length), N;
  }
  var C = "", D = "", w = "", A = "", I = {
    deepStrictEqual: "Expected values to be strictly deep-equal:",
    strictEqual: "Expected values to be strictly equal:",
    strictEqualObject: 'Expected "actual" to be reference-equal to "expected":',
    deepEqual: "Expected values to be loosely deep-equal:",
    equal: "Expected values to be loosely equal:",
    notDeepStrictEqual: 'Expected "actual" not to be strictly deep-equal to:',
    notStrictEqual: 'Expected "actual" to be strictly unequal to:',
    notStrictEqualObject: 'Expected "actual" not to be reference-equal to "expected":',
    notDeepEqual: 'Expected "actual" not to be loosely deep-equal to:',
    notEqual: 'Expected "actual" to be loosely unequal to:',
    notIdentical: "Values identical but not reference-equal:"
  }, L = 10;
  function O(N) {
    var M = Object.keys(N), R = Object.create(Object.getPrototypeOf(N));
    return M.forEach(function($) {
      R[$] = N[$];
    }), Object.defineProperty(R, "message", {
      value: N.message
    }), R;
  }
  function F(N) {
    return v(N, {
      compact: !1,
      customInspect: !1,
      depth: 1e3,
      maxArrayLength: 1 / 0,
      // Assert compares only enumerable properties (with a few exceptions).
      showHidden: !1,
      // Having a long line as error is better than wrapping the line for
      // comparison for now.
      // TODO(BridgeAR): `breakLength` should be limited as soon as soon as we
      // have meta information about the inspected properties (i.e., know where
      // in what line the property starts and ends).
      breakLength: 1 / 0,
      // Assert does not detect proxies currently.
      showProxy: !1,
      sorted: !0,
      // Inspect getters as we also check them when comparing entries.
      getters: !0
    });
  }
  function q(N, M, R) {
    var $ = "", V = "", K = 0, z = "", W = !1, Y = F(N), G = Y.split("\n"), le = F(M).split("\n"), ne = 0, ae = "";
    if (R === "strictEqual" && g(N) === "object" && g(M) === "object" && N !== null && M !== null && (R = "strictEqualObject"), G.length === 1 && le.length === 1 && G[0] !== le[0]) {
      var be = G[0].length + le[0].length;
      if (be <= L) {
        if ((g(N) !== "object" || N === null) && (g(M) !== "object" || M === null) && (N !== 0 || M !== 0))
          return "".concat(I[R], "\n\n") + "".concat(G[0], " !== ").concat(le[0], "\n");
      } else if (R !== "strictEqualObject") {
        var ye = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;
        if (be < ye) {
          for (; G[0][ne] === le[0][ne]; )
            ne++;
          ne > 2 && (ae = "\n  ".concat(x(" ", ne), "^"), ne = 0);
        }
      }
    }
    for (var fe = G[G.length - 1], Z = le[le.length - 1]; fe === Z && (ne++ < 2 ? z = "\n  ".concat(fe).concat(z) : $ = fe, G.pop(), le.pop(), !(G.length === 0 || le.length === 0)); )
      fe = G[G.length - 1], Z = le[le.length - 1];
    var ue = Math.max(G.length, le.length);
    if (ue === 0) {
      var me = Y.split("\n");
      if (me.length > 30)
        for (me[26] = "".concat(C, "...").concat(A); me.length > 27; )
          me.pop();
      return "".concat(I.notIdentical, "\n\n").concat(me.join("\n"), "\n");
    }
    ne > 3 && (z = "\n".concat(C, "...").concat(A).concat(z), W = !0), $ !== "" && (z = "\n  ".concat($).concat(z), $ = "");
    var xe = 0, Pe = I[R] + "\n".concat(D, "+ actual").concat(A, " ").concat(w, "- expected").concat(A), ve = " ".concat(C, "...").concat(A, " Lines skipped");
    for (ne = 0; ne < ue; ne++) {
      var Xe = ne - K;
      if (G.length < ne + 1)
        Xe > 1 && ne > 2 && (Xe > 4 ? (V += "\n".concat(C, "...").concat(A), W = !0) : Xe > 3 && (V += "\n  ".concat(le[ne - 2]), xe++), V += "\n  ".concat(le[ne - 1]), xe++), K = ne, $ += "\n".concat(w, "-").concat(A, " ").concat(le[ne]), xe++;
      else if (le.length < ne + 1)
        Xe > 1 && ne > 2 && (Xe > 4 ? (V += "\n".concat(C, "...").concat(A), W = !0) : Xe > 3 && (V += "\n  ".concat(G[ne - 2]), xe++), V += "\n  ".concat(G[ne - 1]), xe++), K = ne, V += "\n".concat(D, "+").concat(A, " ").concat(G[ne]), xe++;
      else {
        var st = le[ne], Se = G[ne], oe = Se !== st && (!P(Se, ",") || Se.slice(0, -1) !== st);
        oe && P(st, ",") && st.slice(0, -1) === Se && (oe = !1, Se += ","), oe ? (Xe > 1 && ne > 2 && (Xe > 4 ? (V += "\n".concat(C, "...").concat(A), W = !0) : Xe > 3 && (V += "\n  ".concat(G[ne - 2]), xe++), V += "\n  ".concat(G[ne - 1]), xe++), K = ne, V += "\n".concat(D, "+").concat(A, " ").concat(Se), $ += "\n".concat(w, "-").concat(A, " ").concat(st), xe += 2) : (V += $, $ = "", (Xe === 1 || ne === 0) && (V += "\n  ".concat(Se), xe++));
      }
      if (xe > 20 && ne < ue - 2)
        return "".concat(Pe).concat(ve, "\n").concat(V, "\n").concat(C, "...").concat(A).concat($, "\n") + "".concat(C, "...").concat(A);
    }
    return "".concat(Pe).concat(W ? ve : "", "\n").concat(V).concat($).concat(z).concat(ae);
  }
  var j = /* @__PURE__ */ function(N) {
    o(M, N);
    function M(R) {
      var $;
      if (r(this, M), g(R) !== "object" || R === null)
        throw new S("options", "Object", R);
      var V = R.message, K = R.operator, z = R.stackStartFn, W = R.actual, Y = R.expected, G = Error.stackTraceLimit;
      if (Error.stackTraceLimit = 0, V != null)
        $ = s(this, m(M).call(this, String(V)));
      else if (process.stderr && process.stderr.isTTY && (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1 ? (C = "\x1B[34m", D = "\x1B[32m", A = "\x1B[39m", w = "\x1B[31m") : (C = "", D = "", A = "", w = "")), g(W) === "object" && W !== null && g(Y) === "object" && Y !== null && "stack" in W && W instanceof Error && "stack" in Y && Y instanceof Error && (W = O(W), Y = O(Y)), K === "deepStrictEqual" || K === "strictEqual")
        $ = s(this, m(M).call(this, q(W, Y, K)));
      else if (K === "notDeepStrictEqual" || K === "notStrictEqual") {
        var le = I[K], ne = F(W).split("\n");
        if (K === "notStrictEqual" && g(W) === "object" && W !== null && (le = I.notStrictEqualObject), ne.length > 30)
          for (ne[26] = "".concat(C, "...").concat(A); ne.length > 27; )
            ne.pop();
        ne.length === 1 ? $ = s(this, m(M).call(this, "".concat(le, " ").concat(ne[0]))) : $ = s(this, m(M).call(this, "".concat(le, "\n\n").concat(ne.join("\n"), "\n")));
      } else {
        var ae = F(W), be = "", ye = I[K];
        K === "notDeepEqual" || K === "notEqual" ? (ae = "".concat(I[K], "\n\n").concat(ae), ae.length > 1024 && (ae = "".concat(ae.slice(0, 1021), "..."))) : (be = "".concat(F(Y)), ae.length > 512 && (ae = "".concat(ae.slice(0, 509), "...")), be.length > 512 && (be = "".concat(be.slice(0, 509), "...")), K === "deepEqual" || K === "equal" ? ae = "".concat(ye, "\n\n").concat(ae, "\n\nshould equal\n\n") : be = " ".concat(K, " ").concat(be)), $ = s(this, m(M).call(this, "".concat(ae).concat(be)));
      }
      return Error.stackTraceLimit = G, $.generatedMessage = !V, Object.defineProperty(a($), "name", {
        value: "AssertionError [ERR_ASSERTION]",
        enumerable: !1,
        writable: !0,
        configurable: !0
      }), $.code = "ERR_ASSERTION", $.actual = W, $.expected = Y, $.operator = K, Error.captureStackTrace && Error.captureStackTrace(a($), z), $.stack, $.name = "AssertionError", s($);
    }
    return n(M, [{
      key: "toString",
      value: function() {
        return "".concat(this.name, " [").concat(this.code, "]: ").concat(this.message);
      }
    }, {
      key: v.custom,
      value: function($, V) {
        return v(this, e({}, V, {
          customInspect: !1,
          depth: 0
        }));
      }
    }]), M;
  }(l(Error));
  return JM = j, JM;
}
var QM, JK;
function _rt() {
  if (JK)
    return QM;
  JK = 1;
  function e(r, i) {
    if (r == null)
      throw new TypeError("Cannot convert first argument to object");
    for (var n = Object(r), s = 1; s < arguments.length; s++) {
      var a = arguments[s];
      if (a != null)
        for (var o = Object.keys(Object(a)), l = 0, u = o.length; l < u; l++) {
          var c = o[l], f = Object.getOwnPropertyDescriptor(a, c);
          f !== void 0 && f.enumerable && (n[c] = a[c]);
        }
    }
    return n;
  }
  function t() {
    Object.assign || Object.defineProperty(Object, "assign", {
      enumerable: !1,
      configurable: !0,
      writable: !0,
      value: e
    });
  }
  return QM = {
    assign: e,
    polyfill: t
  }, QM;
}
var ZM, QK;
function The() {
  if (QK)
    return ZM;
  QK = 1;
  var e = Object.prototype.toString;
  return ZM = function(r) {
    var i = e.call(r), n = i === "[object Arguments]";
    return n || (n = i !== "[object Array]" && r !== null && typeof r == "object" && typeof r.length == "number" && r.length >= 0 && e.call(r.callee) === "[object Function]"), n;
  }, ZM;
}
var eR, ZK;
function Irt() {
  if (ZK)
    return eR;
  ZK = 1;
  var e;
  if (!Object.keys) {
    var t = Object.prototype.hasOwnProperty, r = Object.prototype.toString, i = The(), n = Object.prototype.propertyIsEnumerable, s = !n.call({ toString: null }, "toString"), a = n.call(function() {
    }, "prototype"), o = [
      "toString",
      "toLocaleString",
      "valueOf",
      "hasOwnProperty",
      "isPrototypeOf",
      "propertyIsEnumerable",
      "constructor"
    ], l = function(h) {
      var m = h.constructor;
      return m && m.prototype === h;
    }, u = {
      $applicationCache: !0,
      $console: !0,
      $external: !0,
      $frame: !0,
      $frameElement: !0,
      $frames: !0,
      $innerHeight: !0,
      $innerWidth: !0,
      $onmozfullscreenchange: !0,
      $onmozfullscreenerror: !0,
      $outerHeight: !0,
      $outerWidth: !0,
      $pageXOffset: !0,
      $pageYOffset: !0,
      $parent: !0,
      $scrollLeft: !0,
      $scrollTop: !0,
      $scrollX: !0,
      $scrollY: !0,
      $self: !0,
      $webkitIndexedDB: !0,
      $webkitStorageInfo: !0,
      $window: !0
    }, c = function() {
      if (typeof window == "undefined")
        return !1;
      for (var h in window)
        try {
          if (!u["$" + h] && t.call(window, h) && window[h] !== null && typeof window[h] == "object")
            try {
              l(window[h]);
            } catch (m) {
              return !0;
            }
        } catch (m) {
          return !0;
        }
      return !1;
    }(), f = function(h) {
      if (typeof window == "undefined" || !c)
        return l(h);
      try {
        return l(h);
      } catch (m) {
        return !1;
      }
    };
    e = function(m) {
      var g = m !== null && typeof m == "object", y = r.call(m) === "[object Function]", v = i(m), T = g && r.call(m) === "[object String]", S = [];
      if (!g && !y && !v)
        throw new TypeError("Object.keys called on a non-object");
      var P = a && y;
      if (T && m.length > 0 && !t.call(m, 0))
        for (var x = 0; x < m.length; ++x)
          S.push(String(x));
      if (v && m.length > 0)
        for (var C = 0; C < m.length; ++C)
          S.push(String(C));
      else
        for (var D in m)
          !(P && D === "prototype") && t.call(m, D) && S.push(String(D));
      if (s)
        for (var w = f(m), A = 0; A < o.length; ++A)
          !(w && o[A] === "constructor") && t.call(m, o[A]) && S.push(o[A]);
      return S;
    };
  }
  return eR = e, eR;
}
var tR, ez;
function She() {
  if (ez)
    return tR;
  ez = 1;
  var e = Array.prototype.slice, t = The(), r = Object.keys, i = r ? function(a) {
    return r(a);
  } : Irt(), n = Object.keys;
  return i.shim = function() {
    if (Object.keys) {
      var a = function() {
        var o = Object.keys(arguments);
        return o && o.length === arguments.length;
      }(1, 2);
      a || (Object.keys = function(l) {
        return t(l) ? n(e.call(l)) : n(l);
      });
    } else
      Object.keys = i;
    return Object.keys || i;
  }, tR = i, tR;
}
var rR, tz;
function xhe() {
  if (tz)
    return rR;
  tz = 1;
  var e = zT, t = e("%Object.defineProperty%", !0), r = function() {
    if (t)
      try {
        return t({}, "a", { value: 1 }), !0;
      } catch (n) {
        return !1;
      }
    return !1;
  };
  return r.hasArrayLengthDefineBug = function() {
    if (!r())
      return null;
    try {
      return t([], "length", { value: 1 }).length !== 1;
    } catch (n) {
      return !0;
    }
  }, rR = r, rR;
}
var iR, rz;
function Ehe() {
  if (rz)
    return iR;
  rz = 1;
  var e = She(), t = typeof Symbol == "function" && typeof Symbol("foo") == "symbol", r = Object.prototype.toString, i = Array.prototype.concat, n = Object.defineProperty, s = function(c) {
    return typeof c == "function" && r.call(c) === "[object Function]";
  }, a = xhe()(), o = n && a, l = function(c, f, h, m) {
    if (f in c) {
      if (m === !0) {
        if (c[f] === h)
          return;
      } else if (!s(m) || !m())
        return;
    }
    o ? n(c, f, {
      configurable: !0,
      enumerable: !1,
      value: h,
      writable: !0
    }) : c[f] = h;
  }, u = function(c, f) {
    var h = arguments.length > 2 ? arguments[2] : {}, m = e(f);
    t && (m = i.call(m, Object.getOwnPropertySymbols(f)));
    for (var g = 0; g < m.length; g += 1)
      l(c, m[g], f[m[g]], h[m[g]]);
  };
  return u.supportsDescriptors = !!o, iR = u, iR;
}
var nR, iz;
function Phe() {
  if (iz)
    return nR;
  iz = 1;
  var e = function(t) {
    return t !== t;
  };
  return nR = function(r, i) {
    return r === 0 && i === 0 ? 1 / r === 1 / i : !!(r === i || e(r) && e(i));
  }, nR;
}
var sR, nz;
function whe() {
  if (nz)
    return sR;
  nz = 1;
  var e = Phe();
  return sR = function() {
    return typeof Object.is == "function" ? Object.is : e;
  }, sR;
}
var aR, sz;
function krt() {
  if (sz)
    return aR;
  sz = 1;
  var e = whe(), t = Ehe();
  return aR = function() {
    var i = e();
    return t(Object, { is: i }, {
      is: function() {
        return Object.is !== i;
      }
    }), i;
  }, aR;
}
var oR, az;
function Ahe() {
  if (az)
    return oR;
  az = 1;
  var e = Ehe(), t = ihe(), r = Phe(), i = whe(), n = krt(), s = t(i(), Object);
  return e(s, {
    getPolyfill: i,
    implementation: r,
    shim: n
  }), oR = s, oR;
}
var lR, oz;
function Che() {
  if (oz)
    return lR;
  oz = 1;
  var e = She(), t = typeof Symbol == "function" && typeof Symbol("foo") == "symbol", r = Object.prototype.toString, i = Array.prototype.concat, n = phe(), s = function(u) {
    return typeof u == "function" && r.call(u) === "[object Function]";
  }, a = xhe()(), o = function(u, c, f, h) {
    if (c in u) {
      if (h === !0) {
        if (u[c] === f)
          return;
      } else if (!s(h) || !h())
        return;
    }
    a ? n(u, c, f, !0) : n(u, c, f);
  }, l = function(u, c) {
    var f = arguments.length > 2 ? arguments[2] : {}, h = e(c);
    t && (h = i.call(h, Object.getOwnPropertySymbols(c)));
    for (var m = 0; m < h.length; m += 1)
      o(u, h[m], c[h[m]], f[h[m]]);
  };
  return l.supportsDescriptors = !!a, lR = l, lR;
}
var uR, lz;
function _he() {
  return lz || (lz = 1, uR = function(t) {
    return t !== t;
  }), uR;
}
var cR, uz;
function Ihe() {
  if (uz)
    return cR;
  uz = 1;
  var e = _he();
  return cR = function() {
    return Number.isNaN && Number.isNaN(NaN) && !Number.isNaN("a") ? Number.isNaN : e;
  }, cR;
}
var pR, cz;
function Ort() {
  if (cz)
    return pR;
  cz = 1;
  var e = Che(), t = Ihe();
  return pR = function() {
    var i = t();
    return e(Number, { isNaN: i }, {
      isNaN: function() {
        return Number.isNaN !== i;
      }
    }), i;
  }, pR;
}
var fR, pz;
function Nrt() {
  if (pz)
    return fR;
  pz = 1;
  var e = hhe, t = Che(), r = _he(), i = Ihe(), n = Ort(), s = e(i(), Number);
  return t(s, {
    getPolyfill: i,
    implementation: r,
    shim: n
  }), fR = s, fR;
}
var hR, fz;
function Drt() {
  if (fz)
    return hR;
  fz = 1;
  function e(se, re) {
    return i(se) || r(se, re) || t();
  }
  function t() {
    throw new TypeError("Invalid attempt to destructure non-iterable instance");
  }
  function r(se, re) {
    var Te = [], ze = !0, Ze = !1, pt = void 0;
    try {
      for (var ut = se[Symbol.iterator](), bt; !(ze = (bt = ut.next()).done) && (Te.push(bt.value), !(re && Te.length === re)); ze = !0)
        ;
    } catch (vt) {
      Ze = !0, pt = vt;
    } finally {
      try {
        !ze && ut.return != null && ut.return();
      } finally {
        if (Ze)
          throw pt;
      }
    }
    return Te;
  }
  function i(se) {
    if (Array.isArray(se))
      return se;
  }
  function n(se) {
    return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? n = function(Te) {
      return typeof Te;
    } : n = function(Te) {
      return Te && typeof Symbol == "function" && Te.constructor === Symbol && Te !== Symbol.prototype ? "symbol" : typeof Te;
    }, n(se);
  }
  var s = /a/g.flags !== void 0, a = function(re) {
    var Te = [];
    return re.forEach(function(ze) {
      return Te.push(ze);
    }), Te;
  }, o = function(re) {
    var Te = [];
    return re.forEach(function(ze, Ze) {
      return Te.push([Ze, ze]);
    }), Te;
  }, l = Object.is ? Object.is : Ahe(), u = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function() {
    return [];
  }, c = Number.isNaN ? Number.isNaN : Nrt();
  function f(se) {
    return se.call.bind(se);
  }
  var h = f(Object.prototype.hasOwnProperty), m = f(Object.prototype.propertyIsEnumerable), g = f(Object.prototype.toString), y = Jy.types, v = y.isAnyArrayBuffer, T = y.isArrayBufferView, S = y.isDate, P = y.isMap, x = y.isRegExp, C = y.isSet, D = y.isNativeError, w = y.isBoxedPrimitive, A = y.isNumberObject, I = y.isStringObject, L = y.isBooleanObject, O = y.isBigIntObject, F = y.isSymbolObject, q = y.isFloat32Array, j = y.isFloat64Array;
  function N(se) {
    if (se.length === 0 || se.length > 10)
      return !0;
    for (var re = 0; re < se.length; re++) {
      var Te = se.charCodeAt(re);
      if (Te < 48 || Te > 57)
        return !0;
    }
    return se.length === 10 && se >= Math.pow(2, 32);
  }
  function M(se) {
    return Object.keys(se).filter(N).concat(u(se).filter(Object.prototype.propertyIsEnumerable.bind(se)));
  }
  /*!
   * The buffer module from node.js, for the browser.
   *
   * @author   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
   * @license  MIT
   */
  function R(se, re) {
    if (se === re)
      return 0;
    for (var Te = se.length, ze = re.length, Ze = 0, pt = Math.min(Te, ze); Ze < pt; ++Ze)
      if (se[Ze] !== re[Ze]) {
        Te = se[Ze], ze = re[Ze];
        break;
      }
    return Te < ze ? -1 : ze < Te ? 1 : 0;
  }
  var $ = !0, V = !1, K = 0, z = 1, W = 2, Y = 3;
  function G(se, re) {
    return s ? se.source === re.source && se.flags === re.flags : RegExp.prototype.toString.call(se) === RegExp.prototype.toString.call(re);
  }
  function le(se, re) {
    if (se.byteLength !== re.byteLength)
      return !1;
    for (var Te = 0; Te < se.byteLength; Te++)
      if (se[Te] !== re[Te])
        return !1;
    return !0;
  }
  function ne(se, re) {
    return se.byteLength !== re.byteLength ? !1 : R(new Uint8Array(se.buffer, se.byteOffset, se.byteLength), new Uint8Array(re.buffer, re.byteOffset, re.byteLength)) === 0;
  }
  function ae(se, re) {
    return se.byteLength === re.byteLength && R(new Uint8Array(se), new Uint8Array(re)) === 0;
  }
  function be(se, re) {
    return A(se) ? A(re) && l(Number.prototype.valueOf.call(se), Number.prototype.valueOf.call(re)) : I(se) ? I(re) && String.prototype.valueOf.call(se) === String.prototype.valueOf.call(re) : L(se) ? L(re) && Boolean.prototype.valueOf.call(se) === Boolean.prototype.valueOf.call(re) : O(se) ? O(re) && BigInt.prototype.valueOf.call(se) === BigInt.prototype.valueOf.call(re) : F(re) && Symbol.prototype.valueOf.call(se) === Symbol.prototype.valueOf.call(re);
  }
  function ye(se, re, Te, ze) {
    if (se === re)
      return se !== 0 ? !0 : Te ? l(se, re) : !0;
    if (Te) {
      if (n(se) !== "object")
        return typeof se == "number" && c(se) && c(re);
      if (n(re) !== "object" || se === null || re === null || Object.getPrototypeOf(se) !== Object.getPrototypeOf(re))
        return !1;
    } else {
      if (se === null || n(se) !== "object")
        return re === null || n(re) !== "object" ? se == re : !1;
      if (re === null || n(re) !== "object")
        return !1;
    }
    var Ze = g(se), pt = g(re);
    if (Ze !== pt)
      return !1;
    if (Array.isArray(se)) {
      if (se.length !== re.length)
        return !1;
      var ut = M(se), bt = M(re);
      return ut.length !== bt.length ? !1 : Z(se, re, Te, ze, z, ut);
    }
    if (Ze === "[object Object]" && (!P(se) && P(re) || !C(se) && C(re)))
      return !1;
    if (S(se)) {
      if (!S(re) || Date.prototype.getTime.call(se) !== Date.prototype.getTime.call(re))
        return !1;
    } else if (x(se)) {
      if (!x(re) || !G(se, re))
        return !1;
    } else if (D(se) || se instanceof Error) {
      if (se.message !== re.message || se.name !== re.name)
        return !1;
    } else if (T(se)) {
      if (!Te && (q(se) || j(se))) {
        if (!le(se, re))
          return !1;
      } else if (!ne(se, re))
        return !1;
      var vt = M(se), ge = M(re);
      return vt.length !== ge.length ? !1 : Z(se, re, Te, ze, K, vt);
    } else {
      if (C(se))
        return !C(re) || se.size !== re.size ? !1 : Z(se, re, Te, ze, W);
      if (P(se))
        return !P(re) || se.size !== re.size ? !1 : Z(se, re, Te, ze, Y);
      if (v(se)) {
        if (!ae(se, re))
          return !1;
      } else if (w(se) && !be(se, re))
        return !1;
    }
    return Z(se, re, Te, ze, K);
  }
  function fe(se, re) {
    return re.filter(function(Te) {
      return m(se, Te);
    });
  }
  function Z(se, re, Te, ze, Ze, pt) {
    if (arguments.length === 5) {
      pt = Object.keys(se);
      var ut = Object.keys(re);
      if (pt.length !== ut.length)
        return !1;
    }
    for (var bt = 0; bt < pt.length; bt++)
      if (!h(re, pt[bt]))
        return !1;
    if (Te && arguments.length === 5) {
      var vt = u(se);
      if (vt.length !== 0) {
        var ge = 0;
        for (bt = 0; bt < vt.length; bt++) {
          var pe = vt[bt];
          if (m(se, pe)) {
            if (!m(re, pe))
              return !1;
            pt.push(pe), ge++;
          } else if (m(re, pe))
            return !1;
        }
        var $e = u(re);
        if (vt.length !== $e.length && fe(re, $e).length !== ge)
          return !1;
      } else {
        var ie = u(re);
        if (ie.length !== 0 && fe(re, ie).length !== 0)
          return !1;
      }
    }
    if (pt.length === 0 && (Ze === K || Ze === z && se.length === 0 || se.size === 0))
      return !0;
    if (ze === void 0)
      ze = {
        val1: /* @__PURE__ */ new Map(),
        val2: /* @__PURE__ */ new Map(),
        position: 0
      };
    else {
      var Q = ze.val1.get(se);
      if (Q !== void 0) {
        var X = ze.val2.get(re);
        if (X !== void 0)
          return Q === X;
      }
      ze.position++;
    }
    ze.val1.set(se, ze.position), ze.val2.set(re, ze.position);
    var ce = Se(se, re, Te, pt, ze, Ze);
    return ze.val1.delete(se), ze.val2.delete(re), ce;
  }
  function ue(se, re, Te, ze) {
    for (var Ze = a(se), pt = 0; pt < Ze.length; pt++) {
      var ut = Ze[pt];
      if (ye(re, ut, Te, ze))
        return se.delete(ut), !0;
    }
    return !1;
  }
  function me(se) {
    switch (n(se)) {
      case "undefined":
        return null;
      case "object":
        return;
      case "symbol":
        return !1;
      case "string":
        se = +se;
      case "number":
        if (c(se))
          return !1;
    }
    return !0;
  }
  function xe(se, re, Te) {
    var ze = me(Te);
    return ze != null ? ze : re.has(ze) && !se.has(ze);
  }
  function Pe(se, re, Te, ze, Ze) {
    var pt = me(Te);
    if (pt != null)
      return pt;
    var ut = re.get(pt);
    return ut === void 0 && !re.has(pt) || !ye(ze, ut, !1, Ze) ? !1 : !se.has(pt) && ye(ze, ut, !1, Ze);
  }
  function ve(se, re, Te, ze) {
    for (var Ze = null, pt = a(se), ut = 0; ut < pt.length; ut++) {
      var bt = pt[ut];
      if (n(bt) === "object" && bt !== null)
        Ze === null && (Ze = /* @__PURE__ */ new Set()), Ze.add(bt);
      else if (!re.has(bt)) {
        if (Te || !xe(se, re, bt))
          return !1;
        Ze === null && (Ze = /* @__PURE__ */ new Set()), Ze.add(bt);
      }
    }
    if (Ze !== null) {
      for (var vt = a(re), ge = 0; ge < vt.length; ge++) {
        var pe = vt[ge];
        if (n(pe) === "object" && pe !== null) {
          if (!ue(Ze, pe, Te, ze))
            return !1;
        } else if (!Te && !se.has(pe) && !ue(Ze, pe, Te, ze))
          return !1;
      }
      return Ze.size === 0;
    }
    return !0;
  }
  function Xe(se, re, Te, ze, Ze, pt) {
    for (var ut = a(se), bt = 0; bt < ut.length; bt++) {
      var vt = ut[bt];
      if (ye(Te, vt, Ze, pt) && ye(ze, re.get(vt), Ze, pt))
        return se.delete(vt), !0;
    }
    return !1;
  }
  function st(se, re, Te, ze) {
    for (var Ze = null, pt = o(se), ut = 0; ut < pt.length; ut++) {
      var bt = e(pt[ut], 2), vt = bt[0], ge = bt[1];
      if (n(vt) === "object" && vt !== null)
        Ze === null && (Ze = /* @__PURE__ */ new Set()), Ze.add(vt);
      else {
        var pe = re.get(vt);
        if (pe === void 0 && !re.has(vt) || !ye(ge, pe, Te, ze)) {
          if (Te || !Pe(se, re, vt, ge, ze))
            return !1;
          Ze === null && (Ze = /* @__PURE__ */ new Set()), Ze.add(vt);
        }
      }
    }
    if (Ze !== null) {
      for (var $e = o(re), ie = 0; ie < $e.length; ie++) {
        var Q = e($e[ie], 2), vt = Q[0], X = Q[1];
        if (n(vt) === "object" && vt !== null) {
          if (!Xe(Ze, se, vt, X, Te, ze))
            return !1;
        } else if (!Te && (!se.has(vt) || !ye(se.get(vt), X, !1, ze)) && !Xe(Ze, se, vt, X, !1, ze))
          return !1;
      }
      return Ze.size === 0;
    }
    return !0;
  }
  function Se(se, re, Te, ze, Ze, pt) {
    var ut = 0;
    if (pt === W) {
      if (!ve(se, re, Te, Ze))
        return !1;
    } else if (pt === Y) {
      if (!st(se, re, Te, Ze))
        return !1;
    } else if (pt === z)
      for (; ut < se.length; ut++)
        if (h(se, ut)) {
          if (!h(re, ut) || !ye(se[ut], re[ut], Te, Ze))
            return !1;
        } else {
          if (h(re, ut))
            return !1;
          for (var bt = Object.keys(se); ut < bt.length; ut++) {
            var vt = bt[ut];
            if (!h(re, vt) || !ye(se[vt], re[vt], Te, Ze))
              return !1;
          }
          return bt.length === Object.keys(re).length;
        }
    for (ut = 0; ut < ze.length; ut++) {
      var ge = ze[ut];
      if (!ye(se[ge], re[ge], Te, Ze))
        return !1;
    }
    return !0;
  }
  function oe(se, re) {
    return ye(se, re, V);
  }
  function te(se, re) {
    return ye(se, re, $);
  }
  return hR = {
    isDeepEqual: oe,
    isDeepStrictEqual: te
  }, hR;
}
var hz;
function Af() {
  if (hz)
    return LM.exports;
  hz = 1;
  function e(z) {
    return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? e = function(Y) {
      return typeof Y;
    } : e = function(Y) {
      return Y && typeof Symbol == "function" && Y.constructor === Symbol && Y !== Symbol.prototype ? "symbol" : typeof Y;
    }, e(z);
  }
  function t(z, W) {
    if (!(z instanceof W))
      throw new TypeError("Cannot call a class as a function");
  }
  var r = vhe(), i = r.codes, n = i.ERR_AMBIGUOUS_ARGUMENT, s = i.ERR_INVALID_ARG_TYPE, a = i.ERR_INVALID_ARG_VALUE, o = i.ERR_INVALID_RETURN_VALUE, l = i.ERR_MISSING_ARGS, u = Crt(), c = Jy, f = c.inspect, h = Jy.types, m = h.isPromise, g = h.isRegExp, y = Object.assign ? Object.assign : _rt().assign, v = Object.is ? Object.is : Ahe(), T, S;
  function P() {
    var z = Drt();
    T = z.isDeepEqual, S = z.isDeepStrictEqual;
  }
  var x = !1, C = LM.exports = L, D = {};
  function w(z) {
    throw z.message instanceof Error ? z.message : new u(z);
  }
  function A(z, W, Y, G, le) {
    var ne = arguments.length, ae;
    if (ne === 0)
      ae = "Failed";
    else if (ne === 1)
      Y = z, z = void 0;
    else {
      if (x === !1) {
        x = !0;
        var be = process.emitWarning ? process.emitWarning : console.warn.bind(console);
        be("assert.fail() with more than one argument is deprecated. Please use assert.strictEqual() instead or only pass a message.", "DeprecationWarning", "DEP0094");
      }
      ne === 2 && (G = "!=");
    }
    if (Y instanceof Error)
      throw Y;
    var ye = {
      actual: z,
      expected: W,
      operator: G === void 0 ? "fail" : G,
      stackStartFn: le || A
    };
    Y !== void 0 && (ye.message = Y);
    var fe = new u(ye);
    throw ae && (fe.message = ae, fe.generatedMessage = !0), fe;
  }
  C.fail = A, C.AssertionError = u;
  function I(z, W, Y, G) {
    if (!Y) {
      var le = !1;
      if (W === 0)
        le = !0, G = "No value argument passed to `assert.ok()`";
      else if (G instanceof Error)
        throw G;
      var ne = new u({
        actual: Y,
        expected: !0,
        message: G,
        operator: "==",
        stackStartFn: z
      });
      throw ne.generatedMessage = le, ne;
    }
  }
  function L() {
    for (var z = arguments.length, W = new Array(z), Y = 0; Y < z; Y++)
      W[Y] = arguments[Y];
    I.apply(void 0, [L, W.length].concat(W));
  }
  C.ok = L, C.equal = function z(W, Y, G) {
    if (arguments.length < 2)
      throw new l("actual", "expected");
    W != Y && w({
      actual: W,
      expected: Y,
      message: G,
      operator: "==",
      stackStartFn: z
    });
  }, C.notEqual = function z(W, Y, G) {
    if (arguments.length < 2)
      throw new l("actual", "expected");
    W == Y && w({
      actual: W,
      expected: Y,
      message: G,
      operator: "!=",
      stackStartFn: z
    });
  }, C.deepEqual = function z(W, Y, G) {
    if (arguments.length < 2)
      throw new l("actual", "expected");
    T === void 0 && P(), T(W, Y) || w({
      actual: W,
      expected: Y,
      message: G,
      operator: "deepEqual",
      stackStartFn: z
    });
  }, C.notDeepEqual = function z(W, Y, G) {
    if (arguments.length < 2)
      throw new l("actual", "expected");
    T === void 0 && P(), T(W, Y) && w({
      actual: W,
      expected: Y,
      message: G,
      operator: "notDeepEqual",
      stackStartFn: z
    });
  }, C.deepStrictEqual = function z(W, Y, G) {
    if (arguments.length < 2)
      throw new l("actual", "expected");
    T === void 0 && P(), S(W, Y) || w({
      actual: W,
      expected: Y,
      message: G,
      operator: "deepStrictEqual",
      stackStartFn: z
    });
  }, C.notDeepStrictEqual = O;
  function O(z, W, Y) {
    if (arguments.length < 2)
      throw new l("actual", "expected");
    T === void 0 && P(), S(z, W) && w({
      actual: z,
      expected: W,
      message: Y,
      operator: "notDeepStrictEqual",
      stackStartFn: O
    });
  }
  C.strictEqual = function z(W, Y, G) {
    if (arguments.length < 2)
      throw new l("actual", "expected");
    v(W, Y) || w({
      actual: W,
      expected: Y,
      message: G,
      operator: "strictEqual",
      stackStartFn: z
    });
  }, C.notStrictEqual = function z(W, Y, G) {
    if (arguments.length < 2)
      throw new l("actual", "expected");
    v(W, Y) && w({
      actual: W,
      expected: Y,
      message: G,
      operator: "notStrictEqual",
      stackStartFn: z
    });
  };
  var F = function z(W, Y, G) {
    var le = this;
    t(this, z), Y.forEach(function(ne) {
      ne in W && (G !== void 0 && typeof G[ne] == "string" && g(W[ne]) && W[ne].test(G[ne]) ? le[ne] = G[ne] : le[ne] = W[ne]);
    });
  };
  function q(z, W, Y, G, le, ne) {
    if (!(Y in z) || !S(z[Y], W[Y])) {
      if (!G) {
        var ae = new F(z, le), be = new F(W, le, z), ye = new u({
          actual: ae,
          expected: be,
          operator: "deepStrictEqual",
          stackStartFn: ne
        });
        throw ye.actual = z, ye.expected = W, ye.operator = ne.name, ye;
      }
      w({
        actual: z,
        expected: W,
        message: G,
        operator: ne.name,
        stackStartFn: ne
      });
    }
  }
  function j(z, W, Y, G) {
    if (typeof W != "function") {
      if (g(W))
        return W.test(z);
      if (arguments.length === 2)
        throw new s("expected", ["Function", "RegExp"], W);
      if (e(z) !== "object" || z === null) {
        var le = new u({
          actual: z,
          expected: W,
          message: Y,
          operator: "deepStrictEqual",
          stackStartFn: G
        });
        throw le.operator = G.name, le;
      }
      var ne = Object.keys(W);
      if (W instanceof Error)
        ne.push("name", "message");
      else if (ne.length === 0)
        throw new a("error", W, "may not be an empty object");
      return T === void 0 && P(), ne.forEach(function(ae) {
        typeof z[ae] == "string" && g(W[ae]) && W[ae].test(z[ae]) || q(z, W, ae, Y, ne, G);
      }), !0;
    }
    return W.prototype !== void 0 && z instanceof W ? !0 : Error.isPrototypeOf(W) ? !1 : W.call({}, z) === !0;
  }
  function N(z) {
    if (typeof z != "function")
      throw new s("fn", "Function", z);
    try {
      z();
    } catch (W) {
      return W;
    }
    return D;
  }
  function M(z) {
    return m(z) || z !== null && e(z) === "object" && typeof z.then == "function" && typeof z.catch == "function";
  }
  function R(z) {
    return Promise.resolve().then(function() {
      var W;
      if (typeof z == "function") {
        if (W = z(), !M(W))
          throw new o("instance of Promise", "promiseFn", W);
      } else if (M(z))
        W = z;
      else
        throw new s("promiseFn", ["Function", "Promise"], z);
      return Promise.resolve().then(function() {
        return W;
      }).then(function() {
        return D;
      }).catch(function(Y) {
        return Y;
      });
    });
  }
  function $(z, W, Y, G) {
    if (typeof Y == "string") {
      if (arguments.length === 4)
        throw new s("error", ["Object", "Error", "Function", "RegExp"], Y);
      if (e(W) === "object" && W !== null) {
        if (W.message === Y)
          throw new n("error/message", 'The error message "'.concat(W.message, '" is identical to the message.'));
      } else if (W === Y)
        throw new n("error/message", 'The error "'.concat(W, '" is identical to the message.'));
      G = Y, Y = void 0;
    } else if (Y != null && e(Y) !== "object" && typeof Y != "function")
      throw new s("error", ["Object", "Error", "Function", "RegExp"], Y);
    if (W === D) {
      var le = "";
      Y && Y.name && (le += " (".concat(Y.name, ")")), le += G ? ": ".concat(G) : ".";
      var ne = z.name === "rejects" ? "rejection" : "exception";
      w({
        actual: void 0,
        expected: Y,
        operator: z.name,
        message: "Missing expected ".concat(ne).concat(le),
        stackStartFn: z
      });
    }
    if (Y && !j(W, Y, G, z))
      throw W;
  }
  function V(z, W, Y, G) {
    if (W !== D) {
      if (typeof Y == "string" && (G = Y, Y = void 0), !Y || j(W, Y)) {
        var le = G ? ": ".concat(G) : ".", ne = z.name === "doesNotReject" ? "rejection" : "exception";
        w({
          actual: W,
          expected: Y,
          operator: z.name,
          message: "Got unwanted ".concat(ne).concat(le, "\n") + 'Actual message: "'.concat(W && W.message, '"'),
          stackStartFn: z
        });
      }
      throw W;
    }
  }
  C.throws = function z(W) {
    for (var Y = arguments.length, G = new Array(Y > 1 ? Y - 1 : 0), le = 1; le < Y; le++)
      G[le - 1] = arguments[le];
    $.apply(void 0, [z, N(W)].concat(G));
  }, C.rejects = function z(W) {
    for (var Y = arguments.length, G = new Array(Y > 1 ? Y - 1 : 0), le = 1; le < Y; le++)
      G[le - 1] = arguments[le];
    return R(W).then(function(ne) {
      return $.apply(void 0, [z, ne].concat(G));
    });
  }, C.doesNotThrow = function z(W) {
    for (var Y = arguments.length, G = new Array(Y > 1 ? Y - 1 : 0), le = 1; le < Y; le++)
      G[le - 1] = arguments[le];
    V.apply(void 0, [z, N(W)].concat(G));
  }, C.doesNotReject = function z(W) {
    for (var Y = arguments.length, G = new Array(Y > 1 ? Y - 1 : 0), le = 1; le < Y; le++)
      G[le - 1] = arguments[le];
    return R(W).then(function(ne) {
      return V.apply(void 0, [z, ne].concat(G));
    });
  }, C.ifError = function z(W) {
    if (W != null) {
      var Y = "ifError got unwanted exception: ";
      e(W) === "object" && typeof W.message == "string" ? W.message.length === 0 && W.constructor ? Y += W.constructor.name : Y += W.message : Y += f(W);
      var G = new u({
        actual: W,
        expected: null,
        operator: "ifError",
        message: Y,
        stackStartFn: z
      }), le = W.stack;
      if (typeof le == "string") {
        var ne = le.split("\n");
        ne.shift();
        for (var ae = G.stack.split("\n"), be = 0; be < ne.length; be++) {
          var ye = ae.indexOf(ne[be]);
          if (ye !== -1) {
            ae = ae.slice(0, ye);
            break;
          }
        }
        G.stack = "".concat(ae.join("\n"), "\n").concat(ne.join("\n"));
      }
      throw G;
    }
  };
  function K() {
    for (var z = arguments.length, W = new Array(z), Y = 0; Y < z; Y++)
      W[Y] = arguments[Y];
    I.apply(void 0, [K, W.length].concat(W));
  }
  return C.strict = y(K, C, {
    equal: C.strictEqual,
    deepEqual: C.deepStrictEqual,
    notEqual: C.notStrictEqual,
    notDeepEqual: C.notDeepStrictEqual
  }), C.strict.strict = C.strict, LM.exports;
}
var dR = {}, xb = {}, jx = {}, $x = {}, Me = {}, Ux = {}, dz;
function b9() {
  if (dz)
    return Ux;
  dz = 1, Object.defineProperty(Ux, "__esModule", {
    value: !0
  }), Ux.default = e;
  function e(t, r) {
    const i = Object.keys(r);
    for (const n of i)
      if (t[n] !== r[n])
        return !1;
    return !0;
  }
  return Ux;
}
var qx = {}, mz;
function b_() {
  if (mz)
    return qx;
  mz = 1, Object.defineProperty(qx, "__esModule", {
    value: !0
  }), qx.default = t;
  const e = /* @__PURE__ */ new Set();
  function t(i, n, s = "") {
    if (e.has(i))
      return;
    e.add(i);
    const {
      internal: a,
      trace: o
    } = r(1, 2);
    a || console.warn("".concat(s, "`").concat(i, "` has been deprecated, please migrate to `").concat(n, "`\n").concat(o));
  }
  function r(i, n) {
    const {
      stackTraceLimit: s,
      prepareStackTrace: a
    } = Error;
    let o;
    if (Error.stackTraceLimit = 1 + i + n, Error.prepareStackTrace = function(u, c) {
      o = c;
    }, new Error().stack, Error.stackTraceLimit = s, Error.prepareStackTrace = a, !o)
      return {
        internal: !1,
        trace: ""
      };
    const l = o.slice(1 + i, 1 + i + n);
    return {
      internal: /[\\/]@babel[\\/]/.test(l[1].getFileName()),
      trace: l.map((u) => "    at ".concat(u)).join("\n")
    };
  }
  return qx;
}
var yz;
function Kn() {
  if (yz)
    return Me;
  yz = 1, Object.defineProperty(Me, "__esModule", {
    value: !0
  }), Me.isAccessor = IL, Me.isAnyTypeAnnotation = _n, Me.isArgumentPlaceholder = Go, Me.isArrayExpression = r, Me.isArrayPattern = st, Me.isArrayTypeAnnotation = en, Me.isArrowFunctionExpression = Se, Me.isAssignmentExpression = i, Me.isAssignmentPattern = Xe, Me.isAwaitExpression = ft, Me.isBigIntLiteral = Rt, Me.isBinary = fl, Me.isBinaryExpression = n, Me.isBindExpression = Ca, Me.isBlock = d, Me.isBlockParent = B, Me.isBlockStatement = l, Me.isBooleanLiteral = q, Me.isBooleanLiteralTypeAnnotation = No, Me.isBooleanTypeAnnotation = bi, Me.isBreakStatement = u, Me.isCallExpression = c, Me.isCatchClause = f, Me.isClass = AL, Me.isClassAccessorProperty = kr, Me.isClassBody = oe, Me.isClassDeclaration = se, Me.isClassExpression = te, Me.isClassImplements = ga, Me.isClassMethod = $e, Me.isClassPrivateMethod = an, Me.isClassPrivateProperty = Ai, Me.isClassProperty = lr, Me.isCompletionStatement = _, Me.isConditional = H, Me.isConditionalExpression = h, Me.isContinueStatement = m, Me.isDebuggerStatement = g, Me.isDecimalLiteral = _s, Me.isDeclaration = Ht, Me.isDeclareClass = As, Me.isDeclareExportAllDeclaration = Ka, Me.isDeclareExportDeclaration = Ta, Me.isDeclareFunction = ba, Me.isDeclareInterface = Bn, Me.isDeclareModule = cs, Me.isDeclareModuleExports = Do, Me.isDeclareOpaqueType = va, Me.isDeclareTypeAlias = ps, Me.isDeclareVariable = Lo, Me.isDeclaredPredicate = za, Me.isDecorator = _u, Me.isDirective = a, Me.isDirectiveLiteral = o, Me.isDoExpression = Iu, Me.isDoWhileStatement = y, Me.isEmptyStatement = v, Me.isEmptyTypeAnnotation = iu, Me.isEnumBody = RL, Me.isEnumBooleanBody = Uo, Me.isEnumBooleanMember = wa, Me.isEnumDeclaration = yu, Me.isEnumDefaultedMember = io, Me.isEnumMember = BL, Me.isEnumNumberBody = Pa, Me.isEnumNumberMember = qo, Me.isEnumStringBody = Ws, Me.isEnumStringMember = gu, Me.isEnumSymbolBody = ro, Me.isExistsTypeAnnotation = Ga, Me.isExportAllDeclaration = re, Me.isExportDeclaration = CL, Me.isExportDefaultDeclaration = Te, Me.isExportDefaultSpecifier = ku, Me.isExportNamedDeclaration = ze, Me.isExportNamespaceSpecifier = Ot, Me.isExportSpecifier = Ze, Me.isExpression = Ks, Me.isExpressionStatement = T, Me.isExpressionWrapper = Ge, Me.isFile = S, Me.isFlow = OL, Me.isFlowBaseAnnotation = DL, Me.isFlowDeclaration = LL, Me.isFlowPredicate = ML, Me.isFlowType = NL, Me.isFor = Ye, Me.isForInStatement = P, Me.isForOfStatement = pt, Me.isForStatement = x, Me.isForXStatement = Je, Me.isFunction = gt, Me.isFunctionDeclaration = C, Me.isFunctionExpression = D, Me.isFunctionParent = It, Me.isFunctionTypeAnnotation = Ya, Me.isFunctionTypeParam = Us, Me.isGenericTypeAnnotation = Sa, Me.isIdentifier = w, Me.isIfStatement = A, Me.isImmutable = Kf, Me.isImport = ht, Me.isImportAttribute = Yo, Me.isImportDeclaration = ut, Me.isImportDefaultSpecifier = bt, Me.isImportNamespaceSpecifier = vt, Me.isImportOrExportDeclaration = LS, Me.isImportSpecifier = ge, Me.isIndexedAccessType = bu, Me.isInferredPredicate = Mo, Me.isInterfaceDeclaration = tu, Me.isInterfaceExtends = Cs, Me.isInterfaceTypeAnnotation = xa, Me.isInterpreterDirective = s, Me.isIntersectionTypeAnnotation = Ro, Me.isJSX = FL, Me.isJSXAttribute = Aa, Me.isJSXClosingElement = Wo, Me.isJSXClosingFragment = Au, Me.isJSXElement = vu, Me.isJSXEmptyExpression = Tu, Me.isJSXExpressionContainer = no, Me.isJSXFragment = Pu, Me.isJSXIdentifier = Ko, Me.isJSXMemberExpression = Su, Me.isJSXNamespacedName = xu, Me.isJSXOpeningElement = Hs, Me.isJSXOpeningFragment = wu, Me.isJSXSpreadAttribute = Eu, Me.isJSXSpreadChild = Ho, Me.isJSXText = es, Me.isLVal = Li, Me.isLabeledStatement = I, Me.isLiteral = Tn, Me.isLogicalExpression = N, Me.isLoop = ee, Me.isMemberExpression = M, Me.isMetaProperty = pe, Me.isMethod = SL, Me.isMiscellaneous = jL, Me.isMixedTypeAnnotation = ru, Me.isModuleDeclaration = GL, Me.isModuleExpression = Jo, Me.isModuleSpecifier = _L, Me.isNewExpression = R, Me.isNoop = Cu, Me.isNullLiteral = F, Me.isNullLiteralTypeAnnotation = us, Me.isNullableTypeAnnotation = Bo, Me.isNumberLiteral = WL, Me.isNumberLiteralTypeAnnotation = Fo, Me.isNumberTypeAnnotation = Zn, Me.isNumericLiteral = O, Me.isObjectExpression = V, Me.isObjectMember = xL, Me.isObjectMethod = K, Me.isObjectPattern = ie, Me.isObjectProperty = z, Me.isObjectTypeAnnotation = nu, Me.isObjectTypeCallProperty = au, Me.isObjectTypeIndexer = jo, Me.isObjectTypeInternalSlot = su, Me.isObjectTypeProperty = ou, Me.isObjectTypeSpreadProperty = Ea, Me.isOpaqueType = Xa, Me.isOptionalCallExpression = lt, Me.isOptionalIndexedAccessType = Vo, Me.isOptionalMemberExpression = Tt, Me.isParenthesizedExpression = le, Me.isPattern = wL, Me.isPatternLike = zi, Me.isPipelineBareFunction = Is, Me.isPipelinePrimaryTopicReference = Nu, Me.isPipelineTopicExpression = Qo, Me.isPlaceholder = zo, Me.isPrivate = kL, Me.isPrivateName = Nn, Me.isProgram = $, Me.isProperty = EL, Me.isPureish = _t, Me.isQualifiedTypeIdentifier = Ja, Me.isRecordExpression = Ou, Me.isRegExpLiteral = j, Me.isRegexLiteral = HL, Me.isRestElement = W, Me.isRestProperty = KL, Me.isReturnStatement = Y, Me.isScopable = bc, Me.isSequenceExpression = G, Me.isSpreadElement = Q, Me.isSpreadProperty = zL, Me.isStandardized = gc, Me.isStatement = p, Me.isStaticBlock = on, Me.isStringLiteral = L, Me.isStringLiteralTypeAnnotation = Qa, Me.isStringTypeAnnotation = lu, Me.isSuper = X, Me.isSwitchCase = ne, Me.isSwitchStatement = ae, Me.isSymbolTypeAnnotation = uu, Me.isTSAnyKeyword = Bu, Me.isTSArrayType = tl, Me.isTSAsExpression = sc, Me.isTSBaseType = VL, Me.isTSBigIntKeyword = Fu, Me.isTSBooleanKeyword = Wt, Me.isTSCallSignatureDeclaration = ao, Me.isTSConditionalType = tc, Me.isTSConstructSignatureDeclaration = Lu, Me.isTSConstructorType = zu, Me.isTSDeclareFunction = Du, Me.isTSDeclareMethod = ka, Me.isTSEntityName = Mi, Me.isTSEnumDeclaration = cl, Me.isTSEnumMember = oc, Me.isTSExportAssignment = fc, Me.isTSExpressionWithTypeArguments = Di, Me.isTSExternalModuleReference = lo, Me.isTSFunctionType = Ku, Me.isTSImportEqualsDeclaration = cc, Me.isTSImportType = uc, Me.isTSIndexSignature = Ru, Me.isTSIndexedAccessType = sl, Me.isTSInferType = il, Me.isTSInstantiationExpression = ll, Me.isTSInterfaceBody = al, Me.isTSInterfaceDeclaration = hs, Me.isTSIntersectionType = ec, Me.isTSIntrinsicKeyword = Zo, Me.isTSLiteralType = nc, Me.isTSMappedType = ic, Me.isTSMethodSignature = Mu, Me.isTSModuleBlock = oo, Me.isTSModuleDeclaration = lc, Me.isTSNamedTupleMember = Qu, Me.isTSNamespaceExportDeclaration = pl, Me.isTSNeverKeyword = ju, Me.isTSNonNullExpression = pc, Me.isTSNullKeyword = $u, Me.isTSNumberKeyword = Uu, Me.isTSObjectKeyword = qu, Me.isTSOptionalType = Ju, Me.isTSParameterProperty = Ia, Me.isTSParenthesizedType = rc, Me.isTSPropertySignature = Gn, Me.isTSQualifiedName = Oa, Me.isTSRestType = rl, Me.isTSSatisfiesExpression = ul, Me.isTSStringKeyword = Vu, Me.isTSSymbolKeyword = fs, Me.isTSThisType = Hu, Me.isTSTupleType = Ft, Me.isTSType = qL, Me.isTSTypeAliasDeclaration = ol, Me.isTSTypeAnnotation = hc, Me.isTSTypeAssertion = ac, Me.isTSTypeElement = UL, Me.isTSTypeLiteral = Xu, Me.isTSTypeOperator = nl, Me.isTSTypeParameter = yc, Me.isTSTypeParameterDeclaration = mc, Me.isTSTypeParameterInstantiation = dc, Me.isTSTypePredicate = Gu, Me.isTSTypeQuery = Yu, Me.isTSTypeReference = el, Me.isTSUndefinedKeyword = ts, Me.isTSUnionType = Zu, Me.isTSUnknownKeyword = ks, Me.isTSVoidKeyword = Wu, Me.isTaggedTemplateExpression = ce, Me.isTemplateElement = U, Me.isTemplateLiteral = Ee, Me.isTerminatorless = b, Me.isThisExpression = be, Me.isThisTypeAnnotation = cu, Me.isThrowStatement = ye, Me.isTopicReference = _a, Me.isTryStatement = fe, Me.isTupleExpression = Xo, Me.isTupleTypeAnnotation = pu, Me.isTypeAlias = eo, Me.isTypeAnnotation = to, Me.isTypeCastExpression = fu, Me.isTypeParameter = hu, Me.isTypeParameterDeclaration = du, Me.isTypeParameterInstantiation = $o, Me.isTypeScript = $L, Me.isTypeofTypeAnnotation = Za, Me.isUnaryExpression = Z, Me.isUnaryLike = PL, Me.isUnionTypeAnnotation = mu, Me.isUpdateExpression = ue, Me.isUserWhitespacable = Ap, Me.isV8IntrinsicIdentifier = so, Me.isVariableDeclaration = me, Me.isVariableDeclarator = xe, Me.isVariance = qs, Me.isVoidTypeAnnotation = Vs, Me.isWhile = de, Me.isWhileStatement = Pe, Me.isWithStatement = ve, Me.isYieldExpression = Qe;
  var e = b9(), t = b_();
  function r(k, E) {
    return !k || k.type !== "ArrayExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function i(k, E) {
    return !k || k.type !== "AssignmentExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function n(k, E) {
    return !k || k.type !== "BinaryExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function s(k, E) {
    return !k || k.type !== "InterpreterDirective" ? !1 : E == null || (0, e.default)(k, E);
  }
  function a(k, E) {
    return !k || k.type !== "Directive" ? !1 : E == null || (0, e.default)(k, E);
  }
  function o(k, E) {
    return !k || k.type !== "DirectiveLiteral" ? !1 : E == null || (0, e.default)(k, E);
  }
  function l(k, E) {
    return !k || k.type !== "BlockStatement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function u(k, E) {
    return !k || k.type !== "BreakStatement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function c(k, E) {
    return !k || k.type !== "CallExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function f(k, E) {
    return !k || k.type !== "CatchClause" ? !1 : E == null || (0, e.default)(k, E);
  }
  function h(k, E) {
    return !k || k.type !== "ConditionalExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function m(k, E) {
    return !k || k.type !== "ContinueStatement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function g(k, E) {
    return !k || k.type !== "DebuggerStatement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function y(k, E) {
    return !k || k.type !== "DoWhileStatement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function v(k, E) {
    return !k || k.type !== "EmptyStatement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function T(k, E) {
    return !k || k.type !== "ExpressionStatement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function S(k, E) {
    return !k || k.type !== "File" ? !1 : E == null || (0, e.default)(k, E);
  }
  function P(k, E) {
    return !k || k.type !== "ForInStatement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function x(k, E) {
    return !k || k.type !== "ForStatement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function C(k, E) {
    return !k || k.type !== "FunctionDeclaration" ? !1 : E == null || (0, e.default)(k, E);
  }
  function D(k, E) {
    return !k || k.type !== "FunctionExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function w(k, E) {
    return !k || k.type !== "Identifier" ? !1 : E == null || (0, e.default)(k, E);
  }
  function A(k, E) {
    return !k || k.type !== "IfStatement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function I(k, E) {
    return !k || k.type !== "LabeledStatement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function L(k, E) {
    return !k || k.type !== "StringLiteral" ? !1 : E == null || (0, e.default)(k, E);
  }
  function O(k, E) {
    return !k || k.type !== "NumericLiteral" ? !1 : E == null || (0, e.default)(k, E);
  }
  function F(k, E) {
    return !k || k.type !== "NullLiteral" ? !1 : E == null || (0, e.default)(k, E);
  }
  function q(k, E) {
    return !k || k.type !== "BooleanLiteral" ? !1 : E == null || (0, e.default)(k, E);
  }
  function j(k, E) {
    return !k || k.type !== "RegExpLiteral" ? !1 : E == null || (0, e.default)(k, E);
  }
  function N(k, E) {
    return !k || k.type !== "LogicalExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function M(k, E) {
    return !k || k.type !== "MemberExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function R(k, E) {
    return !k || k.type !== "NewExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function $(k, E) {
    return !k || k.type !== "Program" ? !1 : E == null || (0, e.default)(k, E);
  }
  function V(k, E) {
    return !k || k.type !== "ObjectExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function K(k, E) {
    return !k || k.type !== "ObjectMethod" ? !1 : E == null || (0, e.default)(k, E);
  }
  function z(k, E) {
    return !k || k.type !== "ObjectProperty" ? !1 : E == null || (0, e.default)(k, E);
  }
  function W(k, E) {
    return !k || k.type !== "RestElement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Y(k, E) {
    return !k || k.type !== "ReturnStatement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function G(k, E) {
    return !k || k.type !== "SequenceExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function le(k, E) {
    return !k || k.type !== "ParenthesizedExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ne(k, E) {
    return !k || k.type !== "SwitchCase" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ae(k, E) {
    return !k || k.type !== "SwitchStatement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function be(k, E) {
    return !k || k.type !== "ThisExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ye(k, E) {
    return !k || k.type !== "ThrowStatement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function fe(k, E) {
    return !k || k.type !== "TryStatement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Z(k, E) {
    return !k || k.type !== "UnaryExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ue(k, E) {
    return !k || k.type !== "UpdateExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function me(k, E) {
    return !k || k.type !== "VariableDeclaration" ? !1 : E == null || (0, e.default)(k, E);
  }
  function xe(k, E) {
    return !k || k.type !== "VariableDeclarator" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Pe(k, E) {
    return !k || k.type !== "WhileStatement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ve(k, E) {
    return !k || k.type !== "WithStatement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Xe(k, E) {
    return !k || k.type !== "AssignmentPattern" ? !1 : E == null || (0, e.default)(k, E);
  }
  function st(k, E) {
    return !k || k.type !== "ArrayPattern" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Se(k, E) {
    return !k || k.type !== "ArrowFunctionExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function oe(k, E) {
    return !k || k.type !== "ClassBody" ? !1 : E == null || (0, e.default)(k, E);
  }
  function te(k, E) {
    return !k || k.type !== "ClassExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function se(k, E) {
    return !k || k.type !== "ClassDeclaration" ? !1 : E == null || (0, e.default)(k, E);
  }
  function re(k, E) {
    return !k || k.type !== "ExportAllDeclaration" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Te(k, E) {
    return !k || k.type !== "ExportDefaultDeclaration" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ze(k, E) {
    return !k || k.type !== "ExportNamedDeclaration" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Ze(k, E) {
    return !k || k.type !== "ExportSpecifier" ? !1 : E == null || (0, e.default)(k, E);
  }
  function pt(k, E) {
    return !k || k.type !== "ForOfStatement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ut(k, E) {
    return !k || k.type !== "ImportDeclaration" ? !1 : E == null || (0, e.default)(k, E);
  }
  function bt(k, E) {
    return !k || k.type !== "ImportDefaultSpecifier" ? !1 : E == null || (0, e.default)(k, E);
  }
  function vt(k, E) {
    return !k || k.type !== "ImportNamespaceSpecifier" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ge(k, E) {
    return !k || k.type !== "ImportSpecifier" ? !1 : E == null || (0, e.default)(k, E);
  }
  function pe(k, E) {
    return !k || k.type !== "MetaProperty" ? !1 : E == null || (0, e.default)(k, E);
  }
  function $e(k, E) {
    return !k || k.type !== "ClassMethod" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ie(k, E) {
    return !k || k.type !== "ObjectPattern" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Q(k, E) {
    return !k || k.type !== "SpreadElement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function X(k, E) {
    return !k || k.type !== "Super" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ce(k, E) {
    return !k || k.type !== "TaggedTemplateExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function U(k, E) {
    return !k || k.type !== "TemplateElement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Ee(k, E) {
    return !k || k.type !== "TemplateLiteral" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Qe(k, E) {
    return !k || k.type !== "YieldExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ft(k, E) {
    return !k || k.type !== "AwaitExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ht(k, E) {
    return !k || k.type !== "Import" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Rt(k, E) {
    return !k || k.type !== "BigIntLiteral" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Ot(k, E) {
    return !k || k.type !== "ExportNamespaceSpecifier" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Tt(k, E) {
    return !k || k.type !== "OptionalMemberExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function lt(k, E) {
    return !k || k.type !== "OptionalCallExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function lr(k, E) {
    return !k || k.type !== "ClassProperty" ? !1 : E == null || (0, e.default)(k, E);
  }
  function kr(k, E) {
    return !k || k.type !== "ClassAccessorProperty" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Ai(k, E) {
    return !k || k.type !== "ClassPrivateProperty" ? !1 : E == null || (0, e.default)(k, E);
  }
  function an(k, E) {
    return !k || k.type !== "ClassPrivateMethod" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Nn(k, E) {
    return !k || k.type !== "PrivateName" ? !1 : E == null || (0, e.default)(k, E);
  }
  function on(k, E) {
    return !k || k.type !== "StaticBlock" ? !1 : E == null || (0, e.default)(k, E);
  }
  function _n(k, E) {
    return !k || k.type !== "AnyTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function en(k, E) {
    return !k || k.type !== "ArrayTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function bi(k, E) {
    return !k || k.type !== "BooleanTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function No(k, E) {
    return !k || k.type !== "BooleanLiteralTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function us(k, E) {
    return !k || k.type !== "NullLiteralTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ga(k, E) {
    return !k || k.type !== "ClassImplements" ? !1 : E == null || (0, e.default)(k, E);
  }
  function As(k, E) {
    return !k || k.type !== "DeclareClass" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ba(k, E) {
    return !k || k.type !== "DeclareFunction" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Bn(k, E) {
    return !k || k.type !== "DeclareInterface" ? !1 : E == null || (0, e.default)(k, E);
  }
  function cs(k, E) {
    return !k || k.type !== "DeclareModule" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Do(k, E) {
    return !k || k.type !== "DeclareModuleExports" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ps(k, E) {
    return !k || k.type !== "DeclareTypeAlias" ? !1 : E == null || (0, e.default)(k, E);
  }
  function va(k, E) {
    return !k || k.type !== "DeclareOpaqueType" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Lo(k, E) {
    return !k || k.type !== "DeclareVariable" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Ta(k, E) {
    return !k || k.type !== "DeclareExportDeclaration" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Ka(k, E) {
    return !k || k.type !== "DeclareExportAllDeclaration" ? !1 : E == null || (0, e.default)(k, E);
  }
  function za(k, E) {
    return !k || k.type !== "DeclaredPredicate" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Ga(k, E) {
    return !k || k.type !== "ExistsTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Ya(k, E) {
    return !k || k.type !== "FunctionTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Us(k, E) {
    return !k || k.type !== "FunctionTypeParam" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Sa(k, E) {
    return !k || k.type !== "GenericTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Mo(k, E) {
    return !k || k.type !== "InferredPredicate" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Cs(k, E) {
    return !k || k.type !== "InterfaceExtends" ? !1 : E == null || (0, e.default)(k, E);
  }
  function tu(k, E) {
    return !k || k.type !== "InterfaceDeclaration" ? !1 : E == null || (0, e.default)(k, E);
  }
  function xa(k, E) {
    return !k || k.type !== "InterfaceTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Ro(k, E) {
    return !k || k.type !== "IntersectionTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ru(k, E) {
    return !k || k.type !== "MixedTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function iu(k, E) {
    return !k || k.type !== "EmptyTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Bo(k, E) {
    return !k || k.type !== "NullableTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Fo(k, E) {
    return !k || k.type !== "NumberLiteralTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Zn(k, E) {
    return !k || k.type !== "NumberTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function nu(k, E) {
    return !k || k.type !== "ObjectTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function su(k, E) {
    return !k || k.type !== "ObjectTypeInternalSlot" ? !1 : E == null || (0, e.default)(k, E);
  }
  function au(k, E) {
    return !k || k.type !== "ObjectTypeCallProperty" ? !1 : E == null || (0, e.default)(k, E);
  }
  function jo(k, E) {
    return !k || k.type !== "ObjectTypeIndexer" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ou(k, E) {
    return !k || k.type !== "ObjectTypeProperty" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Ea(k, E) {
    return !k || k.type !== "ObjectTypeSpreadProperty" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Xa(k, E) {
    return !k || k.type !== "OpaqueType" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Ja(k, E) {
    return !k || k.type !== "QualifiedTypeIdentifier" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Qa(k, E) {
    return !k || k.type !== "StringLiteralTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function lu(k, E) {
    return !k || k.type !== "StringTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function uu(k, E) {
    return !k || k.type !== "SymbolTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function cu(k, E) {
    return !k || k.type !== "ThisTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function pu(k, E) {
    return !k || k.type !== "TupleTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Za(k, E) {
    return !k || k.type !== "TypeofTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function eo(k, E) {
    return !k || k.type !== "TypeAlias" ? !1 : E == null || (0, e.default)(k, E);
  }
  function to(k, E) {
    return !k || k.type !== "TypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function fu(k, E) {
    return !k || k.type !== "TypeCastExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function hu(k, E) {
    return !k || k.type !== "TypeParameter" ? !1 : E == null || (0, e.default)(k, E);
  }
  function du(k, E) {
    return !k || k.type !== "TypeParameterDeclaration" ? !1 : E == null || (0, e.default)(k, E);
  }
  function $o(k, E) {
    return !k || k.type !== "TypeParameterInstantiation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function mu(k, E) {
    return !k || k.type !== "UnionTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function qs(k, E) {
    return !k || k.type !== "Variance" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Vs(k, E) {
    return !k || k.type !== "VoidTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function yu(k, E) {
    return !k || k.type !== "EnumDeclaration" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Uo(k, E) {
    return !k || k.type !== "EnumBooleanBody" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Pa(k, E) {
    return !k || k.type !== "EnumNumberBody" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Ws(k, E) {
    return !k || k.type !== "EnumStringBody" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ro(k, E) {
    return !k || k.type !== "EnumSymbolBody" ? !1 : E == null || (0, e.default)(k, E);
  }
  function wa(k, E) {
    return !k || k.type !== "EnumBooleanMember" ? !1 : E == null || (0, e.default)(k, E);
  }
  function qo(k, E) {
    return !k || k.type !== "EnumNumberMember" ? !1 : E == null || (0, e.default)(k, E);
  }
  function gu(k, E) {
    return !k || k.type !== "EnumStringMember" ? !1 : E == null || (0, e.default)(k, E);
  }
  function io(k, E) {
    return !k || k.type !== "EnumDefaultedMember" ? !1 : E == null || (0, e.default)(k, E);
  }
  function bu(k, E) {
    return !k || k.type !== "IndexedAccessType" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Vo(k, E) {
    return !k || k.type !== "OptionalIndexedAccessType" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Aa(k, E) {
    return !k || k.type !== "JSXAttribute" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Wo(k, E) {
    return !k || k.type !== "JSXClosingElement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function vu(k, E) {
    return !k || k.type !== "JSXElement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Tu(k, E) {
    return !k || k.type !== "JSXEmptyExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function no(k, E) {
    return !k || k.type !== "JSXExpressionContainer" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Ho(k, E) {
    return !k || k.type !== "JSXSpreadChild" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Ko(k, E) {
    return !k || k.type !== "JSXIdentifier" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Su(k, E) {
    return !k || k.type !== "JSXMemberExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function xu(k, E) {
    return !k || k.type !== "JSXNamespacedName" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Hs(k, E) {
    return !k || k.type !== "JSXOpeningElement" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Eu(k, E) {
    return !k || k.type !== "JSXSpreadAttribute" ? !1 : E == null || (0, e.default)(k, E);
  }
  function es(k, E) {
    return !k || k.type !== "JSXText" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Pu(k, E) {
    return !k || k.type !== "JSXFragment" ? !1 : E == null || (0, e.default)(k, E);
  }
  function wu(k, E) {
    return !k || k.type !== "JSXOpeningFragment" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Au(k, E) {
    return !k || k.type !== "JSXClosingFragment" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Cu(k, E) {
    return !k || k.type !== "Noop" ? !1 : E == null || (0, e.default)(k, E);
  }
  function zo(k, E) {
    return !k || k.type !== "Placeholder" ? !1 : E == null || (0, e.default)(k, E);
  }
  function so(k, E) {
    return !k || k.type !== "V8IntrinsicIdentifier" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Go(k, E) {
    return !k || k.type !== "ArgumentPlaceholder" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Ca(k, E) {
    return !k || k.type !== "BindExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Yo(k, E) {
    return !k || k.type !== "ImportAttribute" ? !1 : E == null || (0, e.default)(k, E);
  }
  function _u(k, E) {
    return !k || k.type !== "Decorator" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Iu(k, E) {
    return !k || k.type !== "DoExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ku(k, E) {
    return !k || k.type !== "ExportDefaultSpecifier" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Ou(k, E) {
    return !k || k.type !== "RecordExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Xo(k, E) {
    return !k || k.type !== "TupleExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function _s(k, E) {
    return !k || k.type !== "DecimalLiteral" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Jo(k, E) {
    return !k || k.type !== "ModuleExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function _a(k, E) {
    return !k || k.type !== "TopicReference" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Qo(k, E) {
    return !k || k.type !== "PipelineTopicExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Is(k, E) {
    return !k || k.type !== "PipelineBareFunction" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Nu(k, E) {
    return !k || k.type !== "PipelinePrimaryTopicReference" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Ia(k, E) {
    return !k || k.type !== "TSParameterProperty" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Du(k, E) {
    return !k || k.type !== "TSDeclareFunction" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ka(k, E) {
    return !k || k.type !== "TSDeclareMethod" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Oa(k, E) {
    return !k || k.type !== "TSQualifiedName" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ao(k, E) {
    return !k || k.type !== "TSCallSignatureDeclaration" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Lu(k, E) {
    return !k || k.type !== "TSConstructSignatureDeclaration" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Gn(k, E) {
    return !k || k.type !== "TSPropertySignature" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Mu(k, E) {
    return !k || k.type !== "TSMethodSignature" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Ru(k, E) {
    return !k || k.type !== "TSIndexSignature" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Bu(k, E) {
    return !k || k.type !== "TSAnyKeyword" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Wt(k, E) {
    return !k || k.type !== "TSBooleanKeyword" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Fu(k, E) {
    return !k || k.type !== "TSBigIntKeyword" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Zo(k, E) {
    return !k || k.type !== "TSIntrinsicKeyword" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ju(k, E) {
    return !k || k.type !== "TSNeverKeyword" ? !1 : E == null || (0, e.default)(k, E);
  }
  function $u(k, E) {
    return !k || k.type !== "TSNullKeyword" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Uu(k, E) {
    return !k || k.type !== "TSNumberKeyword" ? !1 : E == null || (0, e.default)(k, E);
  }
  function qu(k, E) {
    return !k || k.type !== "TSObjectKeyword" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Vu(k, E) {
    return !k || k.type !== "TSStringKeyword" ? !1 : E == null || (0, e.default)(k, E);
  }
  function fs(k, E) {
    return !k || k.type !== "TSSymbolKeyword" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ts(k, E) {
    return !k || k.type !== "TSUndefinedKeyword" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ks(k, E) {
    return !k || k.type !== "TSUnknownKeyword" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Wu(k, E) {
    return !k || k.type !== "TSVoidKeyword" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Hu(k, E) {
    return !k || k.type !== "TSThisType" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Ku(k, E) {
    return !k || k.type !== "TSFunctionType" ? !1 : E == null || (0, e.default)(k, E);
  }
  function zu(k, E) {
    return !k || k.type !== "TSConstructorType" ? !1 : E == null || (0, e.default)(k, E);
  }
  function el(k, E) {
    return !k || k.type !== "TSTypeReference" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Gu(k, E) {
    return !k || k.type !== "TSTypePredicate" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Yu(k, E) {
    return !k || k.type !== "TSTypeQuery" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Xu(k, E) {
    return !k || k.type !== "TSTypeLiteral" ? !1 : E == null || (0, e.default)(k, E);
  }
  function tl(k, E) {
    return !k || k.type !== "TSArrayType" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Ft(k, E) {
    return !k || k.type !== "TSTupleType" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Ju(k, E) {
    return !k || k.type !== "TSOptionalType" ? !1 : E == null || (0, e.default)(k, E);
  }
  function rl(k, E) {
    return !k || k.type !== "TSRestType" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Qu(k, E) {
    return !k || k.type !== "TSNamedTupleMember" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Zu(k, E) {
    return !k || k.type !== "TSUnionType" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ec(k, E) {
    return !k || k.type !== "TSIntersectionType" ? !1 : E == null || (0, e.default)(k, E);
  }
  function tc(k, E) {
    return !k || k.type !== "TSConditionalType" ? !1 : E == null || (0, e.default)(k, E);
  }
  function il(k, E) {
    return !k || k.type !== "TSInferType" ? !1 : E == null || (0, e.default)(k, E);
  }
  function rc(k, E) {
    return !k || k.type !== "TSParenthesizedType" ? !1 : E == null || (0, e.default)(k, E);
  }
  function nl(k, E) {
    return !k || k.type !== "TSTypeOperator" ? !1 : E == null || (0, e.default)(k, E);
  }
  function sl(k, E) {
    return !k || k.type !== "TSIndexedAccessType" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ic(k, E) {
    return !k || k.type !== "TSMappedType" ? !1 : E == null || (0, e.default)(k, E);
  }
  function nc(k, E) {
    return !k || k.type !== "TSLiteralType" ? !1 : E == null || (0, e.default)(k, E);
  }
  function Di(k, E) {
    return !k || k.type !== "TSExpressionWithTypeArguments" ? !1 : E == null || (0, e.default)(k, E);
  }
  function hs(k, E) {
    return !k || k.type !== "TSInterfaceDeclaration" ? !1 : E == null || (0, e.default)(k, E);
  }
  function al(k, E) {
    return !k || k.type !== "TSInterfaceBody" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ol(k, E) {
    return !k || k.type !== "TSTypeAliasDeclaration" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ll(k, E) {
    return !k || k.type !== "TSInstantiationExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function sc(k, E) {
    return !k || k.type !== "TSAsExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ul(k, E) {
    return !k || k.type !== "TSSatisfiesExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function ac(k, E) {
    return !k || k.type !== "TSTypeAssertion" ? !1 : E == null || (0, e.default)(k, E);
  }
  function cl(k, E) {
    return !k || k.type !== "TSEnumDeclaration" ? !1 : E == null || (0, e.default)(k, E);
  }
  function oc(k, E) {
    return !k || k.type !== "TSEnumMember" ? !1 : E == null || (0, e.default)(k, E);
  }
  function lc(k, E) {
    return !k || k.type !== "TSModuleDeclaration" ? !1 : E == null || (0, e.default)(k, E);
  }
  function oo(k, E) {
    return !k || k.type !== "TSModuleBlock" ? !1 : E == null || (0, e.default)(k, E);
  }
  function uc(k, E) {
    return !k || k.type !== "TSImportType" ? !1 : E == null || (0, e.default)(k, E);
  }
  function cc(k, E) {
    return !k || k.type !== "TSImportEqualsDeclaration" ? !1 : E == null || (0, e.default)(k, E);
  }
  function lo(k, E) {
    return !k || k.type !== "TSExternalModuleReference" ? !1 : E == null || (0, e.default)(k, E);
  }
  function pc(k, E) {
    return !k || k.type !== "TSNonNullExpression" ? !1 : E == null || (0, e.default)(k, E);
  }
  function fc(k, E) {
    return !k || k.type !== "TSExportAssignment" ? !1 : E == null || (0, e.default)(k, E);
  }
  function pl(k, E) {
    return !k || k.type !== "TSNamespaceExportDeclaration" ? !1 : E == null || (0, e.default)(k, E);
  }
  function hc(k, E) {
    return !k || k.type !== "TSTypeAnnotation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function dc(k, E) {
    return !k || k.type !== "TSTypeParameterInstantiation" ? !1 : E == null || (0, e.default)(k, E);
  }
  function mc(k, E) {
    return !k || k.type !== "TSTypeParameterDeclaration" ? !1 : E == null || (0, e.default)(k, E);
  }
  function yc(k, E) {
    return !k || k.type !== "TSTypeParameter" ? !1 : E == null || (0, e.default)(k, E);
  }
  function gc(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "ArrayExpression":
      case "AssignmentExpression":
      case "BinaryExpression":
      case "InterpreterDirective":
      case "Directive":
      case "DirectiveLiteral":
      case "BlockStatement":
      case "BreakStatement":
      case "CallExpression":
      case "CatchClause":
      case "ConditionalExpression":
      case "ContinueStatement":
      case "DebuggerStatement":
      case "DoWhileStatement":
      case "EmptyStatement":
      case "ExpressionStatement":
      case "File":
      case "ForInStatement":
      case "ForStatement":
      case "FunctionDeclaration":
      case "FunctionExpression":
      case "Identifier":
      case "IfStatement":
      case "LabeledStatement":
      case "StringLiteral":
      case "NumericLiteral":
      case "NullLiteral":
      case "BooleanLiteral":
      case "RegExpLiteral":
      case "LogicalExpression":
      case "MemberExpression":
      case "NewExpression":
      case "Program":
      case "ObjectExpression":
      case "ObjectMethod":
      case "ObjectProperty":
      case "RestElement":
      case "ReturnStatement":
      case "SequenceExpression":
      case "ParenthesizedExpression":
      case "SwitchCase":
      case "SwitchStatement":
      case "ThisExpression":
      case "ThrowStatement":
      case "TryStatement":
      case "UnaryExpression":
      case "UpdateExpression":
      case "VariableDeclaration":
      case "VariableDeclarator":
      case "WhileStatement":
      case "WithStatement":
      case "AssignmentPattern":
      case "ArrayPattern":
      case "ArrowFunctionExpression":
      case "ClassBody":
      case "ClassExpression":
      case "ClassDeclaration":
      case "ExportAllDeclaration":
      case "ExportDefaultDeclaration":
      case "ExportNamedDeclaration":
      case "ExportSpecifier":
      case "ForOfStatement":
      case "ImportDeclaration":
      case "ImportDefaultSpecifier":
      case "ImportNamespaceSpecifier":
      case "ImportSpecifier":
      case "MetaProperty":
      case "ClassMethod":
      case "ObjectPattern":
      case "SpreadElement":
      case "Super":
      case "TaggedTemplateExpression":
      case "TemplateElement":
      case "TemplateLiteral":
      case "YieldExpression":
      case "AwaitExpression":
      case "Import":
      case "BigIntLiteral":
      case "ExportNamespaceSpecifier":
      case "OptionalMemberExpression":
      case "OptionalCallExpression":
      case "ClassProperty":
      case "ClassAccessorProperty":
      case "ClassPrivateProperty":
      case "ClassPrivateMethod":
      case "PrivateName":
      case "StaticBlock":
        break;
      case "Placeholder":
        switch (k.expectedNode) {
          case "Identifier":
          case "StringLiteral":
          case "BlockStatement":
          case "ClassBody":
            break;
          default:
            return !1;
        }
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function Ks(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "ArrayExpression":
      case "AssignmentExpression":
      case "BinaryExpression":
      case "CallExpression":
      case "ConditionalExpression":
      case "FunctionExpression":
      case "Identifier":
      case "StringLiteral":
      case "NumericLiteral":
      case "NullLiteral":
      case "BooleanLiteral":
      case "RegExpLiteral":
      case "LogicalExpression":
      case "MemberExpression":
      case "NewExpression":
      case "ObjectExpression":
      case "SequenceExpression":
      case "ParenthesizedExpression":
      case "ThisExpression":
      case "UnaryExpression":
      case "UpdateExpression":
      case "ArrowFunctionExpression":
      case "ClassExpression":
      case "MetaProperty":
      case "Super":
      case "TaggedTemplateExpression":
      case "TemplateLiteral":
      case "YieldExpression":
      case "AwaitExpression":
      case "Import":
      case "BigIntLiteral":
      case "OptionalMemberExpression":
      case "OptionalCallExpression":
      case "TypeCastExpression":
      case "JSXElement":
      case "JSXFragment":
      case "BindExpression":
      case "DoExpression":
      case "RecordExpression":
      case "TupleExpression":
      case "DecimalLiteral":
      case "ModuleExpression":
      case "TopicReference":
      case "PipelineTopicExpression":
      case "PipelineBareFunction":
      case "PipelinePrimaryTopicReference":
      case "TSInstantiationExpression":
      case "TSAsExpression":
      case "TSSatisfiesExpression":
      case "TSTypeAssertion":
      case "TSNonNullExpression":
        break;
      case "Placeholder":
        switch (k.expectedNode) {
          case "Expression":
          case "Identifier":
          case "StringLiteral":
            break;
          default:
            return !1;
        }
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function fl(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "BinaryExpression":
      case "LogicalExpression":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function bc(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "BlockStatement":
      case "CatchClause":
      case "DoWhileStatement":
      case "ForInStatement":
      case "ForStatement":
      case "FunctionDeclaration":
      case "FunctionExpression":
      case "Program":
      case "ObjectMethod":
      case "SwitchStatement":
      case "WhileStatement":
      case "ArrowFunctionExpression":
      case "ClassExpression":
      case "ClassDeclaration":
      case "ForOfStatement":
      case "ClassMethod":
      case "ClassPrivateMethod":
      case "StaticBlock":
      case "TSModuleBlock":
        break;
      case "Placeholder":
        if (k.expectedNode === "BlockStatement")
          break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function B(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "BlockStatement":
      case "CatchClause":
      case "DoWhileStatement":
      case "ForInStatement":
      case "ForStatement":
      case "FunctionDeclaration":
      case "FunctionExpression":
      case "Program":
      case "ObjectMethod":
      case "SwitchStatement":
      case "WhileStatement":
      case "ArrowFunctionExpression":
      case "ForOfStatement":
      case "ClassMethod":
      case "ClassPrivateMethod":
      case "StaticBlock":
      case "TSModuleBlock":
        break;
      case "Placeholder":
        if (k.expectedNode === "BlockStatement")
          break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function d(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "BlockStatement":
      case "Program":
      case "TSModuleBlock":
        break;
      case "Placeholder":
        if (k.expectedNode === "BlockStatement")
          break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function p(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "BlockStatement":
      case "BreakStatement":
      case "ContinueStatement":
      case "DebuggerStatement":
      case "DoWhileStatement":
      case "EmptyStatement":
      case "ExpressionStatement":
      case "ForInStatement":
      case "ForStatement":
      case "FunctionDeclaration":
      case "IfStatement":
      case "LabeledStatement":
      case "ReturnStatement":
      case "SwitchStatement":
      case "ThrowStatement":
      case "TryStatement":
      case "VariableDeclaration":
      case "WhileStatement":
      case "WithStatement":
      case "ClassDeclaration":
      case "ExportAllDeclaration":
      case "ExportDefaultDeclaration":
      case "ExportNamedDeclaration":
      case "ForOfStatement":
      case "ImportDeclaration":
      case "DeclareClass":
      case "DeclareFunction":
      case "DeclareInterface":
      case "DeclareModule":
      case "DeclareModuleExports":
      case "DeclareTypeAlias":
      case "DeclareOpaqueType":
      case "DeclareVariable":
      case "DeclareExportDeclaration":
      case "DeclareExportAllDeclaration":
      case "InterfaceDeclaration":
      case "OpaqueType":
      case "TypeAlias":
      case "EnumDeclaration":
      case "TSDeclareFunction":
      case "TSInterfaceDeclaration":
      case "TSTypeAliasDeclaration":
      case "TSEnumDeclaration":
      case "TSModuleDeclaration":
      case "TSImportEqualsDeclaration":
      case "TSExportAssignment":
      case "TSNamespaceExportDeclaration":
        break;
      case "Placeholder":
        switch (k.expectedNode) {
          case "Statement":
          case "Declaration":
          case "BlockStatement":
            break;
          default:
            return !1;
        }
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function b(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "BreakStatement":
      case "ContinueStatement":
      case "ReturnStatement":
      case "ThrowStatement":
      case "YieldExpression":
      case "AwaitExpression":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function _(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "BreakStatement":
      case "ContinueStatement":
      case "ReturnStatement":
      case "ThrowStatement":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function H(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "ConditionalExpression":
      case "IfStatement":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function ee(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "DoWhileStatement":
      case "ForInStatement":
      case "ForStatement":
      case "WhileStatement":
      case "ForOfStatement":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function de(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "DoWhileStatement":
      case "WhileStatement":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function Ge(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "ExpressionStatement":
      case "ParenthesizedExpression":
      case "TypeCastExpression":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function Ye(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "ForInStatement":
      case "ForStatement":
      case "ForOfStatement":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function Je(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "ForInStatement":
      case "ForOfStatement":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function gt(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "FunctionDeclaration":
      case "FunctionExpression":
      case "ObjectMethod":
      case "ArrowFunctionExpression":
      case "ClassMethod":
      case "ClassPrivateMethod":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function It(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "FunctionDeclaration":
      case "FunctionExpression":
      case "ObjectMethod":
      case "ArrowFunctionExpression":
      case "ClassMethod":
      case "ClassPrivateMethod":
      case "StaticBlock":
      case "TSModuleBlock":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function _t(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "FunctionDeclaration":
      case "FunctionExpression":
      case "StringLiteral":
      case "NumericLiteral":
      case "NullLiteral":
      case "BooleanLiteral":
      case "RegExpLiteral":
      case "ArrowFunctionExpression":
      case "BigIntLiteral":
      case "DecimalLiteral":
        break;
      case "Placeholder":
        if (k.expectedNode === "StringLiteral")
          break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function Ht(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "FunctionDeclaration":
      case "VariableDeclaration":
      case "ClassDeclaration":
      case "ExportAllDeclaration":
      case "ExportDefaultDeclaration":
      case "ExportNamedDeclaration":
      case "ImportDeclaration":
      case "DeclareClass":
      case "DeclareFunction":
      case "DeclareInterface":
      case "DeclareModule":
      case "DeclareModuleExports":
      case "DeclareTypeAlias":
      case "DeclareOpaqueType":
      case "DeclareVariable":
      case "DeclareExportDeclaration":
      case "DeclareExportAllDeclaration":
      case "InterfaceDeclaration":
      case "OpaqueType":
      case "TypeAlias":
      case "EnumDeclaration":
      case "TSDeclareFunction":
      case "TSInterfaceDeclaration":
      case "TSTypeAliasDeclaration":
      case "TSEnumDeclaration":
      case "TSModuleDeclaration":
        break;
      case "Placeholder":
        if (k.expectedNode === "Declaration")
          break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function zi(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "Identifier":
      case "RestElement":
      case "AssignmentPattern":
      case "ArrayPattern":
      case "ObjectPattern":
      case "TSAsExpression":
      case "TSSatisfiesExpression":
      case "TSTypeAssertion":
      case "TSNonNullExpression":
        break;
      case "Placeholder":
        switch (k.expectedNode) {
          case "Pattern":
          case "Identifier":
            break;
          default:
            return !1;
        }
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function Li(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "Identifier":
      case "MemberExpression":
      case "RestElement":
      case "AssignmentPattern":
      case "ArrayPattern":
      case "ObjectPattern":
      case "TSParameterProperty":
      case "TSAsExpression":
      case "TSSatisfiesExpression":
      case "TSTypeAssertion":
      case "TSNonNullExpression":
        break;
      case "Placeholder":
        switch (k.expectedNode) {
          case "Pattern":
          case "Identifier":
            break;
          default:
            return !1;
        }
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function Mi(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "Identifier":
      case "TSQualifiedName":
        break;
      case "Placeholder":
        if (k.expectedNode === "Identifier")
          break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function Tn(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "StringLiteral":
      case "NumericLiteral":
      case "NullLiteral":
      case "BooleanLiteral":
      case "RegExpLiteral":
      case "TemplateLiteral":
      case "BigIntLiteral":
      case "DecimalLiteral":
        break;
      case "Placeholder":
        if (k.expectedNode === "StringLiteral")
          break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function Kf(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "StringLiteral":
      case "NumericLiteral":
      case "NullLiteral":
      case "BooleanLiteral":
      case "BigIntLiteral":
      case "JSXAttribute":
      case "JSXClosingElement":
      case "JSXElement":
      case "JSXExpressionContainer":
      case "JSXSpreadChild":
      case "JSXOpeningElement":
      case "JSXText":
      case "JSXFragment":
      case "JSXOpeningFragment":
      case "JSXClosingFragment":
      case "DecimalLiteral":
        break;
      case "Placeholder":
        if (k.expectedNode === "StringLiteral")
          break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function Ap(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "ObjectMethod":
      case "ObjectProperty":
      case "ObjectTypeInternalSlot":
      case "ObjectTypeCallProperty":
      case "ObjectTypeIndexer":
      case "ObjectTypeProperty":
      case "ObjectTypeSpreadProperty":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function SL(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "ObjectMethod":
      case "ClassMethod":
      case "ClassPrivateMethod":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function xL(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "ObjectMethod":
      case "ObjectProperty":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function EL(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "ObjectProperty":
      case "ClassProperty":
      case "ClassAccessorProperty":
      case "ClassPrivateProperty":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function PL(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "UnaryExpression":
      case "SpreadElement":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function wL(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "AssignmentPattern":
      case "ArrayPattern":
      case "ObjectPattern":
        break;
      case "Placeholder":
        if (k.expectedNode === "Pattern")
          break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function AL(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "ClassExpression":
      case "ClassDeclaration":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function LS(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "ExportAllDeclaration":
      case "ExportDefaultDeclaration":
      case "ExportNamedDeclaration":
      case "ImportDeclaration":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function CL(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "ExportAllDeclaration":
      case "ExportDefaultDeclaration":
      case "ExportNamedDeclaration":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function _L(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "ExportSpecifier":
      case "ImportDefaultSpecifier":
      case "ImportNamespaceSpecifier":
      case "ImportSpecifier":
      case "ExportNamespaceSpecifier":
      case "ExportDefaultSpecifier":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function IL(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "ClassAccessorProperty":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function kL(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "ClassPrivateProperty":
      case "ClassPrivateMethod":
      case "PrivateName":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function OL(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "AnyTypeAnnotation":
      case "ArrayTypeAnnotation":
      case "BooleanTypeAnnotation":
      case "BooleanLiteralTypeAnnotation":
      case "NullLiteralTypeAnnotation":
      case "ClassImplements":
      case "DeclareClass":
      case "DeclareFunction":
      case "DeclareInterface":
      case "DeclareModule":
      case "DeclareModuleExports":
      case "DeclareTypeAlias":
      case "DeclareOpaqueType":
      case "DeclareVariable":
      case "DeclareExportDeclaration":
      case "DeclareExportAllDeclaration":
      case "DeclaredPredicate":
      case "ExistsTypeAnnotation":
      case "FunctionTypeAnnotation":
      case "FunctionTypeParam":
      case "GenericTypeAnnotation":
      case "InferredPredicate":
      case "InterfaceExtends":
      case "InterfaceDeclaration":
      case "InterfaceTypeAnnotation":
      case "IntersectionTypeAnnotation":
      case "MixedTypeAnnotation":
      case "EmptyTypeAnnotation":
      case "NullableTypeAnnotation":
      case "NumberLiteralTypeAnnotation":
      case "NumberTypeAnnotation":
      case "ObjectTypeAnnotation":
      case "ObjectTypeInternalSlot":
      case "ObjectTypeCallProperty":
      case "ObjectTypeIndexer":
      case "ObjectTypeProperty":
      case "ObjectTypeSpreadProperty":
      case "OpaqueType":
      case "QualifiedTypeIdentifier":
      case "StringLiteralTypeAnnotation":
      case "StringTypeAnnotation":
      case "SymbolTypeAnnotation":
      case "ThisTypeAnnotation":
      case "TupleTypeAnnotation":
      case "TypeofTypeAnnotation":
      case "TypeAlias":
      case "TypeAnnotation":
      case "TypeCastExpression":
      case "TypeParameter":
      case "TypeParameterDeclaration":
      case "TypeParameterInstantiation":
      case "UnionTypeAnnotation":
      case "Variance":
      case "VoidTypeAnnotation":
      case "EnumDeclaration":
      case "EnumBooleanBody":
      case "EnumNumberBody":
      case "EnumStringBody":
      case "EnumSymbolBody":
      case "EnumBooleanMember":
      case "EnumNumberMember":
      case "EnumStringMember":
      case "EnumDefaultedMember":
      case "IndexedAccessType":
      case "OptionalIndexedAccessType":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function NL(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "AnyTypeAnnotation":
      case "ArrayTypeAnnotation":
      case "BooleanTypeAnnotation":
      case "BooleanLiteralTypeAnnotation":
      case "NullLiteralTypeAnnotation":
      case "ExistsTypeAnnotation":
      case "FunctionTypeAnnotation":
      case "GenericTypeAnnotation":
      case "InterfaceTypeAnnotation":
      case "IntersectionTypeAnnotation":
      case "MixedTypeAnnotation":
      case "EmptyTypeAnnotation":
      case "NullableTypeAnnotation":
      case "NumberLiteralTypeAnnotation":
      case "NumberTypeAnnotation":
      case "ObjectTypeAnnotation":
      case "StringLiteralTypeAnnotation":
      case "StringTypeAnnotation":
      case "SymbolTypeAnnotation":
      case "ThisTypeAnnotation":
      case "TupleTypeAnnotation":
      case "TypeofTypeAnnotation":
      case "UnionTypeAnnotation":
      case "VoidTypeAnnotation":
      case "IndexedAccessType":
      case "OptionalIndexedAccessType":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function DL(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "AnyTypeAnnotation":
      case "BooleanTypeAnnotation":
      case "NullLiteralTypeAnnotation":
      case "MixedTypeAnnotation":
      case "EmptyTypeAnnotation":
      case "NumberTypeAnnotation":
      case "StringTypeAnnotation":
      case "SymbolTypeAnnotation":
      case "ThisTypeAnnotation":
      case "VoidTypeAnnotation":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function LL(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "DeclareClass":
      case "DeclareFunction":
      case "DeclareInterface":
      case "DeclareModule":
      case "DeclareModuleExports":
      case "DeclareTypeAlias":
      case "DeclareOpaqueType":
      case "DeclareVariable":
      case "DeclareExportDeclaration":
      case "DeclareExportAllDeclaration":
      case "InterfaceDeclaration":
      case "OpaqueType":
      case "TypeAlias":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function ML(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "DeclaredPredicate":
      case "InferredPredicate":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function RL(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "EnumBooleanBody":
      case "EnumNumberBody":
      case "EnumStringBody":
      case "EnumSymbolBody":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function BL(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "EnumBooleanMember":
      case "EnumNumberMember":
      case "EnumStringMember":
      case "EnumDefaultedMember":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function FL(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "JSXAttribute":
      case "JSXClosingElement":
      case "JSXElement":
      case "JSXEmptyExpression":
      case "JSXExpressionContainer":
      case "JSXSpreadChild":
      case "JSXIdentifier":
      case "JSXMemberExpression":
      case "JSXNamespacedName":
      case "JSXOpeningElement":
      case "JSXSpreadAttribute":
      case "JSXText":
      case "JSXFragment":
      case "JSXOpeningFragment":
      case "JSXClosingFragment":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function jL(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "Noop":
      case "Placeholder":
      case "V8IntrinsicIdentifier":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function $L(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "TSParameterProperty":
      case "TSDeclareFunction":
      case "TSDeclareMethod":
      case "TSQualifiedName":
      case "TSCallSignatureDeclaration":
      case "TSConstructSignatureDeclaration":
      case "TSPropertySignature":
      case "TSMethodSignature":
      case "TSIndexSignature":
      case "TSAnyKeyword":
      case "TSBooleanKeyword":
      case "TSBigIntKeyword":
      case "TSIntrinsicKeyword":
      case "TSNeverKeyword":
      case "TSNullKeyword":
      case "TSNumberKeyword":
      case "TSObjectKeyword":
      case "TSStringKeyword":
      case "TSSymbolKeyword":
      case "TSUndefinedKeyword":
      case "TSUnknownKeyword":
      case "TSVoidKeyword":
      case "TSThisType":
      case "TSFunctionType":
      case "TSConstructorType":
      case "TSTypeReference":
      case "TSTypePredicate":
      case "TSTypeQuery":
      case "TSTypeLiteral":
      case "TSArrayType":
      case "TSTupleType":
      case "TSOptionalType":
      case "TSRestType":
      case "TSNamedTupleMember":
      case "TSUnionType":
      case "TSIntersectionType":
      case "TSConditionalType":
      case "TSInferType":
      case "TSParenthesizedType":
      case "TSTypeOperator":
      case "TSIndexedAccessType":
      case "TSMappedType":
      case "TSLiteralType":
      case "TSExpressionWithTypeArguments":
      case "TSInterfaceDeclaration":
      case "TSInterfaceBody":
      case "TSTypeAliasDeclaration":
      case "TSInstantiationExpression":
      case "TSAsExpression":
      case "TSSatisfiesExpression":
      case "TSTypeAssertion":
      case "TSEnumDeclaration":
      case "TSEnumMember":
      case "TSModuleDeclaration":
      case "TSModuleBlock":
      case "TSImportType":
      case "TSImportEqualsDeclaration":
      case "TSExternalModuleReference":
      case "TSNonNullExpression":
      case "TSExportAssignment":
      case "TSNamespaceExportDeclaration":
      case "TSTypeAnnotation":
      case "TSTypeParameterInstantiation":
      case "TSTypeParameterDeclaration":
      case "TSTypeParameter":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function UL(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "TSCallSignatureDeclaration":
      case "TSConstructSignatureDeclaration":
      case "TSPropertySignature":
      case "TSMethodSignature":
      case "TSIndexSignature":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function qL(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "TSAnyKeyword":
      case "TSBooleanKeyword":
      case "TSBigIntKeyword":
      case "TSIntrinsicKeyword":
      case "TSNeverKeyword":
      case "TSNullKeyword":
      case "TSNumberKeyword":
      case "TSObjectKeyword":
      case "TSStringKeyword":
      case "TSSymbolKeyword":
      case "TSUndefinedKeyword":
      case "TSUnknownKeyword":
      case "TSVoidKeyword":
      case "TSThisType":
      case "TSFunctionType":
      case "TSConstructorType":
      case "TSTypeReference":
      case "TSTypePredicate":
      case "TSTypeQuery":
      case "TSTypeLiteral":
      case "TSArrayType":
      case "TSTupleType":
      case "TSOptionalType":
      case "TSRestType":
      case "TSUnionType":
      case "TSIntersectionType":
      case "TSConditionalType":
      case "TSInferType":
      case "TSParenthesizedType":
      case "TSTypeOperator":
      case "TSIndexedAccessType":
      case "TSMappedType":
      case "TSLiteralType":
      case "TSExpressionWithTypeArguments":
      case "TSImportType":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function VL(k, E) {
    if (!k)
      return !1;
    switch (k.type) {
      case "TSAnyKeyword":
      case "TSBooleanKeyword":
      case "TSBigIntKeyword":
      case "TSIntrinsicKeyword":
      case "TSNeverKeyword":
      case "TSNullKeyword":
      case "TSNumberKeyword":
      case "TSObjectKeyword":
      case "TSStringKeyword":
      case "TSSymbolKeyword":
      case "TSUndefinedKeyword":
      case "TSUnknownKeyword":
      case "TSVoidKeyword":
      case "TSThisType":
      case "TSLiteralType":
        break;
      default:
        return !1;
    }
    return E == null || (0, e.default)(k, E);
  }
  function WL(k, E) {
    return (0, t.default)("isNumberLiteral", "isNumericLiteral"), !k || k.type !== "NumberLiteral" ? !1 : E == null || (0, e.default)(k, E);
  }
  function HL(k, E) {
    return (0, t.default)("isRegexLiteral", "isRegExpLiteral"), !k || k.type !== "RegexLiteral" ? !1 : E == null || (0, e.default)(k, E);
  }
  function KL(k, E) {
    return (0, t.default)("isRestProperty", "isRestElement"), !k || k.type !== "RestProperty" ? !1 : E == null || (0, e.default)(k, E);
  }
  function zL(k, E) {
    return (0, t.default)("isSpreadProperty", "isSpreadElement"), !k || k.type !== "SpreadProperty" ? !1 : E == null || (0, e.default)(k, E);
  }
  function GL(k, E) {
    return (0, t.default)("isModuleDeclaration", "isImportOrExportDeclaration"), LS(k, E);
  }
  return Me;
}
var gz;
function khe() {
  if (gz)
    return $x;
  gz = 1, Object.defineProperty($x, "__esModule", {
    value: !0
  }), $x.default = t;
  var e = Kn();
  function t(r, i, n) {
    if (!(0, e.isMemberExpression)(r))
      return !1;
    const s = Array.isArray(i) ? i : i.split("."), a = [];
    let o;
    for (o = r; (0, e.isMemberExpression)(o); o = o.object)
      a.push(o.property);
    if (a.push(o), a.length < s.length || !n && a.length > s.length)
      return !1;
    for (let l = 0, u = a.length - 1; l < s.length; l++, u--) {
      const c = a[u];
      let f;
      if ((0, e.isIdentifier)(c))
        f = c.name;
      else if ((0, e.isStringLiteral)(c))
        f = c.value;
      else if ((0, e.isThisExpression)(c))
        f = "this";
      else
        return !1;
      if (s[l] !== f)
        return !1;
    }
    return !0;
  }
  return $x;
}
var bz;
function Ohe() {
  if (bz)
    return jx;
  bz = 1, Object.defineProperty(jx, "__esModule", {
    value: !0
  }), jx.default = t;
  var e = khe();
  function t(r, i) {
    const n = r.split(".");
    return (s) => (0, e.default)(s, n, i);
  }
  return jx;
}
var vz;
function Lrt() {
  if (vz)
    return xb;
  vz = 1, Object.defineProperty(xb, "__esModule", {
    value: !0
  }), xb.default = void 0;
  var e = Ohe(), r = (0, e.default)("React.Component");
  return xb.default = r, xb;
}
var Vx = {}, Tz;
function Mrt() {
  if (Tz)
    return Vx;
  Tz = 1, Object.defineProperty(Vx, "__esModule", {
    value: !0
  }), Vx.default = e;
  function e(t) {
    return !!t && /^[a-z]/.test(t);
  }
  return Vx;
}
var Wx = {}, Hx = {}, Ie = {}, Kx = {}, Lm = {}, mR = {}, Qs = {}, zx = {}, Gx = {}, Sz;
function v9() {
  if (Sz)
    return Gx;
  Sz = 1, Object.defineProperty(Gx, "__esModule", {
    value: !0
  }), Gx.default = t;
  var e = Wc();
  function t(r, i) {
    if (r === i)
      return !0;
    if (e.ALIAS_KEYS[i])
      return !1;
    const n = e.FLIPPED_ALIAS_KEYS[i];
    if (n) {
      if (n[0] === r)
        return !0;
      for (const s of n)
        if (r === s)
          return !0;
    }
    return !1;
  }
  return Gx;
}
var Yx = {}, xz;
function Nhe() {
  if (xz)
    return Yx;
  xz = 1, Object.defineProperty(Yx, "__esModule", {
    value: !0
  }), Yx.default = t;
  var e = Wc();
  function t(r, i) {
    if (r === i)
      return !0;
    const n = e.PLACEHOLDERS_ALIAS[r];
    if (n) {
      for (const s of n)
        if (i === s)
          return !0;
    }
    return !1;
  }
  return Yx;
}
var Ez;
function GT() {
  if (Ez)
    return zx;
  Ez = 1, Object.defineProperty(zx, "__esModule", {
    value: !0
  }), zx.default = n;
  var e = b9(), t = v9(), r = Nhe(), i = Wc();
  function n(s, a, o) {
    return a ? (0, t.default)(a.type, s) ? typeof o == "undefined" ? !0 : (0, e.default)(a, o) : !o && a.type === "Placeholder" && s in i.FLIPPED_ALIAS_KEYS ? (0, r.default)(a.expectedNode, s) : !1 : !1;
  }
  return zx;
}
var Xx = {}, Pz;
function YT() {
  if (Pz)
    return Xx;
  Pz = 1, Object.defineProperty(Xx, "__esModule", {
    value: !0
  }), Xx.default = t;
  var e = qc();
  function t(r, i = !0) {
    return typeof r != "string" || i && ((0, e.isKeyword)(r) || (0, e.isStrictReservedWord)(r, !0)) ? !1 : (0, e.isIdentifierName)(r);
  }
  return Xx;
}
var _r = {}, wz;
function om() {
  if (wz)
    return _r;
  wz = 1, Object.defineProperty(_r, "__esModule", {
    value: !0
  }), _r.UPDATE_OPERATORS = _r.UNARY_OPERATORS = _r.STRING_UNARY_OPERATORS = _r.STATEMENT_OR_BLOCK_KEYS = _r.NUMBER_UNARY_OPERATORS = _r.NUMBER_BINARY_OPERATORS = _r.NOT_LOCAL_BINDING = _r.LOGICAL_OPERATORS = _r.INHERIT_KEYS = _r.FOR_INIT_KEYS = _r.FLATTENABLE_KEYS = _r.EQUALITY_BINARY_OPERATORS = _r.COMPARISON_BINARY_OPERATORS = _r.COMMENT_KEYS = _r.BOOLEAN_UNARY_OPERATORS = _r.BOOLEAN_NUMBER_BINARY_OPERATORS = _r.BOOLEAN_BINARY_OPERATORS = _r.BLOCK_SCOPED_SYMBOL = _r.BINARY_OPERATORS = _r.ASSIGNMENT_OPERATORS = void 0;
  const e = ["consequent", "body", "alternate"];
  _r.STATEMENT_OR_BLOCK_KEYS = e;
  const t = ["body", "expressions"];
  _r.FLATTENABLE_KEYS = t;
  const r = ["left", "init"];
  _r.FOR_INIT_KEYS = r;
  const i = ["leadingComments", "trailingComments", "innerComments"];
  _r.COMMENT_KEYS = i;
  const n = ["||", "&&", "??"];
  _r.LOGICAL_OPERATORS = n;
  const s = ["++", "--"];
  _r.UPDATE_OPERATORS = s;
  const a = [">", "<", ">=", "<="];
  _r.BOOLEAN_NUMBER_BINARY_OPERATORS = a;
  const o = ["==", "===", "!=", "!=="];
  _r.EQUALITY_BINARY_OPERATORS = o;
  const l = [...o, "in", "instanceof"];
  _r.COMPARISON_BINARY_OPERATORS = l;
  const u = [...l, ...a];
  _r.BOOLEAN_BINARY_OPERATORS = u;
  const c = ["-", "/", "%", "*", "**", "&", "|", ">>", ">>>", "<<", "^"];
  _r.NUMBER_BINARY_OPERATORS = c;
  const f = ["+", ...c, ...u, "|>"];
  _r.BINARY_OPERATORS = f;
  const h = ["=", "+=", ...c.map((x) => x + "="), ...n.map((x) => x + "=")];
  _r.ASSIGNMENT_OPERATORS = h;
  const m = ["delete", "!"];
  _r.BOOLEAN_UNARY_OPERATORS = m;
  const g = ["+", "-", "~"];
  _r.NUMBER_UNARY_OPERATORS = g;
  const y = ["typeof"];
  _r.STRING_UNARY_OPERATORS = y;
  const v = ["void", "throw", ...m, ...g, ...y];
  _r.UNARY_OPERATORS = v;
  const T = {
    optional: ["typeAnnotation", "typeParameters", "returnType"],
    force: ["start", "loc", "end"]
  };
  _r.INHERIT_KEYS = T;
  const S = Symbol.for("var used to be block scoped");
  _r.BLOCK_SCOPED_SYMBOL = S;
  const P = Symbol.for("should not be considered a local binding");
  return _r.NOT_LOCAL_BINDING = P, _r;
}
var ai = {}, Az;
function Kh() {
  if (Az)
    return ai;
  Az = 1, Object.defineProperty(ai, "__esModule", {
    value: !0
  }), ai.VISITOR_KEYS = ai.NODE_PARENT_VALIDATIONS = ai.NODE_FIELDS = ai.FLIPPED_ALIAS_KEYS = ai.DEPRECATED_KEYS = ai.BUILDER_KEYS = ai.ALIAS_KEYS = void 0, ai.arrayOf = y, ai.arrayOfType = v, ai.assertEach = S, ai.assertNodeOrValueType = C, ai.assertNodeType = x, ai.assertOneOf = P, ai.assertOptionalChainStart = A, ai.assertShape = w, ai.assertValueType = D, ai.chain = I, ai.default = j, ai.defineAliasedType = q, ai.typeIs = f, ai.validate = c, ai.validateArrayOfType = T, ai.validateOptional = m, ai.validateOptionalType = g, ai.validateType = h;
  var e = GT(), t = T9();
  const r = {};
  ai.VISITOR_KEYS = r;
  const i = {};
  ai.ALIAS_KEYS = i;
  const n = {};
  ai.FLIPPED_ALIAS_KEYS = n;
  const s = {};
  ai.NODE_FIELDS = s;
  const a = {};
  ai.BUILDER_KEYS = a;
  const o = {};
  ai.DEPRECATED_KEYS = o;
  const l = {};
  ai.NODE_PARENT_VALIDATIONS = l;
  function u(N) {
    return Array.isArray(N) ? "array" : N === null ? "null" : typeof N;
  }
  function c(N) {
    return {
      validate: N
    };
  }
  function f(N) {
    return typeof N == "string" ? x(N) : x(...N);
  }
  function h(N) {
    return c(f(N));
  }
  function m(N) {
    return {
      validate: N,
      optional: !0
    };
  }
  function g(N) {
    return {
      validate: f(N),
      optional: !0
    };
  }
  function y(N) {
    return I(D("array"), S(N));
  }
  function v(N) {
    return y(f(N));
  }
  function T(N) {
    return c(v(N));
  }
  function S(N) {
    function M(R, $, V) {
      if (Array.isArray(V))
        for (let K = 0; K < V.length; K++) {
          const z = "".concat($, "[").concat(K, "]"), W = V[K];
          N(R, z, W), process.env.BABEL_TYPES_8_BREAKING && (0, t.validateChild)(R, z, W);
        }
    }
    return M.each = N, M;
  }
  function P(...N) {
    function M(R, $, V) {
      if (N.indexOf(V) < 0)
        throw new TypeError("Property ".concat($, " expected value to be one of ").concat(JSON.stringify(N), " but got ").concat(JSON.stringify(V)));
    }
    return M.oneOf = N, M;
  }
  function x(...N) {
    function M(R, $, V) {
      for (const K of N)
        if ((0, e.default)(K, V)) {
          (0, t.validateChild)(R, $, V);
          return;
        }
      throw new TypeError("Property ".concat($, " of ").concat(R.type, " expected node to be of a type ").concat(JSON.stringify(N), " but instead got ").concat(JSON.stringify(V == null ? void 0 : V.type)));
    }
    return M.oneOfNodeTypes = N, M;
  }
  function C(...N) {
    function M(R, $, V) {
      for (const K of N)
        if (u(V) === K || (0, e.default)(K, V)) {
          (0, t.validateChild)(R, $, V);
          return;
        }
      throw new TypeError("Property ".concat($, " of ").concat(R.type, " expected node to be of a type ").concat(JSON.stringify(N), " but instead got ").concat(JSON.stringify(V == null ? void 0 : V.type)));
    }
    return M.oneOfNodeOrValueTypes = N, M;
  }
  function D(N) {
    function M(R, $, V) {
      if (!(u(V) === N))
        throw new TypeError("Property ".concat($, " expected type of ").concat(N, " but got ").concat(u(V)));
    }
    return M.type = N, M;
  }
  function w(N) {
    function M(R, $, V) {
      const K = [];
      for (const z of Object.keys(N))
        try {
          (0, t.validateField)(R, z, V[z], N[z]);
        } catch (W) {
          if (W instanceof TypeError) {
            K.push(W.message);
            continue;
          }
          throw W;
        }
      if (K.length)
        throw new TypeError("Property ".concat($, " of ").concat(R.type, " expected to have the following:\n").concat(K.join("\n")));
    }
    return M.shapeOf = N, M;
  }
  function A() {
    function N(M) {
      var R;
      let $ = M;
      for (; M; ) {
        const {
          type: V
        } = $;
        if (V === "OptionalCallExpression") {
          if ($.optional)
            return;
          $ = $.callee;
          continue;
        }
        if (V === "OptionalMemberExpression") {
          if ($.optional)
            return;
          $ = $.object;
          continue;
        }
        break;
      }
      throw new TypeError("Non-optional ".concat(M.type, " must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ").concat((R = $) == null ? void 0 : R.type));
    }
    return N;
  }
  function I(...N) {
    function M(...R) {
      for (const $ of N)
        $(...R);
    }
    if (M.chainOf = N, N.length >= 2 && "type" in N[0] && N[0].type === "array" && !("each" in N[1]))
      throw new Error('An assertValueType("array") validator can only be followed by an assertEach(...) validator.');
    return M;
  }
  const L = ["aliases", "builder", "deprecatedAlias", "fields", "inherits", "visitor", "validate"], O = ["default", "optional", "deprecated", "validate"], F = {};
  function q(...N) {
    return (M, R = {}) => {
      let $ = R.aliases;
      if (!$) {
        var V, K;
        R.inherits && ($ = (V = F[R.inherits].aliases) == null ? void 0 : V.slice()), (K = $) != null || ($ = []), R.aliases = $;
      }
      const z = N.filter((W) => !$.includes(W));
      $.unshift(...z), j(M, R);
    };
  }
  function j(N, M = {}) {
    const R = M.inherits && F[M.inherits] || {};
    let $ = M.fields;
    if (!$ && ($ = {}, R.fields)) {
      const W = Object.getOwnPropertyNames(R.fields);
      for (const Y of W) {
        const G = R.fields[Y], le = G.default;
        if (Array.isArray(le) ? le.length > 0 : le && typeof le == "object")
          throw new Error("field defaults can only be primitives or empty arrays currently");
        $[Y] = {
          default: Array.isArray(le) ? [] : le,
          optional: G.optional,
          deprecated: G.deprecated,
          validate: G.validate
        };
      }
    }
    const V = M.visitor || R.visitor || [], K = M.aliases || R.aliases || [], z = M.builder || R.builder || M.visitor || [];
    for (const W of Object.keys(M))
      if (L.indexOf(W) === -1)
        throw new Error('Unknown type option "'.concat(W, '" on ').concat(N));
    M.deprecatedAlias && (o[M.deprecatedAlias] = N);
    for (const W of V.concat(z))
      $[W] = $[W] || {};
    for (const W of Object.keys($)) {
      const Y = $[W];
      Y.default !== void 0 && z.indexOf(W) === -1 && (Y.optional = !0), Y.default === void 0 ? Y.default = null : !Y.validate && Y.default != null && (Y.validate = D(u(Y.default)));
      for (const G of Object.keys(Y))
        if (O.indexOf(G) === -1)
          throw new Error('Unknown field key "'.concat(G, '" on ').concat(N, ".").concat(W));
    }
    r[N] = M.visitor = V, a[N] = M.builder = z, s[N] = M.fields = $, i[N] = M.aliases = K, K.forEach((W) => {
      n[W] = n[W] || [], n[W].push(N);
    }), M.validate && (l[N] = M.validate), F[N] = M;
  }
  return ai;
}
var Cz;
function Dhe() {
  if (Cz)
    return Qs;
  Cz = 1, Object.defineProperty(Qs, "__esModule", {
    value: !0
  }), Qs.patternLikeCommon = Qs.functionTypeAnnotationCommon = Qs.functionDeclarationCommon = Qs.functionCommon = Qs.classMethodOrPropertyCommon = Qs.classMethodOrDeclareMethodCommon = void 0;
  var e = GT(), t = YT(), r = qc(), i = ife(), n = om(), s = Kh();
  const a = (0, s.defineAliasedType)("Standardized");
  a("ArrayExpression", {
    fields: {
      elements: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeOrValueType)("null", "Expression", "SpreadElement"))),
        default: process.env.BABEL_TYPES_8_BREAKING ? void 0 : []
      }
    },
    visitor: ["elements"],
    aliases: ["Expression"]
  }), a("AssignmentExpression", {
    fields: {
      operator: {
        validate: function() {
          if (!process.env.BABEL_TYPES_8_BREAKING)
            return (0, s.assertValueType)("string");
          const m = (0, s.assertOneOf)(...n.ASSIGNMENT_OPERATORS), g = (0, s.assertOneOf)("=");
          return function(y, v, T) {
            ((0, e.default)("Pattern", y.left) ? g : m)(y, v, T);
          };
        }()
      },
      left: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.assertNodeType)("Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") : (0, s.assertNodeType)("LVal")
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      }
    },
    builder: ["operator", "left", "right"],
    visitor: ["left", "right"],
    aliases: ["Expression"]
  }), a("BinaryExpression", {
    builder: ["operator", "left", "right"],
    fields: {
      operator: {
        validate: (0, s.assertOneOf)(...n.BINARY_OPERATORS)
      },
      left: {
        validate: function() {
          const m = (0, s.assertNodeType)("Expression"), g = (0, s.assertNodeType)("Expression", "PrivateName");
          return Object.assign(function(v, T, S) {
            (v.operator === "in" ? g : m)(v, T, S);
          }, {
            oneOfNodeTypes: ["Expression", "PrivateName"]
          });
        }()
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      }
    },
    visitor: ["left", "right"],
    aliases: ["Binary", "Expression"]
  }), a("InterpreterDirective", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, s.assertValueType)("string")
      }
    }
  }), a("Directive", {
    visitor: ["value"],
    fields: {
      value: {
        validate: (0, s.assertNodeType)("DirectiveLiteral")
      }
    }
  }), a("DirectiveLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, s.assertValueType)("string")
      }
    }
  }), a("BlockStatement", {
    builder: ["body", "directives"],
    visitor: ["directives", "body"],
    fields: {
      directives: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Directive"))),
        default: []
      },
      body: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Statement")))
      }
    },
    aliases: ["Scopable", "BlockParent", "Block", "Statement"]
  }), a("BreakStatement", {
    visitor: ["label"],
    fields: {
      label: {
        validate: (0, s.assertNodeType)("Identifier"),
        optional: !0
      }
    },
    aliases: ["Statement", "Terminatorless", "CompletionStatement"]
  }), a("CallExpression", {
    visitor: ["callee", "arguments", "typeParameters", "typeArguments"],
    builder: ["callee", "arguments"],
    aliases: ["Expression"],
    fields: Object.assign({
      callee: {
        validate: (0, s.assertNodeType)("Expression", "Super", "V8IntrinsicIdentifier")
      },
      arguments: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Expression", "SpreadElement", "JSXNamespacedName", "ArgumentPlaceholder")))
      }
    }, process.env.BABEL_TYPES_8_BREAKING ? {} : {
      optional: {
        validate: (0, s.assertOneOf)(!0, !1),
        optional: !0
      }
    }, {
      typeArguments: {
        validate: (0, s.assertNodeType)("TypeParameterInstantiation"),
        optional: !0
      },
      typeParameters: {
        validate: (0, s.assertNodeType)("TSTypeParameterInstantiation"),
        optional: !0
      }
    })
  }), a("CatchClause", {
    visitor: ["param", "body"],
    fields: {
      param: {
        validate: (0, s.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern"),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      }
    },
    aliases: ["Scopable", "BlockParent"]
  }), a("ConditionalExpression", {
    visitor: ["test", "consequent", "alternate"],
    fields: {
      test: {
        validate: (0, s.assertNodeType)("Expression")
      },
      consequent: {
        validate: (0, s.assertNodeType)("Expression")
      },
      alternate: {
        validate: (0, s.assertNodeType)("Expression")
      }
    },
    aliases: ["Expression", "Conditional"]
  }), a("ContinueStatement", {
    visitor: ["label"],
    fields: {
      label: {
        validate: (0, s.assertNodeType)("Identifier"),
        optional: !0
      }
    },
    aliases: ["Statement", "Terminatorless", "CompletionStatement"]
  }), a("DebuggerStatement", {
    aliases: ["Statement"]
  }), a("DoWhileStatement", {
    visitor: ["test", "body"],
    fields: {
      test: {
        validate: (0, s.assertNodeType)("Expression")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    },
    aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"]
  }), a("EmptyStatement", {
    aliases: ["Statement"]
  }), a("ExpressionStatement", {
    visitor: ["expression"],
    fields: {
      expression: {
        validate: (0, s.assertNodeType)("Expression")
      }
    },
    aliases: ["Statement", "ExpressionWrapper"]
  }), a("File", {
    builder: ["program", "comments", "tokens"],
    visitor: ["program"],
    fields: {
      program: {
        validate: (0, s.assertNodeType)("Program")
      },
      comments: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.assertEach)((0, s.assertNodeType)("CommentBlock", "CommentLine")) : Object.assign(() => {
        }, {
          each: {
            oneOfNodeTypes: ["CommentBlock", "CommentLine"]
          }
        }),
        optional: !0
      },
      tokens: {
        validate: (0, s.assertEach)(Object.assign(() => {
        }, {
          type: "any"
        })),
        optional: !0
      }
    }
  }), a("ForInStatement", {
    visitor: ["left", "right", "body"],
    aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"],
    fields: {
      left: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.assertNodeType)("VariableDeclaration", "Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") : (0, s.assertNodeType)("VariableDeclaration", "LVal")
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  }), a("ForStatement", {
    visitor: ["init", "test", "update", "body"],
    aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop"],
    fields: {
      init: {
        validate: (0, s.assertNodeType)("VariableDeclaration", "Expression"),
        optional: !0
      },
      test: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      update: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  });
  const o = () => ({
    params: {
      validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Identifier", "Pattern", "RestElement")))
    },
    generator: {
      default: !1
    },
    async: {
      default: !1
    }
  });
  Qs.functionCommon = o;
  const l = () => ({
    returnType: {
      validate: (0, s.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
      optional: !0
    },
    typeParameters: {
      validate: (0, s.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"),
      optional: !0
    }
  });
  Qs.functionTypeAnnotationCommon = l;
  const u = () => Object.assign({}, o(), {
    declare: {
      validate: (0, s.assertValueType)("boolean"),
      optional: !0
    },
    id: {
      validate: (0, s.assertNodeType)("Identifier"),
      optional: !0
    }
  });
  Qs.functionDeclarationCommon = u, a("FunctionDeclaration", {
    builder: ["id", "params", "body", "generator", "async"],
    visitor: ["id", "params", "body", "returnType", "typeParameters"],
    fields: Object.assign({}, u(), l(), {
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      },
      predicate: {
        validate: (0, s.assertNodeType)("DeclaredPredicate", "InferredPredicate"),
        optional: !0
      }
    }),
    aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Statement", "Pureish", "Declaration"],
    validate: function() {
      if (!process.env.BABEL_TYPES_8_BREAKING)
        return () => {
        };
      const m = (0, s.assertNodeType)("Identifier");
      return function(g, y, v) {
        (0, e.default)("ExportDefaultDeclaration", g) || m(v, "id", v.id);
      };
    }()
  }), a("FunctionExpression", {
    inherits: "FunctionDeclaration",
    aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"],
    fields: Object.assign({}, o(), l(), {
      id: {
        validate: (0, s.assertNodeType)("Identifier"),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      },
      predicate: {
        validate: (0, s.assertNodeType)("DeclaredPredicate", "InferredPredicate"),
        optional: !0
      }
    })
  });
  const c = () => ({
    typeAnnotation: {
      validate: (0, s.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
      optional: !0
    },
    optional: {
      validate: (0, s.assertValueType)("boolean"),
      optional: !0
    },
    decorators: {
      validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
      optional: !0
    }
  });
  Qs.patternLikeCommon = c, a("Identifier", {
    builder: ["name"],
    visitor: ["typeAnnotation", "decorators"],
    aliases: ["Expression", "PatternLike", "LVal", "TSEntityName"],
    fields: Object.assign({}, c(), {
      name: {
        validate: (0, s.chain)((0, s.assertValueType)("string"), Object.assign(function(m, g, y) {
          if (process.env.BABEL_TYPES_8_BREAKING && !(0, t.default)(y, !1))
            throw new TypeError('"'.concat(y, '" is not a valid identifier name'));
        }, {
          type: "string"
        }))
      }
    }),
    validate(m, g, y) {
      if (!process.env.BABEL_TYPES_8_BREAKING)
        return;
      const v = /\.(\w+)$/.exec(g);
      if (!v)
        return;
      const [, T] = v, S = {
        computed: !1
      };
      if (T === "property") {
        if ((0, e.default)("MemberExpression", m, S) || (0, e.default)("OptionalMemberExpression", m, S))
          return;
      } else if (T === "key") {
        if ((0, e.default)("Property", m, S) || (0, e.default)("Method", m, S))
          return;
      } else if (T === "exported") {
        if ((0, e.default)("ExportSpecifier", m))
          return;
      } else if (T === "imported") {
        if ((0, e.default)("ImportSpecifier", m, {
          imported: y
        }))
          return;
      } else if (T === "meta" && (0, e.default)("MetaProperty", m, {
        meta: y
      }))
        return;
      if (((0, r.isKeyword)(y.name) || (0, r.isReservedWord)(y.name, !1)) && y.name !== "this")
        throw new TypeError('"'.concat(y.name, '" is not a valid identifier'));
    }
  }), a("IfStatement", {
    visitor: ["test", "consequent", "alternate"],
    aliases: ["Statement", "Conditional"],
    fields: {
      test: {
        validate: (0, s.assertNodeType)("Expression")
      },
      consequent: {
        validate: (0, s.assertNodeType)("Statement")
      },
      alternate: {
        optional: !0,
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  }), a("LabeledStatement", {
    visitor: ["label", "body"],
    aliases: ["Statement"],
    fields: {
      label: {
        validate: (0, s.assertNodeType)("Identifier")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  }), a("StringLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, s.assertValueType)("string")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), a("NumericLiteral", {
    builder: ["value"],
    deprecatedAlias: "NumberLiteral",
    fields: {
      value: {
        validate: (0, s.assertValueType)("number")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), a("NullLiteral", {
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), a("BooleanLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, s.assertValueType)("boolean")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), a("RegExpLiteral", {
    builder: ["pattern", "flags"],
    deprecatedAlias: "RegexLiteral",
    aliases: ["Expression", "Pureish", "Literal"],
    fields: {
      pattern: {
        validate: (0, s.assertValueType)("string")
      },
      flags: {
        validate: (0, s.chain)((0, s.assertValueType)("string"), Object.assign(function(m, g, y) {
          if (!process.env.BABEL_TYPES_8_BREAKING)
            return;
          const v = /[^gimsuy]/.exec(y);
          if (v)
            throw new TypeError('"'.concat(v[0], '" is not a valid RegExp flag'));
        }, {
          type: "string"
        })),
        default: ""
      }
    }
  }), a("LogicalExpression", {
    builder: ["operator", "left", "right"],
    visitor: ["left", "right"],
    aliases: ["Binary", "Expression"],
    fields: {
      operator: {
        validate: (0, s.assertOneOf)(...n.LOGICAL_OPERATORS)
      },
      left: {
        validate: (0, s.assertNodeType)("Expression")
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("MemberExpression", {
    builder: ["object", "property", "computed", ...process.env.BABEL_TYPES_8_BREAKING ? [] : ["optional"]],
    visitor: ["object", "property"],
    aliases: ["Expression", "LVal"],
    fields: Object.assign({
      object: {
        validate: (0, s.assertNodeType)("Expression", "Super")
      },
      property: {
        validate: function() {
          const m = (0, s.assertNodeType)("Identifier", "PrivateName"), g = (0, s.assertNodeType)("Expression"), y = function(v, T, S) {
            (v.computed ? g : m)(v, T, S);
          };
          return y.oneOfNodeTypes = ["Expression", "Identifier", "PrivateName"], y;
        }()
      },
      computed: {
        default: !1
      }
    }, process.env.BABEL_TYPES_8_BREAKING ? {} : {
      optional: {
        validate: (0, s.assertOneOf)(!0, !1),
        optional: !0
      }
    })
  }), a("NewExpression", {
    inherits: "CallExpression"
  }), a("Program", {
    visitor: ["directives", "body"],
    builder: ["body", "directives", "sourceType", "interpreter"],
    fields: {
      sourceFile: {
        validate: (0, s.assertValueType)("string")
      },
      sourceType: {
        validate: (0, s.assertOneOf)("script", "module"),
        default: "script"
      },
      interpreter: {
        validate: (0, s.assertNodeType)("InterpreterDirective"),
        default: null,
        optional: !0
      },
      directives: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Directive"))),
        default: []
      },
      body: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Statement")))
      }
    },
    aliases: ["Scopable", "BlockParent", "Block"]
  }), a("ObjectExpression", {
    visitor: ["properties"],
    aliases: ["Expression"],
    fields: {
      properties: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ObjectMethod", "ObjectProperty", "SpreadElement")))
      }
    }
  }), a("ObjectMethod", {
    builder: ["kind", "key", "params", "body", "computed", "generator", "async"],
    fields: Object.assign({}, o(), l(), {
      kind: Object.assign({
        validate: (0, s.assertOneOf)("method", "get", "set")
      }, process.env.BABEL_TYPES_8_BREAKING ? {} : {
        default: "method"
      }),
      computed: {
        default: !1
      },
      key: {
        validate: function() {
          const m = (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"), g = (0, s.assertNodeType)("Expression"), y = function(v, T, S) {
            (v.computed ? g : m)(v, T, S);
          };
          return y.oneOfNodeTypes = ["Expression", "Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"], y;
        }()
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      }
    }),
    visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"],
    aliases: ["UserWhitespacable", "Function", "Scopable", "BlockParent", "FunctionParent", "Method", "ObjectMember"]
  }), a("ObjectProperty", {
    builder: ["key", "value", "computed", "shorthand", ...process.env.BABEL_TYPES_8_BREAKING ? [] : ["decorators"]],
    fields: {
      computed: {
        default: !1
      },
      key: {
        validate: function() {
          const m = (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "DecimalLiteral", "PrivateName"), g = (0, s.assertNodeType)("Expression");
          return Object.assign(function(v, T, S) {
            (v.computed ? g : m)(v, T, S);
          }, {
            oneOfNodeTypes: ["Expression", "Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "DecimalLiteral", "PrivateName"]
          });
        }()
      },
      value: {
        validate: (0, s.assertNodeType)("Expression", "PatternLike")
      },
      shorthand: {
        validate: (0, s.chain)((0, s.assertValueType)("boolean"), Object.assign(function(m, g, y) {
          if (process.env.BABEL_TYPES_8_BREAKING && y && m.computed)
            throw new TypeError("Property shorthand of ObjectProperty cannot be true if computed is true");
        }, {
          type: "boolean"
        }), function(m, g, y) {
          if (process.env.BABEL_TYPES_8_BREAKING && y && !(0, e.default)("Identifier", m.key))
            throw new TypeError("Property shorthand of ObjectProperty cannot be true if key is not an Identifier");
        }),
        default: !1
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      }
    },
    visitor: ["key", "value", "decorators"],
    aliases: ["UserWhitespacable", "Property", "ObjectMember"],
    validate: function() {
      const m = (0, s.assertNodeType)("Identifier", "Pattern", "TSAsExpression", "TSSatisfiesExpression", "TSNonNullExpression", "TSTypeAssertion"), g = (0, s.assertNodeType)("Expression");
      return function(y, v, T) {
        if (!process.env.BABEL_TYPES_8_BREAKING)
          return;
        ((0, e.default)("ObjectPattern", y) ? m : g)(T, "value", T.value);
      };
    }()
  }), a("RestElement", {
    visitor: ["argument", "typeAnnotation"],
    builder: ["argument"],
    aliases: ["LVal", "PatternLike"],
    deprecatedAlias: "RestProperty",
    fields: Object.assign({}, c(), {
      argument: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern", "MemberExpression", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") : (0, s.assertNodeType)("LVal")
      }
    }),
    validate(m, g) {
      if (!process.env.BABEL_TYPES_8_BREAKING)
        return;
      const y = /(\w+)\[(\d+)\]/.exec(g);
      if (!y)
        throw new Error("Internal Babel error: malformed key.");
      const [, v, T] = y;
      if (m[v].length > +T + 1)
        throw new TypeError("RestElement must be last element of ".concat(v));
    }
  }), a("ReturnStatement", {
    visitor: ["argument"],
    aliases: ["Statement", "Terminatorless", "CompletionStatement"],
    fields: {
      argument: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      }
    }
  }), a("SequenceExpression", {
    visitor: ["expressions"],
    fields: {
      expressions: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Expression")))
      }
    },
    aliases: ["Expression"]
  }), a("ParenthesizedExpression", {
    visitor: ["expression"],
    aliases: ["Expression", "ExpressionWrapper"],
    fields: {
      expression: {
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("SwitchCase", {
    visitor: ["test", "consequent"],
    fields: {
      test: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      consequent: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Statement")))
      }
    }
  }), a("SwitchStatement", {
    visitor: ["discriminant", "cases"],
    aliases: ["Statement", "BlockParent", "Scopable"],
    fields: {
      discriminant: {
        validate: (0, s.assertNodeType)("Expression")
      },
      cases: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("SwitchCase")))
      }
    }
  }), a("ThisExpression", {
    aliases: ["Expression"]
  }), a("ThrowStatement", {
    visitor: ["argument"],
    aliases: ["Statement", "Terminatorless", "CompletionStatement"],
    fields: {
      argument: {
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("TryStatement", {
    visitor: ["block", "handler", "finalizer"],
    aliases: ["Statement"],
    fields: {
      block: {
        validate: (0, s.chain)((0, s.assertNodeType)("BlockStatement"), Object.assign(function(m) {
          if (process.env.BABEL_TYPES_8_BREAKING && !m.handler && !m.finalizer)
            throw new TypeError("TryStatement expects either a handler or finalizer, or both");
        }, {
          oneOfNodeTypes: ["BlockStatement"]
        }))
      },
      handler: {
        optional: !0,
        validate: (0, s.assertNodeType)("CatchClause")
      },
      finalizer: {
        optional: !0,
        validate: (0, s.assertNodeType)("BlockStatement")
      }
    }
  }), a("UnaryExpression", {
    builder: ["operator", "argument", "prefix"],
    fields: {
      prefix: {
        default: !0
      },
      argument: {
        validate: (0, s.assertNodeType)("Expression")
      },
      operator: {
        validate: (0, s.assertOneOf)(...n.UNARY_OPERATORS)
      }
    },
    visitor: ["argument"],
    aliases: ["UnaryLike", "Expression"]
  }), a("UpdateExpression", {
    builder: ["operator", "argument", "prefix"],
    fields: {
      prefix: {
        default: !1
      },
      argument: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.assertNodeType)("Identifier", "MemberExpression") : (0, s.assertNodeType)("Expression")
      },
      operator: {
        validate: (0, s.assertOneOf)(...n.UPDATE_OPERATORS)
      }
    },
    visitor: ["argument"],
    aliases: ["Expression"]
  }), a("VariableDeclaration", {
    builder: ["kind", "declarations"],
    visitor: ["declarations"],
    aliases: ["Statement", "Declaration"],
    fields: {
      declare: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      kind: {
        validate: (0, s.assertOneOf)("var", "let", "const", "using", "await using")
      },
      declarations: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("VariableDeclarator")))
      }
    },
    validate(m, g, y) {
      if (process.env.BABEL_TYPES_8_BREAKING && (0, e.default)("ForXStatement", m, {
        left: y
      }) && y.declarations.length !== 1)
        throw new TypeError("Exactly one VariableDeclarator is required in the VariableDeclaration of a ".concat(m.type));
    }
  }), a("VariableDeclarator", {
    visitor: ["id", "init"],
    fields: {
      id: {
        validate: function() {
          if (!process.env.BABEL_TYPES_8_BREAKING)
            return (0, s.assertNodeType)("LVal");
          const m = (0, s.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern"), g = (0, s.assertNodeType)("Identifier");
          return function(y, v, T) {
            (y.init ? m : g)(y, v, T);
          };
        }()
      },
      definite: {
        optional: !0,
        validate: (0, s.assertValueType)("boolean")
      },
      init: {
        optional: !0,
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("WhileStatement", {
    visitor: ["test", "body"],
    aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"],
    fields: {
      test: {
        validate: (0, s.assertNodeType)("Expression")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  }), a("WithStatement", {
    visitor: ["object", "body"],
    aliases: ["Statement"],
    fields: {
      object: {
        validate: (0, s.assertNodeType)("Expression")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  }), a("AssignmentPattern", {
    visitor: ["left", "right", "decorators"],
    builder: ["left", "right"],
    aliases: ["Pattern", "PatternLike", "LVal"],
    fields: Object.assign({}, c(), {
      left: {
        validate: (0, s.assertNodeType)("Identifier", "ObjectPattern", "ArrayPattern", "MemberExpression", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression")
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      }
    })
  }), a("ArrayPattern", {
    visitor: ["elements", "typeAnnotation"],
    builder: ["elements"],
    aliases: ["Pattern", "PatternLike", "LVal"],
    fields: Object.assign({}, c(), {
      elements: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeOrValueType)("null", "PatternLike", "LVal")))
      }
    })
  }), a("ArrowFunctionExpression", {
    builder: ["params", "body", "async"],
    visitor: ["params", "body", "returnType", "typeParameters"],
    aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"],
    fields: Object.assign({}, o(), l(), {
      expression: {
        validate: (0, s.assertValueType)("boolean")
      },
      body: {
        validate: (0, s.assertNodeType)("BlockStatement", "Expression")
      },
      predicate: {
        validate: (0, s.assertNodeType)("DeclaredPredicate", "InferredPredicate"),
        optional: !0
      }
    })
  }), a("ClassBody", {
    visitor: ["body"],
    fields: {
      body: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ClassMethod", "ClassPrivateMethod", "ClassProperty", "ClassPrivateProperty", "ClassAccessorProperty", "TSDeclareMethod", "TSIndexSignature", "StaticBlock")))
      }
    }
  }), a("ClassExpression", {
    builder: ["id", "superClass", "body", "decorators"],
    visitor: ["id", "body", "superClass", "mixins", "typeParameters", "superTypeParameters", "implements", "decorators"],
    aliases: ["Scopable", "Class", "Expression"],
    fields: {
      id: {
        validate: (0, s.assertNodeType)("Identifier"),
        optional: !0
      },
      typeParameters: {
        validate: (0, s.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("ClassBody")
      },
      superClass: {
        optional: !0,
        validate: (0, s.assertNodeType)("Expression")
      },
      superTypeParameters: {
        validate: (0, s.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      },
      implements: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("TSExpressionWithTypeArguments", "ClassImplements"))),
        optional: !0
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      },
      mixins: {
        validate: (0, s.assertNodeType)("InterfaceExtends"),
        optional: !0
      }
    }
  }), a("ClassDeclaration", {
    inherits: "ClassExpression",
    aliases: ["Scopable", "Class", "Statement", "Declaration"],
    fields: {
      id: {
        validate: (0, s.assertNodeType)("Identifier")
      },
      typeParameters: {
        validate: (0, s.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("ClassBody")
      },
      superClass: {
        optional: !0,
        validate: (0, s.assertNodeType)("Expression")
      },
      superTypeParameters: {
        validate: (0, s.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      },
      implements: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("TSExpressionWithTypeArguments", "ClassImplements"))),
        optional: !0
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      },
      mixins: {
        validate: (0, s.assertNodeType)("InterfaceExtends"),
        optional: !0
      },
      declare: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      abstract: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      }
    },
    validate: function() {
      const m = (0, s.assertNodeType)("Identifier");
      return function(g, y, v) {
        process.env.BABEL_TYPES_8_BREAKING && ((0, e.default)("ExportDefaultDeclaration", g) || m(v, "id", v.id));
      };
    }()
  }), a("ExportAllDeclaration", {
    builder: ["source"],
    visitor: ["source", "attributes", "assertions"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration", "ExportDeclaration"],
    fields: {
      source: {
        validate: (0, s.assertNodeType)("StringLiteral")
      },
      exportKind: (0, s.validateOptional)((0, s.assertOneOf)("type", "value")),
      attributes: {
        optional: !0,
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ImportAttribute")))
      },
      assertions: {
        optional: !0,
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ImportAttribute")))
      }
    }
  }), a("ExportDefaultDeclaration", {
    visitor: ["declaration"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration", "ExportDeclaration"],
    fields: {
      declaration: {
        validate: (0, s.assertNodeType)("TSDeclareFunction", "FunctionDeclaration", "ClassDeclaration", "Expression")
      },
      exportKind: (0, s.validateOptional)((0, s.assertOneOf)("value"))
    }
  }), a("ExportNamedDeclaration", {
    builder: ["declaration", "specifiers", "source"],
    visitor: ["declaration", "specifiers", "source", "attributes", "assertions"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration", "ExportDeclaration"],
    fields: {
      declaration: {
        optional: !0,
        validate: (0, s.chain)((0, s.assertNodeType)("Declaration"), Object.assign(function(m, g, y) {
          if (process.env.BABEL_TYPES_8_BREAKING && y && m.specifiers.length)
            throw new TypeError("Only declaration or specifiers is allowed on ExportNamedDeclaration");
        }, {
          oneOfNodeTypes: ["Declaration"]
        }), function(m, g, y) {
          if (process.env.BABEL_TYPES_8_BREAKING && y && m.source)
            throw new TypeError("Cannot export a declaration from a source");
        })
      },
      attributes: {
        optional: !0,
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ImportAttribute")))
      },
      assertions: {
        optional: !0,
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ImportAttribute")))
      },
      specifiers: {
        default: [],
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)(function() {
          const m = (0, s.assertNodeType)("ExportSpecifier", "ExportDefaultSpecifier", "ExportNamespaceSpecifier"), g = (0, s.assertNodeType)("ExportSpecifier");
          return process.env.BABEL_TYPES_8_BREAKING ? function(y, v, T) {
            (y.source ? m : g)(y, v, T);
          } : m;
        }()))
      },
      source: {
        validate: (0, s.assertNodeType)("StringLiteral"),
        optional: !0
      },
      exportKind: (0, s.validateOptional)((0, s.assertOneOf)("type", "value"))
    }
  }), a("ExportSpecifier", {
    visitor: ["local", "exported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, s.assertNodeType)("Identifier")
      },
      exported: {
        validate: (0, s.assertNodeType)("Identifier", "StringLiteral")
      },
      exportKind: {
        validate: (0, s.assertOneOf)("type", "value"),
        optional: !0
      }
    }
  }), a("ForOfStatement", {
    visitor: ["left", "right", "body"],
    builder: ["left", "right", "body", "await"],
    aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"],
    fields: {
      left: {
        validate: function() {
          if (!process.env.BABEL_TYPES_8_BREAKING)
            return (0, s.assertNodeType)("VariableDeclaration", "LVal");
          const m = (0, s.assertNodeType)("VariableDeclaration"), g = (0, s.assertNodeType)("Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression");
          return function(y, v, T) {
            (0, e.default)("VariableDeclaration", T) ? m(y, v, T) : g(y, v, T);
          };
        }()
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      },
      await: {
        default: !1
      }
    }
  }), a("ImportDeclaration", {
    builder: ["specifiers", "source"],
    visitor: ["specifiers", "source", "attributes", "assertions"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration"],
    fields: {
      attributes: {
        optional: !0,
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ImportAttribute")))
      },
      assertions: {
        optional: !0,
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ImportAttribute")))
      },
      module: {
        optional: !0,
        validate: (0, s.assertValueType)("boolean")
      },
      specifiers: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("ImportSpecifier", "ImportDefaultSpecifier", "ImportNamespaceSpecifier")))
      },
      source: {
        validate: (0, s.assertNodeType)("StringLiteral")
      },
      importKind: {
        validate: (0, s.assertOneOf)("type", "typeof", "value"),
        optional: !0
      }
    }
  }), a("ImportDefaultSpecifier", {
    visitor: ["local"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, s.assertNodeType)("Identifier")
      }
    }
  }), a("ImportNamespaceSpecifier", {
    visitor: ["local"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, s.assertNodeType)("Identifier")
      }
    }
  }), a("ImportSpecifier", {
    visitor: ["local", "imported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, s.assertNodeType)("Identifier")
      },
      imported: {
        validate: (0, s.assertNodeType)("Identifier", "StringLiteral")
      },
      importKind: {
        validate: (0, s.assertOneOf)("type", "typeof", "value"),
        optional: !0
      }
    }
  }), a("MetaProperty", {
    visitor: ["meta", "property"],
    aliases: ["Expression"],
    fields: {
      meta: {
        validate: (0, s.chain)((0, s.assertNodeType)("Identifier"), Object.assign(function(m, g, y) {
          if (!process.env.BABEL_TYPES_8_BREAKING)
            return;
          let v;
          switch (y.name) {
            case "function":
              v = "sent";
              break;
            case "new":
              v = "target";
              break;
            case "import":
              v = "meta";
              break;
          }
          if (!(0, e.default)("Identifier", m.property, {
            name: v
          }))
            throw new TypeError("Unrecognised MetaProperty");
        }, {
          oneOfNodeTypes: ["Identifier"]
        }))
      },
      property: {
        validate: (0, s.assertNodeType)("Identifier")
      }
    }
  });
  const f = () => ({
    abstract: {
      validate: (0, s.assertValueType)("boolean"),
      optional: !0
    },
    accessibility: {
      validate: (0, s.assertOneOf)("public", "private", "protected"),
      optional: !0
    },
    static: {
      default: !1
    },
    override: {
      default: !1
    },
    computed: {
      default: !1
    },
    optional: {
      validate: (0, s.assertValueType)("boolean"),
      optional: !0
    },
    key: {
      validate: (0, s.chain)(function() {
        const m = (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral"), g = (0, s.assertNodeType)("Expression");
        return function(y, v, T) {
          (y.computed ? g : m)(y, v, T);
        };
      }(), (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "Expression"))
    }
  });
  Qs.classMethodOrPropertyCommon = f;
  const h = () => Object.assign({}, o(), f(), {
    params: {
      validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Identifier", "Pattern", "RestElement", "TSParameterProperty")))
    },
    kind: {
      validate: (0, s.assertOneOf)("get", "set", "method", "constructor"),
      default: "method"
    },
    access: {
      validate: (0, s.chain)((0, s.assertValueType)("string"), (0, s.assertOneOf)("public", "private", "protected")),
      optional: !0
    },
    decorators: {
      validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
      optional: !0
    }
  });
  return Qs.classMethodOrDeclareMethodCommon = h, a("ClassMethod", {
    aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method"],
    builder: ["kind", "key", "params", "body", "computed", "static", "generator", "async"],
    visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"],
    fields: Object.assign({}, h(), l(), {
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      }
    })
  }), a("ObjectPattern", {
    visitor: ["properties", "typeAnnotation", "decorators"],
    builder: ["properties"],
    aliases: ["Pattern", "PatternLike", "LVal"],
    fields: Object.assign({}, c(), {
      properties: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("RestElement", "ObjectProperty")))
      }
    })
  }), a("SpreadElement", {
    visitor: ["argument"],
    aliases: ["UnaryLike"],
    deprecatedAlias: "SpreadProperty",
    fields: {
      argument: {
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("Super", {
    aliases: ["Expression"]
  }), a("TaggedTemplateExpression", {
    visitor: ["tag", "quasi", "typeParameters"],
    builder: ["tag", "quasi"],
    aliases: ["Expression"],
    fields: {
      tag: {
        validate: (0, s.assertNodeType)("Expression")
      },
      quasi: {
        validate: (0, s.assertNodeType)("TemplateLiteral")
      },
      typeParameters: {
        validate: (0, s.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      }
    }
  }), a("TemplateElement", {
    builder: ["value", "tail"],
    fields: {
      value: {
        validate: (0, s.chain)((0, s.assertShape)({
          raw: {
            validate: (0, s.assertValueType)("string")
          },
          cooked: {
            validate: (0, s.assertValueType)("string"),
            optional: !0
          }
        }), function(g) {
          const y = g.value.raw;
          let v = !1;
          const T = () => {
            throw new Error("Internal @babel/types error.");
          }, {
            str: S,
            firstInvalidLoc: P
          } = (0, i.readStringContents)("template", y, 0, 0, 0, {
            unterminated() {
              v = !0;
            },
            strictNumericEscape: T,
            invalidEscapeSequence: T,
            numericSeparatorInEscapeSequence: T,
            unexpectedNumericSeparator: T,
            invalidDigit: T,
            invalidCodePoint: T
          });
          if (!v)
            throw new Error("Invalid raw");
          g.value.cooked = P ? null : S;
        })
      },
      tail: {
        default: !1
      }
    }
  }), a("TemplateLiteral", {
    visitor: ["quasis", "expressions"],
    aliases: ["Expression", "Literal"],
    fields: {
      quasis: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("TemplateElement")))
      },
      expressions: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Expression", "TSType")), function(m, g, y) {
          if (m.quasis.length !== y.length + 1)
            throw new TypeError("Number of ".concat(m.type, " quasis should be exactly one more than the number of expressions.\nExpected ").concat(y.length + 1, " quasis but got ").concat(m.quasis.length));
        })
      }
    }
  }), a("YieldExpression", {
    builder: ["argument", "delegate"],
    visitor: ["argument"],
    aliases: ["Expression", "Terminatorless"],
    fields: {
      delegate: {
        validate: (0, s.chain)((0, s.assertValueType)("boolean"), Object.assign(function(m, g, y) {
          if (process.env.BABEL_TYPES_8_BREAKING && y && !m.argument)
            throw new TypeError("Property delegate of YieldExpression cannot be true if there is no argument");
        }, {
          type: "boolean"
        })),
        default: !1
      },
      argument: {
        optional: !0,
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("AwaitExpression", {
    builder: ["argument"],
    visitor: ["argument"],
    aliases: ["Expression", "Terminatorless"],
    fields: {
      argument: {
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("Import", {
    aliases: ["Expression"]
  }), a("BigIntLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, s.assertValueType)("string")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), a("ExportNamespaceSpecifier", {
    visitor: ["exported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      exported: {
        validate: (0, s.assertNodeType)("Identifier")
      }
    }
  }), a("OptionalMemberExpression", {
    builder: ["object", "property", "computed", "optional"],
    visitor: ["object", "property"],
    aliases: ["Expression"],
    fields: {
      object: {
        validate: (0, s.assertNodeType)("Expression")
      },
      property: {
        validate: function() {
          const m = (0, s.assertNodeType)("Identifier"), g = (0, s.assertNodeType)("Expression");
          return Object.assign(function(v, T, S) {
            (v.computed ? g : m)(v, T, S);
          }, {
            oneOfNodeTypes: ["Expression", "Identifier"]
          });
        }()
      },
      computed: {
        default: !1
      },
      optional: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.chain)((0, s.assertValueType)("boolean"), (0, s.assertOptionalChainStart)()) : (0, s.assertValueType)("boolean")
      }
    }
  }), a("OptionalCallExpression", {
    visitor: ["callee", "arguments", "typeParameters", "typeArguments"],
    builder: ["callee", "arguments", "optional"],
    aliases: ["Expression"],
    fields: {
      callee: {
        validate: (0, s.assertNodeType)("Expression")
      },
      arguments: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Expression", "SpreadElement", "JSXNamespacedName", "ArgumentPlaceholder")))
      },
      optional: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.chain)((0, s.assertValueType)("boolean"), (0, s.assertOptionalChainStart)()) : (0, s.assertValueType)("boolean")
      },
      typeArguments: {
        validate: (0, s.assertNodeType)("TypeParameterInstantiation"),
        optional: !0
      },
      typeParameters: {
        validate: (0, s.assertNodeType)("TSTypeParameterInstantiation"),
        optional: !0
      }
    }
  }), a("ClassProperty", {
    visitor: ["key", "value", "typeAnnotation", "decorators"],
    builder: ["key", "value", "typeAnnotation", "decorators", "computed", "static"],
    aliases: ["Property"],
    fields: Object.assign({}, f(), {
      value: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      definite: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      typeAnnotation: {
        validate: (0, s.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
        optional: !0
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      },
      readonly: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      declare: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      variance: {
        validate: (0, s.assertNodeType)("Variance"),
        optional: !0
      }
    })
  }), a("ClassAccessorProperty", {
    visitor: ["key", "value", "typeAnnotation", "decorators"],
    builder: ["key", "value", "typeAnnotation", "decorators", "computed", "static"],
    aliases: ["Property", "Accessor"],
    fields: Object.assign({}, f(), {
      key: {
        validate: (0, s.chain)(function() {
          const m = (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "PrivateName"), g = (0, s.assertNodeType)("Expression");
          return function(y, v, T) {
            (y.computed ? g : m)(y, v, T);
          };
        }(), (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "Expression", "PrivateName"))
      },
      value: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      definite: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      typeAnnotation: {
        validate: (0, s.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
        optional: !0
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      },
      readonly: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      declare: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      variance: {
        validate: (0, s.assertNodeType)("Variance"),
        optional: !0
      }
    })
  }), a("ClassPrivateProperty", {
    visitor: ["key", "value", "decorators", "typeAnnotation"],
    builder: ["key", "value", "decorators", "static"],
    aliases: ["Property", "Private"],
    fields: {
      key: {
        validate: (0, s.assertNodeType)("PrivateName")
      },
      value: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      typeAnnotation: {
        validate: (0, s.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
        optional: !0
      },
      decorators: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Decorator"))),
        optional: !0
      },
      static: {
        validate: (0, s.assertValueType)("boolean"),
        default: !1
      },
      readonly: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      definite: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      variance: {
        validate: (0, s.assertNodeType)("Variance"),
        optional: !0
      }
    }
  }), a("ClassPrivateMethod", {
    builder: ["kind", "key", "params", "body", "static"],
    visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"],
    aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method", "Private"],
    fields: Object.assign({}, h(), l(), {
      kind: {
        validate: (0, s.assertOneOf)("get", "set", "method"),
        default: "method"
      },
      key: {
        validate: (0, s.assertNodeType)("PrivateName")
      },
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      }
    })
  }), a("PrivateName", {
    visitor: ["id"],
    aliases: ["Private"],
    fields: {
      id: {
        validate: (0, s.assertNodeType)("Identifier")
      }
    }
  }), a("StaticBlock", {
    visitor: ["body"],
    fields: {
      body: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Statement")))
      }
    },
    aliases: ["Scopable", "BlockParent", "FunctionParent"]
  }), Qs;
}
var _z = {}, Iz;
function Rrt() {
  if (Iz)
    return _z;
  Iz = 1;
  var e = Kh();
  const t = (0, e.defineAliasedType)("Flow"), r = (i) => {
    const n = i === "DeclareClass";
    t(i, {
      builder: ["id", "typeParameters", "extends", "body"],
      visitor: ["id", "typeParameters", "extends", ...n ? ["mixins", "implements"] : [], "body"],
      aliases: ["FlowDeclaration", "Statement", "Declaration"],
      fields: Object.assign({
        id: (0, e.validateType)("Identifier"),
        typeParameters: (0, e.validateOptionalType)("TypeParameterDeclaration"),
        extends: (0, e.validateOptional)((0, e.arrayOfType)("InterfaceExtends"))
      }, n ? {
        mixins: (0, e.validateOptional)((0, e.arrayOfType)("InterfaceExtends")),
        implements: (0, e.validateOptional)((0, e.arrayOfType)("ClassImplements"))
      } : {}, {
        body: (0, e.validateType)("ObjectTypeAnnotation")
      })
    });
  };
  return t("AnyTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("ArrayTypeAnnotation", {
    visitor: ["elementType"],
    aliases: ["FlowType"],
    fields: {
      elementType: (0, e.validateType)("FlowType")
    }
  }), t("BooleanTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("BooleanLiteralTypeAnnotation", {
    builder: ["value"],
    aliases: ["FlowType"],
    fields: {
      value: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("NullLiteralTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("ClassImplements", {
    visitor: ["id", "typeParameters"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      typeParameters: (0, e.validateOptionalType)("TypeParameterInstantiation")
    }
  }), r("DeclareClass"), t("DeclareFunction", {
    visitor: ["id"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      predicate: (0, e.validateOptionalType)("DeclaredPredicate")
    }
  }), r("DeclareInterface"), t("DeclareModule", {
    builder: ["id", "body", "kind"],
    visitor: ["id", "body"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, e.validateType)(["Identifier", "StringLiteral"]),
      body: (0, e.validateType)("BlockStatement"),
      kind: (0, e.validateOptional)((0, e.assertOneOf)("CommonJS", "ES"))
    }
  }), t("DeclareModuleExports", {
    visitor: ["typeAnnotation"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      typeAnnotation: (0, e.validateType)("TypeAnnotation")
    }
  }), t("DeclareTypeAlias", {
    visitor: ["id", "typeParameters", "right"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      typeParameters: (0, e.validateOptionalType)("TypeParameterDeclaration"),
      right: (0, e.validateType)("FlowType")
    }
  }), t("DeclareOpaqueType", {
    visitor: ["id", "typeParameters", "supertype"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      typeParameters: (0, e.validateOptionalType)("TypeParameterDeclaration"),
      supertype: (0, e.validateOptionalType)("FlowType"),
      impltype: (0, e.validateOptionalType)("FlowType")
    }
  }), t("DeclareVariable", {
    visitor: ["id"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, e.validateType)("Identifier")
    }
  }), t("DeclareExportDeclaration", {
    visitor: ["declaration", "specifiers", "source"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      declaration: (0, e.validateOptionalType)("Flow"),
      specifiers: (0, e.validateOptional)((0, e.arrayOfType)(["ExportSpecifier", "ExportNamespaceSpecifier"])),
      source: (0, e.validateOptionalType)("StringLiteral"),
      default: (0, e.validateOptional)((0, e.assertValueType)("boolean"))
    }
  }), t("DeclareExportAllDeclaration", {
    visitor: ["source"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      source: (0, e.validateType)("StringLiteral"),
      exportKind: (0, e.validateOptional)((0, e.assertOneOf)("type", "value"))
    }
  }), t("DeclaredPredicate", {
    visitor: ["value"],
    aliases: ["FlowPredicate"],
    fields: {
      value: (0, e.validateType)("Flow")
    }
  }), t("ExistsTypeAnnotation", {
    aliases: ["FlowType"]
  }), t("FunctionTypeAnnotation", {
    visitor: ["typeParameters", "params", "rest", "returnType"],
    aliases: ["FlowType"],
    fields: {
      typeParameters: (0, e.validateOptionalType)("TypeParameterDeclaration"),
      params: (0, e.validate)((0, e.arrayOfType)("FunctionTypeParam")),
      rest: (0, e.validateOptionalType)("FunctionTypeParam"),
      this: (0, e.validateOptionalType)("FunctionTypeParam"),
      returnType: (0, e.validateType)("FlowType")
    }
  }), t("FunctionTypeParam", {
    visitor: ["name", "typeAnnotation"],
    fields: {
      name: (0, e.validateOptionalType)("Identifier"),
      typeAnnotation: (0, e.validateType)("FlowType"),
      optional: (0, e.validateOptional)((0, e.assertValueType)("boolean"))
    }
  }), t("GenericTypeAnnotation", {
    visitor: ["id", "typeParameters"],
    aliases: ["FlowType"],
    fields: {
      id: (0, e.validateType)(["Identifier", "QualifiedTypeIdentifier"]),
      typeParameters: (0, e.validateOptionalType)("TypeParameterInstantiation")
    }
  }), t("InferredPredicate", {
    aliases: ["FlowPredicate"]
  }), t("InterfaceExtends", {
    visitor: ["id", "typeParameters"],
    fields: {
      id: (0, e.validateType)(["Identifier", "QualifiedTypeIdentifier"]),
      typeParameters: (0, e.validateOptionalType)("TypeParameterInstantiation")
    }
  }), r("InterfaceDeclaration"), t("InterfaceTypeAnnotation", {
    visitor: ["extends", "body"],
    aliases: ["FlowType"],
    fields: {
      extends: (0, e.validateOptional)((0, e.arrayOfType)("InterfaceExtends")),
      body: (0, e.validateType)("ObjectTypeAnnotation")
    }
  }), t("IntersectionTypeAnnotation", {
    visitor: ["types"],
    aliases: ["FlowType"],
    fields: {
      types: (0, e.validate)((0, e.arrayOfType)("FlowType"))
    }
  }), t("MixedTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("EmptyTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("NullableTypeAnnotation", {
    visitor: ["typeAnnotation"],
    aliases: ["FlowType"],
    fields: {
      typeAnnotation: (0, e.validateType)("FlowType")
    }
  }), t("NumberLiteralTypeAnnotation", {
    builder: ["value"],
    aliases: ["FlowType"],
    fields: {
      value: (0, e.validate)((0, e.assertValueType)("number"))
    }
  }), t("NumberTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("ObjectTypeAnnotation", {
    visitor: ["properties", "indexers", "callProperties", "internalSlots"],
    aliases: ["FlowType"],
    builder: ["properties", "indexers", "callProperties", "internalSlots", "exact"],
    fields: {
      properties: (0, e.validate)((0, e.arrayOfType)(["ObjectTypeProperty", "ObjectTypeSpreadProperty"])),
      indexers: {
        validate: (0, e.arrayOfType)("ObjectTypeIndexer"),
        optional: !0,
        default: []
      },
      callProperties: {
        validate: (0, e.arrayOfType)("ObjectTypeCallProperty"),
        optional: !0,
        default: []
      },
      internalSlots: {
        validate: (0, e.arrayOfType)("ObjectTypeInternalSlot"),
        optional: !0,
        default: []
      },
      exact: {
        validate: (0, e.assertValueType)("boolean"),
        default: !1
      },
      inexact: (0, e.validateOptional)((0, e.assertValueType)("boolean"))
    }
  }), t("ObjectTypeInternalSlot", {
    visitor: ["id", "value", "optional", "static", "method"],
    aliases: ["UserWhitespacable"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      value: (0, e.validateType)("FlowType"),
      optional: (0, e.validate)((0, e.assertValueType)("boolean")),
      static: (0, e.validate)((0, e.assertValueType)("boolean")),
      method: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("ObjectTypeCallProperty", {
    visitor: ["value"],
    aliases: ["UserWhitespacable"],
    fields: {
      value: (0, e.validateType)("FlowType"),
      static: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("ObjectTypeIndexer", {
    visitor: ["id", "key", "value", "variance"],
    aliases: ["UserWhitespacable"],
    fields: {
      id: (0, e.validateOptionalType)("Identifier"),
      key: (0, e.validateType)("FlowType"),
      value: (0, e.validateType)("FlowType"),
      static: (0, e.validate)((0, e.assertValueType)("boolean")),
      variance: (0, e.validateOptionalType)("Variance")
    }
  }), t("ObjectTypeProperty", {
    visitor: ["key", "value", "variance"],
    aliases: ["UserWhitespacable"],
    fields: {
      key: (0, e.validateType)(["Identifier", "StringLiteral"]),
      value: (0, e.validateType)("FlowType"),
      kind: (0, e.validate)((0, e.assertOneOf)("init", "get", "set")),
      static: (0, e.validate)((0, e.assertValueType)("boolean")),
      proto: (0, e.validate)((0, e.assertValueType)("boolean")),
      optional: (0, e.validate)((0, e.assertValueType)("boolean")),
      variance: (0, e.validateOptionalType)("Variance"),
      method: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("ObjectTypeSpreadProperty", {
    visitor: ["argument"],
    aliases: ["UserWhitespacable"],
    fields: {
      argument: (0, e.validateType)("FlowType")
    }
  }), t("OpaqueType", {
    visitor: ["id", "typeParameters", "supertype", "impltype"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      typeParameters: (0, e.validateOptionalType)("TypeParameterDeclaration"),
      supertype: (0, e.validateOptionalType)("FlowType"),
      impltype: (0, e.validateType)("FlowType")
    }
  }), t("QualifiedTypeIdentifier", {
    visitor: ["id", "qualification"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      qualification: (0, e.validateType)(["Identifier", "QualifiedTypeIdentifier"])
    }
  }), t("StringLiteralTypeAnnotation", {
    builder: ["value"],
    aliases: ["FlowType"],
    fields: {
      value: (0, e.validate)((0, e.assertValueType)("string"))
    }
  }), t("StringTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("SymbolTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("ThisTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("TupleTypeAnnotation", {
    visitor: ["types"],
    aliases: ["FlowType"],
    fields: {
      types: (0, e.validate)((0, e.arrayOfType)("FlowType"))
    }
  }), t("TypeofTypeAnnotation", {
    visitor: ["argument"],
    aliases: ["FlowType"],
    fields: {
      argument: (0, e.validateType)("FlowType")
    }
  }), t("TypeAlias", {
    visitor: ["id", "typeParameters", "right"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      typeParameters: (0, e.validateOptionalType)("TypeParameterDeclaration"),
      right: (0, e.validateType)("FlowType")
    }
  }), t("TypeAnnotation", {
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, e.validateType)("FlowType")
    }
  }), t("TypeCastExpression", {
    visitor: ["expression", "typeAnnotation"],
    aliases: ["ExpressionWrapper", "Expression"],
    fields: {
      expression: (0, e.validateType)("Expression"),
      typeAnnotation: (0, e.validateType)("TypeAnnotation")
    }
  }), t("TypeParameter", {
    visitor: ["bound", "default", "variance"],
    fields: {
      name: (0, e.validate)((0, e.assertValueType)("string")),
      bound: (0, e.validateOptionalType)("TypeAnnotation"),
      default: (0, e.validateOptionalType)("FlowType"),
      variance: (0, e.validateOptionalType)("Variance")
    }
  }), t("TypeParameterDeclaration", {
    visitor: ["params"],
    fields: {
      params: (0, e.validate)((0, e.arrayOfType)("TypeParameter"))
    }
  }), t("TypeParameterInstantiation", {
    visitor: ["params"],
    fields: {
      params: (0, e.validate)((0, e.arrayOfType)("FlowType"))
    }
  }), t("UnionTypeAnnotation", {
    visitor: ["types"],
    aliases: ["FlowType"],
    fields: {
      types: (0, e.validate)((0, e.arrayOfType)("FlowType"))
    }
  }), t("Variance", {
    builder: ["kind"],
    fields: {
      kind: (0, e.validate)((0, e.assertOneOf)("minus", "plus"))
    }
  }), t("VoidTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), t("EnumDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "body"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      body: (0, e.validateType)(["EnumBooleanBody", "EnumNumberBody", "EnumStringBody", "EnumSymbolBody"])
    }
  }), t("EnumBooleanBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      explicitType: (0, e.validate)((0, e.assertValueType)("boolean")),
      members: (0, e.validateArrayOfType)("EnumBooleanMember"),
      hasUnknownMembers: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("EnumNumberBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      explicitType: (0, e.validate)((0, e.assertValueType)("boolean")),
      members: (0, e.validateArrayOfType)("EnumNumberMember"),
      hasUnknownMembers: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("EnumStringBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      explicitType: (0, e.validate)((0, e.assertValueType)("boolean")),
      members: (0, e.validateArrayOfType)(["EnumStringMember", "EnumDefaultedMember"]),
      hasUnknownMembers: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("EnumSymbolBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      members: (0, e.validateArrayOfType)("EnumDefaultedMember"),
      hasUnknownMembers: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), t("EnumBooleanMember", {
    aliases: ["EnumMember"],
    visitor: ["id"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      init: (0, e.validateType)("BooleanLiteral")
    }
  }), t("EnumNumberMember", {
    aliases: ["EnumMember"],
    visitor: ["id", "init"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      init: (0, e.validateType)("NumericLiteral")
    }
  }), t("EnumStringMember", {
    aliases: ["EnumMember"],
    visitor: ["id", "init"],
    fields: {
      id: (0, e.validateType)("Identifier"),
      init: (0, e.validateType)("StringLiteral")
    }
  }), t("EnumDefaultedMember", {
    aliases: ["EnumMember"],
    visitor: ["id"],
    fields: {
      id: (0, e.validateType)("Identifier")
    }
  }), t("IndexedAccessType", {
    visitor: ["objectType", "indexType"],
    aliases: ["FlowType"],
    fields: {
      objectType: (0, e.validateType)("FlowType"),
      indexType: (0, e.validateType)("FlowType")
    }
  }), t("OptionalIndexedAccessType", {
    visitor: ["objectType", "indexType"],
    aliases: ["FlowType"],
    fields: {
      objectType: (0, e.validateType)("FlowType"),
      indexType: (0, e.validateType)("FlowType"),
      optional: (0, e.validate)((0, e.assertValueType)("boolean"))
    }
  }), _z;
}
var kz = {}, Oz;
function Brt() {
  if (Oz)
    return kz;
  Oz = 1;
  var e = Kh();
  const t = (0, e.defineAliasedType)("JSX");
  return t("JSXAttribute", {
    visitor: ["name", "value"],
    aliases: ["Immutable"],
    fields: {
      name: {
        validate: (0, e.assertNodeType)("JSXIdentifier", "JSXNamespacedName")
      },
      value: {
        optional: !0,
        validate: (0, e.assertNodeType)("JSXElement", "JSXFragment", "StringLiteral", "JSXExpressionContainer")
      }
    }
  }), t("JSXClosingElement", {
    visitor: ["name"],
    aliases: ["Immutable"],
    fields: {
      name: {
        validate: (0, e.assertNodeType)("JSXIdentifier", "JSXMemberExpression", "JSXNamespacedName")
      }
    }
  }), t("JSXElement", {
    builder: ["openingElement", "closingElement", "children", "selfClosing"],
    visitor: ["openingElement", "children", "closingElement"],
    aliases: ["Immutable", "Expression"],
    fields: Object.assign({
      openingElement: {
        validate: (0, e.assertNodeType)("JSXOpeningElement")
      },
      closingElement: {
        optional: !0,
        validate: (0, e.assertNodeType)("JSXClosingElement")
      },
      children: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("JSXText", "JSXExpressionContainer", "JSXSpreadChild", "JSXElement", "JSXFragment")))
      }
    }, {
      selfClosing: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      }
    })
  }), t("JSXEmptyExpression", {}), t("JSXExpressionContainer", {
    visitor: ["expression"],
    aliases: ["Immutable"],
    fields: {
      expression: {
        validate: (0, e.assertNodeType)("Expression", "JSXEmptyExpression")
      }
    }
  }), t("JSXSpreadChild", {
    visitor: ["expression"],
    aliases: ["Immutable"],
    fields: {
      expression: {
        validate: (0, e.assertNodeType)("Expression")
      }
    }
  }), t("JSXIdentifier", {
    builder: ["name"],
    fields: {
      name: {
        validate: (0, e.assertValueType)("string")
      }
    }
  }), t("JSXMemberExpression", {
    visitor: ["object", "property"],
    fields: {
      object: {
        validate: (0, e.assertNodeType)("JSXMemberExpression", "JSXIdentifier")
      },
      property: {
        validate: (0, e.assertNodeType)("JSXIdentifier")
      }
    }
  }), t("JSXNamespacedName", {
    visitor: ["namespace", "name"],
    fields: {
      namespace: {
        validate: (0, e.assertNodeType)("JSXIdentifier")
      },
      name: {
        validate: (0, e.assertNodeType)("JSXIdentifier")
      }
    }
  }), t("JSXOpeningElement", {
    builder: ["name", "attributes", "selfClosing"],
    visitor: ["name", "attributes"],
    aliases: ["Immutable"],
    fields: {
      name: {
        validate: (0, e.assertNodeType)("JSXIdentifier", "JSXMemberExpression", "JSXNamespacedName")
      },
      selfClosing: {
        default: !1
      },
      attributes: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("JSXAttribute", "JSXSpreadAttribute")))
      },
      typeParameters: {
        validate: (0, e.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      }
    }
  }), t("JSXSpreadAttribute", {
    visitor: ["argument"],
    fields: {
      argument: {
        validate: (0, e.assertNodeType)("Expression")
      }
    }
  }), t("JSXText", {
    aliases: ["Immutable"],
    builder: ["value"],
    fields: {
      value: {
        validate: (0, e.assertValueType)("string")
      }
    }
  }), t("JSXFragment", {
    builder: ["openingFragment", "closingFragment", "children"],
    visitor: ["openingFragment", "children", "closingFragment"],
    aliases: ["Immutable", "Expression"],
    fields: {
      openingFragment: {
        validate: (0, e.assertNodeType)("JSXOpeningFragment")
      },
      closingFragment: {
        validate: (0, e.assertNodeType)("JSXClosingFragment")
      },
      children: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("JSXText", "JSXExpressionContainer", "JSXSpreadChild", "JSXElement", "JSXFragment")))
      }
    }
  }), t("JSXOpeningFragment", {
    aliases: ["Immutable"]
  }), t("JSXClosingFragment", {
    aliases: ["Immutable"]
  }), kz;
}
var Nz = {}, Np = {}, Dz;
function Lhe() {
  if (Dz)
    return Np;
  Dz = 1, Object.defineProperty(Np, "__esModule", {
    value: !0
  }), Np.PLACEHOLDERS_FLIPPED_ALIAS = Np.PLACEHOLDERS_ALIAS = Np.PLACEHOLDERS = void 0;
  var e = Kh();
  const t = ["Identifier", "StringLiteral", "Expression", "Statement", "Declaration", "BlockStatement", "ClassBody", "Pattern"];
  Np.PLACEHOLDERS = t;
  const r = {
    Declaration: ["Statement"],
    Pattern: ["PatternLike", "LVal"]
  };
  Np.PLACEHOLDERS_ALIAS = r;
  for (const n of t) {
    const s = e.ALIAS_KEYS[n];
    s != null && s.length && (r[n] = s);
  }
  const i = {};
  return Np.PLACEHOLDERS_FLIPPED_ALIAS = i, Object.keys(r).forEach((n) => {
    r[n].forEach((s) => {
      Object.hasOwnProperty.call(i, s) || (i[s] = []), i[s].push(n);
    });
  }), Np;
}
var Lz;
function Frt() {
  if (Lz)
    return Nz;
  Lz = 1;
  var e = Kh(), t = Lhe();
  const r = (0, e.defineAliasedType)("Miscellaneous");
  return r("Noop", {
    visitor: []
  }), r("Placeholder", {
    visitor: [],
    builder: ["expectedNode", "name"],
    fields: {
      name: {
        validate: (0, e.assertNodeType)("Identifier")
      },
      expectedNode: {
        validate: (0, e.assertOneOf)(...t.PLACEHOLDERS)
      }
    }
  }), r("V8IntrinsicIdentifier", {
    builder: ["name"],
    fields: {
      name: {
        validate: (0, e.assertValueType)("string")
      }
    }
  }), Nz;
}
var Mz = {}, Rz;
function jrt() {
  if (Rz)
    return Mz;
  Rz = 1;
  var e = Kh();
  return (0, e.default)("ArgumentPlaceholder", {}), (0, e.default)("BindExpression", {
    visitor: ["object", "callee"],
    aliases: ["Expression"],
    fields: process.env.BABEL_TYPES_8_BREAKING ? {
      object: {
        validate: (0, e.assertNodeType)("Expression")
      },
      callee: {
        validate: (0, e.assertNodeType)("Expression")
      }
    } : {
      object: {
        validate: Object.assign(() => {
        }, {
          oneOfNodeTypes: ["Expression"]
        })
      },
      callee: {
        validate: Object.assign(() => {
        }, {
          oneOfNodeTypes: ["Expression"]
        })
      }
    }
  }), (0, e.default)("ImportAttribute", {
    visitor: ["key", "value"],
    fields: {
      key: {
        validate: (0, e.assertNodeType)("Identifier", "StringLiteral")
      },
      value: {
        validate: (0, e.assertNodeType)("StringLiteral")
      }
    }
  }), (0, e.default)("Decorator", {
    visitor: ["expression"],
    fields: {
      expression: {
        validate: (0, e.assertNodeType)("Expression")
      }
    }
  }), (0, e.default)("DoExpression", {
    visitor: ["body"],
    builder: ["body", "async"],
    aliases: ["Expression"],
    fields: {
      body: {
        validate: (0, e.assertNodeType)("BlockStatement")
      },
      async: {
        validate: (0, e.assertValueType)("boolean"),
        default: !1
      }
    }
  }), (0, e.default)("ExportDefaultSpecifier", {
    visitor: ["exported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      exported: {
        validate: (0, e.assertNodeType)("Identifier")
      }
    }
  }), (0, e.default)("RecordExpression", {
    visitor: ["properties"],
    aliases: ["Expression"],
    fields: {
      properties: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("ObjectProperty", "SpreadElement")))
      }
    }
  }), (0, e.default)("TupleExpression", {
    fields: {
      elements: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("Expression", "SpreadElement"))),
        default: []
      }
    },
    visitor: ["elements"],
    aliases: ["Expression"]
  }), (0, e.default)("DecimalLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, e.assertValueType)("string")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), (0, e.default)("ModuleExpression", {
    visitor: ["body"],
    fields: {
      body: {
        validate: (0, e.assertNodeType)("Program")
      }
    },
    aliases: ["Expression"]
  }), (0, e.default)("TopicReference", {
    aliases: ["Expression"]
  }), (0, e.default)("PipelineTopicExpression", {
    builder: ["expression"],
    visitor: ["expression"],
    fields: {
      expression: {
        validate: (0, e.assertNodeType)("Expression")
      }
    },
    aliases: ["Expression"]
  }), (0, e.default)("PipelineBareFunction", {
    builder: ["callee"],
    visitor: ["callee"],
    fields: {
      callee: {
        validate: (0, e.assertNodeType)("Expression")
      }
    },
    aliases: ["Expression"]
  }), (0, e.default)("PipelinePrimaryTopicReference", {
    aliases: ["Expression"]
  }), Mz;
}
var Bz = {}, Fz;
function $rt() {
  if (Fz)
    return Bz;
  Fz = 1;
  var e = Kh(), t = Dhe(), r = GT();
  const i = (0, e.defineAliasedType)("TypeScript"), n = (0, e.assertValueType)("boolean"), s = () => ({
    returnType: {
      validate: (0, e.assertNodeType)("TSTypeAnnotation", "Noop"),
      optional: !0
    },
    typeParameters: {
      validate: (0, e.assertNodeType)("TSTypeParameterDeclaration", "Noop"),
      optional: !0
    }
  });
  i("TSParameterProperty", {
    aliases: ["LVal"],
    visitor: ["parameter"],
    fields: {
      accessibility: {
        validate: (0, e.assertOneOf)("public", "private", "protected"),
        optional: !0
      },
      readonly: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      },
      parameter: {
        validate: (0, e.assertNodeType)("Identifier", "AssignmentPattern")
      },
      override: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      },
      decorators: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("Decorator"))),
        optional: !0
      }
    }
  }), i("TSDeclareFunction", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "typeParameters", "params", "returnType"],
    fields: Object.assign({}, (0, t.functionDeclarationCommon)(), s())
  }), i("TSDeclareMethod", {
    visitor: ["decorators", "key", "typeParameters", "params", "returnType"],
    fields: Object.assign({}, (0, t.classMethodOrDeclareMethodCommon)(), s())
  }), i("TSQualifiedName", {
    aliases: ["TSEntityName"],
    visitor: ["left", "right"],
    fields: {
      left: (0, e.validateType)("TSEntityName"),
      right: (0, e.validateType)("Identifier")
    }
  });
  const a = () => ({
    typeParameters: (0, e.validateOptionalType)("TSTypeParameterDeclaration"),
    parameters: (0, e.validateArrayOfType)(["Identifier", "RestElement"]),
    typeAnnotation: (0, e.validateOptionalType)("TSTypeAnnotation")
  }), o = {
    aliases: ["TSTypeElement"],
    visitor: ["typeParameters", "parameters", "typeAnnotation"],
    fields: a()
  };
  i("TSCallSignatureDeclaration", o), i("TSConstructSignatureDeclaration", o);
  const l = () => ({
    key: (0, e.validateType)("Expression"),
    computed: {
      default: !1
    },
    optional: (0, e.validateOptional)(n)
  });
  i("TSPropertySignature", {
    aliases: ["TSTypeElement"],
    visitor: ["key", "typeAnnotation", "initializer"],
    fields: Object.assign({}, l(), {
      readonly: (0, e.validateOptional)(n),
      typeAnnotation: (0, e.validateOptionalType)("TSTypeAnnotation"),
      initializer: (0, e.validateOptionalType)("Expression"),
      kind: {
        validate: (0, e.assertOneOf)("get", "set")
      }
    })
  }), i("TSMethodSignature", {
    aliases: ["TSTypeElement"],
    visitor: ["key", "typeParameters", "parameters", "typeAnnotation"],
    fields: Object.assign({}, a(), l(), {
      kind: {
        validate: (0, e.assertOneOf)("method", "get", "set")
      }
    })
  }), i("TSIndexSignature", {
    aliases: ["TSTypeElement"],
    visitor: ["parameters", "typeAnnotation"],
    fields: {
      readonly: (0, e.validateOptional)(n),
      static: (0, e.validateOptional)(n),
      parameters: (0, e.validateArrayOfType)("Identifier"),
      typeAnnotation: (0, e.validateOptionalType)("TSTypeAnnotation")
    }
  });
  const u = ["TSAnyKeyword", "TSBooleanKeyword", "TSBigIntKeyword", "TSIntrinsicKeyword", "TSNeverKeyword", "TSNullKeyword", "TSNumberKeyword", "TSObjectKeyword", "TSStringKeyword", "TSSymbolKeyword", "TSUndefinedKeyword", "TSUnknownKeyword", "TSVoidKeyword"];
  for (const m of u)
    i(m, {
      aliases: ["TSType", "TSBaseType"],
      visitor: [],
      fields: {}
    });
  i("TSThisType", {
    aliases: ["TSType", "TSBaseType"],
    visitor: [],
    fields: {}
  });
  const c = {
    aliases: ["TSType"],
    visitor: ["typeParameters", "parameters", "typeAnnotation"]
  };
  i("TSFunctionType", Object.assign({}, c, {
    fields: a()
  })), i("TSConstructorType", Object.assign({}, c, {
    fields: Object.assign({}, a(), {
      abstract: (0, e.validateOptional)(n)
    })
  })), i("TSTypeReference", {
    aliases: ["TSType"],
    visitor: ["typeName", "typeParameters"],
    fields: {
      typeName: (0, e.validateType)("TSEntityName"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterInstantiation")
    }
  }), i("TSTypePredicate", {
    aliases: ["TSType"],
    visitor: ["parameterName", "typeAnnotation"],
    builder: ["parameterName", "typeAnnotation", "asserts"],
    fields: {
      parameterName: (0, e.validateType)(["Identifier", "TSThisType"]),
      typeAnnotation: (0, e.validateOptionalType)("TSTypeAnnotation"),
      asserts: (0, e.validateOptional)(n)
    }
  }), i("TSTypeQuery", {
    aliases: ["TSType"],
    visitor: ["exprName", "typeParameters"],
    fields: {
      exprName: (0, e.validateType)(["TSEntityName", "TSImportType"]),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterInstantiation")
    }
  }), i("TSTypeLiteral", {
    aliases: ["TSType"],
    visitor: ["members"],
    fields: {
      members: (0, e.validateArrayOfType)("TSTypeElement")
    }
  }), i("TSArrayType", {
    aliases: ["TSType"],
    visitor: ["elementType"],
    fields: {
      elementType: (0, e.validateType)("TSType")
    }
  }), i("TSTupleType", {
    aliases: ["TSType"],
    visitor: ["elementTypes"],
    fields: {
      elementTypes: (0, e.validateArrayOfType)(["TSType", "TSNamedTupleMember"])
    }
  }), i("TSOptionalType", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, e.validateType)("TSType")
    }
  }), i("TSRestType", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, e.validateType)("TSType")
    }
  }), i("TSNamedTupleMember", {
    visitor: ["label", "elementType"],
    builder: ["label", "elementType", "optional"],
    fields: {
      label: (0, e.validateType)("Identifier"),
      optional: {
        validate: n,
        default: !1
      },
      elementType: (0, e.validateType)("TSType")
    }
  });
  const f = {
    aliases: ["TSType"],
    visitor: ["types"],
    fields: {
      types: (0, e.validateArrayOfType)("TSType")
    }
  };
  i("TSUnionType", f), i("TSIntersectionType", f), i("TSConditionalType", {
    aliases: ["TSType"],
    visitor: ["checkType", "extendsType", "trueType", "falseType"],
    fields: {
      checkType: (0, e.validateType)("TSType"),
      extendsType: (0, e.validateType)("TSType"),
      trueType: (0, e.validateType)("TSType"),
      falseType: (0, e.validateType)("TSType")
    }
  }), i("TSInferType", {
    aliases: ["TSType"],
    visitor: ["typeParameter"],
    fields: {
      typeParameter: (0, e.validateType)("TSTypeParameter")
    }
  }), i("TSParenthesizedType", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, e.validateType)("TSType")
    }
  }), i("TSTypeOperator", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      operator: (0, e.validate)((0, e.assertValueType)("string")),
      typeAnnotation: (0, e.validateType)("TSType")
    }
  }), i("TSIndexedAccessType", {
    aliases: ["TSType"],
    visitor: ["objectType", "indexType"],
    fields: {
      objectType: (0, e.validateType)("TSType"),
      indexType: (0, e.validateType)("TSType")
    }
  }), i("TSMappedType", {
    aliases: ["TSType"],
    visitor: ["typeParameter", "typeAnnotation", "nameType"],
    fields: {
      readonly: (0, e.validateOptional)((0, e.assertOneOf)(!0, !1, "+", "-")),
      typeParameter: (0, e.validateType)("TSTypeParameter"),
      optional: (0, e.validateOptional)((0, e.assertOneOf)(!0, !1, "+", "-")),
      typeAnnotation: (0, e.validateOptionalType)("TSType"),
      nameType: (0, e.validateOptionalType)("TSType")
    }
  }), i("TSLiteralType", {
    aliases: ["TSType", "TSBaseType"],
    visitor: ["literal"],
    fields: {
      literal: {
        validate: function() {
          const m = (0, e.assertNodeType)("NumericLiteral", "BigIntLiteral"), g = (0, e.assertOneOf)("-"), y = (0, e.assertNodeType)("NumericLiteral", "StringLiteral", "BooleanLiteral", "BigIntLiteral", "TemplateLiteral");
          function v(T, S, P) {
            (0, r.default)("UnaryExpression", P) ? (g(P, "operator", P.operator), m(P, "argument", P.argument)) : y(T, S, P);
          }
          return v.oneOfNodeTypes = ["NumericLiteral", "StringLiteral", "BooleanLiteral", "BigIntLiteral", "TemplateLiteral", "UnaryExpression"], v;
        }()
      }
    }
  }), i("TSExpressionWithTypeArguments", {
    aliases: ["TSType"],
    visitor: ["expression", "typeParameters"],
    fields: {
      expression: (0, e.validateType)("TSEntityName"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterInstantiation")
    }
  }), i("TSInterfaceDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "typeParameters", "extends", "body"],
    fields: {
      declare: (0, e.validateOptional)(n),
      id: (0, e.validateType)("Identifier"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterDeclaration"),
      extends: (0, e.validateOptional)((0, e.arrayOfType)("TSExpressionWithTypeArguments")),
      body: (0, e.validateType)("TSInterfaceBody")
    }
  }), i("TSInterfaceBody", {
    visitor: ["body"],
    fields: {
      body: (0, e.validateArrayOfType)("TSTypeElement")
    }
  }), i("TSTypeAliasDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "typeParameters", "typeAnnotation"],
    fields: {
      declare: (0, e.validateOptional)(n),
      id: (0, e.validateType)("Identifier"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterDeclaration"),
      typeAnnotation: (0, e.validateType)("TSType")
    }
  }), i("TSInstantiationExpression", {
    aliases: ["Expression"],
    visitor: ["expression", "typeParameters"],
    fields: {
      expression: (0, e.validateType)("Expression"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterInstantiation")
    }
  });
  const h = {
    aliases: ["Expression", "LVal", "PatternLike"],
    visitor: ["expression", "typeAnnotation"],
    fields: {
      expression: (0, e.validateType)("Expression"),
      typeAnnotation: (0, e.validateType)("TSType")
    }
  };
  return i("TSAsExpression", h), i("TSSatisfiesExpression", h), i("TSTypeAssertion", {
    aliases: ["Expression", "LVal", "PatternLike"],
    visitor: ["typeAnnotation", "expression"],
    fields: {
      typeAnnotation: (0, e.validateType)("TSType"),
      expression: (0, e.validateType)("Expression")
    }
  }), i("TSEnumDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "members"],
    fields: {
      declare: (0, e.validateOptional)(n),
      const: (0, e.validateOptional)(n),
      id: (0, e.validateType)("Identifier"),
      members: (0, e.validateArrayOfType)("TSEnumMember"),
      initializer: (0, e.validateOptionalType)("Expression")
    }
  }), i("TSEnumMember", {
    visitor: ["id", "initializer"],
    fields: {
      id: (0, e.validateType)(["Identifier", "StringLiteral"]),
      initializer: (0, e.validateOptionalType)("Expression")
    }
  }), i("TSModuleDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "body"],
    fields: {
      declare: (0, e.validateOptional)(n),
      global: (0, e.validateOptional)(n),
      id: (0, e.validateType)(["Identifier", "StringLiteral"]),
      body: (0, e.validateType)(["TSModuleBlock", "TSModuleDeclaration"])
    }
  }), i("TSModuleBlock", {
    aliases: ["Scopable", "Block", "BlockParent", "FunctionParent"],
    visitor: ["body"],
    fields: {
      body: (0, e.validateArrayOfType)("Statement")
    }
  }), i("TSImportType", {
    aliases: ["TSType"],
    visitor: ["argument", "qualifier", "typeParameters"],
    fields: {
      argument: (0, e.validateType)("StringLiteral"),
      qualifier: (0, e.validateOptionalType)("TSEntityName"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterInstantiation")
    }
  }), i("TSImportEqualsDeclaration", {
    aliases: ["Statement"],
    visitor: ["id", "moduleReference"],
    fields: {
      isExport: (0, e.validate)(n),
      id: (0, e.validateType)("Identifier"),
      moduleReference: (0, e.validateType)(["TSEntityName", "TSExternalModuleReference"]),
      importKind: {
        validate: (0, e.assertOneOf)("type", "value"),
        optional: !0
      }
    }
  }), i("TSExternalModuleReference", {
    visitor: ["expression"],
    fields: {
      expression: (0, e.validateType)("StringLiteral")
    }
  }), i("TSNonNullExpression", {
    aliases: ["Expression", "LVal", "PatternLike"],
    visitor: ["expression"],
    fields: {
      expression: (0, e.validateType)("Expression")
    }
  }), i("TSExportAssignment", {
    aliases: ["Statement"],
    visitor: ["expression"],
    fields: {
      expression: (0, e.validateType)("Expression")
    }
  }), i("TSNamespaceExportDeclaration", {
    aliases: ["Statement"],
    visitor: ["id"],
    fields: {
      id: (0, e.validateType)("Identifier")
    }
  }), i("TSTypeAnnotation", {
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: {
        validate: (0, e.assertNodeType)("TSType")
      }
    }
  }), i("TSTypeParameterInstantiation", {
    visitor: ["params"],
    fields: {
      params: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("TSType")))
      }
    }
  }), i("TSTypeParameterDeclaration", {
    visitor: ["params"],
    fields: {
      params: {
        validate: (0, e.chain)((0, e.assertValueType)("array"), (0, e.assertEach)((0, e.assertNodeType)("TSTypeParameter")))
      }
    }
  }), i("TSTypeParameter", {
    builder: ["constraint", "default", "name"],
    visitor: ["constraint", "default"],
    fields: {
      name: {
        validate: (0, e.assertValueType)("string")
      },
      in: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      },
      out: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      },
      const: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      },
      constraint: {
        validate: (0, e.assertNodeType)("TSType"),
        optional: !0
      },
      default: {
        validate: (0, e.assertNodeType)("TSType"),
        optional: !0
      }
    }
  }), Bz;
}
var Eb = {}, jz;
function Urt() {
  if (jz)
    return Eb;
  jz = 1, Object.defineProperty(Eb, "__esModule", {
    value: !0
  }), Eb.DEPRECATED_ALIASES = void 0;
  const e = {
    ModuleDeclaration: "ImportOrExportDeclaration"
  };
  return Eb.DEPRECATED_ALIASES = e, Eb;
}
var $z;
function Wc() {
  return $z || ($z = 1, function(e) {
    Object.defineProperty(e, "__esModule", {
      value: !0
    }), Object.defineProperty(e, "ALIAS_KEYS", {
      enumerable: !0,
      get: function() {
        return r.ALIAS_KEYS;
      }
    }), Object.defineProperty(e, "BUILDER_KEYS", {
      enumerable: !0,
      get: function() {
        return r.BUILDER_KEYS;
      }
    }), Object.defineProperty(e, "DEPRECATED_ALIASES", {
      enumerable: !0,
      get: function() {
        return n.DEPRECATED_ALIASES;
      }
    }), Object.defineProperty(e, "DEPRECATED_KEYS", {
      enumerable: !0,
      get: function() {
        return r.DEPRECATED_KEYS;
      }
    }), Object.defineProperty(e, "FLIPPED_ALIAS_KEYS", {
      enumerable: !0,
      get: function() {
        return r.FLIPPED_ALIAS_KEYS;
      }
    }), Object.defineProperty(e, "NODE_FIELDS", {
      enumerable: !0,
      get: function() {
        return r.NODE_FIELDS;
      }
    }), Object.defineProperty(e, "NODE_PARENT_VALIDATIONS", {
      enumerable: !0,
      get: function() {
        return r.NODE_PARENT_VALIDATIONS;
      }
    }), Object.defineProperty(e, "PLACEHOLDERS", {
      enumerable: !0,
      get: function() {
        return i.PLACEHOLDERS;
      }
    }), Object.defineProperty(e, "PLACEHOLDERS_ALIAS", {
      enumerable: !0,
      get: function() {
        return i.PLACEHOLDERS_ALIAS;
      }
    }), Object.defineProperty(e, "PLACEHOLDERS_FLIPPED_ALIAS", {
      enumerable: !0,
      get: function() {
        return i.PLACEHOLDERS_FLIPPED_ALIAS;
      }
    }), e.TYPES = void 0, Object.defineProperty(e, "VISITOR_KEYS", {
      enumerable: !0,
      get: function() {
        return r.VISITOR_KEYS;
      }
    });
    var t = Z$;
    Dhe(), Rrt(), Brt(), Frt(), jrt(), $rt();
    var r = Kh(), i = Lhe(), n = Urt();
    Object.keys(n.DEPRECATED_ALIASES).forEach((a) => {
      r.FLIPPED_ALIAS_KEYS[a] = r.FLIPPED_ALIAS_KEYS[n.DEPRECATED_ALIASES[a]];
    }), t(r.VISITOR_KEYS), t(r.ALIAS_KEYS), t(r.FLIPPED_ALIAS_KEYS), t(r.NODE_FIELDS), t(r.BUILDER_KEYS), t(r.DEPRECATED_KEYS), t(i.PLACEHOLDERS_ALIAS), t(i.PLACEHOLDERS_FLIPPED_ALIAS);
    const s = [].concat(Object.keys(r.VISITOR_KEYS), Object.keys(r.FLIPPED_ALIAS_KEYS), Object.keys(r.DEPRECATED_KEYS));
    e.TYPES = s;
  }(mR)), mR;
}
var Uz;
function T9() {
  if (Uz)
    return Lm;
  Uz = 1, Object.defineProperty(Lm, "__esModule", {
    value: !0
  }), Lm.default = t, Lm.validateChild = i, Lm.validateField = r;
  var e = Wc();
  function t(n, s, a) {
    if (!n)
      return;
    const o = e.NODE_FIELDS[n.type];
    if (!o)
      return;
    const l = o[s];
    r(n, s, a, l), i(n, s, a);
  }
  function r(n, s, a, o) {
    o != null && o.validate && (o.optional && a == null || o.validate(n, s, a));
  }
  function i(n, s, a) {
    if (a == null)
      return;
    const o = e.NODE_PARENT_VALIDATIONS[a.type];
    o && o(n, s, a);
  }
  return Lm;
}
var qz;
function qrt() {
  if (qz)
    return Kx;
  qz = 1, Object.defineProperty(Kx, "__esModule", {
    value: !0
  }), Kx.default = r;
  var e = T9(), t = Ui();
  function r(i) {
    const n = t.BUILDER_KEYS[i.type];
    for (const s of n)
      (0, e.default)(i, s, i[s]);
    return i;
  }
  return Kx;
}
var Vz;
function _o() {
  if (Vz)
    return Ie;
  Vz = 1, Object.defineProperty(Ie, "__esModule", {
    value: !0
  }), Ie.anyTypeAnnotation = _n, Ie.argumentPlaceholder = Go, Ie.arrayExpression = r, Ie.arrayPattern = st, Ie.arrayTypeAnnotation = en, Ie.arrowFunctionExpression = Se, Ie.assignmentExpression = i, Ie.assignmentPattern = Xe, Ie.awaitExpression = ft, Ie.bigIntLiteral = Rt, Ie.binaryExpression = n, Ie.bindExpression = Ca, Ie.blockStatement = l, Ie.booleanLiteral = q, Ie.booleanLiteralTypeAnnotation = No, Ie.booleanTypeAnnotation = bi, Ie.breakStatement = u, Ie.callExpression = c, Ie.catchClause = f, Ie.classAccessorProperty = kr, Ie.classBody = oe, Ie.classDeclaration = se, Ie.classExpression = te, Ie.classImplements = ga, Ie.classMethod = $e, Ie.classPrivateMethod = an, Ie.classPrivateProperty = Ai, Ie.classProperty = lr, Ie.conditionalExpression = h, Ie.continueStatement = m, Ie.debuggerStatement = g, Ie.decimalLiteral = _s, Ie.declareClass = As, Ie.declareExportAllDeclaration = Ka, Ie.declareExportDeclaration = Ta, Ie.declareFunction = ba, Ie.declareInterface = Bn, Ie.declareModule = cs, Ie.declareModuleExports = Do, Ie.declareOpaqueType = va, Ie.declareTypeAlias = ps, Ie.declareVariable = Lo, Ie.declaredPredicate = za, Ie.decorator = _u, Ie.directive = a, Ie.directiveLiteral = o, Ie.doExpression = Iu, Ie.doWhileStatement = y, Ie.emptyStatement = v, Ie.emptyTypeAnnotation = iu, Ie.enumBooleanBody = Uo, Ie.enumBooleanMember = wa, Ie.enumDeclaration = yu, Ie.enumDefaultedMember = io, Ie.enumNumberBody = Pa, Ie.enumNumberMember = qo, Ie.enumStringBody = Ws, Ie.enumStringMember = gu, Ie.enumSymbolBody = ro, Ie.existsTypeAnnotation = Ga, Ie.exportAllDeclaration = re, Ie.exportDefaultDeclaration = Te, Ie.exportDefaultSpecifier = ku, Ie.exportNamedDeclaration = ze, Ie.exportNamespaceSpecifier = Ot, Ie.exportSpecifier = Ze, Ie.expressionStatement = T, Ie.file = S, Ie.forInStatement = P, Ie.forOfStatement = pt, Ie.forStatement = x, Ie.functionDeclaration = C, Ie.functionExpression = D, Ie.functionTypeAnnotation = Ya, Ie.functionTypeParam = Us, Ie.genericTypeAnnotation = Sa, Ie.identifier = w, Ie.ifStatement = A, Ie.import = ht, Ie.importAttribute = Yo, Ie.importDeclaration = ut, Ie.importDefaultSpecifier = bt, Ie.importNamespaceSpecifier = vt, Ie.importSpecifier = ge, Ie.indexedAccessType = bu, Ie.inferredPredicate = Mo, Ie.interfaceDeclaration = tu, Ie.interfaceExtends = Cs, Ie.interfaceTypeAnnotation = xa, Ie.interpreterDirective = s, Ie.intersectionTypeAnnotation = Ro, Ie.jSXAttribute = Ie.jsxAttribute = Aa, Ie.jSXClosingElement = Ie.jsxClosingElement = Wo, Ie.jSXClosingFragment = Ie.jsxClosingFragment = Au, Ie.jSXElement = Ie.jsxElement = vu, Ie.jSXEmptyExpression = Ie.jsxEmptyExpression = Tu, Ie.jSXExpressionContainer = Ie.jsxExpressionContainer = no, Ie.jSXFragment = Ie.jsxFragment = Pu, Ie.jSXIdentifier = Ie.jsxIdentifier = Ko, Ie.jSXMemberExpression = Ie.jsxMemberExpression = Su, Ie.jSXNamespacedName = Ie.jsxNamespacedName = xu, Ie.jSXOpeningElement = Ie.jsxOpeningElement = Hs, Ie.jSXOpeningFragment = Ie.jsxOpeningFragment = wu, Ie.jSXSpreadAttribute = Ie.jsxSpreadAttribute = Eu, Ie.jSXSpreadChild = Ie.jsxSpreadChild = Ho, Ie.jSXText = Ie.jsxText = es, Ie.labeledStatement = I, Ie.logicalExpression = N, Ie.memberExpression = M, Ie.metaProperty = pe, Ie.mixedTypeAnnotation = ru, Ie.moduleExpression = Jo, Ie.newExpression = R, Ie.noop = Cu, Ie.nullLiteral = F, Ie.nullLiteralTypeAnnotation = us, Ie.nullableTypeAnnotation = Bo, Ie.numberLiteral = gc, Ie.numberLiteralTypeAnnotation = Fo, Ie.numberTypeAnnotation = Zn, Ie.numericLiteral = O, Ie.objectExpression = V, Ie.objectMethod = K, Ie.objectPattern = ie, Ie.objectProperty = z, Ie.objectTypeAnnotation = nu, Ie.objectTypeCallProperty = au, Ie.objectTypeIndexer = jo, Ie.objectTypeInternalSlot = su, Ie.objectTypeProperty = ou, Ie.objectTypeSpreadProperty = Ea, Ie.opaqueType = Xa, Ie.optionalCallExpression = lt, Ie.optionalIndexedAccessType = Vo, Ie.optionalMemberExpression = Tt, Ie.parenthesizedExpression = le, Ie.pipelineBareFunction = Is, Ie.pipelinePrimaryTopicReference = Nu, Ie.pipelineTopicExpression = Qo, Ie.placeholder = zo, Ie.privateName = Nn, Ie.program = $, Ie.qualifiedTypeIdentifier = Ja, Ie.recordExpression = Ou, Ie.regExpLiteral = j, Ie.regexLiteral = Ks, Ie.restElement = W, Ie.restProperty = fl, Ie.returnStatement = Y, Ie.sequenceExpression = G, Ie.spreadElement = Q, Ie.spreadProperty = bc, Ie.staticBlock = on, Ie.stringLiteral = L, Ie.stringLiteralTypeAnnotation = Qa, Ie.stringTypeAnnotation = lu, Ie.super = X, Ie.switchCase = ne, Ie.switchStatement = ae, Ie.symbolTypeAnnotation = uu, Ie.taggedTemplateExpression = ce, Ie.templateElement = U, Ie.templateLiteral = Ee, Ie.thisExpression = be, Ie.thisTypeAnnotation = cu, Ie.throwStatement = ye, Ie.topicReference = _a, Ie.tryStatement = fe, Ie.tSAnyKeyword = Ie.tsAnyKeyword = Bu, Ie.tSArrayType = Ie.tsArrayType = tl, Ie.tSAsExpression = Ie.tsAsExpression = sc, Ie.tSBigIntKeyword = Ie.tsBigIntKeyword = Fu, Ie.tSBooleanKeyword = Ie.tsBooleanKeyword = Wt, Ie.tSCallSignatureDeclaration = Ie.tsCallSignatureDeclaration = ao, Ie.tSConditionalType = Ie.tsConditionalType = tc, Ie.tSConstructSignatureDeclaration = Ie.tsConstructSignatureDeclaration = Lu, Ie.tSConstructorType = Ie.tsConstructorType = zu, Ie.tSDeclareFunction = Ie.tsDeclareFunction = Du, Ie.tSDeclareMethod = Ie.tsDeclareMethod = ka, Ie.tSEnumDeclaration = Ie.tsEnumDeclaration = cl, Ie.tSEnumMember = Ie.tsEnumMember = oc, Ie.tSExportAssignment = Ie.tsExportAssignment = fc, Ie.tSExpressionWithTypeArguments = Ie.tsExpressionWithTypeArguments = Di, Ie.tSExternalModuleReference = Ie.tsExternalModuleReference = lo, Ie.tSFunctionType = Ie.tsFunctionType = Ku, Ie.tSImportEqualsDeclaration = Ie.tsImportEqualsDeclaration = cc, Ie.tSImportType = Ie.tsImportType = uc, Ie.tSIndexSignature = Ie.tsIndexSignature = Ru, Ie.tSIndexedAccessType = Ie.tsIndexedAccessType = sl, Ie.tSInferType = Ie.tsInferType = il, Ie.tSInstantiationExpression = Ie.tsInstantiationExpression = ll, Ie.tSInterfaceBody = Ie.tsInterfaceBody = al, Ie.tSInterfaceDeclaration = Ie.tsInterfaceDeclaration = hs, Ie.tSIntersectionType = Ie.tsIntersectionType = ec, Ie.tSIntrinsicKeyword = Ie.tsIntrinsicKeyword = Zo, Ie.tSLiteralType = Ie.tsLiteralType = nc, Ie.tSMappedType = Ie.tsMappedType = ic, Ie.tSMethodSignature = Ie.tsMethodSignature = Mu, Ie.tSModuleBlock = Ie.tsModuleBlock = oo, Ie.tSModuleDeclaration = Ie.tsModuleDeclaration = lc, Ie.tSNamedTupleMember = Ie.tsNamedTupleMember = Qu, Ie.tSNamespaceExportDeclaration = Ie.tsNamespaceExportDeclaration = pl, Ie.tSNeverKeyword = Ie.tsNeverKeyword = ju, Ie.tSNonNullExpression = Ie.tsNonNullExpression = pc, Ie.tSNullKeyword = Ie.tsNullKeyword = $u, Ie.tSNumberKeyword = Ie.tsNumberKeyword = Uu, Ie.tSObjectKeyword = Ie.tsObjectKeyword = qu, Ie.tSOptionalType = Ie.tsOptionalType = Ju, Ie.tSParameterProperty = Ie.tsParameterProperty = Ia, Ie.tSParenthesizedType = Ie.tsParenthesizedType = rc, Ie.tSPropertySignature = Ie.tsPropertySignature = Gn, Ie.tSQualifiedName = Ie.tsQualifiedName = Oa, Ie.tSRestType = Ie.tsRestType = rl, Ie.tSSatisfiesExpression = Ie.tsSatisfiesExpression = ul, Ie.tSStringKeyword = Ie.tsStringKeyword = Vu, Ie.tSSymbolKeyword = Ie.tsSymbolKeyword = fs, Ie.tSThisType = Ie.tsThisType = Hu, Ie.tSTupleType = Ie.tsTupleType = Ft, Ie.tSTypeAliasDeclaration = Ie.tsTypeAliasDeclaration = ol, Ie.tSTypeAnnotation = Ie.tsTypeAnnotation = hc, Ie.tSTypeAssertion = Ie.tsTypeAssertion = ac, Ie.tSTypeLiteral = Ie.tsTypeLiteral = Xu, Ie.tSTypeOperator = Ie.tsTypeOperator = nl, Ie.tSTypeParameter = Ie.tsTypeParameter = yc, Ie.tSTypeParameterDeclaration = Ie.tsTypeParameterDeclaration = mc, Ie.tSTypeParameterInstantiation = Ie.tsTypeParameterInstantiation = dc, Ie.tSTypePredicate = Ie.tsTypePredicate = Gu, Ie.tSTypeQuery = Ie.tsTypeQuery = Yu, Ie.tSTypeReference = Ie.tsTypeReference = el, Ie.tSUndefinedKeyword = Ie.tsUndefinedKeyword = ts, Ie.tSUnionType = Ie.tsUnionType = Zu, Ie.tSUnknownKeyword = Ie.tsUnknownKeyword = ks, Ie.tSVoidKeyword = Ie.tsVoidKeyword = Wu, Ie.tupleExpression = Xo, Ie.tupleTypeAnnotation = pu, Ie.typeAlias = eo, Ie.typeAnnotation = to, Ie.typeCastExpression = fu, Ie.typeParameter = hu, Ie.typeParameterDeclaration = du, Ie.typeParameterInstantiation = $o, Ie.typeofTypeAnnotation = Za, Ie.unaryExpression = Z, Ie.unionTypeAnnotation = mu, Ie.updateExpression = ue, Ie.v8IntrinsicIdentifier = so, Ie.variableDeclaration = me, Ie.variableDeclarator = xe, Ie.variance = qs, Ie.voidTypeAnnotation = Vs, Ie.whileStatement = Pe, Ie.withStatement = ve, Ie.yieldExpression = Qe;
  var e = qrt(), t = b_();
  function r(B = []) {
    return (0, e.default)({
      type: "ArrayExpression",
      elements: B
    });
  }
  function i(B, d, p) {
    return (0, e.default)({
      type: "AssignmentExpression",
      operator: B,
      left: d,
      right: p
    });
  }
  function n(B, d, p) {
    return (0, e.default)({
      type: "BinaryExpression",
      operator: B,
      left: d,
      right: p
    });
  }
  function s(B) {
    return (0, e.default)({
      type: "InterpreterDirective",
      value: B
    });
  }
  function a(B) {
    return (0, e.default)({
      type: "Directive",
      value: B
    });
  }
  function o(B) {
    return (0, e.default)({
      type: "DirectiveLiteral",
      value: B
    });
  }
  function l(B, d = []) {
    return (0, e.default)({
      type: "BlockStatement",
      body: B,
      directives: d
    });
  }
  function u(B = null) {
    return (0, e.default)({
      type: "BreakStatement",
      label: B
    });
  }
  function c(B, d) {
    return (0, e.default)({
      type: "CallExpression",
      callee: B,
      arguments: d
    });
  }
  function f(B = null, d) {
    return (0, e.default)({
      type: "CatchClause",
      param: B,
      body: d
    });
  }
  function h(B, d, p) {
    return (0, e.default)({
      type: "ConditionalExpression",
      test: B,
      consequent: d,
      alternate: p
    });
  }
  function m(B = null) {
    return (0, e.default)({
      type: "ContinueStatement",
      label: B
    });
  }
  function g() {
    return {
      type: "DebuggerStatement"
    };
  }
  function y(B, d) {
    return (0, e.default)({
      type: "DoWhileStatement",
      test: B,
      body: d
    });
  }
  function v() {
    return {
      type: "EmptyStatement"
    };
  }
  function T(B) {
    return (0, e.default)({
      type: "ExpressionStatement",
      expression: B
    });
  }
  function S(B, d = null, p = null) {
    return (0, e.default)({
      type: "File",
      program: B,
      comments: d,
      tokens: p
    });
  }
  function P(B, d, p) {
    return (0, e.default)({
      type: "ForInStatement",
      left: B,
      right: d,
      body: p
    });
  }
  function x(B = null, d = null, p = null, b) {
    return (0, e.default)({
      type: "ForStatement",
      init: B,
      test: d,
      update: p,
      body: b
    });
  }
  function C(B = null, d, p, b = !1, _ = !1) {
    return (0, e.default)({
      type: "FunctionDeclaration",
      id: B,
      params: d,
      body: p,
      generator: b,
      async: _
    });
  }
  function D(B = null, d, p, b = !1, _ = !1) {
    return (0, e.default)({
      type: "FunctionExpression",
      id: B,
      params: d,
      body: p,
      generator: b,
      async: _
    });
  }
  function w(B) {
    return (0, e.default)({
      type: "Identifier",
      name: B
    });
  }
  function A(B, d, p = null) {
    return (0, e.default)({
      type: "IfStatement",
      test: B,
      consequent: d,
      alternate: p
    });
  }
  function I(B, d) {
    return (0, e.default)({
      type: "LabeledStatement",
      label: B,
      body: d
    });
  }
  function L(B) {
    return (0, e.default)({
      type: "StringLiteral",
      value: B
    });
  }
  function O(B) {
    return (0, e.default)({
      type: "NumericLiteral",
      value: B
    });
  }
  function F() {
    return {
      type: "NullLiteral"
    };
  }
  function q(B) {
    return (0, e.default)({
      type: "BooleanLiteral",
      value: B
    });
  }
  function j(B, d = "") {
    return (0, e.default)({
      type: "RegExpLiteral",
      pattern: B,
      flags: d
    });
  }
  function N(B, d, p) {
    return (0, e.default)({
      type: "LogicalExpression",
      operator: B,
      left: d,
      right: p
    });
  }
  function M(B, d, p = !1, b = null) {
    return (0, e.default)({
      type: "MemberExpression",
      object: B,
      property: d,
      computed: p,
      optional: b
    });
  }
  function R(B, d) {
    return (0, e.default)({
      type: "NewExpression",
      callee: B,
      arguments: d
    });
  }
  function $(B, d = [], p = "script", b = null) {
    return (0, e.default)({
      type: "Program",
      body: B,
      directives: d,
      sourceType: p,
      interpreter: b,
      sourceFile: null
    });
  }
  function V(B) {
    return (0, e.default)({
      type: "ObjectExpression",
      properties: B
    });
  }
  function K(B = "method", d, p, b, _ = !1, H = !1, ee = !1) {
    return (0, e.default)({
      type: "ObjectMethod",
      kind: B,
      key: d,
      params: p,
      body: b,
      computed: _,
      generator: H,
      async: ee
    });
  }
  function z(B, d, p = !1, b = !1, _ = null) {
    return (0, e.default)({
      type: "ObjectProperty",
      key: B,
      value: d,
      computed: p,
      shorthand: b,
      decorators: _
    });
  }
  function W(B) {
    return (0, e.default)({
      type: "RestElement",
      argument: B
    });
  }
  function Y(B = null) {
    return (0, e.default)({
      type: "ReturnStatement",
      argument: B
    });
  }
  function G(B) {
    return (0, e.default)({
      type: "SequenceExpression",
      expressions: B
    });
  }
  function le(B) {
    return (0, e.default)({
      type: "ParenthesizedExpression",
      expression: B
    });
  }
  function ne(B = null, d) {
    return (0, e.default)({
      type: "SwitchCase",
      test: B,
      consequent: d
    });
  }
  function ae(B, d) {
    return (0, e.default)({
      type: "SwitchStatement",
      discriminant: B,
      cases: d
    });
  }
  function be() {
    return {
      type: "ThisExpression"
    };
  }
  function ye(B) {
    return (0, e.default)({
      type: "ThrowStatement",
      argument: B
    });
  }
  function fe(B, d = null, p = null) {
    return (0, e.default)({
      type: "TryStatement",
      block: B,
      handler: d,
      finalizer: p
    });
  }
  function Z(B, d, p = !0) {
    return (0, e.default)({
      type: "UnaryExpression",
      operator: B,
      argument: d,
      prefix: p
    });
  }
  function ue(B, d, p = !1) {
    return (0, e.default)({
      type: "UpdateExpression",
      operator: B,
      argument: d,
      prefix: p
    });
  }
  function me(B, d) {
    return (0, e.default)({
      type: "VariableDeclaration",
      kind: B,
      declarations: d
    });
  }
  function xe(B, d = null) {
    return (0, e.default)({
      type: "VariableDeclarator",
      id: B,
      init: d
    });
  }
  function Pe(B, d) {
    return (0, e.default)({
      type: "WhileStatement",
      test: B,
      body: d
    });
  }
  function ve(B, d) {
    return (0, e.default)({
      type: "WithStatement",
      object: B,
      body: d
    });
  }
  function Xe(B, d) {
    return (0, e.default)({
      type: "AssignmentPattern",
      left: B,
      right: d
    });
  }
  function st(B) {
    return (0, e.default)({
      type: "ArrayPattern",
      elements: B
    });
  }
  function Se(B, d, p = !1) {
    return (0, e.default)({
      type: "ArrowFunctionExpression",
      params: B,
      body: d,
      async: p,
      expression: null
    });
  }
  function oe(B) {
    return (0, e.default)({
      type: "ClassBody",
      body: B
    });
  }
  function te(B = null, d = null, p, b = null) {
    return (0, e.default)({
      type: "ClassExpression",
      id: B,
      superClass: d,
      body: p,
      decorators: b
    });
  }
  function se(B, d = null, p, b = null) {
    return (0, e.default)({
      type: "ClassDeclaration",
      id: B,
      superClass: d,
      body: p,
      decorators: b
    });
  }
  function re(B) {
    return (0, e.default)({
      type: "ExportAllDeclaration",
      source: B
    });
  }
  function Te(B) {
    return (0, e.default)({
      type: "ExportDefaultDeclaration",
      declaration: B
    });
  }
  function ze(B = null, d = [], p = null) {
    return (0, e.default)({
      type: "ExportNamedDeclaration",
      declaration: B,
      specifiers: d,
      source: p
    });
  }
  function Ze(B, d) {
    return (0, e.default)({
      type: "ExportSpecifier",
      local: B,
      exported: d
    });
  }
  function pt(B, d, p, b = !1) {
    return (0, e.default)({
      type: "ForOfStatement",
      left: B,
      right: d,
      body: p,
      await: b
    });
  }
  function ut(B, d) {
    return (0, e.default)({
      type: "ImportDeclaration",
      specifiers: B,
      source: d
    });
  }
  function bt(B) {
    return (0, e.default)({
      type: "ImportDefaultSpecifier",
      local: B
    });
  }
  function vt(B) {
    return (0, e.default)({
      type: "ImportNamespaceSpecifier",
      local: B
    });
  }
  function ge(B, d) {
    return (0, e.default)({
      type: "ImportSpecifier",
      local: B,
      imported: d
    });
  }
  function pe(B, d) {
    return (0, e.default)({
      type: "MetaProperty",
      meta: B,
      property: d
    });
  }
  function $e(B = "method", d, p, b, _ = !1, H = !1, ee = !1, de = !1) {
    return (0, e.default)({
      type: "ClassMethod",
      kind: B,
      key: d,
      params: p,
      body: b,
      computed: _,
      static: H,
      generator: ee,
      async: de
    });
  }
  function ie(B) {
    return (0, e.default)({
      type: "ObjectPattern",
      properties: B
    });
  }
  function Q(B) {
    return (0, e.default)({
      type: "SpreadElement",
      argument: B
    });
  }
  function X() {
    return {
      type: "Super"
    };
  }
  function ce(B, d) {
    return (0, e.default)({
      type: "TaggedTemplateExpression",
      tag: B,
      quasi: d
    });
  }
  function U(B, d = !1) {
    return (0, e.default)({
      type: "TemplateElement",
      value: B,
      tail: d
    });
  }
  function Ee(B, d) {
    return (0, e.default)({
      type: "TemplateLiteral",
      quasis: B,
      expressions: d
    });
  }
  function Qe(B = null, d = !1) {
    return (0, e.default)({
      type: "YieldExpression",
      argument: B,
      delegate: d
    });
  }
  function ft(B) {
    return (0, e.default)({
      type: "AwaitExpression",
      argument: B
    });
  }
  function ht() {
    return {
      type: "Import"
    };
  }
  function Rt(B) {
    return (0, e.default)({
      type: "BigIntLiteral",
      value: B
    });
  }
  function Ot(B) {
    return (0, e.default)({
      type: "ExportNamespaceSpecifier",
      exported: B
    });
  }
  function Tt(B, d, p = !1, b) {
    return (0, e.default)({
      type: "OptionalMemberExpression",
      object: B,
      property: d,
      computed: p,
      optional: b
    });
  }
  function lt(B, d, p) {
    return (0, e.default)({
      type: "OptionalCallExpression",
      callee: B,
      arguments: d,
      optional: p
    });
  }
  function lr(B, d = null, p = null, b = null, _ = !1, H = !1) {
    return (0, e.default)({
      type: "ClassProperty",
      key: B,
      value: d,
      typeAnnotation: p,
      decorators: b,
      computed: _,
      static: H
    });
  }
  function kr(B, d = null, p = null, b = null, _ = !1, H = !1) {
    return (0, e.default)({
      type: "ClassAccessorProperty",
      key: B,
      value: d,
      typeAnnotation: p,
      decorators: b,
      computed: _,
      static: H
    });
  }
  function Ai(B, d = null, p = null, b = !1) {
    return (0, e.default)({
      type: "ClassPrivateProperty",
      key: B,
      value: d,
      decorators: p,
      static: b
    });
  }
  function an(B = "method", d, p, b, _ = !1) {
    return (0, e.default)({
      type: "ClassPrivateMethod",
      kind: B,
      key: d,
      params: p,
      body: b,
      static: _
    });
  }
  function Nn(B) {
    return (0, e.default)({
      type: "PrivateName",
      id: B
    });
  }
  function on(B) {
    return (0, e.default)({
      type: "StaticBlock",
      body: B
    });
  }
  function _n() {
    return {
      type: "AnyTypeAnnotation"
    };
  }
  function en(B) {
    return (0, e.default)({
      type: "ArrayTypeAnnotation",
      elementType: B
    });
  }
  function bi() {
    return {
      type: "BooleanTypeAnnotation"
    };
  }
  function No(B) {
    return (0, e.default)({
      type: "BooleanLiteralTypeAnnotation",
      value: B
    });
  }
  function us() {
    return {
      type: "NullLiteralTypeAnnotation"
    };
  }
  function ga(B, d = null) {
    return (0, e.default)({
      type: "ClassImplements",
      id: B,
      typeParameters: d
    });
  }
  function As(B, d = null, p = null, b) {
    return (0, e.default)({
      type: "DeclareClass",
      id: B,
      typeParameters: d,
      extends: p,
      body: b
    });
  }
  function ba(B) {
    return (0, e.default)({
      type: "DeclareFunction",
      id: B
    });
  }
  function Bn(B, d = null, p = null, b) {
    return (0, e.default)({
      type: "DeclareInterface",
      id: B,
      typeParameters: d,
      extends: p,
      body: b
    });
  }
  function cs(B, d, p = null) {
    return (0, e.default)({
      type: "DeclareModule",
      id: B,
      body: d,
      kind: p
    });
  }
  function Do(B) {
    return (0, e.default)({
      type: "DeclareModuleExports",
      typeAnnotation: B
    });
  }
  function ps(B, d = null, p) {
    return (0, e.default)({
      type: "DeclareTypeAlias",
      id: B,
      typeParameters: d,
      right: p
    });
  }
  function va(B, d = null, p = null) {
    return (0, e.default)({
      type: "DeclareOpaqueType",
      id: B,
      typeParameters: d,
      supertype: p
    });
  }
  function Lo(B) {
    return (0, e.default)({
      type: "DeclareVariable",
      id: B
    });
  }
  function Ta(B = null, d = null, p = null) {
    return (0, e.default)({
      type: "DeclareExportDeclaration",
      declaration: B,
      specifiers: d,
      source: p
    });
  }
  function Ka(B) {
    return (0, e.default)({
      type: "DeclareExportAllDeclaration",
      source: B
    });
  }
  function za(B) {
    return (0, e.default)({
      type: "DeclaredPredicate",
      value: B
    });
  }
  function Ga() {
    return {
      type: "ExistsTypeAnnotation"
    };
  }
  function Ya(B = null, d, p = null, b) {
    return (0, e.default)({
      type: "FunctionTypeAnnotation",
      typeParameters: B,
      params: d,
      rest: p,
      returnType: b
    });
  }
  function Us(B = null, d) {
    return (0, e.default)({
      type: "FunctionTypeParam",
      name: B,
      typeAnnotation: d
    });
  }
  function Sa(B, d = null) {
    return (0, e.default)({
      type: "GenericTypeAnnotation",
      id: B,
      typeParameters: d
    });
  }
  function Mo() {
    return {
      type: "InferredPredicate"
    };
  }
  function Cs(B, d = null) {
    return (0, e.default)({
      type: "InterfaceExtends",
      id: B,
      typeParameters: d
    });
  }
  function tu(B, d = null, p = null, b) {
    return (0, e.default)({
      type: "InterfaceDeclaration",
      id: B,
      typeParameters: d,
      extends: p,
      body: b
    });
  }
  function xa(B = null, d) {
    return (0, e.default)({
      type: "InterfaceTypeAnnotation",
      extends: B,
      body: d
    });
  }
  function Ro(B) {
    return (0, e.default)({
      type: "IntersectionTypeAnnotation",
      types: B
    });
  }
  function ru() {
    return {
      type: "MixedTypeAnnotation"
    };
  }
  function iu() {
    return {
      type: "EmptyTypeAnnotation"
    };
  }
  function Bo(B) {
    return (0, e.default)({
      type: "NullableTypeAnnotation",
      typeAnnotation: B
    });
  }
  function Fo(B) {
    return (0, e.default)({
      type: "NumberLiteralTypeAnnotation",
      value: B
    });
  }
  function Zn() {
    return {
      type: "NumberTypeAnnotation"
    };
  }
  function nu(B, d = [], p = [], b = [], _ = !1) {
    return (0, e.default)({
      type: "ObjectTypeAnnotation",
      properties: B,
      indexers: d,
      callProperties: p,
      internalSlots: b,
      exact: _
    });
  }
  function su(B, d, p, b, _) {
    return (0, e.default)({
      type: "ObjectTypeInternalSlot",
      id: B,
      value: d,
      optional: p,
      static: b,
      method: _
    });
  }
  function au(B) {
    return (0, e.default)({
      type: "ObjectTypeCallProperty",
      value: B,
      static: null
    });
  }
  function jo(B = null, d, p, b = null) {
    return (0, e.default)({
      type: "ObjectTypeIndexer",
      id: B,
      key: d,
      value: p,
      variance: b,
      static: null
    });
  }
  function ou(B, d, p = null) {
    return (0, e.default)({
      type: "ObjectTypeProperty",
      key: B,
      value: d,
      variance: p,
      kind: null,
      method: null,
      optional: null,
      proto: null,
      static: null
    });
  }
  function Ea(B) {
    return (0, e.default)({
      type: "ObjectTypeSpreadProperty",
      argument: B
    });
  }
  function Xa(B, d = null, p = null, b) {
    return (0, e.default)({
      type: "OpaqueType",
      id: B,
      typeParameters: d,
      supertype: p,
      impltype: b
    });
  }
  function Ja(B, d) {
    return (0, e.default)({
      type: "QualifiedTypeIdentifier",
      id: B,
      qualification: d
    });
  }
  function Qa(B) {
    return (0, e.default)({
      type: "StringLiteralTypeAnnotation",
      value: B
    });
  }
  function lu() {
    return {
      type: "StringTypeAnnotation"
    };
  }
  function uu() {
    return {
      type: "SymbolTypeAnnotation"
    };
  }
  function cu() {
    return {
      type: "ThisTypeAnnotation"
    };
  }
  function pu(B) {
    return (0, e.default)({
      type: "TupleTypeAnnotation",
      types: B
    });
  }
  function Za(B) {
    return (0, e.default)({
      type: "TypeofTypeAnnotation",
      argument: B
    });
  }
  function eo(B, d = null, p) {
    return (0, e.default)({
      type: "TypeAlias",
      id: B,
      typeParameters: d,
      right: p
    });
  }
  function to(B) {
    return (0, e.default)({
      type: "TypeAnnotation",
      typeAnnotation: B
    });
  }
  function fu(B, d) {
    return (0, e.default)({
      type: "TypeCastExpression",
      expression: B,
      typeAnnotation: d
    });
  }
  function hu(B = null, d = null, p = null) {
    return (0, e.default)({
      type: "TypeParameter",
      bound: B,
      default: d,
      variance: p,
      name: null
    });
  }
  function du(B) {
    return (0, e.default)({
      type: "TypeParameterDeclaration",
      params: B
    });
  }
  function $o(B) {
    return (0, e.default)({
      type: "TypeParameterInstantiation",
      params: B
    });
  }
  function mu(B) {
    return (0, e.default)({
      type: "UnionTypeAnnotation",
      types: B
    });
  }
  function qs(B) {
    return (0, e.default)({
      type: "Variance",
      kind: B
    });
  }
  function Vs() {
    return {
      type: "VoidTypeAnnotation"
    };
  }
  function yu(B, d) {
    return (0, e.default)({
      type: "EnumDeclaration",
      id: B,
      body: d
    });
  }
  function Uo(B) {
    return (0, e.default)({
      type: "EnumBooleanBody",
      members: B,
      explicitType: null,
      hasUnknownMembers: null
    });
  }
  function Pa(B) {
    return (0, e.default)({
      type: "EnumNumberBody",
      members: B,
      explicitType: null,
      hasUnknownMembers: null
    });
  }
  function Ws(B) {
    return (0, e.default)({
      type: "EnumStringBody",
      members: B,
      explicitType: null,
      hasUnknownMembers: null
    });
  }
  function ro(B) {
    return (0, e.default)({
      type: "EnumSymbolBody",
      members: B,
      hasUnknownMembers: null
    });
  }
  function wa(B) {
    return (0, e.default)({
      type: "EnumBooleanMember",
      id: B,
      init: null
    });
  }
  function qo(B, d) {
    return (0, e.default)({
      type: "EnumNumberMember",
      id: B,
      init: d
    });
  }
  function gu(B, d) {
    return (0, e.default)({
      type: "EnumStringMember",
      id: B,
      init: d
    });
  }
  function io(B) {
    return (0, e.default)({
      type: "EnumDefaultedMember",
      id: B
    });
  }
  function bu(B, d) {
    return (0, e.default)({
      type: "IndexedAccessType",
      objectType: B,
      indexType: d
    });
  }
  function Vo(B, d) {
    return (0, e.default)({
      type: "OptionalIndexedAccessType",
      objectType: B,
      indexType: d,
      optional: null
    });
  }
  function Aa(B, d = null) {
    return (0, e.default)({
      type: "JSXAttribute",
      name: B,
      value: d
    });
  }
  function Wo(B) {
    return (0, e.default)({
      type: "JSXClosingElement",
      name: B
    });
  }
  function vu(B, d = null, p, b = null) {
    return (0, e.default)({
      type: "JSXElement",
      openingElement: B,
      closingElement: d,
      children: p,
      selfClosing: b
    });
  }
  function Tu() {
    return {
      type: "JSXEmptyExpression"
    };
  }
  function no(B) {
    return (0, e.default)({
      type: "JSXExpressionContainer",
      expression: B
    });
  }
  function Ho(B) {
    return (0, e.default)({
      type: "JSXSpreadChild",
      expression: B
    });
  }
  function Ko(B) {
    return (0, e.default)({
      type: "JSXIdentifier",
      name: B
    });
  }
  function Su(B, d) {
    return (0, e.default)({
      type: "JSXMemberExpression",
      object: B,
      property: d
    });
  }
  function xu(B, d) {
    return (0, e.default)({
      type: "JSXNamespacedName",
      namespace: B,
      name: d
    });
  }
  function Hs(B, d, p = !1) {
    return (0, e.default)({
      type: "JSXOpeningElement",
      name: B,
      attributes: d,
      selfClosing: p
    });
  }
  function Eu(B) {
    return (0, e.default)({
      type: "JSXSpreadAttribute",
      argument: B
    });
  }
  function es(B) {
    return (0, e.default)({
      type: "JSXText",
      value: B
    });
  }
  function Pu(B, d, p) {
    return (0, e.default)({
      type: "JSXFragment",
      openingFragment: B,
      closingFragment: d,
      children: p
    });
  }
  function wu() {
    return {
      type: "JSXOpeningFragment"
    };
  }
  function Au() {
    return {
      type: "JSXClosingFragment"
    };
  }
  function Cu() {
    return {
      type: "Noop"
    };
  }
  function zo(B, d) {
    return (0, e.default)({
      type: "Placeholder",
      expectedNode: B,
      name: d
    });
  }
  function so(B) {
    return (0, e.default)({
      type: "V8IntrinsicIdentifier",
      name: B
    });
  }
  function Go() {
    return {
      type: "ArgumentPlaceholder"
    };
  }
  function Ca(B, d) {
    return (0, e.default)({
      type: "BindExpression",
      object: B,
      callee: d
    });
  }
  function Yo(B, d) {
    return (0, e.default)({
      type: "ImportAttribute",
      key: B,
      value: d
    });
  }
  function _u(B) {
    return (0, e.default)({
      type: "Decorator",
      expression: B
    });
  }
  function Iu(B, d = !1) {
    return (0, e.default)({
      type: "DoExpression",
      body: B,
      async: d
    });
  }
  function ku(B) {
    return (0, e.default)({
      type: "ExportDefaultSpecifier",
      exported: B
    });
  }
  function Ou(B) {
    return (0, e.default)({
      type: "RecordExpression",
      properties: B
    });
  }
  function Xo(B = []) {
    return (0, e.default)({
      type: "TupleExpression",
      elements: B
    });
  }
  function _s(B) {
    return (0, e.default)({
      type: "DecimalLiteral",
      value: B
    });
  }
  function Jo(B) {
    return (0, e.default)({
      type: "ModuleExpression",
      body: B
    });
  }
  function _a() {
    return {
      type: "TopicReference"
    };
  }
  function Qo(B) {
    return (0, e.default)({
      type: "PipelineTopicExpression",
      expression: B
    });
  }
  function Is(B) {
    return (0, e.default)({
      type: "PipelineBareFunction",
      callee: B
    });
  }
  function Nu() {
    return {
      type: "PipelinePrimaryTopicReference"
    };
  }
  function Ia(B) {
    return (0, e.default)({
      type: "TSParameterProperty",
      parameter: B
    });
  }
  function Du(B = null, d = null, p, b = null) {
    return (0, e.default)({
      type: "TSDeclareFunction",
      id: B,
      typeParameters: d,
      params: p,
      returnType: b
    });
  }
  function ka(B = null, d, p = null, b, _ = null) {
    return (0, e.default)({
      type: "TSDeclareMethod",
      decorators: B,
      key: d,
      typeParameters: p,
      params: b,
      returnType: _
    });
  }
  function Oa(B, d) {
    return (0, e.default)({
      type: "TSQualifiedName",
      left: B,
      right: d
    });
  }
  function ao(B = null, d, p = null) {
    return (0, e.default)({
      type: "TSCallSignatureDeclaration",
      typeParameters: B,
      parameters: d,
      typeAnnotation: p
    });
  }
  function Lu(B = null, d, p = null) {
    return (0, e.default)({
      type: "TSConstructSignatureDeclaration",
      typeParameters: B,
      parameters: d,
      typeAnnotation: p
    });
  }
  function Gn(B, d = null, p = null) {
    return (0, e.default)({
      type: "TSPropertySignature",
      key: B,
      typeAnnotation: d,
      initializer: p,
      kind: null
    });
  }
  function Mu(B, d = null, p, b = null) {
    return (0, e.default)({
      type: "TSMethodSignature",
      key: B,
      typeParameters: d,
      parameters: p,
      typeAnnotation: b,
      kind: null
    });
  }
  function Ru(B, d = null) {
    return (0, e.default)({
      type: "TSIndexSignature",
      parameters: B,
      typeAnnotation: d
    });
  }
  function Bu() {
    return {
      type: "TSAnyKeyword"
    };
  }
  function Wt() {
    return {
      type: "TSBooleanKeyword"
    };
  }
  function Fu() {
    return {
      type: "TSBigIntKeyword"
    };
  }
  function Zo() {
    return {
      type: "TSIntrinsicKeyword"
    };
  }
  function ju() {
    return {
      type: "TSNeverKeyword"
    };
  }
  function $u() {
    return {
      type: "TSNullKeyword"
    };
  }
  function Uu() {
    return {
      type: "TSNumberKeyword"
    };
  }
  function qu() {
    return {
      type: "TSObjectKeyword"
    };
  }
  function Vu() {
    return {
      type: "TSStringKeyword"
    };
  }
  function fs() {
    return {
      type: "TSSymbolKeyword"
    };
  }
  function ts() {
    return {
      type: "TSUndefinedKeyword"
    };
  }
  function ks() {
    return {
      type: "TSUnknownKeyword"
    };
  }
  function Wu() {
    return {
      type: "TSVoidKeyword"
    };
  }
  function Hu() {
    return {
      type: "TSThisType"
    };
  }
  function Ku(B = null, d, p = null) {
    return (0, e.default)({
      type: "TSFunctionType",
      typeParameters: B,
      parameters: d,
      typeAnnotation: p
    });
  }
  function zu(B = null, d, p = null) {
    return (0, e.default)({
      type: "TSConstructorType",
      typeParameters: B,
      parameters: d,
      typeAnnotation: p
    });
  }
  function el(B, d = null) {
    return (0, e.default)({
      type: "TSTypeReference",
      typeName: B,
      typeParameters: d
    });
  }
  function Gu(B, d = null, p = null) {
    return (0, e.default)({
      type: "TSTypePredicate",
      parameterName: B,
      typeAnnotation: d,
      asserts: p
    });
  }
  function Yu(B, d = null) {
    return (0, e.default)({
      type: "TSTypeQuery",
      exprName: B,
      typeParameters: d
    });
  }
  function Xu(B) {
    return (0, e.default)({
      type: "TSTypeLiteral",
      members: B
    });
  }
  function tl(B) {
    return (0, e.default)({
      type: "TSArrayType",
      elementType: B
    });
  }
  function Ft(B) {
    return (0, e.default)({
      type: "TSTupleType",
      elementTypes: B
    });
  }
  function Ju(B) {
    return (0, e.default)({
      type: "TSOptionalType",
      typeAnnotation: B
    });
  }
  function rl(B) {
    return (0, e.default)({
      type: "TSRestType",
      typeAnnotation: B
    });
  }
  function Qu(B, d, p = !1) {
    return (0, e.default)({
      type: "TSNamedTupleMember",
      label: B,
      elementType: d,
      optional: p
    });
  }
  function Zu(B) {
    return (0, e.default)({
      type: "TSUnionType",
      types: B
    });
  }
  function ec(B) {
    return (0, e.default)({
      type: "TSIntersectionType",
      types: B
    });
  }
  function tc(B, d, p, b) {
    return (0, e.default)({
      type: "TSConditionalType",
      checkType: B,
      extendsType: d,
      trueType: p,
      falseType: b
    });
  }
  function il(B) {
    return (0, e.default)({
      type: "TSInferType",
      typeParameter: B
    });
  }
  function rc(B) {
    return (0, e.default)({
      type: "TSParenthesizedType",
      typeAnnotation: B
    });
  }
  function nl(B) {
    return (0, e.default)({
      type: "TSTypeOperator",
      typeAnnotation: B,
      operator: null
    });
  }
  function sl(B, d) {
    return (0, e.default)({
      type: "TSIndexedAccessType",
      objectType: B,
      indexType: d
    });
  }
  function ic(B, d = null, p = null) {
    return (0, e.default)({
      type: "TSMappedType",
      typeParameter: B,
      typeAnnotation: d,
      nameType: p
    });
  }
  function nc(B) {
    return (0, e.default)({
      type: "TSLiteralType",
      literal: B
    });
  }
  function Di(B, d = null) {
    return (0, e.default)({
      type: "TSExpressionWithTypeArguments",
      expression: B,
      typeParameters: d
    });
  }
  function hs(B, d = null, p = null, b) {
    return (0, e.default)({
      type: "TSInterfaceDeclaration",
      id: B,
      typeParameters: d,
      extends: p,
      body: b
    });
  }
  function al(B) {
    return (0, e.default)({
      type: "TSInterfaceBody",
      body: B
    });
  }
  function ol(B, d = null, p) {
    return (0, e.default)({
      type: "TSTypeAliasDeclaration",
      id: B,
      typeParameters: d,
      typeAnnotation: p
    });
  }
  function ll(B, d = null) {
    return (0, e.default)({
      type: "TSInstantiationExpression",
      expression: B,
      typeParameters: d
    });
  }
  function sc(B, d) {
    return (0, e.default)({
      type: "TSAsExpression",
      expression: B,
      typeAnnotation: d
    });
  }
  function ul(B, d) {
    return (0, e.default)({
      type: "TSSatisfiesExpression",
      expression: B,
      typeAnnotation: d
    });
  }
  function ac(B, d) {
    return (0, e.default)({
      type: "TSTypeAssertion",
      typeAnnotation: B,
      expression: d
    });
  }
  function cl(B, d) {
    return (0, e.default)({
      type: "TSEnumDeclaration",
      id: B,
      members: d
    });
  }
  function oc(B, d = null) {
    return (0, e.default)({
      type: "TSEnumMember",
      id: B,
      initializer: d
    });
  }
  function lc(B, d) {
    return (0, e.default)({
      type: "TSModuleDeclaration",
      id: B,
      body: d
    });
  }
  function oo(B) {
    return (0, e.default)({
      type: "TSModuleBlock",
      body: B
    });
  }
  function uc(B, d = null, p = null) {
    return (0, e.default)({
      type: "TSImportType",
      argument: B,
      qualifier: d,
      typeParameters: p
    });
  }
  function cc(B, d) {
    return (0, e.default)({
      type: "TSImportEqualsDeclaration",
      id: B,
      moduleReference: d,
      isExport: null
    });
  }
  function lo(B) {
    return (0, e.default)({
      type: "TSExternalModuleReference",
      expression: B
    });
  }
  function pc(B) {
    return (0, e.default)({
      type: "TSNonNullExpression",
      expression: B
    });
  }
  function fc(B) {
    return (0, e.default)({
      type: "TSExportAssignment",
      expression: B
    });
  }
  function pl(B) {
    return (0, e.default)({
      type: "TSNamespaceExportDeclaration",
      id: B
    });
  }
  function hc(B) {
    return (0, e.default)({
      type: "TSTypeAnnotation",
      typeAnnotation: B
    });
  }
  function dc(B) {
    return (0, e.default)({
      type: "TSTypeParameterInstantiation",
      params: B
    });
  }
  function mc(B) {
    return (0, e.default)({
      type: "TSTypeParameterDeclaration",
      params: B
    });
  }
  function yc(B = null, d = null, p) {
    return (0, e.default)({
      type: "TSTypeParameter",
      constraint: B,
      default: d,
      name: p
    });
  }
  function gc(B) {
    return (0, t.default)("NumberLiteral", "NumericLiteral", "The node type "), O(B);
  }
  function Ks(B, d = "") {
    return (0, t.default)("RegexLiteral", "RegExpLiteral", "The node type "), j(B, d);
  }
  function fl(B) {
    return (0, t.default)("RestProperty", "RestElement", "The node type "), W(B);
  }
  function bc(B) {
    return (0, t.default)("SpreadProperty", "SpreadElement", "The node type "), Q(B);
  }
  return Ie;
}
var Wz;
function Vrt() {
  if (Wz)
    return Hx;
  Wz = 1, Object.defineProperty(Hx, "__esModule", {
    value: !0
  }), Hx.default = r;
  var e = _o(), t = Ui();
  function r(i, n) {
    const s = i.value.split(/\r\n|\n|\r/);
    let a = 0;
    for (let l = 0; l < s.length; l++)
      s[l].match(/[^ \t]/) && (a = l);
    let o = "";
    for (let l = 0; l < s.length; l++) {
      const u = s[l], c = l === 0, f = l === s.length - 1, h = l === a;
      let m = u.replace(/\t/g, " ");
      c || (m = m.replace(/^[ ]+/, "")), f || (m = m.replace(/[ ]+$/, "")), m && (h || (m += " "), o += m);
    }
    o && n.push((0, t.inherits)((0, e.stringLiteral)(o), i));
  }
  return Hx;
}
var Hz;
function Wrt() {
  if (Hz)
    return Wx;
  Hz = 1, Object.defineProperty(Wx, "__esModule", {
    value: !0
  }), Wx.default = r;
  var e = Kn(), t = Vrt();
  function r(i) {
    const n = [];
    for (let s = 0; s < i.children.length; s++) {
      let a = i.children[s];
      if ((0, e.isJSXText)(a)) {
        (0, t.default)(a, n);
        continue;
      }
      (0, e.isJSXExpressionContainer)(a) && (a = a.expression), !(0, e.isJSXEmptyExpression)(a) && n.push(a);
    }
    return n;
  }
  return Wx;
}
var Jx = {}, Qx = {}, Kz;
function Mhe() {
  if (Kz)
    return Qx;
  Kz = 1, Object.defineProperty(Qx, "__esModule", {
    value: !0
  }), Qx.default = t;
  var e = Wc();
  function t(r) {
    return !!(r && e.VISITOR_KEYS[r.type]);
  }
  return Qx;
}
var zz;
function Hrt() {
  if (zz)
    return Jx;
  zz = 1, Object.defineProperty(Jx, "__esModule", {
    value: !0
  }), Jx.default = t;
  var e = Mhe();
  function t(r) {
    if (!(0, e.default)(r)) {
      var i;
      const n = (i = r == null ? void 0 : r.type) != null ? i : JSON.stringify(r);
      throw new TypeError('Not a valid node of type "'.concat(n, '"'));
    }
  }
  return Jx;
}
var Re = {}, Gz;
function Krt() {
  if (Gz)
    return Re;
  Gz = 1, Object.defineProperty(Re, "__esModule", {
    value: !0
  }), Re.assertAccessor = kL, Re.assertAnyTypeAnnotation = en, Re.assertArgumentPlaceholder = Ca, Re.assertArrayExpression = i, Re.assertArrayPattern = Se, Re.assertArrayTypeAnnotation = bi, Re.assertArrowFunctionExpression = oe, Re.assertAssignmentExpression = n, Re.assertAssignmentPattern = st, Re.assertAwaitExpression = ht, Re.assertBigIntLiteral = Ot, Re.assertBinary = bc, Re.assertBinaryExpression = s, Re.assertBindExpression = Yo, Re.assertBlock = p, Re.assertBlockParent = d, Re.assertBlockStatement = u, Re.assertBooleanLiteral = j, Re.assertBooleanLiteralTypeAnnotation = us, Re.assertBooleanTypeAnnotation = No, Re.assertBreakStatement = c, Re.assertCallExpression = f, Re.assertCatchClause = h, Re.assertClass = LS, Re.assertClassAccessorProperty = Ai, Re.assertClassBody = te, Re.assertClassDeclaration = re, Re.assertClassExpression = se, Re.assertClassImplements = As, Re.assertClassMethod = ie, Re.assertClassPrivateMethod = Nn, Re.assertClassPrivateProperty = an, Re.assertClassProperty = kr, Re.assertCompletionStatement = H, Re.assertConditional = ee, Re.assertConditionalExpression = m, Re.assertContinueStatement = g, Re.assertDebuggerStatement = y, Re.assertDecimalLiteral = Jo, Re.assertDeclaration = zi, Re.assertDeclareClass = ba, Re.assertDeclareExportAllDeclaration = za, Re.assertDeclareExportDeclaration = Ka, Re.assertDeclareFunction = Bn, Re.assertDeclareInterface = cs, Re.assertDeclareModule = Do, Re.assertDeclareModuleExports = ps, Re.assertDeclareOpaqueType = Lo, Re.assertDeclareTypeAlias = va, Re.assertDeclareVariable = Ta, Re.assertDeclaredPredicate = Ga, Re.assertDecorator = Iu, Re.assertDirective = o, Re.assertDirectiveLiteral = l, Re.assertDoExpression = ku, Re.assertDoWhileStatement = v, Re.assertEmptyStatement = T, Re.assertEmptyTypeAnnotation = Bo, Re.assertEnumBody = BL, Re.assertEnumBooleanBody = Pa, Re.assertEnumBooleanMember = qo, Re.assertEnumDeclaration = Uo, Re.assertEnumDefaultedMember = bu, Re.assertEnumMember = FL, Re.assertEnumNumberBody = Ws, Re.assertEnumNumberMember = gu, Re.assertEnumStringBody = ro, Re.assertEnumStringMember = io, Re.assertEnumSymbolBody = wa, Re.assertExistsTypeAnnotation = Ya, Re.assertExportAllDeclaration = Te, Re.assertExportDeclaration = _L, Re.assertExportDefaultDeclaration = ze, Re.assertExportDefaultSpecifier = Ou, Re.assertExportNamedDeclaration = Ze, Re.assertExportNamespaceSpecifier = Tt, Re.assertExportSpecifier = pt, Re.assertExpression = fl, Re.assertExpressionStatement = S, Re.assertExpressionWrapper = Ye, Re.assertFile = P, Re.assertFlow = NL, Re.assertFlowBaseAnnotation = LL, Re.assertFlowDeclaration = ML, Re.assertFlowPredicate = RL, Re.assertFlowType = DL, Re.assertFor = Je, Re.assertForInStatement = x, Re.assertForOfStatement = ut, Re.assertForStatement = C, Re.assertForXStatement = gt, Re.assertFunction = It, Re.assertFunctionDeclaration = D, Re.assertFunctionExpression = w, Re.assertFunctionParent = _t, Re.assertFunctionTypeAnnotation = Us, Re.assertFunctionTypeParam = Sa, Re.assertGenericTypeAnnotation = Mo, Re.assertIdentifier = A, Re.assertIfStatement = I, Re.assertImmutable = Ap, Re.assertImport = Rt, Re.assertImportAttribute = _u, Re.assertImportDeclaration = bt, Re.assertImportDefaultSpecifier = vt, Re.assertImportNamespaceSpecifier = ge, Re.assertImportOrExportDeclaration = CL, Re.assertImportSpecifier = pe, Re.assertIndexedAccessType = Vo, Re.assertInferredPredicate = Cs, Re.assertInterfaceDeclaration = xa, Re.assertInterfaceExtends = tu, Re.assertInterfaceTypeAnnotation = Ro, Re.assertInterpreterDirective = a, Re.assertIntersectionTypeAnnotation = ru, Re.assertJSX = jL, Re.assertJSXAttribute = Wo, Re.assertJSXClosingElement = vu, Re.assertJSXClosingFragment = Cu, Re.assertJSXElement = Tu, Re.assertJSXEmptyExpression = no, Re.assertJSXExpressionContainer = Ho, Re.assertJSXFragment = wu, Re.assertJSXIdentifier = Su, Re.assertJSXMemberExpression = xu, Re.assertJSXNamespacedName = Hs, Re.assertJSXOpeningElement = Eu, Re.assertJSXOpeningFragment = Au, Re.assertJSXSpreadAttribute = es, Re.assertJSXSpreadChild = Ko, Re.assertJSXText = Pu, Re.assertLVal = Mi, Re.assertLabeledStatement = L, Re.assertLiteral = Kf, Re.assertLogicalExpression = M, Re.assertLoop = de, Re.assertMemberExpression = R, Re.assertMetaProperty = $e, Re.assertMethod = xL, Re.assertMiscellaneous = $L, Re.assertMixedTypeAnnotation = iu, Re.assertModuleDeclaration = k, Re.assertModuleExpression = _a, Re.assertModuleSpecifier = IL, Re.assertNewExpression = $, Re.assertNoop = zo, Re.assertNullLiteral = q, Re.assertNullLiteralTypeAnnotation = ga, Re.assertNullableTypeAnnotation = Fo, Re.assertNumberLiteral = HL, Re.assertNumberLiteralTypeAnnotation = Zn, Re.assertNumberTypeAnnotation = nu, Re.assertNumericLiteral = F, Re.assertObjectExpression = K, Re.assertObjectMember = EL, Re.assertObjectMethod = z, Re.assertObjectPattern = Q, Re.assertObjectProperty = W, Re.assertObjectTypeAnnotation = su, Re.assertObjectTypeCallProperty = jo, Re.assertObjectTypeIndexer = ou, Re.assertObjectTypeInternalSlot = au, Re.assertObjectTypeProperty = Ea, Re.assertObjectTypeSpreadProperty = Xa, Re.assertOpaqueType = Ja, Re.assertOptionalCallExpression = lr, Re.assertOptionalIndexedAccessType = Aa, Re.assertOptionalMemberExpression = lt, Re.assertParenthesizedExpression = ne, Re.assertPattern = AL, Re.assertPatternLike = Li, Re.assertPipelineBareFunction = Nu, Re.assertPipelinePrimaryTopicReference = Ia, Re.assertPipelineTopicExpression = Is, Re.assertPlaceholder = so, Re.assertPrivate = OL, Re.assertPrivateName = on, Re.assertProgram = V, Re.assertProperty = PL, Re.assertPureish = Ht, Re.assertQualifiedTypeIdentifier = Qa, Re.assertRecordExpression = Xo, Re.assertRegExpLiteral = N, Re.assertRegexLiteral = KL, Re.assertRestElement = Y, Re.assertRestProperty = zL, Re.assertReturnStatement = G, Re.assertScopable = B, Re.assertSequenceExpression = le, Re.assertSpreadElement = X, Re.assertSpreadProperty = GL, Re.assertStandardized = Ks, Re.assertStatement = b, Re.assertStaticBlock = _n, Re.assertStringLiteral = O, Re.assertStringLiteralTypeAnnotation = lu, Re.assertStringTypeAnnotation = uu, Re.assertSuper = ce, Re.assertSwitchCase = ae, Re.assertSwitchStatement = be, Re.assertSymbolTypeAnnotation = cu, Re.assertTSAnyKeyword = Wt, Re.assertTSArrayType = Ft, Re.assertTSAsExpression = ul, Re.assertTSBaseType = WL, Re.assertTSBigIntKeyword = Zo, Re.assertTSBooleanKeyword = Fu, Re.assertTSCallSignatureDeclaration = Lu, Re.assertTSConditionalType = il, Re.assertTSConstructSignatureDeclaration = Gn, Re.assertTSConstructorType = el, Re.assertTSDeclareFunction = ka, Re.assertTSDeclareMethod = Oa, Re.assertTSEntityName = Tn, Re.assertTSEnumDeclaration = oc, Re.assertTSEnumMember = lc, Re.assertTSExportAssignment = pl, Re.assertTSExpressionWithTypeArguments = hs, Re.assertTSExternalModuleReference = pc, Re.assertTSFunctionType = zu, Re.assertTSImportEqualsDeclaration = lo, Re.assertTSImportType = cc, Re.assertTSIndexSignature = Bu, Re.assertTSIndexedAccessType = ic, Re.assertTSInferType = rc, Re.assertTSInstantiationExpression = sc, Re.assertTSInterfaceBody = ol, Re.assertTSInterfaceDeclaration = al, Re.assertTSIntersectionType = tc, Re.assertTSIntrinsicKeyword = ju, Re.assertTSLiteralType = Di, Re.assertTSMappedType = nc, Re.assertTSMethodSignature = Ru, Re.assertTSModuleBlock = uc, Re.assertTSModuleDeclaration = oo, Re.assertTSNamedTupleMember = Zu, Re.assertTSNamespaceExportDeclaration = hc, Re.assertTSNeverKeyword = $u, Re.assertTSNonNullExpression = fc, Re.assertTSNullKeyword = Uu, Re.assertTSNumberKeyword = qu, Re.assertTSObjectKeyword = Vu, Re.assertTSOptionalType = rl, Re.assertTSParameterProperty = Du, Re.assertTSParenthesizedType = nl, Re.assertTSPropertySignature = Mu, Re.assertTSQualifiedName = ao, Re.assertTSRestType = Qu, Re.assertTSSatisfiesExpression = ac, Re.assertTSStringKeyword = fs, Re.assertTSSymbolKeyword = ts, Re.assertTSThisType = Ku, Re.assertTSTupleType = Ju, Re.assertTSType = VL, Re.assertTSTypeAliasDeclaration = ll, Re.assertTSTypeAnnotation = dc, Re.assertTSTypeAssertion = cl, Re.assertTSTypeElement = qL, Re.assertTSTypeLiteral = tl, Re.assertTSTypeOperator = sl, Re.assertTSTypeParameter = gc, Re.assertTSTypeParameterDeclaration = yc, Re.assertTSTypeParameterInstantiation = mc, Re.assertTSTypePredicate = Yu, Re.assertTSTypeQuery = Xu, Re.assertTSTypeReference = Gu, Re.assertTSUndefinedKeyword = ks, Re.assertTSUnionType = ec, Re.assertTSUnknownKeyword = Wu, Re.assertTSVoidKeyword = Hu, Re.assertTaggedTemplateExpression = U, Re.assertTemplateElement = Ee, Re.assertTemplateLiteral = Qe, Re.assertTerminatorless = _, Re.assertThisExpression = ye, Re.assertThisTypeAnnotation = pu, Re.assertThrowStatement = fe, Re.assertTopicReference = Qo, Re.assertTryStatement = Z, Re.assertTupleExpression = _s, Re.assertTupleTypeAnnotation = Za, Re.assertTypeAlias = to, Re.assertTypeAnnotation = fu, Re.assertTypeCastExpression = hu, Re.assertTypeParameter = du, Re.assertTypeParameterDeclaration = $o, Re.assertTypeParameterInstantiation = mu, Re.assertTypeScript = UL, Re.assertTypeofTypeAnnotation = eo, Re.assertUnaryExpression = ue, Re.assertUnaryLike = wL, Re.assertUnionTypeAnnotation = qs, Re.assertUpdateExpression = me, Re.assertUserWhitespacable = SL, Re.assertV8IntrinsicIdentifier = Go, Re.assertVariableDeclaration = xe, Re.assertVariableDeclarator = Pe, Re.assertVariance = Vs, Re.assertVoidTypeAnnotation = yu, Re.assertWhile = Ge, Re.assertWhileStatement = ve, Re.assertWithStatement = Xe, Re.assertYieldExpression = ft;
  var e = GT(), t = b_();
  function r(E, J, Oq) {
    if (!(0, e.default)(E, J, Oq))
      throw new Error('Expected type "'.concat(E, '" with option ').concat(JSON.stringify(Oq), ", ") + 'but instead got "'.concat(J.type, '".'));
  }
  function i(E, J) {
    r("ArrayExpression", E, J);
  }
  function n(E, J) {
    r("AssignmentExpression", E, J);
  }
  function s(E, J) {
    r("BinaryExpression", E, J);
  }
  function a(E, J) {
    r("InterpreterDirective", E, J);
  }
  function o(E, J) {
    r("Directive", E, J);
  }
  function l(E, J) {
    r("DirectiveLiteral", E, J);
  }
  function u(E, J) {
    r("BlockStatement", E, J);
  }
  function c(E, J) {
    r("BreakStatement", E, J);
  }
  function f(E, J) {
    r("CallExpression", E, J);
  }
  function h(E, J) {
    r("CatchClause", E, J);
  }
  function m(E, J) {
    r("ConditionalExpression", E, J);
  }
  function g(E, J) {
    r("ContinueStatement", E, J);
  }
  function y(E, J) {
    r("DebuggerStatement", E, J);
  }
  function v(E, J) {
    r("DoWhileStatement", E, J);
  }
  function T(E, J) {
    r("EmptyStatement", E, J);
  }
  function S(E, J) {
    r("ExpressionStatement", E, J);
  }
  function P(E, J) {
    r("File", E, J);
  }
  function x(E, J) {
    r("ForInStatement", E, J);
  }
  function C(E, J) {
    r("ForStatement", E, J);
  }
  function D(E, J) {
    r("FunctionDeclaration", E, J);
  }
  function w(E, J) {
    r("FunctionExpression", E, J);
  }
  function A(E, J) {
    r("Identifier", E, J);
  }
  function I(E, J) {
    r("IfStatement", E, J);
  }
  function L(E, J) {
    r("LabeledStatement", E, J);
  }
  function O(E, J) {
    r("StringLiteral", E, J);
  }
  function F(E, J) {
    r("NumericLiteral", E, J);
  }
  function q(E, J) {
    r("NullLiteral", E, J);
  }
  function j(E, J) {
    r("BooleanLiteral", E, J);
  }
  function N(E, J) {
    r("RegExpLiteral", E, J);
  }
  function M(E, J) {
    r("LogicalExpression", E, J);
  }
  function R(E, J) {
    r("MemberExpression", E, J);
  }
  function $(E, J) {
    r("NewExpression", E, J);
  }
  function V(E, J) {
    r("Program", E, J);
  }
  function K(E, J) {
    r("ObjectExpression", E, J);
  }
  function z(E, J) {
    r("ObjectMethod", E, J);
  }
  function W(E, J) {
    r("ObjectProperty", E, J);
  }
  function Y(E, J) {
    r("RestElement", E, J);
  }
  function G(E, J) {
    r("ReturnStatement", E, J);
  }
  function le(E, J) {
    r("SequenceExpression", E, J);
  }
  function ne(E, J) {
    r("ParenthesizedExpression", E, J);
  }
  function ae(E, J) {
    r("SwitchCase", E, J);
  }
  function be(E, J) {
    r("SwitchStatement", E, J);
  }
  function ye(E, J) {
    r("ThisExpression", E, J);
  }
  function fe(E, J) {
    r("ThrowStatement", E, J);
  }
  function Z(E, J) {
    r("TryStatement", E, J);
  }
  function ue(E, J) {
    r("UnaryExpression", E, J);
  }
  function me(E, J) {
    r("UpdateExpression", E, J);
  }
  function xe(E, J) {
    r("VariableDeclaration", E, J);
  }
  function Pe(E, J) {
    r("VariableDeclarator", E, J);
  }
  function ve(E, J) {
    r("WhileStatement", E, J);
  }
  function Xe(E, J) {
    r("WithStatement", E, J);
  }
  function st(E, J) {
    r("AssignmentPattern", E, J);
  }
  function Se(E, J) {
    r("ArrayPattern", E, J);
  }
  function oe(E, J) {
    r("ArrowFunctionExpression", E, J);
  }
  function te(E, J) {
    r("ClassBody", E, J);
  }
  function se(E, J) {
    r("ClassExpression", E, J);
  }
  function re(E, J) {
    r("ClassDeclaration", E, J);
  }
  function Te(E, J) {
    r("ExportAllDeclaration", E, J);
  }
  function ze(E, J) {
    r("ExportDefaultDeclaration", E, J);
  }
  function Ze(E, J) {
    r("ExportNamedDeclaration", E, J);
  }
  function pt(E, J) {
    r("ExportSpecifier", E, J);
  }
  function ut(E, J) {
    r("ForOfStatement", E, J);
  }
  function bt(E, J) {
    r("ImportDeclaration", E, J);
  }
  function vt(E, J) {
    r("ImportDefaultSpecifier", E, J);
  }
  function ge(E, J) {
    r("ImportNamespaceSpecifier", E, J);
  }
  function pe(E, J) {
    r("ImportSpecifier", E, J);
  }
  function $e(E, J) {
    r("MetaProperty", E, J);
  }
  function ie(E, J) {
    r("ClassMethod", E, J);
  }
  function Q(E, J) {
    r("ObjectPattern", E, J);
  }
  function X(E, J) {
    r("SpreadElement", E, J);
  }
  function ce(E, J) {
    r("Super", E, J);
  }
  function U(E, J) {
    r("TaggedTemplateExpression", E, J);
  }
  function Ee(E, J) {
    r("TemplateElement", E, J);
  }
  function Qe(E, J) {
    r("TemplateLiteral", E, J);
  }
  function ft(E, J) {
    r("YieldExpression", E, J);
  }
  function ht(E, J) {
    r("AwaitExpression", E, J);
  }
  function Rt(E, J) {
    r("Import", E, J);
  }
  function Ot(E, J) {
    r("BigIntLiteral", E, J);
  }
  function Tt(E, J) {
    r("ExportNamespaceSpecifier", E, J);
  }
  function lt(E, J) {
    r("OptionalMemberExpression", E, J);
  }
  function lr(E, J) {
    r("OptionalCallExpression", E, J);
  }
  function kr(E, J) {
    r("ClassProperty", E, J);
  }
  function Ai(E, J) {
    r("ClassAccessorProperty", E, J);
  }
  function an(E, J) {
    r("ClassPrivateProperty", E, J);
  }
  function Nn(E, J) {
    r("ClassPrivateMethod", E, J);
  }
  function on(E, J) {
    r("PrivateName", E, J);
  }
  function _n(E, J) {
    r("StaticBlock", E, J);
  }
  function en(E, J) {
    r("AnyTypeAnnotation", E, J);
  }
  function bi(E, J) {
    r("ArrayTypeAnnotation", E, J);
  }
  function No(E, J) {
    r("BooleanTypeAnnotation", E, J);
  }
  function us(E, J) {
    r("BooleanLiteralTypeAnnotation", E, J);
  }
  function ga(E, J) {
    r("NullLiteralTypeAnnotation", E, J);
  }
  function As(E, J) {
    r("ClassImplements", E, J);
  }
  function ba(E, J) {
    r("DeclareClass", E, J);
  }
  function Bn(E, J) {
    r("DeclareFunction", E, J);
  }
  function cs(E, J) {
    r("DeclareInterface", E, J);
  }
  function Do(E, J) {
    r("DeclareModule", E, J);
  }
  function ps(E, J) {
    r("DeclareModuleExports", E, J);
  }
  function va(E, J) {
    r("DeclareTypeAlias", E, J);
  }
  function Lo(E, J) {
    r("DeclareOpaqueType", E, J);
  }
  function Ta(E, J) {
    r("DeclareVariable", E, J);
  }
  function Ka(E, J) {
    r("DeclareExportDeclaration", E, J);
  }
  function za(E, J) {
    r("DeclareExportAllDeclaration", E, J);
  }
  function Ga(E, J) {
    r("DeclaredPredicate", E, J);
  }
  function Ya(E, J) {
    r("ExistsTypeAnnotation", E, J);
  }
  function Us(E, J) {
    r("FunctionTypeAnnotation", E, J);
  }
  function Sa(E, J) {
    r("FunctionTypeParam", E, J);
  }
  function Mo(E, J) {
    r("GenericTypeAnnotation", E, J);
  }
  function Cs(E, J) {
    r("InferredPredicate", E, J);
  }
  function tu(E, J) {
    r("InterfaceExtends", E, J);
  }
  function xa(E, J) {
    r("InterfaceDeclaration", E, J);
  }
  function Ro(E, J) {
    r("InterfaceTypeAnnotation", E, J);
  }
  function ru(E, J) {
    r("IntersectionTypeAnnotation", E, J);
  }
  function iu(E, J) {
    r("MixedTypeAnnotation", E, J);
  }
  function Bo(E, J) {
    r("EmptyTypeAnnotation", E, J);
  }
  function Fo(E, J) {
    r("NullableTypeAnnotation", E, J);
  }
  function Zn(E, J) {
    r("NumberLiteralTypeAnnotation", E, J);
  }
  function nu(E, J) {
    r("NumberTypeAnnotation", E, J);
  }
  function su(E, J) {
    r("ObjectTypeAnnotation", E, J);
  }
  function au(E, J) {
    r("ObjectTypeInternalSlot", E, J);
  }
  function jo(E, J) {
    r("ObjectTypeCallProperty", E, J);
  }
  function ou(E, J) {
    r("ObjectTypeIndexer", E, J);
  }
  function Ea(E, J) {
    r("ObjectTypeProperty", E, J);
  }
  function Xa(E, J) {
    r("ObjectTypeSpreadProperty", E, J);
  }
  function Ja(E, J) {
    r("OpaqueType", E, J);
  }
  function Qa(E, J) {
    r("QualifiedTypeIdentifier", E, J);
  }
  function lu(E, J) {
    r("StringLiteralTypeAnnotation", E, J);
  }
  function uu(E, J) {
    r("StringTypeAnnotation", E, J);
  }
  function cu(E, J) {
    r("SymbolTypeAnnotation", E, J);
  }
  function pu(E, J) {
    r("ThisTypeAnnotation", E, J);
  }
  function Za(E, J) {
    r("TupleTypeAnnotation", E, J);
  }
  function eo(E, J) {
    r("TypeofTypeAnnotation", E, J);
  }
  function to(E, J) {
    r("TypeAlias", E, J);
  }
  function fu(E, J) {
    r("TypeAnnotation", E, J);
  }
  function hu(E, J) {
    r("TypeCastExpression", E, J);
  }
  function du(E, J) {
    r("TypeParameter", E, J);
  }
  function $o(E, J) {
    r("TypeParameterDeclaration", E, J);
  }
  function mu(E, J) {
    r("TypeParameterInstantiation", E, J);
  }
  function qs(E, J) {
    r("UnionTypeAnnotation", E, J);
  }
  function Vs(E, J) {
    r("Variance", E, J);
  }
  function yu(E, J) {
    r("VoidTypeAnnotation", E, J);
  }
  function Uo(E, J) {
    r("EnumDeclaration", E, J);
  }
  function Pa(E, J) {
    r("EnumBooleanBody", E, J);
  }
  function Ws(E, J) {
    r("EnumNumberBody", E, J);
  }
  function ro(E, J) {
    r("EnumStringBody", E, J);
  }
  function wa(E, J) {
    r("EnumSymbolBody", E, J);
  }
  function qo(E, J) {
    r("EnumBooleanMember", E, J);
  }
  function gu(E, J) {
    r("EnumNumberMember", E, J);
  }
  function io(E, J) {
    r("EnumStringMember", E, J);
  }
  function bu(E, J) {
    r("EnumDefaultedMember", E, J);
  }
  function Vo(E, J) {
    r("IndexedAccessType", E, J);
  }
  function Aa(E, J) {
    r("OptionalIndexedAccessType", E, J);
  }
  function Wo(E, J) {
    r("JSXAttribute", E, J);
  }
  function vu(E, J) {
    r("JSXClosingElement", E, J);
  }
  function Tu(E, J) {
    r("JSXElement", E, J);
  }
  function no(E, J) {
    r("JSXEmptyExpression", E, J);
  }
  function Ho(E, J) {
    r("JSXExpressionContainer", E, J);
  }
  function Ko(E, J) {
    r("JSXSpreadChild", E, J);
  }
  function Su(E, J) {
    r("JSXIdentifier", E, J);
  }
  function xu(E, J) {
    r("JSXMemberExpression", E, J);
  }
  function Hs(E, J) {
    r("JSXNamespacedName", E, J);
  }
  function Eu(E, J) {
    r("JSXOpeningElement", E, J);
  }
  function es(E, J) {
    r("JSXSpreadAttribute", E, J);
  }
  function Pu(E, J) {
    r("JSXText", E, J);
  }
  function wu(E, J) {
    r("JSXFragment", E, J);
  }
  function Au(E, J) {
    r("JSXOpeningFragment", E, J);
  }
  function Cu(E, J) {
    r("JSXClosingFragment", E, J);
  }
  function zo(E, J) {
    r("Noop", E, J);
  }
  function so(E, J) {
    r("Placeholder", E, J);
  }
  function Go(E, J) {
    r("V8IntrinsicIdentifier", E, J);
  }
  function Ca(E, J) {
    r("ArgumentPlaceholder", E, J);
  }
  function Yo(E, J) {
    r("BindExpression", E, J);
  }
  function _u(E, J) {
    r("ImportAttribute", E, J);
  }
  function Iu(E, J) {
    r("Decorator", E, J);
  }
  function ku(E, J) {
    r("DoExpression", E, J);
  }
  function Ou(E, J) {
    r("ExportDefaultSpecifier", E, J);
  }
  function Xo(E, J) {
    r("RecordExpression", E, J);
  }
  function _s(E, J) {
    r("TupleExpression", E, J);
  }
  function Jo(E, J) {
    r("DecimalLiteral", E, J);
  }
  function _a(E, J) {
    r("ModuleExpression", E, J);
  }
  function Qo(E, J) {
    r("TopicReference", E, J);
  }
  function Is(E, J) {
    r("PipelineTopicExpression", E, J);
  }
  function Nu(E, J) {
    r("PipelineBareFunction", E, J);
  }
  function Ia(E, J) {
    r("PipelinePrimaryTopicReference", E, J);
  }
  function Du(E, J) {
    r("TSParameterProperty", E, J);
  }
  function ka(E, J) {
    r("TSDeclareFunction", E, J);
  }
  function Oa(E, J) {
    r("TSDeclareMethod", E, J);
  }
  function ao(E, J) {
    r("TSQualifiedName", E, J);
  }
  function Lu(E, J) {
    r("TSCallSignatureDeclaration", E, J);
  }
  function Gn(E, J) {
    r("TSConstructSignatureDeclaration", E, J);
  }
  function Mu(E, J) {
    r("TSPropertySignature", E, J);
  }
  function Ru(E, J) {
    r("TSMethodSignature", E, J);
  }
  function Bu(E, J) {
    r("TSIndexSignature", E, J);
  }
  function Wt(E, J) {
    r("TSAnyKeyword", E, J);
  }
  function Fu(E, J) {
    r("TSBooleanKeyword", E, J);
  }
  function Zo(E, J) {
    r("TSBigIntKeyword", E, J);
  }
  function ju(E, J) {
    r("TSIntrinsicKeyword", E, J);
  }
  function $u(E, J) {
    r("TSNeverKeyword", E, J);
  }
  function Uu(E, J) {
    r("TSNullKeyword", E, J);
  }
  function qu(E, J) {
    r("TSNumberKeyword", E, J);
  }
  function Vu(E, J) {
    r("TSObjectKeyword", E, J);
  }
  function fs(E, J) {
    r("TSStringKeyword", E, J);
  }
  function ts(E, J) {
    r("TSSymbolKeyword", E, J);
  }
  function ks(E, J) {
    r("TSUndefinedKeyword", E, J);
  }
  function Wu(E, J) {
    r("TSUnknownKeyword", E, J);
  }
  function Hu(E, J) {
    r("TSVoidKeyword", E, J);
  }
  function Ku(E, J) {
    r("TSThisType", E, J);
  }
  function zu(E, J) {
    r("TSFunctionType", E, J);
  }
  function el(E, J) {
    r("TSConstructorType", E, J);
  }
  function Gu(E, J) {
    r("TSTypeReference", E, J);
  }
  function Yu(E, J) {
    r("TSTypePredicate", E, J);
  }
  function Xu(E, J) {
    r("TSTypeQuery", E, J);
  }
  function tl(E, J) {
    r("TSTypeLiteral", E, J);
  }
  function Ft(E, J) {
    r("TSArrayType", E, J);
  }
  function Ju(E, J) {
    r("TSTupleType", E, J);
  }
  function rl(E, J) {
    r("TSOptionalType", E, J);
  }
  function Qu(E, J) {
    r("TSRestType", E, J);
  }
  function Zu(E, J) {
    r("TSNamedTupleMember", E, J);
  }
  function ec(E, J) {
    r("TSUnionType", E, J);
  }
  function tc(E, J) {
    r("TSIntersectionType", E, J);
  }
  function il(E, J) {
    r("TSConditionalType", E, J);
  }
  function rc(E, J) {
    r("TSInferType", E, J);
  }
  function nl(E, J) {
    r("TSParenthesizedType", E, J);
  }
  function sl(E, J) {
    r("TSTypeOperator", E, J);
  }
  function ic(E, J) {
    r("TSIndexedAccessType", E, J);
  }
  function nc(E, J) {
    r("TSMappedType", E, J);
  }
  function Di(E, J) {
    r("TSLiteralType", E, J);
  }
  function hs(E, J) {
    r("TSExpressionWithTypeArguments", E, J);
  }
  function al(E, J) {
    r("TSInterfaceDeclaration", E, J);
  }
  function ol(E, J) {
    r("TSInterfaceBody", E, J);
  }
  function ll(E, J) {
    r("TSTypeAliasDeclaration", E, J);
  }
  function sc(E, J) {
    r("TSInstantiationExpression", E, J);
  }
  function ul(E, J) {
    r("TSAsExpression", E, J);
  }
  function ac(E, J) {
    r("TSSatisfiesExpression", E, J);
  }
  function cl(E, J) {
    r("TSTypeAssertion", E, J);
  }
  function oc(E, J) {
    r("TSEnumDeclaration", E, J);
  }
  function lc(E, J) {
    r("TSEnumMember", E, J);
  }
  function oo(E, J) {
    r("TSModuleDeclaration", E, J);
  }
  function uc(E, J) {
    r("TSModuleBlock", E, J);
  }
  function cc(E, J) {
    r("TSImportType", E, J);
  }
  function lo(E, J) {
    r("TSImportEqualsDeclaration", E, J);
  }
  function pc(E, J) {
    r("TSExternalModuleReference", E, J);
  }
  function fc(E, J) {
    r("TSNonNullExpression", E, J);
  }
  function pl(E, J) {
    r("TSExportAssignment", E, J);
  }
  function hc(E, J) {
    r("TSNamespaceExportDeclaration", E, J);
  }
  function dc(E, J) {
    r("TSTypeAnnotation", E, J);
  }
  function mc(E, J) {
    r("TSTypeParameterInstantiation", E, J);
  }
  function yc(E, J) {
    r("TSTypeParameterDeclaration", E, J);
  }
  function gc(E, J) {
    r("TSTypeParameter", E, J);
  }
  function Ks(E, J) {
    r("Standardized", E, J);
  }
  function fl(E, J) {
    r("Expression", E, J);
  }
  function bc(E, J) {
    r("Binary", E, J);
  }
  function B(E, J) {
    r("Scopable", E, J);
  }
  function d(E, J) {
    r("BlockParent", E, J);
  }
  function p(E, J) {
    r("Block", E, J);
  }
  function b(E, J) {
    r("Statement", E, J);
  }
  function _(E, J) {
    r("Terminatorless", E, J);
  }
  function H(E, J) {
    r("CompletionStatement", E, J);
  }
  function ee(E, J) {
    r("Conditional", E, J);
  }
  function de(E, J) {
    r("Loop", E, J);
  }
  function Ge(E, J) {
    r("While", E, J);
  }
  function Ye(E, J) {
    r("ExpressionWrapper", E, J);
  }
  function Je(E, J) {
    r("For", E, J);
  }
  function gt(E, J) {
    r("ForXStatement", E, J);
  }
  function It(E, J) {
    r("Function", E, J);
  }
  function _t(E, J) {
    r("FunctionParent", E, J);
  }
  function Ht(E, J) {
    r("Pureish", E, J);
  }
  function zi(E, J) {
    r("Declaration", E, J);
  }
  function Li(E, J) {
    r("PatternLike", E, J);
  }
  function Mi(E, J) {
    r("LVal", E, J);
  }
  function Tn(E, J) {
    r("TSEntityName", E, J);
  }
  function Kf(E, J) {
    r("Literal", E, J);
  }
  function Ap(E, J) {
    r("Immutable", E, J);
  }
  function SL(E, J) {
    r("UserWhitespacable", E, J);
  }
  function xL(E, J) {
    r("Method", E, J);
  }
  function EL(E, J) {
    r("ObjectMember", E, J);
  }
  function PL(E, J) {
    r("Property", E, J);
  }
  function wL(E, J) {
    r("UnaryLike", E, J);
  }
  function AL(E, J) {
    r("Pattern", E, J);
  }
  function LS(E, J) {
    r("Class", E, J);
  }
  function CL(E, J) {
    r("ImportOrExportDeclaration", E, J);
  }
  function _L(E, J) {
    r("ExportDeclaration", E, J);
  }
  function IL(E, J) {
    r("ModuleSpecifier", E, J);
  }
  function kL(E, J) {
    r("Accessor", E, J);
  }
  function OL(E, J) {
    r("Private", E, J);
  }
  function NL(E, J) {
    r("Flow", E, J);
  }
  function DL(E, J) {
    r("FlowType", E, J);
  }
  function LL(E, J) {
    r("FlowBaseAnnotation", E, J);
  }
  function ML(E, J) {
    r("FlowDeclaration", E, J);
  }
  function RL(E, J) {
    r("FlowPredicate", E, J);
  }
  function BL(E, J) {
    r("EnumBody", E, J);
  }
  function FL(E, J) {
    r("EnumMember", E, J);
  }
  function jL(E, J) {
    r("JSX", E, J);
  }
  function $L(E, J) {
    r("Miscellaneous", E, J);
  }
  function UL(E, J) {
    r("TypeScript", E, J);
  }
  function qL(E, J) {
    r("TSTypeElement", E, J);
  }
  function VL(E, J) {
    r("TSType", E, J);
  }
  function WL(E, J) {
    r("TSBaseType", E, J);
  }
  function HL(E, J) {
    (0, t.default)("assertNumberLiteral", "assertNumericLiteral"), r("NumberLiteral", E, J);
  }
  function KL(E, J) {
    (0, t.default)("assertRegexLiteral", "assertRegExpLiteral"), r("RegexLiteral", E, J);
  }
  function zL(E, J) {
    (0, t.default)("assertRestProperty", "assertRestElement"), r("RestProperty", E, J);
  }
  function GL(E, J) {
    (0, t.default)("assertSpreadProperty", "assertSpreadElement"), r("SpreadProperty", E, J);
  }
  function k(E, J) {
    (0, t.default)("assertModuleDeclaration", "assertImportOrExportDeclaration"), r("ModuleDeclaration", E, J);
  }
  return Re;
}
var Pb = {}, Yz;
function zrt() {
  if (Yz)
    return Pb;
  Yz = 1, Object.defineProperty(Pb, "__esModule", {
    value: !0
  }), Pb.default = void 0;
  var e = _o(), t = r;
  Pb.default = t;
  function r(i) {
    switch (i) {
      case "string":
        return (0, e.stringTypeAnnotation)();
      case "number":
        return (0, e.numberTypeAnnotation)();
      case "undefined":
        return (0, e.voidTypeAnnotation)();
      case "boolean":
        return (0, e.booleanTypeAnnotation)();
      case "function":
        return (0, e.genericTypeAnnotation)((0, e.identifier)("Function"));
      case "object":
        return (0, e.genericTypeAnnotation)((0, e.identifier)("Object"));
      case "symbol":
        return (0, e.genericTypeAnnotation)((0, e.identifier)("Symbol"));
      case "bigint":
        return (0, e.anyTypeAnnotation)();
    }
    throw new Error("Invalid typeof value: " + i);
  }
  return Pb;
}
var Zx = {}, eE = {}, Xz;
function Rhe() {
  if (Xz)
    return eE;
  Xz = 1, Object.defineProperty(eE, "__esModule", {
    value: !0
  }), eE.default = r;
  var e = Kn();
  function t(i) {
    return (0, e.isIdentifier)(i) ? i.name : "".concat(i.id.name, ".").concat(t(i.qualification));
  }
  function r(i) {
    const n = Array.from(i), s = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Set(), l = [];
    for (let u = 0; u < n.length; u++) {
      const c = n[u];
      if (c && !(l.indexOf(c) >= 0)) {
        if ((0, e.isAnyTypeAnnotation)(c))
          return [c];
        if ((0, e.isFlowBaseAnnotation)(c)) {
          a.set(c.type, c);
          continue;
        }
        if ((0, e.isUnionTypeAnnotation)(c)) {
          o.has(c.types) || (n.push(...c.types), o.add(c.types));
          continue;
        }
        if ((0, e.isGenericTypeAnnotation)(c)) {
          const f = t(c.id);
          if (s.has(f)) {
            let h = s.get(f);
            h.typeParameters ? c.typeParameters && (h.typeParameters.params.push(...c.typeParameters.params), h.typeParameters.params = r(h.typeParameters.params)) : h = c.typeParameters;
          } else
            s.set(f, c);
          continue;
        }
        l.push(c);
      }
    }
    for (const [, u] of a)
      l.push(u);
    for (const [, u] of s)
      l.push(u);
    return l;
  }
  return eE;
}
var Jz;
function Grt() {
  if (Jz)
    return Zx;
  Jz = 1, Object.defineProperty(Zx, "__esModule", {
    value: !0
  }), Zx.default = r;
  var e = _o(), t = Rhe();
  function r(i) {
    const n = (0, t.default)(i);
    return n.length === 1 ? n[0] : (0, e.unionTypeAnnotation)(n);
  }
  return Zx;
}
var tE = {}, rE = {}, Qz;
function Yrt() {
  if (Qz)
    return rE;
  Qz = 1, Object.defineProperty(rE, "__esModule", {
    value: !0
  }), rE.default = r;
  var e = Kn();
  function t(i) {
    return (0, e.isIdentifier)(i) ? i.name : "".concat(i.right.name, ".").concat(t(i.left));
  }
  function r(i) {
    const n = Array.from(i), s = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Set(), l = [];
    for (let u = 0; u < n.length; u++) {
      const c = n[u];
      if (c && !(l.indexOf(c) >= 0)) {
        if ((0, e.isTSAnyKeyword)(c))
          return [c];
        if ((0, e.isTSBaseType)(c)) {
          a.set(c.type, c);
          continue;
        }
        if ((0, e.isTSUnionType)(c)) {
          o.has(c.types) || (n.push(...c.types), o.add(c.types));
          continue;
        }
        if ((0, e.isTSTypeReference)(c) && c.typeParameters) {
          const f = t(c.typeName);
          if (s.has(f)) {
            let h = s.get(f);
            h.typeParameters ? c.typeParameters && (h.typeParameters.params.push(...c.typeParameters.params), h.typeParameters.params = r(h.typeParameters.params)) : h = c.typeParameters;
          } else
            s.set(f, c);
          continue;
        }
        l.push(c);
      }
    }
    for (const [, u] of a)
      l.push(u);
    for (const [, u] of s)
      l.push(u);
    return l;
  }
  return rE;
}
var Zz;
function Xrt() {
  if (Zz)
    return tE;
  Zz = 1, Object.defineProperty(tE, "__esModule", {
    value: !0
  }), tE.default = i;
  var e = _o(), t = Yrt(), r = Kn();
  function i(n) {
    const s = n.map((o) => (0, r.isTSTypeAnnotation)(o) ? o.typeAnnotation : o), a = (0, t.default)(s);
    return a.length === 1 ? a[0] : (0, e.tsUnionType)(a);
  }
  return tE;
}
var yR = {}, eG;
function Jrt() {
  return eG || (eG = 1, function(e) {
    Object.defineProperty(e, "__esModule", {
      value: !0
    }), Object.defineProperty(e, "AnyTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.anyTypeAnnotation;
      }
    }), Object.defineProperty(e, "ArgumentPlaceholder", {
      enumerable: !0,
      get: function() {
        return t.argumentPlaceholder;
      }
    }), Object.defineProperty(e, "ArrayExpression", {
      enumerable: !0,
      get: function() {
        return t.arrayExpression;
      }
    }), Object.defineProperty(e, "ArrayPattern", {
      enumerable: !0,
      get: function() {
        return t.arrayPattern;
      }
    }), Object.defineProperty(e, "ArrayTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.arrayTypeAnnotation;
      }
    }), Object.defineProperty(e, "ArrowFunctionExpression", {
      enumerable: !0,
      get: function() {
        return t.arrowFunctionExpression;
      }
    }), Object.defineProperty(e, "AssignmentExpression", {
      enumerable: !0,
      get: function() {
        return t.assignmentExpression;
      }
    }), Object.defineProperty(e, "AssignmentPattern", {
      enumerable: !0,
      get: function() {
        return t.assignmentPattern;
      }
    }), Object.defineProperty(e, "AwaitExpression", {
      enumerable: !0,
      get: function() {
        return t.awaitExpression;
      }
    }), Object.defineProperty(e, "BigIntLiteral", {
      enumerable: !0,
      get: function() {
        return t.bigIntLiteral;
      }
    }), Object.defineProperty(e, "BinaryExpression", {
      enumerable: !0,
      get: function() {
        return t.binaryExpression;
      }
    }), Object.defineProperty(e, "BindExpression", {
      enumerable: !0,
      get: function() {
        return t.bindExpression;
      }
    }), Object.defineProperty(e, "BlockStatement", {
      enumerable: !0,
      get: function() {
        return t.blockStatement;
      }
    }), Object.defineProperty(e, "BooleanLiteral", {
      enumerable: !0,
      get: function() {
        return t.booleanLiteral;
      }
    }), Object.defineProperty(e, "BooleanLiteralTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.booleanLiteralTypeAnnotation;
      }
    }), Object.defineProperty(e, "BooleanTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.booleanTypeAnnotation;
      }
    }), Object.defineProperty(e, "BreakStatement", {
      enumerable: !0,
      get: function() {
        return t.breakStatement;
      }
    }), Object.defineProperty(e, "CallExpression", {
      enumerable: !0,
      get: function() {
        return t.callExpression;
      }
    }), Object.defineProperty(e, "CatchClause", {
      enumerable: !0,
      get: function() {
        return t.catchClause;
      }
    }), Object.defineProperty(e, "ClassAccessorProperty", {
      enumerable: !0,
      get: function() {
        return t.classAccessorProperty;
      }
    }), Object.defineProperty(e, "ClassBody", {
      enumerable: !0,
      get: function() {
        return t.classBody;
      }
    }), Object.defineProperty(e, "ClassDeclaration", {
      enumerable: !0,
      get: function() {
        return t.classDeclaration;
      }
    }), Object.defineProperty(e, "ClassExpression", {
      enumerable: !0,
      get: function() {
        return t.classExpression;
      }
    }), Object.defineProperty(e, "ClassImplements", {
      enumerable: !0,
      get: function() {
        return t.classImplements;
      }
    }), Object.defineProperty(e, "ClassMethod", {
      enumerable: !0,
      get: function() {
        return t.classMethod;
      }
    }), Object.defineProperty(e, "ClassPrivateMethod", {
      enumerable: !0,
      get: function() {
        return t.classPrivateMethod;
      }
    }), Object.defineProperty(e, "ClassPrivateProperty", {
      enumerable: !0,
      get: function() {
        return t.classPrivateProperty;
      }
    }), Object.defineProperty(e, "ClassProperty", {
      enumerable: !0,
      get: function() {
        return t.classProperty;
      }
    }), Object.defineProperty(e, "ConditionalExpression", {
      enumerable: !0,
      get: function() {
        return t.conditionalExpression;
      }
    }), Object.defineProperty(e, "ContinueStatement", {
      enumerable: !0,
      get: function() {
        return t.continueStatement;
      }
    }), Object.defineProperty(e, "DebuggerStatement", {
      enumerable: !0,
      get: function() {
        return t.debuggerStatement;
      }
    }), Object.defineProperty(e, "DecimalLiteral", {
      enumerable: !0,
      get: function() {
        return t.decimalLiteral;
      }
    }), Object.defineProperty(e, "DeclareClass", {
      enumerable: !0,
      get: function() {
        return t.declareClass;
      }
    }), Object.defineProperty(e, "DeclareExportAllDeclaration", {
      enumerable: !0,
      get: function() {
        return t.declareExportAllDeclaration;
      }
    }), Object.defineProperty(e, "DeclareExportDeclaration", {
      enumerable: !0,
      get: function() {
        return t.declareExportDeclaration;
      }
    }), Object.defineProperty(e, "DeclareFunction", {
      enumerable: !0,
      get: function() {
        return t.declareFunction;
      }
    }), Object.defineProperty(e, "DeclareInterface", {
      enumerable: !0,
      get: function() {
        return t.declareInterface;
      }
    }), Object.defineProperty(e, "DeclareModule", {
      enumerable: !0,
      get: function() {
        return t.declareModule;
      }
    }), Object.defineProperty(e, "DeclareModuleExports", {
      enumerable: !0,
      get: function() {
        return t.declareModuleExports;
      }
    }), Object.defineProperty(e, "DeclareOpaqueType", {
      enumerable: !0,
      get: function() {
        return t.declareOpaqueType;
      }
    }), Object.defineProperty(e, "DeclareTypeAlias", {
      enumerable: !0,
      get: function() {
        return t.declareTypeAlias;
      }
    }), Object.defineProperty(e, "DeclareVariable", {
      enumerable: !0,
      get: function() {
        return t.declareVariable;
      }
    }), Object.defineProperty(e, "DeclaredPredicate", {
      enumerable: !0,
      get: function() {
        return t.declaredPredicate;
      }
    }), Object.defineProperty(e, "Decorator", {
      enumerable: !0,
      get: function() {
        return t.decorator;
      }
    }), Object.defineProperty(e, "Directive", {
      enumerable: !0,
      get: function() {
        return t.directive;
      }
    }), Object.defineProperty(e, "DirectiveLiteral", {
      enumerable: !0,
      get: function() {
        return t.directiveLiteral;
      }
    }), Object.defineProperty(e, "DoExpression", {
      enumerable: !0,
      get: function() {
        return t.doExpression;
      }
    }), Object.defineProperty(e, "DoWhileStatement", {
      enumerable: !0,
      get: function() {
        return t.doWhileStatement;
      }
    }), Object.defineProperty(e, "EmptyStatement", {
      enumerable: !0,
      get: function() {
        return t.emptyStatement;
      }
    }), Object.defineProperty(e, "EmptyTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.emptyTypeAnnotation;
      }
    }), Object.defineProperty(e, "EnumBooleanBody", {
      enumerable: !0,
      get: function() {
        return t.enumBooleanBody;
      }
    }), Object.defineProperty(e, "EnumBooleanMember", {
      enumerable: !0,
      get: function() {
        return t.enumBooleanMember;
      }
    }), Object.defineProperty(e, "EnumDeclaration", {
      enumerable: !0,
      get: function() {
        return t.enumDeclaration;
      }
    }), Object.defineProperty(e, "EnumDefaultedMember", {
      enumerable: !0,
      get: function() {
        return t.enumDefaultedMember;
      }
    }), Object.defineProperty(e, "EnumNumberBody", {
      enumerable: !0,
      get: function() {
        return t.enumNumberBody;
      }
    }), Object.defineProperty(e, "EnumNumberMember", {
      enumerable: !0,
      get: function() {
        return t.enumNumberMember;
      }
    }), Object.defineProperty(e, "EnumStringBody", {
      enumerable: !0,
      get: function() {
        return t.enumStringBody;
      }
    }), Object.defineProperty(e, "EnumStringMember", {
      enumerable: !0,
      get: function() {
        return t.enumStringMember;
      }
    }), Object.defineProperty(e, "EnumSymbolBody", {
      enumerable: !0,
      get: function() {
        return t.enumSymbolBody;
      }
    }), Object.defineProperty(e, "ExistsTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.existsTypeAnnotation;
      }
    }), Object.defineProperty(e, "ExportAllDeclaration", {
      enumerable: !0,
      get: function() {
        return t.exportAllDeclaration;
      }
    }), Object.defineProperty(e, "ExportDefaultDeclaration", {
      enumerable: !0,
      get: function() {
        return t.exportDefaultDeclaration;
      }
    }), Object.defineProperty(e, "ExportDefaultSpecifier", {
      enumerable: !0,
      get: function() {
        return t.exportDefaultSpecifier;
      }
    }), Object.defineProperty(e, "ExportNamedDeclaration", {
      enumerable: !0,
      get: function() {
        return t.exportNamedDeclaration;
      }
    }), Object.defineProperty(e, "ExportNamespaceSpecifier", {
      enumerable: !0,
      get: function() {
        return t.exportNamespaceSpecifier;
      }
    }), Object.defineProperty(e, "ExportSpecifier", {
      enumerable: !0,
      get: function() {
        return t.exportSpecifier;
      }
    }), Object.defineProperty(e, "ExpressionStatement", {
      enumerable: !0,
      get: function() {
        return t.expressionStatement;
      }
    }), Object.defineProperty(e, "File", {
      enumerable: !0,
      get: function() {
        return t.file;
      }
    }), Object.defineProperty(e, "ForInStatement", {
      enumerable: !0,
      get: function() {
        return t.forInStatement;
      }
    }), Object.defineProperty(e, "ForOfStatement", {
      enumerable: !0,
      get: function() {
        return t.forOfStatement;
      }
    }), Object.defineProperty(e, "ForStatement", {
      enumerable: !0,
      get: function() {
        return t.forStatement;
      }
    }), Object.defineProperty(e, "FunctionDeclaration", {
      enumerable: !0,
      get: function() {
        return t.functionDeclaration;
      }
    }), Object.defineProperty(e, "FunctionExpression", {
      enumerable: !0,
      get: function() {
        return t.functionExpression;
      }
    }), Object.defineProperty(e, "FunctionTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.functionTypeAnnotation;
      }
    }), Object.defineProperty(e, "FunctionTypeParam", {
      enumerable: !0,
      get: function() {
        return t.functionTypeParam;
      }
    }), Object.defineProperty(e, "GenericTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.genericTypeAnnotation;
      }
    }), Object.defineProperty(e, "Identifier", {
      enumerable: !0,
      get: function() {
        return t.identifier;
      }
    }), Object.defineProperty(e, "IfStatement", {
      enumerable: !0,
      get: function() {
        return t.ifStatement;
      }
    }), Object.defineProperty(e, "Import", {
      enumerable: !0,
      get: function() {
        return t.import;
      }
    }), Object.defineProperty(e, "ImportAttribute", {
      enumerable: !0,
      get: function() {
        return t.importAttribute;
      }
    }), Object.defineProperty(e, "ImportDeclaration", {
      enumerable: !0,
      get: function() {
        return t.importDeclaration;
      }
    }), Object.defineProperty(e, "ImportDefaultSpecifier", {
      enumerable: !0,
      get: function() {
        return t.importDefaultSpecifier;
      }
    }), Object.defineProperty(e, "ImportNamespaceSpecifier", {
      enumerable: !0,
      get: function() {
        return t.importNamespaceSpecifier;
      }
    }), Object.defineProperty(e, "ImportSpecifier", {
      enumerable: !0,
      get: function() {
        return t.importSpecifier;
      }
    }), Object.defineProperty(e, "IndexedAccessType", {
      enumerable: !0,
      get: function() {
        return t.indexedAccessType;
      }
    }), Object.defineProperty(e, "InferredPredicate", {
      enumerable: !0,
      get: function() {
        return t.inferredPredicate;
      }
    }), Object.defineProperty(e, "InterfaceDeclaration", {
      enumerable: !0,
      get: function() {
        return t.interfaceDeclaration;
      }
    }), Object.defineProperty(e, "InterfaceExtends", {
      enumerable: !0,
      get: function() {
        return t.interfaceExtends;
      }
    }), Object.defineProperty(e, "InterfaceTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.interfaceTypeAnnotation;
      }
    }), Object.defineProperty(e, "InterpreterDirective", {
      enumerable: !0,
      get: function() {
        return t.interpreterDirective;
      }
    }), Object.defineProperty(e, "IntersectionTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.intersectionTypeAnnotation;
      }
    }), Object.defineProperty(e, "JSXAttribute", {
      enumerable: !0,
      get: function() {
        return t.jsxAttribute;
      }
    }), Object.defineProperty(e, "JSXClosingElement", {
      enumerable: !0,
      get: function() {
        return t.jsxClosingElement;
      }
    }), Object.defineProperty(e, "JSXClosingFragment", {
      enumerable: !0,
      get: function() {
        return t.jsxClosingFragment;
      }
    }), Object.defineProperty(e, "JSXElement", {
      enumerable: !0,
      get: function() {
        return t.jsxElement;
      }
    }), Object.defineProperty(e, "JSXEmptyExpression", {
      enumerable: !0,
      get: function() {
        return t.jsxEmptyExpression;
      }
    }), Object.defineProperty(e, "JSXExpressionContainer", {
      enumerable: !0,
      get: function() {
        return t.jsxExpressionContainer;
      }
    }), Object.defineProperty(e, "JSXFragment", {
      enumerable: !0,
      get: function() {
        return t.jsxFragment;
      }
    }), Object.defineProperty(e, "JSXIdentifier", {
      enumerable: !0,
      get: function() {
        return t.jsxIdentifier;
      }
    }), Object.defineProperty(e, "JSXMemberExpression", {
      enumerable: !0,
      get: function() {
        return t.jsxMemberExpression;
      }
    }), Object.defineProperty(e, "JSXNamespacedName", {
      enumerable: !0,
      get: function() {
        return t.jsxNamespacedName;
      }
    }), Object.defineProperty(e, "JSXOpeningElement", {
      enumerable: !0,
      get: function() {
        return t.jsxOpeningElement;
      }
    }), Object.defineProperty(e, "JSXOpeningFragment", {
      enumerable: !0,
      get: function() {
        return t.jsxOpeningFragment;
      }
    }), Object.defineProperty(e, "JSXSpreadAttribute", {
      enumerable: !0,
      get: function() {
        return t.jsxSpreadAttribute;
      }
    }), Object.defineProperty(e, "JSXSpreadChild", {
      enumerable: !0,
      get: function() {
        return t.jsxSpreadChild;
      }
    }), Object.defineProperty(e, "JSXText", {
      enumerable: !0,
      get: function() {
        return t.jsxText;
      }
    }), Object.defineProperty(e, "LabeledStatement", {
      enumerable: !0,
      get: function() {
        return t.labeledStatement;
      }
    }), Object.defineProperty(e, "LogicalExpression", {
      enumerable: !0,
      get: function() {
        return t.logicalExpression;
      }
    }), Object.defineProperty(e, "MemberExpression", {
      enumerable: !0,
      get: function() {
        return t.memberExpression;
      }
    }), Object.defineProperty(e, "MetaProperty", {
      enumerable: !0,
      get: function() {
        return t.metaProperty;
      }
    }), Object.defineProperty(e, "MixedTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.mixedTypeAnnotation;
      }
    }), Object.defineProperty(e, "ModuleExpression", {
      enumerable: !0,
      get: function() {
        return t.moduleExpression;
      }
    }), Object.defineProperty(e, "NewExpression", {
      enumerable: !0,
      get: function() {
        return t.newExpression;
      }
    }), Object.defineProperty(e, "Noop", {
      enumerable: !0,
      get: function() {
        return t.noop;
      }
    }), Object.defineProperty(e, "NullLiteral", {
      enumerable: !0,
      get: function() {
        return t.nullLiteral;
      }
    }), Object.defineProperty(e, "NullLiteralTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.nullLiteralTypeAnnotation;
      }
    }), Object.defineProperty(e, "NullableTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.nullableTypeAnnotation;
      }
    }), Object.defineProperty(e, "NumberLiteral", {
      enumerable: !0,
      get: function() {
        return t.numberLiteral;
      }
    }), Object.defineProperty(e, "NumberLiteralTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.numberLiteralTypeAnnotation;
      }
    }), Object.defineProperty(e, "NumberTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.numberTypeAnnotation;
      }
    }), Object.defineProperty(e, "NumericLiteral", {
      enumerable: !0,
      get: function() {
        return t.numericLiteral;
      }
    }), Object.defineProperty(e, "ObjectExpression", {
      enumerable: !0,
      get: function() {
        return t.objectExpression;
      }
    }), Object.defineProperty(e, "ObjectMethod", {
      enumerable: !0,
      get: function() {
        return t.objectMethod;
      }
    }), Object.defineProperty(e, "ObjectPattern", {
      enumerable: !0,
      get: function() {
        return t.objectPattern;
      }
    }), Object.defineProperty(e, "ObjectProperty", {
      enumerable: !0,
      get: function() {
        return t.objectProperty;
      }
    }), Object.defineProperty(e, "ObjectTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.objectTypeAnnotation;
      }
    }), Object.defineProperty(e, "ObjectTypeCallProperty", {
      enumerable: !0,
      get: function() {
        return t.objectTypeCallProperty;
      }
    }), Object.defineProperty(e, "ObjectTypeIndexer", {
      enumerable: !0,
      get: function() {
        return t.objectTypeIndexer;
      }
    }), Object.defineProperty(e, "ObjectTypeInternalSlot", {
      enumerable: !0,
      get: function() {
        return t.objectTypeInternalSlot;
      }
    }), Object.defineProperty(e, "ObjectTypeProperty", {
      enumerable: !0,
      get: function() {
        return t.objectTypeProperty;
      }
    }), Object.defineProperty(e, "ObjectTypeSpreadProperty", {
      enumerable: !0,
      get: function() {
        return t.objectTypeSpreadProperty;
      }
    }), Object.defineProperty(e, "OpaqueType", {
      enumerable: !0,
      get: function() {
        return t.opaqueType;
      }
    }), Object.defineProperty(e, "OptionalCallExpression", {
      enumerable: !0,
      get: function() {
        return t.optionalCallExpression;
      }
    }), Object.defineProperty(e, "OptionalIndexedAccessType", {
      enumerable: !0,
      get: function() {
        return t.optionalIndexedAccessType;
      }
    }), Object.defineProperty(e, "OptionalMemberExpression", {
      enumerable: !0,
      get: function() {
        return t.optionalMemberExpression;
      }
    }), Object.defineProperty(e, "ParenthesizedExpression", {
      enumerable: !0,
      get: function() {
        return t.parenthesizedExpression;
      }
    }), Object.defineProperty(e, "PipelineBareFunction", {
      enumerable: !0,
      get: function() {
        return t.pipelineBareFunction;
      }
    }), Object.defineProperty(e, "PipelinePrimaryTopicReference", {
      enumerable: !0,
      get: function() {
        return t.pipelinePrimaryTopicReference;
      }
    }), Object.defineProperty(e, "PipelineTopicExpression", {
      enumerable: !0,
      get: function() {
        return t.pipelineTopicExpression;
      }
    }), Object.defineProperty(e, "Placeholder", {
      enumerable: !0,
      get: function() {
        return t.placeholder;
      }
    }), Object.defineProperty(e, "PrivateName", {
      enumerable: !0,
      get: function() {
        return t.privateName;
      }
    }), Object.defineProperty(e, "Program", {
      enumerable: !0,
      get: function() {
        return t.program;
      }
    }), Object.defineProperty(e, "QualifiedTypeIdentifier", {
      enumerable: !0,
      get: function() {
        return t.qualifiedTypeIdentifier;
      }
    }), Object.defineProperty(e, "RecordExpression", {
      enumerable: !0,
      get: function() {
        return t.recordExpression;
      }
    }), Object.defineProperty(e, "RegExpLiteral", {
      enumerable: !0,
      get: function() {
        return t.regExpLiteral;
      }
    }), Object.defineProperty(e, "RegexLiteral", {
      enumerable: !0,
      get: function() {
        return t.regexLiteral;
      }
    }), Object.defineProperty(e, "RestElement", {
      enumerable: !0,
      get: function() {
        return t.restElement;
      }
    }), Object.defineProperty(e, "RestProperty", {
      enumerable: !0,
      get: function() {
        return t.restProperty;
      }
    }), Object.defineProperty(e, "ReturnStatement", {
      enumerable: !0,
      get: function() {
        return t.returnStatement;
      }
    }), Object.defineProperty(e, "SequenceExpression", {
      enumerable: !0,
      get: function() {
        return t.sequenceExpression;
      }
    }), Object.defineProperty(e, "SpreadElement", {
      enumerable: !0,
      get: function() {
        return t.spreadElement;
      }
    }), Object.defineProperty(e, "SpreadProperty", {
      enumerable: !0,
      get: function() {
        return t.spreadProperty;
      }
    }), Object.defineProperty(e, "StaticBlock", {
      enumerable: !0,
      get: function() {
        return t.staticBlock;
      }
    }), Object.defineProperty(e, "StringLiteral", {
      enumerable: !0,
      get: function() {
        return t.stringLiteral;
      }
    }), Object.defineProperty(e, "StringLiteralTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.stringLiteralTypeAnnotation;
      }
    }), Object.defineProperty(e, "StringTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.stringTypeAnnotation;
      }
    }), Object.defineProperty(e, "Super", {
      enumerable: !0,
      get: function() {
        return t.super;
      }
    }), Object.defineProperty(e, "SwitchCase", {
      enumerable: !0,
      get: function() {
        return t.switchCase;
      }
    }), Object.defineProperty(e, "SwitchStatement", {
      enumerable: !0,
      get: function() {
        return t.switchStatement;
      }
    }), Object.defineProperty(e, "SymbolTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.symbolTypeAnnotation;
      }
    }), Object.defineProperty(e, "TSAnyKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsAnyKeyword;
      }
    }), Object.defineProperty(e, "TSArrayType", {
      enumerable: !0,
      get: function() {
        return t.tsArrayType;
      }
    }), Object.defineProperty(e, "TSAsExpression", {
      enumerable: !0,
      get: function() {
        return t.tsAsExpression;
      }
    }), Object.defineProperty(e, "TSBigIntKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsBigIntKeyword;
      }
    }), Object.defineProperty(e, "TSBooleanKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsBooleanKeyword;
      }
    }), Object.defineProperty(e, "TSCallSignatureDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsCallSignatureDeclaration;
      }
    }), Object.defineProperty(e, "TSConditionalType", {
      enumerable: !0,
      get: function() {
        return t.tsConditionalType;
      }
    }), Object.defineProperty(e, "TSConstructSignatureDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsConstructSignatureDeclaration;
      }
    }), Object.defineProperty(e, "TSConstructorType", {
      enumerable: !0,
      get: function() {
        return t.tsConstructorType;
      }
    }), Object.defineProperty(e, "TSDeclareFunction", {
      enumerable: !0,
      get: function() {
        return t.tsDeclareFunction;
      }
    }), Object.defineProperty(e, "TSDeclareMethod", {
      enumerable: !0,
      get: function() {
        return t.tsDeclareMethod;
      }
    }), Object.defineProperty(e, "TSEnumDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsEnumDeclaration;
      }
    }), Object.defineProperty(e, "TSEnumMember", {
      enumerable: !0,
      get: function() {
        return t.tsEnumMember;
      }
    }), Object.defineProperty(e, "TSExportAssignment", {
      enumerable: !0,
      get: function() {
        return t.tsExportAssignment;
      }
    }), Object.defineProperty(e, "TSExpressionWithTypeArguments", {
      enumerable: !0,
      get: function() {
        return t.tsExpressionWithTypeArguments;
      }
    }), Object.defineProperty(e, "TSExternalModuleReference", {
      enumerable: !0,
      get: function() {
        return t.tsExternalModuleReference;
      }
    }), Object.defineProperty(e, "TSFunctionType", {
      enumerable: !0,
      get: function() {
        return t.tsFunctionType;
      }
    }), Object.defineProperty(e, "TSImportEqualsDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsImportEqualsDeclaration;
      }
    }), Object.defineProperty(e, "TSImportType", {
      enumerable: !0,
      get: function() {
        return t.tsImportType;
      }
    }), Object.defineProperty(e, "TSIndexSignature", {
      enumerable: !0,
      get: function() {
        return t.tsIndexSignature;
      }
    }), Object.defineProperty(e, "TSIndexedAccessType", {
      enumerable: !0,
      get: function() {
        return t.tsIndexedAccessType;
      }
    }), Object.defineProperty(e, "TSInferType", {
      enumerable: !0,
      get: function() {
        return t.tsInferType;
      }
    }), Object.defineProperty(e, "TSInstantiationExpression", {
      enumerable: !0,
      get: function() {
        return t.tsInstantiationExpression;
      }
    }), Object.defineProperty(e, "TSInterfaceBody", {
      enumerable: !0,
      get: function() {
        return t.tsInterfaceBody;
      }
    }), Object.defineProperty(e, "TSInterfaceDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsInterfaceDeclaration;
      }
    }), Object.defineProperty(e, "TSIntersectionType", {
      enumerable: !0,
      get: function() {
        return t.tsIntersectionType;
      }
    }), Object.defineProperty(e, "TSIntrinsicKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsIntrinsicKeyword;
      }
    }), Object.defineProperty(e, "TSLiteralType", {
      enumerable: !0,
      get: function() {
        return t.tsLiteralType;
      }
    }), Object.defineProperty(e, "TSMappedType", {
      enumerable: !0,
      get: function() {
        return t.tsMappedType;
      }
    }), Object.defineProperty(e, "TSMethodSignature", {
      enumerable: !0,
      get: function() {
        return t.tsMethodSignature;
      }
    }), Object.defineProperty(e, "TSModuleBlock", {
      enumerable: !0,
      get: function() {
        return t.tsModuleBlock;
      }
    }), Object.defineProperty(e, "TSModuleDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsModuleDeclaration;
      }
    }), Object.defineProperty(e, "TSNamedTupleMember", {
      enumerable: !0,
      get: function() {
        return t.tsNamedTupleMember;
      }
    }), Object.defineProperty(e, "TSNamespaceExportDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsNamespaceExportDeclaration;
      }
    }), Object.defineProperty(e, "TSNeverKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsNeverKeyword;
      }
    }), Object.defineProperty(e, "TSNonNullExpression", {
      enumerable: !0,
      get: function() {
        return t.tsNonNullExpression;
      }
    }), Object.defineProperty(e, "TSNullKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsNullKeyword;
      }
    }), Object.defineProperty(e, "TSNumberKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsNumberKeyword;
      }
    }), Object.defineProperty(e, "TSObjectKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsObjectKeyword;
      }
    }), Object.defineProperty(e, "TSOptionalType", {
      enumerable: !0,
      get: function() {
        return t.tsOptionalType;
      }
    }), Object.defineProperty(e, "TSParameterProperty", {
      enumerable: !0,
      get: function() {
        return t.tsParameterProperty;
      }
    }), Object.defineProperty(e, "TSParenthesizedType", {
      enumerable: !0,
      get: function() {
        return t.tsParenthesizedType;
      }
    }), Object.defineProperty(e, "TSPropertySignature", {
      enumerable: !0,
      get: function() {
        return t.tsPropertySignature;
      }
    }), Object.defineProperty(e, "TSQualifiedName", {
      enumerable: !0,
      get: function() {
        return t.tsQualifiedName;
      }
    }), Object.defineProperty(e, "TSRestType", {
      enumerable: !0,
      get: function() {
        return t.tsRestType;
      }
    }), Object.defineProperty(e, "TSSatisfiesExpression", {
      enumerable: !0,
      get: function() {
        return t.tsSatisfiesExpression;
      }
    }), Object.defineProperty(e, "TSStringKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsStringKeyword;
      }
    }), Object.defineProperty(e, "TSSymbolKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsSymbolKeyword;
      }
    }), Object.defineProperty(e, "TSThisType", {
      enumerable: !0,
      get: function() {
        return t.tsThisType;
      }
    }), Object.defineProperty(e, "TSTupleType", {
      enumerable: !0,
      get: function() {
        return t.tsTupleType;
      }
    }), Object.defineProperty(e, "TSTypeAliasDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsTypeAliasDeclaration;
      }
    }), Object.defineProperty(e, "TSTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.tsTypeAnnotation;
      }
    }), Object.defineProperty(e, "TSTypeAssertion", {
      enumerable: !0,
      get: function() {
        return t.tsTypeAssertion;
      }
    }), Object.defineProperty(e, "TSTypeLiteral", {
      enumerable: !0,
      get: function() {
        return t.tsTypeLiteral;
      }
    }), Object.defineProperty(e, "TSTypeOperator", {
      enumerable: !0,
      get: function() {
        return t.tsTypeOperator;
      }
    }), Object.defineProperty(e, "TSTypeParameter", {
      enumerable: !0,
      get: function() {
        return t.tsTypeParameter;
      }
    }), Object.defineProperty(e, "TSTypeParameterDeclaration", {
      enumerable: !0,
      get: function() {
        return t.tsTypeParameterDeclaration;
      }
    }), Object.defineProperty(e, "TSTypeParameterInstantiation", {
      enumerable: !0,
      get: function() {
        return t.tsTypeParameterInstantiation;
      }
    }), Object.defineProperty(e, "TSTypePredicate", {
      enumerable: !0,
      get: function() {
        return t.tsTypePredicate;
      }
    }), Object.defineProperty(e, "TSTypeQuery", {
      enumerable: !0,
      get: function() {
        return t.tsTypeQuery;
      }
    }), Object.defineProperty(e, "TSTypeReference", {
      enumerable: !0,
      get: function() {
        return t.tsTypeReference;
      }
    }), Object.defineProperty(e, "TSUndefinedKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsUndefinedKeyword;
      }
    }), Object.defineProperty(e, "TSUnionType", {
      enumerable: !0,
      get: function() {
        return t.tsUnionType;
      }
    }), Object.defineProperty(e, "TSUnknownKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsUnknownKeyword;
      }
    }), Object.defineProperty(e, "TSVoidKeyword", {
      enumerable: !0,
      get: function() {
        return t.tsVoidKeyword;
      }
    }), Object.defineProperty(e, "TaggedTemplateExpression", {
      enumerable: !0,
      get: function() {
        return t.taggedTemplateExpression;
      }
    }), Object.defineProperty(e, "TemplateElement", {
      enumerable: !0,
      get: function() {
        return t.templateElement;
      }
    }), Object.defineProperty(e, "TemplateLiteral", {
      enumerable: !0,
      get: function() {
        return t.templateLiteral;
      }
    }), Object.defineProperty(e, "ThisExpression", {
      enumerable: !0,
      get: function() {
        return t.thisExpression;
      }
    }), Object.defineProperty(e, "ThisTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.thisTypeAnnotation;
      }
    }), Object.defineProperty(e, "ThrowStatement", {
      enumerable: !0,
      get: function() {
        return t.throwStatement;
      }
    }), Object.defineProperty(e, "TopicReference", {
      enumerable: !0,
      get: function() {
        return t.topicReference;
      }
    }), Object.defineProperty(e, "TryStatement", {
      enumerable: !0,
      get: function() {
        return t.tryStatement;
      }
    }), Object.defineProperty(e, "TupleExpression", {
      enumerable: !0,
      get: function() {
        return t.tupleExpression;
      }
    }), Object.defineProperty(e, "TupleTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.tupleTypeAnnotation;
      }
    }), Object.defineProperty(e, "TypeAlias", {
      enumerable: !0,
      get: function() {
        return t.typeAlias;
      }
    }), Object.defineProperty(e, "TypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.typeAnnotation;
      }
    }), Object.defineProperty(e, "TypeCastExpression", {
      enumerable: !0,
      get: function() {
        return t.typeCastExpression;
      }
    }), Object.defineProperty(e, "TypeParameter", {
      enumerable: !0,
      get: function() {
        return t.typeParameter;
      }
    }), Object.defineProperty(e, "TypeParameterDeclaration", {
      enumerable: !0,
      get: function() {
        return t.typeParameterDeclaration;
      }
    }), Object.defineProperty(e, "TypeParameterInstantiation", {
      enumerable: !0,
      get: function() {
        return t.typeParameterInstantiation;
      }
    }), Object.defineProperty(e, "TypeofTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.typeofTypeAnnotation;
      }
    }), Object.defineProperty(e, "UnaryExpression", {
      enumerable: !0,
      get: function() {
        return t.unaryExpression;
      }
    }), Object.defineProperty(e, "UnionTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.unionTypeAnnotation;
      }
    }), Object.defineProperty(e, "UpdateExpression", {
      enumerable: !0,
      get: function() {
        return t.updateExpression;
      }
    }), Object.defineProperty(e, "V8IntrinsicIdentifier", {
      enumerable: !0,
      get: function() {
        return t.v8IntrinsicIdentifier;
      }
    }), Object.defineProperty(e, "VariableDeclaration", {
      enumerable: !0,
      get: function() {
        return t.variableDeclaration;
      }
    }), Object.defineProperty(e, "VariableDeclarator", {
      enumerable: !0,
      get: function() {
        return t.variableDeclarator;
      }
    }), Object.defineProperty(e, "Variance", {
      enumerable: !0,
      get: function() {
        return t.variance;
      }
    }), Object.defineProperty(e, "VoidTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return t.voidTypeAnnotation;
      }
    }), Object.defineProperty(e, "WhileStatement", {
      enumerable: !0,
      get: function() {
        return t.whileStatement;
      }
    }), Object.defineProperty(e, "WithStatement", {
      enumerable: !0,
      get: function() {
        return t.withStatement;
      }
    }), Object.defineProperty(e, "YieldExpression", {
      enumerable: !0,
      get: function() {
        return t.yieldExpression;
      }
    });
    var t = _o();
  }(yR)), yR;
}
var iE = {}, tG;
function lm() {
  if (tG)
    return iE;
  tG = 1, Object.defineProperty(iE, "__esModule", {
    value: !0
  }), iE.default = s;
  var e = Wc(), t = Kn();
  const r = Function.call.bind(Object.prototype.hasOwnProperty);
  function i(l, u, c, f) {
    return l && typeof l.type == "string" ? a(l, u, c, f) : l;
  }
  function n(l, u, c, f) {
    return Array.isArray(l) ? l.map((h) => i(h, u, c, f)) : i(l, u, c, f);
  }
  function s(l, u = !0, c = !1) {
    return a(l, u, c, /* @__PURE__ */ new Map());
  }
  function a(l, u = !0, c = !1, f) {
    if (!l)
      return l;
    const {
      type: h
    } = l, m = {
      type: l.type
    };
    if ((0, t.isIdentifier)(l))
      m.name = l.name, r(l, "optional") && typeof l.optional == "boolean" && (m.optional = l.optional), r(l, "typeAnnotation") && (m.typeAnnotation = u ? n(l.typeAnnotation, !0, c, f) : l.typeAnnotation);
    else if (r(e.NODE_FIELDS, h))
      for (const g of Object.keys(e.NODE_FIELDS[h]))
        r(l, g) && (u ? m[g] = (0, t.isFile)(l) && g === "comments" ? o(l.comments, u, c, f) : n(l[g], !0, c, f) : m[g] = l[g]);
    else
      throw new Error('Unknown node type: "'.concat(h, '"'));
    return r(l, "loc") && (c ? m.loc = null : m.loc = l.loc), r(l, "leadingComments") && (m.leadingComments = o(l.leadingComments, u, c, f)), r(l, "innerComments") && (m.innerComments = o(l.innerComments, u, c, f)), r(l, "trailingComments") && (m.trailingComments = o(l.trailingComments, u, c, f)), r(l, "extra") && (m.extra = Object.assign({}, l.extra)), m;
  }
  function o(l, u, c, f) {
    return !l || !u ? l : l.map((h) => {
      const m = f.get(h);
      if (m)
        return m;
      const {
        type: g,
        value: y,
        loc: v
      } = h, T = {
        type: g,
        value: y,
        loc: v
      };
      return c && (T.loc = null), f.set(h, T), T;
    });
  }
  return iE;
}
var nE = {}, rG;
function Qrt() {
  if (rG)
    return nE;
  rG = 1, Object.defineProperty(nE, "__esModule", {
    value: !0
  }), nE.default = t;
  var e = lm();
  function t(r) {
    return (0, e.default)(r, !1);
  }
  return nE;
}
var sE = {}, iG;
function Zrt() {
  if (iG)
    return sE;
  iG = 1, Object.defineProperty(sE, "__esModule", {
    value: !0
  }), sE.default = t;
  var e = lm();
  function t(r) {
    return (0, e.default)(r);
  }
  return sE;
}
var aE = {}, nG;
function eit() {
  if (nG)
    return aE;
  nG = 1, Object.defineProperty(aE, "__esModule", {
    value: !0
  }), aE.default = t;
  var e = lm();
  function t(r) {
    return (0, e.default)(r, !0, !0);
  }
  return aE;
}
var oE = {}, sG;
function tit() {
  if (sG)
    return oE;
  sG = 1, Object.defineProperty(oE, "__esModule", {
    value: !0
  }), oE.default = t;
  var e = lm();
  function t(r) {
    return (0, e.default)(r, !1, !0);
  }
  return oE;
}
var lE = {}, uE = {}, aG;
function Bhe() {
  if (aG)
    return uE;
  aG = 1, Object.defineProperty(uE, "__esModule", {
    value: !0
  }), uE.default = e;
  function e(t, r, i) {
    if (!i || !t)
      return t;
    const n = "".concat(r, "Comments");
    return t[n] ? r === "leading" ? t[n] = i.concat(t[n]) : t[n].push(...i) : t[n] = i, t;
  }
  return uE;
}
var oG;
function rit() {
  if (oG)
    return lE;
  oG = 1, Object.defineProperty(lE, "__esModule", {
    value: !0
  }), lE.default = t;
  var e = Bhe();
  function t(r, i, n, s) {
    return (0, e.default)(r, i, [{
      type: s ? "CommentLine" : "CommentBlock",
      value: n
    }]);
  }
  return lE;
}
var cE = {}, pE = {}, lG;
function S9() {
  if (lG)
    return pE;
  lG = 1, Object.defineProperty(pE, "__esModule", {
    value: !0
  }), pE.default = e;
  function e(t, r, i) {
    r && i && (r[t] = Array.from(new Set([].concat(r[t], i[t]).filter(Boolean))));
  }
  return pE;
}
var uG;
function Fhe() {
  if (uG)
    return cE;
  uG = 1, Object.defineProperty(cE, "__esModule", {
    value: !0
  }), cE.default = t;
  var e = S9();
  function t(r, i) {
    (0, e.default)("innerComments", r, i);
  }
  return cE;
}
var fE = {}, cG;
function jhe() {
  if (cG)
    return fE;
  cG = 1, Object.defineProperty(fE, "__esModule", {
    value: !0
  }), fE.default = t;
  var e = S9();
  function t(r, i) {
    (0, e.default)("leadingComments", r, i);
  }
  return fE;
}
var hE = {}, dE = {}, pG;
function $he() {
  if (pG)
    return dE;
  pG = 1, Object.defineProperty(dE, "__esModule", {
    value: !0
  }), dE.default = t;
  var e = S9();
  function t(r, i) {
    (0, e.default)("trailingComments", r, i);
  }
  return dE;
}
var fG;
function Uhe() {
  if (fG)
    return hE;
  fG = 1, Object.defineProperty(hE, "__esModule", {
    value: !0
  }), hE.default = i;
  var e = $he(), t = jhe(), r = Fhe();
  function i(n, s) {
    return (0, e.default)(n, s), (0, t.default)(n, s), (0, r.default)(n, s), n;
  }
  return hE;
}
var mE = {}, hG;
function iit() {
  if (hG)
    return mE;
  hG = 1, Object.defineProperty(mE, "__esModule", {
    value: !0
  }), mE.default = t;
  var e = om();
  function t(r) {
    return e.COMMENT_KEYS.forEach((i) => {
      r[i] = null;
    }), r;
  }
  return mE;
}
var Et = {}, dG;
function nit() {
  if (dG)
    return Et;
  dG = 1, Object.defineProperty(Et, "__esModule", {
    value: !0
  }), Et.WHILE_TYPES = Et.USERWHITESPACABLE_TYPES = Et.UNARYLIKE_TYPES = Et.TYPESCRIPT_TYPES = Et.TSTYPE_TYPES = Et.TSTYPEELEMENT_TYPES = Et.TSENTITYNAME_TYPES = Et.TSBASETYPE_TYPES = Et.TERMINATORLESS_TYPES = Et.STATEMENT_TYPES = Et.STANDARDIZED_TYPES = Et.SCOPABLE_TYPES = Et.PUREISH_TYPES = Et.PROPERTY_TYPES = Et.PRIVATE_TYPES = Et.PATTERN_TYPES = Et.PATTERNLIKE_TYPES = Et.OBJECTMEMBER_TYPES = Et.MODULESPECIFIER_TYPES = Et.MODULEDECLARATION_TYPES = Et.MISCELLANEOUS_TYPES = Et.METHOD_TYPES = Et.LVAL_TYPES = Et.LOOP_TYPES = Et.LITERAL_TYPES = Et.JSX_TYPES = Et.IMPORTOREXPORTDECLARATION_TYPES = Et.IMMUTABLE_TYPES = Et.FUNCTION_TYPES = Et.FUNCTIONPARENT_TYPES = Et.FOR_TYPES = Et.FORXSTATEMENT_TYPES = Et.FLOW_TYPES = Et.FLOWTYPE_TYPES = Et.FLOWPREDICATE_TYPES = Et.FLOWDECLARATION_TYPES = Et.FLOWBASEANNOTATION_TYPES = Et.EXPRESSION_TYPES = Et.EXPRESSIONWRAPPER_TYPES = Et.EXPORTDECLARATION_TYPES = Et.ENUMMEMBER_TYPES = Et.ENUMBODY_TYPES = Et.DECLARATION_TYPES = Et.CONDITIONAL_TYPES = Et.COMPLETIONSTATEMENT_TYPES = Et.CLASS_TYPES = Et.BLOCK_TYPES = Et.BLOCKPARENT_TYPES = Et.BINARY_TYPES = Et.ACCESSOR_TYPES = void 0;
  var e = Wc();
  const t = e.FLIPPED_ALIAS_KEYS.Standardized;
  Et.STANDARDIZED_TYPES = t;
  const r = e.FLIPPED_ALIAS_KEYS.Expression;
  Et.EXPRESSION_TYPES = r;
  const i = e.FLIPPED_ALIAS_KEYS.Binary;
  Et.BINARY_TYPES = i;
  const n = e.FLIPPED_ALIAS_KEYS.Scopable;
  Et.SCOPABLE_TYPES = n;
  const s = e.FLIPPED_ALIAS_KEYS.BlockParent;
  Et.BLOCKPARENT_TYPES = s;
  const a = e.FLIPPED_ALIAS_KEYS.Block;
  Et.BLOCK_TYPES = a;
  const o = e.FLIPPED_ALIAS_KEYS.Statement;
  Et.STATEMENT_TYPES = o;
  const l = e.FLIPPED_ALIAS_KEYS.Terminatorless;
  Et.TERMINATORLESS_TYPES = l;
  const u = e.FLIPPED_ALIAS_KEYS.CompletionStatement;
  Et.COMPLETIONSTATEMENT_TYPES = u;
  const c = e.FLIPPED_ALIAS_KEYS.Conditional;
  Et.CONDITIONAL_TYPES = c;
  const f = e.FLIPPED_ALIAS_KEYS.Loop;
  Et.LOOP_TYPES = f;
  const h = e.FLIPPED_ALIAS_KEYS.While;
  Et.WHILE_TYPES = h;
  const m = e.FLIPPED_ALIAS_KEYS.ExpressionWrapper;
  Et.EXPRESSIONWRAPPER_TYPES = m;
  const g = e.FLIPPED_ALIAS_KEYS.For;
  Et.FOR_TYPES = g;
  const y = e.FLIPPED_ALIAS_KEYS.ForXStatement;
  Et.FORXSTATEMENT_TYPES = y;
  const v = e.FLIPPED_ALIAS_KEYS.Function;
  Et.FUNCTION_TYPES = v;
  const T = e.FLIPPED_ALIAS_KEYS.FunctionParent;
  Et.FUNCTIONPARENT_TYPES = T;
  const S = e.FLIPPED_ALIAS_KEYS.Pureish;
  Et.PUREISH_TYPES = S;
  const P = e.FLIPPED_ALIAS_KEYS.Declaration;
  Et.DECLARATION_TYPES = P;
  const x = e.FLIPPED_ALIAS_KEYS.PatternLike;
  Et.PATTERNLIKE_TYPES = x;
  const C = e.FLIPPED_ALIAS_KEYS.LVal;
  Et.LVAL_TYPES = C;
  const D = e.FLIPPED_ALIAS_KEYS.TSEntityName;
  Et.TSENTITYNAME_TYPES = D;
  const w = e.FLIPPED_ALIAS_KEYS.Literal;
  Et.LITERAL_TYPES = w;
  const A = e.FLIPPED_ALIAS_KEYS.Immutable;
  Et.IMMUTABLE_TYPES = A;
  const I = e.FLIPPED_ALIAS_KEYS.UserWhitespacable;
  Et.USERWHITESPACABLE_TYPES = I;
  const L = e.FLIPPED_ALIAS_KEYS.Method;
  Et.METHOD_TYPES = L;
  const O = e.FLIPPED_ALIAS_KEYS.ObjectMember;
  Et.OBJECTMEMBER_TYPES = O;
  const F = e.FLIPPED_ALIAS_KEYS.Property;
  Et.PROPERTY_TYPES = F;
  const q = e.FLIPPED_ALIAS_KEYS.UnaryLike;
  Et.UNARYLIKE_TYPES = q;
  const j = e.FLIPPED_ALIAS_KEYS.Pattern;
  Et.PATTERN_TYPES = j;
  const N = e.FLIPPED_ALIAS_KEYS.Class;
  Et.CLASS_TYPES = N;
  const M = e.FLIPPED_ALIAS_KEYS.ImportOrExportDeclaration;
  Et.IMPORTOREXPORTDECLARATION_TYPES = M;
  const R = e.FLIPPED_ALIAS_KEYS.ExportDeclaration;
  Et.EXPORTDECLARATION_TYPES = R;
  const $ = e.FLIPPED_ALIAS_KEYS.ModuleSpecifier;
  Et.MODULESPECIFIER_TYPES = $;
  const V = e.FLIPPED_ALIAS_KEYS.Accessor;
  Et.ACCESSOR_TYPES = V;
  const K = e.FLIPPED_ALIAS_KEYS.Private;
  Et.PRIVATE_TYPES = K;
  const z = e.FLIPPED_ALIAS_KEYS.Flow;
  Et.FLOW_TYPES = z;
  const W = e.FLIPPED_ALIAS_KEYS.FlowType;
  Et.FLOWTYPE_TYPES = W;
  const Y = e.FLIPPED_ALIAS_KEYS.FlowBaseAnnotation;
  Et.FLOWBASEANNOTATION_TYPES = Y;
  const G = e.FLIPPED_ALIAS_KEYS.FlowDeclaration;
  Et.FLOWDECLARATION_TYPES = G;
  const le = e.FLIPPED_ALIAS_KEYS.FlowPredicate;
  Et.FLOWPREDICATE_TYPES = le;
  const ne = e.FLIPPED_ALIAS_KEYS.EnumBody;
  Et.ENUMBODY_TYPES = ne;
  const ae = e.FLIPPED_ALIAS_KEYS.EnumMember;
  Et.ENUMMEMBER_TYPES = ae;
  const be = e.FLIPPED_ALIAS_KEYS.JSX;
  Et.JSX_TYPES = be;
  const ye = e.FLIPPED_ALIAS_KEYS.Miscellaneous;
  Et.MISCELLANEOUS_TYPES = ye;
  const fe = e.FLIPPED_ALIAS_KEYS.TypeScript;
  Et.TYPESCRIPT_TYPES = fe;
  const Z = e.FLIPPED_ALIAS_KEYS.TSTypeElement;
  Et.TSTYPEELEMENT_TYPES = Z;
  const ue = e.FLIPPED_ALIAS_KEYS.TSType;
  Et.TSTYPE_TYPES = ue;
  const me = e.FLIPPED_ALIAS_KEYS.TSBaseType;
  Et.TSBASETYPE_TYPES = me;
  const xe = M;
  return Et.MODULEDECLARATION_TYPES = xe, Et;
}
var yE = {}, gE = {}, mG;
function qhe() {
  if (mG)
    return gE;
  mG = 1, Object.defineProperty(gE, "__esModule", {
    value: !0
  }), gE.default = r;
  var e = Kn(), t = _o();
  function r(i, n) {
    if ((0, e.isBlockStatement)(i))
      return i;
    let s = [];
    return (0, e.isEmptyStatement)(i) ? s = [] : ((0, e.isStatement)(i) || ((0, e.isFunction)(n) ? i = (0, t.returnStatement)(i) : i = (0, t.expressionStatement)(i)), s = [i]), (0, t.blockStatement)(s);
  }
  return gE;
}
var yG;
function sit() {
  if (yG)
    return yE;
  yG = 1, Object.defineProperty(yE, "__esModule", {
    value: !0
  }), yE.default = t;
  var e = qhe();
  function t(r, i = "body") {
    const n = (0, e.default)(r[i], r);
    return r[i] = n, n;
  }
  return yE;
}
var bE = {}, vE = {}, gG;
function Vhe() {
  if (gG)
    return vE;
  gG = 1, Object.defineProperty(vE, "__esModule", {
    value: !0
  }), vE.default = r;
  var e = YT(), t = qc();
  function r(i) {
    i = i + "";
    let n = "";
    for (const s of i)
      n += (0, t.isIdentifierChar)(s.codePointAt(0)) ? s : "-";
    return n = n.replace(/^[-0-9]+/, ""), n = n.replace(/[-\s]+(.)?/g, function(s, a) {
      return a ? a.toUpperCase() : "";
    }), (0, e.default)(n) || (n = "_".concat(n)), n || "_";
  }
  return vE;
}
var bG;
function ait() {
  if (bG)
    return bE;
  bG = 1, Object.defineProperty(bE, "__esModule", {
    value: !0
  }), bE.default = t;
  var e = Vhe();
  function t(r) {
    return r = (0, e.default)(r), (r === "eval" || r === "arguments") && (r = "_" + r), r;
  }
  return bE;
}
var TE = {}, vG;
function oit() {
  if (vG)
    return TE;
  vG = 1, Object.defineProperty(TE, "__esModule", {
    value: !0
  }), TE.default = r;
  var e = Kn(), t = _o();
  function r(i, n = i.key || i.property) {
    return !i.computed && (0, e.isIdentifier)(n) && (n = (0, t.stringLiteral)(n.name)), n;
  }
  return TE;
}
var wb = {}, TG;
function lit() {
  if (TG)
    return wb;
  TG = 1, Object.defineProperty(wb, "__esModule", {
    value: !0
  }), wb.default = void 0;
  var e = Kn(), t = r;
  wb.default = t;
  function r(i) {
    if ((0, e.isExpressionStatement)(i) && (i = i.expression), (0, e.isExpression)(i))
      return i;
    if ((0, e.isClass)(i) ? i.type = "ClassExpression" : (0, e.isFunction)(i) && (i.type = "FunctionExpression"), !(0, e.isExpression)(i))
      throw new Error("cannot turn ".concat(i.type, " to an expression"));
    return i;
  }
  return wb;
}
var SE = {}, xE = {}, EE = {}, SG;
function Whe() {
  if (SG)
    return EE;
  SG = 1, Object.defineProperty(EE, "__esModule", {
    value: !0
  }), EE.default = t;
  var e = Wc();
  function t(r, i, n) {
    if (!r)
      return;
    const s = e.VISITOR_KEYS[r.type];
    if (s) {
      n = n || {}, i(r, n);
      for (const a of s) {
        const o = r[a];
        if (Array.isArray(o))
          for (const l of o)
            t(l, i, n);
        else
          t(o, i, n);
      }
    }
  }
  return EE;
}
var PE = {}, xG;
function Hhe() {
  if (xG)
    return PE;
  xG = 1, Object.defineProperty(PE, "__esModule", {
    value: !0
  }), PE.default = i;
  var e = om();
  const t = ["tokens", "start", "end", "loc", "raw", "rawValue"], r = [...e.COMMENT_KEYS, "comments", ...t];
  function i(n, s = {}) {
    const a = s.preserveComments ? t : r;
    for (const l of a)
      n[l] != null && (n[l] = void 0);
    for (const l of Object.keys(n))
      l[0] === "_" && n[l] != null && (n[l] = void 0);
    const o = Object.getOwnPropertySymbols(n);
    for (const l of o)
      n[l] = null;
  }
  return PE;
}
var EG;
function Khe() {
  if (EG)
    return xE;
  EG = 1, Object.defineProperty(xE, "__esModule", {
    value: !0
  }), xE.default = r;
  var e = Whe(), t = Hhe();
  function r(i, n) {
    return (0, e.default)(i, t.default, n), i;
  }
  return xE;
}
var PG;
function uit() {
  if (PG)
    return SE;
  PG = 1, Object.defineProperty(SE, "__esModule", {
    value: !0
  }), SE.default = i;
  var e = Kn(), t = lm(), r = Khe();
  function i(n, s = n.key) {
    let a;
    return n.kind === "method" ? i.increment() + "" : ((0, e.isIdentifier)(s) ? a = s.name : (0, e.isStringLiteral)(s) ? a = JSON.stringify(s.value) : a = JSON.stringify((0, r.default)((0, t.default)(s))), n.computed && (a = "[".concat(a, "]")), n.static && (a = "static:".concat(a)), a);
  }
  return i.uid = 0, i.increment = function() {
    return i.uid >= Number.MAX_SAFE_INTEGER ? i.uid = 0 : i.uid++;
  }, SE;
}
var wE = {}, AE = {}, CE = {}, wG;
function v_() {
  if (wG)
    return CE;
  wG = 1, Object.defineProperty(CE, "__esModule", {
    value: !0
  }), CE.default = t;
  var e = Kn();
  function t(r, i, n) {
    const s = [].concat(r), a = /* @__PURE__ */ Object.create(null);
    for (; s.length; ) {
      const o = s.shift();
      if (!o)
        continue;
      const l = t.keys[o.type];
      if ((0, e.isIdentifier)(o)) {
        i ? (a[o.name] = a[o.name] || []).push(o) : a[o.name] = o;
        continue;
      }
      if ((0, e.isExportDeclaration)(o) && !(0, e.isExportAllDeclaration)(o)) {
        (0, e.isDeclaration)(o.declaration) && s.push(o.declaration);
        continue;
      }
      if (n) {
        if ((0, e.isFunctionDeclaration)(o)) {
          s.push(o.id);
          continue;
        }
        if ((0, e.isFunctionExpression)(o))
          continue;
      }
      if (l)
        for (let u = 0; u < l.length; u++) {
          const c = l[u], f = o[c];
          f && (Array.isArray(f) ? s.push(...f) : s.push(f));
        }
    }
    return a;
  }
  return t.keys = {
    DeclareClass: ["id"],
    DeclareFunction: ["id"],
    DeclareModule: ["id"],
    DeclareVariable: ["id"],
    DeclareInterface: ["id"],
    DeclareTypeAlias: ["id"],
    DeclareOpaqueType: ["id"],
    InterfaceDeclaration: ["id"],
    TypeAlias: ["id"],
    OpaqueType: ["id"],
    CatchClause: ["param"],
    LabeledStatement: ["label"],
    UnaryExpression: ["argument"],
    AssignmentExpression: ["left"],
    ImportSpecifier: ["local"],
    ImportNamespaceSpecifier: ["local"],
    ImportDefaultSpecifier: ["local"],
    ImportDeclaration: ["specifiers"],
    ExportSpecifier: ["exported"],
    ExportNamespaceSpecifier: ["exported"],
    ExportDefaultSpecifier: ["exported"],
    FunctionDeclaration: ["id", "params"],
    FunctionExpression: ["id", "params"],
    ArrowFunctionExpression: ["params"],
    ObjectMethod: ["params"],
    ClassMethod: ["params"],
    ClassPrivateMethod: ["params"],
    ForInStatement: ["left"],
    ForOfStatement: ["left"],
    ClassDeclaration: ["id"],
    ClassExpression: ["id"],
    RestElement: ["argument"],
    UpdateExpression: ["argument"],
    ObjectProperty: ["value"],
    AssignmentPattern: ["left"],
    ArrayPattern: ["elements"],
    ObjectPattern: ["properties"],
    VariableDeclaration: ["declarations"],
    VariableDeclarator: ["id"]
  }, CE;
}
var AG;
function cit() {
  if (AG)
    return AE;
  AG = 1, Object.defineProperty(AE, "__esModule", {
    value: !0
  }), AE.default = n;
  var e = v_(), t = Kn(), r = _o(), i = lm();
  function n(s, a, o) {
    const l = [];
    let u = !0;
    for (const c of s)
      if ((0, t.isEmptyStatement)(c) || (u = !1), (0, t.isExpression)(c))
        l.push(c);
      else if ((0, t.isExpressionStatement)(c))
        l.push(c.expression);
      else if ((0, t.isVariableDeclaration)(c)) {
        if (c.kind !== "var")
          return;
        for (const f of c.declarations) {
          const h = (0, e.default)(f);
          for (const m of Object.keys(h))
            o.push({
              kind: c.kind,
              id: (0, i.default)(h[m])
            });
          f.init && l.push((0, r.assignmentExpression)("=", f.id, f.init));
        }
        u = !0;
      } else if ((0, t.isIfStatement)(c)) {
        const f = c.consequent ? n([c.consequent], a, o) : a.buildUndefinedNode(), h = c.alternate ? n([c.alternate], a, o) : a.buildUndefinedNode();
        if (!f || !h)
          return;
        l.push((0, r.conditionalExpression)(c.test, f, h));
      } else if ((0, t.isBlockStatement)(c)) {
        const f = n(c.body, a, o);
        if (!f)
          return;
        l.push(f);
      } else if ((0, t.isEmptyStatement)(c))
        s.indexOf(c) === 0 && (u = !0);
      else
        return;
    return u && l.push(a.buildUndefinedNode()), l.length === 1 ? l[0] : (0, r.sequenceExpression)(l);
  }
  return AE;
}
var CG;
function pit() {
  if (CG)
    return wE;
  CG = 1, Object.defineProperty(wE, "__esModule", {
    value: !0
  }), wE.default = t;
  var e = cit();
  function t(r, i) {
    if (!(r != null && r.length))
      return;
    const n = [], s = (0, e.default)(r, i, n);
    if (s) {
      for (const a of n)
        i.push(a);
      return s;
    }
  }
  return wE;
}
var Ab = {}, _G;
function fit() {
  if (_G)
    return Ab;
  _G = 1, Object.defineProperty(Ab, "__esModule", {
    value: !0
  }), Ab.default = void 0;
  var e = Kn(), t = _o(), r = i;
  Ab.default = r;
  function i(n, s) {
    if ((0, e.isStatement)(n))
      return n;
    let a = !1, o;
    if ((0, e.isClass)(n))
      a = !0, o = "ClassDeclaration";
    else if ((0, e.isFunction)(n))
      a = !0, o = "FunctionDeclaration";
    else if ((0, e.isAssignmentExpression)(n))
      return (0, t.expressionStatement)(n);
    if (a && !n.id && (o = !1), !o) {
      if (s)
        return !1;
      throw new Error("cannot turn ".concat(n.type, " to a statement"));
    }
    return n.type = o, n;
  }
  return Ab;
}
var Cb = {}, IG;
function hit() {
  if (IG)
    return Cb;
  IG = 1, Object.defineProperty(Cb, "__esModule", {
    value: !0
  }), Cb.default = void 0;
  var e = YT(), t = _o(), r = a;
  Cb.default = r;
  const i = Function.call.bind(Object.prototype.toString);
  function n(o) {
    return i(o) === "[object RegExp]";
  }
  function s(o) {
    if (typeof o != "object" || o === null || Object.prototype.toString.call(o) !== "[object Object]")
      return !1;
    const l = Object.getPrototypeOf(o);
    return l === null || Object.getPrototypeOf(l) === null;
  }
  function a(o) {
    if (o === void 0)
      return (0, t.identifier)("undefined");
    if (o === !0 || o === !1)
      return (0, t.booleanLiteral)(o);
    if (o === null)
      return (0, t.nullLiteral)();
    if (typeof o == "string")
      return (0, t.stringLiteral)(o);
    if (typeof o == "number") {
      let l;
      if (Number.isFinite(o))
        l = (0, t.numericLiteral)(Math.abs(o));
      else {
        let u;
        Number.isNaN(o) ? u = (0, t.numericLiteral)(0) : u = (0, t.numericLiteral)(1), l = (0, t.binaryExpression)("/", u, (0, t.numericLiteral)(0));
      }
      return (o < 0 || Object.is(o, -0)) && (l = (0, t.unaryExpression)("-", l)), l;
    }
    if (n(o)) {
      const l = o.source, u = o.toString().match(/\/([a-z]+|)$/)[1];
      return (0, t.regExpLiteral)(l, u);
    }
    if (Array.isArray(o))
      return (0, t.arrayExpression)(o.map(a));
    if (s(o)) {
      const l = [];
      for (const u of Object.keys(o)) {
        let c;
        (0, e.default)(u) ? c = (0, t.identifier)(u) : c = (0, t.stringLiteral)(u), l.push((0, t.objectProperty)(c, a(o[u])));
      }
      return (0, t.objectExpression)(l);
    }
    throw new Error("don't know how to turn this value into a node");
  }
  return Cb;
}
var _E = {}, kG;
function dit() {
  if (kG)
    return _E;
  kG = 1, Object.defineProperty(_E, "__esModule", {
    value: !0
  }), _E.default = t;
  var e = _o();
  function t(r, i, n = !1) {
    return r.object = (0, e.memberExpression)(r.object, r.property, r.computed), r.property = i, r.computed = !!n, r;
  }
  return _E;
}
var IE = {}, OG;
function mit() {
  if (OG)
    return IE;
  OG = 1, Object.defineProperty(IE, "__esModule", {
    value: !0
  }), IE.default = r;
  var e = om(), t = Uhe();
  function r(i, n) {
    if (!i || !n)
      return i;
    for (const s of e.INHERIT_KEYS.optional)
      i[s] == null && (i[s] = n[s]);
    for (const s of Object.keys(n))
      s[0] === "_" && s !== "__clone" && (i[s] = n[s]);
    for (const s of e.INHERIT_KEYS.force)
      i[s] = n[s];
    return (0, t.default)(i, n), i;
  }
  return IE;
}
var kE = {}, NG;
function yit() {
  if (NG)
    return kE;
  NG = 1, Object.defineProperty(kE, "__esModule", {
    value: !0
  }), kE.default = r;
  var e = _o(), t = Ui();
  function r(i, n) {
    if ((0, t.isSuper)(i.object))
      throw new Error("Cannot prepend node to super property access (`super.foo`).");
    return i.object = (0, e.memberExpression)(n, i.object), i;
  }
  return kE;
}
var _b = {}, DG;
function git() {
  if (DG)
    return _b;
  DG = 1, Object.defineProperty(_b, "__esModule", {
    value: !0
  }), _b.default = void 0;
  var e = v_(), t = r;
  _b.default = t;
  function r(i, n) {
    return (0, e.default)(i, n, !0);
  }
  return _b;
}
var OE = {}, LG;
function bit() {
  if (LG)
    return OE;
  LG = 1, Object.defineProperty(OE, "__esModule", {
    value: !0
  }), OE.default = t;
  var e = Wc();
  function t(i, n, s) {
    typeof n == "function" && (n = {
      enter: n
    });
    const {
      enter: a,
      exit: o
    } = n;
    r(i, a, o, s, []);
  }
  function r(i, n, s, a, o) {
    const l = e.VISITOR_KEYS[i.type];
    if (l) {
      n && n(i, o, a);
      for (const u of l) {
        const c = i[u];
        if (Array.isArray(c))
          for (let f = 0; f < c.length; f++) {
            const h = c[f];
            h && (o.push({
              node: i,
              key: u,
              index: f
            }), r(h, n, s, a, o), o.pop());
          }
        else
          c && (o.push({
            node: i,
            key: u
          }), r(c, n, s, a, o), o.pop());
      }
      s && s(i, o, a);
    }
  }
  return OE;
}
var NE = {}, MG;
function vit() {
  if (MG)
    return NE;
  MG = 1, Object.defineProperty(NE, "__esModule", {
    value: !0
  }), NE.default = t;
  var e = v_();
  function t(r, i, n) {
    if (n && r.type === "Identifier" && i.type === "ObjectProperty" && n.type === "ObjectExpression")
      return !1;
    const s = e.default.keys[i.type];
    if (s)
      for (let a = 0; a < s.length; a++) {
        const o = s[a], l = i[o];
        if (Array.isArray(l)) {
          if (l.indexOf(r) >= 0)
            return !0;
        } else if (l === r)
          return !0;
      }
    return !1;
  }
  return NE;
}
var DE = {}, LE = {}, RG;
function zhe() {
  if (RG)
    return LE;
  RG = 1, Object.defineProperty(LE, "__esModule", {
    value: !0
  }), LE.default = r;
  var e = Kn(), t = om();
  function r(i) {
    return (0, e.isVariableDeclaration)(i) && (i.kind !== "var" || i[t.BLOCK_SCOPED_SYMBOL]);
  }
  return LE;
}
var BG;
function Tit() {
  if (BG)
    return DE;
  BG = 1, Object.defineProperty(DE, "__esModule", {
    value: !0
  }), DE.default = r;
  var e = Kn(), t = zhe();
  function r(i) {
    return (0, e.isFunctionDeclaration)(i) || (0, e.isClassDeclaration)(i) || (0, t.default)(i);
  }
  return DE;
}
var ME = {}, FG;
function Sit() {
  if (FG)
    return ME;
  FG = 1, Object.defineProperty(ME, "__esModule", {
    value: !0
  }), ME.default = r;
  var e = v9(), t = Kn();
  function r(i) {
    return (0, e.default)(i.type, "Immutable") ? !0 : (0, t.isIdentifier)(i) ? i.name === "undefined" : !1;
  }
  return ME;
}
var RE = {}, jG;
function xit() {
  if (jG)
    return RE;
  jG = 1, Object.defineProperty(RE, "__esModule", {
    value: !0
  }), RE.default = t;
  var e = Wc();
  function t(r, i) {
    if (typeof r != "object" || typeof i != "object" || r == null || i == null)
      return r === i;
    if (r.type !== i.type)
      return !1;
    const n = Object.keys(e.NODE_FIELDS[r.type] || r.type), s = e.VISITOR_KEYS[r.type];
    for (const a of n) {
      const o = r[a], l = i[a];
      if (typeof o != typeof l)
        return !1;
      if (!(o == null && l == null)) {
        if (o == null || l == null)
          return !1;
        if (Array.isArray(o)) {
          if (!Array.isArray(l) || o.length !== l.length)
            return !1;
          for (let u = 0; u < o.length; u++)
            if (!t(o[u], l[u]))
              return !1;
          continue;
        }
        if (typeof o == "object" && !(s != null && s.includes(a))) {
          for (const u of Object.keys(o))
            if (o[u] !== l[u])
              return !1;
          continue;
        }
        if (!t(o, l))
          return !1;
      }
    }
    return !0;
  }
  return RE;
}
var BE = {}, $G;
function Eit() {
  if ($G)
    return BE;
  $G = 1, Object.defineProperty(BE, "__esModule", {
    value: !0
  }), BE.default = e;
  function e(t, r, i) {
    switch (r.type) {
      case "MemberExpression":
      case "OptionalMemberExpression":
        return r.property === t ? !!r.computed : r.object === t;
      case "JSXMemberExpression":
        return r.object === t;
      case "VariableDeclarator":
        return r.init === t;
      case "ArrowFunctionExpression":
        return r.body === t;
      case "PrivateName":
        return !1;
      case "ClassMethod":
      case "ClassPrivateMethod":
      case "ObjectMethod":
        return r.key === t ? !!r.computed : !1;
      case "ObjectProperty":
        return r.key === t ? !!r.computed : !i || i.type !== "ObjectPattern";
      case "ClassProperty":
      case "ClassAccessorProperty":
        return r.key === t ? !!r.computed : !0;
      case "ClassPrivateProperty":
        return r.key !== t;
      case "ClassDeclaration":
      case "ClassExpression":
        return r.superClass === t;
      case "AssignmentExpression":
        return r.right === t;
      case "AssignmentPattern":
        return r.right === t;
      case "LabeledStatement":
        return !1;
      case "CatchClause":
        return !1;
      case "RestElement":
        return !1;
      case "BreakStatement":
      case "ContinueStatement":
        return !1;
      case "FunctionDeclaration":
      case "FunctionExpression":
        return !1;
      case "ExportNamespaceSpecifier":
      case "ExportDefaultSpecifier":
        return !1;
      case "ExportSpecifier":
        return i != null && i.source ? !1 : r.local === t;
      case "ImportDefaultSpecifier":
      case "ImportNamespaceSpecifier":
      case "ImportSpecifier":
        return !1;
      case "ImportAttribute":
        return !1;
      case "JSXAttribute":
        return !1;
      case "ObjectPattern":
      case "ArrayPattern":
        return !1;
      case "MetaProperty":
        return !1;
      case "ObjectTypeProperty":
        return r.key !== t;
      case "TSEnumMember":
        return r.id !== t;
      case "TSPropertySignature":
        return r.key === t ? !!r.computed : !0;
    }
    return !0;
  }
  return BE;
}
var FE = {}, UG;
function Pit() {
  if (UG)
    return FE;
  UG = 1, Object.defineProperty(FE, "__esModule", {
    value: !0
  }), FE.default = t;
  var e = Kn();
  function t(r, i) {
    return (0, e.isBlockStatement)(r) && ((0, e.isFunction)(i) || (0, e.isCatchClause)(i)) ? !1 : (0, e.isPattern)(r) && ((0, e.isFunction)(i) || (0, e.isCatchClause)(i)) ? !0 : (0, e.isScopable)(r);
  }
  return FE;
}
var jE = {}, qG;
function wit() {
  if (qG)
    return jE;
  qG = 1, Object.defineProperty(jE, "__esModule", {
    value: !0
  }), jE.default = t;
  var e = Kn();
  function t(r) {
    return (0, e.isImportDefaultSpecifier)(r) || (0, e.isIdentifier)(r.imported || r.exported, {
      name: "default"
    });
  }
  return jE;
}
var $E = {}, VG;
function Ait() {
  if (VG)
    return $E;
  VG = 1, Object.defineProperty($E, "__esModule", {
    value: !0
  }), $E.default = r;
  var e = YT();
  const t = /* @__PURE__ */ new Set(["abstract", "boolean", "byte", "char", "double", "enum", "final", "float", "goto", "implements", "int", "interface", "long", "native", "package", "private", "protected", "public", "short", "static", "synchronized", "throws", "transient", "volatile"]);
  function r(i) {
    return (0, e.default)(i) && !t.has(i);
  }
  return $E;
}
var UE = {}, WG;
function Cit() {
  if (WG)
    return UE;
  WG = 1, Object.defineProperty(UE, "__esModule", {
    value: !0
  }), UE.default = r;
  var e = Kn(), t = om();
  function r(i) {
    return (0, e.isVariableDeclaration)(i, {
      kind: "var"
    }) && !i[t.BLOCK_SCOPED_SYMBOL];
  }
  return UE;
}
var HG;
function Ui() {
  return HG || (HG = 1, function(e) {
    Object.defineProperty(e, "__esModule", {
      value: !0
    });
    var t = {
      react: !0,
      assertNode: !0,
      createTypeAnnotationBasedOnTypeof: !0,
      createUnionTypeAnnotation: !0,
      createFlowUnionType: !0,
      createTSUnionType: !0,
      cloneNode: !0,
      clone: !0,
      cloneDeep: !0,
      cloneDeepWithoutLoc: !0,
      cloneWithoutLoc: !0,
      addComment: !0,
      addComments: !0,
      inheritInnerComments: !0,
      inheritLeadingComments: !0,
      inheritsComments: !0,
      inheritTrailingComments: !0,
      removeComments: !0,
      ensureBlock: !0,
      toBindingIdentifierName: !0,
      toBlock: !0,
      toComputedKey: !0,
      toExpression: !0,
      toIdentifier: !0,
      toKeyAlias: !0,
      toSequenceExpression: !0,
      toStatement: !0,
      valueToNode: !0,
      appendToMemberExpression: !0,
      inherits: !0,
      prependToMemberExpression: !0,
      removeProperties: !0,
      removePropertiesDeep: !0,
      removeTypeDuplicates: !0,
      getBindingIdentifiers: !0,
      getOuterBindingIdentifiers: !0,
      traverse: !0,
      traverseFast: !0,
      shallowEqual: !0,
      is: !0,
      isBinding: !0,
      isBlockScoped: !0,
      isImmutable: !0,
      isLet: !0,
      isNode: !0,
      isNodesEquivalent: !0,
      isPlaceholderType: !0,
      isReferenced: !0,
      isScope: !0,
      isSpecifierDefault: !0,
      isType: !0,
      isValidES3Identifier: !0,
      isValidIdentifier: !0,
      isVar: !0,
      matchesPattern: !0,
      validate: !0,
      buildMatchMemberExpression: !0,
      __internal__deprecationWarning: !0
    };
    Object.defineProperty(e, "__internal__deprecationWarning", {
      enumerable: !0,
      get: function() {
        return ge.default;
      }
    }), Object.defineProperty(e, "addComment", {
      enumerable: !0,
      get: function() {
        return T.default;
      }
    }), Object.defineProperty(e, "addComments", {
      enumerable: !0,
      get: function() {
        return S.default;
      }
    }), Object.defineProperty(e, "appendToMemberExpression", {
      enumerable: !0,
      get: function() {
        return z.default;
      }
    }), Object.defineProperty(e, "assertNode", {
      enumerable: !0,
      get: function() {
        return s.default;
      }
    }), Object.defineProperty(e, "buildMatchMemberExpression", {
      enumerable: !0,
      get: function() {
        return bt.default;
      }
    }), Object.defineProperty(e, "clone", {
      enumerable: !0,
      get: function() {
        return m.default;
      }
    }), Object.defineProperty(e, "cloneDeep", {
      enumerable: !0,
      get: function() {
        return g.default;
      }
    }), Object.defineProperty(e, "cloneDeepWithoutLoc", {
      enumerable: !0,
      get: function() {
        return y.default;
      }
    }), Object.defineProperty(e, "cloneNode", {
      enumerable: !0,
      get: function() {
        return h.default;
      }
    }), Object.defineProperty(e, "cloneWithoutLoc", {
      enumerable: !0,
      get: function() {
        return v.default;
      }
    }), Object.defineProperty(e, "createFlowUnionType", {
      enumerable: !0,
      get: function() {
        return l.default;
      }
    }), Object.defineProperty(e, "createTSUnionType", {
      enumerable: !0,
      get: function() {
        return u.default;
      }
    }), Object.defineProperty(e, "createTypeAnnotationBasedOnTypeof", {
      enumerable: !0,
      get: function() {
        return o.default;
      }
    }), Object.defineProperty(e, "createUnionTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return l.default;
      }
    }), Object.defineProperty(e, "ensureBlock", {
      enumerable: !0,
      get: function() {
        return L.default;
      }
    }), Object.defineProperty(e, "getBindingIdentifiers", {
      enumerable: !0,
      get: function() {
        return ae.default;
      }
    }), Object.defineProperty(e, "getOuterBindingIdentifiers", {
      enumerable: !0,
      get: function() {
        return be.default;
      }
    }), Object.defineProperty(e, "inheritInnerComments", {
      enumerable: !0,
      get: function() {
        return P.default;
      }
    }), Object.defineProperty(e, "inheritLeadingComments", {
      enumerable: !0,
      get: function() {
        return x.default;
      }
    }), Object.defineProperty(e, "inheritTrailingComments", {
      enumerable: !0,
      get: function() {
        return D.default;
      }
    }), Object.defineProperty(e, "inherits", {
      enumerable: !0,
      get: function() {
        return W.default;
      }
    }), Object.defineProperty(e, "inheritsComments", {
      enumerable: !0,
      get: function() {
        return C.default;
      }
    }), Object.defineProperty(e, "is", {
      enumerable: !0,
      get: function() {
        return ue.default;
      }
    }), Object.defineProperty(e, "isBinding", {
      enumerable: !0,
      get: function() {
        return me.default;
      }
    }), Object.defineProperty(e, "isBlockScoped", {
      enumerable: !0,
      get: function() {
        return xe.default;
      }
    }), Object.defineProperty(e, "isImmutable", {
      enumerable: !0,
      get: function() {
        return Pe.default;
      }
    }), Object.defineProperty(e, "isLet", {
      enumerable: !0,
      get: function() {
        return ve.default;
      }
    }), Object.defineProperty(e, "isNode", {
      enumerable: !0,
      get: function() {
        return Xe.default;
      }
    }), Object.defineProperty(e, "isNodesEquivalent", {
      enumerable: !0,
      get: function() {
        return st.default;
      }
    }), Object.defineProperty(e, "isPlaceholderType", {
      enumerable: !0,
      get: function() {
        return Se.default;
      }
    }), Object.defineProperty(e, "isReferenced", {
      enumerable: !0,
      get: function() {
        return oe.default;
      }
    }), Object.defineProperty(e, "isScope", {
      enumerable: !0,
      get: function() {
        return te.default;
      }
    }), Object.defineProperty(e, "isSpecifierDefault", {
      enumerable: !0,
      get: function() {
        return se.default;
      }
    }), Object.defineProperty(e, "isType", {
      enumerable: !0,
      get: function() {
        return re.default;
      }
    }), Object.defineProperty(e, "isValidES3Identifier", {
      enumerable: !0,
      get: function() {
        return Te.default;
      }
    }), Object.defineProperty(e, "isValidIdentifier", {
      enumerable: !0,
      get: function() {
        return ze.default;
      }
    }), Object.defineProperty(e, "isVar", {
      enumerable: !0,
      get: function() {
        return Ze.default;
      }
    }), Object.defineProperty(e, "matchesPattern", {
      enumerable: !0,
      get: function() {
        return pt.default;
      }
    }), Object.defineProperty(e, "prependToMemberExpression", {
      enumerable: !0,
      get: function() {
        return Y.default;
      }
    }), e.react = void 0, Object.defineProperty(e, "removeComments", {
      enumerable: !0,
      get: function() {
        return w.default;
      }
    }), Object.defineProperty(e, "removeProperties", {
      enumerable: !0,
      get: function() {
        return G.default;
      }
    }), Object.defineProperty(e, "removePropertiesDeep", {
      enumerable: !0,
      get: function() {
        return le.default;
      }
    }), Object.defineProperty(e, "removeTypeDuplicates", {
      enumerable: !0,
      get: function() {
        return ne.default;
      }
    }), Object.defineProperty(e, "shallowEqual", {
      enumerable: !0,
      get: function() {
        return Z.default;
      }
    }), Object.defineProperty(e, "toBindingIdentifierName", {
      enumerable: !0,
      get: function() {
        return O.default;
      }
    }), Object.defineProperty(e, "toBlock", {
      enumerable: !0,
      get: function() {
        return F.default;
      }
    }), Object.defineProperty(e, "toComputedKey", {
      enumerable: !0,
      get: function() {
        return q.default;
      }
    }), Object.defineProperty(e, "toExpression", {
      enumerable: !0,
      get: function() {
        return j.default;
      }
    }), Object.defineProperty(e, "toIdentifier", {
      enumerable: !0,
      get: function() {
        return N.default;
      }
    }), Object.defineProperty(e, "toKeyAlias", {
      enumerable: !0,
      get: function() {
        return M.default;
      }
    }), Object.defineProperty(e, "toSequenceExpression", {
      enumerable: !0,
      get: function() {
        return R.default;
      }
    }), Object.defineProperty(e, "toStatement", {
      enumerable: !0,
      get: function() {
        return $.default;
      }
    }), Object.defineProperty(e, "traverse", {
      enumerable: !0,
      get: function() {
        return ye.default;
      }
    }), Object.defineProperty(e, "traverseFast", {
      enumerable: !0,
      get: function() {
        return fe.default;
      }
    }), Object.defineProperty(e, "validate", {
      enumerable: !0,
      get: function() {
        return ut.default;
      }
    }), Object.defineProperty(e, "valueToNode", {
      enumerable: !0,
      get: function() {
        return V.default;
      }
    });
    var r = Lrt(), i = Mrt(), n = Wrt(), s = Hrt(), a = Krt();
    Object.keys(a).forEach(function($e) {
      $e === "default" || $e === "__esModule" || Object.prototype.hasOwnProperty.call(t, $e) || $e in e && e[$e] === a[$e] || Object.defineProperty(e, $e, {
        enumerable: !0,
        get: function() {
          return a[$e];
        }
      });
    });
    var o = zrt(), l = Grt(), u = Xrt(), c = _o();
    Object.keys(c).forEach(function($e) {
      $e === "default" || $e === "__esModule" || Object.prototype.hasOwnProperty.call(t, $e) || $e in e && e[$e] === c[$e] || Object.defineProperty(e, $e, {
        enumerable: !0,
        get: function() {
          return c[$e];
        }
      });
    });
    var f = Jrt();
    Object.keys(f).forEach(function($e) {
      $e === "default" || $e === "__esModule" || Object.prototype.hasOwnProperty.call(t, $e) || $e in e && e[$e] === f[$e] || Object.defineProperty(e, $e, {
        enumerable: !0,
        get: function() {
          return f[$e];
        }
      });
    });
    var h = lm(), m = Qrt(), g = Zrt(), y = eit(), v = tit(), T = rit(), S = Bhe(), P = Fhe(), x = jhe(), C = Uhe(), D = $he(), w = iit(), A = nit();
    Object.keys(A).forEach(function($e) {
      $e === "default" || $e === "__esModule" || Object.prototype.hasOwnProperty.call(t, $e) || $e in e && e[$e] === A[$e] || Object.defineProperty(e, $e, {
        enumerable: !0,
        get: function() {
          return A[$e];
        }
      });
    });
    var I = om();
    Object.keys(I).forEach(function($e) {
      $e === "default" || $e === "__esModule" || Object.prototype.hasOwnProperty.call(t, $e) || $e in e && e[$e] === I[$e] || Object.defineProperty(e, $e, {
        enumerable: !0,
        get: function() {
          return I[$e];
        }
      });
    });
    var L = sit(), O = ait(), F = qhe(), q = oit(), j = lit(), N = Vhe(), M = uit(), R = pit(), $ = fit(), V = hit(), K = Wc();
    Object.keys(K).forEach(function($e) {
      $e === "default" || $e === "__esModule" || Object.prototype.hasOwnProperty.call(t, $e) || $e in e && e[$e] === K[$e] || Object.defineProperty(e, $e, {
        enumerable: !0,
        get: function() {
          return K[$e];
        }
      });
    });
    var z = dit(), W = mit(), Y = yit(), G = Hhe(), le = Khe(), ne = Rhe(), ae = v_(), be = git(), ye = bit();
    Object.keys(ye).forEach(function($e) {
      $e === "default" || $e === "__esModule" || Object.prototype.hasOwnProperty.call(t, $e) || $e in e && e[$e] === ye[$e] || Object.defineProperty(e, $e, {
        enumerable: !0,
        get: function() {
          return ye[$e];
        }
      });
    });
    var fe = Whe(), Z = b9(), ue = GT(), me = vit(), xe = Tit(), Pe = Sit(), ve = zhe(), Xe = Mhe(), st = xit(), Se = Nhe(), oe = Eit(), te = Pit(), se = wit(), re = v9(), Te = Ait(), ze = YT(), Ze = Cit(), pt = khe(), ut = T9(), bt = Ohe(), vt = Kn();
    Object.keys(vt).forEach(function($e) {
      $e === "default" || $e === "__esModule" || Object.prototype.hasOwnProperty.call(t, $e) || $e in e && e[$e] === vt[$e] || Object.defineProperty(e, $e, {
        enumerable: !0,
        get: function() {
          return vt[$e];
        }
      });
    });
    var ge = b_();
    const pe = {
      isReactComponent: r.default,
      isCompatTag: i.default,
      buildChildren: n.default
    };
    e.react = pe;
  }(dR)), dR;
}
var T_ = {};
Object.defineProperty(T_, "__esModule", {
  value: !0
});
T_.default = void 0;
var vc = Af(), _it = Ui();
const {
  callExpression: gR,
  cloneNode: qE,
  expressionStatement: KG,
  identifier: Ib,
  importDeclaration: Iit,
  importDefaultSpecifier: kit,
  importNamespaceSpecifier: Oit,
  importSpecifier: Nit,
  memberExpression: bR,
  stringLiteral: zG,
  variableDeclaration: Dit,
  variableDeclarator: Lit
} = _it;
class Mit {
  constructor(t, r, i) {
    this._statements = [], this._resultName = null, this._importedSource = void 0, this._scope = r, this._hub = i, this._importedSource = t;
  }
  done() {
    return {
      statements: this._statements,
      resultName: this._resultName
    };
  }
  import() {
    return this._statements.push(Iit([], zG(this._importedSource))), this;
  }
  require() {
    return this._statements.push(KG(gR(Ib("require"), [zG(this._importedSource)]))), this;
  }
  namespace(t = "namespace") {
    const r = this._scope.generateUidIdentifier(t), i = this._statements[this._statements.length - 1];
    return vc(i.type === "ImportDeclaration"), vc(i.specifiers.length === 0), i.specifiers = [Oit(r)], this._resultName = qE(r), this;
  }
  default(t) {
    const r = this._scope.generateUidIdentifier(t), i = this._statements[this._statements.length - 1];
    return vc(i.type === "ImportDeclaration"), vc(i.specifiers.length === 0), i.specifiers = [kit(r)], this._resultName = qE(r), this;
  }
  named(t, r) {
    if (r === "default")
      return this.default(t);
    const i = this._scope.generateUidIdentifier(t), n = this._statements[this._statements.length - 1];
    return vc(n.type === "ImportDeclaration"), vc(n.specifiers.length === 0), n.specifiers = [Nit(i, Ib(r))], this._resultName = qE(i), this;
  }
  var(t) {
    const r = this._scope.generateUidIdentifier(t);
    let i = this._statements[this._statements.length - 1];
    return i.type !== "ExpressionStatement" && (vc(this._resultName), i = KG(this._resultName), this._statements.push(i)), this._statements[this._statements.length - 1] = Dit("var", [Lit(r, i.expression)]), this._resultName = qE(r), this;
  }
  defaultInterop() {
    return this._interop(this._hub.addHelper("interopRequireDefault"));
  }
  wildcardInterop() {
    return this._interop(this._hub.addHelper("interopRequireWildcard"));
  }
  _interop(t) {
    const r = this._statements[this._statements.length - 1];
    return r.type === "ExpressionStatement" ? r.expression = gR(t, [r.expression]) : r.type === "VariableDeclaration" ? (vc(r.declarations.length === 1), r.declarations[0].init = gR(t, [r.declarations[0].init])) : vc.fail("Unexpected type."), this;
  }
  prop(t) {
    const r = this._statements[this._statements.length - 1];
    return r.type === "ExpressionStatement" ? r.expression = bR(r.expression, Ib(t)) : r.type === "VariableDeclaration" ? (vc(r.declarations.length === 1), r.declarations[0].init = bR(r.declarations[0].init, Ib(t))) : vc.fail("Unexpected type:" + r.type), this;
  }
  read(t) {
    this._resultName = bR(this._resultName, Ib(t));
  }
}
T_.default = Mit;
var S_ = {};
Object.defineProperty(S_, "__esModule", {
  value: !0
});
S_.default = Rit;
function Rit(e) {
  return e.node.sourceType === "module";
}
Object.defineProperty(h_, "__esModule", {
  value: !0
});
h_.default = void 0;
var GG = Af(), Bit = Ui(), Fit = T_, jit = S_;
const {
  numericLiteral: $it,
  sequenceExpression: Uit
} = Bit;
class qit {
  constructor(t, r, i) {
    this._defaultOpts = {
      importedSource: null,
      importedType: "commonjs",
      importedInterop: "babel",
      importingInterop: "babel",
      ensureLiveReference: !1,
      ensureNoContext: !1,
      importPosition: "before"
    };
    const n = t.find((s) => s.isProgram());
    this._programPath = n, this._programScope = n.scope, this._hub = n.hub, this._defaultOpts = this._applyDefaults(r, i, !0);
  }
  addDefault(t, r) {
    return this.addNamed("default", t, r);
  }
  addNamed(t, r, i) {
    return GG(typeof t == "string"), this._generateImport(this._applyDefaults(r, i), t);
  }
  addNamespace(t, r) {
    return this._generateImport(this._applyDefaults(t, r), null);
  }
  addSideEffect(t, r) {
    return this._generateImport(this._applyDefaults(t, r), void 0);
  }
  _applyDefaults(t, r, i = !1) {
    let n;
    return typeof t == "string" ? n = Object.assign({}, this._defaultOpts, {
      importedSource: t
    }, r) : (GG(!r, "Unexpected secondary arguments."), n = Object.assign({}, this._defaultOpts, t)), !i && r && (r.nameHint !== void 0 && (n.nameHint = r.nameHint), r.blockHoist !== void 0 && (n.blockHoist = r.blockHoist)), n;
  }
  _generateImport(t, r) {
    const i = r === "default", n = !!r && !i, s = r === null, {
      importedSource: a,
      importedType: o,
      importedInterop: l,
      importingInterop: u,
      ensureLiveReference: c,
      ensureNoContext: f,
      nameHint: h,
      importPosition: m,
      blockHoist: g
    } = t;
    let y = h || r;
    const v = (0, jit.default)(this._programPath), T = v && u === "node", S = v && u === "babel";
    if (m === "after" && !v)
      throw new Error('"importPosition": "after" is only supported in modules');
    const P = new Fit.default(a, this._programScope, this._hub);
    if (o === "es6") {
      if (!T && !S)
        throw new Error("Cannot import an ES6 module from CommonJS");
      P.import(), s ? P.namespace(h || a) : (i || n) && P.named(y, r);
    } else {
      if (o !== "commonjs")
        throw new Error('Unexpected interopType "'.concat(o, '"'));
      if (l === "babel")
        if (T) {
          y = y !== "default" ? y : a;
          const D = "".concat(a, "$es6Default");
          P.import(), s ? P.default(D).var(y || a).wildcardInterop() : i ? c ? P.default(D).var(y || a).defaultInterop().read("default") : P.default(D).var(y).defaultInterop().prop(r) : n && P.default(D).read(r);
        } else
          S ? (P.import(), s ? P.namespace(y || a) : (i || n) && P.named(y, r)) : (P.require(), s ? P.var(y || a).wildcardInterop() : (i || n) && c ? i ? (y = y !== "default" ? y : a, P.var(y).read(r), P.defaultInterop()) : P.var(a).read(r) : i ? P.var(y).defaultInterop().prop(r) : n && P.var(y).prop(r));
      else if (l === "compiled")
        T ? (P.import(), s ? P.default(y || a) : (i || n) && P.default(a).read(y)) : S ? (P.import(), s ? P.namespace(y || a) : (i || n) && P.named(y, r)) : (P.require(), s ? P.var(y || a) : (i || n) && (c ? P.var(a).read(y) : P.prop(r).var(y)));
      else if (l === "uncompiled") {
        if (i && c)
          throw new Error("No live reference for commonjs default");
        T ? (P.import(), s ? P.default(y || a) : i ? P.default(y) : n && P.default(a).read(y)) : S ? (P.import(), s ? P.default(y || a) : i ? P.default(y) : n && P.named(y, r)) : (P.require(), s ? P.var(y || a) : i ? P.var(y) : n && (c ? P.var(a).read(y) : P.var(y).prop(r)));
      } else
        throw new Error('Unknown importedInterop "'.concat(l, '".'));
    }
    const {
      statements: x,
      resultName: C
    } = P.done();
    return this._insertStatements(x, m, g), (i || n) && f && C.type !== "Identifier" ? Uit([$it(0), C]) : C;
  }
  _insertStatements(t, r = "before", i = 3) {
    const n = this._programPath.get("body");
    if (r === "after") {
      for (let s = n.length - 1; s >= 0; s--)
        if (n[s].isImportDeclaration()) {
          n[s].insertAfter(t);
          return;
        }
    } else {
      t.forEach((a) => {
        a._blockHoist = i;
      });
      const s = n.find((a) => {
        const o = a.node._blockHoist;
        return Number.isFinite(o) && o < 4;
      });
      if (s) {
        s.insertBefore(t);
        return;
      }
    }
    this._programPath.unshiftContainer("body", t);
  }
}
h_.default = qit;
(function(e) {
  Object.defineProperty(e, "__esModule", {
    value: !0
  }), Object.defineProperty(e, "ImportInjector", {
    enumerable: !0,
    get: function() {
      return t.default;
    }
  }), e.addDefault = i, e.addNamed = n, e.addNamespace = s, e.addSideEffect = a, Object.defineProperty(e, "isModule", {
    enumerable: !0,
    get: function() {
      return r.default;
    }
  });
  var t = h_, r = S_;
  function i(o, l, u) {
    return new t.default(o).addDefault(l, u);
  }
  function n(o, l, u, c) {
    return new t.default(o).addNamed(l, u, c);
  }
  function s(o, l, u) {
    return new t.default(o).addNamespace(l, u);
  }
  function a(o, l, u) {
    return new t.default(o).addSideEffect(l, u);
  }
})(f_);
var x9 = {}, x_ = {};
const Vit = [
  "a",
  "abbr",
  "address",
  "area",
  "article",
  "aside",
  "audio",
  "b",
  "base",
  "bdi",
  "bdo",
  "blockquote",
  "body",
  "br",
  "button",
  "canvas",
  "caption",
  "cite",
  "code",
  "col",
  "colgroup",
  "data",
  "datalist",
  "dd",
  "del",
  "details",
  "dfn",
  "dialog",
  "div",
  "dl",
  "dt",
  "em",
  "embed",
  "fieldset",
  "figcaption",
  "figure",
  "footer",
  "form",
  "h1",
  "h2",
  "h3",
  "h4",
  "h5",
  "h6",
  "head",
  "header",
  "hgroup",
  "hr",
  "html",
  "i",
  "iframe",
  "img",
  "input",
  "ins",
  "kbd",
  "label",
  "legend",
  "li",
  "link",
  "main",
  "map",
  "mark",
  "math",
  "menu",
  "menuitem",
  "meta",
  "meter",
  "nav",
  "noscript",
  "object",
  "ol",
  "optgroup",
  "option",
  "output",
  "p",
  "param",
  "picture",
  "pre",
  "progress",
  "q",
  "rb",
  "rp",
  "rt",
  "rtc",
  "ruby",
  "s",
  "samp",
  "script",
  "section",
  "select",
  "slot",
  "small",
  "source",
  "span",
  "strong",
  "style",
  "sub",
  "summary",
  "sup",
  "svg",
  "table",
  "tbody",
  "td",
  "template",
  "textarea",
  "tfoot",
  "th",
  "thead",
  "time",
  "title",
  "tr",
  "track",
  "u",
  "ul",
  "var",
  "video",
  "wbr"
];
var Wit = Vit;
const Hit = [
  "a",
  "altGlyph",
  "altGlyphDef",
  "altGlyphItem",
  "animate",
  "animateColor",
  "animateMotion",
  "animateTransform",
  "circle",
  "clipPath",
  "color-profile",
  "cursor",
  "defs",
  "desc",
  "ellipse",
  "feBlend",
  "feColorMatrix",
  "feComponentTransfer",
  "feComposite",
  "feConvolveMatrix",
  "feDiffuseLighting",
  "feDisplacementMap",
  "feDistantLight",
  "feFlood",
  "feFuncA",
  "feFuncB",
  "feFuncG",
  "feFuncR",
  "feGaussianBlur",
  "feImage",
  "feMerge",
  "feMergeNode",
  "feMorphology",
  "feOffset",
  "fePointLight",
  "feSpecularLighting",
  "feSpotLight",
  "feTile",
  "feTurbulence",
  "filter",
  "font",
  "font-face",
  "font-face-format",
  "font-face-name",
  "font-face-src",
  "font-face-uri",
  "foreignObject",
  "g",
  "glyph",
  "glyphRef",
  "hkern",
  "image",
  "line",
  "linearGradient",
  "marker",
  "mask",
  "metadata",
  "missing-glyph",
  "mpath",
  "path",
  "pattern",
  "polygon",
  "polyline",
  "radialGradient",
  "rect",
  "script",
  "set",
  "stop",
  "style",
  "svg",
  "switch",
  "symbol",
  "text",
  "textPath",
  "title",
  "tref",
  "tspan",
  "use",
  "view",
  "vkern"
];
var Kit = Hit;
(function(e) {
  var t = jt && jt.__createBinding || (Object.create ? function(L, O, F, q) {
    q === void 0 && (q = F), Object.defineProperty(L, q, { enumerable: !0, get: function() {
      return O[F];
    } });
  } : function(L, O, F, q) {
    q === void 0 && (q = F), L[q] = O[F];
  }), r = jt && jt.__setModuleDefault || (Object.create ? function(L, O) {
    Object.defineProperty(L, "default", { enumerable: !0, value: O });
  } : function(L, O) {
    L.default = O;
  }), i = jt && jt.__importStar || function(L) {
    if (L && L.__esModule)
      return L;
    var O = {};
    if (L != null)
      for (var F in L)
        F !== "default" && Object.prototype.hasOwnProperty.call(L, F) && t(O, L, F);
    return r(O, L), O;
  }, n = jt && jt.__importDefault || function(L) {
    return L && L.__esModule ? L : { default: L };
  };
  Object.defineProperty(e, "__esModule", { value: !0 }), e.transformJSXSpreadAttribute = e.isConstant = e.dedupeProperties = e.isOn = e.buildIIFE = e.walksScope = e.transformJSXSpreadChild = e.transformJSXExpressionContainer = e.transformJSXText = e.getJSXAttributeName = e.getTag = e.transformJSXMemberExpression = e.checkIsComponent = e.shouldTransformedToSlots = e.isDirective = e.createIdentifier = e.KEEP_ALIVE = e.FRAGMENT = e.JSX_HELPER_KEY = void 0;
  const s = i(Nr()), a = n(Wit), o = n(Kit);
  e.JSX_HELPER_KEY = "JSX_HELPER_KEY", e.FRAGMENT = "Fragment", e.KEEP_ALIVE = "KeepAlive";
  const l = (L, O) => L.get(O)();
  e.createIdentifier = l;
  const u = (L) => L.startsWith("v-") || L.startsWith("v") && L.length >= 2 && L[1] >= "A" && L[1] <= "Z";
  e.isDirective = u;
  const c = (L) => !(L.match(RegExp("^_?".concat(e.FRAGMENT, "\\d*$"))) || L === e.KEEP_ALIVE);
  e.shouldTransformedToSlots = c;
  const f = (L, O) => {
    var F, q;
    const j = L.get("name");
    if (j.isJSXMemberExpression())
      return (0, e.shouldTransformedToSlots)(j.node.property.name);
    const N = j.node.name;
    return !(!((q = (F = O.opts).isCustomElement) === null || q === void 0) && q.call(F, N)) && (0, e.shouldTransformedToSlots)(N) && !a.default.includes(N) && !o.default.includes(N);
  };
  e.checkIsComponent = f;
  const h = (L) => {
    const O = L.node.object, F = L.node.property, q = s.isJSXMemberExpression(O) ? (0, e.transformJSXMemberExpression)(L.get("object")) : s.isJSXIdentifier(O) ? s.identifier(O.name) : s.nullLiteral(), j = s.identifier(F.name);
    return s.memberExpression(q, j);
  };
  e.transformJSXMemberExpression = h;
  const m = (L, O) => {
    var F, q;
    const j = L.get("openingElement").get("name");
    if (j.isJSXIdentifier()) {
      const { name: N } = j.node;
      return !a.default.includes(N) && !o.default.includes(N) ? N === e.FRAGMENT ? (0, e.createIdentifier)(O, e.FRAGMENT) : L.scope.hasBinding(N) ? s.identifier(N) : !((q = (F = O.opts).isCustomElement) === null || q === void 0) && q.call(F, N) ? s.stringLiteral(N) : s.callExpression((0, e.createIdentifier)(O, "resolveComponent"), [s.stringLiteral(N)]) : s.stringLiteral(N);
    }
    if (j.isJSXMemberExpression())
      return (0, e.transformJSXMemberExpression)(j);
    throw new Error("getTag: ".concat(j.type, " is not supported"));
  };
  e.getTag = m;
  const g = (L) => {
    const O = L.node.name;
    return s.isJSXIdentifier(O) ? O.name : "".concat(O.namespace.name, ":").concat(O.name.name);
  };
  e.getJSXAttributeName = g;
  const y = (L) => {
    const { node: O } = L, F = O.value.split(/\r\n|\n|\r/);
    let q = 0;
    for (let N = 0; N < F.length; N++)
      F[N].match(/[^ \t]/) && (q = N);
    let j = "";
    for (let N = 0; N < F.length; N++) {
      const M = F[N], R = N === 0, $ = N === F.length - 1, V = N === q;
      let K = M.replace(/\t/g, " ");
      R || (K = K.replace(/^[ ]+/, "")), $ || (K = K.replace(/[ ]+$/, "")), K && (V || (K += " "), j += K);
    }
    return j !== "" ? s.stringLiteral(j) : null;
  };
  e.transformJSXText = y;
  const v = (L) => L.get("expression").node;
  e.transformJSXExpressionContainer = v;
  const T = (L) => s.spreadElement(L.get("expression").node);
  e.transformJSXSpreadChild = T;
  const S = (L, O, F) => {
    L.scope.hasBinding(O) && L.parentPath && (s.isJSXElement(L.parentPath.node) && L.parentPath.setData("slotFlag", F), (0, e.walksScope)(L.parentPath, O, F));
  };
  e.walksScope = S;
  const P = (L, O) => {
    const { parentPath: F } = L;
    if (s.isAssignmentExpression(F)) {
      const { left: q } = F.node;
      if (s.isIdentifier(q))
        return O.map((j) => {
          if (s.isIdentifier(j) && j.name === q.name) {
            const N = L.scope.generateUidIdentifier(j.name);
            return F.insertBefore(s.variableDeclaration("const", [
              s.variableDeclarator(N, s.callExpression(s.functionExpression(null, [], s.blockStatement([s.returnStatement(j)])), []))
            ])), N;
          }
          return j;
        });
    }
    return O;
  };
  e.buildIIFE = P;
  const x = /^on[^a-z]/, C = (L) => x.test(L);
  e.isOn = C;
  const D = (L, O) => {
    s.isArrayExpression(L.value) ? L.value.elements.push(O.value) : L.value = s.arrayExpression([
      L.value,
      O.value
    ]);
  }, w = (L = [], O) => {
    if (!O)
      return L;
    const F = /* @__PURE__ */ new Map(), q = [];
    return L.forEach((j) => {
      if (s.isStringLiteral(j.key)) {
        const { value: N } = j.key, M = F.get(N);
        M ? (N === "style" || N === "class" || N.startsWith("on")) && D(M, j) : (F.set(N, j), q.push(j));
      } else
        q.push(j);
    }), q;
  };
  e.dedupeProperties = w;
  const A = (L) => {
    if (s.isIdentifier(L))
      return L.name === "undefined";
    if (s.isArrayExpression(L)) {
      const { elements: O } = L;
      return O.every((F) => F && (0, e.isConstant)(F));
    }
    return s.isObjectExpression(L) ? L.properties.every((O) => (0, e.isConstant)(O.value)) : !!s.isLiteral(L);
  };
  e.isConstant = A;
  const I = (L, O, F, q) => {
    const j = O.get("argument"), N = s.isObjectExpression(j.node) ? j.node.properties : void 0;
    N ? F ? q.push(s.objectExpression(N)) : q.push(...N) : (j.isIdentifier() && (0, e.walksScope)(
      L,
      j.node.name,
      2
      /* DYNAMIC */
    ), q.push(F ? j.node : s.spreadElement(j.node)));
  };
  e.transformJSXSpreadAttribute = I;
})(x_);
var E9 = {}, zit = jt && jt.__createBinding || (Object.create ? function(e, t, r, i) {
  i === void 0 && (i = r), Object.defineProperty(e, i, { enumerable: !0, get: function() {
    return t[r];
  } });
} : function(e, t, r, i) {
  i === void 0 && (i = r), e[i] = t[r];
}), Git = jt && jt.__setModuleDefault || (Object.create ? function(e, t) {
  Object.defineProperty(e, "default", { enumerable: !0, value: t });
} : function(e, t) {
  e.default = t;
}), Yit = jt && jt.__importStar || function(e) {
  if (e && e.__esModule)
    return e;
  var t = {};
  if (e != null)
    for (var r in e)
      r !== "default" && Object.prototype.hasOwnProperty.call(e, r) && zit(t, e, r);
  return Git(t, e), t;
};
Object.defineProperty(E9, "__esModule", { value: !0 });
const En = Yit(Nr()), Zf = x_, Xit = (e) => {
  const t = e.get("attributes").find((r) => En.isJSXAttribute(r) ? En.isJSXIdentifier(r.get("name")) && r.get("name").node.name === "type" : !1);
  return t ? t.get("value").node : null;
}, YG = (e) => En.isArrayExpression(e) ? e.elements.map((t) => En.isStringLiteral(t) ? t.value : "").filter(Boolean) : [], Jit = (e) => {
  var t, r;
  const { path: i, value: n, state: s, tag: a, isComponent: o } = e, l = [], u = [], c = [];
  let f, h, m;
  if ("namespace" in i.node.name)
    [f, h] = e.name.split(":"), f = i.node.name.namespace.name, h = i.node.name.name.name, m = h.split("_").slice(1);
  else {
    const S = e.name.split("_");
    f = S.shift() || "", m = S;
  }
  f = f.replace(/^v/, "").replace(/^-/, "").replace(/^\S/, (S) => S.toLowerCase()), h && l.push(En.stringLiteral(h));
  const g = f === "models", y = f === "model";
  if (y && !En.isJSXExpressionContainer(i.get("value")))
    throw new Error("You have to use JSX Expression inside your v-model");
  if (g && !o)
    throw new Error("v-models can only use in custom components");
  const v = !["html", "text", "model", "models"].includes(f) || y && !o;
  let T = m;
  return En.isArrayExpression(n) ? (g ? n.elements : [n]).forEach((P) => {
    if (g && !En.isArrayExpression(P))
      throw new Error("You should pass a Two-dimensional Arrays to v-models");
    const { elements: x } = P, [C, D, w] = x;
    D && !En.isArrayExpression(D) && !En.isSpreadElement(D) ? (l.push(D), T = YG(w)) : En.isArrayExpression(D) ? (v || l.push(En.nullLiteral()), T = YG(D)) : v || l.push(En.nullLiteral()), c.push(new Set(T)), u.push(C);
  }) : y && !v ? (l.push(En.nullLiteral()), c.push(new Set(m))) : c.push(new Set(m)), {
    directiveName: f,
    modifiers: c,
    values: u.length ? u : [n],
    args: l,
    directive: v ? [
      Qit(i, s, a, f),
      u[0] || n,
      !((t = c[0]) === null || t === void 0) && t.size ? l[0] || En.unaryExpression("void", En.numericLiteral(0), !0) : l[0],
      !!(!((r = c[0]) === null || r === void 0) && r.size) && En.objectExpression([...c[0]].map((S) => En.objectProperty(En.identifier(S), En.booleanLiteral(!0))))
    ].filter(Boolean) : void 0
  };
}, Qit = (e, t, r, i) => {
  var n;
  if (i === "show")
    return (0, Zf.createIdentifier)(t, "vShow");
  if (i === "model") {
    let s;
    const a = Xit(e.parentPath);
    switch (r.value) {
      case "select":
        s = (0, Zf.createIdentifier)(t, "vModelSelect");
        break;
      case "textarea":
        s = (0, Zf.createIdentifier)(t, "vModelText");
        break;
      default:
        if (En.isStringLiteral(a) || !a)
          switch ((n = a) === null || n === void 0 ? void 0 : n.value) {
            case "checkbox":
              s = (0, Zf.createIdentifier)(t, "vModelCheckbox");
              break;
            case "radio":
              s = (0, Zf.createIdentifier)(t, "vModelRadio");
              break;
            default:
              s = (0, Zf.createIdentifier)(t, "vModelText");
          }
        else
          s = (0, Zf.createIdentifier)(t, "vModelDynamic");
    }
    return s;
  }
  return En.callExpression((0, Zf.createIdentifier)(t, "resolveDirective"), [
    En.stringLiteral(i)
  ]);
};
E9.default = Jit;
var Zit = jt && jt.__createBinding || (Object.create ? function(e, t, r, i) {
  i === void 0 && (i = r), Object.defineProperty(e, i, { enumerable: !0, get: function() {
    return t[r];
  } });
} : function(e, t, r, i) {
  i === void 0 && (i = r), e[i] = t[r];
}), ent = jt && jt.__setModuleDefault || (Object.create ? function(e, t) {
  Object.defineProperty(e, "default", { enumerable: !0, value: t });
} : function(e, t) {
  e.default = t;
}), tnt = jt && jt.__importStar || function(e) {
  if (e && e.__esModule)
    return e;
  var t = {};
  if (e != null)
    for (var r in e)
      r !== "default" && Object.prototype.hasOwnProperty.call(e, r) && Zit(t, e, r);
  return ent(t, e), t;
}, rnt = jt && jt.__importDefault || function(e) {
  return e && e.__esModule ? e : { default: e };
};
Object.defineProperty(x9, "__esModule", { value: !0 });
const Ct = tnt(Nr()), int = f_, Pn = x_, nnt = rnt(E9), XG = /^xlink([A-Z])/, snt = (e, t) => {
  const r = e.get("value");
  return r.isJSXElement() ? P9(r, t) : r.isStringLiteral() ? r.node : r.isJSXExpressionContainer() ? (0, Pn.transformJSXExpressionContainer)(r) : null;
}, ant = (e, t) => {
  const r = (0, Pn.getTag)(e, t), i = (0, Pn.checkIsComponent)(e.get("openingElement"), t), n = e.get("openingElement").get("attributes"), s = [], a = /* @__PURE__ */ new Set();
  let o = null, l = 0;
  if (n.length === 0)
    return {
      tag: r,
      isComponent: i,
      slots: o,
      props: Ct.nullLiteral(),
      directives: s,
      patchFlag: l,
      dynamicPropNames: a
    };
  let u = [], c = !1, f = !1, h = !1, m = !1, g = !1;
  const y = [], { mergeProps: v = !0 } = t.opts;
  n.forEach((S) => {
    if (S.isJSXAttribute()) {
      let P = (0, Pn.getJSXAttributeName)(S);
      const x = snt(S, t);
      if ((!(0, Pn.isConstant)(x) || P === "ref") && (!i && (0, Pn.isOn)(P) && P.toLowerCase() !== "onclick" && P !== "onUpdate:modelValue" && (m = !0), P === "ref" ? c = !0 : P === "class" && !i ? f = !0 : P === "style" && !i ? h = !0 : P !== "key" && !(0, Pn.isDirective)(P) && P !== "on" && a.add(P)), t.opts.transformOn && (P === "on" || P === "nativeOn")) {
        t.get("transformOn") || t.set("transformOn", (0, int.addDefault)(e, "@vue/babel-helper-vue-transform-on", { nameHint: "_transformOn" })), y.push(Ct.callExpression(t.get("transformOn"), [x || Ct.booleanLiteral(!0)]));
        return;
      }
      if ((0, Pn.isDirective)(P)) {
        const { directive: C, modifiers: D, values: w, args: A, directiveName: I } = (0, nnt.default)({
          tag: r,
          isComponent: i,
          name: P,
          path: S,
          state: t,
          value: x
        });
        if (I === "slots") {
          o = x;
          return;
        }
        C ? s.push(Ct.arrayExpression(C)) : I === "html" ? (u.push(Ct.objectProperty(Ct.stringLiteral("innerHTML"), w[0])), a.add("innerHTML")) : I === "text" && (u.push(Ct.objectProperty(Ct.stringLiteral("textContent"), w[0])), a.add("textContent")), ["models", "model"].includes(I) && w.forEach((L, O) => {
          var F, q, j, N;
          const M = A[O], R = M && !Ct.isStringLiteral(M) && !Ct.isNullLiteral(M);
          C || (u.push(Ct.objectProperty(Ct.isNullLiteral(M) ? Ct.stringLiteral("modelValue") : M, L, R)), R || a.add(((F = M) === null || F === void 0 ? void 0 : F.value) || "modelValue"), !((q = D[O]) === null || q === void 0) && q.size && u.push(Ct.objectProperty(R ? Ct.binaryExpression("+", M, Ct.stringLiteral("Modifiers")) : Ct.stringLiteral("".concat(((j = M) === null || j === void 0 ? void 0 : j.value) || "model", "Modifiers")), Ct.objectExpression([...D[O]].map((V) => Ct.objectProperty(Ct.stringLiteral(V), Ct.booleanLiteral(!0)))), R)));
          const $ = R ? Ct.binaryExpression("+", Ct.stringLiteral("onUpdate"), M) : Ct.stringLiteral("onUpdate:".concat(((N = M) === null || N === void 0 ? void 0 : N.value) || "modelValue"));
          u.push(Ct.objectProperty($, Ct.arrowFunctionExpression([Ct.identifier("$event")], Ct.assignmentExpression("=", L, Ct.identifier("$event"))), R)), R ? g = !0 : a.add($.value);
        });
      } else
        P.match(XG) && (P = P.replace(XG, (C, D) => "xlink:".concat(D.toLowerCase()))), u.push(Ct.objectProperty(Ct.stringLiteral(P), x || Ct.booleanLiteral(!0)));
    } else
      u.length && v && (y.push(Ct.objectExpression((0, Pn.dedupeProperties)(u, v))), u = []), g = !0, (0, Pn.transformJSXSpreadAttribute)(e, S, v, v ? y : u);
  }), g ? l |= 16 : (f && (l |= 2), h && (l |= 4), a.size && (l |= 8), m && (l |= 32)), (l === 0 || l === 32) && (c || s.length > 0) && (l |= 512);
  let T = Ct.nullLiteral();
  return y.length ? (u.length && y.push(Ct.objectExpression((0, Pn.dedupeProperties)(u, v))), y.length > 1 ? T = Ct.callExpression((0, Pn.createIdentifier)(t, "mergeProps"), y) : T = y[0]) : u.length && (u.length === 1 && Ct.isSpreadElement(u[0]) ? T = u[0].argument : T = Ct.objectExpression((0, Pn.dedupeProperties)(u, v))), {
    tag: r,
    props: T,
    isComponent: i,
    slots: o,
    directives: s,
    patchFlag: l,
    dynamicPropNames: a
  };
}, ont = (e, t) => e.map((r) => {
  if (r.isJSXText()) {
    const i = (0, Pn.transformJSXText)(r);
    return i && Ct.callExpression((0, Pn.createIdentifier)(t, "createTextVNode"), [i]);
  }
  if (r.isJSXExpressionContainer()) {
    const i = (0, Pn.transformJSXExpressionContainer)(r);
    if (Ct.isIdentifier(i)) {
      const { name: n } = i, { referencePaths: s = [] } = r.scope.getBinding(n) || {};
      s.forEach((a) => {
        (0, Pn.walksScope)(
          a,
          n,
          2
          /* DYNAMIC */
        );
      });
    }
    return i;
  }
  if (Ct.isJSXSpreadChild(r))
    return (0, Pn.transformJSXSpreadChild)(r);
  if (r.isCallExpression())
    return r.node;
  if (r.isJSXElement())
    return P9(r, t);
  throw new Error("getChildren: ".concat(r.type, " is not supported"));
}).filter((r) => r != null && !Ct.isJSXEmptyExpression(r)), P9 = (e, t) => {
  const r = ont(e.get("children"), t), { tag: i, props: n, isComponent: s, directives: a, patchFlag: o, dynamicPropNames: l, slots: u } = ant(e, t), { optimize: c = !1 } = t.opts, f = e.getData("slotFlag") || 1;
  let h;
  if (r.length > 1 || u)
    h = s ? r.length ? Ct.objectExpression([
      !!r.length && Ct.objectProperty(Ct.identifier("default"), Ct.arrowFunctionExpression([], Ct.arrayExpression((0, Pn.buildIIFE)(e, r)))),
      ...u ? Ct.isObjectExpression(u) ? u.properties : [Ct.spreadElement(u)] : [],
      c && Ct.objectProperty(Ct.identifier("_"), Ct.numericLiteral(f))
    ].filter(Boolean)) : u : Ct.arrayExpression(r);
  else if (r.length === 1) {
    const { enableObjectSlots: g = !0 } = t.opts, y = r[0], v = Ct.objectExpression([
      Ct.objectProperty(Ct.identifier("default"), Ct.arrowFunctionExpression([], Ct.arrayExpression((0, Pn.buildIIFE)(e, [y])))),
      c && Ct.objectProperty(Ct.identifier("_"), Ct.numericLiteral(f))
    ].filter(Boolean));
    if (Ct.isIdentifier(y) && s)
      h = g ? Ct.conditionalExpression(Ct.callExpression(t.get("@vue/babel-plugin-jsx/runtimeIsSlot")(), [y]), y, v) : v;
    else if (Ct.isCallExpression(y) && y.loc && s)
      if (g) {
        const { scope: T } = e, S = T.generateUidIdentifier("slot");
        T && T.push({
          id: S,
          kind: "let"
        });
        const P = Ct.objectExpression([
          Ct.objectProperty(Ct.identifier("default"), Ct.arrowFunctionExpression([], Ct.arrayExpression((0, Pn.buildIIFE)(e, [S])))),
          c && Ct.objectProperty(Ct.identifier("_"), Ct.numericLiteral(f))
        ].filter(Boolean)), x = Ct.assignmentExpression("=", S, y), C = Ct.callExpression(t.get("@vue/babel-plugin-jsx/runtimeIsSlot")(), [x]);
        h = Ct.conditionalExpression(C, S, P);
      } else
        h = v;
    else
      Ct.isFunctionExpression(y) || Ct.isArrowFunctionExpression(y) ? h = Ct.objectExpression([
        Ct.objectProperty(Ct.identifier("default"), y)
      ]) : Ct.isObjectExpression(y) ? h = Ct.objectExpression([
        ...y.properties,
        c && Ct.objectProperty(Ct.identifier("_"), Ct.numericLiteral(f))
      ].filter(Boolean)) : h = s ? Ct.objectExpression([
        Ct.objectProperty(Ct.identifier("default"), Ct.arrowFunctionExpression([], Ct.arrayExpression([y])))
      ]) : Ct.arrayExpression([y]);
  }
  const m = Ct.callExpression((0, Pn.createIdentifier)(t, "createVNode"), [
    i,
    n,
    h || Ct.nullLiteral(),
    !!o && c && Ct.numericLiteral(o),
    !!l.size && c && Ct.arrayExpression([...l.keys()].map((g) => Ct.stringLiteral(g)))
  ].filter(Boolean));
  return a.length ? Ct.callExpression((0, Pn.createIdentifier)(t, "withDirectives"), [
    m,
    Ct.arrayExpression(a)
  ]) : m;
};
x9.default = {
  JSXElement: {
    exit(e, t) {
      e.replaceWith(P9(e, t));
    }
  }
};
var w9 = {}, lnt = jt && jt.__createBinding || (Object.create ? function(e, t, r, i) {
  i === void 0 && (i = r), Object.defineProperty(e, i, { enumerable: !0, get: function() {
    return t[r];
  } });
} : function(e, t, r, i) {
  i === void 0 && (i = r), e[i] = t[r];
}), unt = jt && jt.__setModuleDefault || (Object.create ? function(e, t) {
  Object.defineProperty(e, "default", { enumerable: !0, value: t });
} : function(e, t) {
  e.default = t;
}), cnt = jt && jt.__importStar || function(e) {
  if (e && e.__esModule)
    return e;
  var t = {};
  if (e != null)
    for (var r in e)
      r !== "default" && Object.prototype.hasOwnProperty.call(e, r) && lnt(t, e, r);
  return unt(t, e), t;
};
Object.defineProperty(w9, "__esModule", { value: !0 });
const Th = cnt(Nr()), JG = x_, pnt = (e, t) => {
  const r = e.get("children") || [];
  return Th.jsxElement(Th.jsxOpeningElement(t, []), Th.jsxClosingElement(t), r.map(({ node: i }) => i), !1);
};
w9.default = {
  JSXFragment: {
    enter(e, t) {
      const r = (0, JG.createIdentifier)(t, JG.FRAGMENT);
      e.replaceWith(pnt(e, Th.isIdentifier(r) ? Th.jsxIdentifier(r.name) : Th.jsxMemberExpression(Th.jsxIdentifier(r.object.name), Th.jsxIdentifier(r.property.name))));
    }
  }
};
var fnt = jt && jt.__createBinding || (Object.create ? function(e, t, r, i) {
  i === void 0 && (i = r), Object.defineProperty(e, i, { enumerable: !0, get: function() {
    return t[r];
  } });
} : function(e, t, r, i) {
  i === void 0 && (i = r), e[i] = t[r];
}), hnt = jt && jt.__setModuleDefault || (Object.create ? function(e, t) {
  Object.defineProperty(e, "default", { enumerable: !0, value: t });
} : function(e, t) {
  e.default = t;
}), dnt = jt && jt.__importStar || function(e) {
  if (e && e.__esModule)
    return e;
  var t = {};
  if (e != null)
    for (var r in e)
      r !== "default" && Object.prototype.hasOwnProperty.call(e, r) && fnt(t, e, r);
  return hnt(t, e), t;
}, E_ = jt && jt.__importDefault || function(e) {
  return e && e.__esModule ? e : { default: e };
};
Object.defineProperty(Dpe, "__esModule", { value: !0 });
const Dp = dnt(Nr()), QG = E_(rn), mnt = E_(p_), vR = f_, ynt = E_(x9), gnt = E_(w9), bnt = (e) => {
  let t = !1;
  return e.traverse({
    JSXElement(r) {
      t = !0, r.stop();
    },
    JSXFragment(r) {
      t = !0, r.stop();
    }
  }), t;
}, vnt = /\*?\s*@jsx\s+([^\s]+)/;
var vne, Tne, Tnt = Dpe.default = ({ types: e }) => ({
  name: "babel-plugin-jsx",
  inherits: mnt.default,
  visitor: Object.assign(Object.assign(Object.assign({}, ynt.default), gnt.default), { Program: {
    enter(t, r) {
      if (bnt(t)) {
        const i = [
          "createVNode",
          "Fragment",
          "resolveComponent",
          "withDirectives",
          "vShow",
          "vModelSelect",
          "vModelText",
          "vModelCheckbox",
          "vModelRadio",
          "vModelText",
          "vModelDynamic",
          "resolveDirective",
          "mergeProps",
          "createTextVNode",
          "isVNode"
        ];
        if ((0, vR.isModule)(t)) {
          const a = {};
          i.forEach((l) => {
            r.set(l, () => {
              if (a[l])
                return e.cloneNode(a[l]);
              const u = (0, vR.addNamed)(t, l, "vue", {
                ensureLiveReference: !0
              });
              return a[l] = u, u;
            });
          });
          const { enableObjectSlots: o = !0 } = r.opts;
          o && r.set("@vue/babel-plugin-jsx/runtimeIsSlot", () => {
            if (a.runtimeIsSlot)
              return a.runtimeIsSlot;
            const { name: l } = r.get("isVNode")(), u = t.scope.generateUidIdentifier("isSlot"), c = QG.default.ast(vne || (vne = at(["\n                  function ", "(s) {\n                    return typeof s === 'function' || (Object.prototype.toString.call(s) === '[object Object]' && !", "(s));\n                  }\n                "])), u.name, l), f = t.get("body").filter((h) => h.isImportDeclaration()).pop();
            return f && f.insertAfter(c), a.runtimeIsSlot = u, u;
          });
        } else {
          let a;
          i.forEach((u) => {
            r.set(u, () => (a || (a = (0, vR.addNamespace)(t, "vue", {
              ensureLiveReference: !0
            })), Dp.memberExpression(a, Dp.identifier(u))));
          });
          const o = {}, { enableObjectSlots: l = !0 } = r.opts;
          l && r.set("@vue/babel-plugin-jsx/runtimeIsSlot", () => {
            if (o.runtimeIsSlot)
              return o.runtimeIsSlot;
            const u = t.scope.generateUidIdentifier("isSlot"), { object: c } = r.get("isVNode")(), f = QG.default.ast(Tne || (Tne = at(["\n                  function ", "(s) {\n                    return typeof s === 'function' || (Object.prototype.toString.call(s) === '[object Object]' && !", ".isVNode(s));\n                  }\n                "])), u.name, c.name), m = t.get("body").filter((g) => g.isVariableDeclaration() && g.node.declarations.some((y) => {
              var v;
              return ((v = y.id) === null || v === void 0 ? void 0 : v.name) === a.name;
            })).pop();
            return m && m.insertAfter(f), u;
          });
        }
        const { opts: { pragma: n = "" }, file: s } = r;
        if (n && r.set("createVNode", () => Dp.identifier(n)), s.ast.comments)
          for (const a of s.ast.comments) {
            const o = vnt.exec(a.value);
            o && r.set("createVNode", () => Dp.identifier(o[1]));
          }
      }
    },
    exit(t) {
      const r = t.get("body"), i = /* @__PURE__ */ new Map();
      r.filter((s) => Dp.isImportDeclaration(s.node) && s.node.source.value === "vue").forEach((s) => {
        const { specifiers: a } = s.node;
        let o = !1;
        a.forEach((l) => {
          !l.loc && Dp.isImportSpecifier(l) && Dp.isIdentifier(l.imported) && (i.set(l.imported.name, l), o = !0);
        }), o && s.remove();
      });
      const n = [...i.keys()].map((s) => i.get(s));
      n.length && t.unshiftContainer("body", Dp.importDeclaration(n, Dp.stringLiteral("vue")));
    }
  } })
}), TR = {}, wg = {}, Tc = {}, SR = {}, nd = {}, Mr = {}, ZG;
function Ghe() {
  if (ZG)
    return Mr;
  ZG = 1, Object.defineProperty(Mr, "__esModule", {
    value: !0
  }), Mr.Var = Mr.User = Mr.Statement = Mr.SpreadProperty = Mr.Scope = Mr.RestProperty = Mr.ReferencedMemberExpression = Mr.ReferencedIdentifier = Mr.Referenced = Mr.Pure = Mr.NumericLiteralTypeAnnotation = Mr.Generated = Mr.ForAwaitStatement = Mr.Flow = Mr.Expression = Mr.ExistentialTypeParam = Mr.BlockScoped = Mr.BindingIdentifier = void 0;
  const e = ["Identifier", "JSXIdentifier"];
  Mr.ReferencedIdentifier = e;
  const t = ["MemberExpression"];
  Mr.ReferencedMemberExpression = t;
  const r = ["Identifier"];
  Mr.BindingIdentifier = r;
  const i = ["Statement"];
  Mr.Statement = i;
  const n = ["Expression"];
  Mr.Expression = n;
  const s = ["Scopable", "Pattern"];
  Mr.Scope = s;
  const a = null;
  Mr.Referenced = a;
  const o = null;
  Mr.BlockScoped = o;
  const l = ["VariableDeclaration"];
  Mr.Var = l;
  const u = null;
  Mr.User = u;
  const c = null;
  Mr.Generated = c;
  const f = null;
  Mr.Pure = f;
  const h = ["Flow", "ImportDeclaration", "ExportDeclaration", "ImportSpecifier"];
  Mr.Flow = h;
  const m = ["RestElement"];
  Mr.RestProperty = m;
  const g = ["RestElement"];
  Mr.SpreadProperty = g;
  const y = ["ExistsTypeAnnotation"];
  Mr.ExistentialTypeParam = y;
  const v = ["NumberLiteralTypeAnnotation"];
  Mr.NumericLiteralTypeAnnotation = v;
  const T = ["ForOfStatement"];
  return Mr.ForAwaitStatement = T, Mr;
}
var eY;
function P_() {
  if (eY)
    return nd;
  eY = 1, Object.defineProperty(nd, "__esModule", {
    value: !0
  }), nd.explode = u, nd.isExplodedVisitor = l, nd.merge = h, nd.verify = c;
  var e = Ghe(), t = Ui();
  const {
    DEPRECATED_KEYS: r,
    DEPRECATED_ALIASES: i,
    FLIPPED_ALIAS_KEYS: n,
    TYPES: s,
    __internal__deprecationWarning: a
  } = t;
  function o(P) {
    return P in e;
  }
  function l(P) {
    return P == null ? void 0 : P._exploded;
  }
  function u(P) {
    if (l(P))
      return P;
    P._exploded = !0;
    for (const x of Object.keys(P)) {
      if (T(x))
        continue;
      const C = x.split("|");
      if (C.length === 1)
        continue;
      const D = P[x];
      delete P[x];
      for (const w of C)
        P[w] = D;
    }
    c(P), delete P.__esModule, g(P), y(P);
    for (const x of Object.keys(P)) {
      if (T(x) || !o(x))
        continue;
      const C = P[x];
      for (const w of Object.keys(C))
        C[w] = v(x, C[w]);
      delete P[x];
      const D = e[x];
      if (D !== null)
        for (const w of D)
          P[w] ? S(P[w], C) : P[w] = C;
      else
        S(P, C);
    }
    for (const x of Object.keys(P)) {
      if (T(x))
        continue;
      let C = n[x];
      if (x in r) {
        const w = r[x];
        a(x, w, "Visitor "), C = [w];
      } else if (x in i) {
        const w = i[x];
        a(x, w, "Visitor "), C = n[w];
      }
      if (!C)
        continue;
      const D = P[x];
      delete P[x];
      for (const w of C) {
        const A = P[w];
        A ? S(A, D) : P[w] = Object.assign({}, D);
      }
    }
    for (const x of Object.keys(P))
      T(x) || y(P[x]);
    return P;
  }
  function c(P) {
    if (!P._verified) {
      if (typeof P == "function")
        throw new Error("You passed `traverse()` a function when it expected a visitor object, are you sure you didn't mean `{ enter: Function }`?");
      for (const x of Object.keys(P)) {
        if ((x === "enter" || x === "exit") && f(x, P[x]), T(x))
          continue;
        if (s.indexOf(x) < 0)
          throw new Error("You gave us a visitor for the node type ".concat(x, " but it's not a valid type"));
        const C = P[x];
        if (typeof C == "object")
          for (const D of Object.keys(C))
            if (D === "enter" || D === "exit")
              f("".concat(x, ".").concat(D), C[D]);
            else
              throw new Error("You passed `traverse()` a visitor object with the property " + "".concat(x, " that has the invalid property ").concat(D));
      }
      P._verified = !0;
    }
  }
  function f(P, x) {
    const C = [].concat(x);
    for (const D of C)
      if (typeof D != "function")
        throw new TypeError("Non-function found defined in ".concat(P, " with type ").concat(typeof D));
  }
  function h(P, x = [], C) {
    const D = {};
    for (let w = 0; w < P.length; w++) {
      const A = P[w], I = x[w];
      u(A);
      for (const L of Object.keys(A)) {
        let O = A[L];
        (I || C) && (O = m(O, I, C));
        const F = D[L] || (D[L] = {});
        S(F, O);
      }
    }
    return D;
  }
  function m(P, x, C) {
    const D = {};
    for (const w of Object.keys(P)) {
      let A = P[w];
      Array.isArray(A) && (A = A.map(function(I) {
        let L = I;
        return x && (L = function(O) {
          I.call(x, O, x);
        }), C && (L = C(x.key, w, L)), L !== I && (L.toString = () => I.toString()), L;
      }), D[w] = A);
    }
    return D;
  }
  function g(P) {
    for (const x of Object.keys(P)) {
      if (T(x))
        continue;
      const C = P[x];
      typeof C == "function" && (P[x] = {
        enter: C
      });
    }
  }
  function y(P) {
    P.enter && !Array.isArray(P.enter) && (P.enter = [P.enter]), P.exit && !Array.isArray(P.exit) && (P.exit = [P.exit]);
  }
  function v(P, x) {
    const C = function(D) {
      if (D["is".concat(P)]())
        return x.apply(this, arguments);
    };
    return C.toString = () => x.toString(), C;
  }
  function T(P) {
    return P[0] === "_" || P === "enter" || P === "exit" || P === "shouldSkip" || P === "denylist" || P === "noScope" || P === "skipKeys" || P === "blacklist";
  }
  function S(P, x) {
    for (const C of Object.keys(x))
      P[C] = [].concat(P[C] || [], x[C]);
  }
  return nd;
}
var hl = {}, tY;
function Ag() {
  if (tY)
    return hl;
  tY = 1, Object.defineProperty(hl, "__esModule", {
    value: !0
  }), hl.clear = r, hl.clearPath = i, hl.clearScope = n, hl.scope = hl.path = void 0;
  let e = /* @__PURE__ */ new WeakMap();
  hl.path = e;
  let t = /* @__PURE__ */ new WeakMap();
  hl.scope = t;
  function r() {
    i(), n();
  }
  function i() {
    hl.path = e = /* @__PURE__ */ new WeakMap();
  }
  function n() {
    hl.scope = t = /* @__PURE__ */ new WeakMap();
  }
  return hl;
}
var VE = {}, kb = {}, Sc = {}, WE = { exports: {} }, xR, rY;
function Snt() {
  if (rY)
    return xR;
  rY = 1;
  var e = 1e3, t = e * 60, r = t * 60, i = r * 24, n = i * 7, s = i * 365.25;
  xR = function(c, f) {
    f = f || {};
    var h = typeof c;
    if (h === "string" && c.length > 0)
      return a(c);
    if (h === "number" && isFinite(c))
      return f.long ? l(c) : o(c);
    throw new Error(
      "val is not a non-empty string or a valid number. val=" + JSON.stringify(c)
    );
  };
  function a(c) {
    if (c = String(c), !(c.length > 100)) {
      var f = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
        c
      );
      if (f) {
        var h = parseFloat(f[1]), m = (f[2] || "ms").toLowerCase();
        switch (m) {
          case "years":
          case "year":
          case "yrs":
          case "yr":
          case "y":
            return h * s;
          case "weeks":
          case "week":
          case "w":
            return h * n;
          case "days":
          case "day":
          case "d":
            return h * i;
          case "hours":
          case "hour":
          case "hrs":
          case "hr":
          case "h":
            return h * r;
          case "minutes":
          case "minute":
          case "mins":
          case "min":
          case "m":
            return h * t;
          case "seconds":
          case "second":
          case "secs":
          case "sec":
          case "s":
            return h * e;
          case "milliseconds":
          case "millisecond":
          case "msecs":
          case "msec":
          case "ms":
            return h;
          default:
            return;
        }
      }
    }
  }
  function o(c) {
    var f = Math.abs(c);
    return f >= i ? Math.round(c / i) + "d" : f >= r ? Math.round(c / r) + "h" : f >= t ? Math.round(c / t) + "m" : f >= e ? Math.round(c / e) + "s" : c + "ms";
  }
  function l(c) {
    var f = Math.abs(c);
    return f >= i ? u(c, f, i, "day") : f >= r ? u(c, f, r, "hour") : f >= t ? u(c, f, t, "minute") : f >= e ? u(c, f, e, "second") : c + " ms";
  }
  function u(c, f, h, m) {
    var g = f >= h * 1.5;
    return Math.round(c / h) + " " + m + (g ? "s" : "");
  }
  return xR;
}
var ER, iY;
function xnt() {
  if (iY)
    return ER;
  iY = 1;
  function e(t) {
    i.debug = i, i.default = i, i.coerce = u, i.disable = a, i.enable = s, i.enabled = o, i.humanize = Snt(), i.destroy = c, Object.keys(t).forEach((f) => {
      i[f] = t[f];
    }), i.names = [], i.skips = [], i.formatters = {};
    function r(f) {
      let h = 0;
      for (let m = 0; m < f.length; m++)
        h = (h << 5) - h + f.charCodeAt(m), h |= 0;
      return i.colors[Math.abs(h) % i.colors.length];
    }
    i.selectColor = r;
    function i(f) {
      let h, m = null, g, y;
      function v(...T) {
        if (!v.enabled)
          return;
        const S = v, P = Number(/* @__PURE__ */ new Date()), x = P - (h || P);
        S.diff = x, S.prev = h, S.curr = P, h = P, T[0] = i.coerce(T[0]), typeof T[0] != "string" && T.unshift("%O");
        let C = 0;
        T[0] = T[0].replace(/%([a-zA-Z%])/g, (w, A) => {
          if (w === "%%")
            return "%";
          C++;
          const I = i.formatters[A];
          if (typeof I == "function") {
            const L = T[C];
            w = I.call(S, L), T.splice(C, 1), C--;
          }
          return w;
        }), i.formatArgs.call(S, T), (S.log || i.log).apply(S, T);
      }
      return v.namespace = f, v.useColors = i.useColors(), v.color = i.selectColor(f), v.extend = n, v.destroy = i.destroy, Object.defineProperty(v, "enabled", {
        enumerable: !0,
        configurable: !1,
        get: () => m !== null ? m : (g !== i.namespaces && (g = i.namespaces, y = i.enabled(f)), y),
        set: (T) => {
          m = T;
        }
      }), typeof i.init == "function" && i.init(v), v;
    }
    function n(f, h) {
      const m = i(this.namespace + (typeof h == "undefined" ? ":" : h) + f);
      return m.log = this.log, m;
    }
    function s(f) {
      i.save(f), i.namespaces = f, i.names = [], i.skips = [];
      let h;
      const m = (typeof f == "string" ? f : "").split(/[\s,]+/), g = m.length;
      for (h = 0; h < g; h++)
        m[h] && (f = m[h].replace(/\*/g, ".*?"), f[0] === "-" ? i.skips.push(new RegExp("^" + f.slice(1) + "$")) : i.names.push(new RegExp("^" + f + "$")));
    }
    function a() {
      const f = [
        ...i.names.map(l),
        ...i.skips.map(l).map((h) => "-" + h)
      ].join(",");
      return i.enable(""), f;
    }
    function o(f) {
      if (f[f.length - 1] === "*")
        return !0;
      let h, m;
      for (h = 0, m = i.skips.length; h < m; h++)
        if (i.skips[h].test(f))
          return !1;
      for (h = 0, m = i.names.length; h < m; h++)
        if (i.names[h].test(f))
          return !0;
      return !1;
    }
    function l(f) {
      return f.toString().substring(2, f.toString().length - 2).replace(/\.\*\?$/, "*");
    }
    function u(f) {
      return f instanceof Error ? f.stack || f.message : f;
    }
    function c() {
      console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
    }
    return i.enable(i.load()), i;
  }
  return ER = e, ER;
}
var nY;
function Yhe() {
  return nY || (nY = 1, function(e, t) {
    t.formatArgs = i, t.save = n, t.load = s, t.useColors = r, t.storage = a(), t.destroy = (() => {
      let l = !1;
      return () => {
        l || (l = !0, console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."));
      };
    })(), t.colors = [
      "#0000CC",
      "#0000FF",
      "#0033CC",
      "#0033FF",
      "#0066CC",
      "#0066FF",
      "#0099CC",
      "#0099FF",
      "#00CC00",
      "#00CC33",
      "#00CC66",
      "#00CC99",
      "#00CCCC",
      "#00CCFF",
      "#3300CC",
      "#3300FF",
      "#3333CC",
      "#3333FF",
      "#3366CC",
      "#3366FF",
      "#3399CC",
      "#3399FF",
      "#33CC00",
      "#33CC33",
      "#33CC66",
      "#33CC99",
      "#33CCCC",
      "#33CCFF",
      "#6600CC",
      "#6600FF",
      "#6633CC",
      "#6633FF",
      "#66CC00",
      "#66CC33",
      "#9900CC",
      "#9900FF",
      "#9933CC",
      "#9933FF",
      "#99CC00",
      "#99CC33",
      "#CC0000",
      "#CC0033",
      "#CC0066",
      "#CC0099",
      "#CC00CC",
      "#CC00FF",
      "#CC3300",
      "#CC3333",
      "#CC3366",
      "#CC3399",
      "#CC33CC",
      "#CC33FF",
      "#CC6600",
      "#CC6633",
      "#CC9900",
      "#CC9933",
      "#CCCC00",
      "#CCCC33",
      "#FF0000",
      "#FF0033",
      "#FF0066",
      "#FF0099",
      "#FF00CC",
      "#FF00FF",
      "#FF3300",
      "#FF3333",
      "#FF3366",
      "#FF3399",
      "#FF33CC",
      "#FF33FF",
      "#FF6600",
      "#FF6633",
      "#FF9900",
      "#FF9933",
      "#FFCC00",
      "#FFCC33"
    ];
    function r() {
      if (typeof window != "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs))
        return !0;
      if (typeof navigator != "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))
        return !1;
      let l;
      return typeof document != "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773
      typeof window != "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?
      // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
      typeof navigator != "undefined" && navigator.userAgent && (l = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(l[1], 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker
      typeof navigator != "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
    }
    function i(l) {
      if (l[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + l[0] + (this.useColors ? "%c " : " ") + "+" + e.exports.humanize(this.diff), !this.useColors)
        return;
      const u = "color: " + this.color;
      l.splice(1, 0, u, "color: inherit");
      let c = 0, f = 0;
      l[0].replace(/%[a-zA-Z%]/g, (h) => {
        h !== "%%" && (c++, h === "%c" && (f = c));
      }), l.splice(f, 0, u);
    }
    t.log = console.debug || console.log || (() => {
    });
    function n(l) {
      try {
        l ? t.storage.setItem("debug", l) : t.storage.removeItem("debug");
      } catch (u) {
      }
    }
    function s() {
      let l;
      try {
        l = t.storage.getItem("debug");
      } catch (u) {
      }
      return !l && typeof process != "undefined" && "env" in process && (l = process.env.DEBUG), l;
    }
    function a() {
      try {
        return localStorage;
      } catch (l) {
      }
    }
    e.exports = xnt()(t);
    const { formatters: o } = e.exports;
    o.j = function(l) {
      try {
        return JSON.stringify(l);
      } catch (u) {
        return "[UnexpectedJSONParseError]: " + u.message;
      }
    };
  }(WE, WE.exports)), WE.exports;
}
var Ob = {}, Nb = {}, um = {};
Object.defineProperty(um, "__esModule", {
  value: !0
});
um.default = Ant;
var Ent = sn();
const {
  cloneNode: PR,
  exportNamedDeclaration: sY,
  exportSpecifier: aY,
  identifier: wR,
  variableDeclaration: Pnt,
  variableDeclarator: wnt
} = Ent;
function Ant(e) {
  if (!e.isExportDeclaration() || e.isExportAllDeclaration())
    throw new Error("Only default and named export declarations can be split.");
  if (e.isExportDefaultDeclaration()) {
    const s = e.get("declaration"), a = s.isFunctionDeclaration() || s.isClassDeclaration(), o = s.isFunctionExpression() || s.isClassExpression(), l = s.isScope() ? s.scope.parent : s.scope;
    let u = s.node.id, c = !1;
    u ? o && l.hasBinding(u.name) && (c = !0, u = l.generateUidIdentifier(u.name)) : (c = !0, u = l.generateUidIdentifier("default"), (a || o) && (s.node.id = PR(u)));
    const f = a ? s.node : Pnt("var", [wnt(PR(u), s.node)]), h = sY(null, [aY(PR(u), wR("default"))]);
    return e.insertAfter(h), e.replaceWith(f), c && l.registerDeclaration(e), e;
  } else if (e.get("specifiers").length > 0)
    throw new Error("It doesn't make sense to split exported specifiers.");
  const t = e.get("declaration"), r = t.getOuterBindingIdentifiers(), i = Object.keys(r).map((s) => aY(wR(s), wR(s))), n = sY(null, i);
  return e.insertAfter(n), e.replaceWith(t.node), e;
}
var Io = {};
Object.defineProperty(Io, "__esModule", {
  value: !0
});
Io.default = void 0;
Io.requeueComputedKeyAndDecorators = HF;
Io.skipAllButComputedKey = function(t) {
  t.skip(), t.node.computed && t.context.maybeQueue(t.get("key"));
};
function HF(e) {
  const {
    context: t,
    node: r
  } = e;
  if (r.computed && t.maybeQueue(e.get("key")), r.decorators)
    for (const i of e.get("decorators"))
      t.maybeQueue(i);
}
const Cnt = {
  FunctionParent(e) {
    e.isArrowFunctionExpression() || (e.skip(), e.isMethod() && HF(e));
  },
  Property(e) {
    e.isObjectProperty() || (e.skip(), HF(e));
  }
};
var _nt = Cnt;
Io.default = _nt;
var oY;
function Int() {
  if (oY)
    return Nb;
  oY = 1, Object.defineProperty(Nb, "__esModule", {
    value: !0
  }), Nb.default = void 0;
  var e = um, t = Ui(), r = Io, i = u5(), n = P_();
  const s = {
    ReferencedIdentifier({
      node: o
    }, l) {
      o.name === l.oldName && (o.name = l.newName);
    },
    Scope(o, l) {
      o.scope.bindingIdentifierEquals(l.oldName, l.binding.identifier) || (o.skip(), o.isMethod() && (0, r.requeueComputedKeyAndDecorators)(o));
    },
    ObjectProperty({
      node: o,
      scope: l
    }, u) {
      const {
        name: c
      } = o.key;
      if (o.shorthand && (c === u.oldName || c === u.newName) && l.getBindingIdentifier(c) === u.binding.identifier) {
        var f;
        o.shorthand = !1, (f = o.extra) != null && f.shorthand && (o.extra.shorthand = !1);
      }
    },
    "AssignmentExpression|Declaration|VariableDeclarator"(o, l) {
      if (o.isVariableDeclaration())
        return;
      const u = o.getOuterBindingIdentifiers();
      for (const c in u)
        c === l.oldName && (u[c].name = l.newName);
    }
  };
  class a {
    constructor(l, u, c) {
      this.newName = c, this.oldName = u, this.binding = l;
    }
    maybeConvertFromExportDeclaration(l) {
      const u = l.parentPath;
      if (u.isExportDeclaration()) {
        if (u.isExportDefaultDeclaration()) {
          const {
            declaration: c
          } = u.node;
          if (t.isDeclaration(c) && !c.id)
            return;
        }
        u.isExportAllDeclaration() || (0, e.default)(u);
      }
    }
    maybeConvertFromClassFunctionDeclaration(l) {
      return l;
    }
    maybeConvertFromClassFunctionExpression(l) {
      return l;
    }
    rename() {
      const {
        binding: l,
        oldName: u,
        newName: c
      } = this, {
        scope: f,
        path: h
      } = l, m = h.find((y) => y.isDeclaration() || y.isFunctionExpression() || y.isClassExpression());
      m && m.getOuterBindingIdentifiers()[u] === l.identifier && this.maybeConvertFromExportDeclaration(m);
      const g = arguments[0] || f.block;
      (0, i.traverseNode)(g, (0, n.explode)(s), f, this, f.path, {
        discriminant: !0
      }), arguments[0] || (f.removeOwnBinding(u), f.bindings[c] = l, this.binding.identifier.name = c), m && (this.maybeConvertFromClassFunctionDeclaration(h), this.maybeConvertFromClassFunctionExpression(h));
    }
  }
  return Nb.default = a, Nb;
}
var Db = {}, lY;
function knt() {
  if (lY)
    return Db;
  lY = 1, Object.defineProperty(Db, "__esModule", {
    value: !0
  }), Db.default = void 0;
  class e {
    constructor({
      identifier: i,
      scope: n,
      path: s,
      kind: a
    }) {
      this.identifier = void 0, this.scope = void 0, this.path = void 0, this.kind = void 0, this.constantViolations = [], this.constant = !0, this.referencePaths = [], this.referenced = !1, this.references = 0, this.identifier = i, this.scope = n, this.path = s, this.kind = a, (a === "var" || a === "hoisted") && t(s || (() => {
        throw new Error("Internal Babel error: unreachable ");
      })()) && this.reassign(s), this.clearValue();
    }
    deoptValue() {
      this.clearValue(), this.hasDeoptedValue = !0;
    }
    setValue(i) {
      this.hasDeoptedValue || (this.hasValue = !0, this.value = i);
    }
    clearValue() {
      this.hasDeoptedValue = !1, this.hasValue = !1, this.value = null;
    }
    reassign(i) {
      this.constant = !1, this.constantViolations.indexOf(i) === -1 && this.constantViolations.push(i);
    }
    reference(i) {
      this.referencePaths.indexOf(i) === -1 && (this.referenced = !0, this.references++, this.referencePaths.push(i));
    }
    dereference() {
      this.references--, this.referenced = !!this.references;
    }
  }
  Db.default = e;
  function t(r) {
    for (let {
      parentPath: i,
      key: n
    } = r; i; {
      parentPath: i,
      key: n
    } = i) {
      if (i.isFunctionParent())
        return !1;
      if (i.isWhile() || i.isForXStatement() || i.isForStatement() && n === "body")
        return !0;
    }
    return !1;
  }
  return Db;
}
const Ont = {
  Array: !1,
  ArrayBuffer: !1,
  Atomics: !1,
  BigInt: !1,
  BigInt64Array: !1,
  BigUint64Array: !1,
  Boolean: !1,
  constructor: !1,
  DataView: !1,
  Date: !1,
  decodeURI: !1,
  decodeURIComponent: !1,
  encodeURI: !1,
  encodeURIComponent: !1,
  Error: !1,
  escape: !1,
  eval: !1,
  EvalError: !1,
  Float32Array: !1,
  Float64Array: !1,
  Function: !1,
  globalThis: !1,
  hasOwnProperty: !1,
  Infinity: !1,
  Int16Array: !1,
  Int32Array: !1,
  Int8Array: !1,
  isFinite: !1,
  isNaN: !1,
  isPrototypeOf: !1,
  JSON: !1,
  Map: !1,
  Math: !1,
  NaN: !1,
  Number: !1,
  Object: !1,
  parseFloat: !1,
  parseInt: !1,
  Promise: !1,
  propertyIsEnumerable: !1,
  Proxy: !1,
  RangeError: !1,
  ReferenceError: !1,
  Reflect: !1,
  RegExp: !1,
  Set: !1,
  SharedArrayBuffer: !1,
  String: !1,
  Symbol: !1,
  SyntaxError: !1,
  toLocaleString: !1,
  toString: !1,
  TypeError: !1,
  Uint16Array: !1,
  Uint32Array: !1,
  Uint8Array: !1,
  Uint8ClampedArray: !1,
  undefined: !1,
  unescape: !1,
  URIError: !1,
  valueOf: !1,
  WeakMap: !1,
  WeakSet: !1
}, Nnt = {
  Array: !1,
  Boolean: !1,
  constructor: !1,
  Date: !1,
  decodeURI: !1,
  decodeURIComponent: !1,
  encodeURI: !1,
  encodeURIComponent: !1,
  Error: !1,
  escape: !1,
  eval: !1,
  EvalError: !1,
  Function: !1,
  hasOwnProperty: !1,
  Infinity: !1,
  isFinite: !1,
  isNaN: !1,
  isPrototypeOf: !1,
  JSON: !1,
  Math: !1,
  NaN: !1,
  Number: !1,
  Object: !1,
  parseFloat: !1,
  parseInt: !1,
  propertyIsEnumerable: !1,
  RangeError: !1,
  ReferenceError: !1,
  RegExp: !1,
  String: !1,
  SyntaxError: !1,
  toLocaleString: !1,
  toString: !1,
  TypeError: !1,
  undefined: !1,
  unescape: !1,
  URIError: !1,
  valueOf: !1
}, Dnt = {
  Array: !1,
  ArrayBuffer: !1,
  Boolean: !1,
  constructor: !1,
  DataView: !1,
  Date: !1,
  decodeURI: !1,
  decodeURIComponent: !1,
  encodeURI: !1,
  encodeURIComponent: !1,
  Error: !1,
  escape: !1,
  eval: !1,
  EvalError: !1,
  Float32Array: !1,
  Float64Array: !1,
  Function: !1,
  hasOwnProperty: !1,
  Infinity: !1,
  Int16Array: !1,
  Int32Array: !1,
  Int8Array: !1,
  isFinite: !1,
  isNaN: !1,
  isPrototypeOf: !1,
  JSON: !1,
  Map: !1,
  Math: !1,
  NaN: !1,
  Number: !1,
  Object: !1,
  parseFloat: !1,
  parseInt: !1,
  Promise: !1,
  propertyIsEnumerable: !1,
  Proxy: !1,
  RangeError: !1,
  ReferenceError: !1,
  Reflect: !1,
  RegExp: !1,
  Set: !1,
  String: !1,
  Symbol: !1,
  SyntaxError: !1,
  toLocaleString: !1,
  toString: !1,
  TypeError: !1,
  Uint16Array: !1,
  Uint32Array: !1,
  Uint8Array: !1,
  Uint8ClampedArray: !1,
  undefined: !1,
  unescape: !1,
  URIError: !1,
  valueOf: !1,
  WeakMap: !1,
  WeakSet: !1
}, Lnt = {
  Array: !1,
  ArrayBuffer: !1,
  Atomics: !1,
  Boolean: !1,
  constructor: !1,
  DataView: !1,
  Date: !1,
  decodeURI: !1,
  decodeURIComponent: !1,
  encodeURI: !1,
  encodeURIComponent: !1,
  Error: !1,
  escape: !1,
  eval: !1,
  EvalError: !1,
  Float32Array: !1,
  Float64Array: !1,
  Function: !1,
  hasOwnProperty: !1,
  Infinity: !1,
  Int16Array: !1,
  Int32Array: !1,
  Int8Array: !1,
  isFinite: !1,
  isNaN: !1,
  isPrototypeOf: !1,
  JSON: !1,
  Map: !1,
  Math: !1,
  NaN: !1,
  Number: !1,
  Object: !1,
  parseFloat: !1,
  parseInt: !1,
  Promise: !1,
  propertyIsEnumerable: !1,
  Proxy: !1,
  RangeError: !1,
  ReferenceError: !1,
  Reflect: !1,
  RegExp: !1,
  Set: !1,
  SharedArrayBuffer: !1,
  String: !1,
  Symbol: !1,
  SyntaxError: !1,
  toLocaleString: !1,
  toString: !1,
  TypeError: !1,
  Uint16Array: !1,
  Uint32Array: !1,
  Uint8Array: !1,
  Uint8ClampedArray: !1,
  undefined: !1,
  unescape: !1,
  URIError: !1,
  valueOf: !1,
  WeakMap: !1,
  WeakSet: !1
}, Mnt = {
  AbortController: !1,
  AbortSignal: !1,
  addEventListener: !1,
  alert: !1,
  AnalyserNode: !1,
  Animation: !1,
  AnimationEffectReadOnly: !1,
  AnimationEffectTiming: !1,
  AnimationEffectTimingReadOnly: !1,
  AnimationEvent: !1,
  AnimationPlaybackEvent: !1,
  AnimationTimeline: !1,
  applicationCache: !1,
  ApplicationCache: !1,
  ApplicationCacheErrorEvent: !1,
  atob: !1,
  Attr: !1,
  Audio: !1,
  AudioBuffer: !1,
  AudioBufferSourceNode: !1,
  AudioContext: !1,
  AudioDestinationNode: !1,
  AudioListener: !1,
  AudioNode: !1,
  AudioParam: !1,
  AudioProcessingEvent: !1,
  AudioScheduledSourceNode: !1,
  "AudioWorkletGlobalScope ": !1,
  AudioWorkletNode: !1,
  AudioWorkletProcessor: !1,
  BarProp: !1,
  BaseAudioContext: !1,
  BatteryManager: !1,
  BeforeUnloadEvent: !1,
  BiquadFilterNode: !1,
  Blob: !1,
  BlobEvent: !1,
  blur: !1,
  BroadcastChannel: !1,
  btoa: !1,
  BudgetService: !1,
  ByteLengthQueuingStrategy: !1,
  Cache: !1,
  caches: !1,
  CacheStorage: !1,
  cancelAnimationFrame: !1,
  cancelIdleCallback: !1,
  CanvasCaptureMediaStreamTrack: !1,
  CanvasGradient: !1,
  CanvasPattern: !1,
  CanvasRenderingContext2D: !1,
  ChannelMergerNode: !1,
  ChannelSplitterNode: !1,
  CharacterData: !1,
  clearInterval: !1,
  clearTimeout: !1,
  clientInformation: !1,
  ClipboardEvent: !1,
  close: !1,
  closed: !1,
  CloseEvent: !1,
  Comment: !1,
  CompositionEvent: !1,
  confirm: !1,
  console: !1,
  ConstantSourceNode: !1,
  ConvolverNode: !1,
  CountQueuingStrategy: !1,
  createImageBitmap: !1,
  Credential: !1,
  CredentialsContainer: !1,
  crypto: !1,
  Crypto: !1,
  CryptoKey: !1,
  CSS: !1,
  CSSConditionRule: !1,
  CSSFontFaceRule: !1,
  CSSGroupingRule: !1,
  CSSImportRule: !1,
  CSSKeyframeRule: !1,
  CSSKeyframesRule: !1,
  CSSMediaRule: !1,
  CSSNamespaceRule: !1,
  CSSPageRule: !1,
  CSSRule: !1,
  CSSRuleList: !1,
  CSSStyleDeclaration: !1,
  CSSStyleRule: !1,
  CSSStyleSheet: !1,
  CSSSupportsRule: !1,
  CustomElementRegistry: !1,
  customElements: !1,
  CustomEvent: !1,
  DataTransfer: !1,
  DataTransferItem: !1,
  DataTransferItemList: !1,
  defaultstatus: !1,
  defaultStatus: !1,
  DelayNode: !1,
  DeviceMotionEvent: !1,
  DeviceOrientationEvent: !1,
  devicePixelRatio: !1,
  dispatchEvent: !1,
  document: !1,
  Document: !1,
  DocumentFragment: !1,
  DocumentType: !1,
  DOMError: !1,
  DOMException: !1,
  DOMImplementation: !1,
  DOMMatrix: !1,
  DOMMatrixReadOnly: !1,
  DOMParser: !1,
  DOMPoint: !1,
  DOMPointReadOnly: !1,
  DOMQuad: !1,
  DOMRect: !1,
  DOMRectReadOnly: !1,
  DOMStringList: !1,
  DOMStringMap: !1,
  DOMTokenList: !1,
  DragEvent: !1,
  DynamicsCompressorNode: !1,
  Element: !1,
  ErrorEvent: !1,
  event: !1,
  Event: !1,
  EventSource: !1,
  EventTarget: !1,
  external: !1,
  fetch: !1,
  File: !1,
  FileList: !1,
  FileReader: !1,
  find: !1,
  focus: !1,
  FocusEvent: !1,
  FontFace: !1,
  FontFaceSetLoadEvent: !1,
  FormData: !1,
  frameElement: !1,
  frames: !1,
  GainNode: !1,
  Gamepad: !1,
  GamepadButton: !1,
  GamepadEvent: !1,
  getComputedStyle: !1,
  getSelection: !1,
  HashChangeEvent: !1,
  Headers: !1,
  history: !1,
  History: !1,
  HTMLAllCollection: !1,
  HTMLAnchorElement: !1,
  HTMLAreaElement: !1,
  HTMLAudioElement: !1,
  HTMLBaseElement: !1,
  HTMLBodyElement: !1,
  HTMLBRElement: !1,
  HTMLButtonElement: !1,
  HTMLCanvasElement: !1,
  HTMLCollection: !1,
  HTMLContentElement: !1,
  HTMLDataElement: !1,
  HTMLDataListElement: !1,
  HTMLDetailsElement: !1,
  HTMLDialogElement: !1,
  HTMLDirectoryElement: !1,
  HTMLDivElement: !1,
  HTMLDListElement: !1,
  HTMLDocument: !1,
  HTMLElement: !1,
  HTMLEmbedElement: !1,
  HTMLFieldSetElement: !1,
  HTMLFontElement: !1,
  HTMLFormControlsCollection: !1,
  HTMLFormElement: !1,
  HTMLFrameElement: !1,
  HTMLFrameSetElement: !1,
  HTMLHeadElement: !1,
  HTMLHeadingElement: !1,
  HTMLHRElement: !1,
  HTMLHtmlElement: !1,
  HTMLIFrameElement: !1,
  HTMLImageElement: !1,
  HTMLInputElement: !1,
  HTMLLabelElement: !1,
  HTMLLegendElement: !1,
  HTMLLIElement: !1,
  HTMLLinkElement: !1,
  HTMLMapElement: !1,
  HTMLMarqueeElement: !1,
  HTMLMediaElement: !1,
  HTMLMenuElement: !1,
  HTMLMetaElement: !1,
  HTMLMeterElement: !1,
  HTMLModElement: !1,
  HTMLObjectElement: !1,
  HTMLOListElement: !1,
  HTMLOptGroupElement: !1,
  HTMLOptionElement: !1,
  HTMLOptionsCollection: !1,
  HTMLOutputElement: !1,
  HTMLParagraphElement: !1,
  HTMLParamElement: !1,
  HTMLPictureElement: !1,
  HTMLPreElement: !1,
  HTMLProgressElement: !1,
  HTMLQuoteElement: !1,
  HTMLScriptElement: !1,
  HTMLSelectElement: !1,
  HTMLShadowElement: !1,
  HTMLSlotElement: !1,
  HTMLSourceElement: !1,
  HTMLSpanElement: !1,
  HTMLStyleElement: !1,
  HTMLTableCaptionElement: !1,
  HTMLTableCellElement: !1,
  HTMLTableColElement: !1,
  HTMLTableElement: !1,
  HTMLTableRowElement: !1,
  HTMLTableSectionElement: !1,
  HTMLTemplateElement: !1,
  HTMLTextAreaElement: !1,
  HTMLTimeElement: !1,
  HTMLTitleElement: !1,
  HTMLTrackElement: !1,
  HTMLUListElement: !1,
  HTMLUnknownElement: !1,
  HTMLVideoElement: !1,
  IDBCursor: !1,
  IDBCursorWithValue: !1,
  IDBDatabase: !1,
  IDBFactory: !1,
  IDBIndex: !1,
  IDBKeyRange: !1,
  IDBObjectStore: !1,
  IDBOpenDBRequest: !1,
  IDBRequest: !1,
  IDBTransaction: !1,
  IDBVersionChangeEvent: !1,
  IdleDeadline: !1,
  IIRFilterNode: !1,
  Image: !1,
  ImageBitmap: !1,
  ImageBitmapRenderingContext: !1,
  ImageCapture: !1,
  ImageData: !1,
  indexedDB: !1,
  innerHeight: !1,
  innerWidth: !1,
  InputEvent: !1,
  IntersectionObserver: !1,
  IntersectionObserverEntry: !1,
  Intl: !1,
  isSecureContext: !1,
  KeyboardEvent: !1,
  KeyframeEffect: !1,
  KeyframeEffectReadOnly: !1,
  length: !1,
  localStorage: !1,
  location: !0,
  Location: !1,
  locationbar: !1,
  matchMedia: !1,
  MediaDeviceInfo: !1,
  MediaDevices: !1,
  MediaElementAudioSourceNode: !1,
  MediaEncryptedEvent: !1,
  MediaError: !1,
  MediaKeyMessageEvent: !1,
  MediaKeySession: !1,
  MediaKeyStatusMap: !1,
  MediaKeySystemAccess: !1,
  MediaList: !1,
  MediaQueryList: !1,
  MediaQueryListEvent: !1,
  MediaRecorder: !1,
  MediaSettingsRange: !1,
  MediaSource: !1,
  MediaStream: !1,
  MediaStreamAudioDestinationNode: !1,
  MediaStreamAudioSourceNode: !1,
  MediaStreamEvent: !1,
  MediaStreamTrack: !1,
  MediaStreamTrackEvent: !1,
  menubar: !1,
  MessageChannel: !1,
  MessageEvent: !1,
  MessagePort: !1,
  MIDIAccess: !1,
  MIDIConnectionEvent: !1,
  MIDIInput: !1,
  MIDIInputMap: !1,
  MIDIMessageEvent: !1,
  MIDIOutput: !1,
  MIDIOutputMap: !1,
  MIDIPort: !1,
  MimeType: !1,
  MimeTypeArray: !1,
  MouseEvent: !1,
  moveBy: !1,
  moveTo: !1,
  MutationEvent: !1,
  MutationObserver: !1,
  MutationRecord: !1,
  name: !1,
  NamedNodeMap: !1,
  NavigationPreloadManager: !1,
  navigator: !1,
  Navigator: !1,
  NetworkInformation: !1,
  Node: !1,
  NodeFilter: !1,
  NodeIterator: !1,
  NodeList: !1,
  Notification: !1,
  OfflineAudioCompletionEvent: !1,
  OfflineAudioContext: !1,
  offscreenBuffering: !1,
  OffscreenCanvas: !0,
  onabort: !0,
  onafterprint: !0,
  onanimationend: !0,
  onanimationiteration: !0,
  onanimationstart: !0,
  onappinstalled: !0,
  onauxclick: !0,
  onbeforeinstallprompt: !0,
  onbeforeprint: !0,
  onbeforeunload: !0,
  onblur: !0,
  oncancel: !0,
  oncanplay: !0,
  oncanplaythrough: !0,
  onchange: !0,
  onclick: !0,
  onclose: !0,
  oncontextmenu: !0,
  oncuechange: !0,
  ondblclick: !0,
  ondevicemotion: !0,
  ondeviceorientation: !0,
  ondeviceorientationabsolute: !0,
  ondrag: !0,
  ondragend: !0,
  ondragenter: !0,
  ondragleave: !0,
  ondragover: !0,
  ondragstart: !0,
  ondrop: !0,
  ondurationchange: !0,
  onemptied: !0,
  onended: !0,
  onerror: !0,
  onfocus: !0,
  ongotpointercapture: !0,
  onhashchange: !0,
  oninput: !0,
  oninvalid: !0,
  onkeydown: !0,
  onkeypress: !0,
  onkeyup: !0,
  onlanguagechange: !0,
  onload: !0,
  onloadeddata: !0,
  onloadedmetadata: !0,
  onloadstart: !0,
  onlostpointercapture: !0,
  onmessage: !0,
  onmessageerror: !0,
  onmousedown: !0,
  onmouseenter: !0,
  onmouseleave: !0,
  onmousemove: !0,
  onmouseout: !0,
  onmouseover: !0,
  onmouseup: !0,
  onmousewheel: !0,
  onoffline: !0,
  ononline: !0,
  onpagehide: !0,
  onpageshow: !0,
  onpause: !0,
  onplay: !0,
  onplaying: !0,
  onpointercancel: !0,
  onpointerdown: !0,
  onpointerenter: !0,
  onpointerleave: !0,
  onpointermove: !0,
  onpointerout: !0,
  onpointerover: !0,
  onpointerup: !0,
  onpopstate: !0,
  onprogress: !0,
  onratechange: !0,
  onrejectionhandled: !0,
  onreset: !0,
  onresize: !0,
  onscroll: !0,
  onsearch: !0,
  onseeked: !0,
  onseeking: !0,
  onselect: !0,
  onstalled: !0,
  onstorage: !0,
  onsubmit: !0,
  onsuspend: !0,
  ontimeupdate: !0,
  ontoggle: !0,
  ontransitionend: !0,
  onunhandledrejection: !0,
  onunload: !0,
  onvolumechange: !0,
  onwaiting: !0,
  onwheel: !0,
  open: !1,
  openDatabase: !1,
  opener: !1,
  Option: !1,
  origin: !1,
  OscillatorNode: !1,
  outerHeight: !1,
  outerWidth: !1,
  PageTransitionEvent: !1,
  pageXOffset: !1,
  pageYOffset: !1,
  PannerNode: !1,
  parent: !1,
  Path2D: !1,
  PaymentAddress: !1,
  PaymentRequest: !1,
  PaymentRequestUpdateEvent: !1,
  PaymentResponse: !1,
  performance: !1,
  Performance: !1,
  PerformanceEntry: !1,
  PerformanceLongTaskTiming: !1,
  PerformanceMark: !1,
  PerformanceMeasure: !1,
  PerformanceNavigation: !1,
  PerformanceNavigationTiming: !1,
  PerformanceObserver: !1,
  PerformanceObserverEntryList: !1,
  PerformancePaintTiming: !1,
  PerformanceResourceTiming: !1,
  PerformanceTiming: !1,
  PeriodicWave: !1,
  Permissions: !1,
  PermissionStatus: !1,
  personalbar: !1,
  PhotoCapabilities: !1,
  Plugin: !1,
  PluginArray: !1,
  PointerEvent: !1,
  PopStateEvent: !1,
  postMessage: !1,
  Presentation: !1,
  PresentationAvailability: !1,
  PresentationConnection: !1,
  PresentationConnectionAvailableEvent: !1,
  PresentationConnectionCloseEvent: !1,
  PresentationConnectionList: !1,
  PresentationReceiver: !1,
  PresentationRequest: !1,
  print: !1,
  ProcessingInstruction: !1,
  ProgressEvent: !1,
  PromiseRejectionEvent: !1,
  prompt: !1,
  PushManager: !1,
  PushSubscription: !1,
  PushSubscriptionOptions: !1,
  queueMicrotask: !1,
  RadioNodeList: !1,
  Range: !1,
  ReadableStream: !1,
  registerProcessor: !1,
  RemotePlayback: !1,
  removeEventListener: !1,
  Request: !1,
  requestAnimationFrame: !1,
  requestIdleCallback: !1,
  resizeBy: !1,
  ResizeObserver: !1,
  ResizeObserverEntry: !1,
  resizeTo: !1,
  Response: !1,
  RTCCertificate: !1,
  RTCDataChannel: !1,
  RTCDataChannelEvent: !1,
  RTCDtlsTransport: !1,
  RTCIceCandidate: !1,
  RTCIceGatherer: !1,
  RTCIceTransport: !1,
  RTCPeerConnection: !1,
  RTCPeerConnectionIceEvent: !1,
  RTCRtpContributingSource: !1,
  RTCRtpReceiver: !1,
  RTCRtpSender: !1,
  RTCSctpTransport: !1,
  RTCSessionDescription: !1,
  RTCStatsReport: !1,
  RTCTrackEvent: !1,
  screen: !1,
  Screen: !1,
  screenLeft: !1,
  ScreenOrientation: !1,
  screenTop: !1,
  screenX: !1,
  screenY: !1,
  ScriptProcessorNode: !1,
  scroll: !1,
  scrollbars: !1,
  scrollBy: !1,
  scrollTo: !1,
  scrollX: !1,
  scrollY: !1,
  SecurityPolicyViolationEvent: !1,
  Selection: !1,
  self: !1,
  ServiceWorker: !1,
  ServiceWorkerContainer: !1,
  ServiceWorkerRegistration: !1,
  sessionStorage: !1,
  setInterval: !1,
  setTimeout: !1,
  ShadowRoot: !1,
  SharedWorker: !1,
  SourceBuffer: !1,
  SourceBufferList: !1,
  speechSynthesis: !1,
  SpeechSynthesisEvent: !1,
  SpeechSynthesisUtterance: !1,
  StaticRange: !1,
  status: !1,
  statusbar: !1,
  StereoPannerNode: !1,
  stop: !1,
  Storage: !1,
  StorageEvent: !1,
  StorageManager: !1,
  styleMedia: !1,
  StyleSheet: !1,
  StyleSheetList: !1,
  SubtleCrypto: !1,
  SVGAElement: !1,
  SVGAngle: !1,
  SVGAnimatedAngle: !1,
  SVGAnimatedBoolean: !1,
  SVGAnimatedEnumeration: !1,
  SVGAnimatedInteger: !1,
  SVGAnimatedLength: !1,
  SVGAnimatedLengthList: !1,
  SVGAnimatedNumber: !1,
  SVGAnimatedNumberList: !1,
  SVGAnimatedPreserveAspectRatio: !1,
  SVGAnimatedRect: !1,
  SVGAnimatedString: !1,
  SVGAnimatedTransformList: !1,
  SVGAnimateElement: !1,
  SVGAnimateMotionElement: !1,
  SVGAnimateTransformElement: !1,
  SVGAnimationElement: !1,
  SVGCircleElement: !1,
  SVGClipPathElement: !1,
  SVGComponentTransferFunctionElement: !1,
  SVGDefsElement: !1,
  SVGDescElement: !1,
  SVGDiscardElement: !1,
  SVGElement: !1,
  SVGEllipseElement: !1,
  SVGFEBlendElement: !1,
  SVGFEColorMatrixElement: !1,
  SVGFEComponentTransferElement: !1,
  SVGFECompositeElement: !1,
  SVGFEConvolveMatrixElement: !1,
  SVGFEDiffuseLightingElement: !1,
  SVGFEDisplacementMapElement: !1,
  SVGFEDistantLightElement: !1,
  SVGFEDropShadowElement: !1,
  SVGFEFloodElement: !1,
  SVGFEFuncAElement: !1,
  SVGFEFuncBElement: !1,
  SVGFEFuncGElement: !1,
  SVGFEFuncRElement: !1,
  SVGFEGaussianBlurElement: !1,
  SVGFEImageElement: !1,
  SVGFEMergeElement: !1,
  SVGFEMergeNodeElement: !1,
  SVGFEMorphologyElement: !1,
  SVGFEOffsetElement: !1,
  SVGFEPointLightElement: !1,
  SVGFESpecularLightingElement: !1,
  SVGFESpotLightElement: !1,
  SVGFETileElement: !1,
  SVGFETurbulenceElement: !1,
  SVGFilterElement: !1,
  SVGForeignObjectElement: !1,
  SVGGElement: !1,
  SVGGeometryElement: !1,
  SVGGradientElement: !1,
  SVGGraphicsElement: !1,
  SVGImageElement: !1,
  SVGLength: !1,
  SVGLengthList: !1,
  SVGLinearGradientElement: !1,
  SVGLineElement: !1,
  SVGMarkerElement: !1,
  SVGMaskElement: !1,
  SVGMatrix: !1,
  SVGMetadataElement: !1,
  SVGMPathElement: !1,
  SVGNumber: !1,
  SVGNumberList: !1,
  SVGPathElement: !1,
  SVGPatternElement: !1,
  SVGPoint: !1,
  SVGPointList: !1,
  SVGPolygonElement: !1,
  SVGPolylineElement: !1,
  SVGPreserveAspectRatio: !1,
  SVGRadialGradientElement: !1,
  SVGRect: !1,
  SVGRectElement: !1,
  SVGScriptElement: !1,
  SVGSetElement: !1,
  SVGStopElement: !1,
  SVGStringList: !1,
  SVGStyleElement: !1,
  SVGSVGElement: !1,
  SVGSwitchElement: !1,
  SVGSymbolElement: !1,
  SVGTextContentElement: !1,
  SVGTextElement: !1,
  SVGTextPathElement: !1,
  SVGTextPositioningElement: !1,
  SVGTitleElement: !1,
  SVGTransform: !1,
  SVGTransformList: !1,
  SVGTSpanElement: !1,
  SVGUnitTypes: !1,
  SVGUseElement: !1,
  SVGViewElement: !1,
  TaskAttributionTiming: !1,
  Text: !1,
  TextDecoder: !1,
  TextEncoder: !1,
  TextEvent: !1,
  TextMetrics: !1,
  TextTrack: !1,
  TextTrackCue: !1,
  TextTrackCueList: !1,
  TextTrackList: !1,
  TimeRanges: !1,
  toolbar: !1,
  top: !1,
  Touch: !1,
  TouchEvent: !1,
  TouchList: !1,
  TrackEvent: !1,
  TransitionEvent: !1,
  TreeWalker: !1,
  UIEvent: !1,
  URL: !1,
  URLSearchParams: !1,
  ValidityState: !1,
  visualViewport: !1,
  VisualViewport: !1,
  VTTCue: !1,
  WaveShaperNode: !1,
  WebAssembly: !1,
  WebGL2RenderingContext: !1,
  WebGLActiveInfo: !1,
  WebGLBuffer: !1,
  WebGLContextEvent: !1,
  WebGLFramebuffer: !1,
  WebGLProgram: !1,
  WebGLQuery: !1,
  WebGLRenderbuffer: !1,
  WebGLRenderingContext: !1,
  WebGLSampler: !1,
  WebGLShader: !1,
  WebGLShaderPrecisionFormat: !1,
  WebGLSync: !1,
  WebGLTexture: !1,
  WebGLTransformFeedback: !1,
  WebGLUniformLocation: !1,
  WebGLVertexArrayObject: !1,
  WebSocket: !1,
  WheelEvent: !1,
  window: !1,
  Window: !1,
  Worker: !1,
  WritableStream: !1,
  XMLDocument: !1,
  XMLHttpRequest: !1,
  XMLHttpRequestEventTarget: !1,
  XMLHttpRequestUpload: !1,
  XMLSerializer: !1,
  XPathEvaluator: !1,
  XPathExpression: !1,
  XPathResult: !1,
  XSLTProcessor: !1
}, Rnt = {
  addEventListener: !1,
  applicationCache: !1,
  atob: !1,
  Blob: !1,
  BroadcastChannel: !1,
  btoa: !1,
  Cache: !1,
  caches: !1,
  clearInterval: !1,
  clearTimeout: !1,
  close: !0,
  console: !1,
  fetch: !1,
  FileReaderSync: !1,
  FormData: !1,
  Headers: !1,
  IDBCursor: !1,
  IDBCursorWithValue: !1,
  IDBDatabase: !1,
  IDBFactory: !1,
  IDBIndex: !1,
  IDBKeyRange: !1,
  IDBObjectStore: !1,
  IDBOpenDBRequest: !1,
  IDBRequest: !1,
  IDBTransaction: !1,
  IDBVersionChangeEvent: !1,
  ImageData: !1,
  importScripts: !0,
  indexedDB: !1,
  location: !1,
  MessageChannel: !1,
  MessagePort: !1,
  name: !1,
  navigator: !1,
  Notification: !1,
  onclose: !0,
  onconnect: !0,
  onerror: !0,
  onlanguagechange: !0,
  onmessage: !0,
  onoffline: !0,
  ononline: !0,
  onrejectionhandled: !0,
  onunhandledrejection: !0,
  performance: !1,
  Performance: !1,
  PerformanceEntry: !1,
  PerformanceMark: !1,
  PerformanceMeasure: !1,
  PerformanceNavigation: !1,
  PerformanceResourceTiming: !1,
  PerformanceTiming: !1,
  postMessage: !0,
  Promise: !1,
  queueMicrotask: !1,
  removeEventListener: !1,
  Request: !1,
  Response: !1,
  self: !0,
  ServiceWorkerRegistration: !1,
  setInterval: !1,
  setTimeout: !1,
  TextDecoder: !1,
  TextEncoder: !1,
  URL: !1,
  URLSearchParams: !1,
  WebSocket: !1,
  Worker: !1,
  WorkerGlobalScope: !1,
  XMLHttpRequest: !1
}, Bnt = {
  __dirname: !1,
  __filename: !1,
  Buffer: !1,
  clearImmediate: !1,
  clearInterval: !1,
  clearTimeout: !1,
  console: !1,
  exports: !0,
  global: !1,
  Intl: !1,
  module: !1,
  process: !1,
  queueMicrotask: !1,
  require: !1,
  setImmediate: !1,
  setInterval: !1,
  setTimeout: !1,
  TextDecoder: !1,
  TextEncoder: !1,
  URL: !1,
  URLSearchParams: !1
}, Fnt = {
  exports: !0,
  global: !1,
  module: !1,
  require: !1
}, jnt = {
  define: !1,
  require: !1
}, $nt = {
  after: !1,
  afterEach: !1,
  before: !1,
  beforeEach: !1,
  context: !1,
  describe: !1,
  it: !1,
  mocha: !1,
  run: !1,
  setup: !1,
  specify: !1,
  suite: !1,
  suiteSetup: !1,
  suiteTeardown: !1,
  teardown: !1,
  test: !1,
  xcontext: !1,
  xdescribe: !1,
  xit: !1,
  xspecify: !1
}, Unt = {
  afterAll: !1,
  afterEach: !1,
  beforeAll: !1,
  beforeEach: !1,
  describe: !1,
  expect: !1,
  fail: !1,
  fdescribe: !1,
  fit: !1,
  it: !1,
  jasmine: !1,
  pending: !1,
  runs: !1,
  spyOn: !1,
  spyOnProperty: !1,
  waits: !1,
  waitsFor: !1,
  xdescribe: !1,
  xit: !1
}, qnt = {
  afterAll: !1,
  afterEach: !1,
  beforeAll: !1,
  beforeEach: !1,
  describe: !1,
  expect: !1,
  fdescribe: !1,
  fit: !1,
  it: !1,
  jest: !1,
  pit: !1,
  require: !1,
  test: !1,
  xdescribe: !1,
  xit: !1,
  xtest: !1
}, Vnt = {
  asyncTest: !1,
  deepEqual: !1,
  equal: !1,
  expect: !1,
  module: !1,
  notDeepEqual: !1,
  notEqual: !1,
  notOk: !1,
  notPropEqual: !1,
  notStrictEqual: !1,
  ok: !1,
  propEqual: !1,
  QUnit: !1,
  raises: !1,
  start: !1,
  stop: !1,
  strictEqual: !1,
  test: !1,
  throws: !1
}, Wnt = {
  console: !0,
  exports: !0,
  phantom: !0,
  require: !0,
  WebPage: !0
}, Hnt = {
  emit: !1,
  exports: !1,
  getRow: !1,
  log: !1,
  module: !1,
  provides: !1,
  require: !1,
  respond: !1,
  send: !1,
  start: !1,
  sum: !1
}, Knt = {
  defineClass: !1,
  deserialize: !1,
  gc: !1,
  help: !1,
  importClass: !1,
  importPackage: !1,
  java: !1,
  load: !1,
  loadClass: !1,
  Packages: !1,
  print: !1,
  quit: !1,
  readFile: !1,
  readUrl: !1,
  runCommand: !1,
  seal: !1,
  serialize: !1,
  spawn: !1,
  sync: !1,
  toint32: !1,
  version: !1
}, znt = {
  __DIR__: !1,
  __FILE__: !1,
  __LINE__: !1,
  com: !1,
  edu: !1,
  exit: !1,
  java: !1,
  Java: !1,
  javafx: !1,
  JavaImporter: !1,
  javax: !1,
  JSAdapter: !1,
  load: !1,
  loadWithNewGlobal: !1,
  org: !1,
  Packages: !1,
  print: !1,
  quit: !1
}, Gnt = {
  ActiveXObject: !0,
  Enumerator: !0,
  GetObject: !0,
  ScriptEngine: !0,
  ScriptEngineBuildVersion: !0,
  ScriptEngineMajorVersion: !0,
  ScriptEngineMinorVersion: !0,
  VBArray: !0,
  WScript: !0,
  WSH: !0,
  XDomainRequest: !0
}, Ynt = {
  $: !1,
  jQuery: !1
}, Xnt = {
  YAHOO: !1,
  YAHOO_config: !1,
  YUI: !1,
  YUI_config: !1
}, Jnt = {
  cat: !1,
  cd: !1,
  chmod: !1,
  config: !1,
  cp: !1,
  dirs: !1,
  echo: !1,
  env: !1,
  error: !1,
  exec: !1,
  exit: !1,
  find: !1,
  grep: !1,
  ln: !1,
  ls: !1,
  mkdir: !1,
  mv: !1,
  popd: !1,
  pushd: !1,
  pwd: !1,
  rm: !1,
  sed: !1,
  set: !1,
  target: !1,
  tempdir: !1,
  test: !1,
  touch: !1,
  which: !1
}, Qnt = {
  $: !1,
  $$: !1,
  $A: !1,
  $break: !1,
  $continue: !1,
  $F: !1,
  $H: !1,
  $R: !1,
  $w: !1,
  Abstract: !1,
  Ajax: !1,
  Autocompleter: !1,
  Builder: !1,
  Class: !1,
  Control: !1,
  Draggable: !1,
  Draggables: !1,
  Droppables: !1,
  Effect: !1,
  Element: !1,
  Enumerable: !1,
  Event: !1,
  Field: !1,
  Form: !1,
  Hash: !1,
  Insertion: !1,
  ObjectRange: !1,
  PeriodicalExecuter: !1,
  Position: !1,
  Prototype: !1,
  Scriptaculous: !1,
  Selector: !1,
  Sortable: !1,
  SortableObserver: !1,
  Sound: !1,
  Template: !1,
  Toggle: !1,
  Try: !1
}, Znt = {
  _: !1,
  $: !1,
  Accounts: !1,
  AccountsClient: !1,
  AccountsCommon: !1,
  AccountsServer: !1,
  App: !1,
  Assets: !1,
  Blaze: !1,
  check: !1,
  Cordova: !1,
  DDP: !1,
  DDPRateLimiter: !1,
  DDPServer: !1,
  Deps: !1,
  EJSON: !1,
  Email: !1,
  HTTP: !1,
  Log: !1,
  Match: !1,
  Meteor: !1,
  Mongo: !1,
  MongoInternals: !1,
  Npm: !1,
  Package: !1,
  Plugin: !1,
  process: !1,
  Random: !1,
  ReactiveDict: !1,
  ReactiveVar: !1,
  Router: !1,
  ServiceConfiguration: !1,
  Session: !1,
  share: !1,
  Spacebars: !1,
  Template: !1,
  Tinytest: !1,
  Tracker: !1,
  UI: !1,
  Utils: !1,
  WebApp: !1,
  WebAppInternals: !1
}, est = {
  _isWindows: !1,
  _rand: !1,
  BulkWriteResult: !1,
  cat: !1,
  cd: !1,
  connect: !1,
  db: !1,
  getHostName: !1,
  getMemInfo: !1,
  hostname: !1,
  ISODate: !1,
  listFiles: !1,
  load: !1,
  ls: !1,
  md5sumFile: !1,
  mkdir: !1,
  Mongo: !1,
  NumberInt: !1,
  NumberLong: !1,
  ObjectId: !1,
  PlanCache: !1,
  print: !1,
  printjson: !1,
  pwd: !1,
  quit: !1,
  removeFile: !1,
  rs: !1,
  sh: !1,
  UUID: !1,
  version: !1,
  WriteResult: !1
}, tst = {
  $: !1,
  Application: !1,
  Automation: !1,
  console: !1,
  delay: !1,
  Library: !1,
  ObjC: !1,
  ObjectSpecifier: !1,
  Path: !1,
  Progress: !1,
  Ref: !1
}, rst = {
  addEventListener: !1,
  applicationCache: !1,
  atob: !1,
  Blob: !1,
  BroadcastChannel: !1,
  btoa: !1,
  Cache: !1,
  caches: !1,
  CacheStorage: !1,
  clearInterval: !1,
  clearTimeout: !1,
  Client: !1,
  clients: !1,
  Clients: !1,
  close: !0,
  console: !1,
  ExtendableEvent: !1,
  ExtendableMessageEvent: !1,
  fetch: !1,
  FetchEvent: !1,
  FileReaderSync: !1,
  FormData: !1,
  Headers: !1,
  IDBCursor: !1,
  IDBCursorWithValue: !1,
  IDBDatabase: !1,
  IDBFactory: !1,
  IDBIndex: !1,
  IDBKeyRange: !1,
  IDBObjectStore: !1,
  IDBOpenDBRequest: !1,
  IDBRequest: !1,
  IDBTransaction: !1,
  IDBVersionChangeEvent: !1,
  ImageData: !1,
  importScripts: !1,
  indexedDB: !1,
  location: !1,
  MessageChannel: !1,
  MessagePort: !1,
  name: !1,
  navigator: !1,
  Notification: !1,
  onclose: !0,
  onconnect: !0,
  onerror: !0,
  onfetch: !0,
  oninstall: !0,
  onlanguagechange: !0,
  onmessage: !0,
  onmessageerror: !0,
  onnotificationclick: !0,
  onnotificationclose: !0,
  onoffline: !0,
  ononline: !0,
  onpush: !0,
  onpushsubscriptionchange: !0,
  onrejectionhandled: !0,
  onsync: !0,
  onunhandledrejection: !0,
  performance: !1,
  Performance: !1,
  PerformanceEntry: !1,
  PerformanceMark: !1,
  PerformanceMeasure: !1,
  PerformanceNavigation: !1,
  PerformanceResourceTiming: !1,
  PerformanceTiming: !1,
  postMessage: !0,
  Promise: !1,
  queueMicrotask: !1,
  registration: !1,
  removeEventListener: !1,
  Request: !1,
  Response: !1,
  self: !1,
  ServiceWorker: !1,
  ServiceWorkerContainer: !1,
  ServiceWorkerGlobalScope: !1,
  ServiceWorkerMessageEvent: !1,
  ServiceWorkerRegistration: !1,
  setInterval: !1,
  setTimeout: !1,
  skipWaiting: !1,
  TextDecoder: !1,
  TextEncoder: !1,
  URL: !1,
  URLSearchParams: !1,
  WebSocket: !1,
  WindowClient: !1,
  Worker: !1,
  WorkerGlobalScope: !1,
  XMLHttpRequest: !1
}, ist = {
  advanceClock: !1,
  fakeClearInterval: !1,
  fakeClearTimeout: !1,
  fakeSetInterval: !1,
  fakeSetTimeout: !1,
  resetTimeouts: !1,
  waitsForPromise: !1
}, nst = {
  andThen: !1,
  click: !1,
  currentPath: !1,
  currentRouteName: !1,
  currentURL: !1,
  fillIn: !1,
  find: !1,
  findAll: !1,
  findWithAssert: !1,
  keyEvent: !1,
  pauseTest: !1,
  resumeTest: !1,
  triggerEvent: !1,
  visit: !1,
  wait: !1
}, sst = {
  $: !1,
  $$: !1,
  browser: !1,
  by: !1,
  By: !1,
  DartObject: !1,
  element: !1,
  protractor: !1
}, ast = {
  browser: !1,
  chrome: !1,
  opr: !1
}, ost = {
  cloneInto: !1,
  createObjectIn: !1,
  exportFunction: !1,
  GM: !1,
  GM_addStyle: !1,
  GM_deleteValue: !1,
  GM_getResourceText: !1,
  GM_getResourceURL: !1,
  GM_getValue: !1,
  GM_info: !1,
  GM_listValues: !1,
  GM_log: !1,
  GM_openInTab: !1,
  GM_registerMenuCommand: !1,
  GM_setClipboard: !1,
  GM_setValue: !1,
  GM_xmlhttpRequest: !1,
  unsafeWindow: !1
}, lst = {
  $: !1,
  $_: !1,
  $$: !1,
  $0: !1,
  $1: !1,
  $2: !1,
  $3: !1,
  $4: !1,
  $x: !1,
  chrome: !1,
  clear: !1,
  copy: !1,
  debug: !1,
  dir: !1,
  dirxml: !1,
  getEventListeners: !1,
  inspect: !1,
  keys: !1,
  monitor: !1,
  monitorEvents: !1,
  profile: !1,
  profileEnd: !1,
  queryObjects: !1,
  table: !1,
  undebug: !1,
  unmonitor: !1,
  unmonitorEvents: !1,
  values: !1
}, ust = {
  builtin: Ont,
  es5: Nnt,
  es2015: Dnt,
  es2017: Lnt,
  browser: Mnt,
  worker: Rnt,
  node: Bnt,
  commonjs: Fnt,
  amd: jnt,
  mocha: $nt,
  jasmine: Unt,
  jest: qnt,
  qunit: Vnt,
  phantomjs: Wnt,
  couch: Hnt,
  rhino: Knt,
  nashorn: znt,
  wsh: Gnt,
  jquery: Ynt,
  yui: Xnt,
  shelljs: Jnt,
  prototypejs: Qnt,
  meteor: Znt,
  mongo: est,
  applescript: tst,
  serviceworker: rst,
  atomtest: ist,
  embertest: nst,
  protractor: sst,
  "shared-node-browser": {
    clearInterval: !1,
    clearTimeout: !1,
    console: !1,
    setInterval: !1,
    setTimeout: !1,
    URL: !1,
    URLSearchParams: !1
  },
  webextensions: ast,
  greasemonkey: ost,
  devtools: lst
};
var AR, uY;
function Xhe() {
  return uY || (uY = 1, AR = ust), AR;
}
var cY;
function Jhe() {
  if (cY)
    return Ob;
  cY = 1, Object.defineProperty(Ob, "__esModule", {
    value: !0
  }), Ob.default = void 0;
  var e = Int(), t = yp(), r = knt(), i = Xhe(), n = Ui(), s = Ag(), a = P_();
  const {
    NOT_LOCAL_BINDING: o,
    callExpression: l,
    cloneNode: u,
    getBindingIdentifiers: c,
    identifier: f,
    isArrayExpression: h,
    isBinary: m,
    isClass: g,
    isClassBody: y,
    isClassDeclaration: v,
    isExportAllDeclaration: T,
    isExportDefaultDeclaration: S,
    isExportNamedDeclaration: P,
    isFunctionDeclaration: x,
    isIdentifier: C,
    isImportDeclaration: D,
    isLiteral: w,
    isMethod: A,
    isModuleSpecifier: I,
    isNullLiteral: L,
    isObjectExpression: O,
    isProperty: F,
    isPureish: q,
    isRegExpLiteral: j,
    isSuper: N,
    isTaggedTemplateExpression: M,
    isTemplateLiteral: R,
    isThisExpression: $,
    isUnaryExpression: V,
    isVariableDeclaration: K,
    matchesPattern: z,
    memberExpression: W,
    numericLiteral: Y,
    toIdentifier: G,
    unaryExpression: le,
    variableDeclaration: ne,
    variableDeclarator: ae,
    isRecordExpression: be,
    isTupleExpression: ye,
    isObjectProperty: fe,
    isTopicReference: Z,
    isMetaProperty: ue,
    isPrivateName: me,
    isExportDeclaration: xe
  } = n;
  function Pe(Se, oe) {
    switch (Se == null ? void 0 : Se.type) {
      default:
        if (D(Se) || xe(Se))
          if ((T(Se) || P(Se) || D(Se)) && Se.source)
            Pe(Se.source, oe);
          else if ((P(Se) || D(Se)) && Se.specifiers && Se.specifiers.length)
            for (const te of Se.specifiers)
              Pe(te, oe);
          else
            (S(Se) || P(Se)) && Se.declaration && Pe(Se.declaration, oe);
        else
          I(Se) ? Pe(Se.local, oe) : w(Se) && !L(Se) && !j(Se) && !R(Se) && oe.push(Se.value);
        break;
      case "MemberExpression":
      case "OptionalMemberExpression":
      case "JSXMemberExpression":
        Pe(Se.object, oe), Pe(Se.property, oe);
        break;
      case "Identifier":
      case "JSXIdentifier":
        oe.push(Se.name);
        break;
      case "CallExpression":
      case "OptionalCallExpression":
      case "NewExpression":
        Pe(Se.callee, oe);
        break;
      case "ObjectExpression":
      case "ObjectPattern":
        for (const te of Se.properties)
          Pe(te, oe);
        break;
      case "SpreadElement":
      case "RestElement":
        Pe(Se.argument, oe);
        break;
      case "ObjectProperty":
      case "ObjectMethod":
      case "ClassProperty":
      case "ClassMethod":
      case "ClassPrivateProperty":
      case "ClassPrivateMethod":
        Pe(Se.key, oe);
        break;
      case "ThisExpression":
        oe.push("this");
        break;
      case "Super":
        oe.push("super");
        break;
      case "Import":
        oe.push("import");
        break;
      case "DoExpression":
        oe.push("do");
        break;
      case "YieldExpression":
        oe.push("yield"), Pe(Se.argument, oe);
        break;
      case "AwaitExpression":
        oe.push("await"), Pe(Se.argument, oe);
        break;
      case "AssignmentExpression":
        Pe(Se.left, oe);
        break;
      case "VariableDeclarator":
        Pe(Se.id, oe);
        break;
      case "FunctionExpression":
      case "FunctionDeclaration":
      case "ClassExpression":
      case "ClassDeclaration":
        Pe(Se.id, oe);
        break;
      case "PrivateName":
        Pe(Se.id, oe);
        break;
      case "ParenthesizedExpression":
        Pe(Se.expression, oe);
        break;
      case "UnaryExpression":
      case "UpdateExpression":
        Pe(Se.argument, oe);
        break;
      case "MetaProperty":
        Pe(Se.meta, oe), Pe(Se.property, oe);
        break;
      case "JSXElement":
        Pe(Se.openingElement, oe);
        break;
      case "JSXOpeningElement":
        Pe(Se.name, oe);
        break;
      case "JSXFragment":
        Pe(Se.openingFragment, oe);
        break;
      case "JSXOpeningFragment":
        oe.push("Fragment");
        break;
      case "JSXNamespacedName":
        Pe(Se.namespace, oe), Pe(Se.name, oe);
        break;
    }
  }
  const ve = {
    ForStatement(Se) {
      const oe = Se.get("init");
      if (oe.isVar()) {
        const {
          scope: te
        } = Se;
        (te.getFunctionParent() || te.getProgramParent()).registerBinding("var", oe);
      }
    },
    Declaration(Se) {
      if (Se.isBlockScoped() || Se.isImportDeclaration() || Se.isExportDeclaration())
        return;
      (Se.scope.getFunctionParent() || Se.scope.getProgramParent()).registerDeclaration(Se);
    },
    ImportDeclaration(Se) {
      Se.scope.getBlockParent().registerDeclaration(Se);
    },
    ReferencedIdentifier(Se, oe) {
      oe.references.push(Se);
    },
    ForXStatement(Se, oe) {
      const te = Se.get("left");
      if (te.isPattern() || te.isIdentifier())
        oe.constantViolations.push(Se);
      else if (te.isVar()) {
        const {
          scope: se
        } = Se;
        (se.getFunctionParent() || se.getProgramParent()).registerBinding("var", te);
      }
    },
    ExportDeclaration: {
      exit(Se) {
        const {
          node: oe,
          scope: te
        } = Se;
        if (T(oe))
          return;
        const se = oe.declaration;
        if (v(se) || x(se)) {
          const re = se.id;
          if (!re)
            return;
          const Te = te.getBinding(re.name);
          Te == null || Te.reference(Se);
        } else if (K(se))
          for (const re of se.declarations)
            for (const Te of Object.keys(c(re))) {
              const ze = te.getBinding(Te);
              ze == null || ze.reference(Se);
            }
      }
    },
    LabeledStatement(Se) {
      Se.scope.getBlockParent().registerDeclaration(Se);
    },
    AssignmentExpression(Se, oe) {
      oe.assignments.push(Se);
    },
    UpdateExpression(Se, oe) {
      oe.constantViolations.push(Se);
    },
    UnaryExpression(Se, oe) {
      Se.node.operator === "delete" && oe.constantViolations.push(Se);
    },
    BlockScoped(Se) {
      let oe = Se.scope;
      if (oe.path === Se && (oe = oe.parent), oe.getBlockParent().registerDeclaration(Se), Se.isClassDeclaration() && Se.node.id) {
        const re = Se.node.id.name;
        Se.scope.bindings[re] = Se.scope.parent.getBinding(re);
      }
    },
    CatchClause(Se) {
      Se.scope.registerBinding("let", Se);
    },
    Function(Se) {
      const oe = Se.get("params");
      for (const te of oe)
        Se.scope.registerBinding("param", te);
      Se.isFunctionExpression() && Se.has("id") && !Se.get("id").node[o] && Se.scope.registerBinding("local", Se.get("id"), Se);
    },
    ClassExpression(Se) {
      Se.has("id") && !Se.get("id").node[o] && Se.scope.registerBinding("local", Se);
    }
  };
  let Xe = 0;
  class st {
    constructor(oe) {
      this.uid = void 0, this.path = void 0, this.block = void 0, this.labels = void 0, this.inited = void 0, this.bindings = void 0, this.references = void 0, this.globals = void 0, this.uids = void 0, this.data = void 0, this.crawling = void 0;
      const {
        node: te
      } = oe, se = s.scope.get(te);
      if ((se == null ? void 0 : se.path) === oe)
        return se;
      s.scope.set(te, this), this.uid = Xe++, this.block = te, this.path = oe, this.labels = /* @__PURE__ */ new Map(), this.inited = !1;
    }
    get parent() {
      var oe;
      let te, se = this.path;
      do {
        const re = se.key === "key" || se.listKey === "decorators";
        se = se.parentPath, re && se.isMethod() && (se = se.parentPath), se && se.isScope() && (te = se);
      } while (se && !te);
      return (oe = te) == null ? void 0 : oe.scope;
    }
    get parentBlock() {
      return this.path.parent;
    }
    get hub() {
      return this.path.hub;
    }
    traverse(oe, te, se) {
      (0, t.default)(oe, te, this, se, this.path);
    }
    generateDeclaredUidIdentifier(oe) {
      const te = this.generateUidIdentifier(oe);
      return this.push({
        id: te
      }), u(te);
    }
    generateUidIdentifier(oe) {
      return f(this.generateUid(oe));
    }
    generateUid(oe = "temp") {
      oe = G(oe).replace(/^_+/, "").replace(/[0-9]+$/g, "");
      let te, se = 1;
      do
        te = this._generateUid(oe, se), se++;
      while (this.hasLabel(te) || this.hasBinding(te) || this.hasGlobal(te) || this.hasReference(te));
      const re = this.getProgramParent();
      return re.references[te] = !0, re.uids[te] = !0, te;
    }
    _generateUid(oe, te) {
      let se = oe;
      return te > 1 && (se += te), "_".concat(se);
    }
    generateUidBasedOnNode(oe, te) {
      const se = [];
      Pe(oe, se);
      let re = se.join("$");
      return re = re.replace(/^_/, "") || te || "ref", this.generateUid(re.slice(0, 20));
    }
    generateUidIdentifierBasedOnNode(oe, te) {
      return f(this.generateUidBasedOnNode(oe, te));
    }
    isStatic(oe) {
      if ($(oe) || N(oe) || Z(oe))
        return !0;
      if (C(oe)) {
        const te = this.getBinding(oe.name);
        return te ? te.constant : this.hasBinding(oe.name);
      }
      return !1;
    }
    maybeGenerateMemoised(oe, te) {
      if (this.isStatic(oe))
        return null;
      {
        const se = this.generateUidIdentifierBasedOnNode(oe);
        return te ? se : (this.push({
          id: se
        }), u(se));
      }
    }
    checkBlockScopedCollisions(oe, te, se, re) {
      if (te === "param" || oe.kind === "local")
        return;
      if (te === "let" || oe.kind === "let" || oe.kind === "const" || oe.kind === "module" || oe.kind === "param" && te === "const")
        throw this.hub.buildError(re, 'Duplicate declaration "'.concat(se, '"'), TypeError);
    }
    rename(oe, te) {
      const se = this.getBinding(oe);
      se && (te || (te = this.generateUidIdentifier(oe).name), new e.default(se, oe, te).rename(arguments[2]));
    }
    _renameFromMap(oe, te, se, re) {
      oe[te] && (oe[se] = re, oe[te] = null);
    }
    dump() {
      const oe = "-".repeat(60);
      console.log(oe);
      let te = this;
      do {
        console.log("#", te.block.type);
        for (const se of Object.keys(te.bindings)) {
          const re = te.bindings[se];
          console.log(" -", se, {
            constant: re.constant,
            references: re.references,
            violations: re.constantViolations.length,
            kind: re.kind
          });
        }
      } while (te = te.parent);
      console.log(oe);
    }
    toArray(oe, te, se) {
      if (C(oe)) {
        const ze = this.getBinding(oe.name);
        if (ze != null && ze.constant && ze.path.isGenericType("Array"))
          return oe;
      }
      if (h(oe))
        return oe;
      if (C(oe, {
        name: "arguments"
      }))
        return l(W(W(W(f("Array"), f("prototype")), f("slice")), f("call")), [oe]);
      let re;
      const Te = [oe];
      return te === !0 ? re = "toConsumableArray" : typeof te == "number" ? (Te.push(Y(te)), re = "slicedToArray") : re = "toArray", se && (Te.unshift(this.hub.addHelper(re)), re = "maybeArrayLike"), l(this.hub.addHelper(re), Te);
    }
    hasLabel(oe) {
      return !!this.getLabel(oe);
    }
    getLabel(oe) {
      return this.labels.get(oe);
    }
    registerLabel(oe) {
      this.labels.set(oe.node.label.name, oe);
    }
    registerDeclaration(oe) {
      if (oe.isLabeledStatement())
        this.registerLabel(oe);
      else if (oe.isFunctionDeclaration())
        this.registerBinding("hoisted", oe.get("id"), oe);
      else if (oe.isVariableDeclaration()) {
        const te = oe.get("declarations"), {
          kind: se
        } = oe.node;
        for (const re of te)
          this.registerBinding(se === "using" || se === "await using" ? "const" : se, re);
      } else if (oe.isClassDeclaration()) {
        if (oe.node.declare)
          return;
        this.registerBinding("let", oe);
      } else if (oe.isImportDeclaration()) {
        const te = oe.node.importKind === "type" || oe.node.importKind === "typeof", se = oe.get("specifiers");
        for (const re of se) {
          const Te = te || re.isImportSpecifier() && (re.node.importKind === "type" || re.node.importKind === "typeof");
          this.registerBinding(Te ? "unknown" : "module", re);
        }
      } else if (oe.isExportDeclaration()) {
        const te = oe.get("declaration");
        (te.isClassDeclaration() || te.isFunctionDeclaration() || te.isVariableDeclaration()) && this.registerDeclaration(te);
      } else
        this.registerBinding("unknown", oe);
    }
    buildUndefinedNode() {
      return le("void", Y(0), !0);
    }
    registerConstantViolation(oe) {
      const te = oe.getBindingIdentifiers();
      for (const se of Object.keys(te)) {
        const re = this.getBinding(se);
        re && re.reassign(oe);
      }
    }
    registerBinding(oe, te, se = te) {
      if (!oe)
        throw new ReferenceError("no `kind`");
      if (te.isVariableDeclaration()) {
        const ze = te.get("declarations");
        for (const Ze of ze)
          this.registerBinding(oe, Ze);
        return;
      }
      const re = this.getProgramParent(), Te = te.getOuterBindingIdentifiers(!0);
      for (const ze of Object.keys(Te)) {
        re.references[ze] = !0;
        for (const Ze of Te[ze]) {
          const pt = this.getOwnBinding(ze);
          if (pt) {
            if (pt.identifier === Ze)
              continue;
            this.checkBlockScopedCollisions(pt, oe, ze, Ze);
          }
          pt ? this.registerConstantViolation(se) : this.bindings[ze] = new r.default({
            identifier: Ze,
            scope: this,
            path: se,
            kind: oe
          });
        }
      }
    }
    addGlobal(oe) {
      this.globals[oe.name] = oe;
    }
    hasUid(oe) {
      let te = this;
      do
        if (te.uids[oe])
          return !0;
      while (te = te.parent);
      return !1;
    }
    hasGlobal(oe) {
      let te = this;
      do
        if (te.globals[oe])
          return !0;
      while (te = te.parent);
      return !1;
    }
    hasReference(oe) {
      return !!this.getProgramParent().references[oe];
    }
    isPure(oe, te) {
      if (C(oe)) {
        const ze = this.getBinding(oe.name);
        return ze ? te ? ze.constant : !0 : !1;
      } else {
        if ($(oe) || ue(oe) || Z(oe) || me(oe))
          return !0;
        if (g(oe)) {
          var se;
          return oe.superClass && !this.isPure(oe.superClass, te) || ((se = oe.decorators) == null ? void 0 : se.length) > 0 ? !1 : this.isPure(oe.body, te);
        } else if (y(oe)) {
          for (const ze of oe.body)
            if (!this.isPure(ze, te))
              return !1;
          return !0;
        } else {
          if (m(oe))
            return this.isPure(oe.left, te) && this.isPure(oe.right, te);
          if (h(oe) || ye(oe)) {
            for (const ze of oe.elements)
              if (ze !== null && !this.isPure(ze, te))
                return !1;
            return !0;
          } else if (O(oe) || be(oe)) {
            for (const ze of oe.properties)
              if (!this.isPure(ze, te))
                return !1;
            return !0;
          } else if (A(oe)) {
            var re;
            return !(oe.computed && !this.isPure(oe.key, te) || ((re = oe.decorators) == null ? void 0 : re.length) > 0);
          } else if (F(oe)) {
            var Te;
            return !(oe.computed && !this.isPure(oe.key, te) || ((Te = oe.decorators) == null ? void 0 : Te.length) > 0 || (fe(oe) || oe.static) && oe.value !== null && !this.isPure(oe.value, te));
          } else {
            if (V(oe))
              return this.isPure(oe.argument, te);
            if (M(oe))
              return z(oe.tag, "String.raw") && !this.hasBinding("String", !0) && this.isPure(oe.quasi, te);
            if (R(oe)) {
              for (const ze of oe.expressions)
                if (!this.isPure(ze, te))
                  return !1;
              return !0;
            } else
              return q(oe);
          }
        }
      }
    }
    setData(oe, te) {
      return this.data[oe] = te;
    }
    getData(oe) {
      let te = this;
      do {
        const se = te.data[oe];
        if (se != null)
          return se;
      } while (te = te.parent);
    }
    removeData(oe) {
      let te = this;
      do
        te.data[oe] != null && (te.data[oe] = null);
      while (te = te.parent);
    }
    init() {
      this.inited || (this.inited = !0, this.crawl());
    }
    crawl() {
      const oe = this.path;
      this.references = /* @__PURE__ */ Object.create(null), this.bindings = /* @__PURE__ */ Object.create(null), this.globals = /* @__PURE__ */ Object.create(null), this.uids = /* @__PURE__ */ Object.create(null), this.data = /* @__PURE__ */ Object.create(null);
      const te = this.getProgramParent();
      if (te.crawling)
        return;
      const se = {
        references: [],
        constantViolations: [],
        assignments: []
      };
      if (this.crawling = !0, oe.type !== "Program" && (0, a.isExplodedVisitor)(ve)) {
        for (const Te of ve.enter)
          Te.call(se, oe, se);
        const re = ve[oe.type];
        if (re)
          for (const Te of re.enter)
            Te.call(se, oe, se);
      }
      oe.traverse(ve, se), this.crawling = !1;
      for (const re of se.assignments) {
        const Te = re.getBindingIdentifiers();
        for (const ze of Object.keys(Te))
          re.scope.getBinding(ze) || te.addGlobal(Te[ze]);
        re.scope.registerConstantViolation(re);
      }
      for (const re of se.references) {
        const Te = re.scope.getBinding(re.node.name);
        Te ? Te.reference(re) : te.addGlobal(re.node);
      }
      for (const re of se.constantViolations)
        re.scope.registerConstantViolation(re);
    }
    push(oe) {
      let te = this.path;
      te.isPattern() ? te = this.getPatternParent().path : !te.isBlockStatement() && !te.isProgram() && (te = this.getBlockParent().path), te.isSwitchStatement() && (te = (this.getFunctionParent() || this.getProgramParent()).path), (te.isLoop() || te.isCatchClause() || te.isFunction()) && (te.ensureBlock(), te = te.get("body"));
      const se = oe.unique, re = oe.kind || "var", Te = oe._blockHoist == null ? 2 : oe._blockHoist, ze = "declaration:".concat(re, ":").concat(Te);
      let Ze = !se && te.getData(ze);
      if (!Ze) {
        const bt = ne(re, []);
        bt._blockHoist = Te, [Ze] = te.unshiftContainer("body", [bt]), se || te.setData(ze, Ze);
      }
      const pt = ae(oe.id, oe.init), ut = Ze.node.declarations.push(pt);
      te.scope.registerBinding(re, Ze.get("declarations")[ut - 1]);
    }
    getProgramParent() {
      let oe = this;
      do
        if (oe.path.isProgram())
          return oe;
      while (oe = oe.parent);
      throw new Error("Couldn't find a Program");
    }
    getFunctionParent() {
      let oe = this;
      do
        if (oe.path.isFunctionParent())
          return oe;
      while (oe = oe.parent);
      return null;
    }
    getBlockParent() {
      let oe = this;
      do
        if (oe.path.isBlockParent())
          return oe;
      while (oe = oe.parent);
      throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...");
    }
    getPatternParent() {
      let oe = this;
      do
        if (!oe.path.isPattern())
          return oe.getBlockParent();
      while (oe = oe.parent.parent);
      throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...");
    }
    getAllBindings() {
      const oe = /* @__PURE__ */ Object.create(null);
      let te = this;
      do {
        for (const se of Object.keys(te.bindings))
          se in oe || (oe[se] = te.bindings[se]);
        te = te.parent;
      } while (te);
      return oe;
    }
    getAllBindingsOfKind(...oe) {
      const te = /* @__PURE__ */ Object.create(null);
      for (const se of oe) {
        let re = this;
        do {
          for (const Te of Object.keys(re.bindings)) {
            const ze = re.bindings[Te];
            ze.kind === se && (te[Te] = ze);
          }
          re = re.parent;
        } while (re);
      }
      return te;
    }
    bindingIdentifierEquals(oe, te) {
      return this.getBindingIdentifier(oe) === te;
    }
    getBinding(oe) {
      let te = this, se;
      do {
        const Te = te.getOwnBinding(oe);
        if (Te) {
          var re;
          if (!((re = se) != null && re.isPattern() && Te.kind !== "param" && Te.kind !== "local"))
            return Te;
        } else if (!Te && oe === "arguments" && te.path.isFunction() && !te.path.isArrowFunctionExpression())
          break;
        se = te.path;
      } while (te = te.parent);
    }
    getOwnBinding(oe) {
      return this.bindings[oe];
    }
    getBindingIdentifier(oe) {
      var te;
      return (te = this.getBinding(oe)) == null ? void 0 : te.identifier;
    }
    getOwnBindingIdentifier(oe) {
      const te = this.bindings[oe];
      return te == null ? void 0 : te.identifier;
    }
    hasOwnBinding(oe) {
      return !!this.getOwnBinding(oe);
    }
    hasBinding(oe, te) {
      var se, re, Te;
      return oe ? !!(this.hasOwnBinding(oe) || (typeof te == "boolean" && (te = {
        noGlobals: te
      }), this.parentHasBinding(oe, te)) || !((se = te) != null && se.noUids) && this.hasUid(oe) || !((re = te) != null && re.noGlobals) && st.globals.includes(oe) || !((Te = te) != null && Te.noGlobals) && st.contextVariables.includes(oe)) : !1;
    }
    parentHasBinding(oe, te) {
      var se;
      return (se = this.parent) == null ? void 0 : se.hasBinding(oe, te);
    }
    moveBindingTo(oe, te) {
      const se = this.getBinding(oe);
      se && (se.scope.removeOwnBinding(oe), se.scope = te, te.bindings[oe] = se);
    }
    removeOwnBinding(oe) {
      delete this.bindings[oe];
    }
    removeBinding(oe) {
      var te;
      (te = this.getBinding(oe)) == null || te.scope.removeOwnBinding(oe);
      let se = this;
      do
        se.uids[oe] && (se.uids[oe] = !1);
      while (se = se.parent);
    }
  }
  return Ob.default = st, st.globals = Object.keys(i.builtin), st.contextVariables = ["arguments", "undefined", "Infinity", "NaN"], Ob;
}
var Mm = {}, Lb = {}, HE = { exports: {} }, KE = { exports: {} }, pY;
function Qhe() {
  return pY || (pY = 1, function(e, t) {
    (function(r, i) {
      i(t);
    })(jt, function(r) {
      class i {
        constructor() {
          this._indexes = { __proto__: null }, this.array = [];
        }
      }
      function n(u) {
        return u;
      }
      function s(u, c) {
        return u._indexes[c];
      }
      function a(u, c) {
        const f = s(u, c);
        if (f !== void 0)
          return f;
        const { array: h, _indexes: m } = u, g = h.push(c);
        return m[c] = g - 1;
      }
      function o(u) {
        const { array: c, _indexes: f } = u;
        if (c.length === 0)
          return;
        const h = c.pop();
        f[h] = void 0;
      }
      function l(u, c) {
        const f = s(u, c);
        if (f === void 0)
          return;
        const { array: h, _indexes: m } = u;
        for (let g = f + 1; g < h.length; g++) {
          const y = h[g];
          h[g - 1] = y, m[y]--;
        }
        m[c] = void 0, h.pop();
      }
      r.SetArray = i, r.get = s, r.pop = o, r.put = a, r.remove = l, Object.defineProperty(r, "__esModule", { value: !0 });
    });
  }(KE, KE.exports)), KE.exports;
}
var zE = { exports: {} }, fY;
function A9() {
  return fY || (fY = 1, function(e, t) {
    (function(r, i) {
      i(t);
    })(jt, function(r) {
      const i = ",".charCodeAt(0), n = ";".charCodeAt(0), s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", a = new Uint8Array(64), o = new Uint8Array(128);
      for (let O = 0; O < s.length; O++) {
        const F = s.charCodeAt(O);
        a[O] = F, o[F] = O;
      }
      function l(O, F) {
        let q = 0, j = 0, N = 0;
        do {
          const R = O.next();
          N = o[R], q |= (N & 31) << j, j += 5;
        } while (N & 32);
        const M = q & 1;
        return q >>>= 1, M && (q = -2147483648 | -q), F + q;
      }
      function u(O, F, q) {
        let j = F - q;
        j = j < 0 ? -j << 1 | 1 : j << 1;
        do {
          let N = j & 31;
          j >>>= 5, j > 0 && (N |= 32), O.write(a[N]);
        } while (j > 0);
        return F;
      }
      function c(O, F) {
        return O.pos >= F ? !1 : O.peek() !== i;
      }
      const f = 1024 * 16, h = typeof TextDecoder != "undefined" ? /* @__PURE__ */ new TextDecoder() : typeof Buffer != "undefined" ? {
        decode(O) {
          return Buffer.from(O.buffer, O.byteOffset, O.byteLength).toString();
        }
      } : {
        decode(O) {
          let F = "";
          for (let q = 0; q < O.length; q++)
            F += String.fromCharCode(O[q]);
          return F;
        }
      };
      class m {
        constructor() {
          this.pos = 0, this.out = "", this.buffer = new Uint8Array(f);
        }
        write(F) {
          const { buffer: q } = this;
          q[this.pos++] = F, this.pos === f && (this.out += h.decode(q), this.pos = 0);
        }
        flush() {
          const { buffer: F, out: q, pos: j } = this;
          return j > 0 ? q + h.decode(F.subarray(0, j)) : q;
        }
      }
      class g {
        constructor(F) {
          this.pos = 0, this.buffer = F;
        }
        next() {
          return this.buffer.charCodeAt(this.pos++);
        }
        peek() {
          return this.buffer.charCodeAt(this.pos);
        }
        indexOf(F) {
          const { buffer: q, pos: j } = this, N = q.indexOf(F, j);
          return N === -1 ? q.length : N;
        }
      }
      const y = [];
      function v(O) {
        const { length: F } = O, q = new g(O), j = [], N = [];
        let M = 0;
        for (; q.pos < F; q.pos++) {
          M = l(q, M);
          const R = l(q, 0);
          if (!c(q, F)) {
            const Y = N.pop();
            Y[2] = M, Y[3] = R;
            continue;
          }
          const $ = l(q, 0), z = l(q, 0) & 1 ? [M, R, 0, 0, $, l(q, 0)] : [M, R, 0, 0, $];
          let W = y;
          if (c(q, F)) {
            W = [];
            do {
              const Y = l(q, 0);
              W.push(Y);
            } while (c(q, F));
          }
          z.vars = W, j.push(z), N.push(z);
        }
        return j;
      }
      function T(O) {
        const F = new m();
        for (let q = 0; q < O.length; )
          q = S(O, q, F, [0]);
        return F.flush();
      }
      function S(O, F, q, j) {
        const N = O[F], { 0: M, 1: R, 2: $, 3: V, 4: K, vars: z } = N;
        F > 0 && q.write(i), j[0] = u(q, M, j[0]), u(q, R, 0), u(q, K, 0);
        const W = N.length === 6 ? 1 : 0;
        u(q, W, 0), N.length === 6 && u(q, N[5], 0);
        for (const Y of z)
          u(q, Y, 0);
        for (F++; F < O.length; ) {
          const Y = O[F], { 0: G, 1: le } = Y;
          if (G > $ || G === $ && le >= V)
            break;
          F = S(O, F, q, j);
        }
        return q.write(i), j[0] = u(q, $, j[0]), u(q, V, 0), F;
      }
      function P(O) {
        const { length: F } = O, q = new g(O), j = [], N = [];
        let M = 0, R = 0, $ = 0, V = 0, K = 0, z = 0, W = 0, Y = 0;
        do {
          const G = q.indexOf(";");
          let le = 0;
          for (; q.pos < G; q.pos++) {
            if (le = l(q, le), !c(q, G)) {
              const me = N.pop();
              me[2] = M, me[3] = le;
              continue;
            }
            const ne = l(q, 0), ae = ne & 1, be = ne & 2, ye = ne & 4;
            let fe = null, Z = y, ue;
            if (ae) {
              const me = l(q, R);
              $ = l(q, R === me ? $ : 0), R = me, ue = [M, le, 0, 0, me, $];
            } else
              ue = [M, le, 0, 0];
            if (ue.isScope = !!ye, be) {
              const me = V, xe = K;
              V = l(q, V);
              const Pe = me === V;
              K = l(q, Pe ? K : 0), z = l(q, Pe && xe === K ? z : 0), fe = [V, K, z];
            }
            if (ue.callsite = fe, c(q, G)) {
              Z = [];
              do {
                W = M, Y = le;
                const me = l(q, 0);
                let xe;
                if (me < -1) {
                  xe = [[l(q, 0)]];
                  for (let Pe = -1; Pe > me; Pe--) {
                    const ve = W;
                    W = l(q, W), Y = l(q, W === ve ? Y : 0);
                    const Xe = l(q, 0);
                    xe.push([Xe, W, Y]);
                  }
                } else
                  xe = [[me]];
                Z.push(xe);
              } while (c(q, G));
            }
            ue.bindings = Z, j.push(ue), N.push(ue);
          }
          M++, q.pos = G + 1;
        } while (q.pos < F);
        return j;
      }
      function x(O) {
        if (O.length === 0)
          return "";
        const F = new m();
        for (let q = 0; q < O.length; )
          q = C(O, q, F, [0, 0, 0, 0, 0, 0, 0]);
        return F.flush();
      }
      function C(O, F, q, j) {
        const N = O[F], { 0: M, 1: R, 2: $, 3: V, isScope: K, callsite: z, bindings: W } = N;
        j[0] < M ? (D(q, j[0], M), j[0] = M, j[1] = 0) : F > 0 && q.write(i), j[1] = u(q, N[1], j[1]);
        const Y = (N.length === 6 ? 1 : 0) | (z ? 2 : 0) | (K ? 4 : 0);
        if (u(q, Y, 0), N.length === 6) {
          const { 4: G, 5: le } = N;
          G !== j[2] && (j[3] = 0), j[2] = u(q, G, j[2]), j[3] = u(q, le, j[3]);
        }
        if (z) {
          const { 0: G, 1: le, 2: ne } = N.callsite;
          G !== j[4] ? (j[5] = 0, j[6] = 0) : le !== j[5] && (j[6] = 0), j[4] = u(q, G, j[4]), j[5] = u(q, le, j[5]), j[6] = u(q, ne, j[6]);
        }
        if (W)
          for (const G of W) {
            G.length > 1 && u(q, -G.length, 0);
            const le = G[0][0];
            u(q, le, 0);
            let ne = M, ae = R;
            for (let be = 1; be < G.length; be++) {
              const ye = G[be];
              ne = u(q, ye[1], ne), ae = u(q, ye[2], ae), u(q, ye[0], 0);
            }
          }
        for (F++; F < O.length; ) {
          const G = O[F], { 0: le, 1: ne } = G;
          if (le > $ || le === $ && ne >= V)
            break;
          F = C(O, F, q, j);
        }
        return j[0] < $ ? (D(q, j[0], $), j[0] = $, j[1] = 0) : q.write(i), j[1] = u(q, V, j[1]), F;
      }
      function D(O, F, q) {
        do
          O.write(n);
        while (++F < q);
      }
      function w(O) {
        const { length: F } = O, q = new g(O), j = [];
        let N = 0, M = 0, R = 0, $ = 0, V = 0;
        do {
          const K = q.indexOf(";"), z = [];
          let W = !0, Y = 0;
          for (N = 0; q.pos < K; ) {
            let G;
            N = l(q, N), N < Y && (W = !1), Y = N, c(q, K) ? (M = l(q, M), R = l(q, R), $ = l(q, $), c(q, K) ? (V = l(q, V), G = [N, M, R, $, V]) : G = [N, M, R, $]) : G = [N], z.push(G), q.pos++;
          }
          W || A(z), j.push(z), q.pos = K + 1;
        } while (q.pos <= F);
        return j;
      }
      function A(O) {
        O.sort(I);
      }
      function I(O, F) {
        return O[0] - F[0];
      }
      function L(O) {
        const F = new m();
        let q = 0, j = 0, N = 0, M = 0;
        for (let R = 0; R < O.length; R++) {
          const $ = O[R];
          if (R > 0 && F.write(n), $.length === 0)
            continue;
          let V = 0;
          for (let K = 0; K < $.length; K++) {
            const z = $[K];
            K > 0 && F.write(i), V = u(F, z[0], V), z.length !== 1 && (q = u(F, z[1], q), j = u(F, z[2], j), N = u(F, z[3], N), z.length !== 4 && (M = u(F, z[4], M)));
          }
        }
        return F.flush();
      }
      r.decode = w, r.decodeGeneratedRanges = P, r.decodeOriginalScopes = v, r.encode = L, r.encodeGeneratedRanges = x, r.encodeOriginalScopes = T, Object.defineProperty(r, "__esModule", { value: !0 });
    });
  }(zE, zE.exports)), zE.exports;
}
var GE = { exports: {} }, KF = { exports: {} };
(function(e, t) {
  (function(r, i) {
    i(t);
  })(jt, function(r) {
    const i = ",".charCodeAt(0), n = ";".charCodeAt(0), s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", a = new Uint8Array(64), o = new Uint8Array(128);
    for (let T = 0; T < s.length; T++) {
      const S = s.charCodeAt(T);
      a[T] = S, o[S] = T;
    }
    const l = typeof TextDecoder != "undefined" ? /* @__PURE__ */ new TextDecoder() : typeof Buffer != "undefined" ? {
      decode(T) {
        return Buffer.from(T.buffer, T.byteOffset, T.byteLength).toString();
      }
    } : {
      decode(T) {
        let S = "";
        for (let P = 0; P < T.length; P++)
          S += String.fromCharCode(T[P]);
        return S;
      }
    };
    function u(T) {
      const S = new Int32Array(5), P = [];
      let x = 0;
      do {
        const C = c(T, x), D = [];
        let w = !0, A = 0;
        S[0] = 0;
        for (let I = x; I < C; I++) {
          let L;
          I = f(T, I, S, 0);
          const O = S[0];
          O < A && (w = !1), A = O, h(T, I, C) ? (I = f(T, I, S, 1), I = f(T, I, S, 2), I = f(T, I, S, 3), h(T, I, C) ? (I = f(T, I, S, 4), L = [O, S[1], S[2], S[3], S[4]]) : L = [O, S[1], S[2], S[3]]) : L = [O], D.push(L);
        }
        w || m(D), P.push(D), x = C + 1;
      } while (x <= T.length);
      return P;
    }
    function c(T, S) {
      const P = T.indexOf(";", S);
      return P === -1 ? T.length : P;
    }
    function f(T, S, P, x) {
      let C = 0, D = 0, w = 0;
      do {
        const I = T.charCodeAt(S++);
        w = o[I], C |= (w & 31) << D, D += 5;
      } while (w & 32);
      const A = C & 1;
      return C >>>= 1, A && (C = -2147483648 | -C), P[x] += C, S;
    }
    function h(T, S, P) {
      return S >= P ? !1 : T.charCodeAt(S) !== i;
    }
    function m(T) {
      T.sort(g);
    }
    function g(T, S) {
      return T[0] - S[0];
    }
    function y(T) {
      const S = new Int32Array(5), P = 1024 * 16, x = P - 36, C = new Uint8Array(P), D = C.subarray(0, x);
      let w = 0, A = "";
      for (let I = 0; I < T.length; I++) {
        const L = T[I];
        if (I > 0 && (w === P && (A += l.decode(C), w = 0), C[w++] = n), L.length !== 0) {
          S[0] = 0;
          for (let O = 0; O < L.length; O++) {
            const F = L[O];
            w > x && (A += l.decode(D), C.copyWithin(0, x, w), w -= x), O > 0 && (C[w++] = i), w = v(C, w, S, F, 0), F.length !== 1 && (w = v(C, w, S, F, 1), w = v(C, w, S, F, 2), w = v(C, w, S, F, 3), F.length !== 4 && (w = v(C, w, S, F, 4)));
          }
        }
      }
      return A + l.decode(C.subarray(0, w));
    }
    function v(T, S, P, x, C) {
      const D = x[C];
      let w = D - P[C];
      P[C] = D, w = w < 0 ? -w << 1 | 1 : w << 1;
      do {
        let A = w & 31;
        w >>>= 5, w > 0 && (A |= 32), T[S++] = a[A];
      } while (w > 0);
      return S;
    }
    r.decode = u, r.encode = y, Object.defineProperty(r, "__esModule", { value: !0 });
  });
})(KF, KF.exports);
var Zhe = KF.exports, CR = { exports: {} }, hY;
function ede() {
  return hY || (hY = 1, function(e, t) {
    (function(r, i) {
      e.exports = i();
    })(jt, function() {
      const r = /^[\w+.-]+:\/\//, i = /^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/, n = /^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;
      var s;
      (function(P) {
        P[P.Empty = 1] = "Empty", P[P.Hash = 2] = "Hash", P[P.Query = 3] = "Query", P[P.RelativePath = 4] = "RelativePath", P[P.AbsolutePath = 5] = "AbsolutePath", P[P.SchemeRelative = 6] = "SchemeRelative", P[P.Absolute = 7] = "Absolute";
      })(s || (s = {}));
      function a(P) {
        return r.test(P);
      }
      function o(P) {
        return P.startsWith("//");
      }
      function l(P) {
        return P.startsWith("/");
      }
      function u(P) {
        return P.startsWith("file:");
      }
      function c(P) {
        return /^[.?#]/.test(P);
      }
      function f(P) {
        const x = i.exec(P);
        return m(x[1], x[2] || "", x[3], x[4] || "", x[5] || "/", x[6] || "", x[7] || "");
      }
      function h(P) {
        const x = n.exec(P), C = x[2];
        return m("file:", "", x[1] || "", "", l(C) ? C : "/" + C, x[3] || "", x[4] || "");
      }
      function m(P, x, C, D, w, A, I) {
        return {
          scheme: P,
          user: x,
          host: C,
          port: D,
          path: w,
          query: A,
          hash: I,
          type: s.Absolute
        };
      }
      function g(P) {
        if (o(P)) {
          const C = f("http:" + P);
          return C.scheme = "", C.type = s.SchemeRelative, C;
        }
        if (l(P)) {
          const C = f("http://foo.com" + P);
          return C.scheme = "", C.host = "", C.type = s.AbsolutePath, C;
        }
        if (u(P))
          return h(P);
        if (a(P))
          return f(P);
        const x = f("http://foo.com/" + P);
        return x.scheme = "", x.host = "", x.type = P ? P.startsWith("?") ? s.Query : P.startsWith("#") ? s.Hash : s.RelativePath : s.Empty, x;
      }
      function y(P) {
        if (P.endsWith("/.."))
          return P;
        const x = P.lastIndexOf("/");
        return P.slice(0, x + 1);
      }
      function v(P, x) {
        T(x, x.type), P.path === "/" ? P.path = x.path : P.path = y(x.path) + P.path;
      }
      function T(P, x) {
        const C = x <= s.RelativePath, D = P.path.split("/");
        let w = 1, A = 0, I = !1;
        for (let O = 1; O < D.length; O++) {
          const F = D[O];
          if (!F) {
            I = !0;
            continue;
          }
          if (I = !1, F !== ".") {
            if (F === "..") {
              A ? (I = !0, A--, w--) : C && (D[w++] = F);
              continue;
            }
            D[w++] = F, A++;
          }
        }
        let L = "";
        for (let O = 1; O < w; O++)
          L += "/" + D[O];
        (!L || I && !L.endsWith("/..")) && (L += "/"), P.path = L;
      }
      function S(P, x) {
        if (!P && !x)
          return "";
        const C = g(P);
        let D = C.type;
        if (x && D !== s.Absolute) {
          const A = g(x), I = A.type;
          switch (D) {
            case s.Empty:
              C.hash = A.hash;
            case s.Hash:
              C.query = A.query;
            case s.Query:
            case s.RelativePath:
              v(C, A);
            case s.AbsolutePath:
              C.user = A.user, C.host = A.host, C.port = A.port;
            case s.SchemeRelative:
              C.scheme = A.scheme;
          }
          I > D && (D = I);
        }
        T(C, D);
        const w = C.query + C.hash;
        switch (D) {
          case s.Hash:
          case s.Query:
            return w;
          case s.RelativePath: {
            const A = C.path.slice(1);
            return A ? c(x || P) && !c(A) ? "./" + A + w : A + w : w || ".";
          }
          case s.AbsolutePath:
            return C.path + w;
          default:
            return C.scheme + "//" + C.user + C.host + C.port + C.path + w;
        }
      }
      return S;
    });
  }(CR)), CR.exports;
}
var dY;
function XT() {
  return dY || (dY = 1, function(e, t) {
    (function(r, i) {
      i(t, Zhe, ede());
    })(jt, function(r, i, n) {
      function s(re, Te) {
        return Te && !Te.endsWith("/") && (Te += "/"), n(re, Te);
      }
      function a(re) {
        if (!re)
          return "";
        const Te = re.lastIndexOf("/");
        return re.slice(0, Te + 1);
      }
      const o = 0, l = 1, u = 2, c = 3, f = 4, h = 1, m = 2;
      function g(re, Te) {
        const ze = y(re, 0);
        if (ze === re.length)
          return re;
        Te || (re = re.slice());
        for (let Ze = ze; Ze < re.length; Ze = y(re, Ze + 1))
          re[Ze] = T(re[Ze], Te);
        return re;
      }
      function y(re, Te) {
        for (let ze = Te; ze < re.length; ze++)
          if (!v(re[ze]))
            return ze;
        return re.length;
      }
      function v(re) {
        for (let Te = 1; Te < re.length; Te++)
          if (re[Te][o] < re[Te - 1][o])
            return !1;
        return !0;
      }
      function T(re, Te) {
        return Te || (re = re.slice()), re.sort(S);
      }
      function S(re, Te) {
        return re[o] - Te[o];
      }
      let P = !1;
      function x(re, Te, ze, Ze) {
        for (; ze <= Ze; ) {
          const pt = ze + (Ze - ze >> 1), ut = re[pt][o] - Te;
          if (ut === 0)
            return P = !0, pt;
          ut < 0 ? ze = pt + 1 : Ze = pt - 1;
        }
        return P = !1, ze - 1;
      }
      function C(re, Te, ze) {
        for (let Ze = ze + 1; Ze < re.length && re[Ze][o] === Te; ze = Ze++)
          ;
        return ze;
      }
      function D(re, Te, ze) {
        for (let Ze = ze - 1; Ze >= 0 && re[Ze][o] === Te; ze = Ze--)
          ;
        return ze;
      }
      function w() {
        return {
          lastKey: -1,
          lastNeedle: -1,
          lastIndex: -1
        };
      }
      function A(re, Te, ze, Ze) {
        const { lastKey: pt, lastNeedle: ut, lastIndex: bt } = ze;
        let vt = 0, ge = re.length - 1;
        if (Ze === pt) {
          if (Te === ut)
            return P = bt !== -1 && re[bt][o] === Te, bt;
          Te >= ut ? vt = bt === -1 ? 0 : bt : ge = bt;
        }
        return ze.lastKey = Ze, ze.lastNeedle = Te, ze.lastIndex = x(re, Te, vt, ge);
      }
      function I(re, Te) {
        const ze = Te.map(O);
        for (let Ze = 0; Ze < re.length; Ze++) {
          const pt = re[Ze];
          for (let ut = 0; ut < pt.length; ut++) {
            const bt = pt[ut];
            if (bt.length === 1)
              continue;
            const vt = bt[l], ge = bt[u], pe = bt[c], $e = ze[vt], ie = $e[ge] || ($e[ge] = []), Q = Te[vt];
            let X = C(ie, pe, A(ie, pe, Q, ge));
            Q.lastIndex = ++X, L(ie, X, [pe, Ze, bt[o]]);
          }
        }
        return ze;
      }
      function L(re, Te, ze) {
        for (let Ze = re.length; Ze > Te; Ze--)
          re[Ze] = re[Ze - 1];
        re[Te] = ze;
      }
      function O() {
        return { __proto__: null };
      }
      const F = function(re, Te) {
        const ze = q(re);
        if (!("sections" in ze))
          return new W(ze, Te);
        const Ze = [], pt = [], ut = [], bt = [], vt = [];
        j(ze, Te, Ze, pt, ut, bt, vt, 0, 0, 1 / 0, 1 / 0);
        const ge = {
          version: 3,
          file: ze.file,
          names: bt,
          sources: pt,
          sourcesContent: ut,
          mappings: Ze,
          ignoreList: vt
        };
        return xe(ge);
      };
      function q(re) {
        return typeof re == "string" ? JSON.parse(re) : re;
      }
      function j(re, Te, ze, Ze, pt, ut, bt, vt, ge, pe, $e) {
        const { sections: ie } = re;
        for (let Q = 0; Q < ie.length; Q++) {
          const { map: X, offset: ce } = ie[Q];
          let U = pe, Ee = $e;
          if (Q + 1 < ie.length) {
            const Qe = ie[Q + 1].offset;
            U = Math.min(pe, vt + Qe.line), U === pe ? Ee = Math.min($e, ge + Qe.column) : U < pe && (Ee = ge + Qe.column);
          }
          N(X, Te, ze, Ze, pt, ut, bt, vt + ce.line, ge + ce.column, U, Ee);
        }
      }
      function N(re, Te, ze, Ze, pt, ut, bt, vt, ge, pe, $e) {
        const ie = q(re);
        if ("sections" in ie)
          return j(...arguments);
        const Q = new W(ie, Te), X = Ze.length, ce = ut.length, U = le(Q), { resolvedSources: Ee, sourcesContent: Qe, ignoreList: ft } = Q;
        if (M(Ze, Ee), M(ut, Q.names), Qe)
          M(pt, Qe);
        else
          for (let ht = 0; ht < Ee.length; ht++)
            pt.push(null);
        if (ft)
          for (let ht = 0; ht < ft.length; ht++)
            bt.push(ft[ht] + X);
        for (let ht = 0; ht < U.length; ht++) {
          const Rt = vt + ht;
          if (Rt > pe)
            return;
          const Ot = R(ze, Rt), Tt = ht === 0 ? ge : 0, lt = U[ht];
          for (let lr = 0; lr < lt.length; lr++) {
            const kr = lt[lr], Ai = Tt + kr[o];
            if (Rt === pe && Ai >= $e)
              return;
            if (kr.length === 1) {
              Ot.push([Ai]);
              continue;
            }
            const an = X + kr[l], Nn = kr[u], on = kr[c];
            Ot.push(kr.length === 4 ? [Ai, an, Nn, on] : [Ai, an, Nn, on, ce + kr[f]]);
          }
        }
      }
      function M(re, Te) {
        for (let ze = 0; ze < Te.length; ze++)
          re.push(Te[ze]);
      }
      function R(re, Te) {
        for (let ze = re.length; ze <= Te; ze++)
          re[ze] = [];
        return re[Te];
      }
      const $ = "`line` must be greater than 0 (lines start at line 1)", V = "`column` must be greater than or equal to 0 (columns start at column 0)", K = -1, z = 1;
      class W {
        constructor(Te, ze) {
          const Ze = typeof Te == "string";
          if (!Ze && Te._decodedMemo)
            return Te;
          const pt = Ze ? JSON.parse(Te) : Te, { version: ut, file: bt, names: vt, sourceRoot: ge, sources: pe, sourcesContent: $e } = pt;
          this.version = ut, this.file = bt, this.names = vt || [], this.sourceRoot = ge, this.sources = pe, this.sourcesContent = $e, this.ignoreList = pt.ignoreList || pt.x_google_ignoreList || void 0;
          const ie = s(ge || "", a(ze));
          this.resolvedSources = pe.map((X) => s(X || "", ie));
          const { mappings: Q } = pt;
          typeof Q == "string" ? (this._encoded = Q, this._decoded = void 0) : (this._encoded = void 0, this._decoded = g(Q, Ze)), this._decodedMemo = w(), this._bySources = void 0, this._bySourceMemos = void 0;
        }
      }
      function Y(re) {
        return re;
      }
      function G(re) {
        var Te, ze;
        return (Te = (ze = re)._encoded) !== null && Te !== void 0 ? Te : ze._encoded = i.encode(re._decoded);
      }
      function le(re) {
        var Te;
        return (Te = re)._decoded || (Te._decoded = i.decode(re._encoded));
      }
      function ne(re, Te, ze) {
        const Ze = le(re);
        if (Te >= Ze.length)
          return null;
        const pt = Ze[Te], ut = oe(pt, re._decodedMemo, Te, ze, z);
        return ut === -1 ? null : pt[ut];
      }
      function ae(re, Te) {
        let { line: ze, column: Ze, bias: pt } = Te;
        if (ze--, ze < 0)
          throw new Error($);
        if (Ze < 0)
          throw new Error(V);
        const ut = le(re);
        if (ze >= ut.length)
          return st(null, null, null, null);
        const bt = ut[ze], vt = oe(bt, re._decodedMemo, ze, Ze, pt || z);
        if (vt === -1)
          return st(null, null, null, null);
        const ge = bt[vt];
        if (ge.length === 1)
          return st(null, null, null, null);
        const { names: pe, resolvedSources: $e } = re;
        return st($e[ge[l]], ge[u] + 1, ge[c], ge.length === 5 ? pe[ge[f]] : null);
      }
      function be(re, Te) {
        const { source: ze, line: Ze, column: pt, bias: ut } = Te;
        return se(re, ze, Ze, pt, ut || z, !1);
      }
      function ye(re, Te) {
        const { source: ze, line: Ze, column: pt, bias: ut } = Te;
        return se(re, ze, Ze, pt, ut || K, !0);
      }
      function fe(re, Te) {
        const ze = le(re), { names: Ze, resolvedSources: pt } = re;
        for (let ut = 0; ut < ze.length; ut++) {
          const bt = ze[ut];
          for (let vt = 0; vt < bt.length; vt++) {
            const ge = bt[vt], pe = ut + 1, $e = ge[0];
            let ie = null, Q = null, X = null, ce = null;
            ge.length !== 1 && (ie = pt[ge[1]], Q = ge[2] + 1, X = ge[3]), ge.length === 5 && (ce = Ze[ge[4]]), Te({
              generatedLine: pe,
              generatedColumn: $e,
              source: ie,
              originalLine: Q,
              originalColumn: X,
              name: ce
            });
          }
        }
      }
      function Z(re, Te) {
        const { sources: ze, resolvedSources: Ze } = re;
        let pt = ze.indexOf(Te);
        return pt === -1 && (pt = Ze.indexOf(Te)), pt;
      }
      function ue(re, Te) {
        const { sourcesContent: ze } = re;
        if (ze == null)
          return null;
        const Ze = Z(re, Te);
        return Ze === -1 ? null : ze[Ze];
      }
      function me(re, Te) {
        const { ignoreList: ze } = re;
        if (ze == null)
          return !1;
        const Ze = Z(re, Te);
        return Ze === -1 ? !1 : ze.includes(Ze);
      }
      function xe(re, Te) {
        const ze = new W(Xe(re, []), Te);
        return ze._decoded = re.mappings, ze;
      }
      function Pe(re) {
        return Xe(re, le(re));
      }
      function ve(re) {
        return Xe(re, G(re));
      }
      function Xe(re, Te) {
        return {
          version: re.version,
          file: re.file,
          names: re.names,
          sourceRoot: re.sourceRoot,
          sources: re.sources,
          sourcesContent: re.sourcesContent,
          mappings: Te,
          ignoreList: re.ignoreList || re.x_google_ignoreList
        };
      }
      function st(re, Te, ze, Ze) {
        return { source: re, line: Te, column: ze, name: Ze };
      }
      function Se(re, Te) {
        return { line: re, column: Te };
      }
      function oe(re, Te, ze, Ze, pt) {
        let ut = A(re, Ze, Te, ze);
        return P ? ut = (pt === K ? C : D)(re, Ze, ut) : pt === K && ut++, ut === -1 || ut === re.length ? -1 : ut;
      }
      function te(re, Te, ze, Ze, pt) {
        let ut = oe(re, Te, ze, Ze, z);
        if (!P && pt === K && ut++, ut === -1 || ut === re.length)
          return [];
        const bt = P ? Ze : re[ut][o];
        P || (ut = D(re, bt, ut));
        const vt = C(re, bt, ut), ge = [];
        for (; ut <= vt; ut++) {
          const pe = re[ut];
          ge.push(Se(pe[h] + 1, pe[m]));
        }
        return ge;
      }
      function se(re, Te, ze, Ze, pt, ut) {
        var bt;
        if (ze--, ze < 0)
          throw new Error($);
        if (Ze < 0)
          throw new Error(V);
        const { sources: vt, resolvedSources: ge } = re;
        let pe = vt.indexOf(Te);
        if (pe === -1 && (pe = ge.indexOf(Te)), pe === -1)
          return ut ? [] : Se(null, null);
        const ie = ((bt = re)._bySources || (bt._bySources = I(le(re), re._bySourceMemos = vt.map(w))))[pe][ze];
        if (ie == null)
          return ut ? [] : Se(null, null);
        const Q = re._bySourceMemos[pe];
        if (ut)
          return te(ie, Q, ze, Ze, pt);
        const X = oe(ie, Q, ze, Ze, pt);
        if (X === -1)
          return Se(null, null);
        const ce = ie[X];
        return Se(ce[h] + 1, ce[m]);
      }
      r.AnyMap = F, r.GREATEST_LOWER_BOUND = z, r.LEAST_UPPER_BOUND = K, r.TraceMap = W, r.allGeneratedPositionsFor = ye, r.decodedMap = Pe, r.decodedMappings = le, r.eachMapping = fe, r.encodedMap = ve, r.encodedMappings = G, r.generatedPositionFor = be, r.isIgnored = me, r.originalPositionFor = ae, r.presortedDecodedMap = xe, r.sourceContentFor = ue, r.traceSegment = ne;
    });
  }(GE, GE.exports)), GE.exports;
}
var mY;
function tde() {
  return mY || (mY = 1, function(e, t) {
    (function(r, i) {
      i(t, Qhe(), A9(), XT());
    })(jt, function(r, i, n, s) {
      class h {
        constructor({ file: $, sourceRoot: V } = {}) {
          this._names = new i.SetArray(), this._sources = new i.SetArray(), this._sourcesContent = [], this._mappings = [], this.file = $, this.sourceRoot = V, this._ignoreList = new i.SetArray();
        }
      }
      function m(R) {
        return R;
      }
      function g(R, $, V, K, z, W, Y, G) {
        return A(!1, R, $, V, K, z, W, Y, G);
      }
      function y(R, $) {
        return M(!1, R, $);
      }
      const v = (R, $, V, K, z, W, Y, G) => A(!0, R, $, V, K, z, W, Y, G), T = (R, $) => M(!0, R, $);
      function S(R, $, V) {
        const { _sources: K, _sourcesContent: z } = R, W = i.put(K, $);
        z[W] = V;
      }
      function P(R, $, V = !0) {
        const { _sources: K, _sourcesContent: z, _ignoreList: W } = R, Y = i.put(K, $);
        Y === z.length && (z[Y] = null), V ? i.put(W, Y) : i.remove(W, Y);
      }
      function x(R) {
        const { _mappings: $, _sources: V, _sourcesContent: K, _names: z, _ignoreList: W } = R;
        return F($), {
          version: 3,
          file: R.file || void 0,
          names: z.array,
          sourceRoot: R.sourceRoot || void 0,
          sources: V.array,
          sourcesContent: K,
          mappings: $,
          ignoreList: W.array
        };
      }
      function C(R) {
        const $ = x(R);
        return Object.assign(Object.assign({}, $), { mappings: n.encode($.mappings) });
      }
      function D(R) {
        const $ = new s.TraceMap(R), V = new h({ file: $.file, sourceRoot: $.sourceRoot });
        return q(V._names, $.names), q(V._sources, $.sources), V._sourcesContent = $.sourcesContent || $.sources.map(() => null), V._mappings = s.decodedMappings($), $.ignoreList && q(V._ignoreList, $.ignoreList), V;
      }
      function w(R) {
        const $ = [], { _mappings: V, _sources: K, _names: z } = R;
        for (let W = 0; W < V.length; W++) {
          const Y = V[W];
          for (let G = 0; G < Y.length; G++) {
            const le = Y[G], ne = { line: W + 1, column: le[0] };
            let ae, be, ye;
            le.length !== 1 && (ae = K.array[le[1]], be = { line: le[2] + 1, column: le[3] }, le.length === 5 && (ye = z.array[le[4]])), $.push({ generated: ne, source: ae, original: be, name: ye });
          }
        }
        return $;
      }
      function A(R, $, V, K, z, W, Y, G, le) {
        const { _mappings: ne, _sources: ae, _sourcesContent: be, _names: ye } = $, fe = I(ne, V), Z = L(fe, K);
        if (!z)
          return R && j(fe, Z) ? void 0 : O(fe, Z, [K]);
        const ue = i.put(ae, z), me = G ? i.put(ye, G) : -1;
        if (ue === be.length && (be[ue] = le != null ? le : null), !(R && N(fe, Z, ue, W, Y, me)))
          return O(fe, Z, G ? [K, ue, W, Y, me] : [K, ue, W, Y]);
      }
      function I(R, $) {
        for (let V = R.length; V <= $; V++)
          R[V] = [];
        return R[$];
      }
      function L(R, $) {
        let V = R.length;
        for (let K = V - 1; K >= 0; V = K--) {
          const z = R[K];
          if ($ >= z[0])
            break;
        }
        return V;
      }
      function O(R, $, V) {
        for (let K = R.length; K > $; K--)
          R[K] = R[K - 1];
        R[$] = V;
      }
      function F(R) {
        const { length: $ } = R;
        let V = $;
        for (let K = V - 1; K >= 0 && !(R[K].length > 0); V = K, K--)
          ;
        V < $ && (R.length = V);
      }
      function q(R, $) {
        for (let V = 0; V < $.length; V++)
          i.put(R, $[V]);
      }
      function j(R, $) {
        return $ === 0 ? !0 : R[$ - 1].length === 1;
      }
      function N(R, $, V, K, z, W) {
        if ($ === 0)
          return !1;
        const Y = R[$ - 1];
        return Y.length === 1 ? !1 : V === Y[1] && K === Y[2] && z === Y[3] && W === (Y.length === 5 ? Y[4] : -1);
      }
      function M(R, $, V) {
        const { generated: K, source: z, original: W, name: Y, content: G } = V;
        return z ? A(R, $, K.line - 1, K.column, z, W.line - 1, W.column, Y, G) : A(R, $, K.line - 1, K.column, null, null, null, null, null);
      }
      r.GenMapping = h, r.addMapping = y, r.addSegment = g, r.allMappings = w, r.fromMap = D, r.maybeAddMapping = T, r.maybeAddSegment = v, r.setIgnore = P, r.setSourceContent = S, r.toDecodedMap = x, r.toEncodedMap = C, Object.defineProperty(r, "__esModule", { value: !0 });
    });
  }(HE, HE.exports)), HE.exports;
}
var yY;
function cst() {
  if (yY)
    return Lb;
  yY = 1, Object.defineProperty(Lb, "__esModule", {
    value: !0
  }), Lb.default = void 0;
  var e = tde(), t = XT();
  class r {
    constructor(n, s) {
      var a;
      this._map = void 0, this._rawMappings = void 0, this._sourceFileName = void 0, this._lastGenLine = 0, this._lastSourceLine = 0, this._lastSourceColumn = 0, this._inputMap = void 0;
      const o = this._map = new e.GenMapping({
        sourceRoot: n.sourceRoot
      });
      if (this._sourceFileName = (a = n.sourceFileName) == null ? void 0 : a.replace(/\\/g, "/"), this._rawMappings = void 0, n.inputSourceMap) {
        this._inputMap = new t.TraceMap(n.inputSourceMap);
        const u = this._inputMap.resolvedSources;
        if (u.length)
          for (let c = 0; c < u.length; c++) {
            var l;
            (0, e.setSourceContent)(o, u[c], (l = this._inputMap.sourcesContent) == null ? void 0 : l[c]);
          }
      }
      if (typeof s == "string" && !n.inputSourceMap)
        (0, e.setSourceContent)(o, this._sourceFileName, s);
      else if (typeof s == "object")
        for (const u of Object.keys(s))
          (0, e.setSourceContent)(o, u.replace(/\\/g, "/"), s[u]);
    }
    get() {
      return (0, e.toEncodedMap)(this._map);
    }
    getDecoded() {
      return (0, e.toDecodedMap)(this._map);
    }
    getRawMappings() {
      return this._rawMappings || (this._rawMappings = (0, e.allMappings)(this._map));
    }
    mark(n, s, a, o, l, u) {
      var c;
      this._rawMappings = void 0;
      let f;
      if (s != null)
        if (this._inputMap) {
          if (f = (0, t.originalPositionFor)(this._inputMap, {
            line: s,
            column: a
          }), !f.name && l) {
            const h = (0, t.originalPositionFor)(this._inputMap, l);
            h.name && (o = h.name);
          }
        } else
          f = {
            source: (u == null ? void 0 : u.replace(/\\/g, "/")) || this._sourceFileName,
            line: s,
            column: a
          };
      (0, e.maybeAddMapping)(this._map, {
        name: o,
        generated: n,
        source: (c = f) == null ? void 0 : c.source,
        original: f
      });
    }
  }
  return Lb.default = r, Lb;
}
var Mb = {}, Rb = {}, gY;
function pst() {
  if (gY)
    return Rb;
  gY = 1, Object.defineProperty(Rb, "__esModule", {
    value: !0
  }), Rb.default = void 0;
  class e {
    constructor(r) {
      this._map = null, this._buf = "", this._str = "", this._appendCount = 0, this._last = 0, this._queue = [], this._queueCursor = 0, this._canMarkIdName = !0, this._position = {
        line: 1,
        column: 0
      }, this._sourcePosition = {
        identifierName: void 0,
        identifierNamePos: void 0,
        line: void 0,
        column: void 0,
        filename: void 0
      }, this._map = r, this._allocQueue();
    }
    _allocQueue() {
      const r = this._queue;
      for (let i = 0; i < 16; i++)
        r.push({
          char: 0,
          repeat: 1,
          line: void 0,
          column: void 0,
          identifierName: void 0,
          identifierNamePos: void 0,
          filename: ""
        });
    }
    _pushQueue(r, i, n, s, a) {
      const o = this._queueCursor;
      o === this._queue.length && this._allocQueue();
      const l = this._queue[o];
      l.char = r, l.repeat = i, l.line = n, l.column = s, l.filename = a, this._queueCursor++;
    }
    _popQueue() {
      if (this._queueCursor === 0)
        throw new Error("Cannot pop from empty queue");
      return this._queue[--this._queueCursor];
    }
    get() {
      this._flush();
      const r = this._map, i = {
        code: (this._buf + this._str).trimRight(),
        decodedMap: r == null ? void 0 : r.getDecoded(),
        get __mergedMap() {
          return this.map;
        },
        get map() {
          const n = r ? r.get() : null;
          return i.map = n, n;
        },
        set map(n) {
          Object.defineProperty(i, "map", {
            value: n,
            writable: !0
          });
        },
        get rawMappings() {
          const n = r == null ? void 0 : r.getRawMappings();
          return i.rawMappings = n, n;
        },
        set rawMappings(n) {
          Object.defineProperty(i, "rawMappings", {
            value: n,
            writable: !0
          });
        }
      };
      return i;
    }
    append(r, i) {
      this._flush(), this._append(r, this._sourcePosition, i);
    }
    appendChar(r) {
      this._flush(), this._appendChar(r, 1, this._sourcePosition);
    }
    queue(r) {
      if (r === 10)
        for (; this._queueCursor !== 0; ) {
          const n = this._queue[this._queueCursor - 1].char;
          if (n !== 32 && n !== 9)
            break;
          this._queueCursor--;
        }
      const i = this._sourcePosition;
      this._pushQueue(r, 1, i.line, i.column, i.filename);
    }
    queueIndentation(r, i) {
      this._pushQueue(r, i, void 0, void 0, void 0);
    }
    _flush() {
      const r = this._queueCursor, i = this._queue;
      for (let n = 0; n < r; n++) {
        const s = i[n];
        this._appendChar(s.char, s.repeat, s);
      }
      this._queueCursor = 0;
    }
    _appendChar(r, i, n) {
      this._last = r, this._str += i > 1 ? String.fromCharCode(r).repeat(i) : String.fromCharCode(r), r !== 10 ? (this._mark(n.line, n.column, n.identifierName, n.identifierNamePos, n.filename), this._position.column += i) : (this._position.line++, this._position.column = 0), this._canMarkIdName && (n.identifierName = void 0, n.identifierNamePos = void 0);
    }
    _append(r, i, n) {
      const s = r.length, a = this._position;
      if (this._last = r.charCodeAt(s - 1), ++this._appendCount > 4096 ? (+this._str, this._buf += this._str, this._str = r, this._appendCount = 0) : this._str += r, !n && !this._map) {
        a.column += s;
        return;
      }
      const {
        column: o,
        identifierName: l,
        identifierNamePos: u,
        filename: c
      } = i;
      let f = i.line;
      (l != null || u != null) && this._canMarkIdName && (i.identifierName = void 0, i.identifierNamePos = void 0);
      let h = r.indexOf("\n"), m = 0;
      for (h !== 0 && this._mark(f, o, l, u, c); h !== -1; )
        a.line++, a.column = 0, m = h + 1, m < s && f !== void 0 && this._mark(++f, 0, null, null, c), h = r.indexOf("\n", m);
      a.column += s - m;
    }
    _mark(r, i, n, s, a) {
      var o;
      (o = this._map) == null || o.mark(this._position, r, i, n, s, a);
    }
    removeTrailingNewline() {
      const r = this._queueCursor;
      r !== 0 && this._queue[r - 1].char === 10 && this._queueCursor--;
    }
    removeLastSemicolon() {
      const r = this._queueCursor;
      r !== 0 && this._queue[r - 1].char === 59 && this._queueCursor--;
    }
    getLastChar() {
      const r = this._queueCursor;
      return r !== 0 ? this._queue[r - 1].char : this._last;
    }
    getNewlineCount() {
      const r = this._queueCursor;
      let i = 0;
      if (r === 0)
        return this._last === 10 ? 1 : 0;
      for (let n = r - 1; n >= 0 && this._queue[n].char === 10; n--)
        i++;
      return i === r && this._last === 10 ? i + 1 : i;
    }
    endsWithCharAndNewline() {
      const r = this._queue, i = this._queueCursor;
      if (i !== 0)
        return r[i - 1].char !== 10 ? void 0 : i > 1 ? r[i - 2].char : this._last;
    }
    hasContent() {
      return this._queueCursor !== 0 || !!this._last;
    }
    exactSource(r, i) {
      if (!this._map) {
        i();
        return;
      }
      this.source("start", r);
      const n = r.identifierName, s = this._sourcePosition;
      n && (this._canMarkIdName = !1, s.identifierName = n), i(), n && (this._canMarkIdName = !0, s.identifierName = void 0, s.identifierNamePos = void 0), this.source("end", r);
    }
    source(r, i) {
      this._map && this._normalizePosition(r, i, 0, 0);
    }
    sourceWithOffset(r, i, n, s) {
      this._map && this._normalizePosition(r, i, n, s);
    }
    withSource(r, i, n) {
      this._map && this.source(r, i), n();
    }
    _normalizePosition(r, i, n, s) {
      const a = i[r], o = this._sourcePosition;
      a && (o.line = a.line + n, o.column = a.column + s, o.filename = i.filename);
    }
    getCurrentColumn() {
      const r = this._queue, i = this._queueCursor;
      let n = -1, s = 0;
      for (let a = 0; a < i; a++) {
        const o = r[a];
        o.char === 10 && (n = s), s += o.repeat;
      }
      return n === -1 ? this._position.column + s : s - 1 - n;
    }
    getCurrentLine() {
      let r = 0;
      const i = this._queue;
      for (let n = 0; n < this._queueCursor; n++)
        i[n].char === 10 && r++;
      return this._position.line + r;
    }
  }
  return Rb.default = e, Rb;
}
var sd = {}, Bb = {}, bY;
function fst() {
  if (bY)
    return Bb;
  bY = 1, Object.defineProperty(Bb, "__esModule", {
    value: !0
  }), Bb.nodes = void 0;
  var e = sn();
  const {
    FLIPPED_ALIAS_KEYS: t,
    isArrayExpression: r,
    isAssignmentExpression: i,
    isBinary: n,
    isBlockStatement: s,
    isCallExpression: a,
    isFunction: o,
    isIdentifier: l,
    isLiteral: u,
    isMemberExpression: c,
    isObjectExpression: f,
    isOptionalCallExpression: h,
    isOptionalMemberExpression: m,
    isStringLiteral: g
  } = e;
  function y(x, C) {
    return x && (c(x) || m(x) ? (y(x.object, C), x.computed && y(x.property, C)) : n(x) || i(x) ? (y(x.left, C), y(x.right, C)) : a(x) || h(x) ? (C.hasCall = !0, y(x.callee, C)) : o(x) ? C.hasFunction = !0 : l(x) && (C.hasHelper = C.hasHelper || x.callee && T(x.callee))), C;
  }
  function v(x) {
    return y(x, {
      hasCall: !1,
      hasFunction: !1,
      hasHelper: !1
    });
  }
  function T(x) {
    return x ? c(x) ? T(x.object) || T(x.property) : l(x) ? x.name === "require" || x.name.charCodeAt(0) === 95 : a(x) ? T(x.callee) : n(x) || i(x) ? l(x.left) && T(x.left) || T(x.right) : !1 : !1;
  }
  function S(x) {
    return u(x) || f(x) || r(x) || l(x) || c(x);
  }
  const P = {
    AssignmentExpression(x) {
      const C = v(x.right);
      if (C.hasCall && C.hasHelper || C.hasFunction)
        return C.hasFunction ? 3 : 2;
    },
    SwitchCase(x, C) {
      return (x.consequent.length || C.cases[0] === x ? 1 : 0) | (!x.consequent.length && C.cases[C.cases.length - 1] === x ? 2 : 0);
    },
    LogicalExpression(x) {
      if (o(x.left) || o(x.right))
        return 2;
    },
    Literal(x) {
      if (g(x) && x.value === "use strict")
        return 2;
    },
    CallExpression(x) {
      if (o(x.callee) || T(x))
        return 3;
    },
    OptionalCallExpression(x) {
      if (o(x.callee))
        return 3;
    },
    VariableDeclaration(x) {
      for (let C = 0; C < x.declarations.length; C++) {
        const D = x.declarations[C];
        let w = T(D.id) && !S(D.init);
        if (!w && D.init) {
          const A = v(D.init);
          w = T(D.init) && A.hasCall || A.hasFunction;
        }
        if (w)
          return 3;
      }
    },
    IfStatement(x) {
      if (s(x.consequent))
        return 3;
    }
  };
  return Bb.nodes = P, P.ObjectProperty = P.ObjectTypeProperty = P.ObjectMethod = function(x, C) {
    if (C.properties[0] === x)
      return 1;
  }, P.ObjectTypeCallProperty = function(x, C) {
    var D;
    if (C.callProperties[0] === x && !((D = C.properties) != null && D.length))
      return 1;
  }, P.ObjectTypeIndexer = function(x, C) {
    var D, w;
    if (C.indexers[0] === x && !((D = C.properties) != null && D.length) && !((w = C.callProperties) != null && w.length))
      return 1;
  }, P.ObjectTypeInternalSlot = function(x, C) {
    var D, w, A;
    if (C.internalSlots[0] === x && !((D = C.properties) != null && D.length) && !((w = C.callProperties) != null && w.length) && !((A = C.indexers) != null && A.length))
      return 1;
  }, [["Function", !0], ["Class", !0], ["Loop", !0], ["LabeledStatement", !0], ["SwitchStatement", !0], ["TryStatement", !0]].forEach(function([x, C]) {
    [x].concat(t[x] || []).forEach(function(D) {
      const w = C ? 3 : 0;
      P[D] = () => w;
    });
  }), Bb;
}
var hi = {}, vY;
function hst() {
  if (vY)
    return hi;
  vY = 1, Object.defineProperty(hi, "__esModule", {
    value: !0
  }), hi.ArrowFunctionExpression = U, hi.AssignmentExpression = ft, hi.Binary = ze, hi.BinaryExpression = pe, hi.ClassExpression = Q, hi.ConditionalExpression = Ee, hi.DoExpression = Te, hi.FunctionExpression = ce, hi.FunctionTypeAnnotation = te, hi.Identifier = Rt, hi.LogicalExpression = ht, hi.NullableTypeAnnotation = oe, hi.ObjectExpression = re, hi.OptionalIndexedAccessType = pt, hi.OptionalCallExpression = hi.OptionalMemberExpression = Qe, hi.SequenceExpression = $e, hi.TSTypeAssertion = hi.TSSatisfiesExpression = hi.TSAsExpression = ut, hi.TSInferType = vt, hi.TSInstantiationExpression = ge, hi.TSIntersectionType = hi.TSUnionType = bt, hi.UnaryLike = X, hi.IntersectionTypeAnnotation = hi.UnionTypeAnnotation = Ze, hi.UpdateExpression = se, hi.AwaitExpression = hi.YieldExpression = ie;
  var e = sn();
  const {
    isArrayTypeAnnotation: t,
    isArrowFunctionExpression: r,
    isAssignmentExpression: i,
    isAwaitExpression: n,
    isBinary: s,
    isBinaryExpression: a,
    isUpdateExpression: o,
    isCallExpression: l,
    isClass: u,
    isClassExpression: c,
    isConditional: f,
    isConditionalExpression: h,
    isExportDeclaration: m,
    isExportDefaultDeclaration: g,
    isExpressionStatement: y,
    isFor: v,
    isForInStatement: T,
    isForOfStatement: S,
    isForStatement: P,
    isFunctionExpression: x,
    isIfStatement: C,
    isIndexedAccessType: D,
    isIntersectionTypeAnnotation: w,
    isLogicalExpression: A,
    isMemberExpression: I,
    isNewExpression: L,
    isNullableTypeAnnotation: O,
    isObjectPattern: F,
    isOptionalCallExpression: q,
    isOptionalMemberExpression: j,
    isReturnStatement: N,
    isSequenceExpression: M,
    isSwitchStatement: R,
    isTSArrayType: $,
    isTSAsExpression: V,
    isTSInstantiationExpression: K,
    isTSIntersectionType: z,
    isTSNonNullExpression: W,
    isTSOptionalType: Y,
    isTSRestType: G,
    isTSTypeAssertion: le,
    isTSUnionType: ne,
    isTaggedTemplateExpression: ae,
    isThrowStatement: be,
    isTypeAnnotation: ye,
    isUnaryLike: fe,
    isUnionTypeAnnotation: Z,
    isVariableDeclarator: ue,
    isWhileStatement: me,
    isYieldExpression: xe,
    isTSSatisfiesExpression: Pe
  } = e, ve = {
    "||": 0,
    "??": 0,
    "|>": 0,
    "&&": 1,
    "|": 2,
    "^": 3,
    "&": 4,
    "==": 5,
    "===": 5,
    "!=": 5,
    "!==": 5,
    "<": 6,
    ">": 6,
    "<=": 6,
    ">=": 6,
    in: 6,
    instanceof: 6,
    ">>": 7,
    "<<": 7,
    ">>>": 7,
    "+": 8,
    "-": 8,
    "*": 9,
    "/": 9,
    "%": 9,
    "**": 10
  };
  function Xe(Tt) {
    return V(Tt) || Pe(Tt) || le(Tt);
  }
  const st = (Tt, lt) => u(lt, {
    superClass: Tt
  }), Se = (Tt, lt) => (I(lt) || j(lt)) && lt.object === Tt || (l(lt) || q(lt) || L(lt)) && lt.callee === Tt || ae(lt) && lt.tag === Tt || W(lt);
  function oe(Tt, lt) {
    return t(lt);
  }
  function te(Tt, lt, lr) {
    if (!(lr.length < 3))
      return Z(lt) || w(lt) || t(lt) || ye(lt) && r(lr[lr.length - 3]);
  }
  function se(Tt, lt) {
    return Se(Tt, lt) || st(Tt, lt);
  }
  function re(Tt, lt, lr) {
    return Ot(lr, 3);
  }
  function Te(Tt, lt, lr) {
    return !Tt.async && Ot(lr, 1);
  }
  function ze(Tt, lt) {
    if (Tt.operator === "**" && a(lt, {
      operator: "**"
    }))
      return lt.left === Tt;
    if (st(Tt, lt) || Se(Tt, lt) || fe(lt) || n(lt))
      return !0;
    if (s(lt)) {
      const lr = lt.operator, kr = ve[lr], Ai = Tt.operator, an = ve[Ai];
      if (kr === an && lt.right === Tt && !A(lt) || kr > an)
        return !0;
    }
  }
  function Ze(Tt, lt) {
    return t(lt) || O(lt) || w(lt) || Z(lt);
  }
  function pt(Tt, lt) {
    return D(lt, {
      objectType: Tt
    });
  }
  function ut() {
    return !0;
  }
  function bt(Tt, lt) {
    return $(lt) || Y(lt) || z(lt) || ne(lt) || G(lt);
  }
  function vt(Tt, lt) {
    return $(lt) || Y(lt);
  }
  function ge(Tt, lt) {
    return (l(lt) || q(lt) || L(lt) || K(lt)) && !!lt.typeParameters;
  }
  function pe(Tt, lt) {
    return Tt.operator === "in" && (ue(lt) || v(lt));
  }
  function $e(Tt, lt) {
    return !(P(lt) || be(lt) || N(lt) || C(lt) && lt.test === Tt || me(lt) && lt.test === Tt || T(lt) && lt.right === Tt || R(lt) && lt.discriminant === Tt || y(lt) && lt.expression === Tt);
  }
  function ie(Tt, lt) {
    return s(lt) || fe(lt) || Se(Tt, lt) || n(lt) && xe(Tt) || h(lt) && Tt === lt.test || st(Tt, lt);
  }
  function Q(Tt, lt, lr) {
    return Ot(lr, 5);
  }
  function X(Tt, lt) {
    return Se(Tt, lt) || a(lt, {
      operator: "**",
      left: Tt
    }) || st(Tt, lt);
  }
  function ce(Tt, lt, lr) {
    return Ot(lr, 5);
  }
  function U(Tt, lt) {
    return m(lt) || Ee(Tt, lt);
  }
  function Ee(Tt, lt) {
    return fe(lt) || s(lt) || h(lt, {
      test: Tt
    }) || n(lt) || Xe(lt) ? !0 : X(Tt, lt);
  }
  function Qe(Tt, lt) {
    return l(lt, {
      callee: Tt
    }) || I(lt, {
      object: Tt
    });
  }
  function ft(Tt, lt) {
    return F(Tt.left) ? !0 : Ee(Tt, lt);
  }
  function ht(Tt, lt) {
    if (Xe(lt))
      return !0;
    switch (Tt.operator) {
      case "||":
        return A(lt) ? lt.operator === "??" || lt.operator === "&&" : !1;
      case "&&":
        return A(lt, {
          operator: "??"
        });
      case "??":
        return A(lt) && lt.operator !== "??";
    }
  }
  function Rt(Tt, lt, lr) {
    var kr;
    if ((kr = Tt.extra) != null && kr.parenthesized && i(lt, {
      left: Tt
    }) && (x(lt.right) || c(lt.right)) && lt.right.id == null)
      return !0;
    if (Tt.name === "let") {
      const Ai = I(lt, {
        object: Tt,
        computed: !0
      }) || j(lt, {
        object: Tt,
        computed: !0,
        optional: !1
      });
      return Ot(lr, Ai ? 57 : 32);
    }
    return Tt.name === "async" && S(lt) && Tt === lt.left;
  }
  function Ot(Tt, lt) {
    const lr = lt & 1, kr = lt & 2, Ai = lt & 4, an = lt & 8, Nn = lt & 16, on = lt & 32;
    let _n = Tt.length - 1;
    if (_n <= 0)
      return;
    let en = Tt[_n];
    _n--;
    let bi = Tt[_n];
    for (; _n >= 0; ) {
      if (lr && y(bi, {
        expression: en
      }) || Ai && g(bi, {
        declaration: en
      }) || kr && r(bi, {
        body: en
      }) || an && P(bi, {
        init: en
      }) || Nn && T(bi, {
        left: en
      }) || on && S(bi, {
        left: en
      }))
        return !0;
      if (_n > 0 && (Se(en, bi) && !L(bi) || M(bi) && bi.expressions[0] === en || o(bi) && !bi.prefix || f(bi, {
        test: en
      }) || s(bi, {
        left: en
      }) || i(bi, {
        left: en
      })))
        en = bi, _n--, bi = Tt[_n];
      else
        return !1;
    }
    return !1;
  }
  return hi;
}
var TY;
function rde() {
  if (TY)
    return sd;
  TY = 1, Object.defineProperty(sd, "__esModule", {
    value: !0
  }), sd.needsParens = v, sd.needsWhitespace = m, sd.needsWhitespaceAfter = y, sd.needsWhitespaceBefore = g;
  var e = fst(), t = hst(), r = sn();
  const {
    FLIPPED_ALIAS_KEYS: i,
    isCallExpression: n,
    isExpressionStatement: s,
    isMemberExpression: a,
    isNewExpression: o
  } = r;
  function l(T) {
    const S = {};
    function P(x, C) {
      const D = S[x];
      S[x] = D ? function(w, A, I) {
        const L = D(w, A, I);
        return L == null ? C(w, A, I) : L;
      } : C;
    }
    for (const x of Object.keys(T)) {
      const C = i[x];
      if (C)
        for (const D of C)
          P(D, T[x]);
      else
        P(x, T[x]);
    }
    return S;
  }
  const u = l(t), c = l(e.nodes);
  function f(T, S, P, x) {
    const C = T[S.type];
    return C ? C(S, P, x) : null;
  }
  function h(T) {
    return n(T) ? !0 : a(T) && h(T.object);
  }
  function m(T, S, P) {
    if (!T)
      return !1;
    s(T) && (T = T.expression);
    const x = f(c, T, S);
    return typeof x == "number" ? (x & P) !== 0 : !1;
  }
  function g(T, S) {
    return m(T, S, 1);
  }
  function y(T, S) {
    return m(T, S, 2);
  }
  function v(T, S, P) {
    return S ? o(S) && S.callee === T && h(T) ? !0 : f(u, T, S, P) : !1;
  }
  return sd;
}
var _R = {}, Rm = {}, SY;
function dst() {
  if (SY)
    return Rm;
  SY = 1, Object.defineProperty(Rm, "__esModule", {
    value: !0
  }), Rm.TaggedTemplateExpression = e, Rm.TemplateElement = t, Rm.TemplateLiteral = r;
  function e(i) {
    this.print(i.tag, i), this.print(i.typeParameters, i), this.print(i.quasi, i);
  }
  function t(i, n) {
    const s = n.quasis[0] === i, a = n.quasis[n.quasis.length - 1] === i, o = (s ? "`" : "}") + i.value.raw + (a ? "`" : "${");
    this.token(o, !0);
  }
  function r(i) {
    const n = i.quasis;
    for (let s = 0; s < n.length; s++)
      this.print(n[s], i), s + 1 < n.length && this.print(i.expressions[s], i);
  }
  return Rm;
}
var vi = {}, xY;
function mst() {
  if (xY)
    return vi;
  xY = 1, Object.defineProperty(vi, "__esModule", {
    value: !0
  }), vi.LogicalExpression = vi.BinaryExpression = vi.AssignmentExpression = F, vi.AssignmentPattern = O, vi.AwaitExpression = w, vi.BindExpression = q, vi.CallExpression = C, vi.ConditionalExpression = c, vi.Decorator = S, vi.DoExpression = o, vi.EmptyStatement = I, vi.ExpressionStatement = L, vi.Import = D, vi.MemberExpression = j, vi.MetaProperty = N, vi.ModuleExpression = $, vi.NewExpression = f, vi.OptionalCallExpression = x, vi.OptionalMemberExpression = P, vi.ParenthesizedExpression = l, vi.PrivateName = M, vi.SequenceExpression = h, vi.Super = g, vi.ThisExpression = m, vi.UnaryExpression = a, vi.UpdateExpression = u, vi.V8IntrinsicIdentifier = R, vi.YieldExpression = A, vi._shouldPrintDecoratorsBeforeExport = T;
  var e = sn(), t = rde();
  const {
    isCallExpression: r,
    isLiteral: i,
    isMemberExpression: n,
    isNewExpression: s
  } = e;
  function a(V) {
    const {
      operator: K
    } = V;
    K === "void" || K === "delete" || K === "typeof" || K === "throw" ? (this.word(K), this.space()) : this.token(K), this.print(V.argument, V);
  }
  function o(V) {
    V.async && (this.word("async", !0), this.space()), this.word("do"), this.space(), this.print(V.body, V);
  }
  function l(V) {
    this.tokenChar(40), this.print(V.expression, V), this.rightParens(V);
  }
  function u(V) {
    V.prefix ? (this.token(V.operator), this.print(V.argument, V)) : (this.printTerminatorless(V.argument, V, !0), this.token(V.operator));
  }
  function c(V) {
    this.print(V.test, V), this.space(), this.tokenChar(63), this.space(), this.print(V.consequent, V), this.space(), this.tokenChar(58), this.space(), this.print(V.alternate, V);
  }
  function f(V, K) {
    this.word("new"), this.space(), this.print(V.callee, V), !(this.format.minified && V.arguments.length === 0 && !V.optional && !r(K, {
      callee: V
    }) && !n(K) && !s(K)) && (this.print(V.typeArguments, V), this.print(V.typeParameters, V), V.optional && this.token("?."), this.tokenChar(40), this.printList(V.arguments, V), this.rightParens(V));
  }
  function h(V) {
    this.printList(V.expressions, V);
  }
  function m() {
    this.word("this");
  }
  function g() {
    this.word("super");
  }
  function y(V) {
    switch (V.type) {
      case "Identifier":
        return !0;
      case "MemberExpression":
        return !V.computed && V.property.type === "Identifier" && y(V.object);
      default:
        return !1;
    }
  }
  function v(V) {
    return V.type === "ParenthesizedExpression" ? !1 : !y(V.type === "CallExpression" ? V.callee : V);
  }
  function T(V) {
    return typeof this.format.decoratorsBeforeExport == "boolean" ? this.format.decoratorsBeforeExport : typeof V.start == "number" && V.start === V.declaration.start;
  }
  function S(V) {
    this.tokenChar(64);
    const {
      expression: K
    } = V;
    v(K) ? (this.tokenChar(40), this.print(K, V), this.tokenChar(41)) : this.print(K, V), this.newline();
  }
  function P(V) {
    let {
      computed: K
    } = V;
    const {
      optional: z,
      property: W
    } = V;
    if (this.print(V.object, V), !K && n(W))
      throw new TypeError("Got a MemberExpression for MemberExpression property");
    i(W) && typeof W.value == "number" && (K = !0), z && this.token("?."), K ? (this.tokenChar(91), this.print(W, V), this.tokenChar(93)) : (z || this.tokenChar(46), this.print(W, V));
  }
  function x(V) {
    this.print(V.callee, V), this.print(V.typeParameters, V), V.optional && this.token("?."), this.print(V.typeArguments, V), this.tokenChar(40), this.printList(V.arguments, V), this.rightParens(V);
  }
  function C(V) {
    this.print(V.callee, V), this.print(V.typeArguments, V), this.print(V.typeParameters, V), this.tokenChar(40), this.printList(V.arguments, V), this.rightParens(V);
  }
  function D() {
    this.word("import");
  }
  function w(V) {
    this.word("await"), V.argument && (this.space(), this.printTerminatorless(V.argument, V, !1));
  }
  function A(V) {
    this.word("yield", !0), V.delegate ? (this.tokenChar(42), V.argument && (this.space(), this.print(V.argument, V))) : V.argument && (this.space(), this.printTerminatorless(V.argument, V, !1));
  }
  function I() {
    this.semicolon(!0);
  }
  function L(V) {
    this.print(V.expression, V), this.semicolon();
  }
  function O(V) {
    this.print(V.left, V), V.left.optional && this.tokenChar(63), this.print(V.left.typeAnnotation, V), this.space(), this.tokenChar(61), this.space(), this.print(V.right, V);
  }
  function F(V, K) {
    const z = this.inForStatementInitCounter && V.operator === "in" && !t.needsParens(V, K);
    z && this.tokenChar(40), this.print(V.left, V), this.space(), V.operator === "in" || V.operator === "instanceof" ? this.word(V.operator) : this.token(V.operator), this.space(), this.print(V.right, V), z && this.tokenChar(41);
  }
  function q(V) {
    this.print(V.object, V), this.token("::"), this.print(V.callee, V);
  }
  function j(V) {
    if (this.print(V.object, V), !V.computed && n(V.property))
      throw new TypeError("Got a MemberExpression for MemberExpression property");
    let K = V.computed;
    i(V.property) && typeof V.property.value == "number" && (K = !0), K ? (this.tokenChar(91), this.print(V.property, V), this.tokenChar(93)) : (this.tokenChar(46), this.print(V.property, V));
  }
  function N(V) {
    this.print(V.meta, V), this.tokenChar(46), this.print(V.property, V);
  }
  function M(V) {
    this.tokenChar(35), this.print(V.id, V);
  }
  function R(V) {
    this.tokenChar(37), this.word(V.name);
  }
  function $(V) {
    this.word("module", !0), this.space(), this.tokenChar(123), this.indent();
    const {
      body: K
    } = V;
    (K.body.length || K.directives.length) && this.newline(), this.print(K, V), this.dedent(), this.rightBrace(V);
  }
  return vi;
}
var un = {}, EY;
function yst() {
  if (EY)
    return un;
  EY = 1, Object.defineProperty(un, "__esModule", {
    value: !0
  }), un.BreakStatement = y, un.CatchClause = C, un.ContinueStatement = v, un.DebuggerStatement = A, un.DoWhileStatement = m, un.ForOfStatement = un.ForInStatement = void 0, un.ForStatement = l, un.IfStatement = a, un.LabeledStatement = P, un.ReturnStatement = T, un.SwitchCase = w, un.SwitchStatement = D, un.ThrowStatement = S, un.TryStatement = x, un.VariableDeclaration = I, un.VariableDeclarator = L, un.WhileStatement = u, un.WithStatement = s;
  var e = sn();
  const {
    isFor: t,
    isForStatement: r,
    isIfStatement: i,
    isStatement: n
  } = e;
  function s(O) {
    this.word("with"), this.space(), this.tokenChar(40), this.print(O.object, O), this.tokenChar(41), this.printBlock(O);
  }
  function a(O) {
    this.word("if"), this.space(), this.tokenChar(40), this.print(O.test, O), this.tokenChar(41), this.space();
    const F = O.alternate && i(o(O.consequent));
    F && (this.tokenChar(123), this.newline(), this.indent()), this.printAndIndentOnComments(O.consequent, O), F && (this.dedent(), this.newline(), this.tokenChar(125)), O.alternate && (this.endsWith(125) && this.space(), this.word("else"), this.space(), this.printAndIndentOnComments(O.alternate, O));
  }
  function o(O) {
    const {
      body: F
    } = O;
    return n(F) === !1 ? O : o(F);
  }
  function l(O) {
    this.word("for"), this.space(), this.tokenChar(40), this.inForStatementInitCounter++, this.print(O.init, O), this.inForStatementInitCounter--, this.tokenChar(59), O.test && (this.space(), this.print(O.test, O)), this.tokenChar(59), O.update && (this.space(), this.print(O.update, O)), this.tokenChar(41), this.printBlock(O);
  }
  function u(O) {
    this.word("while"), this.space(), this.tokenChar(40), this.print(O.test, O), this.tokenChar(41), this.printBlock(O);
  }
  function c(O) {
    this.word("for"), this.space();
    const F = O.type === "ForOfStatement";
    F && O.await && (this.word("await"), this.space()), this.noIndentInnerCommentsHere(), this.tokenChar(40), this.print(O.left, O), this.space(), this.word(F ? "of" : "in"), this.space(), this.print(O.right, O), this.tokenChar(41), this.printBlock(O);
  }
  const f = c;
  un.ForInStatement = f;
  const h = c;
  un.ForOfStatement = h;
  function m(O) {
    this.word("do"), this.space(), this.print(O.body, O), this.space(), this.word("while"), this.space(), this.tokenChar(40), this.print(O.test, O), this.tokenChar(41), this.semicolon();
  }
  function g(O, F, q, j) {
    F && (O.space(), O.printTerminatorless(F, q, j)), O.semicolon();
  }
  function y(O) {
    this.word("break"), g(this, O.label, O, !0);
  }
  function v(O) {
    this.word("continue"), g(this, O.label, O, !0);
  }
  function T(O) {
    this.word("return"), g(this, O.argument, O, !1);
  }
  function S(O) {
    this.word("throw"), g(this, O.argument, O, !1);
  }
  function P(O) {
    this.print(O.label, O), this.tokenChar(58), this.space(), this.print(O.body, O);
  }
  function x(O) {
    this.word("try"), this.space(), this.print(O.block, O), this.space(), O.handlers ? this.print(O.handlers[0], O) : this.print(O.handler, O), O.finalizer && (this.space(), this.word("finally"), this.space(), this.print(O.finalizer, O));
  }
  function C(O) {
    this.word("catch"), this.space(), O.param && (this.tokenChar(40), this.print(O.param, O), this.print(O.param.typeAnnotation, O), this.tokenChar(41), this.space()), this.print(O.body, O);
  }
  function D(O) {
    this.word("switch"), this.space(), this.tokenChar(40), this.print(O.discriminant, O), this.tokenChar(41), this.space(), this.tokenChar(123), this.printSequence(O.cases, O, {
      indent: !0,
      addNewlines(F, q) {
        if (!F && O.cases[O.cases.length - 1] === q)
          return -1;
      }
    }), this.rightBrace(O);
  }
  function w(O) {
    O.test ? (this.word("case"), this.space(), this.print(O.test, O), this.tokenChar(58)) : (this.word("default"), this.tokenChar(58)), O.consequent.length && (this.newline(), this.printSequence(O.consequent, O, {
      indent: !0
    }));
  }
  function A() {
    this.word("debugger"), this.semicolon();
  }
  function I(O, F) {
    O.declare && (this.word("declare"), this.space());
    const {
      kind: q
    } = O;
    this.word(q, q === "using" || q === "await using"), this.space();
    let j = !1;
    if (!t(F))
      for (const N of O.declarations)
        N.init && (j = !0);
    if (this.printList(O.declarations, O, {
      separator: j ? function() {
        this.tokenChar(44), this.newline();
      } : void 0,
      indent: O.declarations.length > 1
    }), t(F)) {
      if (r(F)) {
        if (F.init === O)
          return;
      } else if (F.left === O)
        return;
    }
    this.semicolon();
  }
  function L(O) {
    this.print(O.id, O), O.definite && this.tokenChar(33), this.print(O.id.typeAnnotation, O), O.init && (this.space(), this.tokenChar(61), this.space(), this.print(O.init, O));
  }
  return un;
}
var uo = {}, PY;
function gst() {
  if (PY)
    return uo;
  PY = 1, Object.defineProperty(uo, "__esModule", {
    value: !0
  }), uo.ClassAccessorProperty = a, uo.ClassBody = n, uo.ClassExpression = uo.ClassDeclaration = i, uo.ClassMethod = l, uo.ClassPrivateMethod = u, uo.ClassPrivateProperty = o, uo.ClassProperty = s, uo.StaticBlock = f, uo._classMethodHead = c;
  var e = sn();
  const {
    isExportDefaultDeclaration: t,
    isExportNamedDeclaration: r
  } = e;
  function i(h, m) {
    (!(t(m) || r(m)) || !this._shouldPrintDecoratorsBeforeExport(m)) && this.printJoin(h.decorators, h), h.declare && (this.word("declare"), this.space()), h.abstract && (this.word("abstract"), this.space()), this.word("class"), h.id && (this.space(), this.print(h.id, h)), this.print(h.typeParameters, h), h.superClass && (this.space(), this.word("extends"), this.space(), this.print(h.superClass, h), this.print(h.superTypeParameters, h)), h.implements && (this.space(), this.word("implements"), this.space(), this.printList(h.implements, h)), this.space(), this.print(h.body, h);
  }
  function n(h) {
    this.tokenChar(123), h.body.length === 0 ? this.tokenChar(125) : (this.newline(), this.printSequence(h.body, h, {
      indent: !0
    }), this.endsWith(10) || this.newline(), this.rightBrace(h));
  }
  function s(h) {
    var m, g;
    this.printJoin(h.decorators, h);
    const y = (m = h.key.loc) == null || (g = m.end) == null ? void 0 : g.line;
    y && this.catchUp(y), this.tsPrintClassMemberModifiers(h), h.computed ? (this.tokenChar(91), this.print(h.key, h), this.tokenChar(93)) : (this._variance(h), this.print(h.key, h)), h.optional && this.tokenChar(63), h.definite && this.tokenChar(33), this.print(h.typeAnnotation, h), h.value && (this.space(), this.tokenChar(61), this.space(), this.print(h.value, h)), this.semicolon();
  }
  function a(h) {
    var m, g;
    this.printJoin(h.decorators, h);
    const y = (m = h.key.loc) == null || (g = m.end) == null ? void 0 : g.line;
    y && this.catchUp(y), this.tsPrintClassMemberModifiers(h), this.word("accessor", !0), this.space(), h.computed ? (this.tokenChar(91), this.print(h.key, h), this.tokenChar(93)) : (this._variance(h), this.print(h.key, h)), h.optional && this.tokenChar(63), h.definite && this.tokenChar(33), this.print(h.typeAnnotation, h), h.value && (this.space(), this.tokenChar(61), this.space(), this.print(h.value, h)), this.semicolon();
  }
  function o(h) {
    this.printJoin(h.decorators, h), h.static && (this.word("static"), this.space()), this.print(h.key, h), this.print(h.typeAnnotation, h), h.value && (this.space(), this.tokenChar(61), this.space(), this.print(h.value, h)), this.semicolon();
  }
  function l(h) {
    this._classMethodHead(h), this.space(), this.print(h.body, h);
  }
  function u(h) {
    this._classMethodHead(h), this.space(), this.print(h.body, h);
  }
  function c(h) {
    var m, g;
    this.printJoin(h.decorators, h);
    const y = (m = h.key.loc) == null || (g = m.end) == null ? void 0 : g.line;
    y && this.catchUp(y), this.tsPrintClassMemberModifiers(h), this._methodHead(h);
  }
  function f(h) {
    this.word("static"), this.space(), this.tokenChar(123), h.body.length === 0 ? this.tokenChar(125) : (this.newline(), this.printSequence(h.body, h, {
      indent: !0
    }), this.rightBrace(h));
  }
  return uo;
}
var dl = {}, wY;
function bst() {
  if (wY)
    return dl;
  wY = 1, Object.defineProperty(dl, "__esModule", {
    value: !0
  }), dl.ArrowFunctionExpression = u, dl.FunctionDeclaration = dl.FunctionExpression = l, dl._functionHead = o, dl._methodHead = s, dl._param = n, dl._parameters = i, dl._params = r, dl._predicate = a;
  var e = sn();
  const {
    isIdentifier: t
  } = e;
  function r(h, m, g) {
    this.print(h.typeParameters, h);
    const y = f.call(this, m, g);
    y && this.sourceIdentifierName(y.name, y.pos), this.tokenChar(40), this._parameters(h.params, h), this.tokenChar(41);
    const v = h.type === "ArrowFunctionExpression";
    this.print(h.returnType, h, v), this._noLineTerminator = v;
  }
  function i(h, m) {
    const g = h.length;
    for (let y = 0; y < g; y++)
      this._param(h[y], m), y < h.length - 1 && (this.tokenChar(44), this.space());
  }
  function n(h, m) {
    this.printJoin(h.decorators, h), this.print(h, m), h.optional && this.tokenChar(63), this.print(h.typeAnnotation, h);
  }
  function s(h) {
    const m = h.kind, g = h.key;
    (m === "get" || m === "set") && (this.word(m), this.space()), h.async && (this.word("async", !0), this.space()), (m === "method" || m === "init") && h.generator && this.tokenChar(42), h.computed ? (this.tokenChar(91), this.print(g, h), this.tokenChar(93)) : this.print(g, h), h.optional && this.tokenChar(63), this._params(h, h.computed && h.key.type !== "StringLiteral" ? void 0 : h.key, void 0);
  }
  function a(h, m) {
    h.predicate && (h.returnType || this.tokenChar(58), this.space(), this.print(h.predicate, h, m));
  }
  function o(h, m) {
    h.async && (this.word("async"), this._endsWithInnerRaw = !1, this.space()), this.word("function"), h.generator && (this._endsWithInnerRaw = !1, this.tokenChar(42)), this.space(), h.id && this.print(h.id, h), this._params(h, h.id, m), h.type !== "TSDeclareFunction" && this._predicate(h);
  }
  function l(h, m) {
    this._functionHead(h, m), this.space(), this.print(h.body, h);
  }
  function u(h, m) {
    h.async && (this.word("async", !0), this.space());
    let g;
    !this.format.retainLines && h.params.length === 1 && t(g = h.params[0]) && !c(h, g) ? this.print(g, h, !0) : this._params(h, void 0, m), this._predicate(h, !0), this.space(), this.printInnerComments(), this.token("=>"), this.space(), this.print(h.body, h);
  }
  function c(h, m) {
    var g, y;
    return !!(h.typeParameters || h.returnType || h.predicate || m.typeAnnotation || m.optional || (g = m.leadingComments) != null && g.length || (y = m.trailingComments) != null && y.length);
  }
  function f(h, m) {
    let g = h;
    if (!g && m) {
      const x = m.type;
      x === "VariableDeclarator" ? g = m.id : x === "AssignmentExpression" || x === "AssignmentPattern" ? g = m.left : x === "ObjectProperty" || x === "ClassProperty" ? (!m.computed || m.key.type === "StringLiteral") && (g = m.key) : (x === "ClassPrivateProperty" || x === "ClassAccessorProperty") && (g = m.key);
    }
    if (!g)
      return;
    let y;
    if (g.type === "Identifier") {
      var v, T;
      y = {
        pos: (v = g.loc) == null ? void 0 : v.start,
        name: ((T = g.loc) == null ? void 0 : T.identifierName) || g.name
      };
    } else if (g.type === "PrivateName") {
      var S;
      y = {
        pos: (S = g.loc) == null ? void 0 : S.start,
        name: "#" + g.id.name
      };
    } else if (g.type === "StringLiteral") {
      var P;
      y = {
        pos: (P = g.loc) == null ? void 0 : P.start,
        name: g.value
      };
    }
    return y;
  }
  return dl;
}
var Zs = {}, AY;
function ide() {
  if (AY)
    return Zs;
  AY = 1, Object.defineProperty(Zs, "__esModule", {
    value: !0
  }), Zs.ExportAllDeclaration = g, Zs.ExportDefaultDeclaration = T, Zs.ExportDefaultSpecifier = u, Zs.ExportNamedDeclaration = v, Zs.ExportNamespaceSpecifier = f, Zs.ExportSpecifier = c, Zs.ImportAttribute = P, Zs.ImportDeclaration = S, Zs.ImportDefaultSpecifier = l, Zs.ImportNamespaceSpecifier = x, Zs.ImportSpecifier = o, Zs._printAttributes = m;
  var e = sn();
  const {
    isClassDeclaration: t,
    isExportDefaultSpecifier: r,
    isExportNamespaceSpecifier: i,
    isImportDefaultSpecifier: n,
    isImportNamespaceSpecifier: s,
    isStatement: a
  } = e;
  function o(C) {
    (C.importKind === "type" || C.importKind === "typeof") && (this.word(C.importKind), this.space()), this.print(C.imported, C), C.local && C.local.name !== C.imported.name && (this.space(), this.word("as"), this.space(), this.print(C.local, C));
  }
  function l(C) {
    this.print(C.local, C);
  }
  function u(C) {
    this.print(C.exported, C);
  }
  function c(C) {
    C.exportKind === "type" && (this.word("type"), this.space()), this.print(C.local, C), C.exported && C.local.name !== C.exported.name && (this.space(), this.word("as"), this.space(), this.print(C.exported, C));
  }
  function f(C) {
    this.tokenChar(42), this.space(), this.word("as"), this.space(), this.print(C.exported, C);
  }
  let h = !1;
  function m(C) {
    const {
      importAttributesKeyword: D
    } = this.format, {
      attributes: w,
      assertions: A
    } = C;
    w && !D && !h && (h = !0, console.warn('You are using import attributes, without specifying the desired output syntax.\nPlease specify the "importAttributesKeyword" generator option, whose value can be one of:\n - "with"        : `import { a } from "b" with { type: "json" };`\n - "assert"      : `import { a } from "b" assert { type: "json" };`\n - "with-legacy" : `import { a } from "b" with type: "json";`\n'));
    const I = D === "assert" || !D && A;
    if (this.word(I ? "assert" : "with"), this.space(), !I && D !== "with") {
      this.printList(w || A, C);
      return;
    }
    this.tokenChar(123), this.space(), this.printList(w || A, C), this.space(), this.tokenChar(125);
  }
  function g(C) {
    var D, w;
    this.word("export"), this.space(), C.exportKind === "type" && (this.word("type"), this.space()), this.tokenChar(42), this.space(), this.word("from"), this.space(), (D = C.attributes) != null && D.length || (w = C.assertions) != null && w.length ? (this.print(C.source, C, !0), this.space(), this._printAttributes(C)) : this.print(C.source, C), this.semicolon();
  }
  function y(C, D) {
    t(D.declaration) && C._shouldPrintDecoratorsBeforeExport(D) && C.printJoin(D.declaration.decorators, D);
  }
  function v(C) {
    if (y(this, C), this.word("export"), this.space(), C.declaration) {
      const A = C.declaration;
      this.print(A, C), a(A) || this.semicolon();
    } else {
      C.exportKind === "type" && (this.word("type"), this.space());
      const A = C.specifiers.slice(0);
      let I = !1;
      for (; ; ) {
        const L = A[0];
        if (r(L) || i(L))
          I = !0, this.print(A.shift(), C), A.length && (this.tokenChar(44), this.space());
        else
          break;
      }
      if ((A.length || !A.length && !I) && (this.tokenChar(123), A.length && (this.space(), this.printList(A, C), this.space()), this.tokenChar(125)), C.source) {
        var D, w;
        this.space(), this.word("from"), this.space(), (D = C.attributes) != null && D.length || (w = C.assertions) != null && w.length ? (this.print(C.source, C, !0), this.space(), this._printAttributes(C)) : this.print(C.source, C);
      }
      this.semicolon();
    }
  }
  function T(C) {
    y(this, C), this.word("export"), this.noIndentInnerCommentsHere(), this.space(), this.word("default"), this.space();
    const D = C.declaration;
    this.print(D, C), a(D) || this.semicolon();
  }
  function S(C) {
    var D, w;
    this.word("import"), this.space();
    const A = C.importKind === "type" || C.importKind === "typeof";
    A ? (this.noIndentInnerCommentsHere(), this.word(C.importKind), this.space()) : C.module && (this.noIndentInnerCommentsHere(), this.word("module"), this.space());
    const I = C.specifiers.slice(0), L = !!I.length;
    for (; L; ) {
      const O = I[0];
      if (n(O) || s(O))
        this.print(I.shift(), C), I.length && (this.tokenChar(44), this.space());
      else
        break;
    }
    I.length ? (this.tokenChar(123), this.space(), this.printList(I, C), this.space(), this.tokenChar(125)) : A && !L && (this.tokenChar(123), this.tokenChar(125)), (L || A) && (this.space(), this.word("from"), this.space()), (D = C.attributes) != null && D.length || (w = C.assertions) != null && w.length ? (this.print(C.source, C, !0), this.space(), this._printAttributes(C)) : this.print(C.source, C), this.semicolon();
  }
  function P(C) {
    this.print(C.key), this.tokenChar(58), this.space(), this.print(C.value);
  }
  function x(C) {
    this.tokenChar(42), this.space(), this.word("as"), this.space(), this.print(C.local, C);
  }
  return Zs;
}
var Gi = {}, IR, CY;
function nde() {
  if (CY)
    return IR;
  CY = 1;
  const e = {}, t = e.hasOwnProperty, r = (P, x) => {
    for (const C in P)
      t.call(P, C) && x(C, P[C]);
  }, i = (P, x) => (x && r(x, (C, D) => {
    P[C] = D;
  }), P), n = (P, x) => {
    const C = P.length;
    let D = -1;
    for (; ++D < C; )
      x(P[D]);
  }, s = e.toString, a = Array.isArray, o = Buffer.isBuffer, l = (P) => s.call(P) == "[object Object]", u = (P) => typeof P == "string" || s.call(P) == "[object String]", c = (P) => typeof P == "number" || s.call(P) == "[object Number]", f = (P) => typeof P == "function", h = (P) => s.call(P) == "[object Map]", m = (P) => s.call(P) == "[object Set]", g = {
    '"': '\\"',
    "'": "\\'",
    "\\": "\\\\",
    "\b": "\\b",
    "\f": "\\f",
    "\n": "\\n",
    "\r": "\\r",
    "	": "\\t"
    // `\v` is omitted intentionally, because in IE < 9, '\v' == 'v'.
    // '\v': '\\x0B'
  }, y = /["'\\\b\f\n\r\t]/, v = /[0-9]/, T = /[ !#-&\(-\[\]-_a-~]/, S = (P, x) => {
    const C = () => {
      F = O, ++x.indentLevel, O = x.indent.repeat(x.indentLevel);
    }, D = {
      escapeEverything: !1,
      minimal: !1,
      isScriptContext: !1,
      quotes: "single",
      wrap: !1,
      es6: !1,
      json: !1,
      compact: !0,
      lowercaseHex: !1,
      numbers: "decimal",
      indent: "	",
      indentLevel: 0,
      __inline1__: !1,
      __inline2__: !1
    }, w = x && x.json;
    w && (D.quotes = "double", D.wrap = !0), x = i(D, x), x.quotes != "single" && x.quotes != "double" && x.quotes != "backtick" && (x.quotes = "single");
    const A = x.quotes == "double" ? '"' : x.quotes == "backtick" ? "`" : "'", I = x.compact, L = x.lowercaseHex;
    let O = x.indent.repeat(x.indentLevel), F = "";
    const q = x.__inline1__, j = x.__inline2__, N = I ? "" : "\n";
    let M, R = !0;
    const $ = x.numbers == "binary", V = x.numbers == "octal", K = x.numbers == "decimal", z = x.numbers == "hexadecimal";
    if (w && P && f(P.toJSON) && (P = P.toJSON()), !u(P)) {
      if (h(P))
        return P.size == 0 ? "new Map()" : (I || (x.__inline1__ = !0, x.__inline2__ = !1), "new Map(" + S(Array.from(P), x) + ")");
      if (m(P))
        return P.size == 0 ? "new Set()" : "new Set(" + S(Array.from(P), x) + ")";
      if (o(P))
        return P.length == 0 ? "Buffer.from([])" : "Buffer.from(" + S(Array.from(P), x) + ")";
      if (a(P))
        return M = [], x.wrap = !0, q && (x.__inline1__ = !1, x.__inline2__ = !0), j || C(), n(P, (le) => {
          R = !1, j && (x.__inline2__ = !1), M.push(
            (I || j ? "" : O) + S(le, x)
          );
        }), R ? "[]" : j ? "[" + M.join(", ") + "]" : "[" + N + M.join("," + N) + N + (I ? "" : F) + "]";
      if (c(P)) {
        if (w)
          return JSON.stringify(P);
        if (K)
          return String(P);
        if (z) {
          let le = P.toString(16);
          return L || (le = le.toUpperCase()), "0x" + le;
        }
        if ($)
          return "0b" + P.toString(2);
        if (V)
          return "0o" + P.toString(8);
      } else
        return l(P) ? (M = [], x.wrap = !0, C(), r(P, (le, ne) => {
          R = !1, M.push(
            (I ? "" : O) + S(le, x) + ":" + (I ? "" : " ") + S(ne, x)
          );
        }), R ? "{}" : "{" + N + M.join("," + N) + N + (I ? "" : F) + "}") : w ? JSON.stringify(P) || "null" : String(P);
    }
    const W = P;
    let Y = -1;
    const G = W.length;
    for (M = ""; ++Y < G; ) {
      const le = W.charAt(Y);
      if (x.es6) {
        const fe = W.charCodeAt(Y);
        if (
          // check if it’s the start of a surrogate pair
          fe >= 55296 && fe <= 56319 && // high surrogate
          G > Y + 1
        ) {
          const Z = W.charCodeAt(Y + 1);
          if (Z >= 56320 && Z <= 57343) {
            let me = ((fe - 55296) * 1024 + Z - 56320 + 65536).toString(16);
            L || (me = me.toUpperCase()), M += "\\u{" + me + "}", ++Y;
            continue;
          }
        }
      }
      if (!x.escapeEverything) {
        if (T.test(le)) {
          M += le;
          continue;
        }
        if (le == '"') {
          M += A == le ? '\\"' : le;
          continue;
        }
        if (le == "`") {
          M += A == le ? "\\`" : le;
          continue;
        }
        if (le == "'") {
          M += A == le ? "\\'" : le;
          continue;
        }
      }
      if (le == "\0" && !w && !v.test(W.charAt(Y + 1))) {
        M += "\\0";
        continue;
      }
      if (y.test(le)) {
        M += g[le];
        continue;
      }
      const ne = le.charCodeAt(0);
      if (x.minimal && ne != 8232 && ne != 8233) {
        M += le;
        continue;
      }
      let ae = ne.toString(16);
      L || (ae = ae.toUpperCase());
      const be = ae.length > 2 || w, ye = "\\" + (be ? "u" : "x") + ("0000" + ae).slice(be ? -4 : -2);
      M += ye;
    }
    return x.wrap && (M = A + M + A), A == "`" && (M = M.replace(/\$\{/g, "\\${")), x.isScriptContext ? M.replace(/<\/(script|style)/gi, "<\\/$1").replace(/<!--/g, w ? "\\u003C!--" : "\\x3C!--") : M;
  };
  return S.version = "2.5.2", IR = S, IR;
}
var _Y;
function sde() {
  if (_Y)
    return Gi;
  _Y = 1, Object.defineProperty(Gi, "__esModule", {
    value: !0
  }), Gi.ArgumentPlaceholder = s, Gi.ArrayPattern = Gi.ArrayExpression = c, Gi.BigIntLiteral = S, Gi.BooleanLiteral = g, Gi.DecimalLiteral = P, Gi.Identifier = n, Gi.NullLiteral = y, Gi.NumericLiteral = v, Gi.ObjectPattern = Gi.ObjectExpression = o, Gi.ObjectMethod = l, Gi.ObjectProperty = u, Gi.PipelineBareFunction = w, Gi.PipelinePrimaryTopicReference = A, Gi.PipelineTopicExpression = D, Gi.RecordExpression = f, Gi.RegExpLiteral = m, Gi.SpreadElement = Gi.RestElement = a, Gi.StringLiteral = T, Gi.TopicReference = C, Gi.TupleExpression = h;
  var e = sn(), t = nde();
  const {
    isAssignmentPattern: r,
    isIdentifier: i
  } = e;
  function n(I) {
    var L;
    this.sourceIdentifierName(((L = I.loc) == null ? void 0 : L.identifierName) || I.name), this.word(I.name);
  }
  function s() {
    this.tokenChar(63);
  }
  function a(I) {
    this.token("..."), this.print(I.argument, I);
  }
  function o(I) {
    const L = I.properties;
    this.tokenChar(123), L.length && (this.space(), this.printList(L, I, {
      indent: !0,
      statement: !0
    }), this.space()), this.sourceWithOffset("end", I.loc, 0, -1), this.tokenChar(125);
  }
  function l(I) {
    this.printJoin(I.decorators, I), this._methodHead(I), this.space(), this.print(I.body, I);
  }
  function u(I) {
    if (this.printJoin(I.decorators, I), I.computed)
      this.tokenChar(91), this.print(I.key, I), this.tokenChar(93);
    else {
      if (r(I.value) && i(I.key) && I.key.name === I.value.left.name) {
        this.print(I.value, I);
        return;
      }
      if (this.print(I.key, I), I.shorthand && i(I.key) && i(I.value) && I.key.name === I.value.name)
        return;
    }
    this.tokenChar(58), this.space(), this.print(I.value, I);
  }
  function c(I) {
    const L = I.elements, O = L.length;
    this.tokenChar(91);
    for (let F = 0; F < L.length; F++) {
      const q = L[F];
      q ? (F > 0 && this.space(), this.print(q, I), F < O - 1 && this.tokenChar(44)) : this.tokenChar(44);
    }
    this.tokenChar(93);
  }
  function f(I) {
    const L = I.properties;
    let O, F;
    if (this.format.recordAndTupleSyntaxType === "bar")
      O = "{|", F = "|}";
    else {
      if (this.format.recordAndTupleSyntaxType !== "hash" && this.format.recordAndTupleSyntaxType != null)
        throw new Error('The "recordAndTupleSyntaxType" generator option must be "bar" or "hash" ('.concat(JSON.stringify(this.format.recordAndTupleSyntaxType), " received)."));
      O = "#{", F = "}";
    }
    this.token(O), L.length && (this.space(), this.printList(L, I, {
      indent: !0,
      statement: !0
    }), this.space()), this.token(F);
  }
  function h(I) {
    const L = I.elements, O = L.length;
    let F, q;
    if (this.format.recordAndTupleSyntaxType === "bar")
      F = "[|", q = "|]";
    else if (this.format.recordAndTupleSyntaxType === "hash")
      F = "#[", q = "]";
    else
      throw new Error("".concat(this.format.recordAndTupleSyntaxType, " is not a valid recordAndTuple syntax type"));
    this.token(F);
    for (let j = 0; j < L.length; j++) {
      const N = L[j];
      N && (j > 0 && this.space(), this.print(N, I), j < O - 1 && this.tokenChar(44));
    }
    this.token(q);
  }
  function m(I) {
    this.word("/".concat(I.pattern, "/").concat(I.flags));
  }
  function g(I) {
    this.word(I.value ? "true" : "false");
  }
  function y() {
    this.word("null");
  }
  function v(I) {
    const L = this.getPossibleRaw(I), O = this.format.jsescOption, F = I.value + "";
    O.numbers ? this.number(t(I.value, O)) : L == null ? this.number(F) : this.format.minified ? this.number(L.length < F.length ? L : F) : this.number(L);
  }
  function T(I) {
    const L = this.getPossibleRaw(I);
    if (!this.format.minified && L !== void 0) {
      this.token(L);
      return;
    }
    const O = t(I.value, this.format.jsescOption);
    this.token(O);
  }
  function S(I) {
    const L = this.getPossibleRaw(I);
    if (!this.format.minified && L !== void 0) {
      this.word(L);
      return;
    }
    this.word(I.value + "n");
  }
  function P(I) {
    const L = this.getPossibleRaw(I);
    if (!this.format.minified && L !== void 0) {
      this.word(L);
      return;
    }
    this.word(I.value + "m");
  }
  const x = /* @__PURE__ */ new Set(["^^", "@@", "^", "%", "#"]);
  function C() {
    const {
      topicToken: I
    } = this.format;
    if (x.has(I))
      this.token(I);
    else {
      const L = JSON.stringify(I), O = Array.from(x, (F) => JSON.stringify(F));
      throw new Error('The "topicToken" generator option must be one of ' + "".concat(O.join(", "), " (").concat(L, " received instead)."));
    }
  }
  function D(I) {
    this.print(I.expression, I);
  }
  function w(I) {
    this.print(I.callee, I);
  }
  function A() {
    this.tokenChar(35);
  }
  return Gi;
}
var kR = {}, IY;
function vst() {
  return IY || (IY = 1, function(e) {
    Object.defineProperty(e, "__esModule", {
      value: !0
    }), e.AnyTypeAnnotation = a, e.ArrayTypeAnnotation = o, e.BooleanLiteralTypeAnnotation = u, e.BooleanTypeAnnotation = l, e.DeclareClass = f, e.DeclareExportAllDeclaration = D, e.DeclareExportDeclaration = C, e.DeclareFunction = h, e.DeclareInterface = y, e.DeclareModule = v, e.DeclareModuleExports = T, e.DeclareOpaqueType = P, e.DeclareTypeAlias = S, e.DeclareVariable = x, e.DeclaredPredicate = g, e.EmptyTypeAnnotation = Z, e.EnumBooleanBody = L, e.EnumBooleanMember = M, e.EnumDeclaration = w, e.EnumDefaultedMember = j, e.EnumNumberBody = O, e.EnumNumberMember = R, e.EnumStringBody = F, e.EnumStringMember = $, e.EnumSymbolBody = q, e.ExistsTypeAnnotation = K, e.FunctionTypeAnnotation = z, e.FunctionTypeParam = W, e.IndexedAccessType = X, e.InferredPredicate = m, e.InterfaceDeclaration = ne, e.GenericTypeAnnotation = e.ClassImplements = e.InterfaceExtends = Y, e.InterfaceTypeAnnotation = be, e.IntersectionTypeAnnotation = ye, e.MixedTypeAnnotation = fe, e.NullLiteralTypeAnnotation = c, e.NullableTypeAnnotation = ue, Object.defineProperty(e, "NumberLiteralTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return i.NumericLiteral;
      }
    }), e.NumberTypeAnnotation = me, e.ObjectTypeAnnotation = re, e.ObjectTypeCallProperty = ze, e.ObjectTypeIndexer = Ze, e.ObjectTypeInternalSlot = Te, e.ObjectTypeProperty = pt, e.ObjectTypeSpreadProperty = ut, e.OpaqueType = se, e.OptionalIndexedAccessType = ce, e.QualifiedTypeIdentifier = bt, Object.defineProperty(e, "StringLiteralTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return i.StringLiteral;
      }
    }), e.StringTypeAnnotation = xe, e.SymbolTypeAnnotation = vt, e.ThisTypeAnnotation = Pe, e.TupleTypeAnnotation = ve, e.TypeAlias = st, e.TypeAnnotation = Se, e.TypeCastExpression = $e, e.TypeParameter = te, e.TypeParameterDeclaration = e.TypeParameterInstantiation = oe, e.TypeofTypeAnnotation = Xe, e.UnionTypeAnnotation = pe, e.Variance = ie, e.VoidTypeAnnotation = Q, e._interfaceish = G, e._variance = le;
    var t = sn(), r = ide(), i = sde();
    const {
      isDeclareExportDeclaration: n,
      isStatement: s
    } = t;
    function a() {
      this.word("any");
    }
    function o(U) {
      this.print(U.elementType, U, !0), this.tokenChar(91), this.tokenChar(93);
    }
    function l() {
      this.word("boolean");
    }
    function u(U) {
      this.word(U.value ? "true" : "false");
    }
    function c() {
      this.word("null");
    }
    function f(U, Ee) {
      n(Ee) || (this.word("declare"), this.space()), this.word("class"), this.space(), this._interfaceish(U);
    }
    function h(U, Ee) {
      n(Ee) || (this.word("declare"), this.space()), this.word("function"), this.space(), this.print(U.id, U), this.print(U.id.typeAnnotation.typeAnnotation, U), U.predicate && (this.space(), this.print(U.predicate, U)), this.semicolon();
    }
    function m() {
      this.tokenChar(37), this.word("checks");
    }
    function g(U) {
      this.tokenChar(37), this.word("checks"), this.tokenChar(40), this.print(U.value, U), this.tokenChar(41);
    }
    function y(U) {
      this.word("declare"), this.space(), this.InterfaceDeclaration(U);
    }
    function v(U) {
      this.word("declare"), this.space(), this.word("module"), this.space(), this.print(U.id, U), this.space(), this.print(U.body, U);
    }
    function T(U) {
      this.word("declare"), this.space(), this.word("module"), this.tokenChar(46), this.word("exports"), this.print(U.typeAnnotation, U);
    }
    function S(U) {
      this.word("declare"), this.space(), this.TypeAlias(U);
    }
    function P(U, Ee) {
      n(Ee) || (this.word("declare"), this.space()), this.OpaqueType(U);
    }
    function x(U, Ee) {
      n(Ee) || (this.word("declare"), this.space()), this.word("var"), this.space(), this.print(U.id, U), this.print(U.id.typeAnnotation, U), this.semicolon();
    }
    function C(U) {
      this.word("declare"), this.space(), this.word("export"), this.space(), U.default && (this.word("default"), this.space()), V.call(this, U);
    }
    function D(U) {
      this.word("declare"), this.space(), r.ExportAllDeclaration.call(this, U);
    }
    function w(U) {
      const {
        id: Ee,
        body: Qe
      } = U;
      this.word("enum"), this.space(), this.print(Ee, U), this.print(Qe, U);
    }
    function A(U, Ee, Qe) {
      Qe && (U.space(), U.word("of"), U.space(), U.word(Ee)), U.space();
    }
    function I(U, Ee) {
      const {
        members: Qe
      } = Ee;
      U.token("{"), U.indent(), U.newline();
      for (const ft of Qe)
        U.print(ft, Ee), U.newline();
      Ee.hasUnknownMembers && (U.token("..."), U.newline()), U.dedent(), U.token("}");
    }
    function L(U) {
      const {
        explicitType: Ee
      } = U;
      A(this, "boolean", Ee), I(this, U);
    }
    function O(U) {
      const {
        explicitType: Ee
      } = U;
      A(this, "number", Ee), I(this, U);
    }
    function F(U) {
      const {
        explicitType: Ee
      } = U;
      A(this, "string", Ee), I(this, U);
    }
    function q(U) {
      A(this, "symbol", !0), I(this, U);
    }
    function j(U) {
      const {
        id: Ee
      } = U;
      this.print(Ee, U), this.tokenChar(44);
    }
    function N(U, Ee) {
      const {
        id: Qe,
        init: ft
      } = Ee;
      U.print(Qe, Ee), U.space(), U.token("="), U.space(), U.print(ft, Ee), U.token(",");
    }
    function M(U) {
      N(this, U);
    }
    function R(U) {
      N(this, U);
    }
    function $(U) {
      N(this, U);
    }
    function V(U) {
      if (U.declaration) {
        const Ee = U.declaration;
        this.print(Ee, U), s(Ee) || this.semicolon();
      } else
        this.tokenChar(123), U.specifiers.length && (this.space(), this.printList(U.specifiers, U), this.space()), this.tokenChar(125), U.source && (this.space(), this.word("from"), this.space(), this.print(U.source, U)), this.semicolon();
    }
    function K() {
      this.tokenChar(42);
    }
    function z(U, Ee) {
      this.print(U.typeParameters, U), this.tokenChar(40), U.this && (this.word("this"), this.tokenChar(58), this.space(), this.print(U.this.typeAnnotation, U), (U.params.length || U.rest) && (this.tokenChar(44), this.space())), this.printList(U.params, U), U.rest && (U.params.length && (this.tokenChar(44), this.space()), this.token("..."), this.print(U.rest, U)), this.tokenChar(41);
      const Qe = Ee == null ? void 0 : Ee.type;
      Qe != null && (Qe === "ObjectTypeCallProperty" || Qe === "ObjectTypeInternalSlot" || Qe === "DeclareFunction" || Qe === "ObjectTypeProperty" && Ee.method) ? this.tokenChar(58) : (this.space(), this.token("=>")), this.space(), this.print(U.returnType, U);
    }
    function W(U) {
      this.print(U.name, U), U.optional && this.tokenChar(63), U.name && (this.tokenChar(58), this.space()), this.print(U.typeAnnotation, U);
    }
    function Y(U) {
      this.print(U.id, U), this.print(U.typeParameters, U, !0);
    }
    function G(U) {
      var Ee;
      if (this.print(U.id, U), this.print(U.typeParameters, U), (Ee = U.extends) != null && Ee.length && (this.space(), this.word("extends"), this.space(), this.printList(U.extends, U)), U.type === "DeclareClass") {
        var Qe, ft;
        (Qe = U.mixins) != null && Qe.length && (this.space(), this.word("mixins"), this.space(), this.printList(U.mixins, U)), (ft = U.implements) != null && ft.length && (this.space(), this.word("implements"), this.space(), this.printList(U.implements, U));
      }
      this.space(), this.print(U.body, U);
    }
    function le(U) {
      var Ee;
      const Qe = (Ee = U.variance) == null ? void 0 : Ee.kind;
      Qe != null && (Qe === "plus" ? this.tokenChar(43) : Qe === "minus" && this.tokenChar(45));
    }
    function ne(U) {
      this.word("interface"), this.space(), this._interfaceish(U);
    }
    function ae() {
      this.space(), this.tokenChar(38), this.space();
    }
    function be(U) {
      var Ee;
      this.word("interface"), (Ee = U.extends) != null && Ee.length && (this.space(), this.word("extends"), this.space(), this.printList(U.extends, U)), this.space(), this.print(U.body, U);
    }
    function ye(U) {
      this.printJoin(U.types, U, {
        separator: ae
      });
    }
    function fe() {
      this.word("mixed");
    }
    function Z() {
      this.word("empty");
    }
    function ue(U) {
      this.tokenChar(63), this.print(U.typeAnnotation, U);
    }
    function me() {
      this.word("number");
    }
    function xe() {
      this.word("string");
    }
    function Pe() {
      this.word("this");
    }
    function ve(U) {
      this.tokenChar(91), this.printList(U.types, U), this.tokenChar(93);
    }
    function Xe(U) {
      this.word("typeof"), this.space(), this.print(U.argument, U);
    }
    function st(U) {
      this.word("type"), this.space(), this.print(U.id, U), this.print(U.typeParameters, U), this.space(), this.tokenChar(61), this.space(), this.print(U.right, U), this.semicolon();
    }
    function Se(U) {
      this.tokenChar(58), this.space(), U.optional && this.tokenChar(63), this.print(U.typeAnnotation, U);
    }
    function oe(U) {
      this.tokenChar(60), this.printList(U.params, U, {}), this.tokenChar(62);
    }
    function te(U) {
      this._variance(U), this.word(U.name), U.bound && this.print(U.bound, U), U.default && (this.space(), this.tokenChar(61), this.space(), this.print(U.default, U));
    }
    function se(U) {
      this.word("opaque"), this.space(), this.word("type"), this.space(), this.print(U.id, U), this.print(U.typeParameters, U), U.supertype && (this.tokenChar(58), this.space(), this.print(U.supertype, U)), U.impltype && (this.space(), this.tokenChar(61), this.space(), this.print(U.impltype, U)), this.semicolon();
    }
    function re(U) {
      U.exact ? this.token("{|") : this.tokenChar(123);
      const Ee = [...U.properties, ...U.callProperties || [], ...U.indexers || [], ...U.internalSlots || []];
      Ee.length && (this.newline(), this.space(), this.printJoin(Ee, U, {
        addNewlines(Qe) {
          if (Qe && !Ee[0])
            return 1;
        },
        indent: !0,
        statement: !0,
        iterator: () => {
          (Ee.length !== 1 || U.inexact) && (this.tokenChar(44), this.space());
        }
      }), this.space()), U.inexact && (this.indent(), this.token("..."), Ee.length && this.newline(), this.dedent()), U.exact ? this.token("|}") : this.tokenChar(125);
    }
    function Te(U) {
      U.static && (this.word("static"), this.space()), this.tokenChar(91), this.tokenChar(91), this.print(U.id, U), this.tokenChar(93), this.tokenChar(93), U.optional && this.tokenChar(63), U.method || (this.tokenChar(58), this.space()), this.print(U.value, U);
    }
    function ze(U) {
      U.static && (this.word("static"), this.space()), this.print(U.value, U);
    }
    function Ze(U) {
      U.static && (this.word("static"), this.space()), this._variance(U), this.tokenChar(91), U.id && (this.print(U.id, U), this.tokenChar(58), this.space()), this.print(U.key, U), this.tokenChar(93), this.tokenChar(58), this.space(), this.print(U.value, U);
    }
    function pt(U) {
      U.proto && (this.word("proto"), this.space()), U.static && (this.word("static"), this.space()), (U.kind === "get" || U.kind === "set") && (this.word(U.kind), this.space()), this._variance(U), this.print(U.key, U), U.optional && this.tokenChar(63), U.method || (this.tokenChar(58), this.space()), this.print(U.value, U);
    }
    function ut(U) {
      this.token("..."), this.print(U.argument, U);
    }
    function bt(U) {
      this.print(U.qualification, U), this.tokenChar(46), this.print(U.id, U);
    }
    function vt() {
      this.word("symbol");
    }
    function ge() {
      this.space(), this.tokenChar(124), this.space();
    }
    function pe(U) {
      this.printJoin(U.types, U, {
        separator: ge
      });
    }
    function $e(U) {
      this.tokenChar(40), this.print(U.expression, U), this.print(U.typeAnnotation, U), this.tokenChar(41);
    }
    function ie(U) {
      U.kind === "plus" ? this.tokenChar(43) : this.tokenChar(45);
    }
    function Q() {
      this.word("void");
    }
    function X(U) {
      this.print(U.objectType, U, !0), this.tokenChar(91), this.print(U.indexType, U), this.tokenChar(93);
    }
    function ce(U) {
      this.print(U.objectType, U), U.optional && this.token("?."), this.tokenChar(91), this.print(U.indexType, U), this.tokenChar(93);
    }
  }(kR)), kR;
}
var Kc = {}, kY;
function Tst() {
  if (kY)
    return Kc;
  kY = 1, Object.defineProperty(Kc, "__esModule", {
    value: !0
  }), Kc.BlockStatement = r, Kc.Directive = i, Kc.DirectiveLiteral = a, Kc.File = e, Kc.InterpreterDirective = o, Kc.Placeholder = l, Kc.Program = t;
  function e(u) {
    u.program && this.print(u.program.interpreter, u), this.print(u.program, u);
  }
  function t(u) {
    var c;
    this.noIndentInnerCommentsHere(), this.printInnerComments();
    const f = (c = u.directives) == null ? void 0 : c.length;
    if (f) {
      var h;
      const m = u.body.length ? 2 : 1;
      this.printSequence(u.directives, u, {
        trailingCommentsLineOffset: m
      }), (h = u.directives[f - 1].trailingComments) != null && h.length || this.newline(m);
    }
    this.printSequence(u.body, u);
  }
  function r(u) {
    var c;
    this.tokenChar(123);
    const f = (c = u.directives) == null ? void 0 : c.length;
    if (f) {
      var h;
      const m = u.body.length ? 2 : 1;
      this.printSequence(u.directives, u, {
        indent: !0,
        trailingCommentsLineOffset: m
      }), (h = u.directives[f - 1].trailingComments) != null && h.length || this.newline(m);
    }
    this.printSequence(u.body, u, {
      indent: !0
    }), this.rightBrace(u);
  }
  function i(u) {
    this.print(u.value, u), this.semicolon();
  }
  const n = /(?:^|[^\\])(?:\\\\)*'/, s = /(?:^|[^\\])(?:\\\\)*"/;
  function a(u) {
    const c = this.getPossibleRaw(u);
    if (!this.format.minified && c !== void 0) {
      this.token(c);
      return;
    }
    const {
      value: f
    } = u;
    if (!s.test(f))
      this.token('"'.concat(f, '"'));
    else if (!n.test(f))
      this.token("'".concat(f, "'"));
    else
      throw new Error("Malformed AST: it is not possible to print a directive containing both unescaped single and double quotes.");
  }
  function o(u) {
    this.token("#!".concat(u.value)), this.newline(1, !0);
  }
  function l(u) {
    this.token("%%"), this.print(u.name), this.token("%%"), u.expectedNode === "Statement" && this.semicolon();
  }
  return Kc;
}
var rs = {}, OY;
function Sst() {
  if (OY)
    return rs;
  OY = 1, Object.defineProperty(rs, "__esModule", {
    value: !0
  }), rs.JSXAttribute = e, rs.JSXClosingElement = f, rs.JSXClosingFragment = y, rs.JSXElement = l, rs.JSXEmptyExpression = h, rs.JSXExpressionContainer = s, rs.JSXFragment = m, rs.JSXIdentifier = t, rs.JSXMemberExpression = i, rs.JSXNamespacedName = r, rs.JSXOpeningElement = c, rs.JSXOpeningFragment = g, rs.JSXSpreadAttribute = n, rs.JSXSpreadChild = a, rs.JSXText = o;
  function e(v) {
    this.print(v.name, v), v.value && (this.tokenChar(61), this.print(v.value, v));
  }
  function t(v) {
    this.word(v.name);
  }
  function r(v) {
    this.print(v.namespace, v), this.tokenChar(58), this.print(v.name, v);
  }
  function i(v) {
    this.print(v.object, v), this.tokenChar(46), this.print(v.property, v);
  }
  function n(v) {
    this.tokenChar(123), this.token("..."), this.print(v.argument, v), this.tokenChar(125);
  }
  function s(v) {
    this.tokenChar(123), this.print(v.expression, v), this.tokenChar(125);
  }
  function a(v) {
    this.tokenChar(123), this.token("..."), this.print(v.expression, v), this.tokenChar(125);
  }
  function o(v) {
    const T = this.getPossibleRaw(v);
    T !== void 0 ? this.token(T, !0) : this.token(v.value, !0);
  }
  function l(v) {
    const T = v.openingElement;
    if (this.print(T, v), !T.selfClosing) {
      this.indent();
      for (const S of v.children)
        this.print(S, v);
      this.dedent(), this.print(v.closingElement, v);
    }
  }
  function u() {
    this.space();
  }
  function c(v) {
    this.tokenChar(60), this.print(v.name, v), this.print(v.typeParameters, v), v.attributes.length > 0 && (this.space(), this.printJoin(v.attributes, v, {
      separator: u
    })), v.selfClosing ? (this.space(), this.token("/>")) : this.tokenChar(62);
  }
  function f(v) {
    this.token("</"), this.print(v.name, v), this.tokenChar(62);
  }
  function h() {
    this.printInnerComments();
  }
  function m(v) {
    this.print(v.openingFragment, v), this.indent();
    for (const T of v.children)
      this.print(T, v);
    this.dedent(), this.print(v.closingFragment, v);
  }
  function g() {
    this.tokenChar(60), this.tokenChar(62);
  }
  function y() {
    this.token("</"), this.tokenChar(62);
  }
  return rs;
}
var Ut = {}, NY;
function xst() {
  if (NY)
    return Ut;
  NY = 1, Object.defineProperty(Ut, "__esModule", {
    value: !0
  }), Ut.TSAnyKeyword = m, Ut.TSArrayType = K, Ut.TSSatisfiesExpression = Ut.TSAsExpression = oe, Ut.TSBigIntKeyword = g, Ut.TSBooleanKeyword = S, Ut.TSCallSignatureDeclaration = o, Ut.TSConditionalType = be, Ut.TSConstructSignatureDeclaration = l, Ut.TSConstructorType = F, Ut.TSDeclareFunction = n, Ut.TSDeclareMethod = s, Ut.TSEnumDeclaration = re, Ut.TSEnumMember = Te, Ut.TSExportAssignment = ge, Ut.TSExpressionWithTypeArguments = ve, Ut.TSExternalModuleReference = bt, Ut.TSFunctionType = O, Ut.TSImportEqualsDeclaration = ut, Ut.TSImportType = pt, Ut.TSIndexSignature = h, Ut.TSIndexedAccessType = ue, Ut.TSInferType = ye, Ut.TSInstantiationExpression = se, Ut.TSInterfaceBody = st, Ut.TSInterfaceDeclaration = Xe, Ut.TSIntersectionType = ne, Ut.TSIntrinsicKeyword = I, Ut.TSLiteralType = Pe, Ut.TSMappedType = me, Ut.TSMethodSignature = f, Ut.TSModuleBlock = Ze, Ut.TSModuleDeclaration = ze, Ut.TSNamedTupleMember = G, Ut.TSNamespaceExportDeclaration = pe, Ut.TSNeverKeyword = A, Ut.TSNonNullExpression = vt, Ut.TSNullKeyword = w, Ut.TSNumberKeyword = v, Ut.TSObjectKeyword = T, Ut.TSOptionalType = W, Ut.TSParameterProperty = i, Ut.TSParenthesizedType = fe, Ut.TSPropertySignature = u, Ut.TSQualifiedName = a, Ut.TSRestType = Y, Ut.TSStringKeyword = P, Ut.TSSymbolKeyword = x, Ut.TSThisType = L, Ut.TSTupleType = z, Ut.TSTypeAliasDeclaration = Se, Ut.TSTypeAnnotation = e, Ut.TSTypeAssertion = te, Ut.TSTypeLiteral = R, Ut.TSTypeOperator = Z, Ut.TSTypeParameter = r, Ut.TSTypeParameterDeclaration = Ut.TSTypeParameterInstantiation = t, Ut.TSTypePredicate = N, Ut.TSTypeQuery = M, Ut.TSTypeReference = j, Ut.TSUndefinedKeyword = D, Ut.TSUnionType = le, Ut.TSUnknownKeyword = y, Ut.TSVoidKeyword = C, Ut.tsPrintClassMemberModifiers = ie, Ut.tsPrintFunctionOrConstructorType = q, Ut.tsPrintPropertyOrMethodName = c, Ut.tsPrintSignatureDeclarationBase = $e, Ut.tsPrintTypeLiteralOrInterfaceBody = $;
  function e(Q) {
    this.tokenChar(58), this.space(), Q.optional && this.tokenChar(63), this.print(Q.typeAnnotation, Q);
  }
  function t(Q, X) {
    this.tokenChar(60), this.printList(Q.params, Q, {}), X.type === "ArrowFunctionExpression" && Q.params.length === 1 && this.tokenChar(44), this.tokenChar(62);
  }
  function r(Q) {
    Q.in && (this.word("in"), this.space()), Q.out && (this.word("out"), this.space()), this.word(Q.name), Q.constraint && (this.space(), this.word("extends"), this.space(), this.print(Q.constraint, Q)), Q.default && (this.space(), this.tokenChar(61), this.space(), this.print(Q.default, Q));
  }
  function i(Q) {
    Q.accessibility && (this.word(Q.accessibility), this.space()), Q.readonly && (this.word("readonly"), this.space()), this._param(Q.parameter);
  }
  function n(Q, X) {
    Q.declare && (this.word("declare"), this.space()), this._functionHead(Q, X), this.tokenChar(59);
  }
  function s(Q) {
    this._classMethodHead(Q), this.tokenChar(59);
  }
  function a(Q) {
    this.print(Q.left, Q), this.tokenChar(46), this.print(Q.right, Q);
  }
  function o(Q) {
    this.tsPrintSignatureDeclarationBase(Q), this.tokenChar(59);
  }
  function l(Q) {
    this.word("new"), this.space(), this.tsPrintSignatureDeclarationBase(Q), this.tokenChar(59);
  }
  function u(Q) {
    const {
      readonly: X,
      initializer: ce
    } = Q;
    X && (this.word("readonly"), this.space()), this.tsPrintPropertyOrMethodName(Q), this.print(Q.typeAnnotation, Q), ce && (this.space(), this.tokenChar(61), this.space(), this.print(ce, Q)), this.tokenChar(59);
  }
  function c(Q) {
    Q.computed && this.tokenChar(91), this.print(Q.key, Q), Q.computed && this.tokenChar(93), Q.optional && this.tokenChar(63);
  }
  function f(Q) {
    const {
      kind: X
    } = Q;
    (X === "set" || X === "get") && (this.word(X), this.space()), this.tsPrintPropertyOrMethodName(Q), this.tsPrintSignatureDeclarationBase(Q), this.tokenChar(59);
  }
  function h(Q) {
    const {
      readonly: X,
      static: ce
    } = Q;
    ce && (this.word("static"), this.space()), X && (this.word("readonly"), this.space()), this.tokenChar(91), this._parameters(Q.parameters, Q), this.tokenChar(93), this.print(Q.typeAnnotation, Q), this.tokenChar(59);
  }
  function m() {
    this.word("any");
  }
  function g() {
    this.word("bigint");
  }
  function y() {
    this.word("unknown");
  }
  function v() {
    this.word("number");
  }
  function T() {
    this.word("object");
  }
  function S() {
    this.word("boolean");
  }
  function P() {
    this.word("string");
  }
  function x() {
    this.word("symbol");
  }
  function C() {
    this.word("void");
  }
  function D() {
    this.word("undefined");
  }
  function w() {
    this.word("null");
  }
  function A() {
    this.word("never");
  }
  function I() {
    this.word("intrinsic");
  }
  function L() {
    this.word("this");
  }
  function O(Q) {
    this.tsPrintFunctionOrConstructorType(Q);
  }
  function F(Q) {
    Q.abstract && (this.word("abstract"), this.space()), this.word("new"), this.space(), this.tsPrintFunctionOrConstructorType(Q);
  }
  function q(Q) {
    const {
      typeParameters: X
    } = Q, ce = Q.parameters;
    this.print(X, Q), this.tokenChar(40), this._parameters(ce, Q), this.tokenChar(41), this.space(), this.token("=>"), this.space();
    const U = Q.typeAnnotation;
    this.print(U.typeAnnotation, Q);
  }
  function j(Q) {
    this.print(Q.typeName, Q, !0), this.print(Q.typeParameters, Q, !0);
  }
  function N(Q) {
    Q.asserts && (this.word("asserts"), this.space()), this.print(Q.parameterName), Q.typeAnnotation && (this.space(), this.word("is"), this.space(), this.print(Q.typeAnnotation.typeAnnotation));
  }
  function M(Q) {
    this.word("typeof"), this.space(), this.print(Q.exprName), Q.typeParameters && this.print(Q.typeParameters, Q);
  }
  function R(Q) {
    this.tsPrintTypeLiteralOrInterfaceBody(Q.members, Q);
  }
  function $(Q, X) {
    V(this, Q, X);
  }
  function V(Q, X, ce) {
    if (Q.token("{"), X.length) {
      Q.indent(), Q.newline();
      for (const U of X)
        Q.print(U, ce), Q.newline();
      Q.dedent();
    }
    Q.rightBrace(ce);
  }
  function K(Q) {
    this.print(Q.elementType, Q, !0), this.token("[]");
  }
  function z(Q) {
    this.tokenChar(91), this.printList(Q.elementTypes, Q), this.tokenChar(93);
  }
  function W(Q) {
    this.print(Q.typeAnnotation, Q), this.tokenChar(63);
  }
  function Y(Q) {
    this.token("..."), this.print(Q.typeAnnotation, Q);
  }
  function G(Q) {
    this.print(Q.label, Q), Q.optional && this.tokenChar(63), this.tokenChar(58), this.space(), this.print(Q.elementType, Q);
  }
  function le(Q) {
    ae(this, Q, "|");
  }
  function ne(Q) {
    ae(this, Q, "&");
  }
  function ae(Q, X, ce) {
    Q.printJoin(X.types, X, {
      separator() {
        this.space(), this.token(ce), this.space();
      }
    });
  }
  function be(Q) {
    this.print(Q.checkType), this.space(), this.word("extends"), this.space(), this.print(Q.extendsType), this.space(), this.tokenChar(63), this.space(), this.print(Q.trueType), this.space(), this.tokenChar(58), this.space(), this.print(Q.falseType);
  }
  function ye(Q) {
    this.token("infer"), this.space(), this.print(Q.typeParameter);
  }
  function fe(Q) {
    this.tokenChar(40), this.print(Q.typeAnnotation, Q), this.tokenChar(41);
  }
  function Z(Q) {
    this.word(Q.operator), this.space(), this.print(Q.typeAnnotation, Q);
  }
  function ue(Q) {
    this.print(Q.objectType, Q, !0), this.tokenChar(91), this.print(Q.indexType, Q), this.tokenChar(93);
  }
  function me(Q) {
    const {
      nameType: X,
      optional: ce,
      readonly: U,
      typeParameter: Ee
    } = Q;
    this.tokenChar(123), this.space(), U && (xe(this, U), this.word("readonly"), this.space()), this.tokenChar(91), this.word(Ee.name), this.space(), this.word("in"), this.space(), this.print(Ee.constraint, Ee), X && (this.space(), this.word("as"), this.space(), this.print(X, Q)), this.tokenChar(93), ce && (xe(this, ce), this.tokenChar(63)), this.tokenChar(58), this.space(), this.print(Q.typeAnnotation, Q), this.space(), this.tokenChar(125);
  }
  function xe(Q, X) {
    X !== !0 && Q.token(X);
  }
  function Pe(Q) {
    this.print(Q.literal, Q);
  }
  function ve(Q) {
    this.print(Q.expression, Q), this.print(Q.typeParameters, Q);
  }
  function Xe(Q) {
    const {
      declare: X,
      id: ce,
      typeParameters: U,
      extends: Ee,
      body: Qe
    } = Q;
    X && (this.word("declare"), this.space()), this.word("interface"), this.space(), this.print(ce, Q), this.print(U, Q), Ee != null && Ee.length && (this.space(), this.word("extends"), this.space(), this.printList(Ee, Q)), this.space(), this.print(Qe, Q);
  }
  function st(Q) {
    this.tsPrintTypeLiteralOrInterfaceBody(Q.body, Q);
  }
  function Se(Q) {
    const {
      declare: X,
      id: ce,
      typeParameters: U,
      typeAnnotation: Ee
    } = Q;
    X && (this.word("declare"), this.space()), this.word("type"), this.space(), this.print(ce, Q), this.print(U, Q), this.space(), this.tokenChar(61), this.space(), this.print(Ee, Q), this.tokenChar(59);
  }
  function oe(Q) {
    var X;
    const {
      type: ce,
      expression: U,
      typeAnnotation: Ee
    } = Q, Qe = !!((X = U.trailingComments) != null && X.length);
    this.print(U, Q, !0, void 0, Qe), this.space(), this.word(ce === "TSAsExpression" ? "as" : "satisfies"), this.space(), this.print(Ee, Q);
  }
  function te(Q) {
    const {
      typeAnnotation: X,
      expression: ce
    } = Q;
    this.tokenChar(60), this.print(X, Q), this.tokenChar(62), this.space(), this.print(ce, Q);
  }
  function se(Q) {
    this.print(Q.expression, Q), this.print(Q.typeParameters, Q);
  }
  function re(Q) {
    const {
      declare: X,
      const: ce,
      id: U,
      members: Ee
    } = Q;
    X && (this.word("declare"), this.space()), ce && (this.word("const"), this.space()), this.word("enum"), this.space(), this.print(U, Q), this.space(), V(this, Ee, Q);
  }
  function Te(Q) {
    const {
      id: X,
      initializer: ce
    } = Q;
    this.print(X, Q), ce && (this.space(), this.tokenChar(61), this.space(), this.print(ce, Q)), this.tokenChar(44);
  }
  function ze(Q) {
    const {
      declare: X,
      id: ce
    } = Q;
    if (X && (this.word("declare"), this.space()), Q.global || (this.word(ce.type === "Identifier" ? "namespace" : "module"), this.space()), this.print(ce, Q), !Q.body) {
      this.tokenChar(59);
      return;
    }
    let U = Q.body;
    for (; U.type === "TSModuleDeclaration"; )
      this.tokenChar(46), this.print(U.id, U), U = U.body;
    this.space(), this.print(U, Q);
  }
  function Ze(Q) {
    V(this, Q.body, Q);
  }
  function pt(Q) {
    const {
      argument: X,
      qualifier: ce,
      typeParameters: U
    } = Q;
    this.word("import"), this.tokenChar(40), this.print(X, Q), this.tokenChar(41), ce && (this.tokenChar(46), this.print(ce, Q)), U && this.print(U, Q);
  }
  function ut(Q) {
    const {
      isExport: X,
      id: ce,
      moduleReference: U
    } = Q;
    X && (this.word("export"), this.space()), this.word("import"), this.space(), this.print(ce, Q), this.space(), this.tokenChar(61), this.space(), this.print(U, Q), this.tokenChar(59);
  }
  function bt(Q) {
    this.token("require("), this.print(Q.expression, Q), this.tokenChar(41);
  }
  function vt(Q) {
    this.print(Q.expression, Q), this.tokenChar(33);
  }
  function ge(Q) {
    this.word("export"), this.space(), this.tokenChar(61), this.space(), this.print(Q.expression, Q), this.tokenChar(59);
  }
  function pe(Q) {
    this.word("export"), this.space(), this.word("as"), this.space(), this.word("namespace"), this.space(), this.print(Q.id, Q);
  }
  function $e(Q) {
    const {
      typeParameters: X
    } = Q, ce = Q.parameters;
    this.print(X, Q), this.tokenChar(40), this._parameters(ce, Q), this.tokenChar(41);
    const U = Q.typeAnnotation;
    this.print(U, Q);
  }
  function ie(Q) {
    const X = Q.type === "ClassAccessorProperty" || Q.type === "ClassProperty";
    X && Q.declare && (this.word("declare"), this.space()), Q.accessibility && (this.word(Q.accessibility), this.space()), Q.static && (this.word("static"), this.space()), Q.override && (this.word("override"), this.space()), Q.abstract && (this.word("abstract"), this.space()), X && Q.readonly && (this.word("readonly"), this.space());
  }
  return Ut;
}
var DY;
function Est() {
  return DY || (DY = 1, function(e) {
    Object.defineProperty(e, "__esModule", {
      value: !0
    });
    var t = dst();
    Object.keys(t).forEach(function(h) {
      h === "default" || h === "__esModule" || h in e && e[h] === t[h] || Object.defineProperty(e, h, {
        enumerable: !0,
        get: function() {
          return t[h];
        }
      });
    });
    var r = mst();
    Object.keys(r).forEach(function(h) {
      h === "default" || h === "__esModule" || h in e && e[h] === r[h] || Object.defineProperty(e, h, {
        enumerable: !0,
        get: function() {
          return r[h];
        }
      });
    });
    var i = yst();
    Object.keys(i).forEach(function(h) {
      h === "default" || h === "__esModule" || h in e && e[h] === i[h] || Object.defineProperty(e, h, {
        enumerable: !0,
        get: function() {
          return i[h];
        }
      });
    });
    var n = gst();
    Object.keys(n).forEach(function(h) {
      h === "default" || h === "__esModule" || h in e && e[h] === n[h] || Object.defineProperty(e, h, {
        enumerable: !0,
        get: function() {
          return n[h];
        }
      });
    });
    var s = bst();
    Object.keys(s).forEach(function(h) {
      h === "default" || h === "__esModule" || h in e && e[h] === s[h] || Object.defineProperty(e, h, {
        enumerable: !0,
        get: function() {
          return s[h];
        }
      });
    });
    var a = ide();
    Object.keys(a).forEach(function(h) {
      h === "default" || h === "__esModule" || h in e && e[h] === a[h] || Object.defineProperty(e, h, {
        enumerable: !0,
        get: function() {
          return a[h];
        }
      });
    });
    var o = sde();
    Object.keys(o).forEach(function(h) {
      h === "default" || h === "__esModule" || h in e && e[h] === o[h] || Object.defineProperty(e, h, {
        enumerable: !0,
        get: function() {
          return o[h];
        }
      });
    });
    var l = vst();
    Object.keys(l).forEach(function(h) {
      h === "default" || h === "__esModule" || h in e && e[h] === l[h] || Object.defineProperty(e, h, {
        enumerable: !0,
        get: function() {
          return l[h];
        }
      });
    });
    var u = Tst();
    Object.keys(u).forEach(function(h) {
      h === "default" || h === "__esModule" || h in e && e[h] === u[h] || Object.defineProperty(e, h, {
        enumerable: !0,
        get: function() {
          return u[h];
        }
      });
    });
    var c = Sst();
    Object.keys(c).forEach(function(h) {
      h === "default" || h === "__esModule" || h in e && e[h] === c[h] || Object.defineProperty(e, h, {
        enumerable: !0,
        get: function() {
          return c[h];
        }
      });
    });
    var f = xst();
    Object.keys(f).forEach(function(h) {
      h === "default" || h === "__esModule" || h in e && e[h] === f[h] || Object.defineProperty(e, h, {
        enumerable: !0,
        get: function() {
          return f[h];
        }
      });
    });
  }(_R)), _R;
}
var LY;
function Pst() {
  if (LY)
    return Mb;
  LY = 1, Object.defineProperty(Mb, "__esModule", {
    value: !0
  }), Mb.default = void 0;
  var e = pst(), t = rde(), r = sn(), i = Est();
  const {
    isFunction: n,
    isStatement: s,
    isClassBody: a,
    isTSInterfaceBody: o,
    isTSEnumDeclaration: l
  } = r, u = /e/i, c = /\.0+$/, f = /^0[box]/, h = /^\s*[@#]__PURE__\s*$/, m = /[\n\r\u2028\u2029]/, g = /\*\//, {
    needsParens: y
  } = t;
  class v {
    constructor(x, C) {
      this.inForStatementInitCounter = 0, this._printStack = [], this._indent = 0, this._indentChar = 0, this._indentRepeat = 0, this._insideAux = !1, this._parenPushNewlineState = null, this._noLineTerminator = !1, this._printAuxAfterOnNextUserNode = !1, this._printedComments = /* @__PURE__ */ new Set(), this._endsWithInteger = !1, this._endsWithWord = !1, this._lastCommentLine = 0, this._endsWithInnerRaw = !1, this._indentInnerComments = !0, this.format = x, this._buf = new e.default(C), this._indentChar = x.indent.style.charCodeAt(0), this._indentRepeat = x.indent.style.length, this._inputMap = C == null ? void 0 : C._inputMap;
    }
    generate(x) {
      return this.print(x), this._maybeAddAuxComment(), this._buf.get();
    }
    indent() {
      this.format.compact || this.format.concise || this._indent++;
    }
    dedent() {
      this.format.compact || this.format.concise || this._indent--;
    }
    semicolon(x = !1) {
      this._maybeAddAuxComment(), x ? this._appendChar(59) : this._queue(59), this._noLineTerminator = !1;
    }
    rightBrace(x) {
      this.format.minified && this._buf.removeLastSemicolon(), this.sourceWithOffset("end", x.loc, 0, -1), this.tokenChar(125);
    }
    rightParens(x) {
      this.sourceWithOffset("end", x.loc, 0, -1), this.tokenChar(41);
    }
    space(x = !1) {
      if (!this.format.compact) {
        if (x)
          this._space();
        else if (this._buf.hasContent()) {
          const C = this.getLastChar();
          C !== 32 && C !== 10 && this._space();
        }
      }
    }
    word(x, C = !1) {
      this._maybePrintInnerComments(), (this._endsWithWord || x.charCodeAt(0) === 47 && this.endsWith(47)) && this._space(), this._maybeAddAuxComment(), this._append(x, !1), this._endsWithWord = !0, this._noLineTerminator = C;
    }
    number(x) {
      this.word(x), this._endsWithInteger = Number.isInteger(+x) && !f.test(x) && !u.test(x) && !c.test(x) && x.charCodeAt(x.length - 1) !== 46;
    }
    token(x, C = !1) {
      this._maybePrintInnerComments();
      const D = this.getLastChar(), w = x.charCodeAt(0);
      (D === 33 && (x === "--" || w === 61) || w === 43 && D === 43 || w === 45 && D === 45 || w === 46 && this._endsWithInteger) && this._space(), this._maybeAddAuxComment(), this._append(x, C), this._noLineTerminator = !1;
    }
    tokenChar(x) {
      this._maybePrintInnerComments();
      const C = this.getLastChar();
      (x === 43 && C === 43 || x === 45 && C === 45 || x === 46 && this._endsWithInteger) && this._space(), this._maybeAddAuxComment(), this._appendChar(x), this._noLineTerminator = !1;
    }
    newline(x = 1, C) {
      if (!(x <= 0)) {
        if (!C) {
          if (this.format.retainLines || this.format.compact)
            return;
          if (this.format.concise) {
            this.space();
            return;
          }
        }
        x > 2 && (x = 2), x -= this._buf.getNewlineCount();
        for (let D = 0; D < x; D++)
          this._newline();
      }
    }
    endsWith(x) {
      return this.getLastChar() === x;
    }
    getLastChar() {
      return this._buf.getLastChar();
    }
    endsWithCharAndNewline() {
      return this._buf.endsWithCharAndNewline();
    }
    removeTrailingNewline() {
      this._buf.removeTrailingNewline();
    }
    exactSource(x, C) {
      if (!x) {
        C();
        return;
      }
      this._catchUp("start", x), this._buf.exactSource(x, C);
    }
    source(x, C) {
      C && (this._catchUp(x, C), this._buf.source(x, C));
    }
    sourceWithOffset(x, C, D, w) {
      C && (this._catchUp(x, C), this._buf.sourceWithOffset(x, C, D, w));
    }
    withSource(x, C, D) {
      if (!C) {
        D();
        return;
      }
      this._catchUp(x, C), this._buf.withSource(x, C, D);
    }
    sourceIdentifierName(x, C) {
      if (!this._buf._canMarkIdName)
        return;
      const D = this._buf._sourcePosition;
      D.identifierNamePos = C, D.identifierName = x;
    }
    _space() {
      this._queue(32);
    }
    _newline() {
      this._queue(10);
    }
    _append(x, C) {
      this._maybeAddParen(x), this._maybeIndent(x.charCodeAt(0)), this._buf.append(x, C), this._endsWithWord = !1, this._endsWithInteger = !1;
    }
    _appendChar(x) {
      this._maybeAddParenChar(x), this._maybeIndent(x), this._buf.appendChar(x), this._endsWithWord = !1, this._endsWithInteger = !1;
    }
    _queue(x) {
      this._maybeAddParenChar(x), this._maybeIndent(x), this._buf.queue(x), this._endsWithWord = !1, this._endsWithInteger = !1;
    }
    _maybeIndent(x) {
      this._indent && x !== 10 && this.endsWith(10) && this._buf.queueIndentation(this._indentChar, this._getIndent());
    }
    _shouldIndent(x) {
      if (this._indent && x !== 10 && this.endsWith(10))
        return !0;
    }
    _maybeAddParenChar(x) {
      const C = this._parenPushNewlineState;
      if (C && x !== 32) {
        if (x !== 10) {
          this._parenPushNewlineState = null;
          return;
        }
        this.tokenChar(40), this.indent(), C.printed = !0;
      }
    }
    _maybeAddParen(x) {
      const C = this._parenPushNewlineState;
      if (!C)
        return;
      const D = x.length;
      let w;
      for (w = 0; w < D && x.charCodeAt(w) === 32; w++)
        ;
      if (w === D)
        return;
      const A = x.charCodeAt(w);
      if (A !== 10) {
        if (A !== 47 || w + 1 === D) {
          this._parenPushNewlineState = null;
          return;
        }
        const I = x.charCodeAt(w + 1);
        if (I === 42) {
          if (h.test(x.slice(w + 2, D - 2)))
            return;
        } else if (I !== 47) {
          this._parenPushNewlineState = null;
          return;
        }
      }
      this.tokenChar(40), this.indent(), C.printed = !0;
    }
    catchUp(x) {
      if (!this.format.retainLines)
        return;
      const C = x - this._buf.getCurrentLine();
      for (let D = 0; D < C; D++)
        this._newline();
    }
    _catchUp(x, C) {
      var D;
      if (!this.format.retainLines)
        return;
      const w = C == null || (D = C[x]) == null ? void 0 : D.line;
      if (w != null) {
        const A = w - this._buf.getCurrentLine();
        for (let I = 0; I < A; I++)
          this._newline();
      }
    }
    _getIndent() {
      return this._indentRepeat * this._indent;
    }
    printTerminatorless(x, C, D) {
      if (D)
        this._noLineTerminator = !0, this.print(x, C);
      else {
        const w = {
          printed: !1
        };
        this._parenPushNewlineState = w, this.print(x, C), w.printed && (this.dedent(), this.newline(), this.tokenChar(41));
      }
    }
    print(x, C, D, w, A) {
      var I;
      if (!x)
        return;
      this._endsWithInnerRaw = !1;
      const L = x.type, O = this.format, F = O.concise;
      x._compact && (O.concise = !0);
      const q = this[L];
      if (q === void 0)
        throw new ReferenceError("unknown node of type ".concat(JSON.stringify(L), " with constructor ").concat(JSON.stringify(x.constructor.name)));
      this._printStack.push(x);
      const j = this._insideAux;
      this._insideAux = x.loc == null, this._maybeAddAuxComment(this._insideAux && !j);
      const N = A || O.retainFunctionParens && L === "FunctionExpression" && ((I = x.extra) == null ? void 0 : I.parenthesized) || y(x, C, this._printStack);
      N && (this.tokenChar(40), this._endsWithInnerRaw = !1), this._lastCommentLine = 0, this._printLeadingComments(x, C);
      const M = L === "Program" || L === "File" ? null : x.loc;
      this.exactSource(M, q.bind(this, x, C)), N ? (this._printTrailingComments(x, C), this.tokenChar(41), this._noLineTerminator = D) : D && !this._noLineTerminator ? (this._noLineTerminator = !0, this._printTrailingComments(x, C)) : this._printTrailingComments(x, C, w), this._printStack.pop(), O.concise = F, this._insideAux = j, this._endsWithInnerRaw = !1;
    }
    _maybeAddAuxComment(x) {
      x && this._printAuxBeforeComment(), this._insideAux || this._printAuxAfterComment();
    }
    _printAuxBeforeComment() {
      if (this._printAuxAfterOnNextUserNode)
        return;
      this._printAuxAfterOnNextUserNode = !0;
      const x = this.format.auxiliaryCommentBefore;
      x && this._printComment({
        type: "CommentBlock",
        value: x
      }, 0);
    }
    _printAuxAfterComment() {
      if (!this._printAuxAfterOnNextUserNode)
        return;
      this._printAuxAfterOnNextUserNode = !1;
      const x = this.format.auxiliaryCommentAfter;
      x && this._printComment({
        type: "CommentBlock",
        value: x
      }, 0);
    }
    getPossibleRaw(x) {
      const C = x.extra;
      if (C && C.raw != null && C.rawValue != null && x.value === C.rawValue)
        return C.raw;
    }
    printJoin(x, C, D = {}) {
      if (!(x != null && x.length))
        return;
      let {
        indent: w
      } = D;
      if (w == null && this.format.retainLines) {
        var A;
        const q = (A = x[0].loc) == null ? void 0 : A.start.line;
        q != null && q !== this._buf.getCurrentLine() && (w = !0);
      }
      w && this.indent();
      const I = {
        addNewlines: D.addNewlines,
        nextNodeStartLine: 0
      }, L = D.separator ? D.separator.bind(this) : null, O = x.length;
      for (let q = 0; q < O; q++) {
        const j = x[q];
        if (j && (D.statement && this._printNewline(q === 0, I), this.print(j, C, void 0, D.trailingCommentsLineOffset || 0), D.iterator == null || D.iterator(j, q), q < O - 1 && (L == null || L()), D.statement))
          if (q + 1 === O)
            this.newline(1);
          else {
            var F;
            const N = x[q + 1];
            I.nextNodeStartLine = ((F = N.loc) == null ? void 0 : F.start.line) || 0, this._printNewline(!0, I);
          }
      }
      w && this.dedent();
    }
    printAndIndentOnComments(x, C) {
      const D = x.leadingComments && x.leadingComments.length > 0;
      D && this.indent(), this.print(x, C), D && this.dedent();
    }
    printBlock(x) {
      const C = x.body;
      C.type !== "EmptyStatement" && this.space(), this.print(C, x);
    }
    _printTrailingComments(x, C, D) {
      const {
        innerComments: w,
        trailingComments: A
      } = x;
      w != null && w.length && this._printComments(2, w, x, C, D), A != null && A.length && this._printComments(2, A, x, C, D);
    }
    _printLeadingComments(x, C) {
      const D = x.leadingComments;
      D != null && D.length && this._printComments(0, D, x, C);
    }
    _maybePrintInnerComments() {
      this._endsWithInnerRaw && this.printInnerComments(), this._endsWithInnerRaw = !0, this._indentInnerComments = !0;
    }
    printInnerComments() {
      const x = this._printStack[this._printStack.length - 1], C = x.innerComments;
      if (!(C != null && C.length))
        return;
      const D = this.endsWith(32), w = this._indentInnerComments, A = this._printedComments.size;
      w && this.indent(), this._printComments(1, C, x), D && A !== this._printedComments.size && this.space(), w && this.dedent();
    }
    noIndentInnerCommentsHere() {
      this._indentInnerComments = !1;
    }
    printSequence(x, C, D = {}) {
      var w;
      D.statement = !0, (w = D.indent) != null || (D.indent = !1), this.printJoin(x, C, D);
    }
    printList(x, C, D = {}) {
      D.separator == null && (D.separator = S), this.printJoin(x, C, D);
    }
    _printNewline(x, C) {
      const D = this.format;
      if (D.retainLines || D.compact)
        return;
      if (D.concise) {
        this.space();
        return;
      }
      if (!x)
        return;
      const w = C.nextNodeStartLine, A = this._lastCommentLine;
      if (w > 0 && A > 0) {
        const I = w - A;
        if (I >= 0) {
          this.newline(I || 1);
          return;
        }
      }
      this._buf.hasContent() && this.newline(1);
    }
    _shouldPrintComment(x) {
      return x.ignore || this._printedComments.has(x) ? 0 : this._noLineTerminator && (m.test(x.value) || g.test(x.value)) ? 2 : (this._printedComments.add(x), this.format.shouldPrintComment(x.value) ? 1 : 0);
    }
    _printComment(x, C) {
      const D = this._noLineTerminator, w = x.type === "CommentBlock", A = w && C !== 1 && !this._noLineTerminator;
      A && this._buf.hasContent() && C !== 2 && this.newline(1);
      const I = this.getLastChar();
      I !== 91 && I !== 123 && this.space();
      let L;
      if (w) {
        if (L = "/*".concat(x.value, "*/"), this.format.indent.adjustMultilineComment) {
          var O;
          const F = (O = x.loc) == null ? void 0 : O.start.column;
          if (F) {
            const j = new RegExp("\\n\\s{1," + F + "}", "g");
            L = L.replace(j, "\n");
          }
          let q = this.format.retainLines ? 0 : this._buf.getCurrentColumn();
          (this._shouldIndent(47) || this.format.retainLines) && (q += this._getIndent()), L = L.replace(/\n(?!$)/g, "\n".concat(" ".repeat(q)));
        }
      } else
        D ? L = "/*".concat(x.value, "*/") : L = "//".concat(x.value);
      this.endsWith(47) && this._space(), this.source("start", x.loc), this._append(L, w), !w && !D && this.newline(1, !0), A && C !== 3 && this.newline(1);
    }
    _printComments(x, C, D, w, A = 0) {
      const I = D.loc, L = C.length;
      let O = !!I;
      const F = O ? I.start.line : 0, q = O ? I.end.line : 0;
      let j = 0, N = 0;
      const M = this._noLineTerminator ? function() {
      } : this.newline.bind(this);
      for (let R = 0; R < L; R++) {
        const $ = C[R], V = this._shouldPrintComment($);
        if (V === 2) {
          O = !1;
          break;
        }
        if (O && $.loc && V === 1) {
          const K = $.loc.start.line, z = $.loc.end.line;
          if (x === 0) {
            let W = 0;
            R === 0 ? this._buf.hasContent() && ($.type === "CommentLine" || K != z) && (W = N = 1) : W = K - j, j = z, M(W), this._printComment($, 1), R + 1 === L && (M(Math.max(F - j, N)), j = F);
          } else if (x === 1) {
            const W = K - (R === 0 ? F : j);
            j = z, M(W), this._printComment($, 1), R + 1 === L && (M(Math.min(1, q - j)), j = q);
          } else {
            const W = K - (R === 0 ? q - A : j);
            j = z, M(W), this._printComment($, 1);
          }
        } else {
          if (O = !1, V !== 1)
            continue;
          if (L === 1) {
            const K = $.loc ? $.loc.start.line === $.loc.end.line : !m.test($.value), z = K && !s(D) && !a(w) && !o(w) && !l(w);
            x === 0 ? this._printComment($, z && D.type !== "ObjectExpression" || K && n(w, {
              body: D
            }) ? 1 : 0) : z && x === 2 ? this._printComment($, 1) : this._printComment($, 0);
          } else
            x === 1 && !(D.type === "ObjectExpression" && D.properties.length > 1) && D.type !== "ClassBody" && D.type !== "TSInterfaceBody" ? this._printComment($, R === 0 ? 2 : R === L - 1 ? 3 : 0) : this._printComment($, 0);
        }
      }
      x === 2 && O && j && (this._lastCommentLine = j);
    }
  }
  Object.assign(v.prototype, i), v.prototype.Noop = function() {
  };
  var T = v;
  Mb.default = T;
  function S() {
    this.tokenChar(44), this.space();
  }
  return Mb;
}
var MY;
function C9() {
  if (MY)
    return Mm;
  MY = 1, Object.defineProperty(Mm, "__esModule", {
    value: !0
  }), Mm.CodeGenerator = void 0, Mm.default = s;
  var e = cst(), t = Pst();
  class r extends t.default {
    constructor(o, l = {}, u) {
      const c = i(u, l), f = l.sourceMaps ? new e.default(l, u) : null;
      super(c, f), this.ast = void 0, this.ast = o;
    }
    generate() {
      return super.generate(this.ast);
    }
  }
  function i(a, o) {
    const l = {
      auxiliaryCommentBefore: o.auxiliaryCommentBefore,
      auxiliaryCommentAfter: o.auxiliaryCommentAfter,
      shouldPrintComment: o.shouldPrintComment,
      retainLines: o.retainLines,
      retainFunctionParens: o.retainFunctionParens,
      comments: o.comments == null || o.comments,
      compact: o.compact,
      minified: o.minified,
      concise: o.concise,
      indent: {
        adjustMultilineComment: !0,
        style: "  "
      },
      jsescOption: Object.assign({
        quotes: "double",
        wrap: !0,
        minimal: !1
      }, o.jsescOption),
      recordAndTupleSyntaxType: o.recordAndTupleSyntaxType,
      topicToken: o.topicToken,
      importAttributesKeyword: o.importAttributesKeyword
    };
    l.decoratorsBeforeExport = o.decoratorsBeforeExport, l.jsescOption.json = o.jsonCompatibleStrings, l.minified ? (l.compact = !0, l.shouldPrintComment = l.shouldPrintComment || (() => l.comments)) : l.shouldPrintComment = l.shouldPrintComment || ((h) => l.comments || h.includes("@license") || h.includes("@preserve")), l.compact === "auto" && (l.compact = typeof a == "string" && a.length > 5e5, l.compact && console.error("[BABEL] Note: The code generator has deoptimised the styling of " + "".concat(o.filename, " as it exceeds the max of 500KB."))), l.compact && (l.indent.adjustMultilineComment = !1);
    const {
      auxiliaryCommentBefore: u,
      auxiliaryCommentAfter: c,
      shouldPrintComment: f
    } = l;
    return u && !f(u) && (l.auxiliaryCommentBefore = void 0), c && !f(c) && (l.auxiliaryCommentAfter = void 0), l;
  }
  class n {
    constructor(o, l, u) {
      this._generator = void 0, this._generator = new r(o, l, u);
    }
    generate() {
      return this._generator.generate();
    }
  }
  Mm.CodeGenerator = n;
  function s(a, o, l) {
    return new r(a, o, l).generate();
  }
  return Mm;
}
var co = {}, RY;
function wst() {
  if (RY)
    return co;
  RY = 1, Object.defineProperty(co, "__esModule", {
    value: !0
  }), co.find = i, co.findParent = r, co.getAncestry = l, co.getDeepestCommonAncestorFrom = o, co.getEarliestCommonAncestorFrom = a, co.getFunctionParent = n, co.getStatementParent = s, co.inType = f, co.isAncestor = u, co.isDescendant = c;
  var e = Ui();
  const {
    VISITOR_KEYS: t
  } = e;
  function r(h) {
    let m = this;
    for (; m = m.parentPath; )
      if (h(m))
        return m;
    return null;
  }
  function i(h) {
    let m = this;
    do
      if (h(m))
        return m;
    while (m = m.parentPath);
    return null;
  }
  function n() {
    return this.findParent((h) => h.isFunction());
  }
  function s() {
    let h = this;
    do {
      if (!h.parentPath || Array.isArray(h.container) && h.isStatement())
        break;
      h = h.parentPath;
    } while (h);
    if (h && (h.isProgram() || h.isFile()))
      throw new Error("File/Program node, we can't possibly find a statement parent to this");
    return h;
  }
  function a(h) {
    return this.getDeepestCommonAncestorFrom(h, function(m, g, y) {
      let v;
      const T = t[m.type];
      for (const S of y) {
        const P = S[g + 1];
        if (!v) {
          v = P;
          continue;
        }
        if (P.listKey && v.listKey === P.listKey && P.key < v.key) {
          v = P;
          continue;
        }
        const x = T.indexOf(v.parentKey), C = T.indexOf(P.parentKey);
        x > C && (v = P);
      }
      return v;
    });
  }
  function o(h, m) {
    if (!h.length)
      return this;
    if (h.length === 1)
      return h[0];
    let g = 1 / 0, y, v;
    const T = h.map((P) => {
      const x = [];
      do
        x.unshift(P);
      while ((P = P.parentPath) && P !== this);
      return x.length < g && (g = x.length), x;
    }), S = T[0];
    e:
      for (let P = 0; P < g; P++) {
        const x = S[P];
        for (const C of T)
          if (C[P] !== x)
            break e;
        y = P, v = x;
      }
    if (v)
      return m ? m(v, y, T) : v;
    throw new Error("Couldn't find intersection");
  }
  function l() {
    let h = this;
    const m = [];
    do
      m.push(h);
    while (h = h.parentPath);
    return m;
  }
  function u(h) {
    return h.isDescendant(this);
  }
  function c(h) {
    return !!this.findParent((m) => m === h);
  }
  function f(...h) {
    let m = this;
    for (; m; ) {
      for (const g of h)
        if (m.node.type === g)
          return !0;
      m = m.parentPath;
    }
    return !1;
  }
  return co;
}
var Lp = {}, OR = {}, YE = {}, XE = {}, BY;
function ade() {
  if (BY)
    return XE;
  BY = 1, Object.defineProperty(XE, "__esModule", {
    value: !0
  }), XE.createUnionType = a;
  var e = Ui();
  const {
    createFlowUnionType: t,
    createTSUnionType: r,
    createUnionTypeAnnotation: i,
    isFlowType: n,
    isTSType: s
  } = e;
  function a(o) {
    {
      if (n(o[0]))
        return t ? t(o) : i(o);
      if (r)
        return r(o);
    }
  }
  return XE;
}
var FY;
function Ast() {
  if (FY)
    return YE;
  FY = 1, Object.defineProperty(YE, "__esModule", {
    value: !0
  }), YE.default = a;
  var e = Ui(), t = ade();
  const {
    BOOLEAN_NUMBER_BINARY_OPERATORS: r,
    createTypeAnnotationBasedOnTypeof: i,
    numberTypeAnnotation: n,
    voidTypeAnnotation: s
  } = e;
  function a(h) {
    if (!this.isReferenced())
      return;
    const m = this.scope.getBinding(h.name);
    if (m)
      return m.identifier.typeAnnotation ? m.identifier.typeAnnotation : o(m, this, h.name);
    if (h.name === "undefined")
      return s();
    if (h.name === "NaN" || h.name === "Infinity")
      return n();
    h.name;
  }
  function o(h, m, g) {
    const y = [], v = [];
    let T = l(h, m, v);
    const S = f(h, m, g);
    if (S) {
      const P = l(h, S.ifStatement);
      T = T.filter((x) => P.indexOf(x) < 0), y.push(S.typeAnnotation);
    }
    if (T.length) {
      T.push(...v);
      for (const P of T)
        y.push(P.getTypeAnnotation());
    }
    if (y.length)
      return (0, t.createUnionType)(y);
  }
  function l(h, m, g) {
    const y = h.constantViolations.slice();
    return y.unshift(h.path), y.filter((v) => {
      v = v.resolve();
      const T = v._guessExecutionStatusRelativeTo(m);
      return g && T === "unknown" && g.push(v), T === "before";
    });
  }
  function u(h, m) {
    const g = m.node.operator, y = m.get("right").resolve(), v = m.get("left").resolve();
    let T;
    if (v.isIdentifier({
      name: h
    }) ? T = y : y.isIdentifier({
      name: h
    }) && (T = v), T)
      return g === "===" ? T.getTypeAnnotation() : r.indexOf(g) >= 0 ? n() : void 0;
    if (g !== "===" && g !== "==")
      return;
    let S, P;
    if (v.isUnaryExpression({
      operator: "typeof"
    }) ? (S = v, P = y) : y.isUnaryExpression({
      operator: "typeof"
    }) && (S = y, P = v), !S || !S.get("argument").isIdentifier({
      name: h
    }) || (P = P.resolve(), !P.isLiteral()))
      return;
    const x = P.node.value;
    if (typeof x == "string")
      return i(x);
  }
  function c(h, m, g) {
    let y;
    for (; y = m.parentPath; ) {
      if (y.isIfStatement() || y.isConditionalExpression())
        return m.key === "test" ? void 0 : y;
      if (y.isFunction() && y.parentPath.scope.getBinding(g) !== h)
        return;
      m = y;
    }
  }
  function f(h, m, g) {
    const y = c(h, m, g);
    if (!y)
      return;
    const T = [y.get("test")], S = [];
    for (let P = 0; P < T.length; P++) {
      const x = T[P];
      if (x.isLogicalExpression())
        x.node.operator === "&&" && (T.push(x.get("left")), T.push(x.get("right")));
      else if (x.isBinaryExpression()) {
        const C = u(g, x);
        C && S.push(C);
      }
    }
    return S.length ? {
      typeAnnotation: (0, t.createUnionType)(S),
      ifStatement: y
    } : f(h, y, g);
  }
  return YE;
}
var jY;
function Cst() {
  return jY || (jY = 1, function(e) {
    Object.defineProperty(e, "__esModule", {
      value: !0
    }), e.ArrayExpression = ne, e.AssignmentExpression = $, e.BinaryExpression = q, e.BooleanLiteral = W, e.CallExpression = me, e.ConditionalExpression = N, e.ClassDeclaration = e.ClassExpression = e.FunctionDeclaration = e.ArrowFunctionExpression = e.FunctionExpression = be, Object.defineProperty(e, "Identifier", {
      enumerable: !0,
      get: function() {
        return r.default;
      }
    }), e.LogicalExpression = j, e.NewExpression = L, e.NullLiteral = Y, e.NumericLiteral = z, e.ObjectExpression = le, e.ParenthesizedExpression = R, e.RegExpLiteral = G, e.RestElement = ae, e.SequenceExpression = M, e.StringLiteral = K, e.TSAsExpression = A, e.TSNonNullExpression = I, e.TaggedTemplateExpression = xe, e.TemplateLiteral = O, e.TypeCastExpression = w, e.UnaryExpression = F, e.UpdateExpression = V, e.VariableDeclarator = D;
    var t = Ui(), r = Ast(), i = ade();
    const {
      BOOLEAN_BINARY_OPERATORS: n,
      BOOLEAN_UNARY_OPERATORS: s,
      NUMBER_BINARY_OPERATORS: a,
      NUMBER_UNARY_OPERATORS: o,
      STRING_UNARY_OPERATORS: l,
      anyTypeAnnotation: u,
      arrayTypeAnnotation: c,
      booleanTypeAnnotation: f,
      buildMatchMemberExpression: h,
      genericTypeAnnotation: m,
      identifier: g,
      nullLiteralTypeAnnotation: y,
      numberTypeAnnotation: v,
      stringTypeAnnotation: T,
      tupleTypeAnnotation: S,
      unionTypeAnnotation: P,
      voidTypeAnnotation: x,
      isIdentifier: C
    } = t;
    function D() {
      if (this.get("id").isIdentifier())
        return this.get("init").getTypeAnnotation();
    }
    function w(ve) {
      return ve.typeAnnotation;
    }
    w.validParent = !0;
    function A(ve) {
      return ve.typeAnnotation;
    }
    A.validParent = !0;
    function I() {
      return this.get("expression").getTypeAnnotation();
    }
    function L(ve) {
      if (ve.callee.type === "Identifier")
        return m(ve.callee);
    }
    function O() {
      return T();
    }
    function F(ve) {
      const Xe = ve.operator;
      if (Xe === "void")
        return x();
      if (o.indexOf(Xe) >= 0)
        return v();
      if (l.indexOf(Xe) >= 0)
        return T();
      if (s.indexOf(Xe) >= 0)
        return f();
    }
    function q(ve) {
      const Xe = ve.operator;
      if (a.indexOf(Xe) >= 0)
        return v();
      if (n.indexOf(Xe) >= 0)
        return f();
      if (Xe === "+") {
        const st = this.get("right"), Se = this.get("left");
        return Se.isBaseType("number") && st.isBaseType("number") ? v() : Se.isBaseType("string") || st.isBaseType("string") ? T() : P([T(), v()]);
      }
    }
    function j() {
      const ve = [this.get("left").getTypeAnnotation(), this.get("right").getTypeAnnotation()];
      return (0, i.createUnionType)(ve);
    }
    function N() {
      const ve = [this.get("consequent").getTypeAnnotation(), this.get("alternate").getTypeAnnotation()];
      return (0, i.createUnionType)(ve);
    }
    function M() {
      return this.get("expressions").pop().getTypeAnnotation();
    }
    function R() {
      return this.get("expression").getTypeAnnotation();
    }
    function $() {
      return this.get("right").getTypeAnnotation();
    }
    function V(ve) {
      const Xe = ve.operator;
      if (Xe === "++" || Xe === "--")
        return v();
    }
    function K() {
      return T();
    }
    function z() {
      return v();
    }
    function W() {
      return f();
    }
    function Y() {
      return y();
    }
    function G() {
      return m(g("RegExp"));
    }
    function le() {
      return m(g("Object"));
    }
    function ne() {
      return m(g("Array"));
    }
    function ae() {
      return ne();
    }
    ae.validParent = !0;
    function be() {
      return m(g("Function"));
    }
    const ye = h("Array.from"), fe = h("Object.keys"), Z = h("Object.values"), ue = h("Object.entries");
    function me() {
      const {
        callee: ve
      } = this.node;
      return fe(ve) ? c(T()) : ye(ve) || Z(ve) || C(ve, {
        name: "Array"
      }) ? c(u()) : ue(ve) ? c(S([T(), u()])) : Pe(this.get("callee"));
    }
    function xe() {
      return Pe(this.get("tag"));
    }
    function Pe(ve) {
      if (ve = ve.resolve(), ve.isFunction()) {
        const {
          node: Xe
        } = ve;
        if (Xe.async)
          return Xe.generator ? m(g("AsyncIterator")) : m(g("Promise"));
        if (Xe.generator)
          return m(g("Iterator"));
        if (ve.node.returnType)
          return ve.node.returnType;
      }
    }
  }(OR)), OR;
}
var $Y;
function _st() {
  if ($Y)
    return Lp;
  $Y = 1, Object.defineProperty(Lp, "__esModule", {
    value: !0
  }), Lp._getTypeAnnotation = A, Lp.baseTypeStrictlyMatches = F, Lp.couldBeBaseType = O, Lp.getTypeAnnotation = D, Lp.isBaseType = I, Lp.isGenericType = q;
  var e = Cst(), t = Ui();
  const {
    anyTypeAnnotation: r,
    isAnyTypeAnnotation: i,
    isArrayTypeAnnotation: n,
    isBooleanTypeAnnotation: s,
    isEmptyTypeAnnotation: a,
    isFlowBaseAnnotation: o,
    isGenericTypeAnnotation: l,
    isIdentifier: u,
    isMixedTypeAnnotation: c,
    isNumberTypeAnnotation: f,
    isStringTypeAnnotation: h,
    isTSArrayType: m,
    isTSTypeAnnotation: g,
    isTSTypeReference: y,
    isTupleTypeAnnotation: v,
    isTypeAnnotation: T,
    isUnionTypeAnnotation: S,
    isVoidTypeAnnotation: P,
    stringTypeAnnotation: x,
    voidTypeAnnotation: C
  } = t;
  function D() {
    let j = this.getData("typeAnnotation");
    return j != null || (j = this._getTypeAnnotation() || r(), (T(j) || g(j)) && (j = j.typeAnnotation), this.setData("typeAnnotation", j)), j;
  }
  const w = /* @__PURE__ */ new WeakSet();
  function A() {
    const j = this.node;
    if (!j)
      if (this.key === "init" && this.parentPath.isVariableDeclarator()) {
        const M = this.parentPath.parentPath, R = M.parentPath;
        return M.key === "left" && R.isForInStatement() ? x() : M.key === "left" && R.isForOfStatement() ? r() : C();
      } else
        return;
    if (j.typeAnnotation)
      return j.typeAnnotation;
    if (!w.has(j)) {
      w.add(j);
      try {
        var N;
        let M = e[j.type];
        if (M)
          return M.call(this, j);
        if (M = e[this.parentPath.type], (N = M) != null && N.validParent)
          return this.parentPath.getTypeAnnotation();
      } finally {
        w.delete(j);
      }
    }
  }
  function I(j, N) {
    return L(j, this.getTypeAnnotation(), N);
  }
  function L(j, N, M) {
    if (j === "string")
      return h(N);
    if (j === "number")
      return f(N);
    if (j === "boolean")
      return s(N);
    if (j === "any")
      return i(N);
    if (j === "mixed")
      return c(N);
    if (j === "empty")
      return a(N);
    if (j === "void")
      return P(N);
    if (M)
      return !1;
    throw new Error("Unknown base type ".concat(j));
  }
  function O(j) {
    const N = this.getTypeAnnotation();
    if (i(N))
      return !0;
    if (S(N)) {
      for (const M of N.types)
        if (i(M) || L(j, M, !0))
          return !0;
      return !1;
    } else
      return L(j, N, !0);
  }
  function F(j) {
    const N = this.getTypeAnnotation(), M = j.getTypeAnnotation();
    return !i(N) && o(N) ? M.type === N.type : !1;
  }
  function q(j) {
    const N = this.getTypeAnnotation();
    return j === "Array" && (m(N) || n(N) || v(N)) ? !0 : l(N) && u(N.id, {
      name: j
    }) || y(N) && u(N.typeName, {
      name: j
    });
  }
  return Lp;
}
var Mp = {}, Bm = {}, UY, Sne, xne, Ene, Pne, wne;
function _9() {
  if (UY)
    return Bm;
  UY = 1, Object.defineProperty(Bm, "__esModule", {
    value: !0
  });
  function e(B, d) {
    if (B == null)
      return {};
    var p = {}, b = Object.keys(B), _, H;
    for (H = 0; H < b.length; H++)
      _ = b[H], !(d.indexOf(_) >= 0) && (p[_] = B[_]);
    return p;
  }
  class t {
    constructor(d, p, b) {
      this.line = void 0, this.column = void 0, this.index = void 0, this.line = d, this.column = p, this.index = b;
    }
  }
  class r {
    constructor(d, p) {
      this.start = void 0, this.end = void 0, this.filename = void 0, this.identifierName = void 0, this.start = d, this.end = p;
    }
  }
  function i(B, d) {
    const {
      line: p,
      column: b,
      index: _
    } = B;
    return new t(p, b + d, _ + d);
  }
  var n = {
    SyntaxError: "BABEL_PARSER_SYNTAX_ERROR",
    SourceTypeModuleError: "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED"
  };
  const s = (B, d = B.length - 1) => ({
    get() {
      return B.reduce((p, b) => p[b], this);
    },
    set(p) {
      B.reduce((b, _, H) => H === d ? b[_] = p : b[_], this);
    }
  }), a = (B, d, p) => Object.keys(p).map((b) => [b, p[b]]).filter(([, b]) => !!b).map(([b, _]) => [b, typeof _ == "function" ? {
    value: _,
    enumerable: !1
  } : typeof _.reflect == "string" ? Object.assign({}, _, s(_.reflect.split("."))) : _]).reduce((b, [_, H]) => Object.defineProperty(b, _, Object.assign({
    configurable: !0
  }, H)), Object.assign(new B(), d));
  var o = {
    ImportMetaOutsideModule: {
      message: "import.meta may appear only with 'sourceType: \"module\"'",
      code: n.SourceTypeModuleError
    },
    ImportOutsideModule: {
      message: "'import' and 'export' may appear only with 'sourceType: \"module\"'",
      code: n.SourceTypeModuleError
    }
  };
  const l = {
    ArrayPattern: "array destructuring pattern",
    AssignmentExpression: "assignment expression",
    AssignmentPattern: "assignment expression",
    ArrowFunctionExpression: "arrow function expression",
    ConditionalExpression: "conditional expression",
    CatchClause: "catch clause",
    ForOfStatement: "for-of statement",
    ForInStatement: "for-in statement",
    ForStatement: "for-loop",
    FormalParameters: "function parameter list",
    Identifier: "identifier",
    ImportSpecifier: "import specifier",
    ImportDefaultSpecifier: "import default specifier",
    ImportNamespaceSpecifier: "import namespace specifier",
    ObjectPattern: "object destructuring pattern",
    ParenthesizedExpression: "parenthesized expression",
    RestElement: "rest element",
    UpdateExpression: {
      true: "prefix operation",
      false: "postfix operation"
    },
    VariableDeclarator: "variable declaration",
    YieldExpression: "yield expression"
  }, u = ({
    type: B,
    prefix: d
  }) => B === "UpdateExpression" ? l.UpdateExpression[String(d)] : l[B];
  var c = {
    AccessorIsGenerator: ({
      kind: B
    }) => "A ".concat(B, "ter cannot be a generator."),
    ArgumentsInClass: "'arguments' is only allowed in functions and class methods.",
    AsyncFunctionInSingleStatementContext: "Async functions can only be declared at the top level or inside a block.",
    AwaitBindingIdentifier: "Can not use 'await' as identifier inside an async function.",
    AwaitBindingIdentifierInStaticBlock: "Can not use 'await' as identifier inside a static block.",
    AwaitExpressionFormalParameter: "'await' is not allowed in async function parameters.",
    AwaitUsingNotInAsyncContext: "'await using' is only allowed within async functions and at the top levels of modules.",
    AwaitNotInAsyncContext: "'await' is only allowed within async functions and at the top levels of modules.",
    AwaitNotInAsyncFunction: "'await' is only allowed within async functions.",
    BadGetterArity: "A 'get' accessor must not have any formal parameters.",
    BadSetterArity: "A 'set' accessor must have exactly one formal parameter.",
    BadSetterRestParameter: "A 'set' accessor function argument must not be a rest parameter.",
    ConstructorClassField: "Classes may not have a field named 'constructor'.",
    ConstructorClassPrivateField: "Classes may not have a private field named '#constructor'.",
    ConstructorIsAccessor: "Class constructor may not be an accessor.",
    ConstructorIsAsync: "Constructor can't be an async function.",
    ConstructorIsGenerator: "Constructor can't be a generator.",
    DeclarationMissingInitializer: ({
      kind: B
    }) => "Missing initializer in ".concat(B, " declaration."),
    DecoratorArgumentsOutsideParentheses: "Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.",
    DecoratorBeforeExport: "Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.",
    DecoratorsBeforeAfterExport: "Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.",
    DecoratorConstructor: "Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?",
    DecoratorExportClass: "Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.",
    DecoratorSemicolon: "Decorators must not be followed by a semicolon.",
    DecoratorStaticBlock: "Decorators can't be used with a static block.",
    DeletePrivateField: "Deleting a private field is not allowed.",
    DestructureNamedImport: "ES2015 named imports do not destructure. Use another statement for destructuring after the import.",
    DuplicateConstructor: "Duplicate constructor in the same class.",
    DuplicateDefaultExport: "Only one default export allowed per module.",
    DuplicateExport: ({
      exportName: B
    }) => "`".concat(B, "` has already been exported. Exported identifiers must be unique."),
    DuplicateProto: "Redefinition of __proto__ property.",
    DuplicateRegExpFlags: "Duplicate regular expression flag.",
    ElementAfterRest: "Rest element must be last element.",
    EscapedCharNotAnIdentifier: "Invalid Unicode escape.",
    ExportBindingIsString: ({
      localName: B,
      exportName: d
    }) => "A string literal cannot be used as an exported binding without `from`.\n- Did you mean `export { '".concat(B, "' as '").concat(d, "' } from 'some-module'`?"),
    ExportDefaultFromAsIdentifier: "'from' is not allowed as an identifier after 'export default'.",
    ForInOfLoopInitializer: ({
      type: B
    }) => "'".concat(B === "ForInStatement" ? "for-in" : "for-of", "' loop variable declaration may not have an initializer."),
    ForInUsing: "For-in loop may not start with 'using' declaration.",
    ForOfAsync: "The left-hand side of a for-of loop may not be 'async'.",
    ForOfLet: "The left-hand side of a for-of loop may not start with 'let'.",
    GeneratorInSingleStatementContext: "Generators can only be declared at the top level or inside a block.",
    IllegalBreakContinue: ({
      type: B
    }) => "Unsyntactic ".concat(B === "BreakStatement" ? "break" : "continue", "."),
    IllegalLanguageModeDirective: "Illegal 'use strict' directive in function with non-simple parameter list.",
    IllegalReturn: "'return' outside of function.",
    ImportAttributesUseAssert: "The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedAssertSyntax: true` option in the import attributes plugin to suppress this error.",
    ImportBindingIsString: ({
      importName: B
    }) => 'A string literal cannot be used as an imported binding.\n- Did you mean `import { "'.concat(B, '" as foo }`?'),
    ImportCallArgumentTrailingComma: "Trailing comma is disallowed inside import(...) arguments.",
    ImportCallArity: ({
      maxArgumentCount: B
    }) => "`import()` requires exactly ".concat(B === 1 ? "one argument" : "one or two arguments", "."),
    ImportCallNotNewExpression: "Cannot use new with import(...).",
    ImportCallSpreadArgument: "`...` is not allowed in `import()`.",
    ImportJSONBindingNotDefault: "A JSON module can only be imported with `default`.",
    ImportReflectionHasAssertion: "`import module x` cannot have assertions.",
    ImportReflectionNotBinding: 'Only `import module x from "./module"` is valid.',
    IncompatibleRegExpUVFlags: "The 'u' and 'v' regular expression flags cannot be enabled at the same time.",
    InvalidBigIntLiteral: "Invalid BigIntLiteral.",
    InvalidCodePoint: "Code point out of bounds.",
    InvalidCoverInitializedName: "Invalid shorthand property initializer.",
    InvalidDecimal: "Invalid decimal.",
    InvalidDigit: ({
      radix: B
    }) => "Expected number in radix ".concat(B, "."),
    InvalidEscapeSequence: "Bad character escape sequence.",
    InvalidEscapeSequenceTemplate: "Invalid escape sequence in template.",
    InvalidEscapedReservedWord: ({
      reservedWord: B
    }) => "Escape sequence in keyword ".concat(B, "."),
    InvalidIdentifier: ({
      identifierName: B
    }) => "Invalid identifier ".concat(B, "."),
    InvalidLhs: ({
      ancestor: B
    }) => "Invalid left-hand side in ".concat(u(B), "."),
    InvalidLhsBinding: ({
      ancestor: B
    }) => "Binding invalid left-hand side in ".concat(u(B), "."),
    InvalidNumber: "Invalid number.",
    InvalidOrMissingExponent: "Floating-point numbers require a valid exponent after the 'e'.",
    InvalidOrUnexpectedToken: ({
      unexpected: B
    }) => "Unexpected character '".concat(B, "'."),
    InvalidParenthesizedAssignment: "Invalid parenthesized assignment pattern.",
    InvalidPrivateFieldResolution: ({
      identifierName: B
    }) => "Private name #".concat(B, " is not defined."),
    InvalidPropertyBindingPattern: "Binding member expression.",
    InvalidRecordProperty: "Only properties and spread elements are allowed in record definitions.",
    InvalidRestAssignmentPattern: "Invalid rest operator's argument.",
    LabelRedeclaration: ({
      labelName: B
    }) => "Label '".concat(B, "' is already declared."),
    LetInLexicalBinding: "'let' is not allowed to be used as a name in 'let' or 'const' declarations.",
    LineTerminatorBeforeArrow: "No line break is allowed before '=>'.",
    MalformedRegExpFlags: "Invalid regular expression flag.",
    MissingClassName: "A class name is required.",
    MissingEqInAssignment: "Only '=' operator can be used for specifying default value.",
    MissingSemicolon: "Missing semicolon.",
    MissingPlugin: ({
      missingPlugin: B
    }) => "This experimental syntax requires enabling the parser plugin: ".concat(B.map((d) => JSON.stringify(d)).join(", "), "."),
    MissingOneOfPlugins: ({
      missingPlugin: B
    }) => "This experimental syntax requires enabling one of the following parser plugin(s): ".concat(B.map((d) => JSON.stringify(d)).join(", "), "."),
    MissingUnicodeEscape: "Expecting Unicode escape sequence \\uXXXX.",
    MixingCoalesceWithLogical: "Nullish coalescing operator(??) requires parens when mixing with logical operators.",
    ModuleAttributeDifferentFromType: "The only accepted module attribute is `type`.",
    ModuleAttributeInvalidValue: "Only string literals are allowed as module attribute values.",
    ModuleAttributesWithDuplicateKeys: ({
      key: B
    }) => 'Duplicate key "'.concat(B, '" is not allowed in module attributes.'),
    ModuleExportNameHasLoneSurrogate: ({
      surrogateCharCode: B
    }) => "An export name cannot include a lone surrogate, found '\\u".concat(B.toString(16), "'."),
    ModuleExportUndefined: ({
      localName: B
    }) => "Export '".concat(B, "' is not defined."),
    MultipleDefaultsInSwitch: "Multiple default clauses.",
    NewlineAfterThrow: "Illegal newline after throw.",
    NoCatchOrFinally: "Missing catch or finally clause.",
    NumberIdentifier: "Identifier directly after number.",
    NumericSeparatorInEscapeSequence: "Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.",
    ObsoleteAwaitStar: "'await*' has been removed from the async functions proposal. Use Promise.all() instead.",
    OptionalChainingNoNew: "Constructors in/after an Optional Chain are not allowed.",
    OptionalChainingNoTemplate: "Tagged Template Literals are not allowed in optionalChain.",
    OverrideOnConstructor: "'override' modifier cannot appear on a constructor declaration.",
    ParamDupe: "Argument name clash.",
    PatternHasAccessor: "Object pattern can't contain getter or setter.",
    PatternHasMethod: "Object pattern can't contain methods.",
    PrivateInExpectedIn: ({
      identifierName: B
    }) => "Private names are only allowed in property accesses (`obj.#".concat(B, "`) or in `in` expressions (`#").concat(B, " in obj`)."),
    PrivateNameRedeclaration: ({
      identifierName: B
    }) => "Duplicate private name #".concat(B, "."),
    RecordExpressionBarIncorrectEndSyntaxType: "Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
    RecordExpressionBarIncorrectStartSyntaxType: "Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
    RecordExpressionHashIncorrectStartSyntaxType: "Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",
    RecordNoProto: "'__proto__' is not allowed in Record expressions.",
    RestTrailingComma: "Unexpected trailing comma after rest element.",
    SloppyFunction: "In non-strict mode code, functions can only be declared at top level or inside a block.",
    SloppyFunctionAnnexB: "In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.",
    StaticPrototype: "Classes may not have static property named prototype.",
    SuperNotAllowed: "`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?",
    SuperPrivateField: "Private fields can't be accessed on super.",
    TrailingDecorator: "Decorators must be attached to a class element.",
    TupleExpressionBarIncorrectEndSyntaxType: "Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
    TupleExpressionBarIncorrectStartSyntaxType: "Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
    TupleExpressionHashIncorrectStartSyntaxType: "Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",
    UnexpectedArgumentPlaceholder: "Unexpected argument placeholder.",
    UnexpectedAwaitAfterPipelineBody: 'Unexpected "await" after pipeline body; await must have parentheses in minimal proposal.',
    UnexpectedDigitAfterHash: "Unexpected digit after hash token.",
    UnexpectedImportExport: "'import' and 'export' may only appear at the top level.",
    UnexpectedKeyword: ({
      keyword: B
    }) => "Unexpected keyword '".concat(B, "'."),
    UnexpectedLeadingDecorator: "Leading decorators must be attached to a class declaration.",
    UnexpectedLexicalDeclaration: "Lexical declaration cannot appear in a single-statement context.",
    UnexpectedNewTarget: "`new.target` can only be used in functions or class properties.",
    UnexpectedNumericSeparator: "A numeric separator is only allowed between two digits.",
    UnexpectedPrivateField: "Unexpected private name.",
    UnexpectedReservedWord: ({
      reservedWord: B
    }) => "Unexpected reserved word '".concat(B, "'."),
    UnexpectedSuper: "'super' is only allowed in object methods and classes.",
    UnexpectedToken: ({
      expected: B,
      unexpected: d
    }) => "Unexpected token".concat(d ? " '".concat(d, "'.") : "").concat(B ? ', expected "'.concat(B, '"') : ""),
    UnexpectedTokenUnaryExponentiation: "Illegal expression. Wrap left hand side or entire exponentiation in parentheses.",
    UnexpectedUsingDeclaration: "Using declaration cannot appear in the top level when source type is `script`.",
    UnsupportedBind: "Binding should be performed on object property.",
    UnsupportedDecoratorExport: "A decorated export must export a class declaration.",
    UnsupportedDefaultExport: "Only expressions, functions or classes are allowed as the `default` export.",
    UnsupportedImport: "`import` can only be used in `import()` or `import.meta`.",
    UnsupportedMetaProperty: ({
      target: B,
      onlyValidPropertyName: d
    }) => "The only valid meta property for ".concat(B, " is ").concat(B, ".").concat(d, "."),
    UnsupportedParameterDecorator: "Decorators cannot be used to decorate parameters.",
    UnsupportedPropertyDecorator: "Decorators cannot be used to decorate object literal properties.",
    UnsupportedSuper: "'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).",
    UnterminatedComment: "Unterminated comment.",
    UnterminatedRegExp: "Unterminated regular expression.",
    UnterminatedString: "Unterminated string constant.",
    UnterminatedTemplate: "Unterminated template.",
    UsingDeclarationHasBindingPattern: "Using declaration cannot have destructuring patterns.",
    VarRedeclaration: ({
      identifierName: B
    }) => "Identifier '".concat(B, "' has already been declared."),
    YieldBindingIdentifier: "Can not use 'yield' as identifier inside a generator.",
    YieldInParameter: "Yield expression is not allowed in formal parameters.",
    ZeroDigitNumericSeparator: "Numeric separator can not be used after leading 0."
  }, f = {
    StrictDelete: "Deleting local variable in strict mode.",
    StrictEvalArguments: ({
      referenceName: B
    }) => "Assigning to '".concat(B, "' in strict mode."),
    StrictEvalArgumentsBinding: ({
      bindingName: B
    }) => "Binding '".concat(B, "' in strict mode."),
    StrictFunction: "In strict mode code, functions can only be declared at top level or inside a block.",
    StrictNumericEscape: "The only valid numeric escape in strict mode is '\\0'.",
    StrictOctalLiteral: "Legacy octal literals are not allowed in strict mode.",
    StrictWith: "'with' in strict mode."
  };
  const h = /* @__PURE__ */ new Set(["ArrowFunctionExpression", "AssignmentExpression", "ConditionalExpression", "YieldExpression"]);
  var m = {
    PipeBodyIsTighter: "Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.",
    PipeTopicRequiresHackPipes: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.',
    PipeTopicUnbound: "Topic reference is unbound; it must be inside a pipe body.",
    PipeTopicUnconfiguredToken: ({
      token: B
    }) => "Invalid topic token ".concat(B, ". In order to use ").concat(B, ' as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "').concat(B, '" }.'),
    PipeTopicUnused: "Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.",
    PipeUnparenthesizedBody: ({
      type: B
    }) => "Hack-style pipe body cannot be an unparenthesized ".concat(u({
      type: B
    }), "; please wrap it in parentheses."),
    PipelineBodyNoArrow: 'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.',
    PipelineBodySequenceExpression: "Pipeline body may not be a comma-separated sequence expression.",
    PipelineHeadSequenceExpression: "Pipeline head should not be a comma-separated sequence expression.",
    PipelineTopicUnused: "Pipeline is in topic style but does not use topic reference.",
    PrimaryTopicNotAllowed: "Topic reference was used in a lexical context without topic binding.",
    PrimaryTopicRequiresSmartPipeline: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.'
  };
  const g = ["toMessage"], y = ["message"];
  function v(B) {
    let {
      toMessage: d
    } = B, p = e(B, g);
    return function b({
      loc: _,
      details: H
    }) {
      return a(SyntaxError, Object.assign({}, p, {
        loc: _
      }), {
        clone(ee = {}) {
          const de = ee.loc || {};
          return b({
            loc: new t("line" in de ? de.line : this.loc.line, "column" in de ? de.column : this.loc.column, "index" in de ? de.index : this.loc.index),
            details: Object.assign({}, this.details, ee.details)
          });
        },
        details: {
          value: H,
          enumerable: !1
        },
        message: {
          get() {
            return "".concat(d(this.details), " (").concat(this.loc.line, ":").concat(this.loc.column, ")");
          },
          set(ee) {
            Object.defineProperty(this, "message", {
              value: ee
            });
          }
        },
        pos: {
          reflect: "loc.index",
          enumerable: !0
        },
        missingPlugin: "missingPlugin" in H && {
          reflect: "details.missingPlugin",
          enumerable: !0
        }
      });
    };
  }
  function T(B, d) {
    if (Array.isArray(B))
      return (b) => T(b, B[0]);
    const p = {};
    for (const b of Object.keys(B)) {
      const _ = B[b], H = typeof _ == "string" ? {
        message: () => _
      } : typeof _ == "function" ? {
        message: _
      } : _, {
        message: ee
      } = H, de = e(H, y), Ge = typeof ee == "string" ? () => ee : ee;
      p[b] = v(Object.assign({
        code: n.SyntaxError,
        reasonCode: b,
        toMessage: Ge
      }, d ? {
        syntaxPlugin: d
      } : {}, de));
    }
    return p;
  }
  const S = Object.assign({}, T(o), T(c), T(f), T(Sne || (Sne = at(["pipelineOperator"])))(m)), {
    defineProperty: P
  } = Object, x = (B, d) => P(B, d, {
    enumerable: !1,
    value: B[d]
  });
  function C(B) {
    return B.loc.start && x(B.loc.start, "index"), B.loc.end && x(B.loc.end, "index"), B;
  }
  var D = (B) => class extends B {
    parse() {
      const p = C(super.parse());
      return this.options.tokens && (p.tokens = p.tokens.map(C)), p;
    }
    parseRegExpLiteral({
      pattern: p,
      flags: b
    }) {
      let _ = null;
      try {
        _ = new RegExp(p, b);
      } catch (ee) {
      }
      const H = this.estreeParseLiteral(_);
      return H.regex = {
        pattern: p,
        flags: b
      }, H;
    }
    parseBigIntLiteral(p) {
      let b;
      try {
        b = BigInt(p);
      } catch (H) {
        b = null;
      }
      const _ = this.estreeParseLiteral(b);
      return _.bigint = String(_.value || p), _;
    }
    parseDecimalLiteral(p) {
      const _ = this.estreeParseLiteral(null);
      return _.decimal = String(_.value || p), _;
    }
    estreeParseLiteral(p) {
      return this.parseLiteral(p, "Literal");
    }
    parseStringLiteral(p) {
      return this.estreeParseLiteral(p);
    }
    parseNumericLiteral(p) {
      return this.estreeParseLiteral(p);
    }
    parseNullLiteral() {
      return this.estreeParseLiteral(null);
    }
    parseBooleanLiteral(p) {
      return this.estreeParseLiteral(p);
    }
    directiveToStmt(p) {
      const b = p.value;
      delete p.value, b.type = "Literal", b.raw = b.extra.raw, b.value = b.extra.expressionValue;
      const _ = p;
      return _.type = "ExpressionStatement", _.expression = b, _.directive = b.extra.rawValue, delete b.extra, _;
    }
    initFunction(p, b) {
      super.initFunction(p, b), p.expression = !1;
    }
    checkDeclaration(p) {
      p != null && this.isObjectProperty(p) ? this.checkDeclaration(p.value) : super.checkDeclaration(p);
    }
    getObjectOrClassMethodParams(p) {
      return p.value.params;
    }
    isValidDirective(p) {
      var b;
      return p.type === "ExpressionStatement" && p.expression.type === "Literal" && typeof p.expression.value == "string" && !((b = p.expression.extra) != null && b.parenthesized);
    }
    parseBlockBody(p, b, _, H, ee) {
      super.parseBlockBody(p, b, _, H, ee);
      const de = p.directives.map((Ge) => this.directiveToStmt(Ge));
      p.body = de.concat(p.body), delete p.directives;
    }
    pushClassMethod(p, b, _, H, ee, de) {
      this.parseMethod(b, _, H, ee, de, "ClassMethod", !0), b.typeParameters && (b.value.typeParameters = b.typeParameters, delete b.typeParameters), p.body.push(b);
    }
    parsePrivateName() {
      const p = super.parsePrivateName();
      return this.getPluginOption("estree", "classFeatures") ? this.convertPrivateNameToPrivateIdentifier(p) : p;
    }
    convertPrivateNameToPrivateIdentifier(p) {
      const b = super.getPrivateNameSV(p);
      return p = p, delete p.id, p.name = b, p.type = "PrivateIdentifier", p;
    }
    isPrivateName(p) {
      return this.getPluginOption("estree", "classFeatures") ? p.type === "PrivateIdentifier" : super.isPrivateName(p);
    }
    getPrivateNameSV(p) {
      return this.getPluginOption("estree", "classFeatures") ? p.name : super.getPrivateNameSV(p);
    }
    parseLiteral(p, b) {
      const _ = super.parseLiteral(p, b);
      return _.raw = _.extra.raw, delete _.extra, _;
    }
    parseFunctionBody(p, b, _ = !1) {
      super.parseFunctionBody(p, b, _), p.expression = p.body.type !== "BlockStatement";
    }
    parseMethod(p, b, _, H, ee, de, Ge = !1) {
      let Ye = this.startNode();
      return Ye.kind = p.kind, Ye = super.parseMethod(Ye, b, _, H, ee, de, Ge), Ye.type = "FunctionExpression", delete Ye.kind, p.value = Ye, de === "ClassPrivateMethod" && (p.computed = !1), this.finishNode(p, "MethodDefinition");
    }
    parseClassProperty(...p) {
      const b = super.parseClassProperty(...p);
      return this.getPluginOption("estree", "classFeatures") && (b.type = "PropertyDefinition"), b;
    }
    parseClassPrivateProperty(...p) {
      const b = super.parseClassPrivateProperty(...p);
      return this.getPluginOption("estree", "classFeatures") && (b.type = "PropertyDefinition", b.computed = !1), b;
    }
    parseObjectMethod(p, b, _, H, ee) {
      const de = super.parseObjectMethod(p, b, _, H, ee);
      return de && (de.type = "Property", de.kind === "method" && (de.kind = "init"), de.shorthand = !1), de;
    }
    parseObjectProperty(p, b, _, H) {
      const ee = super.parseObjectProperty(p, b, _, H);
      return ee && (ee.kind = "init", ee.type = "Property"), ee;
    }
    isValidLVal(p, b, _) {
      return p === "Property" ? "value" : super.isValidLVal(p, b, _);
    }
    isAssignable(p, b) {
      return p != null && this.isObjectProperty(p) ? this.isAssignable(p.value, b) : super.isAssignable(p, b);
    }
    toAssignable(p, b = !1) {
      if (p != null && this.isObjectProperty(p)) {
        const {
          key: _,
          value: H
        } = p;
        this.isPrivateName(_) && this.classScope.usePrivateName(this.getPrivateNameSV(_), _.loc.start), this.toAssignable(H, b);
      } else
        super.toAssignable(p, b);
    }
    toAssignableObjectExpressionProp(p, b, _) {
      p.kind === "get" || p.kind === "set" ? this.raise(S.PatternHasAccessor, {
        at: p.key
      }) : p.method ? this.raise(S.PatternHasMethod, {
        at: p.key
      }) : super.toAssignableObjectExpressionProp(p, b, _);
    }
    finishCallExpression(p, b) {
      const _ = super.finishCallExpression(p, b);
      if (_.callee.type === "Import") {
        if (_.type = "ImportExpression", _.source = _.arguments[0], this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions")) {
          var H;
          _.attributes = (H = _.arguments[1]) != null ? H : null;
        }
        delete _.arguments, delete _.callee;
      }
      return _;
    }
    toReferencedArguments(p) {
      p.type !== "ImportExpression" && super.toReferencedArguments(p);
    }
    parseExport(p, b) {
      const _ = this.state.lastTokStartLoc, H = super.parseExport(p, b);
      switch (H.type) {
        case "ExportAllDeclaration":
          H.exported = null;
          break;
        case "ExportNamedDeclaration":
          H.specifiers.length === 1 && H.specifiers[0].type === "ExportNamespaceSpecifier" && (H.type = "ExportAllDeclaration", H.exported = H.specifiers[0].exported, delete H.specifiers);
        case "ExportDefaultDeclaration":
          {
            var ee;
            const {
              declaration: de
            } = H;
            (de == null ? void 0 : de.type) === "ClassDeclaration" && ((ee = de.decorators) == null ? void 0 : ee.length) > 0 && de.start === H.start && this.resetStartLocation(H, _);
          }
          break;
      }
      return H;
    }
    parseSubscript(p, b, _, H) {
      const ee = super.parseSubscript(p, b, _, H);
      if (H.optionalChainMember) {
        if ((ee.type === "OptionalMemberExpression" || ee.type === "OptionalCallExpression") && (ee.type = ee.type.substring(8)), H.stop) {
          const de = this.startNodeAtNode(ee);
          return de.expression = ee, this.finishNode(de, "ChainExpression");
        }
      } else
        (ee.type === "MemberExpression" || ee.type === "CallExpression") && (ee.optional = !1);
      return ee;
    }
    hasPropertyAsPrivateName(p) {
      return p.type === "ChainExpression" && (p = p.expression), super.hasPropertyAsPrivateName(p);
    }
    isObjectProperty(p) {
      return p.type === "Property" && p.kind === "init" && !p.method;
    }
    isObjectMethod(p) {
      return p.method || p.kind === "get" || p.kind === "set";
    }
    finishNodeAt(p, b, _) {
      return C(super.finishNodeAt(p, b, _));
    }
    resetStartLocation(p, b) {
      super.resetStartLocation(p, b), C(p);
    }
    resetEndLocation(p, b = this.state.lastTokEndLoc) {
      super.resetEndLocation(p, b), C(p);
    }
  };
  class w {
    constructor(d, p) {
      this.token = void 0, this.preserveSpace = void 0, this.token = d, this.preserveSpace = !!p;
    }
  }
  const A = {
    brace: new w("{"),
    j_oTag: new w("<tag"),
    j_cTag: new w("</tag"),
    j_expr: new w("<tag>...</tag>", !0)
  };
  A.template = new w("`", !0);
  const I = !0, L = !0, O = !0, F = !0, q = !0, j = !0;
  class N {
    constructor(d, p = {}) {
      this.label = void 0, this.keyword = void 0, this.beforeExpr = void 0, this.startsExpr = void 0, this.rightAssociative = void 0, this.isLoop = void 0, this.isAssign = void 0, this.prefix = void 0, this.postfix = void 0, this.binop = void 0, this.label = d, this.keyword = p.keyword, this.beforeExpr = !!p.beforeExpr, this.startsExpr = !!p.startsExpr, this.rightAssociative = !!p.rightAssociative, this.isLoop = !!p.isLoop, this.isAssign = !!p.isAssign, this.prefix = !!p.prefix, this.postfix = !!p.postfix, this.binop = p.binop != null ? p.binop : null, this.updateContext = null;
    }
  }
  const M = /* @__PURE__ */ new Map();
  function R(B, d = {}) {
    d.keyword = B;
    const p = ne(B, d);
    return M.set(B, p), p;
  }
  function $(B, d) {
    return ne(B, {
      beforeExpr: I,
      binop: d
    });
  }
  let V = -1;
  const K = [], z = [], W = [], Y = [], G = [], le = [];
  function ne(B, d = {}) {
    var p, b, _, H;
    return ++V, z.push(B), W.push((p = d.binop) != null ? p : -1), Y.push((b = d.beforeExpr) != null ? b : !1), G.push((_ = d.startsExpr) != null ? _ : !1), le.push((H = d.prefix) != null ? H : !1), K.push(new N(B, d)), V;
  }
  function ae(B, d = {}) {
    var p, b, _, H;
    return ++V, M.set(B, V), z.push(B), W.push((p = d.binop) != null ? p : -1), Y.push((b = d.beforeExpr) != null ? b : !1), G.push((_ = d.startsExpr) != null ? _ : !1), le.push((H = d.prefix) != null ? H : !1), K.push(new N("name", d)), V;
  }
  const be = {
    bracketL: ne("[", {
      beforeExpr: I,
      startsExpr: L
    }),
    bracketHashL: ne("#[", {
      beforeExpr: I,
      startsExpr: L
    }),
    bracketBarL: ne("[|", {
      beforeExpr: I,
      startsExpr: L
    }),
    bracketR: ne("]"),
    bracketBarR: ne("|]"),
    braceL: ne("{", {
      beforeExpr: I,
      startsExpr: L
    }),
    braceBarL: ne("{|", {
      beforeExpr: I,
      startsExpr: L
    }),
    braceHashL: ne("#{", {
      beforeExpr: I,
      startsExpr: L
    }),
    braceR: ne("}"),
    braceBarR: ne("|}"),
    parenL: ne("(", {
      beforeExpr: I,
      startsExpr: L
    }),
    parenR: ne(")"),
    comma: ne(",", {
      beforeExpr: I
    }),
    semi: ne(";", {
      beforeExpr: I
    }),
    colon: ne(":", {
      beforeExpr: I
    }),
    doubleColon: ne("::", {
      beforeExpr: I
    }),
    dot: ne("."),
    question: ne("?", {
      beforeExpr: I
    }),
    questionDot: ne("?."),
    arrow: ne("=>", {
      beforeExpr: I
    }),
    template: ne("template"),
    ellipsis: ne("...", {
      beforeExpr: I
    }),
    backQuote: ne("`", {
      startsExpr: L
    }),
    dollarBraceL: ne("${", {
      beforeExpr: I,
      startsExpr: L
    }),
    templateTail: ne("...`", {
      startsExpr: L
    }),
    templateNonTail: ne("...${", {
      beforeExpr: I,
      startsExpr: L
    }),
    at: ne("@"),
    hash: ne("#", {
      startsExpr: L
    }),
    interpreterDirective: ne("#!..."),
    eq: ne("=", {
      beforeExpr: I,
      isAssign: F
    }),
    assign: ne("_=", {
      beforeExpr: I,
      isAssign: F
    }),
    slashAssign: ne("_=", {
      beforeExpr: I,
      isAssign: F
    }),
    xorAssign: ne("_=", {
      beforeExpr: I,
      isAssign: F
    }),
    moduloAssign: ne("_=", {
      beforeExpr: I,
      isAssign: F
    }),
    incDec: ne("++/--", {
      prefix: q,
      postfix: j,
      startsExpr: L
    }),
    bang: ne("!", {
      beforeExpr: I,
      prefix: q,
      startsExpr: L
    }),
    tilde: ne("~", {
      beforeExpr: I,
      prefix: q,
      startsExpr: L
    }),
    doubleCaret: ne("^^", {
      startsExpr: L
    }),
    doubleAt: ne("@@", {
      startsExpr: L
    }),
    pipeline: $("|>", 0),
    nullishCoalescing: $("??", 1),
    logicalOR: $("||", 1),
    logicalAND: $("&&", 2),
    bitwiseOR: $("|", 3),
    bitwiseXOR: $("^", 4),
    bitwiseAND: $("&", 5),
    equality: $("==/!=/===/!==", 6),
    lt: $("</>/<=/>=", 7),
    gt: $("</>/<=/>=", 7),
    relational: $("</>/<=/>=", 7),
    bitShift: $("<</>>/>>>", 8),
    bitShiftL: $("<</>>/>>>", 8),
    bitShiftR: $("<</>>/>>>", 8),
    plusMin: ne("+/-", {
      beforeExpr: I,
      binop: 9,
      prefix: q,
      startsExpr: L
    }),
    modulo: ne("%", {
      binop: 10,
      startsExpr: L
    }),
    star: ne("*", {
      binop: 10
    }),
    slash: $("/", 10),
    exponent: ne("**", {
      beforeExpr: I,
      binop: 11,
      rightAssociative: !0
    }),
    _in: R("in", {
      beforeExpr: I,
      binop: 7
    }),
    _instanceof: R("instanceof", {
      beforeExpr: I,
      binop: 7
    }),
    _break: R("break"),
    _case: R("case", {
      beforeExpr: I
    }),
    _catch: R("catch"),
    _continue: R("continue"),
    _debugger: R("debugger"),
    _default: R("default", {
      beforeExpr: I
    }),
    _else: R("else", {
      beforeExpr: I
    }),
    _finally: R("finally"),
    _function: R("function", {
      startsExpr: L
    }),
    _if: R("if"),
    _return: R("return", {
      beforeExpr: I
    }),
    _switch: R("switch"),
    _throw: R("throw", {
      beforeExpr: I,
      prefix: q,
      startsExpr: L
    }),
    _try: R("try"),
    _var: R("var"),
    _const: R("const"),
    _with: R("with"),
    _new: R("new", {
      beforeExpr: I,
      startsExpr: L
    }),
    _this: R("this", {
      startsExpr: L
    }),
    _super: R("super", {
      startsExpr: L
    }),
    _class: R("class", {
      startsExpr: L
    }),
    _extends: R("extends", {
      beforeExpr: I
    }),
    _export: R("export"),
    _import: R("import", {
      startsExpr: L
    }),
    _null: R("null", {
      startsExpr: L
    }),
    _true: R("true", {
      startsExpr: L
    }),
    _false: R("false", {
      startsExpr: L
    }),
    _typeof: R("typeof", {
      beforeExpr: I,
      prefix: q,
      startsExpr: L
    }),
    _void: R("void", {
      beforeExpr: I,
      prefix: q,
      startsExpr: L
    }),
    _delete: R("delete", {
      beforeExpr: I,
      prefix: q,
      startsExpr: L
    }),
    _do: R("do", {
      isLoop: O,
      beforeExpr: I
    }),
    _for: R("for", {
      isLoop: O
    }),
    _while: R("while", {
      isLoop: O
    }),
    _as: ae("as", {
      startsExpr: L
    }),
    _assert: ae("assert", {
      startsExpr: L
    }),
    _async: ae("async", {
      startsExpr: L
    }),
    _await: ae("await", {
      startsExpr: L
    }),
    _from: ae("from", {
      startsExpr: L
    }),
    _get: ae("get", {
      startsExpr: L
    }),
    _let: ae("let", {
      startsExpr: L
    }),
    _meta: ae("meta", {
      startsExpr: L
    }),
    _of: ae("of", {
      startsExpr: L
    }),
    _sent: ae("sent", {
      startsExpr: L
    }),
    _set: ae("set", {
      startsExpr: L
    }),
    _static: ae("static", {
      startsExpr: L
    }),
    _using: ae("using", {
      startsExpr: L
    }),
    _yield: ae("yield", {
      startsExpr: L
    }),
    _asserts: ae("asserts", {
      startsExpr: L
    }),
    _checks: ae("checks", {
      startsExpr: L
    }),
    _exports: ae("exports", {
      startsExpr: L
    }),
    _global: ae("global", {
      startsExpr: L
    }),
    _implements: ae("implements", {
      startsExpr: L
    }),
    _intrinsic: ae("intrinsic", {
      startsExpr: L
    }),
    _infer: ae("infer", {
      startsExpr: L
    }),
    _is: ae("is", {
      startsExpr: L
    }),
    _mixins: ae("mixins", {
      startsExpr: L
    }),
    _proto: ae("proto", {
      startsExpr: L
    }),
    _require: ae("require", {
      startsExpr: L
    }),
    _satisfies: ae("satisfies", {
      startsExpr: L
    }),
    _keyof: ae("keyof", {
      startsExpr: L
    }),
    _readonly: ae("readonly", {
      startsExpr: L
    }),
    _unique: ae("unique", {
      startsExpr: L
    }),
    _abstract: ae("abstract", {
      startsExpr: L
    }),
    _declare: ae("declare", {
      startsExpr: L
    }),
    _enum: ae("enum", {
      startsExpr: L
    }),
    _module: ae("module", {
      startsExpr: L
    }),
    _namespace: ae("namespace", {
      startsExpr: L
    }),
    _interface: ae("interface", {
      startsExpr: L
    }),
    _type: ae("type", {
      startsExpr: L
    }),
    _opaque: ae("opaque", {
      startsExpr: L
    }),
    name: ne("name", {
      startsExpr: L
    }),
    string: ne("string", {
      startsExpr: L
    }),
    num: ne("num", {
      startsExpr: L
    }),
    bigint: ne("bigint", {
      startsExpr: L
    }),
    decimal: ne("decimal", {
      startsExpr: L
    }),
    regexp: ne("regexp", {
      startsExpr: L
    }),
    privateName: ne("#name", {
      startsExpr: L
    }),
    eof: ne("eof"),
    jsxName: ne("jsxName"),
    jsxText: ne("jsxText", {
      beforeExpr: !0
    }),
    jsxTagStart: ne("jsxTagStart", {
      startsExpr: !0
    }),
    jsxTagEnd: ne("jsxTagEnd"),
    placeholder: ne("%%", {
      startsExpr: !0
    })
  };
  function ye(B) {
    return B >= 93 && B <= 130;
  }
  function fe(B) {
    return B <= 92;
  }
  function Z(B) {
    return B >= 58 && B <= 130;
  }
  function ue(B) {
    return B >= 58 && B <= 134;
  }
  function me(B) {
    return Y[B];
  }
  function xe(B) {
    return G[B];
  }
  function Pe(B) {
    return B >= 29 && B <= 33;
  }
  function ve(B) {
    return B >= 127 && B <= 129;
  }
  function Xe(B) {
    return B >= 90 && B <= 92;
  }
  function st(B) {
    return B >= 58 && B <= 92;
  }
  function Se(B) {
    return B >= 39 && B <= 59;
  }
  function oe(B) {
    return B === 34;
  }
  function te(B) {
    return le[B];
  }
  function se(B) {
    return B >= 119 && B <= 121;
  }
  function re(B) {
    return B >= 122 && B <= 128;
  }
  function Te(B) {
    return z[B];
  }
  function ze(B) {
    return W[B];
  }
  function Ze(B) {
    return B === 57;
  }
  function pt(B) {
    return B >= 24 && B <= 25;
  }
  function ut(B) {
    return K[B];
  }
  K[8].updateContext = (B) => {
    B.pop();
  }, K[5].updateContext = K[7].updateContext = K[23].updateContext = (B) => {
    B.push(A.brace);
  }, K[22].updateContext = (B) => {
    B[B.length - 1] === A.template ? B.pop() : B.push(A.template);
  }, K[140].updateContext = (B) => {
    B.push(A.j_expr, A.j_oTag);
  };
  let bt = "ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢎࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೝೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꟊꟐꟑꟓꟕ-ꟙꟲ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ﬀ-ﬆﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼＡ-Ｚａ-ｚｦ-ﾾￂ-ￇￊ-ￏￒ-ￗￚ-ￜ", vt = "‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࢘-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-ᫎᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏０-９＿";
  const ge = new RegExp("[" + bt + "]"), pe = new RegExp("[" + bt + vt + "]");
  bt = vt = null;
  const $e = [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, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 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, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 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, 16, 0, 30, 2, 3, 0, 15, 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, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 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, 4153, 7, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938, 6, 4191], ie = [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, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 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, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 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, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
  function Q(B, d) {
    let p = 65536;
    for (let b = 0, _ = d.length; b < _; b += 2) {
      if (p += d[b], p > B)
        return !1;
      if (p += d[b + 1], p >= B)
        return !0;
    }
    return !1;
  }
  function X(B) {
    return B < 65 ? B === 36 : B <= 90 ? !0 : B < 97 ? B === 95 : B <= 122 ? !0 : B <= 65535 ? B >= 170 && ge.test(String.fromCharCode(B)) : Q(B, $e);
  }
  function ce(B) {
    return B < 48 ? B === 36 : B < 58 ? !0 : B < 65 ? !1 : B <= 90 ? !0 : B < 97 ? B === 95 : B <= 122 ? !0 : B <= 65535 ? B >= 170 && pe.test(String.fromCharCode(B)) : Q(B, $e) || Q(B, ie);
  }
  const U = {
    keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"],
    strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"],
    strictBind: ["eval", "arguments"]
  }, Ee = new Set(U.keyword), Qe = new Set(U.strict), ft = new Set(U.strictBind);
  function ht(B, d) {
    return d && B === "await" || B === "enum";
  }
  function Rt(B, d) {
    return ht(B, d) || Qe.has(B);
  }
  function Ot(B) {
    return ft.has(B);
  }
  function Tt(B, d) {
    return Rt(B, d) || Ot(B);
  }
  function lt(B) {
    return Ee.has(B);
  }
  function lr(B, d, p) {
    return B === 64 && d === 64 && X(p);
  }
  const kr = /* @__PURE__ */ new Set(["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete", "implements", "interface", "let", "package", "private", "protected", "public", "static", "yield", "eval", "arguments", "enum", "await"]);
  function Ai(B) {
    return kr.has(B);
  }
  const an = 0, Nn = 1, on = 2, _n = 4, en = 8, bi = 16, No = 32, us = 64, ga = 128, As = 256, ba = Nn | on | ga | As, Bn = 1, cs = 2, Do = 4, ps = 8, va = 16, Lo = 64, Ta = 128, Ka = 256, za = 512, Ga = 1024, Ya = 2048, Us = 4096, Sa = 8192, Mo = Bn | cs | ps | Ta | Sa, Cs = Bn | 0 | ps | Sa, tu = Bn | 0 | ps | 0, xa = Bn | 0 | Do | 0, Ro = Bn | 0 | va | 0, ru = 0 | cs | 0 | Ta, iu = 0 | cs | 0 | 0, Bo = Bn | cs | ps | Ka | Sa, Fo = 0 | Ga, Zn = 0 | Lo, nu = Bn | 0 | 0 | Lo, su = Bo | za, au = 0 | Ga, jo = 0 | cs | 0 | Us, ou = Ya, Ea = 4, Xa = 2, Ja = 1, Qa = Xa | Ja, lu = Xa | Ea, uu = Ja | Ea, cu = Xa, pu = Ja, Za = 0;
  class eo {
    constructor(d) {
      this.var = /* @__PURE__ */ new Set(), this.lexical = /* @__PURE__ */ new Set(), this.functions = /* @__PURE__ */ new Set(), this.flags = d;
    }
  }
  class to {
    constructor(d, p) {
      this.parser = void 0, this.scopeStack = [], this.inModule = void 0, this.undefinedExports = /* @__PURE__ */ new Map(), this.parser = d, this.inModule = p;
    }
    get inTopLevel() {
      return (this.currentScope().flags & Nn) > 0;
    }
    get inFunction() {
      return (this.currentVarScopeFlags() & on) > 0;
    }
    get allowSuper() {
      return (this.currentThisScopeFlags() & bi) > 0;
    }
    get allowDirectSuper() {
      return (this.currentThisScopeFlags() & No) > 0;
    }
    get inClass() {
      return (this.currentThisScopeFlags() & us) > 0;
    }
    get inClassAndNotInNonArrowFunction() {
      const d = this.currentThisScopeFlags();
      return (d & us) > 0 && (d & on) === 0;
    }
    get inStaticBlock() {
      for (let d = this.scopeStack.length - 1; ; d--) {
        const {
          flags: p
        } = this.scopeStack[d];
        if (p & ga)
          return !0;
        if (p & (ba | us))
          return !1;
      }
    }
    get inNonArrowFunction() {
      return (this.currentThisScopeFlags() & on) > 0;
    }
    get treatFunctionsAsVar() {
      return this.treatFunctionsAsVarInScope(this.currentScope());
    }
    createScope(d) {
      return new eo(d);
    }
    enter(d) {
      this.scopeStack.push(this.createScope(d));
    }
    exit() {
      return this.scopeStack.pop().flags;
    }
    treatFunctionsAsVarInScope(d) {
      return !!(d.flags & (on | ga) || !this.parser.inModule && d.flags & Nn);
    }
    declareName(d, p, b) {
      let _ = this.currentScope();
      if (p & ps || p & va)
        this.checkRedeclarationInScope(_, d, p, b), p & va ? _.functions.add(d) : _.lexical.add(d), p & ps && this.maybeExportDefined(_, d);
      else if (p & Do)
        for (let H = this.scopeStack.length - 1; H >= 0 && (_ = this.scopeStack[H], this.checkRedeclarationInScope(_, d, p, b), _.var.add(d), this.maybeExportDefined(_, d), !(_.flags & ba)); --H)
          ;
      this.parser.inModule && _.flags & Nn && this.undefinedExports.delete(d);
    }
    maybeExportDefined(d, p) {
      this.parser.inModule && d.flags & Nn && this.undefinedExports.delete(p);
    }
    checkRedeclarationInScope(d, p, b, _) {
      this.isRedeclaredInScope(d, p, b) && this.parser.raise(S.VarRedeclaration, {
        at: _,
        identifierName: p
      });
    }
    isRedeclaredInScope(d, p, b) {
      return b & Bn ? b & ps ? d.lexical.has(p) || d.functions.has(p) || d.var.has(p) : b & va ? d.lexical.has(p) || !this.treatFunctionsAsVarInScope(d) && d.var.has(p) : d.lexical.has(p) && !(d.flags & en && d.lexical.values().next().value === p) || !this.treatFunctionsAsVarInScope(d) && d.functions.has(p) : !1;
    }
    checkLocalExport(d) {
      const {
        name: p
      } = d, b = this.scopeStack[0];
      !b.lexical.has(p) && !b.var.has(p) && !b.functions.has(p) && this.undefinedExports.set(p, d.loc.start);
    }
    currentScope() {
      return this.scopeStack[this.scopeStack.length - 1];
    }
    currentVarScopeFlags() {
      for (let d = this.scopeStack.length - 1; ; d--) {
        const {
          flags: p
        } = this.scopeStack[d];
        if (p & ba)
          return p;
      }
    }
    currentThisScopeFlags() {
      for (let d = this.scopeStack.length - 1; ; d--) {
        const {
          flags: p
        } = this.scopeStack[d];
        if (p & (ba | us) && !(p & _n))
          return p;
      }
    }
  }
  class fu extends eo {
    constructor(...d) {
      super(...d), this.declareFunctions = /* @__PURE__ */ new Set();
    }
  }
  class hu extends to {
    createScope(d) {
      return new fu(d);
    }
    declareName(d, p, b) {
      const _ = this.currentScope();
      if (p & Ya) {
        this.checkRedeclarationInScope(_, d, p, b), this.maybeExportDefined(_, d), _.declareFunctions.add(d);
        return;
      }
      super.declareName(d, p, b);
    }
    isRedeclaredInScope(d, p, b) {
      return super.isRedeclaredInScope(d, p, b) ? !0 : b & Ya ? !d.declareFunctions.has(p) && (d.lexical.has(p) || d.functions.has(p)) : !1;
    }
    checkLocalExport(d) {
      this.scopeStack[0].declareFunctions.has(d.name) || super.checkLocalExport(d);
    }
  }
  class du {
    constructor() {
      this.sawUnambiguousESM = !1, this.ambiguousScriptDifferentAst = !1;
    }
    hasPlugin(d) {
      if (typeof d == "string")
        return this.plugins.has(d);
      {
        const [p, b] = d;
        if (!this.hasPlugin(p))
          return !1;
        const _ = this.plugins.get(p);
        for (const H of Object.keys(b))
          if ((_ == null ? void 0 : _[H]) !== b[H])
            return !1;
        return !0;
      }
    }
    getPluginOption(d, p) {
      var b;
      return (b = this.plugins.get(d)) == null ? void 0 : b[p];
    }
  }
  function $o(B, d) {
    B.trailingComments === void 0 ? B.trailingComments = d : B.trailingComments.unshift(...d);
  }
  function mu(B, d) {
    B.leadingComments === void 0 ? B.leadingComments = d : B.leadingComments.unshift(...d);
  }
  function qs(B, d) {
    B.innerComments === void 0 ? B.innerComments = d : B.innerComments.unshift(...d);
  }
  function Vs(B, d, p) {
    let b = null, _ = d.length;
    for (; b === null && _ > 0; )
      b = d[--_];
    b === null || b.start > p.start ? qs(B, p.comments) : $o(b, p.comments);
  }
  class yu extends du {
    addComment(d) {
      this.filename && (d.loc.filename = this.filename), this.state.comments.push(d);
    }
    processComment(d) {
      const {
        commentStack: p
      } = this.state, b = p.length;
      if (b === 0)
        return;
      let _ = b - 1;
      const H = p[_];
      H.start === d.end && (H.leadingNode = d, _--);
      const {
        start: ee
      } = d;
      for (; _ >= 0; _--) {
        const de = p[_], Ge = de.end;
        if (Ge > ee)
          de.containingNode = d, this.finalizeComment(de), p.splice(_, 1);
        else {
          Ge === ee && (de.trailingNode = d);
          break;
        }
      }
    }
    finalizeComment(d) {
      const {
        comments: p
      } = d;
      if (d.leadingNode !== null || d.trailingNode !== null)
        d.leadingNode !== null && $o(d.leadingNode, p), d.trailingNode !== null && mu(d.trailingNode, p);
      else {
        const {
          containingNode: b,
          start: _
        } = d;
        if (this.input.charCodeAt(_ - 1) === 44)
          switch (b.type) {
            case "ObjectExpression":
            case "ObjectPattern":
            case "RecordExpression":
              Vs(b, b.properties, d);
              break;
            case "CallExpression":
            case "OptionalCallExpression":
              Vs(b, b.arguments, d);
              break;
            case "FunctionDeclaration":
            case "FunctionExpression":
            case "ArrowFunctionExpression":
            case "ObjectMethod":
            case "ClassMethod":
            case "ClassPrivateMethod":
              Vs(b, b.params, d);
              break;
            case "ArrayExpression":
            case "ArrayPattern":
            case "TupleExpression":
              Vs(b, b.elements, d);
              break;
            case "ExportNamedDeclaration":
            case "ImportDeclaration":
              Vs(b, b.specifiers, d);
              break;
            default:
              qs(b, p);
          }
        else
          qs(b, p);
      }
    }
    finalizeRemainingComments() {
      const {
        commentStack: d
      } = this.state;
      for (let p = d.length - 1; p >= 0; p--)
        this.finalizeComment(d[p]);
      this.state.commentStack = [];
    }
    resetPreviousNodeTrailingComments(d) {
      const {
        commentStack: p
      } = this.state, {
        length: b
      } = p;
      if (b === 0)
        return;
      const _ = p[b - 1];
      _.leadingNode === d && (_.leadingNode = null);
    }
    resetPreviousIdentifierLeadingComments(d) {
      const {
        commentStack: p
      } = this.state, {
        length: b
      } = p;
      b !== 0 && (p[b - 1].trailingNode === d ? p[b - 1].trailingNode = null : b >= 2 && p[b - 2].trailingNode === d && (p[b - 2].trailingNode = null));
    }
    takeSurroundingComments(d, p, b) {
      const {
        commentStack: _
      } = this.state, H = _.length;
      if (H === 0)
        return;
      let ee = H - 1;
      for (; ee >= 0; ee--) {
        const de = _[ee], Ge = de.end;
        if (de.start === b)
          de.leadingNode = d;
        else if (Ge === p)
          de.trailingNode = d;
        else if (Ge < p)
          break;
      }
    }
  }
  const Uo = /\r\n?|[\n\u2028\u2029]/, Pa = new RegExp(Uo.source, "g");
  function Ws(B) {
    switch (B) {
      case 10:
      case 13:
      case 8232:
      case 8233:
        return !0;
      default:
        return !1;
    }
  }
  const ro = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g, wa = /(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g, qo = new RegExp("(?=(" + wa.source + "))\\1" + /(?=[\n\r\u2028\u2029]|\/\*(?!.*?\*\/)|$)/.source, "y");
  function gu(B) {
    switch (B) {
      case 9:
      case 11:
      case 12:
      case 32:
      case 160:
      case 5760:
      case 8192:
      case 8193:
      case 8194:
      case 8195:
      case 8196:
      case 8197:
      case 8198:
      case 8199:
      case 8200:
      case 8201:
      case 8202:
      case 8239:
      case 8287:
      case 12288:
      case 65279:
        return !0;
      default:
        return !1;
    }
  }
  class io {
    constructor() {
      this.strict = void 0, this.curLine = void 0, this.lineStart = void 0, this.startLoc = void 0, this.endLoc = void 0, this.errors = [], this.potentialArrowAt = -1, this.noArrowAt = [], this.noArrowParamsConversionAt = [], this.maybeInArrowParameters = !1, this.inType = !1, this.noAnonFunctionType = !1, this.hasFlowComment = !1, this.isAmbientContext = !1, this.inAbstractClass = !1, this.inDisallowConditionalTypesContext = !1, this.topicContext = {
        maxNumOfResolvableTopics: 0,
        maxTopicIndex: null
      }, this.soloAwait = !1, this.inFSharpPipelineDirectBody = !1, this.labels = [], this.comments = [], this.commentStack = [], this.pos = 0, this.type = 137, this.value = null, this.start = 0, this.end = 0, this.lastTokEndLoc = null, this.lastTokStartLoc = null, this.lastTokStart = 0, this.context = [A.brace], this.canStartJSXElement = !0, this.containsEsc = !1, this.firstInvalidTemplateEscapePos = null, this.strictErrors = /* @__PURE__ */ new Map(), this.tokensLength = 0;
    }
    init({
      strictMode: d,
      sourceType: p,
      startLine: b,
      startColumn: _
    }) {
      this.strict = d === !1 ? !1 : d === !0 ? !0 : p === "module", this.curLine = b, this.lineStart = -_, this.startLoc = this.endLoc = new t(b, _, 0);
    }
    curPosition() {
      return new t(this.curLine, this.pos - this.lineStart, this.pos);
    }
    clone(d) {
      const p = new io(), b = Object.keys(this);
      for (let _ = 0, H = b.length; _ < H; _++) {
        const ee = b[_];
        let de = this[ee];
        !d && Array.isArray(de) && (de = de.slice()), p[ee] = de;
      }
      return p;
    }
  }
  var bu = function(d) {
    return d >= 48 && d <= 57;
  };
  const Vo = {
    decBinOct: /* @__PURE__ */ new Set([46, 66, 69, 79, 95, 98, 101, 111]),
    hex: /* @__PURE__ */ new Set([46, 88, 95, 120])
  }, Aa = {
    bin: (B) => B === 48 || B === 49,
    oct: (B) => B >= 48 && B <= 55,
    dec: (B) => B >= 48 && B <= 57,
    hex: (B) => B >= 48 && B <= 57 || B >= 65 && B <= 70 || B >= 97 && B <= 102
  };
  function Wo(B, d, p, b, _, H) {
    const ee = p, de = b, Ge = _;
    let Ye = "", Je = null, gt = p;
    const {
      length: It
    } = d;
    for (; ; ) {
      if (p >= It) {
        H.unterminated(ee, de, Ge), Ye += d.slice(gt, p);
        break;
      }
      const _t = d.charCodeAt(p);
      if (vu(B, _t, d, p)) {
        Ye += d.slice(gt, p);
        break;
      }
      if (_t === 92) {
        Ye += d.slice(gt, p);
        const Ht = Tu(d, p, b, _, B === "template", H);
        Ht.ch === null && !Je ? Je = {
          pos: p,
          lineStart: b,
          curLine: _
        } : Ye += Ht.ch, {
          pos: p,
          lineStart: b,
          curLine: _
        } = Ht, gt = p;
      } else
        _t === 8232 || _t === 8233 ? (++p, ++_, b = p) : _t === 10 || _t === 13 ? B === "template" ? (Ye += d.slice(gt, p) + "\n", ++p, _t === 13 && d.charCodeAt(p) === 10 && ++p, ++_, gt = b = p) : H.unterminated(ee, de, Ge) : ++p;
    }
    return {
      pos: p,
      str: Ye,
      firstInvalidLoc: Je,
      lineStart: b,
      curLine: _,
      containsInvalid: !!Je
    };
  }
  function vu(B, d, p, b) {
    return B === "template" ? d === 96 || d === 36 && p.charCodeAt(b + 1) === 123 : d === (B === "double" ? 34 : 39);
  }
  function Tu(B, d, p, b, _, H) {
    const ee = !_;
    d++;
    const de = (Ye) => ({
      pos: d,
      ch: Ye,
      lineStart: p,
      curLine: b
    }), Ge = B.charCodeAt(d++);
    switch (Ge) {
      case 110:
        return de("\n");
      case 114:
        return de("\r");
      case 120: {
        let Ye;
        return {
          code: Ye,
          pos: d
        } = no(B, d, p, b, 2, !1, ee, H), de(Ye === null ? null : String.fromCharCode(Ye));
      }
      case 117: {
        let Ye;
        return {
          code: Ye,
          pos: d
        } = Ko(B, d, p, b, ee, H), de(Ye === null ? null : String.fromCodePoint(Ye));
      }
      case 116:
        return de("	");
      case 98:
        return de("\b");
      case 118:
        return de("\v");
      case 102:
        return de("\f");
      case 13:
        B.charCodeAt(d) === 10 && ++d;
      case 10:
        p = d, ++b;
      case 8232:
      case 8233:
        return de("");
      case 56:
      case 57:
        if (_)
          return de(null);
        H.strictNumericEscape(d - 1, p, b);
      default:
        if (Ge >= 48 && Ge <= 55) {
          const Ye = d - 1;
          let gt = B.slice(Ye, d + 2).match(/^[0-7]+/)[0], It = parseInt(gt, 8);
          It > 255 && (gt = gt.slice(0, -1), It = parseInt(gt, 8)), d += gt.length - 1;
          const _t = B.charCodeAt(d);
          if (gt !== "0" || _t === 56 || _t === 57) {
            if (_)
              return de(null);
            H.strictNumericEscape(Ye, p, b);
          }
          return de(String.fromCharCode(It));
        }
        return de(String.fromCharCode(Ge));
    }
  }
  function no(B, d, p, b, _, H, ee, de) {
    const Ge = d;
    let Ye;
    return {
      n: Ye,
      pos: d
    } = Ho(B, d, p, b, 16, _, H, !1, de, !ee), Ye === null && (ee ? de.invalidEscapeSequence(Ge, p, b) : d = Ge - 1), {
      code: Ye,
      pos: d
    };
  }
  function Ho(B, d, p, b, _, H, ee, de, Ge, Ye) {
    const Je = d, gt = _ === 16 ? Vo.hex : Vo.decBinOct, It = _ === 16 ? Aa.hex : _ === 10 ? Aa.dec : _ === 8 ? Aa.oct : Aa.bin;
    let _t = !1, Ht = 0;
    for (let zi = 0, Li = H == null ? 1 / 0 : H; zi < Li; ++zi) {
      const Mi = B.charCodeAt(d);
      let Tn;
      if (Mi === 95 && de !== "bail") {
        const Kf = B.charCodeAt(d - 1), Ap = B.charCodeAt(d + 1);
        if (de) {
          if (Number.isNaN(Ap) || !It(Ap) || gt.has(Kf) || gt.has(Ap)) {
            if (Ye)
              return {
                n: null,
                pos: d
              };
            Ge.unexpectedNumericSeparator(d, p, b);
          }
        } else {
          if (Ye)
            return {
              n: null,
              pos: d
            };
          Ge.numericSeparatorInEscapeSequence(d, p, b);
        }
        ++d;
        continue;
      }
      if (Mi >= 97 ? Tn = Mi - 97 + 10 : Mi >= 65 ? Tn = Mi - 65 + 10 : bu(Mi) ? Tn = Mi - 48 : Tn = 1 / 0, Tn >= _) {
        if (Tn <= 9 && Ye)
          return {
            n: null,
            pos: d
          };
        if (Tn <= 9 && Ge.invalidDigit(d, p, b, _))
          Tn = 0;
        else if (ee)
          Tn = 0, _t = !0;
        else
          break;
      }
      ++d, Ht = Ht * _ + Tn;
    }
    return d === Je || H != null && d - Je !== H || _t ? {
      n: null,
      pos: d
    } : {
      n: Ht,
      pos: d
    };
  }
  function Ko(B, d, p, b, _, H) {
    const ee = B.charCodeAt(d);
    let de;
    if (ee === 123) {
      if (++d, {
        code: de,
        pos: d
      } = no(B, d, p, b, B.indexOf("}", d) - d, !0, _, H), ++d, de !== null && de > 1114111)
        if (_)
          H.invalidCodePoint(d, p, b);
        else
          return {
            code: null,
            pos: d
          };
    } else
      ({
        code: de,
        pos: d
      } = no(B, d, p, b, 4, !1, _, H));
    return {
      code: de,
      pos: d
    };
  }
  const Su = ["at"], xu = ["at"];
  function Hs(B, d, p) {
    return new t(p, B - d, B);
  }
  const Eu = /* @__PURE__ */ new Set([103, 109, 115, 105, 121, 117, 100, 118]);
  class es {
    constructor(d) {
      this.type = d.type, this.value = d.value, this.start = d.start, this.end = d.end, this.loc = new r(d.startLoc, d.endLoc);
    }
  }
  class Pu extends yu {
    constructor(d, p) {
      super(), this.isLookahead = void 0, this.tokens = [], this.errorHandlers_readInt = {
        invalidDigit: (b, _, H, ee) => this.options.errorRecovery ? (this.raise(S.InvalidDigit, {
          at: Hs(b, _, H),
          radix: ee
        }), !0) : !1,
        numericSeparatorInEscapeSequence: this.errorBuilder(S.NumericSeparatorInEscapeSequence),
        unexpectedNumericSeparator: this.errorBuilder(S.UnexpectedNumericSeparator)
      }, this.errorHandlers_readCodePoint = Object.assign({}, this.errorHandlers_readInt, {
        invalidEscapeSequence: this.errorBuilder(S.InvalidEscapeSequence),
        invalidCodePoint: this.errorBuilder(S.InvalidCodePoint)
      }), this.errorHandlers_readStringContents_string = Object.assign({}, this.errorHandlers_readCodePoint, {
        strictNumericEscape: (b, _, H) => {
          this.recordStrictModeErrors(S.StrictNumericEscape, {
            at: Hs(b, _, H)
          });
        },
        unterminated: (b, _, H) => {
          throw this.raise(S.UnterminatedString, {
            at: Hs(b - 1, _, H)
          });
        }
      }), this.errorHandlers_readStringContents_template = Object.assign({}, this.errorHandlers_readCodePoint, {
        strictNumericEscape: this.errorBuilder(S.StrictNumericEscape),
        unterminated: (b, _, H) => {
          throw this.raise(S.UnterminatedTemplate, {
            at: Hs(b, _, H)
          });
        }
      }), this.state = new io(), this.state.init(d), this.input = p, this.length = p.length, this.isLookahead = !1;
    }
    pushToken(d) {
      this.tokens.length = this.state.tokensLength, this.tokens.push(d), ++this.state.tokensLength;
    }
    next() {
      this.checkKeywordEscapes(), this.options.tokens && this.pushToken(new es(this.state)), this.state.lastTokStart = this.state.start, this.state.lastTokEndLoc = this.state.endLoc, this.state.lastTokStartLoc = this.state.startLoc, this.nextToken();
    }
    eat(d) {
      return this.match(d) ? (this.next(), !0) : !1;
    }
    match(d) {
      return this.state.type === d;
    }
    createLookaheadState(d) {
      return {
        pos: d.pos,
        value: null,
        type: d.type,
        start: d.start,
        end: d.end,
        context: [this.curContext()],
        inType: d.inType,
        startLoc: d.startLoc,
        lastTokEndLoc: d.lastTokEndLoc,
        curLine: d.curLine,
        lineStart: d.lineStart,
        curPosition: d.curPosition
      };
    }
    lookahead() {
      const d = this.state;
      this.state = this.createLookaheadState(d), this.isLookahead = !0, this.nextToken(), this.isLookahead = !1;
      const p = this.state;
      return this.state = d, p;
    }
    nextTokenStart() {
      return this.nextTokenStartSince(this.state.pos);
    }
    nextTokenStartSince(d) {
      return ro.lastIndex = d, ro.test(this.input) ? ro.lastIndex : d;
    }
    lookaheadCharCode() {
      return this.input.charCodeAt(this.nextTokenStart());
    }
    nextTokenInLineStart() {
      return this.nextTokenInLineStartSince(this.state.pos);
    }
    nextTokenInLineStartSince(d) {
      return wa.lastIndex = d, wa.test(this.input) ? wa.lastIndex : d;
    }
    lookaheadInLineCharCode() {
      return this.input.charCodeAt(this.nextTokenInLineStart());
    }
    codePointAtPos(d) {
      let p = this.input.charCodeAt(d);
      if ((p & 64512) === 55296 && ++d < this.input.length) {
        const b = this.input.charCodeAt(d);
        (b & 64512) === 56320 && (p = 65536 + ((p & 1023) << 10) + (b & 1023));
      }
      return p;
    }
    setStrict(d) {
      this.state.strict = d, d && (this.state.strictErrors.forEach(([p, b]) => this.raise(p, {
        at: b
      })), this.state.strictErrors.clear());
    }
    curContext() {
      return this.state.context[this.state.context.length - 1];
    }
    nextToken() {
      if (this.skipSpace(), this.state.start = this.state.pos, this.isLookahead || (this.state.startLoc = this.state.curPosition()), this.state.pos >= this.length) {
        this.finishToken(137);
        return;
      }
      this.getTokenFromCode(this.codePointAtPos(this.state.pos));
    }
    skipBlockComment(d) {
      let p;
      this.isLookahead || (p = this.state.curPosition());
      const b = this.state.pos, _ = this.input.indexOf(d, b + 2);
      if (_ === -1)
        throw this.raise(S.UnterminatedComment, {
          at: this.state.curPosition()
        });
      for (this.state.pos = _ + d.length, Pa.lastIndex = b + 2; Pa.test(this.input) && Pa.lastIndex <= _; )
        ++this.state.curLine, this.state.lineStart = Pa.lastIndex;
      if (this.isLookahead)
        return;
      const H = {
        type: "CommentBlock",
        value: this.input.slice(b + 2, _),
        start: b,
        end: _ + d.length,
        loc: new r(p, this.state.curPosition())
      };
      return this.options.tokens && this.pushToken(H), H;
    }
    skipLineComment(d) {
      const p = this.state.pos;
      let b;
      this.isLookahead || (b = this.state.curPosition());
      let _ = this.input.charCodeAt(this.state.pos += d);
      if (this.state.pos < this.length)
        for (; !Ws(_) && ++this.state.pos < this.length; )
          _ = this.input.charCodeAt(this.state.pos);
      if (this.isLookahead)
        return;
      const H = this.state.pos, de = {
        type: "CommentLine",
        value: this.input.slice(p + d, H),
        start: p,
        end: H,
        loc: new r(b, this.state.curPosition())
      };
      return this.options.tokens && this.pushToken(de), de;
    }
    skipSpace() {
      const d = this.state.pos, p = [];
      e:
        for (; this.state.pos < this.length; ) {
          const b = this.input.charCodeAt(this.state.pos);
          switch (b) {
            case 32:
            case 160:
            case 9:
              ++this.state.pos;
              break;
            case 13:
              this.input.charCodeAt(this.state.pos + 1) === 10 && ++this.state.pos;
            case 10:
            case 8232:
            case 8233:
              ++this.state.pos, ++this.state.curLine, this.state.lineStart = this.state.pos;
              break;
            case 47:
              switch (this.input.charCodeAt(this.state.pos + 1)) {
                case 42: {
                  const _ = this.skipBlockComment("*/");
                  _ !== void 0 && (this.addComment(_), this.options.attachComment && p.push(_));
                  break;
                }
                case 47: {
                  const _ = this.skipLineComment(2);
                  _ !== void 0 && (this.addComment(_), this.options.attachComment && p.push(_));
                  break;
                }
                default:
                  break e;
              }
              break;
            default:
              if (gu(b))
                ++this.state.pos;
              else if (b === 45 && !this.inModule && this.options.annexB) {
                const _ = this.state.pos;
                if (this.input.charCodeAt(_ + 1) === 45 && this.input.charCodeAt(_ + 2) === 62 && (d === 0 || this.state.lineStart > d)) {
                  const H = this.skipLineComment(3);
                  H !== void 0 && (this.addComment(H), this.options.attachComment && p.push(H));
                } else
                  break e;
              } else if (b === 60 && !this.inModule && this.options.annexB) {
                const _ = this.state.pos;
                if (this.input.charCodeAt(_ + 1) === 33 && this.input.charCodeAt(_ + 2) === 45 && this.input.charCodeAt(_ + 3) === 45) {
                  const H = this.skipLineComment(4);
                  H !== void 0 && (this.addComment(H), this.options.attachComment && p.push(H));
                } else
                  break e;
              } else
                break e;
          }
        }
      if (p.length > 0) {
        const b = this.state.pos, _ = {
          start: d,
          end: b,
          comments: p,
          leadingNode: null,
          trailingNode: null,
          containingNode: null
        };
        this.state.commentStack.push(_);
      }
    }
    finishToken(d, p) {
      this.state.end = this.state.pos, this.state.endLoc = this.state.curPosition();
      const b = this.state.type;
      this.state.type = d, this.state.value = p, this.isLookahead || this.updateContext(b);
    }
    replaceToken(d) {
      this.state.type = d, this.updateContext();
    }
    readToken_numberSign() {
      if (this.state.pos === 0 && this.readToken_interpreter())
        return;
      const d = this.state.pos + 1, p = this.codePointAtPos(d);
      if (p >= 48 && p <= 57)
        throw this.raise(S.UnexpectedDigitAfterHash, {
          at: this.state.curPosition()
        });
      if (p === 123 || p === 91 && this.hasPlugin("recordAndTuple")) {
        if (this.expectPlugin("recordAndTuple"), this.getPluginOption("recordAndTuple", "syntaxType") === "bar")
          throw this.raise(p === 123 ? S.RecordExpressionHashIncorrectStartSyntaxType : S.TupleExpressionHashIncorrectStartSyntaxType, {
            at: this.state.curPosition()
          });
        this.state.pos += 2, p === 123 ? this.finishToken(7) : this.finishToken(1);
      } else
        X(p) ? (++this.state.pos, this.finishToken(136, this.readWord1(p))) : p === 92 ? (++this.state.pos, this.finishToken(136, this.readWord1())) : this.finishOp(27, 1);
    }
    readToken_dot() {
      const d = this.input.charCodeAt(this.state.pos + 1);
      if (d >= 48 && d <= 57) {
        this.readNumber(!0);
        return;
      }
      d === 46 && this.input.charCodeAt(this.state.pos + 2) === 46 ? (this.state.pos += 3, this.finishToken(21)) : (++this.state.pos, this.finishToken(16));
    }
    readToken_slash() {
      this.input.charCodeAt(this.state.pos + 1) === 61 ? this.finishOp(31, 2) : this.finishOp(56, 1);
    }
    readToken_interpreter() {
      if (this.state.pos !== 0 || this.length < 2)
        return !1;
      let d = this.input.charCodeAt(this.state.pos + 1);
      if (d !== 33)
        return !1;
      const p = this.state.pos;
      for (this.state.pos += 1; !Ws(d) && ++this.state.pos < this.length; )
        d = this.input.charCodeAt(this.state.pos);
      const b = this.input.slice(p + 2, this.state.pos);
      return this.finishToken(28, b), !0;
    }
    readToken_mult_modulo(d) {
      let p = d === 42 ? 55 : 54, b = 1, _ = this.input.charCodeAt(this.state.pos + 1);
      d === 42 && _ === 42 && (b++, _ = this.input.charCodeAt(this.state.pos + 2), p = 57), _ === 61 && !this.state.inType && (b++, p = d === 37 ? 33 : 30), this.finishOp(p, b);
    }
    readToken_pipe_amp(d) {
      const p = this.input.charCodeAt(this.state.pos + 1);
      if (p === d) {
        this.input.charCodeAt(this.state.pos + 2) === 61 ? this.finishOp(30, 3) : this.finishOp(d === 124 ? 41 : 42, 2);
        return;
      }
      if (d === 124) {
        if (p === 62) {
          this.finishOp(39, 2);
          return;
        }
        if (this.hasPlugin("recordAndTuple") && p === 125) {
          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
            throw this.raise(S.RecordExpressionBarIncorrectEndSyntaxType, {
              at: this.state.curPosition()
            });
          this.state.pos += 2, this.finishToken(9);
          return;
        }
        if (this.hasPlugin("recordAndTuple") && p === 93) {
          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
            throw this.raise(S.TupleExpressionBarIncorrectEndSyntaxType, {
              at: this.state.curPosition()
            });
          this.state.pos += 2, this.finishToken(4);
          return;
        }
      }
      if (p === 61) {
        this.finishOp(30, 2);
        return;
      }
      this.finishOp(d === 124 ? 43 : 45, 1);
    }
    readToken_caret() {
      const d = this.input.charCodeAt(this.state.pos + 1);
      d === 61 && !this.state.inType ? this.finishOp(32, 2) : d === 94 && this.hasPlugin(["pipelineOperator", {
        proposal: "hack",
        topicToken: "^^"
      }]) ? (this.finishOp(37, 2), this.input.codePointAt(this.state.pos) === 94 && this.unexpected()) : this.finishOp(44, 1);
    }
    readToken_atSign() {
      this.input.charCodeAt(this.state.pos + 1) === 64 && this.hasPlugin(["pipelineOperator", {
        proposal: "hack",
        topicToken: "@@"
      }]) ? this.finishOp(38, 2) : this.finishOp(26, 1);
    }
    readToken_plus_min(d) {
      const p = this.input.charCodeAt(this.state.pos + 1);
      if (p === d) {
        this.finishOp(34, 2);
        return;
      }
      p === 61 ? this.finishOp(30, 2) : this.finishOp(53, 1);
    }
    readToken_lt() {
      const {
        pos: d
      } = this.state, p = this.input.charCodeAt(d + 1);
      if (p === 60) {
        if (this.input.charCodeAt(d + 2) === 61) {
          this.finishOp(30, 3);
          return;
        }
        this.finishOp(51, 2);
        return;
      }
      if (p === 61) {
        this.finishOp(49, 2);
        return;
      }
      this.finishOp(47, 1);
    }
    readToken_gt() {
      const {
        pos: d
      } = this.state, p = this.input.charCodeAt(d + 1);
      if (p === 62) {
        const b = this.input.charCodeAt(d + 2) === 62 ? 3 : 2;
        if (this.input.charCodeAt(d + b) === 61) {
          this.finishOp(30, b + 1);
          return;
        }
        this.finishOp(52, b);
        return;
      }
      if (p === 61) {
        this.finishOp(49, 2);
        return;
      }
      this.finishOp(48, 1);
    }
    readToken_eq_excl(d) {
      const p = this.input.charCodeAt(this.state.pos + 1);
      if (p === 61) {
        this.finishOp(46, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2);
        return;
      }
      if (d === 61 && p === 62) {
        this.state.pos += 2, this.finishToken(19);
        return;
      }
      this.finishOp(d === 61 ? 29 : 35, 1);
    }
    readToken_question() {
      const d = this.input.charCodeAt(this.state.pos + 1), p = this.input.charCodeAt(this.state.pos + 2);
      d === 63 ? p === 61 ? this.finishOp(30, 3) : this.finishOp(40, 2) : d === 46 && !(p >= 48 && p <= 57) ? (this.state.pos += 2, this.finishToken(18)) : (++this.state.pos, this.finishToken(17));
    }
    getTokenFromCode(d) {
      switch (d) {
        case 46:
          this.readToken_dot();
          return;
        case 40:
          ++this.state.pos, this.finishToken(10);
          return;
        case 41:
          ++this.state.pos, this.finishToken(11);
          return;
        case 59:
          ++this.state.pos, this.finishToken(13);
          return;
        case 44:
          ++this.state.pos, this.finishToken(12);
          return;
        case 91:
          if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) {
            if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
              throw this.raise(S.TupleExpressionBarIncorrectStartSyntaxType, {
                at: this.state.curPosition()
              });
            this.state.pos += 2, this.finishToken(2);
          } else
            ++this.state.pos, this.finishToken(0);
          return;
        case 93:
          ++this.state.pos, this.finishToken(3);
          return;
        case 123:
          if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) {
            if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
              throw this.raise(S.RecordExpressionBarIncorrectStartSyntaxType, {
                at: this.state.curPosition()
              });
            this.state.pos += 2, this.finishToken(6);
          } else
            ++this.state.pos, this.finishToken(5);
          return;
        case 125:
          ++this.state.pos, this.finishToken(8);
          return;
        case 58:
          this.hasPlugin("functionBind") && this.input.charCodeAt(this.state.pos + 1) === 58 ? this.finishOp(15, 2) : (++this.state.pos, this.finishToken(14));
          return;
        case 63:
          this.readToken_question();
          return;
        case 96:
          this.readTemplateToken();
          return;
        case 48: {
          const p = this.input.charCodeAt(this.state.pos + 1);
          if (p === 120 || p === 88) {
            this.readRadixNumber(16);
            return;
          }
          if (p === 111 || p === 79) {
            this.readRadixNumber(8);
            return;
          }
          if (p === 98 || p === 66) {
            this.readRadixNumber(2);
            return;
          }
        }
        case 49:
        case 50:
        case 51:
        case 52:
        case 53:
        case 54:
        case 55:
        case 56:
        case 57:
          this.readNumber(!1);
          return;
        case 34:
        case 39:
          this.readString(d);
          return;
        case 47:
          this.readToken_slash();
          return;
        case 37:
        case 42:
          this.readToken_mult_modulo(d);
          return;
        case 124:
        case 38:
          this.readToken_pipe_amp(d);
          return;
        case 94:
          this.readToken_caret();
          return;
        case 43:
        case 45:
          this.readToken_plus_min(d);
          return;
        case 60:
          this.readToken_lt();
          return;
        case 62:
          this.readToken_gt();
          return;
        case 61:
        case 33:
          this.readToken_eq_excl(d);
          return;
        case 126:
          this.finishOp(36, 1);
          return;
        case 64:
          this.readToken_atSign();
          return;
        case 35:
          this.readToken_numberSign();
          return;
        case 92:
          this.readWord();
          return;
        default:
          if (X(d)) {
            this.readWord(d);
            return;
          }
      }
      throw this.raise(S.InvalidOrUnexpectedToken, {
        at: this.state.curPosition(),
        unexpected: String.fromCodePoint(d)
      });
    }
    finishOp(d, p) {
      const b = this.input.slice(this.state.pos, this.state.pos + p);
      this.state.pos += p, this.finishToken(d, b);
    }
    readRegexp() {
      const d = this.state.startLoc, p = this.state.start + 1;
      let b, _, {
        pos: H
      } = this.state;
      for (; ; ++H) {
        if (H >= this.length)
          throw this.raise(S.UnterminatedRegExp, {
            at: i(d, 1)
          });
        const Ye = this.input.charCodeAt(H);
        if (Ws(Ye))
          throw this.raise(S.UnterminatedRegExp, {
            at: i(d, 1)
          });
        if (b)
          b = !1;
        else {
          if (Ye === 91)
            _ = !0;
          else if (Ye === 93 && _)
            _ = !1;
          else if (Ye === 47 && !_)
            break;
          b = Ye === 92;
        }
      }
      const ee = this.input.slice(p, H);
      ++H;
      let de = "";
      const Ge = () => i(d, H + 2 - p);
      for (; H < this.length; ) {
        const Ye = this.codePointAtPos(H), Je = String.fromCharCode(Ye);
        if (Eu.has(Ye))
          Ye === 118 ? de.includes("u") && this.raise(S.IncompatibleRegExpUVFlags, {
            at: Ge()
          }) : Ye === 117 && de.includes("v") && this.raise(S.IncompatibleRegExpUVFlags, {
            at: Ge()
          }), de.includes(Je) && this.raise(S.DuplicateRegExpFlags, {
            at: Ge()
          });
        else if (ce(Ye) || Ye === 92)
          this.raise(S.MalformedRegExpFlags, {
            at: Ge()
          });
        else
          break;
        ++H, de += Je;
      }
      this.state.pos = H, this.finishToken(135, {
        pattern: ee,
        flags: de
      });
    }
    readInt(d, p, b = !1, _ = !0) {
      const {
        n: H,
        pos: ee
      } = Ho(this.input, this.state.pos, this.state.lineStart, this.state.curLine, d, p, b, _, this.errorHandlers_readInt, !1);
      return this.state.pos = ee, H;
    }
    readRadixNumber(d) {
      const p = this.state.curPosition();
      let b = !1;
      this.state.pos += 2;
      const _ = this.readInt(d);
      _ == null && this.raise(S.InvalidDigit, {
        at: i(p, 2),
        radix: d
      });
      const H = this.input.charCodeAt(this.state.pos);
      if (H === 110)
        ++this.state.pos, b = !0;
      else if (H === 109)
        throw this.raise(S.InvalidDecimal, {
          at: p
        });
      if (X(this.codePointAtPos(this.state.pos)))
        throw this.raise(S.NumberIdentifier, {
          at: this.state.curPosition()
        });
      if (b) {
        const ee = this.input.slice(p.index, this.state.pos).replace(/[_n]/g, "");
        this.finishToken(133, ee);
        return;
      }
      this.finishToken(132, _);
    }
    readNumber(d) {
      const p = this.state.pos, b = this.state.curPosition();
      let _ = !1, H = !1, ee = !1, de = !1, Ge = !1;
      !d && this.readInt(10) === null && this.raise(S.InvalidNumber, {
        at: this.state.curPosition()
      });
      const Ye = this.state.pos - p >= 2 && this.input.charCodeAt(p) === 48;
      if (Ye) {
        const _t = this.input.slice(p, this.state.pos);
        if (this.recordStrictModeErrors(S.StrictOctalLiteral, {
          at: b
        }), !this.state.strict) {
          const Ht = _t.indexOf("_");
          Ht > 0 && this.raise(S.ZeroDigitNumericSeparator, {
            at: i(b, Ht)
          });
        }
        Ge = Ye && !/[89]/.test(_t);
      }
      let Je = this.input.charCodeAt(this.state.pos);
      if (Je === 46 && !Ge && (++this.state.pos, this.readInt(10), _ = !0, Je = this.input.charCodeAt(this.state.pos)), (Je === 69 || Je === 101) && !Ge && (Je = this.input.charCodeAt(++this.state.pos), (Je === 43 || Je === 45) && ++this.state.pos, this.readInt(10) === null && this.raise(S.InvalidOrMissingExponent, {
        at: b
      }), _ = !0, de = !0, Je = this.input.charCodeAt(this.state.pos)), Je === 110 && ((_ || Ye) && this.raise(S.InvalidBigIntLiteral, {
        at: b
      }), ++this.state.pos, H = !0), Je === 109 && (this.expectPlugin("decimal", this.state.curPosition()), (de || Ye) && this.raise(S.InvalidDecimal, {
        at: b
      }), ++this.state.pos, ee = !0), X(this.codePointAtPos(this.state.pos)))
        throw this.raise(S.NumberIdentifier, {
          at: this.state.curPosition()
        });
      const gt = this.input.slice(p, this.state.pos).replace(/[_mn]/g, "");
      if (H) {
        this.finishToken(133, gt);
        return;
      }
      if (ee) {
        this.finishToken(134, gt);
        return;
      }
      const It = Ge ? parseInt(gt, 8) : parseFloat(gt);
      this.finishToken(132, It);
    }
    readCodePoint(d) {
      const {
        code: p,
        pos: b
      } = Ko(this.input, this.state.pos, this.state.lineStart, this.state.curLine, d, this.errorHandlers_readCodePoint);
      return this.state.pos = b, p;
    }
    readString(d) {
      const {
        str: p,
        pos: b,
        curLine: _,
        lineStart: H
      } = Wo(d === 34 ? "double" : "single", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_string);
      this.state.pos = b + 1, this.state.lineStart = H, this.state.curLine = _, this.finishToken(131, p);
    }
    readTemplateContinuation() {
      this.match(8) || this.unexpected(null, 8), this.state.pos--, this.readTemplateToken();
    }
    readTemplateToken() {
      const d = this.input[this.state.pos], {
        str: p,
        firstInvalidLoc: b,
        pos: _,
        curLine: H,
        lineStart: ee
      } = Wo("template", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_template);
      this.state.pos = _ + 1, this.state.lineStart = ee, this.state.curLine = H, b && (this.state.firstInvalidTemplateEscapePos = new t(b.curLine, b.pos - b.lineStart, b.pos)), this.input.codePointAt(_) === 96 ? this.finishToken(24, b ? null : d + p + "`") : (this.state.pos++, this.finishToken(25, b ? null : d + p + "${"));
    }
    recordStrictModeErrors(d, {
      at: p
    }) {
      const b = p.index;
      this.state.strict && !this.state.strictErrors.has(b) ? this.raise(d, {
        at: p
      }) : this.state.strictErrors.set(b, [d, p]);
    }
    readWord1(d) {
      this.state.containsEsc = !1;
      let p = "";
      const b = this.state.pos;
      let _ = this.state.pos;
      for (d !== void 0 && (this.state.pos += d <= 65535 ? 1 : 2); this.state.pos < this.length; ) {
        const H = this.codePointAtPos(this.state.pos);
        if (ce(H))
          this.state.pos += H <= 65535 ? 1 : 2;
        else if (H === 92) {
          this.state.containsEsc = !0, p += this.input.slice(_, this.state.pos);
          const ee = this.state.curPosition(), de = this.state.pos === b ? X : ce;
          if (this.input.charCodeAt(++this.state.pos) !== 117) {
            this.raise(S.MissingUnicodeEscape, {
              at: this.state.curPosition()
            }), _ = this.state.pos - 1;
            continue;
          }
          ++this.state.pos;
          const Ge = this.readCodePoint(!0);
          Ge !== null && (de(Ge) || this.raise(S.EscapedCharNotAnIdentifier, {
            at: ee
          }), p += String.fromCodePoint(Ge)), _ = this.state.pos;
        } else
          break;
      }
      return p + this.input.slice(_, this.state.pos);
    }
    readWord(d) {
      const p = this.readWord1(d), b = M.get(p);
      b !== void 0 ? this.finishToken(b, Te(b)) : this.finishToken(130, p);
    }
    checkKeywordEscapes() {
      const {
        type: d
      } = this.state;
      st(d) && this.state.containsEsc && this.raise(S.InvalidEscapedReservedWord, {
        at: this.state.startLoc,
        reservedWord: Te(d)
      });
    }
    raise(d, p) {
      const {
        at: b
      } = p, _ = e(p, Su), H = b instanceof t ? b : b.loc.start, ee = d({
        loc: H,
        details: _
      });
      if (!this.options.errorRecovery)
        throw ee;
      return this.isLookahead || this.state.errors.push(ee), ee;
    }
    raiseOverwrite(d, p) {
      const {
        at: b
      } = p, _ = e(p, xu), H = b instanceof t ? b : b.loc.start, ee = H.index, de = this.state.errors;
      for (let Ge = de.length - 1; Ge >= 0; Ge--) {
        const Ye = de[Ge];
        if (Ye.loc.index === ee)
          return de[Ge] = d({
            loc: H,
            details: _
          });
        if (Ye.loc.index < ee)
          break;
      }
      return this.raise(d, p);
    }
    updateContext(d) {
    }
    unexpected(d, p) {
      throw this.raise(S.UnexpectedToken, {
        expected: p ? Te(p) : null,
        at: d != null ? d : this.state.startLoc
      });
    }
    expectPlugin(d, p) {
      if (this.hasPlugin(d))
        return !0;
      throw this.raise(S.MissingPlugin, {
        at: p != null ? p : this.state.startLoc,
        missingPlugin: [d]
      });
    }
    expectOnePlugin(d) {
      if (!d.some((p) => this.hasPlugin(p)))
        throw this.raise(S.MissingOneOfPlugins, {
          at: this.state.startLoc,
          missingPlugin: d
        });
    }
    errorBuilder(d) {
      return (p, b, _) => {
        this.raise(d, {
          at: Hs(p, b, _)
        });
      };
    }
  }
  class wu {
    constructor() {
      this.privateNames = /* @__PURE__ */ new Set(), this.loneAccessors = /* @__PURE__ */ new Map(), this.undefinedPrivateNames = /* @__PURE__ */ new Map();
    }
  }
  class Au {
    constructor(d) {
      this.parser = void 0, this.stack = [], this.undefinedPrivateNames = /* @__PURE__ */ new Map(), this.parser = d;
    }
    current() {
      return this.stack[this.stack.length - 1];
    }
    enter() {
      this.stack.push(new wu());
    }
    exit() {
      const d = this.stack.pop(), p = this.current();
      for (const [b, _] of Array.from(d.undefinedPrivateNames))
        p ? p.undefinedPrivateNames.has(b) || p.undefinedPrivateNames.set(b, _) : this.parser.raise(S.InvalidPrivateFieldResolution, {
          at: _,
          identifierName: b
        });
    }
    declarePrivateName(d, p, b) {
      const {
        privateNames: _,
        loneAccessors: H,
        undefinedPrivateNames: ee
      } = this.current();
      let de = _.has(d);
      if (p & Qa) {
        const Ge = de && H.get(d);
        if (Ge) {
          const Ye = Ge & Ea, Je = p & Ea, gt = Ge & Qa, It = p & Qa;
          de = gt === It || Ye !== Je, de || H.delete(d);
        } else
          de || H.set(d, p);
      }
      de && this.parser.raise(S.PrivateNameRedeclaration, {
        at: b,
        identifierName: d
      }), _.add(d), ee.delete(d);
    }
    usePrivateName(d, p) {
      let b;
      for (b of this.stack)
        if (b.privateNames.has(d))
          return;
      b ? b.undefinedPrivateNames.set(d, p) : this.parser.raise(S.InvalidPrivateFieldResolution, {
        at: p,
        identifierName: d
      });
    }
  }
  const Cu = 0, zo = 1, so = 2, Go = 3;
  class Ca {
    constructor(d = Cu) {
      this.type = void 0, this.type = d;
    }
    canBeArrowParameterDeclaration() {
      return this.type === so || this.type === zo;
    }
    isCertainlyParameterDeclaration() {
      return this.type === Go;
    }
  }
  class Yo extends Ca {
    constructor(d) {
      super(d), this.declarationErrors = /* @__PURE__ */ new Map();
    }
    recordDeclarationError(d, {
      at: p
    }) {
      const b = p.index;
      this.declarationErrors.set(b, [d, p]);
    }
    clearDeclarationError(d) {
      this.declarationErrors.delete(d);
    }
    iterateErrors(d) {
      this.declarationErrors.forEach(d);
    }
  }
  class _u {
    constructor(d) {
      this.parser = void 0, this.stack = [new Ca()], this.parser = d;
    }
    enter(d) {
      this.stack.push(d);
    }
    exit() {
      this.stack.pop();
    }
    recordParameterInitializerError(d, {
      at: p
    }) {
      const b = {
        at: p.loc.start
      }, {
        stack: _
      } = this;
      let H = _.length - 1, ee = _[H];
      for (; !ee.isCertainlyParameterDeclaration(); ) {
        if (ee.canBeArrowParameterDeclaration())
          ee.recordDeclarationError(d, b);
        else
          return;
        ee = _[--H];
      }
      this.parser.raise(d, b);
    }
    recordArrowParameterBindingError(d, {
      at: p
    }) {
      const {
        stack: b
      } = this, _ = b[b.length - 1], H = {
        at: p.loc.start
      };
      if (_.isCertainlyParameterDeclaration())
        this.parser.raise(d, H);
      else if (_.canBeArrowParameterDeclaration())
        _.recordDeclarationError(d, H);
      else
        return;
    }
    recordAsyncArrowParametersError({
      at: d
    }) {
      const {
        stack: p
      } = this;
      let b = p.length - 1, _ = p[b];
      for (; _.canBeArrowParameterDeclaration(); )
        _.type === so && _.recordDeclarationError(S.AwaitBindingIdentifier, {
          at: d
        }), _ = p[--b];
    }
    validateAsPattern() {
      const {
        stack: d
      } = this, p = d[d.length - 1];
      p.canBeArrowParameterDeclaration() && p.iterateErrors(([b, _]) => {
        this.parser.raise(b, {
          at: _
        });
        let H = d.length - 2, ee = d[H];
        for (; ee.canBeArrowParameterDeclaration(); )
          ee.clearDeclarationError(_.index), ee = d[--H];
      });
    }
  }
  function Iu() {
    return new Ca(Go);
  }
  function ku() {
    return new Yo(zo);
  }
  function Ou() {
    return new Yo(so);
  }
  function Xo() {
    return new Ca();
  }
  const _s = 0, Jo = 1, _a = 2, Qo = 4, Is = 8;
  class Nu {
    constructor() {
      this.stacks = [];
    }
    enter(d) {
      this.stacks.push(d);
    }
    exit() {
      this.stacks.pop();
    }
    currentFlags() {
      return this.stacks[this.stacks.length - 1];
    }
    get hasAwait() {
      return (this.currentFlags() & _a) > 0;
    }
    get hasYield() {
      return (this.currentFlags() & Jo) > 0;
    }
    get hasReturn() {
      return (this.currentFlags() & Qo) > 0;
    }
    get hasIn() {
      return (this.currentFlags() & Is) > 0;
    }
  }
  function Ia(B, d) {
    return (B ? _a : 0) | (d ? Jo : 0);
  }
  class Du extends Pu {
    addExtra(d, p, b, _ = !0) {
      if (!d)
        return;
      const H = d.extra = d.extra || {};
      _ ? H[p] = b : Object.defineProperty(H, p, {
        enumerable: _,
        value: b
      });
    }
    isContextual(d) {
      return this.state.type === d && !this.state.containsEsc;
    }
    isUnparsedContextual(d, p) {
      const b = d + p.length;
      if (this.input.slice(d, b) === p) {
        const _ = this.input.charCodeAt(b);
        return !(ce(_) || (_ & 64512) === 55296);
      }
      return !1;
    }
    isLookaheadContextual(d) {
      const p = this.nextTokenStart();
      return this.isUnparsedContextual(p, d);
    }
    eatContextual(d) {
      return this.isContextual(d) ? (this.next(), !0) : !1;
    }
    expectContextual(d, p) {
      if (!this.eatContextual(d)) {
        if (p != null)
          throw this.raise(p, {
            at: this.state.startLoc
          });
        this.unexpected(null, d);
      }
    }
    canInsertSemicolon() {
      return this.match(137) || this.match(8) || this.hasPrecedingLineBreak();
    }
    hasPrecedingLineBreak() {
      return Uo.test(this.input.slice(this.state.lastTokEndLoc.index, this.state.start));
    }
    hasFollowingLineBreak() {
      return qo.lastIndex = this.state.end, qo.test(this.input);
    }
    isLineTerminator() {
      return this.eat(13) || this.canInsertSemicolon();
    }
    semicolon(d = !0) {
      (d ? this.isLineTerminator() : this.eat(13)) || this.raise(S.MissingSemicolon, {
        at: this.state.lastTokEndLoc
      });
    }
    expect(d, p) {
      this.eat(d) || this.unexpected(p, d);
    }
    tryParse(d, p = this.state.clone()) {
      const b = {
        node: null
      };
      try {
        const _ = d((H = null) => {
          throw b.node = H, b;
        });
        if (this.state.errors.length > p.errors.length) {
          const H = this.state;
          return this.state = p, this.state.tokensLength = H.tokensLength, {
            node: _,
            error: H.errors[p.errors.length],
            thrown: !1,
            aborted: !1,
            failState: H
          };
        }
        return {
          node: _,
          error: null,
          thrown: !1,
          aborted: !1,
          failState: null
        };
      } catch (_) {
        const H = this.state;
        if (this.state = p, _ instanceof SyntaxError)
          return {
            node: null,
            error: _,
            thrown: !0,
            aborted: !1,
            failState: H
          };
        if (_ === b)
          return {
            node: b.node,
            error: null,
            thrown: !1,
            aborted: !0,
            failState: H
          };
        throw _;
      }
    }
    checkExpressionErrors(d, p) {
      if (!d)
        return !1;
      const {
        shorthandAssignLoc: b,
        doubleProtoLoc: _,
        privateKeyLoc: H,
        optionalParametersLoc: ee
      } = d, de = !!b || !!_ || !!ee || !!H;
      if (!p)
        return de;
      b != null && this.raise(S.InvalidCoverInitializedName, {
        at: b
      }), _ != null && this.raise(S.DuplicateProto, {
        at: _
      }), H != null && this.raise(S.UnexpectedPrivateField, {
        at: H
      }), ee != null && this.unexpected(ee);
    }
    isLiteralPropertyName() {
      return ue(this.state.type);
    }
    isPrivateName(d) {
      return d.type === "PrivateName";
    }
    getPrivateNameSV(d) {
      return d.id.name;
    }
    hasPropertyAsPrivateName(d) {
      return (d.type === "MemberExpression" || d.type === "OptionalMemberExpression") && this.isPrivateName(d.property);
    }
    isObjectProperty(d) {
      return d.type === "ObjectProperty";
    }
    isObjectMethod(d) {
      return d.type === "ObjectMethod";
    }
    initializeScopes(d = this.options.sourceType === "module") {
      const p = this.state.labels;
      this.state.labels = [];
      const b = this.exportedIdentifiers;
      this.exportedIdentifiers = /* @__PURE__ */ new Set();
      const _ = this.inModule;
      this.inModule = d;
      const H = this.scope, ee = this.getScopeHandler();
      this.scope = new ee(this, d);
      const de = this.prodParam;
      this.prodParam = new Nu();
      const Ge = this.classScope;
      this.classScope = new Au(this);
      const Ye = this.expressionScope;
      return this.expressionScope = new _u(this), () => {
        this.state.labels = p, this.exportedIdentifiers = b, this.inModule = _, this.scope = H, this.prodParam = de, this.classScope = Ge, this.expressionScope = Ye;
      };
    }
    enterInitialScopes() {
      let d = _s;
      this.inModule && (d |= _a), this.scope.enter(Nn), this.prodParam.enter(d);
    }
    checkDestructuringPrivate(d) {
      const {
        privateKeyLoc: p
      } = d;
      p !== null && this.expectPlugin("destructuringPrivate", p);
    }
  }
  class ka {
    constructor() {
      this.shorthandAssignLoc = null, this.doubleProtoLoc = null, this.privateKeyLoc = null, this.optionalParametersLoc = null;
    }
  }
  class Oa {
    constructor(d, p, b) {
      this.type = "", this.start = p, this.end = 0, this.loc = new r(b), d != null && d.options.ranges && (this.range = [p, 0]), d != null && d.filename && (this.loc.filename = d.filename);
    }
  }
  const ao = Oa.prototype;
  ao.__clone = function() {
    const B = new Oa(void 0, this.start, this.loc.start), d = Object.keys(this);
    for (let p = 0, b = d.length; p < b; p++) {
      const _ = d[p];
      _ !== "leadingComments" && _ !== "trailingComments" && _ !== "innerComments" && (B[_] = this[_]);
    }
    return B;
  };
  function Lu(B) {
    return Gn(B);
  }
  function Gn(B) {
    const {
      type: d,
      start: p,
      end: b,
      loc: _,
      range: H,
      extra: ee,
      name: de
    } = B, Ge = Object.create(ao);
    return Ge.type = d, Ge.start = p, Ge.end = b, Ge.loc = _, Ge.range = H, Ge.extra = ee, Ge.name = de, d === "Placeholder" && (Ge.expectedNode = B.expectedNode), Ge;
  }
  function Mu(B) {
    const {
      type: d,
      start: p,
      end: b,
      loc: _,
      range: H,
      extra: ee
    } = B;
    if (d === "Placeholder")
      return Lu(B);
    const de = Object.create(ao);
    return de.type = d, de.start = p, de.end = b, de.loc = _, de.range = H, B.raw !== void 0 ? de.raw = B.raw : de.extra = ee, de.value = B.value, de;
  }
  class Ru extends Du {
    startNode() {
      return new Oa(this, this.state.start, this.state.startLoc);
    }
    startNodeAt(d) {
      return new Oa(this, d.index, d);
    }
    startNodeAtNode(d) {
      return this.startNodeAt(d.loc.start);
    }
    finishNode(d, p) {
      return this.finishNodeAt(d, p, this.state.lastTokEndLoc);
    }
    finishNodeAt(d, p, b) {
      return d.type = p, d.end = b.index, d.loc.end = b, this.options.ranges && (d.range[1] = b.index), this.options.attachComment && this.processComment(d), d;
    }
    resetStartLocation(d, p) {
      d.start = p.index, d.loc.start = p, this.options.ranges && (d.range[0] = p.index);
    }
    resetEndLocation(d, p = this.state.lastTokEndLoc) {
      d.end = p.index, d.loc.end = p, this.options.ranges && (d.range[1] = p.index);
    }
    resetStartLocationFromNode(d, p) {
      this.resetStartLocation(d, p.loc.start);
    }
  }
  const Bu = /* @__PURE__ */ new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "static", "string", "true", "typeof", "void"]), Wt = T(xne || (xne = at(["flow"])))({
    AmbiguousConditionalArrow: "Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.",
    AmbiguousDeclareModuleKind: "Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.",
    AssignReservedType: ({
      reservedType: B
    }) => "Cannot overwrite reserved type ".concat(B, "."),
    DeclareClassElement: "The `declare` modifier can only appear on class fields.",
    DeclareClassFieldInitializer: "Initializers are not allowed in fields with the `declare` modifier.",
    DuplicateDeclareModuleExports: "Duplicate `declare module.exports` statement.",
    EnumBooleanMemberNotInitialized: ({
      memberName: B,
      enumName: d
    }) => "Boolean enum members need to be initialized. Use either `".concat(B, " = true,` or `").concat(B, " = false,` in enum `").concat(d, "`."),
    EnumDuplicateMemberName: ({
      memberName: B,
      enumName: d
    }) => "Enum member names need to be unique, but the name `".concat(B, "` has already been used before in enum `").concat(d, "`."),
    EnumInconsistentMemberValues: ({
      enumName: B
    }) => "Enum `".concat(B, "` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers."),
    EnumInvalidExplicitType: ({
      invalidEnumType: B,
      enumName: d
    }) => "Enum type `".concat(B, "` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `").concat(d, "`."),
    EnumInvalidExplicitTypeUnknownSupplied: ({
      enumName: B
    }) => "Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `".concat(B, "`."),
    EnumInvalidMemberInitializerPrimaryType: ({
      enumName: B,
      memberName: d,
      explicitType: p
    }) => "Enum `".concat(B, "` has type `").concat(p, "`, so the initializer of `").concat(d, "` needs to be a ").concat(p, " literal."),
    EnumInvalidMemberInitializerSymbolType: ({
      enumName: B,
      memberName: d
    }) => "Symbol enum members cannot be initialized. Use `".concat(d, ",` in enum `").concat(B, "`."),
    EnumInvalidMemberInitializerUnknownType: ({
      enumName: B,
      memberName: d
    }) => "The enum member initializer for `".concat(d, "` needs to be a literal (either a boolean, number, or string) in enum `").concat(B, "`."),
    EnumInvalidMemberName: ({
      enumName: B,
      memberName: d,
      suggestion: p
    }) => "Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `".concat(d, "`, consider using `").concat(p, "`, in enum `").concat(B, "`."),
    EnumNumberMemberNotInitialized: ({
      enumName: B,
      memberName: d
    }) => "Number enum members need to be initialized, e.g. `".concat(d, " = 1` in enum `").concat(B, "`."),
    EnumStringMemberInconsistentlyInitailized: ({
      enumName: B
    }) => "String enum members need to consistently either all use initializers, or use no initializers, in enum `".concat(B, "`."),
    GetterMayNotHaveThisParam: "A getter cannot have a `this` parameter.",
    ImportReflectionHasImportType: "An `import module` declaration can not use `type` or `typeof` keyword.",
    ImportTypeShorthandOnlyInPureImport: "The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.",
    InexactInsideExact: "Explicit inexact syntax cannot appear inside an explicit exact object type.",
    InexactInsideNonObject: "Explicit inexact syntax cannot appear in class or interface definitions.",
    InexactVariance: "Explicit inexact syntax cannot have variance.",
    InvalidNonTypeImportInDeclareModule: "Imports within a `declare module` body must always be `import type` or `import typeof`.",
    MissingTypeParamDefault: "Type parameter declaration needs a default, since a preceding type parameter declaration has a default.",
    NestedDeclareModule: "`declare module` cannot be used inside another `declare module`.",
    NestedFlowComment: "Cannot have a flow comment inside another flow comment.",
    PatternIsOptional: Object.assign({
      message: "A binding pattern parameter cannot be optional in an implementation signature."
    }, {
      reasonCode: "OptionalBindingPattern"
    }),
    SetterMayNotHaveThisParam: "A setter cannot have a `this` parameter.",
    SpreadVariance: "Spread properties cannot have variance.",
    ThisParamAnnotationRequired: "A type annotation is required for the `this` parameter.",
    ThisParamBannedInConstructor: "Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.",
    ThisParamMayNotBeOptional: "The `this` parameter cannot be optional.",
    ThisParamMustBeFirst: "The `this` parameter must be the first function parameter.",
    ThisParamNoDefault: "The `this` parameter may not have a default value.",
    TypeBeforeInitializer: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",
    TypeCastInPattern: "The type cast expression is expected to be wrapped with parenthesis.",
    UnexpectedExplicitInexactInObject: "Explicit inexact syntax must appear at the end of an inexact object.",
    UnexpectedReservedType: ({
      reservedType: B
    }) => "Unexpected reserved type ".concat(B, "."),
    UnexpectedReservedUnderscore: "`_` is only allowed as a type argument to call or new.",
    UnexpectedSpaceBetweenModuloChecks: "Spaces between `%` and `checks` are not allowed here.",
    UnexpectedSpreadType: "Spread operator cannot appear in class or interface definitions.",
    UnexpectedSubtractionOperand: 'Unexpected token, expected "number" or "bigint".',
    UnexpectedTokenAfterTypeParameter: "Expected an arrow function after this type parameter declaration.",
    UnexpectedTypeParameterBeforeAsyncArrowFunction: "Type parameters must come after the async keyword, e.g. instead of `<T> async () => {}`, use `async <T>() => {}`.",
    UnsupportedDeclareExportKind: ({
      unsupportedExportKind: B,
      suggestion: d
    }) => "`declare export ".concat(B, "` is not supported. Use `").concat(d, "` instead."),
    UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.",
    UnterminatedFlowComment: "Unterminated flow-comment."
  });
  function Fu(B) {
    return B.type === "DeclareExportAllDeclaration" || B.type === "DeclareExportDeclaration" && (!B.declaration || B.declaration.type !== "TypeAlias" && B.declaration.type !== "InterfaceDeclaration");
  }
  function Zo(B) {
    return B.importKind === "type" || B.importKind === "typeof";
  }
  const ju = {
    const: "declare export var",
    let: "declare export var",
    type: "export type",
    interface: "export interface"
  };
  function $u(B, d) {
    const p = [], b = [];
    for (let _ = 0; _ < B.length; _++)
      (d(B[_], _, B) ? p : b).push(B[_]);
    return [p, b];
  }
  const Uu = /\*?\s*@((?:no)?flow)\b/;
  var qu = (B) => class extends B {
    constructor(...p) {
      super(...p), this.flowPragma = void 0;
    }
    getScopeHandler() {
      return hu;
    }
    shouldParseTypes() {
      return this.getPluginOption("flow", "all") || this.flowPragma === "flow";
    }
    shouldParseEnums() {
      return !!this.getPluginOption("flow", "enums");
    }
    finishToken(p, b) {
      p !== 131 && p !== 13 && p !== 28 && this.flowPragma === void 0 && (this.flowPragma = null), super.finishToken(p, b);
    }
    addComment(p) {
      if (this.flowPragma === void 0) {
        const b = Uu.exec(p.value);
        if (b)
          if (b[1] === "flow")
            this.flowPragma = "flow";
          else if (b[1] === "noflow")
            this.flowPragma = "noflow";
          else
            throw new Error("Unexpected flow pragma");
      }
      super.addComment(p);
    }
    flowParseTypeInitialiser(p) {
      const b = this.state.inType;
      this.state.inType = !0, this.expect(p || 14);
      const _ = this.flowParseType();
      return this.state.inType = b, _;
    }
    flowParsePredicate() {
      const p = this.startNode(), b = this.state.startLoc;
      return this.next(), this.expectContextual(108), this.state.lastTokStart > b.index + 1 && this.raise(Wt.UnexpectedSpaceBetweenModuloChecks, {
        at: b
      }), this.eat(10) ? (p.value = super.parseExpression(), this.expect(11), this.finishNode(p, "DeclaredPredicate")) : this.finishNode(p, "InferredPredicate");
    }
    flowParseTypeAndPredicateInitialiser() {
      const p = this.state.inType;
      this.state.inType = !0, this.expect(14);
      let b = null, _ = null;
      return this.match(54) ? (this.state.inType = p, _ = this.flowParsePredicate()) : (b = this.flowParseType(), this.state.inType = p, this.match(54) && (_ = this.flowParsePredicate())), [b, _];
    }
    flowParseDeclareClass(p) {
      return this.next(), this.flowParseInterfaceish(p, !0), this.finishNode(p, "DeclareClass");
    }
    flowParseDeclareFunction(p) {
      this.next();
      const b = p.id = this.parseIdentifier(), _ = this.startNode(), H = this.startNode();
      this.match(47) ? _.typeParameters = this.flowParseTypeParameterDeclaration() : _.typeParameters = null, this.expect(10);
      const ee = this.flowParseFunctionTypeParams();
      return _.params = ee.params, _.rest = ee.rest, _.this = ee._this, this.expect(11), [_.returnType, p.predicate] = this.flowParseTypeAndPredicateInitialiser(), H.typeAnnotation = this.finishNode(_, "FunctionTypeAnnotation"), b.typeAnnotation = this.finishNode(H, "TypeAnnotation"), this.resetEndLocation(b), this.semicolon(), this.scope.declareName(p.id.name, ou, p.id.loc.start), this.finishNode(p, "DeclareFunction");
    }
    flowParseDeclare(p, b) {
      if (this.match(80))
        return this.flowParseDeclareClass(p);
      if (this.match(68))
        return this.flowParseDeclareFunction(p);
      if (this.match(74))
        return this.flowParseDeclareVariable(p);
      if (this.eatContextual(125))
        return this.match(16) ? this.flowParseDeclareModuleExports(p) : (b && this.raise(Wt.NestedDeclareModule, {
          at: this.state.lastTokStartLoc
        }), this.flowParseDeclareModule(p));
      if (this.isContextual(128))
        return this.flowParseDeclareTypeAlias(p);
      if (this.isContextual(129))
        return this.flowParseDeclareOpaqueType(p);
      if (this.isContextual(127))
        return this.flowParseDeclareInterface(p);
      if (this.match(82))
        return this.flowParseDeclareExportDeclaration(p, b);
      this.unexpected();
    }
    flowParseDeclareVariable(p) {
      return this.next(), p.id = this.flowParseTypeAnnotatableIdentifier(!0), this.scope.declareName(p.id.name, xa, p.id.loc.start), this.semicolon(), this.finishNode(p, "DeclareVariable");
    }
    flowParseDeclareModule(p) {
      this.scope.enter(an), this.match(131) ? p.id = super.parseExprAtom() : p.id = this.parseIdentifier();
      const b = p.body = this.startNode(), _ = b.body = [];
      for (this.expect(5); !this.match(8); ) {
        let de = this.startNode();
        this.match(83) ? (this.next(), !this.isContextual(128) && !this.match(87) && this.raise(Wt.InvalidNonTypeImportInDeclareModule, {
          at: this.state.lastTokStartLoc
        }), super.parseImport(de)) : (this.expectContextual(123, Wt.UnsupportedStatementInDeclareModule), de = this.flowParseDeclare(de, !0)), _.push(de);
      }
      this.scope.exit(), this.expect(8), this.finishNode(b, "BlockStatement");
      let H = null, ee = !1;
      return _.forEach((de) => {
        Fu(de) ? (H === "CommonJS" && this.raise(Wt.AmbiguousDeclareModuleKind, {
          at: de
        }), H = "ES") : de.type === "DeclareModuleExports" && (ee && this.raise(Wt.DuplicateDeclareModuleExports, {
          at: de
        }), H === "ES" && this.raise(Wt.AmbiguousDeclareModuleKind, {
          at: de
        }), H = "CommonJS", ee = !0);
      }), p.kind = H || "CommonJS", this.finishNode(p, "DeclareModule");
    }
    flowParseDeclareExportDeclaration(p, b) {
      if (this.expect(82), this.eat(65))
        return this.match(68) || this.match(80) ? p.declaration = this.flowParseDeclare(this.startNode()) : (p.declaration = this.flowParseType(), this.semicolon()), p.default = !0, this.finishNode(p, "DeclareExportDeclaration");
      if (this.match(75) || this.isLet() || (this.isContextual(128) || this.isContextual(127)) && !b) {
        const _ = this.state.value;
        throw this.raise(Wt.UnsupportedDeclareExportKind, {
          at: this.state.startLoc,
          unsupportedExportKind: _,
          suggestion: ju[_]
        });
      }
      if (this.match(74) || this.match(68) || this.match(80) || this.isContextual(129))
        return p.declaration = this.flowParseDeclare(this.startNode()), p.default = !1, this.finishNode(p, "DeclareExportDeclaration");
      if (this.match(55) || this.match(5) || this.isContextual(127) || this.isContextual(128) || this.isContextual(129))
        return p = this.parseExport(p, null), p.type === "ExportNamedDeclaration" && (p.type = "ExportDeclaration", p.default = !1, delete p.exportKind), p.type = "Declare" + p.type, p;
      this.unexpected();
    }
    flowParseDeclareModuleExports(p) {
      return this.next(), this.expectContextual(109), p.typeAnnotation = this.flowParseTypeAnnotation(), this.semicolon(), this.finishNode(p, "DeclareModuleExports");
    }
    flowParseDeclareTypeAlias(p) {
      this.next();
      const b = this.flowParseTypeAlias(p);
      return b.type = "DeclareTypeAlias", b;
    }
    flowParseDeclareOpaqueType(p) {
      this.next();
      const b = this.flowParseOpaqueType(p, !0);
      return b.type = "DeclareOpaqueType", b;
    }
    flowParseDeclareInterface(p) {
      return this.next(), this.flowParseInterfaceish(p, !1), this.finishNode(p, "DeclareInterface");
    }
    flowParseInterfaceish(p, b) {
      if (p.id = this.flowParseRestrictedIdentifier(!b, !0), this.scope.declareName(p.id.name, b ? Ro : Cs, p.id.loc.start), this.match(47) ? p.typeParameters = this.flowParseTypeParameterDeclaration() : p.typeParameters = null, p.extends = [], this.eat(81))
        do
          p.extends.push(this.flowParseInterfaceExtends());
        while (!b && this.eat(12));
      if (b) {
        if (p.implements = [], p.mixins = [], this.eatContextual(115))
          do
            p.mixins.push(this.flowParseInterfaceExtends());
          while (this.eat(12));
        if (this.eatContextual(111))
          do
            p.implements.push(this.flowParseInterfaceExtends());
          while (this.eat(12));
      }
      p.body = this.flowParseObjectType({
        allowStatic: b,
        allowExact: !1,
        allowSpread: !1,
        allowProto: b,
        allowInexact: !1
      });
    }
    flowParseInterfaceExtends() {
      const p = this.startNode();
      return p.id = this.flowParseQualifiedTypeIdentifier(), this.match(47) ? p.typeParameters = this.flowParseTypeParameterInstantiation() : p.typeParameters = null, this.finishNode(p, "InterfaceExtends");
    }
    flowParseInterface(p) {
      return this.flowParseInterfaceish(p, !1), this.finishNode(p, "InterfaceDeclaration");
    }
    checkNotUnderscore(p) {
      p === "_" && this.raise(Wt.UnexpectedReservedUnderscore, {
        at: this.state.startLoc
      });
    }
    checkReservedType(p, b, _) {
      Bu.has(p) && this.raise(_ ? Wt.AssignReservedType : Wt.UnexpectedReservedType, {
        at: b,
        reservedType: p
      });
    }
    flowParseRestrictedIdentifier(p, b) {
      return this.checkReservedType(this.state.value, this.state.startLoc, b), this.parseIdentifier(p);
    }
    flowParseTypeAlias(p) {
      return p.id = this.flowParseRestrictedIdentifier(!1, !0), this.scope.declareName(p.id.name, Cs, p.id.loc.start), this.match(47) ? p.typeParameters = this.flowParseTypeParameterDeclaration() : p.typeParameters = null, p.right = this.flowParseTypeInitialiser(29), this.semicolon(), this.finishNode(p, "TypeAlias");
    }
    flowParseOpaqueType(p, b) {
      return this.expectContextual(128), p.id = this.flowParseRestrictedIdentifier(!0, !0), this.scope.declareName(p.id.name, Cs, p.id.loc.start), this.match(47) ? p.typeParameters = this.flowParseTypeParameterDeclaration() : p.typeParameters = null, p.supertype = null, this.match(14) && (p.supertype = this.flowParseTypeInitialiser(14)), p.impltype = null, b || (p.impltype = this.flowParseTypeInitialiser(29)), this.semicolon(), this.finishNode(p, "OpaqueType");
    }
    flowParseTypeParameter(p = !1) {
      const b = this.state.startLoc, _ = this.startNode(), H = this.flowParseVariance(), ee = this.flowParseTypeAnnotatableIdentifier();
      return _.name = ee.name, _.variance = H, _.bound = ee.typeAnnotation, this.match(29) ? (this.eat(29), _.default = this.flowParseType()) : p && this.raise(Wt.MissingTypeParamDefault, {
        at: b
      }), this.finishNode(_, "TypeParameter");
    }
    flowParseTypeParameterDeclaration() {
      const p = this.state.inType, b = this.startNode();
      b.params = [], this.state.inType = !0, this.match(47) || this.match(140) ? this.next() : this.unexpected();
      let _ = !1;
      do {
        const H = this.flowParseTypeParameter(_);
        b.params.push(H), H.default && (_ = !0), this.match(48) || this.expect(12);
      } while (!this.match(48));
      return this.expect(48), this.state.inType = p, this.finishNode(b, "TypeParameterDeclaration");
    }
    flowParseTypeParameterInstantiation() {
      const p = this.startNode(), b = this.state.inType;
      p.params = [], this.state.inType = !0, this.expect(47);
      const _ = this.state.noAnonFunctionType;
      for (this.state.noAnonFunctionType = !1; !this.match(48); )
        p.params.push(this.flowParseType()), this.match(48) || this.expect(12);
      return this.state.noAnonFunctionType = _, this.expect(48), this.state.inType = b, this.finishNode(p, "TypeParameterInstantiation");
    }
    flowParseTypeParameterInstantiationCallOrNew() {
      const p = this.startNode(), b = this.state.inType;
      for (p.params = [], this.state.inType = !0, this.expect(47); !this.match(48); )
        p.params.push(this.flowParseTypeOrImplicitInstantiation()), this.match(48) || this.expect(12);
      return this.expect(48), this.state.inType = b, this.finishNode(p, "TypeParameterInstantiation");
    }
    flowParseInterfaceType() {
      const p = this.startNode();
      if (this.expectContextual(127), p.extends = [], this.eat(81))
        do
          p.extends.push(this.flowParseInterfaceExtends());
        while (this.eat(12));
      return p.body = this.flowParseObjectType({
        allowStatic: !1,
        allowExact: !1,
        allowSpread: !1,
        allowProto: !1,
        allowInexact: !1
      }), this.finishNode(p, "InterfaceTypeAnnotation");
    }
    flowParseObjectPropertyKey() {
      return this.match(132) || this.match(131) ? super.parseExprAtom() : this.parseIdentifier(!0);
    }
    flowParseObjectTypeIndexer(p, b, _) {
      return p.static = b, this.lookahead().type === 14 ? (p.id = this.flowParseObjectPropertyKey(), p.key = this.flowParseTypeInitialiser()) : (p.id = null, p.key = this.flowParseType()), this.expect(3), p.value = this.flowParseTypeInitialiser(), p.variance = _, this.finishNode(p, "ObjectTypeIndexer");
    }
    flowParseObjectTypeInternalSlot(p, b) {
      return p.static = b, p.id = this.flowParseObjectPropertyKey(), this.expect(3), this.expect(3), this.match(47) || this.match(10) ? (p.method = !0, p.optional = !1, p.value = this.flowParseObjectTypeMethodish(this.startNodeAt(p.loc.start))) : (p.method = !1, this.eat(17) && (p.optional = !0), p.value = this.flowParseTypeInitialiser()), this.finishNode(p, "ObjectTypeInternalSlot");
    }
    flowParseObjectTypeMethodish(p) {
      for (p.params = [], p.rest = null, p.typeParameters = null, p.this = null, this.match(47) && (p.typeParameters = this.flowParseTypeParameterDeclaration()), this.expect(10), this.match(78) && (p.this = this.flowParseFunctionTypeParam(!0), p.this.name = null, this.match(11) || this.expect(12)); !this.match(11) && !this.match(21); )
        p.params.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
      return this.eat(21) && (p.rest = this.flowParseFunctionTypeParam(!1)), this.expect(11), p.returnType = this.flowParseTypeInitialiser(), this.finishNode(p, "FunctionTypeAnnotation");
    }
    flowParseObjectTypeCallProperty(p, b) {
      const _ = this.startNode();
      return p.static = b, p.value = this.flowParseObjectTypeMethodish(_), this.finishNode(p, "ObjectTypeCallProperty");
    }
    flowParseObjectType({
      allowStatic: p,
      allowExact: b,
      allowSpread: _,
      allowProto: H,
      allowInexact: ee
    }) {
      const de = this.state.inType;
      this.state.inType = !0;
      const Ge = this.startNode();
      Ge.callProperties = [], Ge.properties = [], Ge.indexers = [], Ge.internalSlots = [];
      let Ye, Je, gt = !1;
      for (b && this.match(6) ? (this.expect(6), Ye = 9, Je = !0) : (this.expect(5), Ye = 8, Je = !1), Ge.exact = Je; !this.match(Ye); ) {
        let _t = !1, Ht = null, zi = null;
        const Li = this.startNode();
        if (H && this.isContextual(116)) {
          const Tn = this.lookahead();
          Tn.type !== 14 && Tn.type !== 17 && (this.next(), Ht = this.state.startLoc, p = !1);
        }
        if (p && this.isContextual(104)) {
          const Tn = this.lookahead();
          Tn.type !== 14 && Tn.type !== 17 && (this.next(), _t = !0);
        }
        const Mi = this.flowParseVariance();
        if (this.eat(0))
          Ht != null && this.unexpected(Ht), this.eat(0) ? (Mi && this.unexpected(Mi.loc.start), Ge.internalSlots.push(this.flowParseObjectTypeInternalSlot(Li, _t))) : Ge.indexers.push(this.flowParseObjectTypeIndexer(Li, _t, Mi));
        else if (this.match(10) || this.match(47))
          Ht != null && this.unexpected(Ht), Mi && this.unexpected(Mi.loc.start), Ge.callProperties.push(this.flowParseObjectTypeCallProperty(Li, _t));
        else {
          let Tn = "init";
          if (this.isContextual(98) || this.isContextual(103)) {
            const Ap = this.lookahead();
            ue(Ap.type) && (Tn = this.state.value, this.next());
          }
          const Kf = this.flowParseObjectTypeProperty(Li, _t, Ht, Mi, Tn, _, ee != null ? ee : !Je);
          Kf === null ? (gt = !0, zi = this.state.lastTokStartLoc) : Ge.properties.push(Kf);
        }
        this.flowObjectTypeSemicolon(), zi && !this.match(8) && !this.match(9) && this.raise(Wt.UnexpectedExplicitInexactInObject, {
          at: zi
        });
      }
      this.expect(Ye), _ && (Ge.inexact = gt);
      const It = this.finishNode(Ge, "ObjectTypeAnnotation");
      return this.state.inType = de, It;
    }
    flowParseObjectTypeProperty(p, b, _, H, ee, de, Ge) {
      if (this.eat(21))
        return this.match(12) || this.match(13) || this.match(8) || this.match(9) ? (de ? Ge || this.raise(Wt.InexactInsideExact, {
          at: this.state.lastTokStartLoc
        }) : this.raise(Wt.InexactInsideNonObject, {
          at: this.state.lastTokStartLoc
        }), H && this.raise(Wt.InexactVariance, {
          at: H
        }), null) : (de || this.raise(Wt.UnexpectedSpreadType, {
          at: this.state.lastTokStartLoc
        }), _ != null && this.unexpected(_), H && this.raise(Wt.SpreadVariance, {
          at: H
        }), p.argument = this.flowParseType(), this.finishNode(p, "ObjectTypeSpreadProperty"));
      {
        p.key = this.flowParseObjectPropertyKey(), p.static = b, p.proto = _ != null, p.kind = ee;
        let Ye = !1;
        return this.match(47) || this.match(10) ? (p.method = !0, _ != null && this.unexpected(_), H && this.unexpected(H.loc.start), p.value = this.flowParseObjectTypeMethodish(this.startNodeAt(p.loc.start)), (ee === "get" || ee === "set") && this.flowCheckGetterSetterParams(p), !de && p.key.name === "constructor" && p.value.this && this.raise(Wt.ThisParamBannedInConstructor, {
          at: p.value.this
        })) : (ee !== "init" && this.unexpected(), p.method = !1, this.eat(17) && (Ye = !0), p.value = this.flowParseTypeInitialiser(), p.variance = H), p.optional = Ye, this.finishNode(p, "ObjectTypeProperty");
      }
    }
    flowCheckGetterSetterParams(p) {
      const b = p.kind === "get" ? 0 : 1, _ = p.value.params.length + (p.value.rest ? 1 : 0);
      p.value.this && this.raise(p.kind === "get" ? Wt.GetterMayNotHaveThisParam : Wt.SetterMayNotHaveThisParam, {
        at: p.value.this
      }), _ !== b && this.raise(p.kind === "get" ? S.BadGetterArity : S.BadSetterArity, {
        at: p
      }), p.kind === "set" && p.value.rest && this.raise(S.BadSetterRestParameter, {
        at: p
      });
    }
    flowObjectTypeSemicolon() {
      !this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9) && this.unexpected();
    }
    flowParseQualifiedTypeIdentifier(p, b) {
      var _;
      (_ = p) != null || (p = this.state.startLoc);
      let H = b || this.flowParseRestrictedIdentifier(!0);
      for (; this.eat(16); ) {
        const ee = this.startNodeAt(p);
        ee.qualification = H, ee.id = this.flowParseRestrictedIdentifier(!0), H = this.finishNode(ee, "QualifiedTypeIdentifier");
      }
      return H;
    }
    flowParseGenericType(p, b) {
      const _ = this.startNodeAt(p);
      return _.typeParameters = null, _.id = this.flowParseQualifiedTypeIdentifier(p, b), this.match(47) && (_.typeParameters = this.flowParseTypeParameterInstantiation()), this.finishNode(_, "GenericTypeAnnotation");
    }
    flowParseTypeofType() {
      const p = this.startNode();
      return this.expect(87), p.argument = this.flowParsePrimaryType(), this.finishNode(p, "TypeofTypeAnnotation");
    }
    flowParseTupleType() {
      const p = this.startNode();
      for (p.types = [], this.expect(0); this.state.pos < this.length && !this.match(3) && (p.types.push(this.flowParseType()), !this.match(3)); )
        this.expect(12);
      return this.expect(3), this.finishNode(p, "TupleTypeAnnotation");
    }
    flowParseFunctionTypeParam(p) {
      let b = null, _ = !1, H = null;
      const ee = this.startNode(), de = this.lookahead(), Ge = this.state.type === 78;
      return de.type === 14 || de.type === 17 ? (Ge && !p && this.raise(Wt.ThisParamMustBeFirst, {
        at: ee
      }), b = this.parseIdentifier(Ge), this.eat(17) && (_ = !0, Ge && this.raise(Wt.ThisParamMayNotBeOptional, {
        at: ee
      })), H = this.flowParseTypeInitialiser()) : H = this.flowParseType(), ee.name = b, ee.optional = _, ee.typeAnnotation = H, this.finishNode(ee, "FunctionTypeParam");
    }
    reinterpretTypeAsFunctionTypeParam(p) {
      const b = this.startNodeAt(p.loc.start);
      return b.name = null, b.optional = !1, b.typeAnnotation = p, this.finishNode(b, "FunctionTypeParam");
    }
    flowParseFunctionTypeParams(p = []) {
      let b = null, _ = null;
      for (this.match(78) && (_ = this.flowParseFunctionTypeParam(!0), _.name = null, this.match(11) || this.expect(12)); !this.match(11) && !this.match(21); )
        p.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
      return this.eat(21) && (b = this.flowParseFunctionTypeParam(!1)), {
        params: p,
        rest: b,
        _this: _
      };
    }
    flowIdentToTypeAnnotation(p, b, _) {
      switch (_.name) {
        case "any":
          return this.finishNode(b, "AnyTypeAnnotation");
        case "bool":
        case "boolean":
          return this.finishNode(b, "BooleanTypeAnnotation");
        case "mixed":
          return this.finishNode(b, "MixedTypeAnnotation");
        case "empty":
          return this.finishNode(b, "EmptyTypeAnnotation");
        case "number":
          return this.finishNode(b, "NumberTypeAnnotation");
        case "string":
          return this.finishNode(b, "StringTypeAnnotation");
        case "symbol":
          return this.finishNode(b, "SymbolTypeAnnotation");
        default:
          return this.checkNotUnderscore(_.name), this.flowParseGenericType(p, _);
      }
    }
    flowParsePrimaryType() {
      const p = this.state.startLoc, b = this.startNode();
      let _, H, ee = !1;
      const de = this.state.noAnonFunctionType;
      switch (this.state.type) {
        case 5:
          return this.flowParseObjectType({
            allowStatic: !1,
            allowExact: !1,
            allowSpread: !0,
            allowProto: !1,
            allowInexact: !0
          });
        case 6:
          return this.flowParseObjectType({
            allowStatic: !1,
            allowExact: !0,
            allowSpread: !0,
            allowProto: !1,
            allowInexact: !1
          });
        case 0:
          return this.state.noAnonFunctionType = !1, H = this.flowParseTupleType(), this.state.noAnonFunctionType = de, H;
        case 47:
          return b.typeParameters = this.flowParseTypeParameterDeclaration(), this.expect(10), _ = this.flowParseFunctionTypeParams(), b.params = _.params, b.rest = _.rest, b.this = _._this, this.expect(11), this.expect(19), b.returnType = this.flowParseType(), this.finishNode(b, "FunctionTypeAnnotation");
        case 10:
          if (this.next(), !this.match(11) && !this.match(21))
            if (ye(this.state.type) || this.match(78)) {
              const Ge = this.lookahead().type;
              ee = Ge !== 17 && Ge !== 14;
            } else
              ee = !0;
          if (ee) {
            if (this.state.noAnonFunctionType = !1, H = this.flowParseType(), this.state.noAnonFunctionType = de, this.state.noAnonFunctionType || !(this.match(12) || this.match(11) && this.lookahead().type === 19))
              return this.expect(11), H;
            this.eat(12);
          }
          return H ? _ = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(H)]) : _ = this.flowParseFunctionTypeParams(), b.params = _.params, b.rest = _.rest, b.this = _._this, this.expect(11), this.expect(19), b.returnType = this.flowParseType(), b.typeParameters = null, this.finishNode(b, "FunctionTypeAnnotation");
        case 131:
          return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation");
        case 85:
        case 86:
          return b.value = this.match(85), this.next(), this.finishNode(b, "BooleanLiteralTypeAnnotation");
        case 53:
          if (this.state.value === "-") {
            if (this.next(), this.match(132))
              return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", b);
            if (this.match(133))
              return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", b);
            throw this.raise(Wt.UnexpectedSubtractionOperand, {
              at: this.state.startLoc
            });
          }
          this.unexpected();
          return;
        case 132:
          return this.parseLiteral(this.state.value, "NumberLiteralTypeAnnotation");
        case 133:
          return this.parseLiteral(this.state.value, "BigIntLiteralTypeAnnotation");
        case 88:
          return this.next(), this.finishNode(b, "VoidTypeAnnotation");
        case 84:
          return this.next(), this.finishNode(b, "NullLiteralTypeAnnotation");
        case 78:
          return this.next(), this.finishNode(b, "ThisTypeAnnotation");
        case 55:
          return this.next(), this.finishNode(b, "ExistsTypeAnnotation");
        case 87:
          return this.flowParseTypeofType();
        default:
          if (st(this.state.type)) {
            const Ge = Te(this.state.type);
            return this.next(), super.createIdentifier(b, Ge);
          } else if (ye(this.state.type))
            return this.isContextual(127) ? this.flowParseInterfaceType() : this.flowIdentToTypeAnnotation(p, b, this.parseIdentifier());
      }
      this.unexpected();
    }
    flowParsePostfixType() {
      const p = this.state.startLoc;
      let b = this.flowParsePrimaryType(), _ = !1;
      for (; (this.match(0) || this.match(18)) && !this.canInsertSemicolon(); ) {
        const H = this.startNodeAt(p), ee = this.eat(18);
        _ = _ || ee, this.expect(0), !ee && this.match(3) ? (H.elementType = b, this.next(), b = this.finishNode(H, "ArrayTypeAnnotation")) : (H.objectType = b, H.indexType = this.flowParseType(), this.expect(3), _ ? (H.optional = ee, b = this.finishNode(H, "OptionalIndexedAccessType")) : b = this.finishNode(H, "IndexedAccessType"));
      }
      return b;
    }
    flowParsePrefixType() {
      const p = this.startNode();
      return this.eat(17) ? (p.typeAnnotation = this.flowParsePrefixType(), this.finishNode(p, "NullableTypeAnnotation")) : this.flowParsePostfixType();
    }
    flowParseAnonFunctionWithoutParens() {
      const p = this.flowParsePrefixType();
      if (!this.state.noAnonFunctionType && this.eat(19)) {
        const b = this.startNodeAt(p.loc.start);
        return b.params = [this.reinterpretTypeAsFunctionTypeParam(p)], b.rest = null, b.this = null, b.returnType = this.flowParseType(), b.typeParameters = null, this.finishNode(b, "FunctionTypeAnnotation");
      }
      return p;
    }
    flowParseIntersectionType() {
      const p = this.startNode();
      this.eat(45);
      const b = this.flowParseAnonFunctionWithoutParens();
      for (p.types = [b]; this.eat(45); )
        p.types.push(this.flowParseAnonFunctionWithoutParens());
      return p.types.length === 1 ? b : this.finishNode(p, "IntersectionTypeAnnotation");
    }
    flowParseUnionType() {
      const p = this.startNode();
      this.eat(43);
      const b = this.flowParseIntersectionType();
      for (p.types = [b]; this.eat(43); )
        p.types.push(this.flowParseIntersectionType());
      return p.types.length === 1 ? b : this.finishNode(p, "UnionTypeAnnotation");
    }
    flowParseType() {
      const p = this.state.inType;
      this.state.inType = !0;
      const b = this.flowParseUnionType();
      return this.state.inType = p, b;
    }
    flowParseTypeOrImplicitInstantiation() {
      if (this.state.type === 130 && this.state.value === "_") {
        const p = this.state.startLoc, b = this.parseIdentifier();
        return this.flowParseGenericType(p, b);
      } else
        return this.flowParseType();
    }
    flowParseTypeAnnotation() {
      const p = this.startNode();
      return p.typeAnnotation = this.flowParseTypeInitialiser(), this.finishNode(p, "TypeAnnotation");
    }
    flowParseTypeAnnotatableIdentifier(p) {
      const b = p ? this.parseIdentifier() : this.flowParseRestrictedIdentifier();
      return this.match(14) && (b.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(b)), b;
    }
    typeCastToParameter(p) {
      return p.expression.typeAnnotation = p.typeAnnotation, this.resetEndLocation(p.expression, p.typeAnnotation.loc.end), p.expression;
    }
    flowParseVariance() {
      let p = null;
      return this.match(53) ? (p = this.startNode(), this.state.value === "+" ? p.kind = "plus" : p.kind = "minus", this.next(), this.finishNode(p, "Variance")) : p;
    }
    parseFunctionBody(p, b, _ = !1) {
      if (b) {
        this.forwardNoArrowParamsConversionAt(p, () => super.parseFunctionBody(p, !0, _));
        return;
      }
      super.parseFunctionBody(p, !1, _);
    }
    parseFunctionBodyAndFinish(p, b, _ = !1) {
      if (this.match(14)) {
        const H = this.startNode();
        [H.typeAnnotation, p.predicate] = this.flowParseTypeAndPredicateInitialiser(), p.returnType = H.typeAnnotation ? this.finishNode(H, "TypeAnnotation") : null;
      }
      return super.parseFunctionBodyAndFinish(p, b, _);
    }
    parseStatementLike(p) {
      if (this.state.strict && this.isContextual(127)) {
        const _ = this.lookahead();
        if (Z(_.type)) {
          const H = this.startNode();
          return this.next(), this.flowParseInterface(H);
        }
      } else if (this.shouldParseEnums() && this.isContextual(124)) {
        const _ = this.startNode();
        return this.next(), this.flowParseEnumDeclaration(_);
      }
      const b = super.parseStatementLike(p);
      return this.flowPragma === void 0 && !this.isValidDirective(b) && (this.flowPragma = null), b;
    }
    parseExpressionStatement(p, b, _) {
      if (b.type === "Identifier") {
        if (b.name === "declare") {
          if (this.match(80) || ye(this.state.type) || this.match(68) || this.match(74) || this.match(82))
            return this.flowParseDeclare(p);
        } else if (ye(this.state.type)) {
          if (b.name === "interface")
            return this.flowParseInterface(p);
          if (b.name === "type")
            return this.flowParseTypeAlias(p);
          if (b.name === "opaque")
            return this.flowParseOpaqueType(p, !1);
        }
      }
      return super.parseExpressionStatement(p, b, _);
    }
    shouldParseExportDeclaration() {
      const {
        type: p
      } = this.state;
      return ve(p) || this.shouldParseEnums() && p === 124 ? !this.state.containsEsc : super.shouldParseExportDeclaration();
    }
    isExportDefaultSpecifier() {
      const {
        type: p
      } = this.state;
      return ve(p) || this.shouldParseEnums() && p === 124 ? this.state.containsEsc : super.isExportDefaultSpecifier();
    }
    parseExportDefaultExpression() {
      if (this.shouldParseEnums() && this.isContextual(124)) {
        const p = this.startNode();
        return this.next(), this.flowParseEnumDeclaration(p);
      }
      return super.parseExportDefaultExpression();
    }
    parseConditional(p, b, _) {
      if (!this.match(17))
        return p;
      if (this.state.maybeInArrowParameters) {
        const It = this.lookaheadCharCode();
        if (It === 44 || It === 61 || It === 58 || It === 41)
          return this.setOptionalParametersError(_), p;
      }
      this.expect(17);
      const H = this.state.clone(), ee = this.state.noArrowAt, de = this.startNodeAt(b);
      let {
        consequent: Ge,
        failed: Ye
      } = this.tryParseConditionalConsequent(), [Je, gt] = this.getArrowLikeExpressions(Ge);
      if (Ye || gt.length > 0) {
        const It = [...ee];
        if (gt.length > 0) {
          this.state = H, this.state.noArrowAt = It;
          for (let _t = 0; _t < gt.length; _t++)
            It.push(gt[_t].start);
          ({
            consequent: Ge,
            failed: Ye
          } = this.tryParseConditionalConsequent()), [Je, gt] = this.getArrowLikeExpressions(Ge);
        }
        Ye && Je.length > 1 && this.raise(Wt.AmbiguousConditionalArrow, {
          at: H.startLoc
        }), Ye && Je.length === 1 && (this.state = H, It.push(Je[0].start), this.state.noArrowAt = It, {
          consequent: Ge,
          failed: Ye
        } = this.tryParseConditionalConsequent());
      }
      return this.getArrowLikeExpressions(Ge, !0), this.state.noArrowAt = ee, this.expect(14), de.test = p, de.consequent = Ge, de.alternate = this.forwardNoArrowParamsConversionAt(de, () => this.parseMaybeAssign(void 0, void 0)), this.finishNode(de, "ConditionalExpression");
    }
    tryParseConditionalConsequent() {
      this.state.noArrowParamsConversionAt.push(this.state.start);
      const p = this.parseMaybeAssignAllowIn(), b = !this.match(14);
      return this.state.noArrowParamsConversionAt.pop(), {
        consequent: p,
        failed: b
      };
    }
    getArrowLikeExpressions(p, b) {
      const _ = [p], H = [];
      for (; _.length !== 0; ) {
        const ee = _.pop();
        ee.type === "ArrowFunctionExpression" ? (ee.typeParameters || !ee.returnType ? this.finishArrowValidation(ee) : H.push(ee), _.push(ee.body)) : ee.type === "ConditionalExpression" && (_.push(ee.consequent), _.push(ee.alternate));
      }
      return b ? (H.forEach((ee) => this.finishArrowValidation(ee)), [H, []]) : $u(H, (ee) => ee.params.every((de) => this.isAssignable(de, !0)));
    }
    finishArrowValidation(p) {
      var b;
      this.toAssignableList(p.params, (b = p.extra) == null ? void 0 : b.trailingCommaLoc, !1), this.scope.enter(on | _n), super.checkParams(p, !1, !0), this.scope.exit();
    }
    forwardNoArrowParamsConversionAt(p, b) {
      let _;
      return this.state.noArrowParamsConversionAt.indexOf(p.start) !== -1 ? (this.state.noArrowParamsConversionAt.push(this.state.start), _ = b(), this.state.noArrowParamsConversionAt.pop()) : _ = b(), _;
    }
    parseParenItem(p, b) {
      if (p = super.parseParenItem(p, b), this.eat(17) && (p.optional = !0, this.resetEndLocation(p)), this.match(14)) {
        const _ = this.startNodeAt(b);
        return _.expression = p, _.typeAnnotation = this.flowParseTypeAnnotation(), this.finishNode(_, "TypeCastExpression");
      }
      return p;
    }
    assertModuleNodeAllowed(p) {
      p.type === "ImportDeclaration" && (p.importKind === "type" || p.importKind === "typeof") || p.type === "ExportNamedDeclaration" && p.exportKind === "type" || p.type === "ExportAllDeclaration" && p.exportKind === "type" || super.assertModuleNodeAllowed(p);
    }
    parseExportDeclaration(p) {
      if (this.isContextual(128)) {
        p.exportKind = "type";
        const b = this.startNode();
        return this.next(), this.match(5) ? (p.specifiers = this.parseExportSpecifiers(!0), super.parseExportFrom(p), null) : this.flowParseTypeAlias(b);
      } else if (this.isContextual(129)) {
        p.exportKind = "type";
        const b = this.startNode();
        return this.next(), this.flowParseOpaqueType(b, !1);
      } else if (this.isContextual(127)) {
        p.exportKind = "type";
        const b = this.startNode();
        return this.next(), this.flowParseInterface(b);
      } else if (this.shouldParseEnums() && this.isContextual(124)) {
        p.exportKind = "value";
        const b = this.startNode();
        return this.next(), this.flowParseEnumDeclaration(b);
      } else
        return super.parseExportDeclaration(p);
    }
    eatExportStar(p) {
      return super.eatExportStar(p) ? !0 : this.isContextual(128) && this.lookahead().type === 55 ? (p.exportKind = "type", this.next(), this.next(), !0) : !1;
    }
    maybeParseExportNamespaceSpecifier(p) {
      const {
        startLoc: b
      } = this.state, _ = super.maybeParseExportNamespaceSpecifier(p);
      return _ && p.exportKind === "type" && this.unexpected(b), _;
    }
    parseClassId(p, b, _) {
      super.parseClassId(p, b, _), this.match(47) && (p.typeParameters = this.flowParseTypeParameterDeclaration());
    }
    parseClassMember(p, b, _) {
      const {
        startLoc: H
      } = this.state;
      if (this.isContextual(123)) {
        if (super.parseClassMemberFromModifier(p, b))
          return;
        b.declare = !0;
      }
      super.parseClassMember(p, b, _), b.declare && (b.type !== "ClassProperty" && b.type !== "ClassPrivateProperty" && b.type !== "PropertyDefinition" ? this.raise(Wt.DeclareClassElement, {
        at: H
      }) : b.value && this.raise(Wt.DeclareClassFieldInitializer, {
        at: b.value
      }));
    }
    isIterator(p) {
      return p === "iterator" || p === "asyncIterator";
    }
    readIterator() {
      const p = super.readWord1(), b = "@@" + p;
      (!this.isIterator(p) || !this.state.inType) && this.raise(S.InvalidIdentifier, {
        at: this.state.curPosition(),
        identifierName: b
      }), this.finishToken(130, b);
    }
    getTokenFromCode(p) {
      const b = this.input.charCodeAt(this.state.pos + 1);
      p === 123 && b === 124 ? this.finishOp(6, 2) : this.state.inType && (p === 62 || p === 60) ? this.finishOp(p === 62 ? 48 : 47, 1) : this.state.inType && p === 63 ? b === 46 ? this.finishOp(18, 2) : this.finishOp(17, 1) : lr(p, b, this.input.charCodeAt(this.state.pos + 2)) ? (this.state.pos += 2, this.readIterator()) : super.getTokenFromCode(p);
    }
    isAssignable(p, b) {
      return p.type === "TypeCastExpression" ? this.isAssignable(p.expression, b) : super.isAssignable(p, b);
    }
    toAssignable(p, b = !1) {
      !b && p.type === "AssignmentExpression" && p.left.type === "TypeCastExpression" && (p.left = this.typeCastToParameter(p.left)), super.toAssignable(p, b);
    }
    toAssignableList(p, b, _) {
      for (let H = 0; H < p.length; H++) {
        const ee = p[H];
        (ee == null ? void 0 : ee.type) === "TypeCastExpression" && (p[H] = this.typeCastToParameter(ee));
      }
      super.toAssignableList(p, b, _);
    }
    toReferencedList(p, b) {
      for (let H = 0; H < p.length; H++) {
        var _;
        const ee = p[H];
        ee && ee.type === "TypeCastExpression" && !((_ = ee.extra) != null && _.parenthesized) && (p.length > 1 || !b) && this.raise(Wt.TypeCastInPattern, {
          at: ee.typeAnnotation
        });
      }
      return p;
    }
    parseArrayLike(p, b, _, H) {
      const ee = super.parseArrayLike(p, b, _, H);
      return b && !this.state.maybeInArrowParameters && this.toReferencedList(ee.elements), ee;
    }
    isValidLVal(p, b, _) {
      return p === "TypeCastExpression" || super.isValidLVal(p, b, _);
    }
    parseClassProperty(p) {
      return this.match(14) && (p.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassProperty(p);
    }
    parseClassPrivateProperty(p) {
      return this.match(14) && (p.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassPrivateProperty(p);
    }
    isClassMethod() {
      return this.match(47) || super.isClassMethod();
    }
    isClassProperty() {
      return this.match(14) || super.isClassProperty();
    }
    isNonstaticConstructor(p) {
      return !this.match(14) && super.isNonstaticConstructor(p);
    }
    pushClassMethod(p, b, _, H, ee, de) {
      if (b.variance && this.unexpected(b.variance.loc.start), delete b.variance, this.match(47) && (b.typeParameters = this.flowParseTypeParameterDeclaration()), super.pushClassMethod(p, b, _, H, ee, de), b.params && ee) {
        const Ge = b.params;
        Ge.length > 0 && this.isThisParam(Ge[0]) && this.raise(Wt.ThisParamBannedInConstructor, {
          at: b
        });
      } else if (b.type === "MethodDefinition" && ee && b.value.params) {
        const Ge = b.value.params;
        Ge.length > 0 && this.isThisParam(Ge[0]) && this.raise(Wt.ThisParamBannedInConstructor, {
          at: b
        });
      }
    }
    pushClassPrivateMethod(p, b, _, H) {
      b.variance && this.unexpected(b.variance.loc.start), delete b.variance, this.match(47) && (b.typeParameters = this.flowParseTypeParameterDeclaration()), super.pushClassPrivateMethod(p, b, _, H);
    }
    parseClassSuper(p) {
      if (super.parseClassSuper(p), p.superClass && this.match(47) && (p.superTypeParameters = this.flowParseTypeParameterInstantiation()), this.isContextual(111)) {
        this.next();
        const b = p.implements = [];
        do {
          const _ = this.startNode();
          _.id = this.flowParseRestrictedIdentifier(!0), this.match(47) ? _.typeParameters = this.flowParseTypeParameterInstantiation() : _.typeParameters = null, b.push(this.finishNode(_, "ClassImplements"));
        } while (this.eat(12));
      }
    }
    checkGetterSetterParams(p) {
      super.checkGetterSetterParams(p);
      const b = this.getObjectOrClassMethodParams(p);
      if (b.length > 0) {
        const _ = b[0];
        this.isThisParam(_) && p.kind === "get" ? this.raise(Wt.GetterMayNotHaveThisParam, {
          at: _
        }) : this.isThisParam(_) && this.raise(Wt.SetterMayNotHaveThisParam, {
          at: _
        });
      }
    }
    parsePropertyNamePrefixOperator(p) {
      p.variance = this.flowParseVariance();
    }
    parseObjPropValue(p, b, _, H, ee, de, Ge) {
      p.variance && this.unexpected(p.variance.loc.start), delete p.variance;
      let Ye;
      this.match(47) && !de && (Ye = this.flowParseTypeParameterDeclaration(), this.match(10) || this.unexpected());
      const Je = super.parseObjPropValue(p, b, _, H, ee, de, Ge);
      return Ye && ((Je.value || Je).typeParameters = Ye), Je;
    }
    parseAssignableListItemTypes(p) {
      return this.eat(17) && (p.type !== "Identifier" && this.raise(Wt.PatternIsOptional, {
        at: p
      }), this.isThisParam(p) && this.raise(Wt.ThisParamMayNotBeOptional, {
        at: p
      }), p.optional = !0), this.match(14) ? p.typeAnnotation = this.flowParseTypeAnnotation() : this.isThisParam(p) && this.raise(Wt.ThisParamAnnotationRequired, {
        at: p
      }), this.match(29) && this.isThisParam(p) && this.raise(Wt.ThisParamNoDefault, {
        at: p
      }), this.resetEndLocation(p), p;
    }
    parseMaybeDefault(p, b) {
      const _ = super.parseMaybeDefault(p, b);
      return _.type === "AssignmentPattern" && _.typeAnnotation && _.right.start < _.typeAnnotation.start && this.raise(Wt.TypeBeforeInitializer, {
        at: _.typeAnnotation
      }), _;
    }
    checkImportReflection(p) {
      super.checkImportReflection(p), p.module && p.importKind !== "value" && this.raise(Wt.ImportReflectionHasImportType, {
        at: p.specifiers[0].loc.start
      });
    }
    parseImportSpecifierLocal(p, b, _) {
      b.local = Zo(p) ? this.flowParseRestrictedIdentifier(!0, !0) : this.parseIdentifier(), p.specifiers.push(this.finishImportSpecifier(b, _));
    }
    isPotentialImportPhase(p) {
      if (super.isPotentialImportPhase(p))
        return !0;
      if (this.isContextual(128)) {
        if (!p)
          return !0;
        const b = this.lookaheadCharCode();
        return b === 123 || b === 42;
      }
      return !p && this.isContextual(87);
    }
    applyImportPhase(p, b, _, H) {
      if (super.applyImportPhase(p, b, _, H), b) {
        if (!_ && this.match(65))
          return;
        p.exportKind = _ === "type" ? _ : "value";
      } else
        _ === "type" && this.match(55) && this.unexpected(), p.importKind = _ === "type" || _ === "typeof" ? _ : "value";
    }
    parseImportSpecifier(p, b, _, H, ee) {
      const de = p.imported;
      let Ge = null;
      de.type === "Identifier" && (de.name === "type" ? Ge = "type" : de.name === "typeof" && (Ge = "typeof"));
      let Ye = !1;
      if (this.isContextual(93) && !this.isLookaheadContextual("as")) {
        const gt = this.parseIdentifier(!0);
        Ge !== null && !Z(this.state.type) ? (p.imported = gt, p.importKind = Ge, p.local = Gn(gt)) : (p.imported = de, p.importKind = null, p.local = this.parseIdentifier());
      } else {
        if (Ge !== null && Z(this.state.type))
          p.imported = this.parseIdentifier(!0), p.importKind = Ge;
        else {
          if (b)
            throw this.raise(S.ImportBindingIsString, {
              at: p,
              importName: de.value
            });
          p.imported = de, p.importKind = null;
        }
        this.eatContextual(93) ? p.local = this.parseIdentifier() : (Ye = !0, p.local = Gn(p.imported));
      }
      const Je = Zo(p);
      return _ && Je && this.raise(Wt.ImportTypeShorthandOnlyInPureImport, {
        at: p
      }), (_ || Je) && this.checkReservedType(p.local.name, p.local.loc.start, !0), Ye && !_ && !Je && this.checkReservedWord(p.local.name, p.loc.start, !0, !0), this.finishImportSpecifier(p, "ImportSpecifier");
    }
    parseBindingAtom() {
      switch (this.state.type) {
        case 78:
          return this.parseIdentifier(!0);
        default:
          return super.parseBindingAtom();
      }
    }
    parseFunctionParams(p, b) {
      const _ = p.kind;
      _ !== "get" && _ !== "set" && this.match(47) && (p.typeParameters = this.flowParseTypeParameterDeclaration()), super.parseFunctionParams(p, b);
    }
    parseVarId(p, b) {
      super.parseVarId(p, b), this.match(14) && (p.id.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(p.id));
    }
    parseAsyncArrowFromCallExpression(p, b) {
      if (this.match(14)) {
        const _ = this.state.noAnonFunctionType;
        this.state.noAnonFunctionType = !0, p.returnType = this.flowParseTypeAnnotation(), this.state.noAnonFunctionType = _;
      }
      return super.parseAsyncArrowFromCallExpression(p, b);
    }
    shouldParseAsyncArrow() {
      return this.match(14) || super.shouldParseAsyncArrow();
    }
    parseMaybeAssign(p, b) {
      var _;
      let H = null, ee;
      if (this.hasPlugin("jsx") && (this.match(140) || this.match(47))) {
        if (H = this.state.clone(), ee = this.tryParse(() => super.parseMaybeAssign(p, b), H), !ee.error)
          return ee.node;
        const {
          context: Ye
        } = this.state, Je = Ye[Ye.length - 1];
        (Je === A.j_oTag || Je === A.j_expr) && Ye.pop();
      }
      if ((_ = ee) != null && _.error || this.match(47)) {
        var de, Ge;
        H = H || this.state.clone();
        let Ye;
        const Je = this.tryParse((It) => {
          var _t;
          Ye = this.flowParseTypeParameterDeclaration();
          const Ht = this.forwardNoArrowParamsConversionAt(Ye, () => {
            const Li = super.parseMaybeAssign(p, b);
            return this.resetStartLocationFromNode(Li, Ye), Li;
          });
          (_t = Ht.extra) != null && _t.parenthesized && It();
          const zi = this.maybeUnwrapTypeCastExpression(Ht);
          return zi.type !== "ArrowFunctionExpression" && It(), zi.typeParameters = Ye, this.resetStartLocationFromNode(zi, Ye), Ht;
        }, H);
        let gt = null;
        if (Je.node && this.maybeUnwrapTypeCastExpression(Je.node).type === "ArrowFunctionExpression") {
          if (!Je.error && !Je.aborted)
            return Je.node.async && this.raise(Wt.UnexpectedTypeParameterBeforeAsyncArrowFunction, {
              at: Ye
            }), Je.node;
          gt = Je.node;
        }
        if ((de = ee) != null && de.node)
          return this.state = ee.failState, ee.node;
        if (gt)
          return this.state = Je.failState, gt;
        throw (Ge = ee) != null && Ge.thrown ? ee.error : Je.thrown ? Je.error : this.raise(Wt.UnexpectedTokenAfterTypeParameter, {
          at: Ye
        });
      }
      return super.parseMaybeAssign(p, b);
    }
    parseArrow(p) {
      if (this.match(14)) {
        const b = this.tryParse(() => {
          const _ = this.state.noAnonFunctionType;
          this.state.noAnonFunctionType = !0;
          const H = this.startNode();
          return [H.typeAnnotation, p.predicate] = this.flowParseTypeAndPredicateInitialiser(), this.state.noAnonFunctionType = _, this.canInsertSemicolon() && this.unexpected(), this.match(19) || this.unexpected(), H;
        });
        if (b.thrown)
          return null;
        b.error && (this.state = b.failState), p.returnType = b.node.typeAnnotation ? this.finishNode(b.node, "TypeAnnotation") : null;
      }
      return super.parseArrow(p);
    }
    shouldParseArrow(p) {
      return this.match(14) || super.shouldParseArrow(p);
    }
    setArrowFunctionParameters(p, b) {
      this.state.noArrowParamsConversionAt.indexOf(p.start) !== -1 ? p.params = b : super.setArrowFunctionParameters(p, b);
    }
    checkParams(p, b, _, H = !0) {
      if (!(_ && this.state.noArrowParamsConversionAt.indexOf(p.start) !== -1)) {
        for (let ee = 0; ee < p.params.length; ee++)
          this.isThisParam(p.params[ee]) && ee > 0 && this.raise(Wt.ThisParamMustBeFirst, {
            at: p.params[ee]
          });
        super.checkParams(p, b, _, H);
      }
    }
    parseParenAndDistinguishExpression(p) {
      return super.parseParenAndDistinguishExpression(p && this.state.noArrowAt.indexOf(this.state.start) === -1);
    }
    parseSubscripts(p, b, _) {
      if (p.type === "Identifier" && p.name === "async" && this.state.noArrowAt.indexOf(b.index) !== -1) {
        this.next();
        const H = this.startNodeAt(b);
        H.callee = p, H.arguments = super.parseCallExpressionArguments(11, !1), p = this.finishNode(H, "CallExpression");
      } else if (p.type === "Identifier" && p.name === "async" && this.match(47)) {
        const H = this.state.clone(), ee = this.tryParse((Ge) => this.parseAsyncArrowWithTypeParameters(b) || Ge(), H);
        if (!ee.error && !ee.aborted)
          return ee.node;
        const de = this.tryParse(() => super.parseSubscripts(p, b, _), H);
        if (de.node && !de.error)
          return de.node;
        if (ee.node)
          return this.state = ee.failState, ee.node;
        if (de.node)
          return this.state = de.failState, de.node;
        throw ee.error || de.error;
      }
      return super.parseSubscripts(p, b, _);
    }
    parseSubscript(p, b, _, H) {
      if (this.match(18) && this.isLookaheadToken_lt()) {
        if (H.optionalChainMember = !0, _)
          return H.stop = !0, p;
        this.next();
        const ee = this.startNodeAt(b);
        return ee.callee = p, ee.typeArguments = this.flowParseTypeParameterInstantiation(), this.expect(10), ee.arguments = this.parseCallExpressionArguments(11, !1), ee.optional = !0, this.finishCallExpression(ee, !0);
      } else if (!_ && this.shouldParseTypes() && this.match(47)) {
        const ee = this.startNodeAt(b);
        ee.callee = p;
        const de = this.tryParse(() => (ee.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(), this.expect(10), ee.arguments = super.parseCallExpressionArguments(11, !1), H.optionalChainMember && (ee.optional = !1), this.finishCallExpression(ee, H.optionalChainMember)));
        if (de.node)
          return de.error && (this.state = de.failState), de.node;
      }
      return super.parseSubscript(p, b, _, H);
    }
    parseNewCallee(p) {
      super.parseNewCallee(p);
      let b = null;
      this.shouldParseTypes() && this.match(47) && (b = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node), p.typeArguments = b;
    }
    parseAsyncArrowWithTypeParameters(p) {
      const b = this.startNodeAt(p);
      if (this.parseFunctionParams(b, !1), !!this.parseArrow(b))
        return super.parseArrowExpression(b, void 0, !0);
    }
    readToken_mult_modulo(p) {
      const b = this.input.charCodeAt(this.state.pos + 1);
      if (p === 42 && b === 47 && this.state.hasFlowComment) {
        this.state.hasFlowComment = !1, this.state.pos += 2, this.nextToken();
        return;
      }
      super.readToken_mult_modulo(p);
    }
    readToken_pipe_amp(p) {
      const b = this.input.charCodeAt(this.state.pos + 1);
      if (p === 124 && b === 125) {
        this.finishOp(9, 2);
        return;
      }
      super.readToken_pipe_amp(p);
    }
    parseTopLevel(p, b) {
      const _ = super.parseTopLevel(p, b);
      return this.state.hasFlowComment && this.raise(Wt.UnterminatedFlowComment, {
        at: this.state.curPosition()
      }), _;
    }
    skipBlockComment() {
      if (this.hasPlugin("flowComments") && this.skipFlowComment()) {
        if (this.state.hasFlowComment)
          throw this.raise(Wt.NestedFlowComment, {
            at: this.state.startLoc
          });
        this.hasFlowCommentCompletion();
        const p = this.skipFlowComment();
        p && (this.state.pos += p, this.state.hasFlowComment = !0);
        return;
      }
      return super.skipBlockComment(this.state.hasFlowComment ? "*-/" : "*/");
    }
    skipFlowComment() {
      const {
        pos: p
      } = this.state;
      let b = 2;
      for (; [32, 9].includes(this.input.charCodeAt(p + b)); )
        b++;
      const _ = this.input.charCodeAt(b + p), H = this.input.charCodeAt(b + p + 1);
      return _ === 58 && H === 58 ? b + 2 : this.input.slice(b + p, b + p + 12) === "flow-include" ? b + 12 : _ === 58 && H !== 58 ? b : !1;
    }
    hasFlowCommentCompletion() {
      if (this.input.indexOf("*/", this.state.pos) === -1)
        throw this.raise(S.UnterminatedComment, {
          at: this.state.curPosition()
        });
    }
    flowEnumErrorBooleanMemberNotInitialized(p, {
      enumName: b,
      memberName: _
    }) {
      this.raise(Wt.EnumBooleanMemberNotInitialized, {
        at: p,
        memberName: _,
        enumName: b
      });
    }
    flowEnumErrorInvalidMemberInitializer(p, b) {
      return this.raise(b.explicitType ? b.explicitType === "symbol" ? Wt.EnumInvalidMemberInitializerSymbolType : Wt.EnumInvalidMemberInitializerPrimaryType : Wt.EnumInvalidMemberInitializerUnknownType, Object.assign({
        at: p
      }, b));
    }
    flowEnumErrorNumberMemberNotInitialized(p, {
      enumName: b,
      memberName: _
    }) {
      this.raise(Wt.EnumNumberMemberNotInitialized, {
        at: p,
        enumName: b,
        memberName: _
      });
    }
    flowEnumErrorStringMemberInconsistentlyInitailized(p, {
      enumName: b
    }) {
      this.raise(Wt.EnumStringMemberInconsistentlyInitailized, {
        at: p,
        enumName: b
      });
    }
    flowEnumMemberInit() {
      const p = this.state.startLoc, b = () => this.match(12) || this.match(8);
      switch (this.state.type) {
        case 132: {
          const _ = this.parseNumericLiteral(this.state.value);
          return b() ? {
            type: "number",
            loc: _.loc.start,
            value: _
          } : {
            type: "invalid",
            loc: p
          };
        }
        case 131: {
          const _ = this.parseStringLiteral(this.state.value);
          return b() ? {
            type: "string",
            loc: _.loc.start,
            value: _
          } : {
            type: "invalid",
            loc: p
          };
        }
        case 85:
        case 86: {
          const _ = this.parseBooleanLiteral(this.match(85));
          return b() ? {
            type: "boolean",
            loc: _.loc.start,
            value: _
          } : {
            type: "invalid",
            loc: p
          };
        }
        default:
          return {
            type: "invalid",
            loc: p
          };
      }
    }
    flowEnumMemberRaw() {
      const p = this.state.startLoc, b = this.parseIdentifier(!0), _ = this.eat(29) ? this.flowEnumMemberInit() : {
        type: "none",
        loc: p
      };
      return {
        id: b,
        init: _
      };
    }
    flowEnumCheckExplicitTypeMismatch(p, b, _) {
      const {
        explicitType: H
      } = b;
      H !== null && H !== _ && this.flowEnumErrorInvalidMemberInitializer(p, b);
    }
    flowEnumMembers({
      enumName: p,
      explicitType: b
    }) {
      const _ = /* @__PURE__ */ new Set(), H = {
        booleanMembers: [],
        numberMembers: [],
        stringMembers: [],
        defaultedMembers: []
      };
      let ee = !1;
      for (; !this.match(8); ) {
        if (this.eat(21)) {
          ee = !0;
          break;
        }
        const de = this.startNode(), {
          id: Ge,
          init: Ye
        } = this.flowEnumMemberRaw(), Je = Ge.name;
        if (Je === "")
          continue;
        /^[a-z]/.test(Je) && this.raise(Wt.EnumInvalidMemberName, {
          at: Ge,
          memberName: Je,
          suggestion: Je[0].toUpperCase() + Je.slice(1),
          enumName: p
        }), _.has(Je) && this.raise(Wt.EnumDuplicateMemberName, {
          at: Ge,
          memberName: Je,
          enumName: p
        }), _.add(Je);
        const gt = {
          enumName: p,
          explicitType: b,
          memberName: Je
        };
        switch (de.id = Ge, Ye.type) {
          case "boolean": {
            this.flowEnumCheckExplicitTypeMismatch(Ye.loc, gt, "boolean"), de.init = Ye.value, H.booleanMembers.push(this.finishNode(de, "EnumBooleanMember"));
            break;
          }
          case "number": {
            this.flowEnumCheckExplicitTypeMismatch(Ye.loc, gt, "number"), de.init = Ye.value, H.numberMembers.push(this.finishNode(de, "EnumNumberMember"));
            break;
          }
          case "string": {
            this.flowEnumCheckExplicitTypeMismatch(Ye.loc, gt, "string"), de.init = Ye.value, H.stringMembers.push(this.finishNode(de, "EnumStringMember"));
            break;
          }
          case "invalid":
            throw this.flowEnumErrorInvalidMemberInitializer(Ye.loc, gt);
          case "none":
            switch (b) {
              case "boolean":
                this.flowEnumErrorBooleanMemberNotInitialized(Ye.loc, gt);
                break;
              case "number":
                this.flowEnumErrorNumberMemberNotInitialized(Ye.loc, gt);
                break;
              default:
                H.defaultedMembers.push(this.finishNode(de, "EnumDefaultedMember"));
            }
        }
        this.match(8) || this.expect(12);
      }
      return {
        members: H,
        hasUnknownMembers: ee
      };
    }
    flowEnumStringMembers(p, b, {
      enumName: _
    }) {
      if (p.length === 0)
        return b;
      if (b.length === 0)
        return p;
      if (b.length > p.length) {
        for (const H of p)
          this.flowEnumErrorStringMemberInconsistentlyInitailized(H, {
            enumName: _
          });
        return b;
      } else {
        for (const H of b)
          this.flowEnumErrorStringMemberInconsistentlyInitailized(H, {
            enumName: _
          });
        return p;
      }
    }
    flowEnumParseExplicitType({
      enumName: p
    }) {
      if (!this.eatContextual(101))
        return null;
      if (!ye(this.state.type))
        throw this.raise(Wt.EnumInvalidExplicitTypeUnknownSupplied, {
          at: this.state.startLoc,
          enumName: p
        });
      const {
        value: b
      } = this.state;
      return this.next(), b !== "boolean" && b !== "number" && b !== "string" && b !== "symbol" && this.raise(Wt.EnumInvalidExplicitType, {
        at: this.state.startLoc,
        enumName: p,
        invalidEnumType: b
      }), b;
    }
    flowEnumBody(p, b) {
      const _ = b.name, H = b.loc.start, ee = this.flowEnumParseExplicitType({
        enumName: _
      });
      this.expect(5);
      const {
        members: de,
        hasUnknownMembers: Ge
      } = this.flowEnumMembers({
        enumName: _,
        explicitType: ee
      });
      switch (p.hasUnknownMembers = Ge, ee) {
        case "boolean":
          return p.explicitType = !0, p.members = de.booleanMembers, this.expect(8), this.finishNode(p, "EnumBooleanBody");
        case "number":
          return p.explicitType = !0, p.members = de.numberMembers, this.expect(8), this.finishNode(p, "EnumNumberBody");
        case "string":
          return p.explicitType = !0, p.members = this.flowEnumStringMembers(de.stringMembers, de.defaultedMembers, {
            enumName: _
          }), this.expect(8), this.finishNode(p, "EnumStringBody");
        case "symbol":
          return p.members = de.defaultedMembers, this.expect(8), this.finishNode(p, "EnumSymbolBody");
        default: {
          const Ye = () => (p.members = [], this.expect(8), this.finishNode(p, "EnumStringBody"));
          p.explicitType = !1;
          const Je = de.booleanMembers.length, gt = de.numberMembers.length, It = de.stringMembers.length, _t = de.defaultedMembers.length;
          if (!Je && !gt && !It && !_t)
            return Ye();
          if (!Je && !gt)
            return p.members = this.flowEnumStringMembers(de.stringMembers, de.defaultedMembers, {
              enumName: _
            }), this.expect(8), this.finishNode(p, "EnumStringBody");
          if (!gt && !It && Je >= _t) {
            for (const Ht of de.defaultedMembers)
              this.flowEnumErrorBooleanMemberNotInitialized(Ht.loc.start, {
                enumName: _,
                memberName: Ht.id.name
              });
            return p.members = de.booleanMembers, this.expect(8), this.finishNode(p, "EnumBooleanBody");
          } else if (!Je && !It && gt >= _t) {
            for (const Ht of de.defaultedMembers)
              this.flowEnumErrorNumberMemberNotInitialized(Ht.loc.start, {
                enumName: _,
                memberName: Ht.id.name
              });
            return p.members = de.numberMembers, this.expect(8), this.finishNode(p, "EnumNumberBody");
          } else
            return this.raise(Wt.EnumInconsistentMemberValues, {
              at: H,
              enumName: _
            }), Ye();
        }
      }
    }
    flowParseEnumDeclaration(p) {
      const b = this.parseIdentifier();
      return p.id = b, p.body = this.flowEnumBody(this.startNode(), b), this.finishNode(p, "EnumDeclaration");
    }
    isLookaheadToken_lt() {
      const p = this.nextTokenStart();
      if (this.input.charCodeAt(p) === 60) {
        const b = this.input.charCodeAt(p + 1);
        return b !== 60 && b !== 61;
      }
      return !1;
    }
    maybeUnwrapTypeCastExpression(p) {
      return p.type === "TypeCastExpression" ? p.expression : p;
    }
  };
  const Vu = {
    __proto__: null,
    quot: '"',
    amp: "&",
    apos: "'",
    lt: "<",
    gt: ">",
    nbsp: " ",
    iexcl: "¡",
    cent: "¢",
    pound: "£",
    curren: "¤",
    yen: "¥",
    brvbar: "¦",
    sect: "§",
    uml: "¨",
    copy: "©",
    ordf: "ª",
    laquo: "«",
    not: "¬",
    shy: "­",
    reg: "®",
    macr: "¯",
    deg: "°",
    plusmn: "±",
    sup2: "²",
    sup3: "³",
    acute: "´",
    micro: "µ",
    para: "¶",
    middot: "·",
    cedil: "¸",
    sup1: "¹",
    ordm: "º",
    raquo: "»",
    frac14: "¼",
    frac12: "½",
    frac34: "¾",
    iquest: "¿",
    Agrave: "À",
    Aacute: "Á",
    Acirc: "Â",
    Atilde: "Ã",
    Auml: "Ä",
    Aring: "Å",
    AElig: "Æ",
    Ccedil: "Ç",
    Egrave: "È",
    Eacute: "É",
    Ecirc: "Ê",
    Euml: "Ë",
    Igrave: "Ì",
    Iacute: "Í",
    Icirc: "Î",
    Iuml: "Ï",
    ETH: "Ð",
    Ntilde: "Ñ",
    Ograve: "Ò",
    Oacute: "Ó",
    Ocirc: "Ô",
    Otilde: "Õ",
    Ouml: "Ö",
    times: "×",
    Oslash: "Ø",
    Ugrave: "Ù",
    Uacute: "Ú",
    Ucirc: "Û",
    Uuml: "Ü",
    Yacute: "Ý",
    THORN: "Þ",
    szlig: "ß",
    agrave: "à",
    aacute: "á",
    acirc: "â",
    atilde: "ã",
    auml: "ä",
    aring: "å",
    aelig: "æ",
    ccedil: "ç",
    egrave: "è",
    eacute: "é",
    ecirc: "ê",
    euml: "ë",
    igrave: "ì",
    iacute: "í",
    icirc: "î",
    iuml: "ï",
    eth: "ð",
    ntilde: "ñ",
    ograve: "ò",
    oacute: "ó",
    ocirc: "ô",
    otilde: "õ",
    ouml: "ö",
    divide: "÷",
    oslash: "ø",
    ugrave: "ù",
    uacute: "ú",
    ucirc: "û",
    uuml: "ü",
    yacute: "ý",
    thorn: "þ",
    yuml: "ÿ",
    OElig: "Œ",
    oelig: "œ",
    Scaron: "Š",
    scaron: "š",
    Yuml: "Ÿ",
    fnof: "ƒ",
    circ: "ˆ",
    tilde: "˜",
    Alpha: "Α",
    Beta: "Β",
    Gamma: "Γ",
    Delta: "Δ",
    Epsilon: "Ε",
    Zeta: "Ζ",
    Eta: "Η",
    Theta: "Θ",
    Iota: "Ι",
    Kappa: "Κ",
    Lambda: "Λ",
    Mu: "Μ",
    Nu: "Ν",
    Xi: "Ξ",
    Omicron: "Ο",
    Pi: "Π",
    Rho: "Ρ",
    Sigma: "Σ",
    Tau: "Τ",
    Upsilon: "Υ",
    Phi: "Φ",
    Chi: "Χ",
    Psi: "Ψ",
    Omega: "Ω",
    alpha: "α",
    beta: "β",
    gamma: "γ",
    delta: "δ",
    epsilon: "ε",
    zeta: "ζ",
    eta: "η",
    theta: "θ",
    iota: "ι",
    kappa: "κ",
    lambda: "λ",
    mu: "μ",
    nu: "ν",
    xi: "ξ",
    omicron: "ο",
    pi: "π",
    rho: "ρ",
    sigmaf: "ς",
    sigma: "σ",
    tau: "τ",
    upsilon: "υ",
    phi: "φ",
    chi: "χ",
    psi: "ψ",
    omega: "ω",
    thetasym: "ϑ",
    upsih: "ϒ",
    piv: "ϖ",
    ensp: " ",
    emsp: " ",
    thinsp: " ",
    zwnj: "‌",
    zwj: "‍",
    lrm: "‎",
    rlm: "‏",
    ndash: "–",
    mdash: "—",
    lsquo: "‘",
    rsquo: "’",
    sbquo: "‚",
    ldquo: "“",
    rdquo: "”",
    bdquo: "„",
    dagger: "†",
    Dagger: "‡",
    bull: "•",
    hellip: "…",
    permil: "‰",
    prime: "′",
    Prime: "″",
    lsaquo: "‹",
    rsaquo: "›",
    oline: "‾",
    frasl: "⁄",
    euro: "€",
    image: "ℑ",
    weierp: "℘",
    real: "ℜ",
    trade: "™",
    alefsym: "ℵ",
    larr: "←",
    uarr: "↑",
    rarr: "→",
    darr: "↓",
    harr: "↔",
    crarr: "↵",
    lArr: "⇐",
    uArr: "⇑",
    rArr: "⇒",
    dArr: "⇓",
    hArr: "⇔",
    forall: "∀",
    part: "∂",
    exist: "∃",
    empty: "∅",
    nabla: "∇",
    isin: "∈",
    notin: "∉",
    ni: "∋",
    prod: "∏",
    sum: "∑",
    minus: "−",
    lowast: "∗",
    radic: "√",
    prop: "∝",
    infin: "∞",
    ang: "∠",
    and: "∧",
    or: "∨",
    cap: "∩",
    cup: "∪",
    int: "∫",
    there4: "∴",
    sim: "∼",
    cong: "≅",
    asymp: "≈",
    ne: "≠",
    equiv: "≡",
    le: "≤",
    ge: "≥",
    sub: "⊂",
    sup: "⊃",
    nsub: "⊄",
    sube: "⊆",
    supe: "⊇",
    oplus: "⊕",
    otimes: "⊗",
    perp: "⊥",
    sdot: "⋅",
    lceil: "⌈",
    rceil: "⌉",
    lfloor: "⌊",
    rfloor: "⌋",
    lang: "〈",
    rang: "〉",
    loz: "◊",
    spades: "♠",
    clubs: "♣",
    hearts: "♥",
    diams: "♦"
  }, fs = T(Ene || (Ene = at(["jsx"])))({
    AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.",
    MissingClosingTagElement: ({
      openingTagName: B
    }) => "Expected corresponding JSX closing tag for <".concat(B, ">."),
    MissingClosingTagFragment: "Expected corresponding JSX closing tag for <>.",
    UnexpectedSequenceExpression: "Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?",
    UnexpectedToken: ({
      unexpected: B,
      HTMLEntity: d
    }) => "Unexpected token `".concat(B, "`. Did you mean `").concat(d, "` or `{'").concat(B, "'}`?"),
    UnsupportedJsxValue: "JSX value should be either an expression or a quoted JSX text.",
    UnterminatedJsxContent: "Unterminated JSX contents.",
    UnwrappedAdjacentJSXElements: "Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?"
  });
  function ts(B) {
    return B ? B.type === "JSXOpeningFragment" || B.type === "JSXClosingFragment" : !1;
  }
  function ks(B) {
    if (B.type === "JSXIdentifier")
      return B.name;
    if (B.type === "JSXNamespacedName")
      return B.namespace.name + ":" + B.name.name;
    if (B.type === "JSXMemberExpression")
      return ks(B.object) + "." + ks(B.property);
    throw new Error("Node had unexpected type: " + B.type);
  }
  var Wu = (B) => class extends B {
    jsxReadToken() {
      let p = "", b = this.state.pos;
      for (; ; ) {
        if (this.state.pos >= this.length)
          throw this.raise(fs.UnterminatedJsxContent, {
            at: this.state.startLoc
          });
        const _ = this.input.charCodeAt(this.state.pos);
        switch (_) {
          case 60:
          case 123:
            if (this.state.pos === this.state.start) {
              _ === 60 && this.state.canStartJSXElement ? (++this.state.pos, this.finishToken(140)) : super.getTokenFromCode(_);
              return;
            }
            p += this.input.slice(b, this.state.pos), this.finishToken(139, p);
            return;
          case 38:
            p += this.input.slice(b, this.state.pos), p += this.jsxReadEntity(), b = this.state.pos;
            break;
          case 62:
          case 125:
          default:
            Ws(_) ? (p += this.input.slice(b, this.state.pos), p += this.jsxReadNewLine(!0), b = this.state.pos) : ++this.state.pos;
        }
      }
    }
    jsxReadNewLine(p) {
      const b = this.input.charCodeAt(this.state.pos);
      let _;
      return ++this.state.pos, b === 13 && this.input.charCodeAt(this.state.pos) === 10 ? (++this.state.pos, _ = p ? "\n" : "\r\n") : _ = String.fromCharCode(b), ++this.state.curLine, this.state.lineStart = this.state.pos, _;
    }
    jsxReadString(p) {
      let b = "", _ = ++this.state.pos;
      for (; ; ) {
        if (this.state.pos >= this.length)
          throw this.raise(S.UnterminatedString, {
            at: this.state.startLoc
          });
        const H = this.input.charCodeAt(this.state.pos);
        if (H === p)
          break;
        H === 38 ? (b += this.input.slice(_, this.state.pos), b += this.jsxReadEntity(), _ = this.state.pos) : Ws(H) ? (b += this.input.slice(_, this.state.pos), b += this.jsxReadNewLine(!1), _ = this.state.pos) : ++this.state.pos;
      }
      b += this.input.slice(_, this.state.pos++), this.finishToken(131, b);
    }
    jsxReadEntity() {
      const p = ++this.state.pos;
      if (this.codePointAtPos(this.state.pos) === 35) {
        ++this.state.pos;
        let b = 10;
        this.codePointAtPos(this.state.pos) === 120 && (b = 16, ++this.state.pos);
        const _ = this.readInt(b, void 0, !1, "bail");
        if (_ !== null && this.codePointAtPos(this.state.pos) === 59)
          return ++this.state.pos, String.fromCodePoint(_);
      } else {
        let b = 0, _ = !1;
        for (; b++ < 10 && this.state.pos < this.length && !(_ = this.codePointAtPos(this.state.pos) == 59); )
          ++this.state.pos;
        if (_) {
          const H = this.input.slice(p, this.state.pos), ee = Vu[H];
          if (++this.state.pos, ee)
            return ee;
        }
      }
      return this.state.pos = p, "&";
    }
    jsxReadWord() {
      let p;
      const b = this.state.pos;
      do
        p = this.input.charCodeAt(++this.state.pos);
      while (ce(p) || p === 45);
      this.finishToken(138, this.input.slice(b, this.state.pos));
    }
    jsxParseIdentifier() {
      const p = this.startNode();
      return this.match(138) ? p.name = this.state.value : st(this.state.type) ? p.name = Te(this.state.type) : this.unexpected(), this.next(), this.finishNode(p, "JSXIdentifier");
    }
    jsxParseNamespacedName() {
      const p = this.state.startLoc, b = this.jsxParseIdentifier();
      if (!this.eat(14))
        return b;
      const _ = this.startNodeAt(p);
      return _.namespace = b, _.name = this.jsxParseIdentifier(), this.finishNode(_, "JSXNamespacedName");
    }
    jsxParseElementName() {
      const p = this.state.startLoc;
      let b = this.jsxParseNamespacedName();
      if (b.type === "JSXNamespacedName")
        return b;
      for (; this.eat(16); ) {
        const _ = this.startNodeAt(p);
        _.object = b, _.property = this.jsxParseIdentifier(), b = this.finishNode(_, "JSXMemberExpression");
      }
      return b;
    }
    jsxParseAttributeValue() {
      let p;
      switch (this.state.type) {
        case 5:
          return p = this.startNode(), this.setContext(A.brace), this.next(), p = this.jsxParseExpressionContainer(p, A.j_oTag), p.expression.type === "JSXEmptyExpression" && this.raise(fs.AttributeIsEmpty, {
            at: p
          }), p;
        case 140:
        case 131:
          return this.parseExprAtom();
        default:
          throw this.raise(fs.UnsupportedJsxValue, {
            at: this.state.startLoc
          });
      }
    }
    jsxParseEmptyExpression() {
      const p = this.startNodeAt(this.state.lastTokEndLoc);
      return this.finishNodeAt(p, "JSXEmptyExpression", this.state.startLoc);
    }
    jsxParseSpreadChild(p) {
      return this.next(), p.expression = this.parseExpression(), this.setContext(A.j_expr), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(p, "JSXSpreadChild");
    }
    jsxParseExpressionContainer(p, b) {
      if (this.match(8))
        p.expression = this.jsxParseEmptyExpression();
      else {
        const _ = this.parseExpression();
        p.expression = _;
      }
      return this.setContext(b), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(p, "JSXExpressionContainer");
    }
    jsxParseAttribute() {
      const p = this.startNode();
      return this.match(5) ? (this.setContext(A.brace), this.next(), this.expect(21), p.argument = this.parseMaybeAssignAllowIn(), this.setContext(A.j_oTag), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(p, "JSXSpreadAttribute")) : (p.name = this.jsxParseNamespacedName(), p.value = this.eat(29) ? this.jsxParseAttributeValue() : null, this.finishNode(p, "JSXAttribute"));
    }
    jsxParseOpeningElementAt(p) {
      const b = this.startNodeAt(p);
      return this.eat(141) ? this.finishNode(b, "JSXOpeningFragment") : (b.name = this.jsxParseElementName(), this.jsxParseOpeningElementAfterName(b));
    }
    jsxParseOpeningElementAfterName(p) {
      const b = [];
      for (; !this.match(56) && !this.match(141); )
        b.push(this.jsxParseAttribute());
      return p.attributes = b, p.selfClosing = this.eat(56), this.expect(141), this.finishNode(p, "JSXOpeningElement");
    }
    jsxParseClosingElementAt(p) {
      const b = this.startNodeAt(p);
      return this.eat(141) ? this.finishNode(b, "JSXClosingFragment") : (b.name = this.jsxParseElementName(), this.expect(141), this.finishNode(b, "JSXClosingElement"));
    }
    jsxParseElementAt(p) {
      const b = this.startNodeAt(p), _ = [], H = this.jsxParseOpeningElementAt(p);
      let ee = null;
      if (!H.selfClosing) {
        e:
          for (; ; )
            switch (this.state.type) {
              case 140:
                if (p = this.state.startLoc, this.next(), this.eat(56)) {
                  ee = this.jsxParseClosingElementAt(p);
                  break e;
                }
                _.push(this.jsxParseElementAt(p));
                break;
              case 139:
                _.push(this.parseExprAtom());
                break;
              case 5: {
                const de = this.startNode();
                this.setContext(A.brace), this.next(), this.match(21) ? _.push(this.jsxParseSpreadChild(de)) : _.push(this.jsxParseExpressionContainer(de, A.j_expr));
                break;
              }
              default:
                this.unexpected();
            }
        ts(H) && !ts(ee) && ee !== null ? this.raise(fs.MissingClosingTagFragment, {
          at: ee
        }) : !ts(H) && ts(ee) ? this.raise(fs.MissingClosingTagElement, {
          at: ee,
          openingTagName: ks(H.name)
        }) : !ts(H) && !ts(ee) && ks(ee.name) !== ks(H.name) && this.raise(fs.MissingClosingTagElement, {
          at: ee,
          openingTagName: ks(H.name)
        });
      }
      if (ts(H) ? (b.openingFragment = H, b.closingFragment = ee) : (b.openingElement = H, b.closingElement = ee), b.children = _, this.match(47))
        throw this.raise(fs.UnwrappedAdjacentJSXElements, {
          at: this.state.startLoc
        });
      return ts(H) ? this.finishNode(b, "JSXFragment") : this.finishNode(b, "JSXElement");
    }
    jsxParseElement() {
      const p = this.state.startLoc;
      return this.next(), this.jsxParseElementAt(p);
    }
    setContext(p) {
      const {
        context: b
      } = this.state;
      b[b.length - 1] = p;
    }
    parseExprAtom(p) {
      return this.match(139) ? this.parseLiteral(this.state.value, "JSXText") : this.match(140) ? this.jsxParseElement() : this.match(47) && this.input.charCodeAt(this.state.pos) !== 33 ? (this.replaceToken(140), this.jsxParseElement()) : super.parseExprAtom(p);
    }
    skipSpace() {
      this.curContext().preserveSpace || super.skipSpace();
    }
    getTokenFromCode(p) {
      const b = this.curContext();
      if (b === A.j_expr) {
        this.jsxReadToken();
        return;
      }
      if (b === A.j_oTag || b === A.j_cTag) {
        if (X(p)) {
          this.jsxReadWord();
          return;
        }
        if (p === 62) {
          ++this.state.pos, this.finishToken(141);
          return;
        }
        if ((p === 34 || p === 39) && b === A.j_oTag) {
          this.jsxReadString(p);
          return;
        }
      }
      if (p === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) {
        ++this.state.pos, this.finishToken(140);
        return;
      }
      super.getTokenFromCode(p);
    }
    updateContext(p) {
      const {
        context: b,
        type: _
      } = this.state;
      if (_ === 56 && p === 140)
        b.splice(-2, 2, A.j_cTag), this.state.canStartJSXElement = !1;
      else if (_ === 140)
        b.push(A.j_oTag);
      else if (_ === 141) {
        const H = b[b.length - 1];
        H === A.j_oTag && p === 56 || H === A.j_cTag ? (b.pop(), this.state.canStartJSXElement = b[b.length - 1] === A.j_expr) : (this.setContext(A.j_expr), this.state.canStartJSXElement = !0);
      } else
        this.state.canStartJSXElement = me(_);
    }
  };
  class Hu extends eo {
    constructor(...d) {
      super(...d), this.types = /* @__PURE__ */ new Set(), this.enums = /* @__PURE__ */ new Set(), this.constEnums = /* @__PURE__ */ new Set(), this.classes = /* @__PURE__ */ new Set(), this.exportOnlyBindings = /* @__PURE__ */ new Set();
    }
  }
  class Ku extends to {
    constructor(...d) {
      super(...d), this.importsStack = [];
    }
    createScope(d) {
      return this.importsStack.push(/* @__PURE__ */ new Set()), new Hu(d);
    }
    enter(d) {
      d == As && this.importsStack.push(/* @__PURE__ */ new Set()), super.enter(d);
    }
    exit() {
      const d = super.exit();
      return d == As && this.importsStack.pop(), d;
    }
    hasImport(d, p) {
      const b = this.importsStack.length;
      if (this.importsStack[b - 1].has(d))
        return !0;
      if (!p && b > 1) {
        for (let _ = 0; _ < b - 1; _++)
          if (this.importsStack[_].has(d))
            return !0;
      }
      return !1;
    }
    declareName(d, p, b) {
      if (p & Us) {
        this.hasImport(d, !0) && this.parser.raise(S.VarRedeclaration, {
          at: b,
          identifierName: d
        }), this.importsStack[this.importsStack.length - 1].add(d);
        return;
      }
      const _ = this.currentScope();
      if (p & Ga) {
        this.maybeExportDefined(_, d), _.exportOnlyBindings.add(d);
        return;
      }
      super.declareName(d, p, b), p & cs && (p & Bn || (this.checkRedeclarationInScope(_, d, p, b), this.maybeExportDefined(_, d)), _.types.add(d)), p & Ka && _.enums.add(d), p & za && _.constEnums.add(d), p & Ta && _.classes.add(d);
    }
    isRedeclaredInScope(d, p, b) {
      if (d.enums.has(p)) {
        if (b & Ka) {
          const _ = !!(b & za), H = d.constEnums.has(p);
          return _ !== H;
        }
        return !0;
      }
      return b & Ta && d.classes.has(p) ? d.lexical.has(p) ? !!(b & Bn) : !1 : b & cs && d.types.has(p) ? !0 : super.isRedeclaredInScope(d, p, b);
    }
    checkLocalExport(d) {
      const {
        name: p
      } = d;
      if (this.hasImport(p))
        return;
      const b = this.scopeStack.length;
      for (let _ = b - 1; _ >= 0; _--) {
        const H = this.scopeStack[_];
        if (H.types.has(p) || H.exportOnlyBindings.has(p))
          return;
      }
      super.checkLocalExport(d);
    }
  }
  const zu = (B, d) => Object.hasOwnProperty.call(B, d) && B[d], el = (B) => B.type === "ParenthesizedExpression" ? el(B.expression) : B;
  class Gu extends Ru {
    toAssignable(d, p = !1) {
      var b, _;
      let H;
      switch ((d.type === "ParenthesizedExpression" || (b = d.extra) != null && b.parenthesized) && (H = el(d), p ? H.type === "Identifier" ? this.expressionScope.recordArrowParameterBindingError(S.InvalidParenthesizedAssignment, {
        at: d
      }) : H.type !== "MemberExpression" && this.raise(S.InvalidParenthesizedAssignment, {
        at: d
      }) : this.raise(S.InvalidParenthesizedAssignment, {
        at: d
      })), d.type) {
        case "Identifier":
        case "ObjectPattern":
        case "ArrayPattern":
        case "AssignmentPattern":
        case "RestElement":
          break;
        case "ObjectExpression":
          d.type = "ObjectPattern";
          for (let de = 0, Ge = d.properties.length, Ye = Ge - 1; de < Ge; de++) {
            var ee;
            const Je = d.properties[de], gt = de === Ye;
            this.toAssignableObjectExpressionProp(Je, gt, p), gt && Je.type === "RestElement" && (ee = d.extra) != null && ee.trailingCommaLoc && this.raise(S.RestTrailingComma, {
              at: d.extra.trailingCommaLoc
            });
          }
          break;
        case "ObjectProperty": {
          const {
            key: de,
            value: Ge
          } = d;
          this.isPrivateName(de) && this.classScope.usePrivateName(this.getPrivateNameSV(de), de.loc.start), this.toAssignable(Ge, p);
          break;
        }
        case "SpreadElement":
          throw new Error("Internal @babel/parser error (this is a bug, please report it). SpreadElement should be converted by .toAssignable's caller.");
        case "ArrayExpression":
          d.type = "ArrayPattern", this.toAssignableList(d.elements, (_ = d.extra) == null ? void 0 : _.trailingCommaLoc, p);
          break;
        case "AssignmentExpression":
          d.operator !== "=" && this.raise(S.MissingEqInAssignment, {
            at: d.left.loc.end
          }), d.type = "AssignmentPattern", delete d.operator, this.toAssignable(d.left, p);
          break;
        case "ParenthesizedExpression":
          this.toAssignable(H, p);
          break;
      }
    }
    toAssignableObjectExpressionProp(d, p, b) {
      if (d.type === "ObjectMethod")
        this.raise(d.kind === "get" || d.kind === "set" ? S.PatternHasAccessor : S.PatternHasMethod, {
          at: d.key
        });
      else if (d.type === "SpreadElement") {
        d.type = "RestElement";
        const _ = d.argument;
        this.checkToRestConversion(_, !1), this.toAssignable(_, b), p || this.raise(S.RestTrailingComma, {
          at: d
        });
      } else
        this.toAssignable(d, b);
    }
    toAssignableList(d, p, b) {
      const _ = d.length - 1;
      for (let H = 0; H <= _; H++) {
        const ee = d[H];
        if (ee) {
          if (ee.type === "SpreadElement") {
            ee.type = "RestElement";
            const de = ee.argument;
            this.checkToRestConversion(de, !0), this.toAssignable(de, b);
          } else
            this.toAssignable(ee, b);
          ee.type === "RestElement" && (H < _ ? this.raise(S.RestTrailingComma, {
            at: ee
          }) : p && this.raise(S.RestTrailingComma, {
            at: p
          }));
        }
      }
    }
    isAssignable(d, p) {
      switch (d.type) {
        case "Identifier":
        case "ObjectPattern":
        case "ArrayPattern":
        case "AssignmentPattern":
        case "RestElement":
          return !0;
        case "ObjectExpression": {
          const b = d.properties.length - 1;
          return d.properties.every((_, H) => _.type !== "ObjectMethod" && (H === b || _.type !== "SpreadElement") && this.isAssignable(_));
        }
        case "ObjectProperty":
          return this.isAssignable(d.value);
        case "SpreadElement":
          return this.isAssignable(d.argument);
        case "ArrayExpression":
          return d.elements.every((b) => b === null || this.isAssignable(b));
        case "AssignmentExpression":
          return d.operator === "=";
        case "ParenthesizedExpression":
          return this.isAssignable(d.expression);
        case "MemberExpression":
        case "OptionalMemberExpression":
          return !p;
        default:
          return !1;
      }
    }
    toReferencedList(d, p) {
      return d;
    }
    toReferencedListDeep(d, p) {
      this.toReferencedList(d, p);
      for (const b of d)
        (b == null ? void 0 : b.type) === "ArrayExpression" && this.toReferencedListDeep(b.elements);
    }
    parseSpread(d) {
      const p = this.startNode();
      return this.next(), p.argument = this.parseMaybeAssignAllowIn(d, void 0), this.finishNode(p, "SpreadElement");
    }
    parseRestBinding() {
      const d = this.startNode();
      return this.next(), d.argument = this.parseBindingAtom(), this.finishNode(d, "RestElement");
    }
    parseBindingAtom() {
      switch (this.state.type) {
        case 0: {
          const d = this.startNode();
          return this.next(), d.elements = this.parseBindingList(3, 93, 1), this.finishNode(d, "ArrayPattern");
        }
        case 5:
          return this.parseObjectLike(8, !0);
      }
      return this.parseIdentifier();
    }
    parseBindingList(d, p, b) {
      const _ = b & 1, H = [];
      let ee = !0;
      for (; !this.eat(d); )
        if (ee ? ee = !1 : this.expect(12), _ && this.match(12))
          H.push(null);
        else {
          if (this.eat(d))
            break;
          if (this.match(21)) {
            if (H.push(this.parseAssignableListItemTypes(this.parseRestBinding(), b)), !this.checkCommaAfterRest(p)) {
              this.expect(d);
              break;
            }
          } else {
            const de = [];
            for (this.match(26) && this.hasPlugin("decorators") && this.raise(S.UnsupportedParameterDecorator, {
              at: this.state.startLoc
            }); this.match(26); )
              de.push(this.parseDecorator());
            H.push(this.parseAssignableListItem(b, de));
          }
        }
      return H;
    }
    parseBindingRestProperty(d) {
      return this.next(), d.argument = this.parseIdentifier(), this.checkCommaAfterRest(125), this.finishNode(d, "RestElement");
    }
    parseBindingProperty() {
      const d = this.startNode(), {
        type: p,
        startLoc: b
      } = this.state;
      return p === 21 ? this.parseBindingRestProperty(d) : (p === 136 ? (this.expectPlugin("destructuringPrivate", b), this.classScope.usePrivateName(this.state.value, b), d.key = this.parsePrivateName()) : this.parsePropertyName(d), d.method = !1, this.parseObjPropValue(d, b, !1, !1, !0, !1));
    }
    parseAssignableListItem(d, p) {
      const b = this.parseMaybeDefault();
      this.parseAssignableListItemTypes(b, d);
      const _ = this.parseMaybeDefault(b.loc.start, b);
      return p.length && (b.decorators = p), _;
    }
    parseAssignableListItemTypes(d, p) {
      return d;
    }
    parseMaybeDefault(d, p) {
      var b, _;
      if ((b = d) != null || (d = this.state.startLoc), p = (_ = p) != null ? _ : this.parseBindingAtom(), !this.eat(29))
        return p;
      const H = this.startNodeAt(d);
      return H.left = p, H.right = this.parseMaybeAssignAllowIn(), this.finishNode(H, "AssignmentPattern");
    }
    isValidLVal(d, p, b) {
      return zu({
        AssignmentPattern: "left",
        RestElement: "argument",
        ObjectProperty: "value",
        ParenthesizedExpression: "expression",
        ArrayPattern: "elements",
        ObjectPattern: "properties"
      }, d);
    }
    checkLVal(d, {
      in: p,
      binding: b = Zn,
      checkClashes: _ = !1,
      strictModeChanged: H = !1,
      hasParenthesizedAncestor: ee = !1
    }) {
      var de;
      const Ge = d.type;
      if (this.isObjectMethod(d))
        return;
      if (Ge === "MemberExpression") {
        b !== Zn && this.raise(S.InvalidPropertyBindingPattern, {
          at: d
        });
        return;
      }
      if (Ge === "Identifier") {
        this.checkIdentifier(d, b, H);
        const {
          name: _t
        } = d;
        _ && (_.has(_t) ? this.raise(S.ParamDupe, {
          at: d
        }) : _.add(_t));
        return;
      }
      const Ye = this.isValidLVal(Ge, !(ee || (de = d.extra) != null && de.parenthesized) && p.type === "AssignmentExpression", b);
      if (Ye === !0)
        return;
      if (Ye === !1) {
        const _t = b === Zn ? S.InvalidLhs : S.InvalidLhsBinding;
        this.raise(_t, {
          at: d,
          ancestor: p
        });
        return;
      }
      const [Je, gt] = Array.isArray(Ye) ? Ye : [Ye, Ge === "ParenthesizedExpression"], It = Ge === "ArrayPattern" || Ge === "ObjectPattern" || Ge === "ParenthesizedExpression" ? {
        type: Ge
      } : p;
      for (const _t of [].concat(d[Je]))
        _t && this.checkLVal(_t, {
          in: It,
          binding: b,
          checkClashes: _,
          strictModeChanged: H,
          hasParenthesizedAncestor: gt
        });
    }
    checkIdentifier(d, p, b = !1) {
      this.state.strict && (b ? Tt(d.name, this.inModule) : Ot(d.name)) && (p === Zn ? this.raise(S.StrictEvalArguments, {
        at: d,
        referenceName: d.name
      }) : this.raise(S.StrictEvalArgumentsBinding, {
        at: d,
        bindingName: d.name
      })), p & Sa && d.name === "let" && this.raise(S.LetInLexicalBinding, {
        at: d
      }), p & Zn || this.declareNameFromIdentifier(d, p);
    }
    declareNameFromIdentifier(d, p) {
      this.scope.declareName(d.name, p, d.loc.start);
    }
    checkToRestConversion(d, p) {
      switch (d.type) {
        case "ParenthesizedExpression":
          this.checkToRestConversion(d.expression, p);
          break;
        case "Identifier":
        case "MemberExpression":
          break;
        case "ArrayExpression":
        case "ObjectExpression":
          if (p)
            break;
        default:
          this.raise(S.InvalidRestAssignmentPattern, {
            at: d
          });
      }
    }
    checkCommaAfterRest(d) {
      return this.match(12) ? (this.raise(this.lookaheadCharCode() === d ? S.RestTrailingComma : S.ElementAfterRest, {
        at: this.state.startLoc
      }), !0) : !1;
    }
  }
  const Yu = (B, d) => Object.hasOwnProperty.call(B, d) && B[d];
  function Xu(B) {
    if (B == null)
      throw new Error("Unexpected ".concat(B, " value."));
    return B;
  }
  function tl(B) {
    if (!B)
      throw new Error("Assert fail");
  }
  const Ft = T(Pne || (Pne = at(["typescript"])))({
    AbstractMethodHasImplementation: ({
      methodName: B
    }) => "Method '".concat(B, "' cannot have an implementation because it is marked abstract."),
    AbstractPropertyHasInitializer: ({
      propertyName: B
    }) => "Property '".concat(B, "' cannot have an initializer because it is marked abstract."),
    AccesorCannotDeclareThisParameter: "'get' and 'set' accessors cannot declare 'this' parameters.",
    AccesorCannotHaveTypeParameters: "An accessor cannot have type parameters.",
    AccessorCannotBeOptional: "An 'accessor' property cannot be declared optional.",
    ClassMethodHasDeclare: "Class methods cannot have the 'declare' modifier.",
    ClassMethodHasReadonly: "Class methods cannot have the 'readonly' modifier.",
    ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference: "A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.",
    ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.",
    DeclareAccessor: ({
      kind: B
    }) => "'declare' is not allowed in ".concat(B, "ters."),
    DeclareClassFieldHasInitializer: "Initializers are not allowed in ambient contexts.",
    DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.",
    DuplicateAccessibilityModifier: ({
      modifier: B
    }) => "Accessibility modifier already seen.",
    DuplicateModifier: ({
      modifier: B
    }) => "Duplicate modifier: '".concat(B, "'."),
    EmptyHeritageClauseType: ({
      token: B
    }) => "'".concat(B, "' list cannot be empty."),
    EmptyTypeArguments: "Type argument list cannot be empty.",
    EmptyTypeParameters: "Type parameter list cannot be empty.",
    ExpectedAmbientAfterExportDeclare: "'export declare' must be followed by an ambient declaration.",
    ImportAliasHasImportType: "An import alias can not use 'import type'.",
    ImportReflectionHasImportType: "An `import module` declaration can not use `type` modifier",
    IncompatibleModifiers: ({
      modifiers: B
    }) => "'".concat(B[0], "' modifier cannot be used with '").concat(B[1], "' modifier."),
    IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier.",
    IndexSignatureHasAccessibility: ({
      modifier: B
    }) => "Index signatures cannot have an accessibility modifier ('".concat(B, "')."),
    IndexSignatureHasDeclare: "Index signatures cannot have the 'declare' modifier.",
    IndexSignatureHasOverride: "'override' modifier cannot appear on an index signature.",
    IndexSignatureHasStatic: "Index signatures cannot have the 'static' modifier.",
    InitializerNotAllowedInAmbientContext: "Initializers are not allowed in ambient contexts.",
    InvalidModifierOnTypeMember: ({
      modifier: B
    }) => "'".concat(B, "' modifier cannot appear on a type member."),
    InvalidModifierOnTypeParameter: ({
      modifier: B
    }) => "'".concat(B, "' modifier cannot appear on a type parameter."),
    InvalidModifierOnTypeParameterPositions: ({
      modifier: B
    }) => "'".concat(B, "' modifier can only appear on a type parameter of a class, interface or type alias."),
    InvalidModifiersOrder: ({
      orderedModifiers: B
    }) => "'".concat(B[0], "' modifier must precede '").concat(B[1], "' modifier."),
    InvalidPropertyAccessAfterInstantiationExpression: "Invalid property access after an instantiation expression. You can either wrap the instantiation expression in parentheses, or delete the type arguments.",
    InvalidTupleMemberLabel: "Tuple members must be labeled with a simple identifier.",
    MissingInterfaceName: "'interface' declarations must be followed by an identifier.",
    MixedLabeledAndUnlabeledElements: "Tuple members must all have names or all not have names.",
    NonAbstractClassHasAbstractMethod: "Abstract methods can only appear within an abstract class.",
    NonClassMethodPropertyHasAbstractModifer: "'abstract' modifier can only appear on a class, method, or property declaration.",
    OptionalTypeBeforeRequired: "A required element cannot follow an optional element.",
    OverrideNotInSubClass: "This member cannot have an 'override' modifier because its containing class does not extend another class.",
    PatternIsOptional: "A binding pattern parameter cannot be optional in an implementation signature.",
    PrivateElementHasAbstract: "Private elements cannot have the 'abstract' modifier.",
    PrivateElementHasAccessibility: ({
      modifier: B
    }) => "Private elements cannot have an accessibility modifier ('".concat(B, "')."),
    ReadonlyForMethodSignature: "'readonly' modifier can only appear on a property declaration or index signature.",
    ReservedArrowTypeParam: "This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `<T,>() => ...`.",
    ReservedTypeAssertion: "This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.",
    SetAccesorCannotHaveOptionalParameter: "A 'set' accessor cannot have an optional parameter.",
    SetAccesorCannotHaveRestParameter: "A 'set' accessor cannot have rest parameter.",
    SetAccesorCannotHaveReturnType: "A 'set' accessor cannot have a return type annotation.",
    SingleTypeParameterWithoutTrailingComma: ({
      typeParameterName: B
    }) => "Single type parameter ".concat(B, " should have a trailing comma. Example usage: <").concat(B, ",>."),
    StaticBlockCannotHaveModifier: "Static class blocks cannot have any modifier.",
    TupleOptionalAfterType: "A labeled tuple optional element must be declared using a question mark after the name and before the colon (`name?: type`), rather than after the type (`name: type?`).",
    TypeAnnotationAfterAssign: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",
    TypeImportCannotSpecifyDefaultAndNamed: "A type-only import can specify a default import or named bindings, but not both.",
    TypeModifierIsUsedInTypeExports: "The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.",
    TypeModifierIsUsedInTypeImports: "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.",
    UnexpectedParameterModifier: "A parameter property is only allowed in a constructor implementation.",
    UnexpectedReadonly: "'readonly' type modifier is only permitted on array and tuple literal types.",
    UnexpectedTypeAnnotation: "Did not expect a type annotation here.",
    UnexpectedTypeCastInParameter: "Unexpected type cast in parameter position.",
    UnsupportedImportTypeArgument: "Argument in a type import must be a string literal.",
    UnsupportedParameterPropertyKind: "A parameter property may not be declared using a binding pattern.",
    UnsupportedSignatureParameterKind: ({
      type: B
    }) => "Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ".concat(B, ".")
  });
  function Ju(B) {
    switch (B) {
      case "any":
        return "TSAnyKeyword";
      case "boolean":
        return "TSBooleanKeyword";
      case "bigint":
        return "TSBigIntKeyword";
      case "never":
        return "TSNeverKeyword";
      case "number":
        return "TSNumberKeyword";
      case "object":
        return "TSObjectKeyword";
      case "string":
        return "TSStringKeyword";
      case "symbol":
        return "TSSymbolKeyword";
      case "undefined":
        return "TSUndefinedKeyword";
      case "unknown":
        return "TSUnknownKeyword";
      default:
        return;
    }
  }
  function rl(B) {
    return B === "private" || B === "public" || B === "protected";
  }
  function Qu(B) {
    return B === "in" || B === "out";
  }
  var Zu = (B) => class extends B {
    constructor(...p) {
      super(...p), this.tsParseInOutModifiers = this.tsParseModifiers.bind(this, {
        allowedModifiers: ["in", "out"],
        disallowedModifiers: ["const", "public", "private", "protected", "readonly", "declare", "abstract", "override"],
        errorTemplate: Ft.InvalidModifierOnTypeParameter
      }), this.tsParseConstModifier = this.tsParseModifiers.bind(this, {
        allowedModifiers: ["const"],
        disallowedModifiers: ["in", "out"],
        errorTemplate: Ft.InvalidModifierOnTypeParameterPositions
      }), this.tsParseInOutConstModifiers = this.tsParseModifiers.bind(this, {
        allowedModifiers: ["in", "out", "const"],
        disallowedModifiers: ["public", "private", "protected", "readonly", "declare", "abstract", "override"],
        errorTemplate: Ft.InvalidModifierOnTypeParameter
      });
    }
    getScopeHandler() {
      return Ku;
    }
    tsIsIdentifier() {
      return ye(this.state.type);
    }
    tsTokenCanFollowModifier() {
      return (this.match(0) || this.match(5) || this.match(55) || this.match(21) || this.match(136) || this.isLiteralPropertyName()) && !this.hasPrecedingLineBreak();
    }
    tsNextTokenCanFollowModifier() {
      return this.next(), this.tsTokenCanFollowModifier();
    }
    tsParseModifier(p, b) {
      if (!ye(this.state.type) && this.state.type !== 58 && this.state.type !== 75)
        return;
      const _ = this.state.value;
      if (p.indexOf(_) !== -1) {
        if (b && this.tsIsStartOfStaticBlocks())
          return;
        if (this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))
          return _;
      }
    }
    tsParseModifiers({
      allowedModifiers: p,
      disallowedModifiers: b,
      stopOnStartOfClassStaticBlock: _,
      errorTemplate: H = Ft.InvalidModifierOnTypeMember
    }, ee) {
      const de = (Ye, Je, gt, It) => {
        Je === gt && ee[It] && this.raise(Ft.InvalidModifiersOrder, {
          at: Ye,
          orderedModifiers: [gt, It]
        });
      }, Ge = (Ye, Je, gt, It) => {
        (ee[gt] && Je === It || ee[It] && Je === gt) && this.raise(Ft.IncompatibleModifiers, {
          at: Ye,
          modifiers: [gt, It]
        });
      };
      for (; ; ) {
        const {
          startLoc: Ye
        } = this.state, Je = this.tsParseModifier(p.concat(b != null ? b : []), _);
        if (!Je)
          break;
        rl(Je) ? ee.accessibility ? this.raise(Ft.DuplicateAccessibilityModifier, {
          at: Ye,
          modifier: Je
        }) : (de(Ye, Je, Je, "override"), de(Ye, Je, Je, "static"), de(Ye, Je, Je, "readonly"), ee.accessibility = Je) : Qu(Je) ? (ee[Je] && this.raise(Ft.DuplicateModifier, {
          at: Ye,
          modifier: Je
        }), ee[Je] = !0, de(Ye, Je, "in", "out")) : (Object.hasOwnProperty.call(ee, Je) ? this.raise(Ft.DuplicateModifier, {
          at: Ye,
          modifier: Je
        }) : (de(Ye, Je, "static", "readonly"), de(Ye, Je, "static", "override"), de(Ye, Je, "override", "readonly"), de(Ye, Je, "abstract", "override"), Ge(Ye, Je, "declare", "override"), Ge(Ye, Je, "static", "abstract")), ee[Je] = !0), b != null && b.includes(Je) && this.raise(H, {
          at: Ye,
          modifier: Je
        });
      }
    }
    tsIsListTerminator(p) {
      switch (p) {
        case "EnumMembers":
        case "TypeMembers":
          return this.match(8);
        case "HeritageClauseElement":
          return this.match(5);
        case "TupleElementTypes":
          return this.match(3);
        case "TypeParametersOrArguments":
          return this.match(48);
      }
    }
    tsParseList(p, b) {
      const _ = [];
      for (; !this.tsIsListTerminator(p); )
        _.push(b());
      return _;
    }
    tsParseDelimitedList(p, b, _) {
      return Xu(this.tsParseDelimitedListWorker(p, b, !0, _));
    }
    tsParseDelimitedListWorker(p, b, _, H) {
      const ee = [];
      let de = -1;
      for (; !this.tsIsListTerminator(p); ) {
        de = -1;
        const Ge = b();
        if (Ge == null)
          return;
        if (ee.push(Ge), this.eat(12)) {
          de = this.state.lastTokStart;
          continue;
        }
        if (this.tsIsListTerminator(p))
          break;
        _ && this.expect(12);
        return;
      }
      return H && (H.value = de), ee;
    }
    tsParseBracketedList(p, b, _, H, ee) {
      H || (_ ? this.expect(0) : this.expect(47));
      const de = this.tsParseDelimitedList(p, b, ee);
      return _ ? this.expect(3) : this.expect(48), de;
    }
    tsParseImportType() {
      const p = this.startNode();
      return this.expect(83), this.expect(10), this.match(131) || this.raise(Ft.UnsupportedImportTypeArgument, {
        at: this.state.startLoc
      }), p.argument = super.parseExprAtom(), this.expect(11), this.eat(16) && (p.qualifier = this.tsParseEntityName()), this.match(47) && (p.typeParameters = this.tsParseTypeArguments()), this.finishNode(p, "TSImportType");
    }
    tsParseEntityName(p = !0) {
      let b = this.parseIdentifier(p);
      for (; this.eat(16); ) {
        const _ = this.startNodeAtNode(b);
        _.left = b, _.right = this.parseIdentifier(p), b = this.finishNode(_, "TSQualifiedName");
      }
      return b;
    }
    tsParseTypeReference() {
      const p = this.startNode();
      return p.typeName = this.tsParseEntityName(), !this.hasPrecedingLineBreak() && this.match(47) && (p.typeParameters = this.tsParseTypeArguments()), this.finishNode(p, "TSTypeReference");
    }
    tsParseThisTypePredicate(p) {
      this.next();
      const b = this.startNodeAtNode(p);
      return b.parameterName = p, b.typeAnnotation = this.tsParseTypeAnnotation(!1), b.asserts = !1, this.finishNode(b, "TSTypePredicate");
    }
    tsParseThisTypeNode() {
      const p = this.startNode();
      return this.next(), this.finishNode(p, "TSThisType");
    }
    tsParseTypeQuery() {
      const p = this.startNode();
      return this.expect(87), this.match(83) ? p.exprName = this.tsParseImportType() : p.exprName = this.tsParseEntityName(), !this.hasPrecedingLineBreak() && this.match(47) && (p.typeParameters = this.tsParseTypeArguments()), this.finishNode(p, "TSTypeQuery");
    }
    tsParseTypeParameter(p) {
      const b = this.startNode();
      return p(b), b.name = this.tsParseTypeParameterName(), b.constraint = this.tsEatThenParseType(81), b.default = this.tsEatThenParseType(29), this.finishNode(b, "TSTypeParameter");
    }
    tsTryParseTypeParameters(p) {
      if (this.match(47))
        return this.tsParseTypeParameters(p);
    }
    tsParseTypeParameters(p) {
      const b = this.startNode();
      this.match(47) || this.match(140) ? this.next() : this.unexpected();
      const _ = {
        value: -1
      };
      return b.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this, p), !1, !0, _), b.params.length === 0 && this.raise(Ft.EmptyTypeParameters, {
        at: b
      }), _.value !== -1 && this.addExtra(b, "trailingComma", _.value), this.finishNode(b, "TSTypeParameterDeclaration");
    }
    tsFillSignature(p, b) {
      const _ = p === 19, H = "parameters", ee = "typeAnnotation";
      b.typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier), this.expect(10), b[H] = this.tsParseBindingListForSignature(), _ ? b[ee] = this.tsParseTypeOrTypePredicateAnnotation(p) : this.match(p) && (b[ee] = this.tsParseTypeOrTypePredicateAnnotation(p));
    }
    tsParseBindingListForSignature() {
      const p = super.parseBindingList(11, 41, 2);
      for (const b of p) {
        const {
          type: _
        } = b;
        (_ === "AssignmentPattern" || _ === "TSParameterProperty") && this.raise(Ft.UnsupportedSignatureParameterKind, {
          at: b,
          type: _
        });
      }
      return p;
    }
    tsParseTypeMemberSemicolon() {
      !this.eat(12) && !this.isLineTerminator() && this.expect(13);
    }
    tsParseSignatureMember(p, b) {
      return this.tsFillSignature(14, b), this.tsParseTypeMemberSemicolon(), this.finishNode(b, p);
    }
    tsIsUnambiguouslyIndexSignature() {
      return this.next(), ye(this.state.type) ? (this.next(), this.match(14)) : !1;
    }
    tsTryParseIndexSignature(p) {
      if (!(this.match(0) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))))
        return;
      this.expect(0);
      const b = this.parseIdentifier();
      b.typeAnnotation = this.tsParseTypeAnnotation(), this.resetEndLocation(b), this.expect(3), p.parameters = [b];
      const _ = this.tsTryParseTypeAnnotation();
      return _ && (p.typeAnnotation = _), this.tsParseTypeMemberSemicolon(), this.finishNode(p, "TSIndexSignature");
    }
    tsParsePropertyOrMethodSignature(p, b) {
      this.eat(17) && (p.optional = !0);
      const _ = p;
      if (this.match(10) || this.match(47)) {
        b && this.raise(Ft.ReadonlyForMethodSignature, {
          at: p
        });
        const H = _;
        H.kind && this.match(47) && this.raise(Ft.AccesorCannotHaveTypeParameters, {
          at: this.state.curPosition()
        }), this.tsFillSignature(14, H), this.tsParseTypeMemberSemicolon();
        const ee = "parameters", de = "typeAnnotation";
        if (H.kind === "get")
          H[ee].length > 0 && (this.raise(S.BadGetterArity, {
            at: this.state.curPosition()
          }), this.isThisParam(H[ee][0]) && this.raise(Ft.AccesorCannotDeclareThisParameter, {
            at: this.state.curPosition()
          }));
        else if (H.kind === "set") {
          if (H[ee].length !== 1)
            this.raise(S.BadSetterArity, {
              at: this.state.curPosition()
            });
          else {
            const Ge = H[ee][0];
            this.isThisParam(Ge) && this.raise(Ft.AccesorCannotDeclareThisParameter, {
              at: this.state.curPosition()
            }), Ge.type === "Identifier" && Ge.optional && this.raise(Ft.SetAccesorCannotHaveOptionalParameter, {
              at: this.state.curPosition()
            }), Ge.type === "RestElement" && this.raise(Ft.SetAccesorCannotHaveRestParameter, {
              at: this.state.curPosition()
            });
          }
          H[de] && this.raise(Ft.SetAccesorCannotHaveReturnType, {
            at: H[de]
          });
        } else
          H.kind = "method";
        return this.finishNode(H, "TSMethodSignature");
      } else {
        const H = _;
        b && (H.readonly = !0);
        const ee = this.tsTryParseTypeAnnotation();
        return ee && (H.typeAnnotation = ee), this.tsParseTypeMemberSemicolon(), this.finishNode(H, "TSPropertySignature");
      }
    }
    tsParseTypeMember() {
      const p = this.startNode();
      if (this.match(10) || this.match(47))
        return this.tsParseSignatureMember("TSCallSignatureDeclaration", p);
      if (this.match(77)) {
        const _ = this.startNode();
        return this.next(), this.match(10) || this.match(47) ? this.tsParseSignatureMember("TSConstructSignatureDeclaration", p) : (p.key = this.createIdentifier(_, "new"), this.tsParsePropertyOrMethodSignature(p, !1));
      }
      this.tsParseModifiers({
        allowedModifiers: ["readonly"],
        disallowedModifiers: ["declare", "abstract", "private", "protected", "public", "static", "override"]
      }, p);
      const b = this.tsTryParseIndexSignature(p);
      return b || (super.parsePropertyName(p), !p.computed && p.key.type === "Identifier" && (p.key.name === "get" || p.key.name === "set") && this.tsTokenCanFollowModifier() && (p.kind = p.key.name, super.parsePropertyName(p)), this.tsParsePropertyOrMethodSignature(p, !!p.readonly));
    }
    tsParseTypeLiteral() {
      const p = this.startNode();
      return p.members = this.tsParseObjectTypeMembers(), this.finishNode(p, "TSTypeLiteral");
    }
    tsParseObjectTypeMembers() {
      this.expect(5);
      const p = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this));
      return this.expect(8), p;
    }
    tsIsStartOfMappedType() {
      return this.next(), this.eat(53) ? this.isContextual(120) : (this.isContextual(120) && this.next(), !this.match(0) || (this.next(), !this.tsIsIdentifier()) ? !1 : (this.next(), this.match(58)));
    }
    tsParseMappedTypeParameter() {
      const p = this.startNode();
      return p.name = this.tsParseTypeParameterName(), p.constraint = this.tsExpectThenParseType(58), this.finishNode(p, "TSTypeParameter");
    }
    tsParseMappedType() {
      const p = this.startNode();
      return this.expect(5), this.match(53) ? (p.readonly = this.state.value, this.next(), this.expectContextual(120)) : this.eatContextual(120) && (p.readonly = !0), this.expect(0), p.typeParameter = this.tsParseMappedTypeParameter(), p.nameType = this.eatContextual(93) ? this.tsParseType() : null, this.expect(3), this.match(53) ? (p.optional = this.state.value, this.next(), this.expect(17)) : this.eat(17) && (p.optional = !0), p.typeAnnotation = this.tsTryParseType(), this.semicolon(), this.expect(8), this.finishNode(p, "TSMappedType");
    }
    tsParseTupleType() {
      const p = this.startNode();
      p.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), !0, !1);
      let b = !1, _ = null;
      return p.elementTypes.forEach((H) => {
        var ee;
        const {
          type: de
        } = H;
        b && de !== "TSRestType" && de !== "TSOptionalType" && !(de === "TSNamedTupleMember" && H.optional) && this.raise(Ft.OptionalTypeBeforeRequired, {
          at: H
        }), b || (b = de === "TSNamedTupleMember" && H.optional || de === "TSOptionalType");
        let Ge = de;
        de === "TSRestType" && (H = H.typeAnnotation, Ge = H.type);
        const Ye = Ge === "TSNamedTupleMember";
        (ee = _) != null || (_ = Ye), _ !== Ye && this.raise(Ft.MixedLabeledAndUnlabeledElements, {
          at: H
        });
      }), this.finishNode(p, "TSTupleType");
    }
    tsParseTupleElementType() {
      const {
        startLoc: p
      } = this.state, b = this.eat(21);
      let _, H, ee, de;
      const Ye = Z(this.state.type) ? this.lookaheadCharCode() : null;
      if (Ye === 58)
        _ = !0, ee = !1, H = this.parseIdentifier(!0), this.expect(14), de = this.tsParseType();
      else if (Ye === 63) {
        ee = !0;
        const Je = this.state.startLoc, gt = this.state.value, It = this.tsParseNonArrayType();
        this.lookaheadCharCode() === 58 ? (_ = !0, H = this.createIdentifier(this.startNodeAt(Je), gt), this.expect(17), this.expect(14), de = this.tsParseType()) : (_ = !1, de = It, this.expect(17));
      } else
        de = this.tsParseType(), ee = this.eat(17), _ = this.eat(14);
      if (_) {
        let Je;
        H ? (Je = this.startNodeAtNode(H), Je.optional = ee, Je.label = H, Je.elementType = de, this.eat(17) && (Je.optional = !0, this.raise(Ft.TupleOptionalAfterType, {
          at: this.state.lastTokStartLoc
        }))) : (Je = this.startNodeAtNode(de), Je.optional = ee, this.raise(Ft.InvalidTupleMemberLabel, {
          at: de
        }), Je.label = de, Je.elementType = this.tsParseType()), de = this.finishNode(Je, "TSNamedTupleMember");
      } else if (ee) {
        const Je = this.startNodeAtNode(de);
        Je.typeAnnotation = de, de = this.finishNode(Je, "TSOptionalType");
      }
      if (b) {
        const Je = this.startNodeAt(p);
        Je.typeAnnotation = de, de = this.finishNode(Je, "TSRestType");
      }
      return de;
    }
    tsParseParenthesizedType() {
      const p = this.startNode();
      return this.expect(10), p.typeAnnotation = this.tsParseType(), this.expect(11), this.finishNode(p, "TSParenthesizedType");
    }
    tsParseFunctionOrConstructorType(p, b) {
      const _ = this.startNode();
      return p === "TSConstructorType" && (_.abstract = !!b, b && this.next(), this.next()), this.tsInAllowConditionalTypesContext(() => this.tsFillSignature(19, _)), this.finishNode(_, p);
    }
    tsParseLiteralTypeNode() {
      const p = this.startNode();
      switch (this.state.type) {
        case 132:
        case 133:
        case 131:
        case 85:
        case 86:
          p.literal = super.parseExprAtom();
          break;
        default:
          this.unexpected();
      }
      return this.finishNode(p, "TSLiteralType");
    }
    tsParseTemplateLiteralType() {
      const p = this.startNode();
      return p.literal = super.parseTemplate(!1), this.finishNode(p, "TSLiteralType");
    }
    parseTemplateSubstitution() {
      return this.state.inType ? this.tsParseType() : super.parseTemplateSubstitution();
    }
    tsParseThisTypeOrThisTypePredicate() {
      const p = this.tsParseThisTypeNode();
      return this.isContextual(114) && !this.hasPrecedingLineBreak() ? this.tsParseThisTypePredicate(p) : p;
    }
    tsParseNonArrayType() {
      switch (this.state.type) {
        case 131:
        case 132:
        case 133:
        case 85:
        case 86:
          return this.tsParseLiteralTypeNode();
        case 53:
          if (this.state.value === "-") {
            const p = this.startNode(), b = this.lookahead();
            return b.type !== 132 && b.type !== 133 && this.unexpected(), p.literal = this.parseMaybeUnary(), this.finishNode(p, "TSLiteralType");
          }
          break;
        case 78:
          return this.tsParseThisTypeOrThisTypePredicate();
        case 87:
          return this.tsParseTypeQuery();
        case 83:
          return this.tsParseImportType();
        case 5:
          return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this)) ? this.tsParseMappedType() : this.tsParseTypeLiteral();
        case 0:
          return this.tsParseTupleType();
        case 10:
          return this.tsParseParenthesizedType();
        case 25:
        case 24:
          return this.tsParseTemplateLiteralType();
        default: {
          const {
            type: p
          } = this.state;
          if (ye(p) || p === 88 || p === 84) {
            const b = p === 88 ? "TSVoidKeyword" : p === 84 ? "TSNullKeyword" : Ju(this.state.value);
            if (b !== void 0 && this.lookaheadCharCode() !== 46) {
              const _ = this.startNode();
              return this.next(), this.finishNode(_, b);
            }
            return this.tsParseTypeReference();
          }
        }
      }
      this.unexpected();
    }
    tsParseArrayTypeOrHigher() {
      let p = this.tsParseNonArrayType();
      for (; !this.hasPrecedingLineBreak() && this.eat(0); )
        if (this.match(3)) {
          const b = this.startNodeAtNode(p);
          b.elementType = p, this.expect(3), p = this.finishNode(b, "TSArrayType");
        } else {
          const b = this.startNodeAtNode(p);
          b.objectType = p, b.indexType = this.tsParseType(), this.expect(3), p = this.finishNode(b, "TSIndexedAccessType");
        }
      return p;
    }
    tsParseTypeOperator() {
      const p = this.startNode(), b = this.state.value;
      return this.next(), p.operator = b, p.typeAnnotation = this.tsParseTypeOperatorOrHigher(), b === "readonly" && this.tsCheckTypeAnnotationForReadOnly(p), this.finishNode(p, "TSTypeOperator");
    }
    tsCheckTypeAnnotationForReadOnly(p) {
      switch (p.typeAnnotation.type) {
        case "TSTupleType":
        case "TSArrayType":
          return;
        default:
          this.raise(Ft.UnexpectedReadonly, {
            at: p
          });
      }
    }
    tsParseInferType() {
      const p = this.startNode();
      this.expectContextual(113);
      const b = this.startNode();
      return b.name = this.tsParseTypeParameterName(), b.constraint = this.tsTryParse(() => this.tsParseConstraintForInferType()), p.typeParameter = this.finishNode(b, "TSTypeParameter"), this.finishNode(p, "TSInferType");
    }
    tsParseConstraintForInferType() {
      if (this.eat(81)) {
        const p = this.tsInDisallowConditionalTypesContext(() => this.tsParseType());
        if (this.state.inDisallowConditionalTypesContext || !this.match(17))
          return p;
      }
    }
    tsParseTypeOperatorOrHigher() {
      return se(this.state.type) && !this.state.containsEsc ? this.tsParseTypeOperator() : this.isContextual(113) ? this.tsParseInferType() : this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher());
    }
    tsParseUnionOrIntersectionType(p, b, _) {
      const H = this.startNode(), ee = this.eat(_), de = [];
      do
        de.push(b());
      while (this.eat(_));
      return de.length === 1 && !ee ? de[0] : (H.types = de, this.finishNode(H, p));
    }
    tsParseIntersectionTypeOrHigher() {
      return this.tsParseUnionOrIntersectionType("TSIntersectionType", this.tsParseTypeOperatorOrHigher.bind(this), 45);
    }
    tsParseUnionTypeOrHigher() {
      return this.tsParseUnionOrIntersectionType("TSUnionType", this.tsParseIntersectionTypeOrHigher.bind(this), 43);
    }
    tsIsStartOfFunctionType() {
      return this.match(47) ? !0 : this.match(10) && this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this));
    }
    tsSkipParameterStart() {
      if (ye(this.state.type) || this.match(78))
        return this.next(), !0;
      if (this.match(5)) {
        const {
          errors: p
        } = this.state, b = p.length;
        try {
          return this.parseObjectLike(8, !0), p.length === b;
        } catch (_) {
          return !1;
        }
      }
      if (this.match(0)) {
        this.next();
        const {
          errors: p
        } = this.state, b = p.length;
        try {
          return super.parseBindingList(3, 93, 1), p.length === b;
        } catch (_) {
          return !1;
        }
      }
      return !1;
    }
    tsIsUnambiguouslyStartOfFunctionType() {
      return this.next(), !!(this.match(11) || this.match(21) || this.tsSkipParameterStart() && (this.match(14) || this.match(12) || this.match(17) || this.match(29) || this.match(11) && (this.next(), this.match(19))));
    }
    tsParseTypeOrTypePredicateAnnotation(p) {
      return this.tsInType(() => {
        const b = this.startNode();
        this.expect(p);
        const _ = this.startNode(), H = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));
        if (H && this.match(78)) {
          let Ge = this.tsParseThisTypeOrThisTypePredicate();
          return Ge.type === "TSThisType" ? (_.parameterName = Ge, _.asserts = !0, _.typeAnnotation = null, Ge = this.finishNode(_, "TSTypePredicate")) : (this.resetStartLocationFromNode(Ge, _), Ge.asserts = !0), b.typeAnnotation = Ge, this.finishNode(b, "TSTypeAnnotation");
        }
        const ee = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));
        if (!ee)
          return H ? (_.parameterName = this.parseIdentifier(), _.asserts = H, _.typeAnnotation = null, b.typeAnnotation = this.finishNode(_, "TSTypePredicate"), this.finishNode(b, "TSTypeAnnotation")) : this.tsParseTypeAnnotation(!1, b);
        const de = this.tsParseTypeAnnotation(!1);
        return _.parameterName = ee, _.typeAnnotation = de, _.asserts = H, b.typeAnnotation = this.finishNode(_, "TSTypePredicate"), this.finishNode(b, "TSTypeAnnotation");
      });
    }
    tsTryParseTypeOrTypePredicateAnnotation() {
      if (this.match(14))
        return this.tsParseTypeOrTypePredicateAnnotation(14);
    }
    tsTryParseTypeAnnotation() {
      if (this.match(14))
        return this.tsParseTypeAnnotation();
    }
    tsTryParseType() {
      return this.tsEatThenParseType(14);
    }
    tsParseTypePredicatePrefix() {
      const p = this.parseIdentifier();
      if (this.isContextual(114) && !this.hasPrecedingLineBreak())
        return this.next(), p;
    }
    tsParseTypePredicateAsserts() {
      if (this.state.type !== 107)
        return !1;
      const p = this.state.containsEsc;
      return this.next(), !ye(this.state.type) && !this.match(78) ? !1 : (p && this.raise(S.InvalidEscapedReservedWord, {
        at: this.state.lastTokStartLoc,
        reservedWord: "asserts"
      }), !0);
    }
    tsParseTypeAnnotation(p = !0, b = this.startNode()) {
      return this.tsInType(() => {
        p && this.expect(14), b.typeAnnotation = this.tsParseType();
      }), this.finishNode(b, "TSTypeAnnotation");
    }
    tsParseType() {
      tl(this.state.inType);
      const p = this.tsParseNonConditionalType();
      if (this.state.inDisallowConditionalTypesContext || this.hasPrecedingLineBreak() || !this.eat(81))
        return p;
      const b = this.startNodeAtNode(p);
      return b.checkType = p, b.extendsType = this.tsInDisallowConditionalTypesContext(() => this.tsParseNonConditionalType()), this.expect(17), b.trueType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()), this.expect(14), b.falseType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()), this.finishNode(b, "TSConditionalType");
    }
    isAbstractConstructorSignature() {
      return this.isContextual(122) && this.lookahead().type === 77;
    }
    tsParseNonConditionalType() {
      return this.tsIsStartOfFunctionType() ? this.tsParseFunctionOrConstructorType("TSFunctionType") : this.match(77) ? this.tsParseFunctionOrConstructorType("TSConstructorType") : this.isAbstractConstructorSignature() ? this.tsParseFunctionOrConstructorType("TSConstructorType", !0) : this.tsParseUnionTypeOrHigher();
    }
    tsParseTypeAssertion() {
      this.getPluginOption("typescript", "disallowAmbiguousJSXLike") && this.raise(Ft.ReservedTypeAssertion, {
        at: this.state.startLoc
      });
      const p = this.startNode();
      return p.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? this.tsParseTypeReference() : this.tsParseType())), this.expect(48), p.expression = this.parseMaybeUnary(), this.finishNode(p, "TSTypeAssertion");
    }
    tsParseHeritageClause(p) {
      const b = this.state.startLoc, _ = this.tsParseDelimitedList("HeritageClauseElement", () => {
        const H = this.startNode();
        return H.expression = this.tsParseEntityName(), this.match(47) && (H.typeParameters = this.tsParseTypeArguments()), this.finishNode(H, "TSExpressionWithTypeArguments");
      });
      return _.length || this.raise(Ft.EmptyHeritageClauseType, {
        at: b,
        token: p
      }), _;
    }
    tsParseInterfaceDeclaration(p, b = {}) {
      if (this.hasFollowingLineBreak())
        return null;
      this.expectContextual(127), b.declare && (p.declare = !0), ye(this.state.type) ? (p.id = this.parseIdentifier(), this.checkIdentifier(p.id, ru)) : (p.id = null, this.raise(Ft.MissingInterfaceName, {
        at: this.state.startLoc
      })), p.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers), this.eat(81) && (p.extends = this.tsParseHeritageClause("extends"));
      const _ = this.startNode();
      return _.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this)), p.body = this.finishNode(_, "TSInterfaceBody"), this.finishNode(p, "TSInterfaceDeclaration");
    }
    tsParseTypeAliasDeclaration(p) {
      return p.id = this.parseIdentifier(), this.checkIdentifier(p.id, iu), p.typeAnnotation = this.tsInType(() => {
        if (p.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers), this.expect(29), this.isContextual(112) && this.lookahead().type !== 16) {
          const b = this.startNode();
          return this.next(), this.finishNode(b, "TSIntrinsicKeyword");
        }
        return this.tsParseType();
      }), this.semicolon(), this.finishNode(p, "TSTypeAliasDeclaration");
    }
    tsInNoContext(p) {
      const b = this.state.context;
      this.state.context = [b[0]];
      try {
        return p();
      } finally {
        this.state.context = b;
      }
    }
    tsInType(p) {
      const b = this.state.inType;
      this.state.inType = !0;
      try {
        return p();
      } finally {
        this.state.inType = b;
      }
    }
    tsInDisallowConditionalTypesContext(p) {
      const b = this.state.inDisallowConditionalTypesContext;
      this.state.inDisallowConditionalTypesContext = !0;
      try {
        return p();
      } finally {
        this.state.inDisallowConditionalTypesContext = b;
      }
    }
    tsInAllowConditionalTypesContext(p) {
      const b = this.state.inDisallowConditionalTypesContext;
      this.state.inDisallowConditionalTypesContext = !1;
      try {
        return p();
      } finally {
        this.state.inDisallowConditionalTypesContext = b;
      }
    }
    tsEatThenParseType(p) {
      if (this.match(p))
        return this.tsNextThenParseType();
    }
    tsExpectThenParseType(p) {
      return this.tsInType(() => (this.expect(p), this.tsParseType()));
    }
    tsNextThenParseType() {
      return this.tsInType(() => (this.next(), this.tsParseType()));
    }
    tsParseEnumMember() {
      const p = this.startNode();
      return p.id = this.match(131) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(!0), this.eat(29) && (p.initializer = super.parseMaybeAssignAllowIn()), this.finishNode(p, "TSEnumMember");
    }
    tsParseEnumDeclaration(p, b = {}) {
      return b.const && (p.const = !0), b.declare && (p.declare = !0), this.expectContextual(124), p.id = this.parseIdentifier(), this.checkIdentifier(p.id, p.const ? su : Bo), this.expect(5), p.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)), this.expect(8), this.finishNode(p, "TSEnumDeclaration");
    }
    tsParseModuleBlock() {
      const p = this.startNode();
      return this.scope.enter(an), this.expect(5), super.parseBlockOrModuleBlockBody(p.body = [], void 0, !0, 8), this.scope.exit(), this.finishNode(p, "TSModuleBlock");
    }
    tsParseModuleOrNamespaceDeclaration(p, b = !1) {
      if (p.id = this.parseIdentifier(), b || this.checkIdentifier(p.id, au), this.eat(16)) {
        const _ = this.startNode();
        this.tsParseModuleOrNamespaceDeclaration(_, !0), p.body = _;
      } else
        this.scope.enter(As), this.prodParam.enter(_s), p.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit();
      return this.finishNode(p, "TSModuleDeclaration");
    }
    tsParseAmbientExternalModuleDeclaration(p) {
      return this.isContextual(110) ? (p.global = !0, p.id = this.parseIdentifier()) : this.match(131) ? p.id = super.parseStringLiteral(this.state.value) : this.unexpected(), this.match(5) ? (this.scope.enter(As), this.prodParam.enter(_s), p.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit()) : this.semicolon(), this.finishNode(p, "TSModuleDeclaration");
    }
    tsParseImportEqualsDeclaration(p, b, _) {
      p.isExport = _ || !1, p.id = b || this.parseIdentifier(), this.checkIdentifier(p.id, Us), this.expect(29);
      const H = this.tsParseModuleReference();
      return p.importKind === "type" && H.type !== "TSExternalModuleReference" && this.raise(Ft.ImportAliasHasImportType, {
        at: H
      }), p.moduleReference = H, this.semicolon(), this.finishNode(p, "TSImportEqualsDeclaration");
    }
    tsIsExternalModuleReference() {
      return this.isContextual(117) && this.lookaheadCharCode() === 40;
    }
    tsParseModuleReference() {
      return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(!1);
    }
    tsParseExternalModuleReference() {
      const p = this.startNode();
      return this.expectContextual(117), this.expect(10), this.match(131) || this.unexpected(), p.expression = super.parseExprAtom(), this.expect(11), this.sawUnambiguousESM = !0, this.finishNode(p, "TSExternalModuleReference");
    }
    tsLookAhead(p) {
      const b = this.state.clone(), _ = p();
      return this.state = b, _;
    }
    tsTryParseAndCatch(p) {
      const b = this.tryParse((_) => p() || _());
      if (!(b.aborted || !b.node))
        return b.error && (this.state = b.failState), b.node;
    }
    tsTryParse(p) {
      const b = this.state.clone(), _ = p();
      if (_ !== void 0 && _ !== !1)
        return _;
      this.state = b;
    }
    tsTryParseDeclare(p) {
      if (this.isLineTerminator())
        return;
      let b = this.state.type, _;
      return this.isContextual(99) && (b = 74, _ = "let"), this.tsInAmbientContext(() => {
        switch (b) {
          case 68:
            return p.declare = !0, super.parseFunctionStatement(p, !1, !1);
          case 80:
            return p.declare = !0, this.parseClass(p, !0, !1);
          case 124:
            return this.tsParseEnumDeclaration(p, {
              declare: !0
            });
          case 110:
            return this.tsParseAmbientExternalModuleDeclaration(p);
          case 75:
          case 74:
            return !this.match(75) || !this.isLookaheadContextual("enum") ? (p.declare = !0, this.parseVarStatement(p, _ || this.state.value, !0)) : (this.expect(75), this.tsParseEnumDeclaration(p, {
              const: !0,
              declare: !0
            }));
          case 127: {
            const H = this.tsParseInterfaceDeclaration(p, {
              declare: !0
            });
            if (H)
              return H;
          }
          default:
            if (ye(b))
              return this.tsParseDeclaration(p, this.state.value, !0, null);
        }
      });
    }
    tsTryParseExportDeclaration() {
      return this.tsParseDeclaration(this.startNode(), this.state.value, !0, null);
    }
    tsParseExpressionStatement(p, b, _) {
      switch (b.name) {
        case "declare": {
          const H = this.tsTryParseDeclare(p);
          return H && (H.declare = !0), H;
        }
        case "global":
          if (this.match(5)) {
            this.scope.enter(As), this.prodParam.enter(_s);
            const H = p;
            return H.global = !0, H.id = b, H.body = this.tsParseModuleBlock(), this.scope.exit(), this.prodParam.exit(), this.finishNode(H, "TSModuleDeclaration");
          }
          break;
        default:
          return this.tsParseDeclaration(p, b.name, !1, _);
      }
    }
    tsParseDeclaration(p, b, _, H) {
      switch (b) {
        case "abstract":
          if (this.tsCheckLineTerminator(_) && (this.match(80) || ye(this.state.type)))
            return this.tsParseAbstractDeclaration(p, H);
          break;
        case "module":
          if (this.tsCheckLineTerminator(_)) {
            if (this.match(131))
              return this.tsParseAmbientExternalModuleDeclaration(p);
            if (ye(this.state.type))
              return this.tsParseModuleOrNamespaceDeclaration(p);
          }
          break;
        case "namespace":
          if (this.tsCheckLineTerminator(_) && ye(this.state.type))
            return this.tsParseModuleOrNamespaceDeclaration(p);
          break;
        case "type":
          if (this.tsCheckLineTerminator(_) && ye(this.state.type))
            return this.tsParseTypeAliasDeclaration(p);
          break;
      }
    }
    tsCheckLineTerminator(p) {
      return p ? this.hasFollowingLineBreak() ? !1 : (this.next(), !0) : !this.isLineTerminator();
    }
    tsTryParseGenericAsyncArrowFunction(p) {
      if (!this.match(47))
        return;
      const b = this.state.maybeInArrowParameters;
      this.state.maybeInArrowParameters = !0;
      const _ = this.tsTryParseAndCatch(() => {
        const H = this.startNodeAt(p);
        return H.typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier), super.parseFunctionParams(H), H.returnType = this.tsTryParseTypeOrTypePredicateAnnotation(), this.expect(19), H;
      });
      if (this.state.maybeInArrowParameters = b, !!_)
        return super.parseArrowExpression(_, null, !0);
    }
    tsParseTypeArgumentsInExpression() {
      if (this.reScan_lt() === 47)
        return this.tsParseTypeArguments();
    }
    tsParseTypeArguments() {
      const p = this.startNode();
      return p.params = this.tsInType(() => this.tsInNoContext(() => (this.expect(47), this.tsParseDelimitedList("TypeParametersOrArguments", this.tsParseType.bind(this))))), p.params.length === 0 ? this.raise(Ft.EmptyTypeArguments, {
        at: p
      }) : !this.state.inType && this.curContext() === A.brace && this.reScan_lt_gt(), this.expect(48), this.finishNode(p, "TSTypeParameterInstantiation");
    }
    tsIsDeclarationStart() {
      return re(this.state.type);
    }
    isExportDefaultSpecifier() {
      return this.tsIsDeclarationStart() ? !1 : super.isExportDefaultSpecifier();
    }
    parseAssignableListItem(p, b) {
      const _ = this.state.startLoc, H = {};
      this.tsParseModifiers({
        allowedModifiers: ["public", "private", "protected", "override", "readonly"]
      }, H);
      const ee = H.accessibility, de = H.override, Ge = H.readonly;
      !(p & 4) && (ee || Ge || de) && this.raise(Ft.UnexpectedParameterModifier, {
        at: _
      });
      const Ye = this.parseMaybeDefault();
      this.parseAssignableListItemTypes(Ye, p);
      const Je = this.parseMaybeDefault(Ye.loc.start, Ye);
      if (ee || Ge || de) {
        const gt = this.startNodeAt(_);
        return b.length && (gt.decorators = b), ee && (gt.accessibility = ee), Ge && (gt.readonly = Ge), de && (gt.override = de), Je.type !== "Identifier" && Je.type !== "AssignmentPattern" && this.raise(Ft.UnsupportedParameterPropertyKind, {
          at: gt
        }), gt.parameter = Je, this.finishNode(gt, "TSParameterProperty");
      }
      return b.length && (Ye.decorators = b), Je;
    }
    isSimpleParameter(p) {
      return p.type === "TSParameterProperty" && super.isSimpleParameter(p.parameter) || super.isSimpleParameter(p);
    }
    tsDisallowOptionalPattern(p) {
      for (const b of p.params)
        b.type !== "Identifier" && b.optional && !this.state.isAmbientContext && this.raise(Ft.PatternIsOptional, {
          at: b
        });
    }
    setArrowFunctionParameters(p, b, _) {
      super.setArrowFunctionParameters(p, b, _), this.tsDisallowOptionalPattern(p);
    }
    parseFunctionBodyAndFinish(p, b, _ = !1) {
      this.match(14) && (p.returnType = this.tsParseTypeOrTypePredicateAnnotation(14));
      const H = b === "FunctionDeclaration" ? "TSDeclareFunction" : b === "ClassMethod" || b === "ClassPrivateMethod" ? "TSDeclareMethod" : void 0;
      return H && !this.match(5) && this.isLineTerminator() ? this.finishNode(p, H) : H === "TSDeclareFunction" && this.state.isAmbientContext && (this.raise(Ft.DeclareFunctionHasImplementation, {
        at: p
      }), p.declare) ? super.parseFunctionBodyAndFinish(p, H, _) : (this.tsDisallowOptionalPattern(p), super.parseFunctionBodyAndFinish(p, b, _));
    }
    registerFunctionStatementId(p) {
      !p.body && p.id ? this.checkIdentifier(p.id, Fo) : super.registerFunctionStatementId(p);
    }
    tsCheckForInvalidTypeCasts(p) {
      p.forEach((b) => {
        (b == null ? void 0 : b.type) === "TSTypeCastExpression" && this.raise(Ft.UnexpectedTypeAnnotation, {
          at: b.typeAnnotation
        });
      });
    }
    toReferencedList(p, b) {
      return this.tsCheckForInvalidTypeCasts(p), p;
    }
    parseArrayLike(p, b, _, H) {
      const ee = super.parseArrayLike(p, b, _, H);
      return ee.type === "ArrayExpression" && this.tsCheckForInvalidTypeCasts(ee.elements), ee;
    }
    parseSubscript(p, b, _, H) {
      if (!this.hasPrecedingLineBreak() && this.match(35)) {
        this.state.canStartJSXElement = !1, this.next();
        const de = this.startNodeAt(b);
        return de.expression = p, this.finishNode(de, "TSNonNullExpression");
      }
      let ee = !1;
      if (this.match(18) && this.lookaheadCharCode() === 60) {
        if (_)
          return H.stop = !0, p;
        H.optionalChainMember = ee = !0, this.next();
      }
      if (this.match(47) || this.match(51)) {
        let de;
        const Ge = this.tsTryParseAndCatch(() => {
          if (!_ && this.atPossibleAsyncArrow(p)) {
            const It = this.tsTryParseGenericAsyncArrowFunction(b);
            if (It)
              return It;
          }
          const Ye = this.tsParseTypeArgumentsInExpression();
          if (!Ye)
            return;
          if (ee && !this.match(10)) {
            de = this.state.curPosition();
            return;
          }
          if (pt(this.state.type)) {
            const It = super.parseTaggedTemplateExpression(p, b, H);
            return It.typeParameters = Ye, It;
          }
          if (!_ && this.eat(10)) {
            const It = this.startNodeAt(b);
            return It.callee = p, It.arguments = this.parseCallExpressionArguments(11, !1), this.tsCheckForInvalidTypeCasts(It.arguments), It.typeParameters = Ye, H.optionalChainMember && (It.optional = ee), this.finishCallExpression(It, H.optionalChainMember);
          }
          const Je = this.state.type;
          if (Je === 48 || Je === 52 || Je !== 10 && xe(Je) && !this.hasPrecedingLineBreak())
            return;
          const gt = this.startNodeAt(b);
          return gt.expression = p, gt.typeParameters = Ye, this.finishNode(gt, "TSInstantiationExpression");
        });
        if (de && this.unexpected(de, 10), Ge)
          return Ge.type === "TSInstantiationExpression" && (this.match(16) || this.match(18) && this.lookaheadCharCode() !== 40) && this.raise(Ft.InvalidPropertyAccessAfterInstantiationExpression, {
            at: this.state.startLoc
          }), Ge;
      }
      return super.parseSubscript(p, b, _, H);
    }
    parseNewCallee(p) {
      var b;
      super.parseNewCallee(p);
      const {
        callee: _
      } = p;
      _.type === "TSInstantiationExpression" && !((b = _.extra) != null && b.parenthesized) && (p.typeParameters = _.typeParameters, p.callee = _.expression);
    }
    parseExprOp(p, b, _) {
      let H;
      if (ze(58) > _ && !this.hasPrecedingLineBreak() && (this.isContextual(93) || (H = this.isContextual(118)))) {
        const ee = this.startNodeAt(b);
        return ee.expression = p, ee.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? (H && this.raise(S.UnexpectedKeyword, {
          at: this.state.startLoc,
          keyword: "const"
        }), this.tsParseTypeReference()) : this.tsParseType())), this.finishNode(ee, H ? "TSSatisfiesExpression" : "TSAsExpression"), this.reScan_lt_gt(), this.parseExprOp(ee, b, _);
      }
      return super.parseExprOp(p, b, _);
    }
    checkReservedWord(p, b, _, H) {
      this.state.isAmbientContext || super.checkReservedWord(p, b, _, H);
    }
    checkImportReflection(p) {
      super.checkImportReflection(p), p.module && p.importKind !== "value" && this.raise(Ft.ImportReflectionHasImportType, {
        at: p.specifiers[0].loc.start
      });
    }
    checkDuplicateExports() {
    }
    isPotentialImportPhase(p) {
      if (super.isPotentialImportPhase(p))
        return !0;
      if (this.isContextual(128)) {
        const b = this.lookaheadCharCode();
        return p ? b === 123 || b === 42 : b !== 61;
      }
      return !p && this.isContextual(87);
    }
    applyImportPhase(p, b, _, H) {
      super.applyImportPhase(p, b, _, H), b ? p.exportKind = _ === "type" ? "type" : "value" : p.importKind = _ === "type" || _ === "typeof" ? _ : "value";
    }
    parseImport(p) {
      if (this.match(131))
        return p.importKind = "value", super.parseImport(p);
      let b;
      if (ye(this.state.type) && this.lookaheadCharCode() === 61)
        return p.importKind = "value", this.tsParseImportEqualsDeclaration(p);
      if (this.isContextual(128)) {
        const _ = this.parseMaybeImportPhase(p, !1);
        if (this.lookaheadCharCode() === 61)
          return this.tsParseImportEqualsDeclaration(p, _);
        b = super.parseImportSpecifiersAndAfter(p, _);
      } else
        b = super.parseImport(p);
      return b.importKind === "type" && b.specifiers.length > 1 && b.specifiers[0].type === "ImportDefaultSpecifier" && this.raise(Ft.TypeImportCannotSpecifyDefaultAndNamed, {
        at: b
      }), b;
    }
    parseExport(p, b) {
      if (this.match(83)) {
        this.next();
        let _ = null;
        return this.isContextual(128) && this.isPotentialImportPhase(!1) ? _ = this.parseMaybeImportPhase(p, !1) : p.importKind = "value", this.tsParseImportEqualsDeclaration(p, _, !0);
      } else if (this.eat(29)) {
        const _ = p;
        return _.expression = super.parseExpression(), this.semicolon(), this.sawUnambiguousESM = !0, this.finishNode(_, "TSExportAssignment");
      } else if (this.eatContextual(93)) {
        const _ = p;
        return this.expectContextual(126), _.id = this.parseIdentifier(), this.semicolon(), this.finishNode(_, "TSNamespaceExportDeclaration");
      } else
        return super.parseExport(p, b);
    }
    isAbstractClass() {
      return this.isContextual(122) && this.lookahead().type === 80;
    }
    parseExportDefaultExpression() {
      if (this.isAbstractClass()) {
        const p = this.startNode();
        return this.next(), p.abstract = !0, this.parseClass(p, !0, !0);
      }
      if (this.match(127)) {
        const p = this.tsParseInterfaceDeclaration(this.startNode());
        if (p)
          return p;
      }
      return super.parseExportDefaultExpression();
    }
    parseVarStatement(p, b, _ = !1) {
      const {
        isAmbientContext: H
      } = this.state, ee = super.parseVarStatement(p, b, _ || H);
      if (!H)
        return ee;
      for (const {
        id: de,
        init: Ge
      } of ee.declarations)
        Ge && (b !== "const" || de.typeAnnotation ? this.raise(Ft.InitializerNotAllowedInAmbientContext, {
          at: Ge
        }) : tc(Ge, this.hasPlugin("estree")) || this.raise(Ft.ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference, {
          at: Ge
        }));
      return ee;
    }
    parseStatementContent(p, b) {
      if (this.match(75) && this.isLookaheadContextual("enum")) {
        const _ = this.startNode();
        return this.expect(75), this.tsParseEnumDeclaration(_, {
          const: !0
        });
      }
      if (this.isContextual(124))
        return this.tsParseEnumDeclaration(this.startNode());
      if (this.isContextual(127)) {
        const _ = this.tsParseInterfaceDeclaration(this.startNode());
        if (_)
          return _;
      }
      return super.parseStatementContent(p, b);
    }
    parseAccessModifier() {
      return this.tsParseModifier(["public", "protected", "private"]);
    }
    tsHasSomeModifiers(p, b) {
      return b.some((_) => rl(_) ? p.accessibility === _ : !!p[_]);
    }
    tsIsStartOfStaticBlocks() {
      return this.isContextual(104) && this.lookaheadCharCode() === 123;
    }
    parseClassMember(p, b, _) {
      const H = ["declare", "private", "public", "protected", "override", "abstract", "readonly", "static"];
      this.tsParseModifiers({
        allowedModifiers: H,
        disallowedModifiers: ["in", "out"],
        stopOnStartOfClassStaticBlock: !0,
        errorTemplate: Ft.InvalidModifierOnTypeParameterPositions
      }, b);
      const ee = () => {
        this.tsIsStartOfStaticBlocks() ? (this.next(), this.next(), this.tsHasSomeModifiers(b, H) && this.raise(Ft.StaticBlockCannotHaveModifier, {
          at: this.state.curPosition()
        }), super.parseClassStaticBlock(p, b)) : this.parseClassMemberWithIsStatic(p, b, _, !!b.static);
      };
      b.declare ? this.tsInAmbientContext(ee) : ee();
    }
    parseClassMemberWithIsStatic(p, b, _, H) {
      const ee = this.tsTryParseIndexSignature(b);
      if (ee) {
        p.body.push(ee), b.abstract && this.raise(Ft.IndexSignatureHasAbstract, {
          at: b
        }), b.accessibility && this.raise(Ft.IndexSignatureHasAccessibility, {
          at: b,
          modifier: b.accessibility
        }), b.declare && this.raise(Ft.IndexSignatureHasDeclare, {
          at: b
        }), b.override && this.raise(Ft.IndexSignatureHasOverride, {
          at: b
        });
        return;
      }
      !this.state.inAbstractClass && b.abstract && this.raise(Ft.NonAbstractClassHasAbstractMethod, {
        at: b
      }), b.override && (_.hadSuperClass || this.raise(Ft.OverrideNotInSubClass, {
        at: b
      })), super.parseClassMemberWithIsStatic(p, b, _, H);
    }
    parsePostMemberNameModifiers(p) {
      this.eat(17) && (p.optional = !0), p.readonly && this.match(10) && this.raise(Ft.ClassMethodHasReadonly, {
        at: p
      }), p.declare && this.match(10) && this.raise(Ft.ClassMethodHasDeclare, {
        at: p
      });
    }
    parseExpressionStatement(p, b, _) {
      return (b.type === "Identifier" ? this.tsParseExpressionStatement(p, b, _) : void 0) || super.parseExpressionStatement(p, b, _);
    }
    shouldParseExportDeclaration() {
      return this.tsIsDeclarationStart() ? !0 : super.shouldParseExportDeclaration();
    }
    parseConditional(p, b, _) {
      if (!this.state.maybeInArrowParameters || !this.match(17))
        return super.parseConditional(p, b, _);
      const H = this.tryParse(() => super.parseConditional(p, b));
      return H.node ? (H.error && (this.state = H.failState), H.node) : (H.error && super.setOptionalParametersError(_, H.error), p);
    }
    parseParenItem(p, b) {
      if (p = super.parseParenItem(p, b), this.eat(17) && (p.optional = !0, this.resetEndLocation(p)), this.match(14)) {
        const _ = this.startNodeAt(b);
        return _.expression = p, _.typeAnnotation = this.tsParseTypeAnnotation(), this.finishNode(_, "TSTypeCastExpression");
      }
      return p;
    }
    parseExportDeclaration(p) {
      if (!this.state.isAmbientContext && this.isContextual(123))
        return this.tsInAmbientContext(() => this.parseExportDeclaration(p));
      const b = this.state.startLoc, _ = this.eatContextual(123);
      if (_ && (this.isContextual(123) || !this.shouldParseExportDeclaration()))
        throw this.raise(Ft.ExpectedAmbientAfterExportDeclare, {
          at: this.state.startLoc
        });
      const ee = ye(this.state.type) && this.tsTryParseExportDeclaration() || super.parseExportDeclaration(p);
      return ee ? ((ee.type === "TSInterfaceDeclaration" || ee.type === "TSTypeAliasDeclaration" || _) && (p.exportKind = "type"), _ && (this.resetStartLocation(ee, b), ee.declare = !0), ee) : null;
    }
    parseClassId(p, b, _, H) {
      if ((!b || _) && this.isContextual(111))
        return;
      super.parseClassId(p, b, _, p.declare ? Fo : Mo);
      const ee = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);
      ee && (p.typeParameters = ee);
    }
    parseClassPropertyAnnotation(p) {
      p.optional || (this.eat(35) ? p.definite = !0 : this.eat(17) && (p.optional = !0));
      const b = this.tsTryParseTypeAnnotation();
      b && (p.typeAnnotation = b);
    }
    parseClassProperty(p) {
      if (this.parseClassPropertyAnnotation(p), this.state.isAmbientContext && !(p.readonly && !p.typeAnnotation) && this.match(29) && this.raise(Ft.DeclareClassFieldHasInitializer, {
        at: this.state.startLoc
      }), p.abstract && this.match(29)) {
        const {
          key: b
        } = p;
        this.raise(Ft.AbstractPropertyHasInitializer, {
          at: this.state.startLoc,
          propertyName: b.type === "Identifier" && !p.computed ? b.name : "[".concat(this.input.slice(b.start, b.end), "]")
        });
      }
      return super.parseClassProperty(p);
    }
    parseClassPrivateProperty(p) {
      return p.abstract && this.raise(Ft.PrivateElementHasAbstract, {
        at: p
      }), p.accessibility && this.raise(Ft.PrivateElementHasAccessibility, {
        at: p,
        modifier: p.accessibility
      }), this.parseClassPropertyAnnotation(p), super.parseClassPrivateProperty(p);
    }
    parseClassAccessorProperty(p) {
      return this.parseClassPropertyAnnotation(p), p.optional && this.raise(Ft.AccessorCannotBeOptional, {
        at: p
      }), super.parseClassAccessorProperty(p);
    }
    pushClassMethod(p, b, _, H, ee, de) {
      const Ge = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      Ge && ee && this.raise(Ft.ConstructorHasTypeParameters, {
        at: Ge
      });
      const {
        declare: Ye = !1,
        kind: Je
      } = b;
      Ye && (Je === "get" || Je === "set") && this.raise(Ft.DeclareAccessor, {
        at: b,
        kind: Je
      }), Ge && (b.typeParameters = Ge), super.pushClassMethod(p, b, _, H, ee, de);
    }
    pushClassPrivateMethod(p, b, _, H) {
      const ee = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      ee && (b.typeParameters = ee), super.pushClassPrivateMethod(p, b, _, H);
    }
    declareClassPrivateMethodInScope(p, b) {
      p.type !== "TSDeclareMethod" && (p.type === "MethodDefinition" && !p.value.body || super.declareClassPrivateMethodInScope(p, b));
    }
    parseClassSuper(p) {
      super.parseClassSuper(p), p.superClass && (this.match(47) || this.match(51)) && (p.superTypeParameters = this.tsParseTypeArgumentsInExpression()), this.eatContextual(111) && (p.implements = this.tsParseHeritageClause("implements"));
    }
    parseObjPropValue(p, b, _, H, ee, de, Ge) {
      const Ye = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      return Ye && (p.typeParameters = Ye), super.parseObjPropValue(p, b, _, H, ee, de, Ge);
    }
    parseFunctionParams(p, b) {
      const _ = this.tsTryParseTypeParameters(this.tsParseConstModifier);
      _ && (p.typeParameters = _), super.parseFunctionParams(p, b);
    }
    parseVarId(p, b) {
      super.parseVarId(p, b), p.id.type === "Identifier" && !this.hasPrecedingLineBreak() && this.eat(35) && (p.definite = !0);
      const _ = this.tsTryParseTypeAnnotation();
      _ && (p.id.typeAnnotation = _, this.resetEndLocation(p.id));
    }
    parseAsyncArrowFromCallExpression(p, b) {
      return this.match(14) && (p.returnType = this.tsParseTypeAnnotation()), super.parseAsyncArrowFromCallExpression(p, b);
    }
    parseMaybeAssign(p, b) {
      var _, H, ee, de, Ge;
      let Ye, Je, gt;
      if (this.hasPlugin("jsx") && (this.match(140) || this.match(47))) {
        if (Ye = this.state.clone(), Je = this.tryParse(() => super.parseMaybeAssign(p, b), Ye), !Je.error)
          return Je.node;
        const {
          context: Ht
        } = this.state, zi = Ht[Ht.length - 1];
        (zi === A.j_oTag || zi === A.j_expr) && Ht.pop();
      }
      if (!((_ = Je) != null && _.error) && !this.match(47))
        return super.parseMaybeAssign(p, b);
      (!Ye || Ye === this.state) && (Ye = this.state.clone());
      let It;
      const _t = this.tryParse((Ht) => {
        var zi, Li;
        It = this.tsParseTypeParameters(this.tsParseConstModifier);
        const Mi = super.parseMaybeAssign(p, b);
        return (Mi.type !== "ArrowFunctionExpression" || (zi = Mi.extra) != null && zi.parenthesized) && Ht(), ((Li = It) == null ? void 0 : Li.params.length) !== 0 && this.resetStartLocationFromNode(Mi, It), Mi.typeParameters = It, Mi;
      }, Ye);
      if (!_t.error && !_t.aborted)
        return It && this.reportReservedArrowTypeParam(It), _t.node;
      if (!Je && (tl(!this.hasPlugin("jsx")), gt = this.tryParse(() => super.parseMaybeAssign(p, b), Ye), !gt.error))
        return gt.node;
      if ((H = Je) != null && H.node)
        return this.state = Je.failState, Je.node;
      if (_t.node)
        return this.state = _t.failState, It && this.reportReservedArrowTypeParam(It), _t.node;
      if ((ee = gt) != null && ee.node)
        return this.state = gt.failState, gt.node;
      throw ((de = Je) == null ? void 0 : de.error) || _t.error || ((Ge = gt) == null ? void 0 : Ge.error);
    }
    reportReservedArrowTypeParam(p) {
      var b;
      p.params.length === 1 && !p.params[0].constraint && !((b = p.extra) != null && b.trailingComma) && this.getPluginOption("typescript", "disallowAmbiguousJSXLike") && this.raise(Ft.ReservedArrowTypeParam, {
        at: p
      });
    }
    parseMaybeUnary(p, b) {
      return !this.hasPlugin("jsx") && this.match(47) ? this.tsParseTypeAssertion() : super.parseMaybeUnary(p, b);
    }
    parseArrow(p) {
      if (this.match(14)) {
        const b = this.tryParse((_) => {
          const H = this.tsParseTypeOrTypePredicateAnnotation(14);
          return (this.canInsertSemicolon() || !this.match(19)) && _(), H;
        });
        if (b.aborted)
          return;
        b.thrown || (b.error && (this.state = b.failState), p.returnType = b.node);
      }
      return super.parseArrow(p);
    }
    parseAssignableListItemTypes(p, b) {
      if (!(b & 2))
        return p;
      this.eat(17) && (p.optional = !0);
      const _ = this.tsTryParseTypeAnnotation();
      return _ && (p.typeAnnotation = _), this.resetEndLocation(p), p;
    }
    isAssignable(p, b) {
      switch (p.type) {
        case "TSTypeCastExpression":
          return this.isAssignable(p.expression, b);
        case "TSParameterProperty":
          return !0;
        default:
          return super.isAssignable(p, b);
      }
    }
    toAssignable(p, b = !1) {
      switch (p.type) {
        case "ParenthesizedExpression":
          this.toAssignableParenthesizedExpression(p, b);
          break;
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSNonNullExpression":
        case "TSTypeAssertion":
          b ? this.expressionScope.recordArrowParameterBindingError(Ft.UnexpectedTypeCastInParameter, {
            at: p
          }) : this.raise(Ft.UnexpectedTypeCastInParameter, {
            at: p
          }), this.toAssignable(p.expression, b);
          break;
        case "AssignmentExpression":
          !b && p.left.type === "TSTypeCastExpression" && (p.left = this.typeCastToParameter(p.left));
        default:
          super.toAssignable(p, b);
      }
    }
    toAssignableParenthesizedExpression(p, b) {
      switch (p.expression.type) {
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSNonNullExpression":
        case "TSTypeAssertion":
        case "ParenthesizedExpression":
          this.toAssignable(p.expression, b);
          break;
        default:
          super.toAssignable(p, b);
      }
    }
    checkToRestConversion(p, b) {
      switch (p.type) {
        case "TSAsExpression":
        case "TSSatisfiesExpression":
        case "TSTypeAssertion":
        case "TSNonNullExpression":
          this.checkToRestConversion(p.expression, !1);
          break;
        default:
          super.checkToRestConversion(p, b);
      }
    }
    isValidLVal(p, b, _) {
      return Yu({
        TSTypeCastExpression: !0,
        TSParameterProperty: "parameter",
        TSNonNullExpression: "expression",
        TSAsExpression: (_ !== Zn || !b) && ["expression", !0],
        TSSatisfiesExpression: (_ !== Zn || !b) && ["expression", !0],
        TSTypeAssertion: (_ !== Zn || !b) && ["expression", !0]
      }, p) || super.isValidLVal(p, b, _);
    }
    parseBindingAtom() {
      return this.state.type === 78 ? this.parseIdentifier(!0) : super.parseBindingAtom();
    }
    parseMaybeDecoratorArguments(p) {
      if (this.match(47) || this.match(51)) {
        const b = this.tsParseTypeArgumentsInExpression();
        if (this.match(10)) {
          const _ = super.parseMaybeDecoratorArguments(p);
          return _.typeParameters = b, _;
        }
        this.unexpected(null, 10);
      }
      return super.parseMaybeDecoratorArguments(p);
    }
    checkCommaAfterRest(p) {
      return this.state.isAmbientContext && this.match(12) && this.lookaheadCharCode() === p ? (this.next(), !1) : super.checkCommaAfterRest(p);
    }
    isClassMethod() {
      return this.match(47) || super.isClassMethod();
    }
    isClassProperty() {
      return this.match(35) || this.match(14) || super.isClassProperty();
    }
    parseMaybeDefault(p, b) {
      const _ = super.parseMaybeDefault(p, b);
      return _.type === "AssignmentPattern" && _.typeAnnotation && _.right.start < _.typeAnnotation.start && this.raise(Ft.TypeAnnotationAfterAssign, {
        at: _.typeAnnotation
      }), _;
    }
    getTokenFromCode(p) {
      if (this.state.inType) {
        if (p === 62) {
          this.finishOp(48, 1);
          return;
        }
        if (p === 60) {
          this.finishOp(47, 1);
          return;
        }
      }
      super.getTokenFromCode(p);
    }
    reScan_lt_gt() {
      const {
        type: p
      } = this.state;
      p === 47 ? (this.state.pos -= 1, this.readToken_lt()) : p === 48 && (this.state.pos -= 1, this.readToken_gt());
    }
    reScan_lt() {
      const {
        type: p
      } = this.state;
      return p === 51 ? (this.state.pos -= 2, this.finishOp(47, 1), 47) : p;
    }
    toAssignableList(p, b, _) {
      for (let H = 0; H < p.length; H++) {
        const ee = p[H];
        (ee == null ? void 0 : ee.type) === "TSTypeCastExpression" && (p[H] = this.typeCastToParameter(ee));
      }
      super.toAssignableList(p, b, _);
    }
    typeCastToParameter(p) {
      return p.expression.typeAnnotation = p.typeAnnotation, this.resetEndLocation(p.expression, p.typeAnnotation.loc.end), p.expression;
    }
    shouldParseArrow(p) {
      return this.match(14) ? p.every((b) => this.isAssignable(b, !0)) : super.shouldParseArrow(p);
    }
    shouldParseAsyncArrow() {
      return this.match(14) || super.shouldParseAsyncArrow();
    }
    canHaveLeadingDecorator() {
      return super.canHaveLeadingDecorator() || this.isAbstractClass();
    }
    jsxParseOpeningElementAfterName(p) {
      if (this.match(47) || this.match(51)) {
        const b = this.tsTryParseAndCatch(() => this.tsParseTypeArgumentsInExpression());
        b && (p.typeParameters = b);
      }
      return super.jsxParseOpeningElementAfterName(p);
    }
    getGetterSetterExpectedParamCount(p) {
      const b = super.getGetterSetterExpectedParamCount(p), H = this.getObjectOrClassMethodParams(p)[0];
      return H && this.isThisParam(H) ? b + 1 : b;
    }
    parseCatchClauseParam() {
      const p = super.parseCatchClauseParam(), b = this.tsTryParseTypeAnnotation();
      return b && (p.typeAnnotation = b, this.resetEndLocation(p)), p;
    }
    tsInAmbientContext(p) {
      const b = this.state.isAmbientContext;
      this.state.isAmbientContext = !0;
      try {
        return p();
      } finally {
        this.state.isAmbientContext = b;
      }
    }
    parseClass(p, b, _) {
      const H = this.state.inAbstractClass;
      this.state.inAbstractClass = !!p.abstract;
      try {
        return super.parseClass(p, b, _);
      } finally {
        this.state.inAbstractClass = H;
      }
    }
    tsParseAbstractDeclaration(p, b) {
      if (this.match(80))
        return p.abstract = !0, this.maybeTakeDecorators(b, this.parseClass(p, !0, !1));
      if (this.isContextual(127)) {
        if (!this.hasFollowingLineBreak())
          return p.abstract = !0, this.raise(Ft.NonClassMethodPropertyHasAbstractModifer, {
            at: p
          }), this.tsParseInterfaceDeclaration(p);
      } else
        this.unexpected(null, 80);
    }
    parseMethod(p, b, _, H, ee, de, Ge) {
      const Ye = super.parseMethod(p, b, _, H, ee, de, Ge);
      if (Ye.abstract && (this.hasPlugin("estree") ? !!Ye.value.body : !!Ye.body)) {
        const {
          key: gt
        } = Ye;
        this.raise(Ft.AbstractMethodHasImplementation, {
          at: Ye,
          methodName: gt.type === "Identifier" && !Ye.computed ? gt.name : "[".concat(this.input.slice(gt.start, gt.end), "]")
        });
      }
      return Ye;
    }
    tsParseTypeParameterName() {
      return this.parseIdentifier().name;
    }
    shouldParseAsAmbientContext() {
      return !!this.getPluginOption("typescript", "dts");
    }
    parse() {
      return this.shouldParseAsAmbientContext() && (this.state.isAmbientContext = !0), super.parse();
    }
    getExpression() {
      return this.shouldParseAsAmbientContext() && (this.state.isAmbientContext = !0), super.getExpression();
    }
    parseExportSpecifier(p, b, _, H) {
      return !b && H ? (this.parseTypeOnlyImportExportSpecifier(p, !1, _), this.finishNode(p, "ExportSpecifier")) : (p.exportKind = "value", super.parseExportSpecifier(p, b, _, H));
    }
    parseImportSpecifier(p, b, _, H, ee) {
      return !b && H ? (this.parseTypeOnlyImportExportSpecifier(p, !0, _), this.finishNode(p, "ImportSpecifier")) : (p.importKind = "value", super.parseImportSpecifier(p, b, _, H, _ ? jo : Us));
    }
    parseTypeOnlyImportExportSpecifier(p, b, _) {
      const H = b ? "imported" : "local", ee = b ? "local" : "exported";
      let de = p[H], Ge, Ye = !1, Je = !0;
      const gt = de.loc.start;
      if (this.isContextual(93)) {
        const _t = this.parseIdentifier();
        if (this.isContextual(93)) {
          const Ht = this.parseIdentifier();
          Z(this.state.type) ? (Ye = !0, de = _t, Ge = b ? this.parseIdentifier() : this.parseModuleExportName(), Je = !1) : (Ge = Ht, Je = !1);
        } else
          Z(this.state.type) ? (Je = !1, Ge = b ? this.parseIdentifier() : this.parseModuleExportName()) : (Ye = !0, de = _t);
      } else
        Z(this.state.type) && (Ye = !0, b ? (de = this.parseIdentifier(!0), this.isContextual(93) || this.checkReservedWord(de.name, de.loc.start, !0, !0)) : de = this.parseModuleExportName());
      Ye && _ && this.raise(b ? Ft.TypeModifierIsUsedInTypeImports : Ft.TypeModifierIsUsedInTypeExports, {
        at: gt
      }), p[H] = de, p[ee] = Ge;
      const It = b ? "importKind" : "exportKind";
      p[It] = Ye ? "type" : "value", Je && this.eatContextual(93) && (p[ee] = b ? this.parseIdentifier() : this.parseModuleExportName()), p[ee] || (p[ee] = Gn(p[H])), b && this.checkIdentifier(p[ee], Ye ? jo : Us);
    }
  };
  function ec(B) {
    if (B.type !== "MemberExpression")
      return !1;
    const {
      computed: d,
      property: p
    } = B;
    return d && p.type !== "StringLiteral" && (p.type !== "TemplateLiteral" || p.expressions.length > 0) ? !1 : nl(B.object);
  }
  function tc(B, d) {
    var p;
    const {
      type: b
    } = B;
    if ((p = B.extra) != null && p.parenthesized)
      return !1;
    if (d) {
      if (b === "Literal") {
        const {
          value: _
        } = B;
        if (typeof _ == "string" || typeof _ == "boolean")
          return !0;
      }
    } else if (b === "StringLiteral" || b === "BooleanLiteral")
      return !0;
    return !!(il(B, d) || rc(B, d) || b === "TemplateLiteral" && B.expressions.length === 0 || ec(B));
  }
  function il(B, d) {
    return d ? B.type === "Literal" && (typeof B.value == "number" || "bigint" in B) : B.type === "NumericLiteral" || B.type === "BigIntLiteral";
  }
  function rc(B, d) {
    if (B.type === "UnaryExpression") {
      const {
        operator: p,
        argument: b
      } = B;
      if (p === "-" && il(b, d))
        return !0;
    }
    return !1;
  }
  function nl(B) {
    return B.type === "Identifier" ? !0 : B.type !== "MemberExpression" || B.computed ? !1 : nl(B.object);
  }
  const sl = T(wne || (wne = at(["placeholders"])))({
    ClassNameIsRequired: "A class name is required.",
    UnexpectedSpace: "Unexpected space in placeholder."
  });
  var ic = (B) => class extends B {
    parsePlaceholder(p) {
      if (this.match(142)) {
        const b = this.startNode();
        return this.next(), this.assertNoSpace(), b.name = super.parseIdentifier(!0), this.assertNoSpace(), this.expect(142), this.finishPlaceholder(b, p);
      }
    }
    finishPlaceholder(p, b) {
      const _ = !!(p.expectedNode && p.type === "Placeholder");
      return p.expectedNode = b, _ ? p : this.finishNode(p, "Placeholder");
    }
    getTokenFromCode(p) {
      p === 37 && this.input.charCodeAt(this.state.pos + 1) === 37 ? this.finishOp(142, 2) : super.getTokenFromCode(p);
    }
    parseExprAtom(p) {
      return this.parsePlaceholder("Expression") || super.parseExprAtom(p);
    }
    parseIdentifier(p) {
      return this.parsePlaceholder("Identifier") || super.parseIdentifier(p);
    }
    checkReservedWord(p, b, _, H) {
      p !== void 0 && super.checkReservedWord(p, b, _, H);
    }
    parseBindingAtom() {
      return this.parsePlaceholder("Pattern") || super.parseBindingAtom();
    }
    isValidLVal(p, b, _) {
      return p === "Placeholder" || super.isValidLVal(p, b, _);
    }
    toAssignable(p, b) {
      p && p.type === "Placeholder" && p.expectedNode === "Expression" ? p.expectedNode = "Pattern" : super.toAssignable(p, b);
    }
    chStartsBindingIdentifier(p, b) {
      return !!(super.chStartsBindingIdentifier(p, b) || this.lookahead().type === 142);
    }
    verifyBreakContinue(p, b) {
      p.label && p.label.type === "Placeholder" || super.verifyBreakContinue(p, b);
    }
    parseExpressionStatement(p, b) {
      if (b.type !== "Placeholder" || b.extra && b.extra.parenthesized)
        return super.parseExpressionStatement(p, b);
      if (this.match(14)) {
        const _ = p;
        return _.label = this.finishPlaceholder(b, "Identifier"), this.next(), _.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration(), this.finishNode(_, "LabeledStatement");
      }
      return this.semicolon(), p.name = b.name, this.finishPlaceholder(p, "Statement");
    }
    parseBlock(p, b, _) {
      return this.parsePlaceholder("BlockStatement") || super.parseBlock(p, b, _);
    }
    parseFunctionId(p) {
      return this.parsePlaceholder("Identifier") || super.parseFunctionId(p);
    }
    parseClass(p, b, _) {
      const H = b ? "ClassDeclaration" : "ClassExpression";
      this.next();
      const ee = this.state.strict, de = this.parsePlaceholder("Identifier");
      if (de)
        if (this.match(81) || this.match(142) || this.match(5))
          p.id = de;
        else {
          if (_ || !b)
            return p.id = null, p.body = this.finishPlaceholder(de, "ClassBody"), this.finishNode(p, H);
          throw this.raise(sl.ClassNameIsRequired, {
            at: this.state.startLoc
          });
        }
      else
        this.parseClassId(p, b, _);
      return super.parseClassSuper(p), p.body = this.parsePlaceholder("ClassBody") || super.parseClassBody(!!p.superClass, ee), this.finishNode(p, H);
    }
    parseExport(p, b) {
      const _ = this.parsePlaceholder("Identifier");
      if (!_)
        return super.parseExport(p, b);
      if (!this.isContextual(97) && !this.match(12))
        return p.specifiers = [], p.source = null, p.declaration = this.finishPlaceholder(_, "Declaration"), this.finishNode(p, "ExportNamedDeclaration");
      this.expectPlugin("exportDefaultFrom");
      const H = this.startNode();
      return H.exported = _, p.specifiers = [this.finishNode(H, "ExportDefaultSpecifier")], super.parseExport(p, b);
    }
    isExportDefaultSpecifier() {
      if (this.match(65)) {
        const p = this.nextTokenStart();
        if (this.isUnparsedContextual(p, "from") && this.input.startsWith(Te(142), this.nextTokenStartSince(p + 4)))
          return !0;
      }
      return super.isExportDefaultSpecifier();
    }
    maybeParseExportDefaultSpecifier(p, b) {
      var _;
      return (_ = p.specifiers) != null && _.length ? !0 : super.maybeParseExportDefaultSpecifier(p, b);
    }
    checkExport(p) {
      const {
        specifiers: b
      } = p;
      b != null && b.length && (p.specifiers = b.filter((_) => _.exported.type === "Placeholder")), super.checkExport(p), p.specifiers = b;
    }
    parseImport(p) {
      const b = this.parsePlaceholder("Identifier");
      if (!b)
        return super.parseImport(p);
      if (p.specifiers = [], !this.isContextual(97) && !this.match(12))
        return p.source = this.finishPlaceholder(b, "StringLiteral"), this.semicolon(), this.finishNode(p, "ImportDeclaration");
      const _ = this.startNodeAtNode(b);
      return _.local = b, p.specifiers.push(this.finishNode(_, "ImportDefaultSpecifier")), this.eat(12) && (this.maybeParseStarImportSpecifier(p) || this.parseNamedImportSpecifiers(p)), this.expectContextual(97), p.source = this.parseImportSource(), this.semicolon(), this.finishNode(p, "ImportDeclaration");
    }
    parseImportSource() {
      return this.parsePlaceholder("StringLiteral") || super.parseImportSource();
    }
    assertNoSpace() {
      this.state.start > this.state.lastTokEndLoc.index && this.raise(sl.UnexpectedSpace, {
        at: this.state.lastTokEndLoc
      });
    }
  }, nc = (B) => class extends B {
    parseV8Intrinsic() {
      if (this.match(54)) {
        const p = this.state.startLoc, b = this.startNode();
        if (this.next(), ye(this.state.type)) {
          const _ = this.parseIdentifierName(), H = this.createIdentifier(b, _);
          if (H.type = "V8IntrinsicIdentifier", this.match(10))
            return H;
        }
        this.unexpected(p);
      }
    }
    parseExprAtom(p) {
      return this.parseV8Intrinsic() || super.parseExprAtom(p);
    }
  };
  function Di(B, d) {
    const [p, b] = typeof d == "string" ? [d, {}] : d, _ = Object.keys(b), H = _.length === 0;
    return B.some((ee) => {
      if (typeof ee == "string")
        return H && ee === p;
      {
        const [de, Ge] = ee;
        if (de !== p)
          return !1;
        for (const Ye of _)
          if (Ge[Ye] !== b[Ye])
            return !1;
        return !0;
      }
    });
  }
  function hs(B, d, p) {
    const b = B.find((_) => Array.isArray(_) ? _[0] === d : _ === d);
    return b && Array.isArray(b) && b.length > 1 ? b[1][p] : null;
  }
  const al = ["minimal", "fsharp", "hack", "smart"], ol = ["^^", "@@", "^", "%", "#"], ll = ["hash", "bar"];
  function sc(B) {
    if (Di(B, "decorators")) {
      if (Di(B, "decorators-legacy"))
        throw new Error("Cannot use the decorators and decorators-legacy plugin together");
      const d = hs(B, "decorators", "decoratorsBeforeExport");
      if (d != null && typeof d != "boolean")
        throw new Error("'decoratorsBeforeExport' must be a boolean, if specified.");
      const p = hs(B, "decorators", "allowCallParenthesized");
      if (p != null && typeof p != "boolean")
        throw new Error("'allowCallParenthesized' must be a boolean.");
    }
    if (Di(B, "flow") && Di(B, "typescript"))
      throw new Error("Cannot combine flow and typescript plugins.");
    if (Di(B, "placeholders") && Di(B, "v8intrinsic"))
      throw new Error("Cannot combine placeholders and v8intrinsic plugins.");
    if (Di(B, "pipelineOperator")) {
      const d = hs(B, "pipelineOperator", "proposal");
      if (!al.includes(d)) {
        const b = al.map((_) => '"'.concat(_, '"')).join(", ");
        throw new Error('"pipelineOperator" requires "proposal" option whose value must be one of: '.concat(b, "."));
      }
      const p = Di(B, ["recordAndTuple", {
        syntaxType: "hash"
      }]);
      if (d === "hack") {
        if (Di(B, "placeholders"))
          throw new Error("Cannot combine placeholders plugin and Hack-style pipes.");
        if (Di(B, "v8intrinsic"))
          throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes.");
        const b = hs(B, "pipelineOperator", "topicToken");
        if (!ol.includes(b)) {
          const _ = ol.map((H) => '"'.concat(H, '"')).join(", ");
          throw new Error('"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: '.concat(_, "."));
        }
        if (b === "#" && p)
          throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "hack", topicToken: "#" }]` and `["recordAndtuple", { syntaxType: "hash"}]`.');
      } else if (d === "smart" && p)
        throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "smart" }]` and `["recordAndtuple", { syntaxType: "hash"}]`.');
    }
    if (Di(B, "moduleAttributes")) {
      if (Di(B, "importAssertions") || Di(B, "importAttributes"))
        throw new Error("Cannot combine importAssertions, importAttributes and moduleAttributes plugins.");
      if (hs(B, "moduleAttributes", "version") !== "may-2020")
        throw new Error("The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is 'may-2020'.");
    }
    if (Di(B, "importAssertions") && Di(B, "importAttributes"))
      throw new Error("Cannot combine importAssertions and importAttributes plugins.");
    if (Di(B, "recordAndTuple") && hs(B, "recordAndTuple", "syntaxType") != null && !ll.includes(hs(B, "recordAndTuple", "syntaxType")))
      throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: " + ll.map((d) => "'".concat(d, "'")).join(", "));
    if (Di(B, "asyncDoExpressions") && !Di(B, "doExpressions")) {
      const d = new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.");
      throw d.missingPlugins = "doExpressions", d;
    }
  }
  const ul = {
    estree: D,
    jsx: Wu,
    flow: qu,
    typescript: Zu,
    v8intrinsic: nc,
    placeholders: ic
  }, ac = Object.keys(ul), cl = {
    sourceType: "script",
    sourceFilename: void 0,
    startColumn: 0,
    startLine: 1,
    allowAwaitOutsideFunction: !1,
    allowReturnOutsideFunction: !1,
    allowNewTargetOutsideFunction: !1,
    allowImportExportEverywhere: !1,
    allowSuperOutsideMethod: !1,
    allowUndeclaredExports: !1,
    plugins: [],
    strictMode: null,
    ranges: !1,
    tokens: !1,
    createParenthesizedExpressions: !1,
    errorRecovery: !1,
    attachComment: !0,
    annexB: !0
  };
  function oc(B) {
    if (B && B.annexB != null && B.annexB !== !1)
      throw new Error("The `annexB` option can only be set to `false`.");
    const d = {};
    for (const p of Object.keys(cl))
      d[p] = B && B[p] != null ? B[p] : cl[p];
    return d;
  }
  class lc extends Gu {
    checkProto(d, p, b, _) {
      if (d.type === "SpreadElement" || this.isObjectMethod(d) || d.computed || d.shorthand)
        return;
      const H = d.key;
      if ((H.type === "Identifier" ? H.name : H.value) === "__proto__") {
        if (p) {
          this.raise(S.RecordNoProto, {
            at: H
          });
          return;
        }
        b.used && (_ ? _.doubleProtoLoc === null && (_.doubleProtoLoc = H.loc.start) : this.raise(S.DuplicateProto, {
          at: H
        })), b.used = !0;
      }
    }
    shouldExitDescending(d, p) {
      return d.type === "ArrowFunctionExpression" && d.start === p;
    }
    getExpression() {
      this.enterInitialScopes(), this.nextToken();
      const d = this.parseExpression();
      return this.match(137) || this.unexpected(), this.finalizeRemainingComments(), d.comments = this.state.comments, d.errors = this.state.errors, this.options.tokens && (d.tokens = this.tokens), d;
    }
    parseExpression(d, p) {
      return d ? this.disallowInAnd(() => this.parseExpressionBase(p)) : this.allowInAnd(() => this.parseExpressionBase(p));
    }
    parseExpressionBase(d) {
      const p = this.state.startLoc, b = this.parseMaybeAssign(d);
      if (this.match(12)) {
        const _ = this.startNodeAt(p);
        for (_.expressions = [b]; this.eat(12); )
          _.expressions.push(this.parseMaybeAssign(d));
        return this.toReferencedList(_.expressions), this.finishNode(_, "SequenceExpression");
      }
      return b;
    }
    parseMaybeAssignDisallowIn(d, p) {
      return this.disallowInAnd(() => this.parseMaybeAssign(d, p));
    }
    parseMaybeAssignAllowIn(d, p) {
      return this.allowInAnd(() => this.parseMaybeAssign(d, p));
    }
    setOptionalParametersError(d, p) {
      var b;
      d.optionalParametersLoc = (b = p == null ? void 0 : p.loc) != null ? b : this.state.startLoc;
    }
    parseMaybeAssign(d, p) {
      const b = this.state.startLoc;
      if (this.isContextual(106) && this.prodParam.hasYield) {
        let de = this.parseYield();
        return p && (de = p.call(this, de, b)), de;
      }
      let _;
      d ? _ = !1 : (d = new ka(), _ = !0);
      const {
        type: H
      } = this.state;
      (H === 10 || ye(H)) && (this.state.potentialArrowAt = this.state.start);
      let ee = this.parseMaybeConditional(d);
      if (p && (ee = p.call(this, ee, b)), Pe(this.state.type)) {
        const de = this.startNodeAt(b), Ge = this.state.value;
        if (de.operator = Ge, this.match(29)) {
          this.toAssignable(ee, !0), de.left = ee;
          const Ye = b.index;
          d.doubleProtoLoc != null && d.doubleProtoLoc.index >= Ye && (d.doubleProtoLoc = null), d.shorthandAssignLoc != null && d.shorthandAssignLoc.index >= Ye && (d.shorthandAssignLoc = null), d.privateKeyLoc != null && d.privateKeyLoc.index >= Ye && (this.checkDestructuringPrivate(d), d.privateKeyLoc = null);
        } else
          de.left = ee;
        return this.next(), de.right = this.parseMaybeAssign(), this.checkLVal(ee, {
          in: this.finishNode(de, "AssignmentExpression")
        }), de;
      } else
        _ && this.checkExpressionErrors(d, !0);
      return ee;
    }
    parseMaybeConditional(d) {
      const p = this.state.startLoc, b = this.state.potentialArrowAt, _ = this.parseExprOps(d);
      return this.shouldExitDescending(_, b) ? _ : this.parseConditional(_, p, d);
    }
    parseConditional(d, p, b) {
      if (this.eat(17)) {
        const _ = this.startNodeAt(p);
        return _.test = d, _.consequent = this.parseMaybeAssignAllowIn(), this.expect(14), _.alternate = this.parseMaybeAssign(), this.finishNode(_, "ConditionalExpression");
      }
      return d;
    }
    parseMaybeUnaryOrPrivate(d) {
      return this.match(136) ? this.parsePrivateName() : this.parseMaybeUnary(d);
    }
    parseExprOps(d) {
      const p = this.state.startLoc, b = this.state.potentialArrowAt, _ = this.parseMaybeUnaryOrPrivate(d);
      return this.shouldExitDescending(_, b) ? _ : this.parseExprOp(_, p, -1);
    }
    parseExprOp(d, p, b) {
      if (this.isPrivateName(d)) {
        const H = this.getPrivateNameSV(d);
        (b >= ze(58) || !this.prodParam.hasIn || !this.match(58)) && this.raise(S.PrivateInExpectedIn, {
          at: d,
          identifierName: H
        }), this.classScope.usePrivateName(H, d.loc.start);
      }
      const _ = this.state.type;
      if (Se(_) && (this.prodParam.hasIn || !this.match(58))) {
        let H = ze(_);
        if (H > b) {
          if (_ === 39) {
            if (this.expectPlugin("pipelineOperator"), this.state.inFSharpPipelineDirectBody)
              return d;
            this.checkPipelineAtInfixOperator(d, p);
          }
          const ee = this.startNodeAt(p);
          ee.left = d, ee.operator = this.state.value;
          const de = _ === 41 || _ === 42, Ge = _ === 40;
          if (Ge && (H = ze(42)), this.next(), _ === 39 && this.hasPlugin(["pipelineOperator", {
            proposal: "minimal"
          }]) && this.state.type === 96 && this.prodParam.hasAwait)
            throw this.raise(S.UnexpectedAwaitAfterPipelineBody, {
              at: this.state.startLoc
            });
          ee.right = this.parseExprOpRightExpr(_, H);
          const Ye = this.finishNode(ee, de || Ge ? "LogicalExpression" : "BinaryExpression"), Je = this.state.type;
          if (Ge && (Je === 41 || Je === 42) || de && Je === 40)
            throw this.raise(S.MixingCoalesceWithLogical, {
              at: this.state.startLoc
            });
          return this.parseExprOp(Ye, p, b);
        }
      }
      return d;
    }
    parseExprOpRightExpr(d, p) {
      const b = this.state.startLoc;
      switch (d) {
        case 39:
          switch (this.getPluginOption("pipelineOperator", "proposal")) {
            case "hack":
              return this.withTopicBindingContext(() => this.parseHackPipeBody());
            case "smart":
              return this.withTopicBindingContext(() => {
                if (this.prodParam.hasYield && this.isContextual(106))
                  throw this.raise(S.PipeBodyIsTighter, {
                    at: this.state.startLoc
                  });
                return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(d, p), b);
              });
            case "fsharp":
              return this.withSoloAwaitPermittingContext(() => this.parseFSharpPipelineBody(p));
          }
        default:
          return this.parseExprOpBaseRightExpr(d, p);
      }
    }
    parseExprOpBaseRightExpr(d, p) {
      const b = this.state.startLoc;
      return this.parseExprOp(this.parseMaybeUnaryOrPrivate(), b, Ze(d) ? p - 1 : p);
    }
    parseHackPipeBody() {
      var d;
      const {
        startLoc: p
      } = this.state, b = this.parseMaybeAssign();
      return h.has(b.type) && !((d = b.extra) != null && d.parenthesized) && this.raise(S.PipeUnparenthesizedBody, {
        at: p,
        type: b.type
      }), this.topicReferenceWasUsedInCurrentContext() || this.raise(S.PipeTopicUnused, {
        at: p
      }), b;
    }
    checkExponentialAfterUnary(d) {
      this.match(57) && this.raise(S.UnexpectedTokenUnaryExponentiation, {
        at: d.argument
      });
    }
    parseMaybeUnary(d, p) {
      const b = this.state.startLoc, _ = this.isContextual(96);
      if (_ && this.isAwaitAllowed()) {
        this.next();
        const Ge = this.parseAwait(b);
        return p || this.checkExponentialAfterUnary(Ge), Ge;
      }
      const H = this.match(34), ee = this.startNode();
      if (te(this.state.type)) {
        ee.operator = this.state.value, ee.prefix = !0, this.match(72) && this.expectPlugin("throwExpressions");
        const Ge = this.match(89);
        if (this.next(), ee.argument = this.parseMaybeUnary(null, !0), this.checkExpressionErrors(d, !0), this.state.strict && Ge) {
          const Ye = ee.argument;
          Ye.type === "Identifier" ? this.raise(S.StrictDelete, {
            at: ee
          }) : this.hasPropertyAsPrivateName(Ye) && this.raise(S.DeletePrivateField, {
            at: ee
          });
        }
        if (!H)
          return p || this.checkExponentialAfterUnary(ee), this.finishNode(ee, "UnaryExpression");
      }
      const de = this.parseUpdate(ee, H, d);
      if (_) {
        const {
          type: Ge
        } = this.state;
        if ((this.hasPlugin("v8intrinsic") ? xe(Ge) : xe(Ge) && !this.match(54)) && !this.isAmbiguousAwait())
          return this.raiseOverwrite(S.AwaitNotInAsyncContext, {
            at: b
          }), this.parseAwait(b);
      }
      return de;
    }
    parseUpdate(d, p, b) {
      if (p) {
        const ee = d;
        return this.checkLVal(ee.argument, {
          in: this.finishNode(ee, "UpdateExpression")
        }), d;
      }
      const _ = this.state.startLoc;
      let H = this.parseExprSubscripts(b);
      if (this.checkExpressionErrors(b, !1))
        return H;
      for (; oe(this.state.type) && !this.canInsertSemicolon(); ) {
        const ee = this.startNodeAt(_);
        ee.operator = this.state.value, ee.prefix = !1, ee.argument = H, this.next(), this.checkLVal(H, {
          in: H = this.finishNode(ee, "UpdateExpression")
        });
      }
      return H;
    }
    parseExprSubscripts(d) {
      const p = this.state.startLoc, b = this.state.potentialArrowAt, _ = this.parseExprAtom(d);
      return this.shouldExitDescending(_, b) ? _ : this.parseSubscripts(_, p);
    }
    parseSubscripts(d, p, b) {
      const _ = {
        optionalChainMember: !1,
        maybeAsyncArrow: this.atPossibleAsyncArrow(d),
        stop: !1
      };
      do
        d = this.parseSubscript(d, p, b, _), _.maybeAsyncArrow = !1;
      while (!_.stop);
      return d;
    }
    parseSubscript(d, p, b, _) {
      const {
        type: H
      } = this.state;
      if (!b && H === 15)
        return this.parseBind(d, p, b, _);
      if (pt(H))
        return this.parseTaggedTemplateExpression(d, p, _);
      let ee = !1;
      if (H === 18) {
        if (b && (this.raise(S.OptionalChainingNoNew, {
          at: this.state.startLoc
        }), this.lookaheadCharCode() === 40))
          return _.stop = !0, d;
        _.optionalChainMember = ee = !0, this.next();
      }
      if (!b && this.match(10))
        return this.parseCoverCallAndAsyncArrowHead(d, p, _, ee);
      {
        const de = this.eat(0);
        return de || ee || this.eat(16) ? this.parseMember(d, p, _, de, ee) : (_.stop = !0, d);
      }
    }
    parseMember(d, p, b, _, H) {
      const ee = this.startNodeAt(p);
      return ee.object = d, ee.computed = _, _ ? (ee.property = this.parseExpression(), this.expect(3)) : this.match(136) ? (d.type === "Super" && this.raise(S.SuperPrivateField, {
        at: p
      }), this.classScope.usePrivateName(this.state.value, this.state.startLoc), ee.property = this.parsePrivateName()) : ee.property = this.parseIdentifier(!0), b.optionalChainMember ? (ee.optional = H, this.finishNode(ee, "OptionalMemberExpression")) : this.finishNode(ee, "MemberExpression");
    }
    parseBind(d, p, b, _) {
      const H = this.startNodeAt(p);
      return H.object = d, this.next(), H.callee = this.parseNoCallExpr(), _.stop = !0, this.parseSubscripts(this.finishNode(H, "BindExpression"), p, b);
    }
    parseCoverCallAndAsyncArrowHead(d, p, b, _) {
      const H = this.state.maybeInArrowParameters;
      let ee = null;
      this.state.maybeInArrowParameters = !0, this.next();
      const de = this.startNodeAt(p);
      de.callee = d;
      const {
        maybeAsyncArrow: Ge,
        optionalChainMember: Ye
      } = b;
      Ge && (this.expressionScope.enter(Ou()), ee = new ka()), Ye && (de.optional = _), _ ? de.arguments = this.parseCallExpressionArguments(11) : de.arguments = this.parseCallExpressionArguments(11, d.type === "Import", d.type !== "Super", de, ee);
      let Je = this.finishCallExpression(de, Ye);
      return Ge && this.shouldParseAsyncArrow() && !_ ? (b.stop = !0, this.checkDestructuringPrivate(ee), this.expressionScope.validateAsPattern(), this.expressionScope.exit(), Je = this.parseAsyncArrowFromCallExpression(this.startNodeAt(p), Je)) : (Ge && (this.checkExpressionErrors(ee, !0), this.expressionScope.exit()), this.toReferencedArguments(Je)), this.state.maybeInArrowParameters = H, Je;
    }
    toReferencedArguments(d, p) {
      this.toReferencedListDeep(d.arguments, p);
    }
    parseTaggedTemplateExpression(d, p, b) {
      const _ = this.startNodeAt(p);
      return _.tag = d, _.quasi = this.parseTemplate(!0), b.optionalChainMember && this.raise(S.OptionalChainingNoTemplate, {
        at: p
      }), this.finishNode(_, "TaggedTemplateExpression");
    }
    atPossibleAsyncArrow(d) {
      return d.type === "Identifier" && d.name === "async" && this.state.lastTokEndLoc.index === d.end && !this.canInsertSemicolon() && d.end - d.start === 5 && d.start === this.state.potentialArrowAt;
    }
    expectImportAttributesPlugin() {
      this.hasPlugin("importAssertions") || this.expectPlugin("importAttributes");
    }
    finishCallExpression(d, p) {
      if (d.callee.type === "Import")
        if (d.arguments.length === 2 && (this.hasPlugin("moduleAttributes") || this.expectImportAttributesPlugin()), d.arguments.length === 0 || d.arguments.length > 2)
          this.raise(S.ImportCallArity, {
            at: d,
            maxArgumentCount: this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions") || this.hasPlugin("moduleAttributes") ? 2 : 1
          });
        else
          for (const b of d.arguments)
            b.type === "SpreadElement" && this.raise(S.ImportCallSpreadArgument, {
              at: b
            });
      return this.finishNode(d, p ? "OptionalCallExpression" : "CallExpression");
    }
    parseCallExpressionArguments(d, p, b, _, H) {
      const ee = [];
      let de = !0;
      const Ge = this.state.inFSharpPipelineDirectBody;
      for (this.state.inFSharpPipelineDirectBody = !1; !this.eat(d); ) {
        if (de)
          de = !1;
        else if (this.expect(12), this.match(d)) {
          p && !this.hasPlugin("importAttributes") && !this.hasPlugin("importAssertions") && !this.hasPlugin("moduleAttributes") && this.raise(S.ImportCallArgumentTrailingComma, {
            at: this.state.lastTokStartLoc
          }), _ && this.addTrailingCommaExtraToNode(_), this.next();
          break;
        }
        ee.push(this.parseExprListItem(!1, H, b));
      }
      return this.state.inFSharpPipelineDirectBody = Ge, ee;
    }
    shouldParseAsyncArrow() {
      return this.match(19) && !this.canInsertSemicolon();
    }
    parseAsyncArrowFromCallExpression(d, p) {
      var b;
      return this.resetPreviousNodeTrailingComments(p), this.expect(19), this.parseArrowExpression(d, p.arguments, !0, (b = p.extra) == null ? void 0 : b.trailingCommaLoc), p.innerComments && qs(d, p.innerComments), p.callee.trailingComments && qs(d, p.callee.trailingComments), d;
    }
    parseNoCallExpr() {
      const d = this.state.startLoc;
      return this.parseSubscripts(this.parseExprAtom(), d, !0);
    }
    parseExprAtom(d) {
      let p, b = null;
      const {
        type: _
      } = this.state;
      switch (_) {
        case 79:
          return this.parseSuper();
        case 83:
          return p = this.startNode(), this.next(), this.match(16) ? this.parseImportMetaProperty(p) : (this.match(10) || this.raise(S.UnsupportedImport, {
            at: this.state.lastTokStartLoc
          }), this.finishNode(p, "Import"));
        case 78:
          return p = this.startNode(), this.next(), this.finishNode(p, "ThisExpression");
        case 90:
          return this.parseDo(this.startNode(), !1);
        case 56:
        case 31:
          return this.readRegexp(), this.parseRegExpLiteral(this.state.value);
        case 132:
          return this.parseNumericLiteral(this.state.value);
        case 133:
          return this.parseBigIntLiteral(this.state.value);
        case 134:
          return this.parseDecimalLiteral(this.state.value);
        case 131:
          return this.parseStringLiteral(this.state.value);
        case 84:
          return this.parseNullLiteral();
        case 85:
          return this.parseBooleanLiteral(!0);
        case 86:
          return this.parseBooleanLiteral(!1);
        case 10: {
          const H = this.state.potentialArrowAt === this.state.start;
          return this.parseParenAndDistinguishExpression(H);
        }
        case 2:
        case 1:
          return this.parseArrayLike(this.state.type === 2 ? 4 : 3, !1, !0);
        case 0:
          return this.parseArrayLike(3, !0, !1, d);
        case 6:
        case 7:
          return this.parseObjectLike(this.state.type === 6 ? 9 : 8, !1, !0);
        case 5:
          return this.parseObjectLike(8, !1, !1, d);
        case 68:
          return this.parseFunctionOrFunctionSent();
        case 26:
          b = this.parseDecorators();
        case 80:
          return this.parseClass(this.maybeTakeDecorators(b, this.startNode()), !1);
        case 77:
          return this.parseNewOrNewTarget();
        case 25:
        case 24:
          return this.parseTemplate(!1);
        case 15: {
          p = this.startNode(), this.next(), p.object = null;
          const H = p.callee = this.parseNoCallExpr();
          if (H.type === "MemberExpression")
            return this.finishNode(p, "BindExpression");
          throw this.raise(S.UnsupportedBind, {
            at: H
          });
        }
        case 136:
          return this.raise(S.PrivateInExpectedIn, {
            at: this.state.startLoc,
            identifierName: this.state.value
          }), this.parsePrivateName();
        case 33:
          return this.parseTopicReferenceThenEqualsSign(54, "%");
        case 32:
          return this.parseTopicReferenceThenEqualsSign(44, "^");
        case 37:
        case 38:
          return this.parseTopicReference("hack");
        case 44:
        case 54:
        case 27: {
          const H = this.getPluginOption("pipelineOperator", "proposal");
          if (H)
            return this.parseTopicReference(H);
          this.unexpected();
          break;
        }
        case 47: {
          const H = this.input.codePointAt(this.nextTokenStart());
          X(H) || H === 62 ? this.expectOnePlugin(["jsx", "flow", "typescript"]) : this.unexpected();
          break;
        }
        default:
          if (ye(_)) {
            if (this.isContextual(125) && this.lookaheadInLineCharCode() === 123)
              return this.parseModuleExpression();
            const H = this.state.potentialArrowAt === this.state.start, ee = this.state.containsEsc, de = this.parseIdentifier();
            if (!ee && de.name === "async" && !this.canInsertSemicolon()) {
              const {
                type: Ge
              } = this.state;
              if (Ge === 68)
                return this.resetPreviousNodeTrailingComments(de), this.next(), this.parseAsyncFunctionExpression(this.startNodeAtNode(de));
              if (ye(Ge))
                return this.lookaheadCharCode() === 61 ? this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(de)) : de;
              if (Ge === 90)
                return this.resetPreviousNodeTrailingComments(de), this.parseDo(this.startNodeAtNode(de), !0);
            }
            return H && this.match(19) && !this.canInsertSemicolon() ? (this.next(), this.parseArrowExpression(this.startNodeAtNode(de), [de], !1)) : de;
          } else
            this.unexpected();
      }
    }
    parseTopicReferenceThenEqualsSign(d, p) {
      const b = this.getPluginOption("pipelineOperator", "proposal");
      if (b)
        return this.state.type = d, this.state.value = p, this.state.pos--, this.state.end--, this.state.endLoc = i(this.state.endLoc, -1), this.parseTopicReference(b);
      this.unexpected();
    }
    parseTopicReference(d) {
      const p = this.startNode(), b = this.state.startLoc, _ = this.state.type;
      return this.next(), this.finishTopicReference(p, b, d, _);
    }
    finishTopicReference(d, p, b, _) {
      if (this.testTopicReferenceConfiguration(b, p, _)) {
        const H = b === "smart" ? "PipelinePrimaryTopicReference" : "TopicReference";
        return this.topicReferenceIsAllowedInCurrentContext() || this.raise(b === "smart" ? S.PrimaryTopicNotAllowed : S.PipeTopicUnbound, {
          at: p
        }), this.registerTopicReference(), this.finishNode(d, H);
      } else
        throw this.raise(S.PipeTopicUnconfiguredToken, {
          at: p,
          token: Te(_)
        });
    }
    testTopicReferenceConfiguration(d, p, b) {
      switch (d) {
        case "hack":
          return this.hasPlugin(["pipelineOperator", {
            topicToken: Te(b)
          }]);
        case "smart":
          return b === 27;
        default:
          throw this.raise(S.PipeTopicRequiresHackPipes, {
            at: p
          });
      }
    }
    parseAsyncArrowUnaryFunction(d) {
      this.prodParam.enter(Ia(!0, this.prodParam.hasYield));
      const p = [this.parseIdentifier()];
      return this.prodParam.exit(), this.hasPrecedingLineBreak() && this.raise(S.LineTerminatorBeforeArrow, {
        at: this.state.curPosition()
      }), this.expect(19), this.parseArrowExpression(d, p, !0);
    }
    parseDo(d, p) {
      this.expectPlugin("doExpressions"), p && this.expectPlugin("asyncDoExpressions"), d.async = p, this.next();
      const b = this.state.labels;
      return this.state.labels = [], p ? (this.prodParam.enter(_a), d.body = this.parseBlock(), this.prodParam.exit()) : d.body = this.parseBlock(), this.state.labels = b, this.finishNode(d, "DoExpression");
    }
    parseSuper() {
      const d = this.startNode();
      return this.next(), this.match(10) && !this.scope.allowDirectSuper && !this.options.allowSuperOutsideMethod ? this.raise(S.SuperNotAllowed, {
        at: d
      }) : !this.scope.allowSuper && !this.options.allowSuperOutsideMethod && this.raise(S.UnexpectedSuper, {
        at: d
      }), !this.match(10) && !this.match(0) && !this.match(16) && this.raise(S.UnsupportedSuper, {
        at: d
      }), this.finishNode(d, "Super");
    }
    parsePrivateName() {
      const d = this.startNode(), p = this.startNodeAt(i(this.state.startLoc, 1)), b = this.state.value;
      return this.next(), d.id = this.createIdentifier(p, b), this.finishNode(d, "PrivateName");
    }
    parseFunctionOrFunctionSent() {
      const d = this.startNode();
      if (this.next(), this.prodParam.hasYield && this.match(16)) {
        const p = this.createIdentifier(this.startNodeAtNode(d), "function");
        return this.next(), this.match(102) ? this.expectPlugin("functionSent") : this.hasPlugin("functionSent") || this.unexpected(), this.parseMetaProperty(d, p, "sent");
      }
      return this.parseFunction(d);
    }
    parseMetaProperty(d, p, b) {
      d.meta = p;
      const _ = this.state.containsEsc;
      return d.property = this.parseIdentifier(!0), (d.property.name !== b || _) && this.raise(S.UnsupportedMetaProperty, {
        at: d.property,
        target: p.name,
        onlyValidPropertyName: b
      }), this.finishNode(d, "MetaProperty");
    }
    parseImportMetaProperty(d) {
      const p = this.createIdentifier(this.startNodeAtNode(d), "import");
      return this.next(), this.isContextual(100) && (this.inModule || this.raise(S.ImportMetaOutsideModule, {
        at: p
      }), this.sawUnambiguousESM = !0), this.parseMetaProperty(d, p, "meta");
    }
    parseLiteralAtNode(d, p, b) {
      return this.addExtra(b, "rawValue", d), this.addExtra(b, "raw", this.input.slice(b.start, this.state.end)), b.value = d, this.next(), this.finishNode(b, p);
    }
    parseLiteral(d, p) {
      const b = this.startNode();
      return this.parseLiteralAtNode(d, p, b);
    }
    parseStringLiteral(d) {
      return this.parseLiteral(d, "StringLiteral");
    }
    parseNumericLiteral(d) {
      return this.parseLiteral(d, "NumericLiteral");
    }
    parseBigIntLiteral(d) {
      return this.parseLiteral(d, "BigIntLiteral");
    }
    parseDecimalLiteral(d) {
      return this.parseLiteral(d, "DecimalLiteral");
    }
    parseRegExpLiteral(d) {
      const p = this.parseLiteral(d.value, "RegExpLiteral");
      return p.pattern = d.pattern, p.flags = d.flags, p;
    }
    parseBooleanLiteral(d) {
      const p = this.startNode();
      return p.value = d, this.next(), this.finishNode(p, "BooleanLiteral");
    }
    parseNullLiteral() {
      const d = this.startNode();
      return this.next(), this.finishNode(d, "NullLiteral");
    }
    parseParenAndDistinguishExpression(d) {
      const p = this.state.startLoc;
      let b;
      this.next(), this.expressionScope.enter(ku());
      const _ = this.state.maybeInArrowParameters, H = this.state.inFSharpPipelineDirectBody;
      this.state.maybeInArrowParameters = !0, this.state.inFSharpPipelineDirectBody = !1;
      const ee = this.state.startLoc, de = [], Ge = new ka();
      let Ye = !0, Je, gt;
      for (; !this.match(11); ) {
        if (Ye)
          Ye = !1;
        else if (this.expect(12, Ge.optionalParametersLoc === null ? null : Ge.optionalParametersLoc), this.match(11)) {
          gt = this.state.startLoc;
          break;
        }
        if (this.match(21)) {
          const Ht = this.state.startLoc;
          if (Je = this.state.startLoc, de.push(this.parseParenItem(this.parseRestBinding(), Ht)), !this.checkCommaAfterRest(41))
            break;
        } else
          de.push(this.parseMaybeAssignAllowIn(Ge, this.parseParenItem));
      }
      const It = this.state.lastTokEndLoc;
      this.expect(11), this.state.maybeInArrowParameters = _, this.state.inFSharpPipelineDirectBody = H;
      let _t = this.startNodeAt(p);
      return d && this.shouldParseArrow(de) && (_t = this.parseArrow(_t)) ? (this.checkDestructuringPrivate(Ge), this.expressionScope.validateAsPattern(), this.expressionScope.exit(), this.parseArrowExpression(_t, de, !1), _t) : (this.expressionScope.exit(), de.length || this.unexpected(this.state.lastTokStartLoc), gt && this.unexpected(gt), Je && this.unexpected(Je), this.checkExpressionErrors(Ge, !0), this.toReferencedListDeep(de, !0), de.length > 1 ? (b = this.startNodeAt(ee), b.expressions = de, this.finishNode(b, "SequenceExpression"), this.resetEndLocation(b, It)) : b = de[0], this.wrapParenthesis(p, b));
    }
    wrapParenthesis(d, p) {
      if (!this.options.createParenthesizedExpressions)
        return this.addExtra(p, "parenthesized", !0), this.addExtra(p, "parenStart", d.index), this.takeSurroundingComments(p, d.index, this.state.lastTokEndLoc.index), p;
      const b = this.startNodeAt(d);
      return b.expression = p, this.finishNode(b, "ParenthesizedExpression");
    }
    shouldParseArrow(d) {
      return !this.canInsertSemicolon();
    }
    parseArrow(d) {
      if (this.eat(19))
        return d;
    }
    parseParenItem(d, p) {
      return d;
    }
    parseNewOrNewTarget() {
      const d = this.startNode();
      if (this.next(), this.match(16)) {
        const p = this.createIdentifier(this.startNodeAtNode(d), "new");
        this.next();
        const b = this.parseMetaProperty(d, p, "target");
        return !this.scope.inNonArrowFunction && !this.scope.inClass && !this.options.allowNewTargetOutsideFunction && this.raise(S.UnexpectedNewTarget, {
          at: b
        }), b;
      }
      return this.parseNew(d);
    }
    parseNew(d) {
      if (this.parseNewCallee(d), this.eat(10)) {
        const p = this.parseExprList(11);
        this.toReferencedList(p), d.arguments = p;
      } else
        d.arguments = [];
      return this.finishNode(d, "NewExpression");
    }
    parseNewCallee(d) {
      d.callee = this.parseNoCallExpr(), d.callee.type === "Import" && this.raise(S.ImportCallNotNewExpression, {
        at: d.callee
      });
    }
    parseTemplateElement(d) {
      const {
        start: p,
        startLoc: b,
        end: _,
        value: H
      } = this.state, ee = p + 1, de = this.startNodeAt(i(b, 1));
      H === null && (d || this.raise(S.InvalidEscapeSequenceTemplate, {
        at: i(this.state.firstInvalidTemplateEscapePos, 1)
      }));
      const Ge = this.match(24), Ye = Ge ? -1 : -2, Je = _ + Ye;
      de.value = {
        raw: this.input.slice(ee, Je).replace(/\r\n?/g, "\n"),
        cooked: H === null ? null : H.slice(1, Ye)
      }, de.tail = Ge, this.next();
      const gt = this.finishNode(de, "TemplateElement");
      return this.resetEndLocation(gt, i(this.state.lastTokEndLoc, Ye)), gt;
    }
    parseTemplate(d) {
      const p = this.startNode();
      p.expressions = [];
      let b = this.parseTemplateElement(d);
      for (p.quasis = [b]; !b.tail; )
        p.expressions.push(this.parseTemplateSubstitution()), this.readTemplateContinuation(), p.quasis.push(b = this.parseTemplateElement(d));
      return this.finishNode(p, "TemplateLiteral");
    }
    parseTemplateSubstitution() {
      return this.parseExpression();
    }
    parseObjectLike(d, p, b, _) {
      b && this.expectPlugin("recordAndTuple");
      const H = this.state.inFSharpPipelineDirectBody;
      this.state.inFSharpPipelineDirectBody = !1;
      const ee = /* @__PURE__ */ Object.create(null);
      let de = !0;
      const Ge = this.startNode();
      for (Ge.properties = [], this.next(); !this.match(d); ) {
        if (de)
          de = !1;
        else if (this.expect(12), this.match(d)) {
          this.addTrailingCommaExtraToNode(Ge);
          break;
        }
        let Je;
        p ? Je = this.parseBindingProperty() : (Je = this.parsePropertyDefinition(_), this.checkProto(Je, b, ee, _)), b && !this.isObjectProperty(Je) && Je.type !== "SpreadElement" && this.raise(S.InvalidRecordProperty, {
          at: Je
        }), Je.shorthand && this.addExtra(Je, "shorthand", !0), Ge.properties.push(Je);
      }
      this.next(), this.state.inFSharpPipelineDirectBody = H;
      let Ye = "ObjectExpression";
      return p ? Ye = "ObjectPattern" : b && (Ye = "RecordExpression"), this.finishNode(Ge, Ye);
    }
    addTrailingCommaExtraToNode(d) {
      this.addExtra(d, "trailingComma", this.state.lastTokStart), this.addExtra(d, "trailingCommaLoc", this.state.lastTokStartLoc, !1);
    }
    maybeAsyncOrAccessorProp(d) {
      return !d.computed && d.key.type === "Identifier" && (this.isLiteralPropertyName() || this.match(0) || this.match(55));
    }
    parsePropertyDefinition(d) {
      let p = [];
      if (this.match(26))
        for (this.hasPlugin("decorators") && this.raise(S.UnsupportedPropertyDecorator, {
          at: this.state.startLoc
        }); this.match(26); )
          p.push(this.parseDecorator());
      const b = this.startNode();
      let _ = !1, H = !1, ee;
      if (this.match(21))
        return p.length && this.unexpected(), this.parseSpread();
      p.length && (b.decorators = p, p = []), b.method = !1, d && (ee = this.state.startLoc);
      let de = this.eat(55);
      this.parsePropertyNamePrefixOperator(b);
      const Ge = this.state.containsEsc, Ye = this.parsePropertyName(b, d);
      if (!de && !Ge && this.maybeAsyncOrAccessorProp(b)) {
        const Je = Ye.name;
        Je === "async" && !this.hasPrecedingLineBreak() && (_ = !0, this.resetPreviousNodeTrailingComments(Ye), de = this.eat(55), this.parsePropertyName(b)), (Je === "get" || Je === "set") && (H = !0, this.resetPreviousNodeTrailingComments(Ye), b.kind = Je, this.match(55) && (de = !0, this.raise(S.AccessorIsGenerator, {
          at: this.state.curPosition(),
          kind: Je
        }), this.next()), this.parsePropertyName(b));
      }
      return this.parseObjPropValue(b, ee, de, _, !1, H, d);
    }
    getGetterSetterExpectedParamCount(d) {
      return d.kind === "get" ? 0 : 1;
    }
    getObjectOrClassMethodParams(d) {
      return d.params;
    }
    checkGetterSetterParams(d) {
      var p;
      const b = this.getGetterSetterExpectedParamCount(d), _ = this.getObjectOrClassMethodParams(d);
      _.length !== b && this.raise(d.kind === "get" ? S.BadGetterArity : S.BadSetterArity, {
        at: d
      }), d.kind === "set" && ((p = _[_.length - 1]) == null ? void 0 : p.type) === "RestElement" && this.raise(S.BadSetterRestParameter, {
        at: d
      });
    }
    parseObjectMethod(d, p, b, _, H) {
      if (H) {
        const ee = this.parseMethod(d, p, !1, !1, !1, "ObjectMethod");
        return this.checkGetterSetterParams(ee), ee;
      }
      if (b || p || this.match(10))
        return _ && this.unexpected(), d.kind = "method", d.method = !0, this.parseMethod(d, p, b, !1, !1, "ObjectMethod");
    }
    parseObjectProperty(d, p, b, _) {
      if (d.shorthand = !1, this.eat(14))
        return d.value = b ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowIn(_), this.finishNode(d, "ObjectProperty");
      if (!d.computed && d.key.type === "Identifier") {
        if (this.checkReservedWord(d.key.name, d.key.loc.start, !0, !1), b)
          d.value = this.parseMaybeDefault(p, Gn(d.key));
        else if (this.match(29)) {
          const H = this.state.startLoc;
          _ != null ? _.shorthandAssignLoc === null && (_.shorthandAssignLoc = H) : this.raise(S.InvalidCoverInitializedName, {
            at: H
          }), d.value = this.parseMaybeDefault(p, Gn(d.key));
        } else
          d.value = Gn(d.key);
        return d.shorthand = !0, this.finishNode(d, "ObjectProperty");
      }
    }
    parseObjPropValue(d, p, b, _, H, ee, de) {
      const Ge = this.parseObjectMethod(d, b, _, H, ee) || this.parseObjectProperty(d, p, H, de);
      return Ge || this.unexpected(), Ge;
    }
    parsePropertyName(d, p) {
      if (this.eat(0))
        d.computed = !0, d.key = this.parseMaybeAssignAllowIn(), this.expect(3);
      else {
        const {
          type: b,
          value: _
        } = this.state;
        let H;
        if (Z(b))
          H = this.parseIdentifier(!0);
        else
          switch (b) {
            case 132:
              H = this.parseNumericLiteral(_);
              break;
            case 131:
              H = this.parseStringLiteral(_);
              break;
            case 133:
              H = this.parseBigIntLiteral(_);
              break;
            case 134:
              H = this.parseDecimalLiteral(_);
              break;
            case 136: {
              const ee = this.state.startLoc;
              p != null ? p.privateKeyLoc === null && (p.privateKeyLoc = ee) : this.raise(S.UnexpectedPrivateField, {
                at: ee
              }), H = this.parsePrivateName();
              break;
            }
            default:
              this.unexpected();
          }
        d.key = H, b !== 136 && (d.computed = !1);
      }
      return d.key;
    }
    initFunction(d, p) {
      d.id = null, d.generator = !1, d.async = p;
    }
    parseMethod(d, p, b, _, H, ee, de = !1) {
      this.initFunction(d, b), d.generator = p, this.scope.enter(on | bi | (de ? us : 0) | (H ? No : 0)), this.prodParam.enter(Ia(b, d.generator)), this.parseFunctionParams(d, _);
      const Ge = this.parseFunctionBodyAndFinish(d, ee, !0);
      return this.prodParam.exit(), this.scope.exit(), Ge;
    }
    parseArrayLike(d, p, b, _) {
      b && this.expectPlugin("recordAndTuple");
      const H = this.state.inFSharpPipelineDirectBody;
      this.state.inFSharpPipelineDirectBody = !1;
      const ee = this.startNode();
      return this.next(), ee.elements = this.parseExprList(d, !b, _, ee), this.state.inFSharpPipelineDirectBody = H, this.finishNode(ee, b ? "TupleExpression" : "ArrayExpression");
    }
    parseArrowExpression(d, p, b, _) {
      this.scope.enter(on | _n);
      let H = Ia(b, !1);
      !this.match(5) && this.prodParam.hasIn && (H |= Is), this.prodParam.enter(H), this.initFunction(d, b);
      const ee = this.state.maybeInArrowParameters;
      return p && (this.state.maybeInArrowParameters = !0, this.setArrowFunctionParameters(d, p, _)), this.state.maybeInArrowParameters = !1, this.parseFunctionBody(d, !0), this.prodParam.exit(), this.scope.exit(), this.state.maybeInArrowParameters = ee, this.finishNode(d, "ArrowFunctionExpression");
    }
    setArrowFunctionParameters(d, p, b) {
      this.toAssignableList(p, b, !1), d.params = p;
    }
    parseFunctionBodyAndFinish(d, p, b = !1) {
      return this.parseFunctionBody(d, !1, b), this.finishNode(d, p);
    }
    parseFunctionBody(d, p, b = !1) {
      const _ = p && !this.match(5);
      if (this.expressionScope.enter(Xo()), _)
        d.body = this.parseMaybeAssign(), this.checkParams(d, !1, p, !1);
      else {
        const H = this.state.strict, ee = this.state.labels;
        this.state.labels = [], this.prodParam.enter(this.prodParam.currentFlags() | Qo), d.body = this.parseBlock(!0, !1, (de) => {
          const Ge = !this.isSimpleParamList(d.params);
          de && Ge && this.raise(S.IllegalLanguageModeDirective, {
            at: (d.kind === "method" || d.kind === "constructor") && d.key ? d.key.loc.end : d
          });
          const Ye = !H && this.state.strict;
          this.checkParams(d, !this.state.strict && !p && !b && !Ge, p, Ye), this.state.strict && d.id && this.checkIdentifier(d.id, nu, Ye);
        }), this.prodParam.exit(), this.state.labels = ee;
      }
      this.expressionScope.exit();
    }
    isSimpleParameter(d) {
      return d.type === "Identifier";
    }
    isSimpleParamList(d) {
      for (let p = 0, b = d.length; p < b; p++)
        if (!this.isSimpleParameter(d[p]))
          return !1;
      return !0;
    }
    checkParams(d, p, b, _ = !0) {
      const H = !p && /* @__PURE__ */ new Set(), ee = {
        type: "FormalParameters"
      };
      for (const de of d.params)
        this.checkLVal(de, {
          in: ee,
          binding: xa,
          checkClashes: H,
          strictModeChanged: _
        });
    }
    parseExprList(d, p, b, _) {
      const H = [];
      let ee = !0;
      for (; !this.eat(d); ) {
        if (ee)
          ee = !1;
        else if (this.expect(12), this.match(d)) {
          _ && this.addTrailingCommaExtraToNode(_), this.next();
          break;
        }
        H.push(this.parseExprListItem(p, b));
      }
      return H;
    }
    parseExprListItem(d, p, b) {
      let _;
      if (this.match(12))
        d || this.raise(S.UnexpectedToken, {
          at: this.state.curPosition(),
          unexpected: ","
        }), _ = null;
      else if (this.match(21)) {
        const H = this.state.startLoc;
        _ = this.parseParenItem(this.parseSpread(p), H);
      } else if (this.match(17)) {
        this.expectPlugin("partialApplication"), b || this.raise(S.UnexpectedArgumentPlaceholder, {
          at: this.state.startLoc
        });
        const H = this.startNode();
        this.next(), _ = this.finishNode(H, "ArgumentPlaceholder");
      } else
        _ = this.parseMaybeAssignAllowIn(p, this.parseParenItem);
      return _;
    }
    parseIdentifier(d) {
      const p = this.startNode(), b = this.parseIdentifierName(d);
      return this.createIdentifier(p, b);
    }
    createIdentifier(d, p) {
      return d.name = p, d.loc.identifierName = p, this.finishNode(d, "Identifier");
    }
    parseIdentifierName(d) {
      let p;
      const {
        startLoc: b,
        type: _
      } = this.state;
      Z(_) ? p = this.state.value : this.unexpected();
      const H = fe(_);
      return d ? H && this.replaceToken(130) : this.checkReservedWord(p, b, H, !1), this.next(), p;
    }
    checkReservedWord(d, p, b, _) {
      if (d.length > 10 || !Ai(d))
        return;
      if (b && lt(d)) {
        this.raise(S.UnexpectedKeyword, {
          at: p,
          keyword: d
        });
        return;
      }
      if ((this.state.strict ? _ ? Tt : Rt : ht)(d, this.inModule)) {
        this.raise(S.UnexpectedReservedWord, {
          at: p,
          reservedWord: d
        });
        return;
      } else if (d === "yield") {
        if (this.prodParam.hasYield) {
          this.raise(S.YieldBindingIdentifier, {
            at: p
          });
          return;
        }
      } else if (d === "await") {
        if (this.prodParam.hasAwait) {
          this.raise(S.AwaitBindingIdentifier, {
            at: p
          });
          return;
        }
        if (this.scope.inStaticBlock) {
          this.raise(S.AwaitBindingIdentifierInStaticBlock, {
            at: p
          });
          return;
        }
        this.expressionScope.recordAsyncArrowParametersError({
          at: p
        });
      } else if (d === "arguments" && this.scope.inClassAndNotInNonArrowFunction) {
        this.raise(S.ArgumentsInClass, {
          at: p
        });
        return;
      }
    }
    isAwaitAllowed() {
      return !!(this.prodParam.hasAwait || this.options.allowAwaitOutsideFunction && !this.scope.inFunction);
    }
    parseAwait(d) {
      const p = this.startNodeAt(d);
      return this.expressionScope.recordParameterInitializerError(S.AwaitExpressionFormalParameter, {
        at: p
      }), this.eat(55) && this.raise(S.ObsoleteAwaitStar, {
        at: p
      }), !this.scope.inFunction && !this.options.allowAwaitOutsideFunction && (this.isAmbiguousAwait() ? this.ambiguousScriptDifferentAst = !0 : this.sawUnambiguousESM = !0), this.state.soloAwait || (p.argument = this.parseMaybeUnary(null, !0)), this.finishNode(p, "AwaitExpression");
    }
    isAmbiguousAwait() {
      if (this.hasPrecedingLineBreak())
        return !0;
      const {
        type: d
      } = this.state;
      return d === 53 || d === 10 || d === 0 || pt(d) || d === 101 && !this.state.containsEsc || d === 135 || d === 56 || this.hasPlugin("v8intrinsic") && d === 54;
    }
    parseYield() {
      const d = this.startNode();
      this.expressionScope.recordParameterInitializerError(S.YieldInParameter, {
        at: d
      }), this.next();
      let p = !1, b = null;
      if (!this.hasPrecedingLineBreak())
        switch (p = this.eat(55), this.state.type) {
          case 13:
          case 137:
          case 8:
          case 11:
          case 3:
          case 9:
          case 14:
          case 12:
            if (!p)
              break;
          default:
            b = this.parseMaybeAssign();
        }
      return d.delegate = p, d.argument = b, this.finishNode(d, "YieldExpression");
    }
    checkPipelineAtInfixOperator(d, p) {
      this.hasPlugin(["pipelineOperator", {
        proposal: "smart"
      }]) && d.type === "SequenceExpression" && this.raise(S.PipelineHeadSequenceExpression, {
        at: p
      });
    }
    parseSmartPipelineBodyInStyle(d, p) {
      if (this.isSimpleReference(d)) {
        const b = this.startNodeAt(p);
        return b.callee = d, this.finishNode(b, "PipelineBareFunction");
      } else {
        const b = this.startNodeAt(p);
        return this.checkSmartPipeTopicBodyEarlyErrors(p), b.expression = d, this.finishNode(b, "PipelineTopicExpression");
      }
    }
    isSimpleReference(d) {
      switch (d.type) {
        case "MemberExpression":
          return !d.computed && this.isSimpleReference(d.object);
        case "Identifier":
          return !0;
        default:
          return !1;
      }
    }
    checkSmartPipeTopicBodyEarlyErrors(d) {
      if (this.match(19))
        throw this.raise(S.PipelineBodyNoArrow, {
          at: this.state.startLoc
        });
      this.topicReferenceWasUsedInCurrentContext() || this.raise(S.PipelineTopicUnused, {
        at: d
      });
    }
    withTopicBindingContext(d) {
      const p = this.state.topicContext;
      this.state.topicContext = {
        maxNumOfResolvableTopics: 1,
        maxTopicIndex: null
      };
      try {
        return d();
      } finally {
        this.state.topicContext = p;
      }
    }
    withSmartMixTopicForbiddingContext(d) {
      if (this.hasPlugin(["pipelineOperator", {
        proposal: "smart"
      }])) {
        const p = this.state.topicContext;
        this.state.topicContext = {
          maxNumOfResolvableTopics: 0,
          maxTopicIndex: null
        };
        try {
          return d();
        } finally {
          this.state.topicContext = p;
        }
      } else
        return d();
    }
    withSoloAwaitPermittingContext(d) {
      const p = this.state.soloAwait;
      this.state.soloAwait = !0;
      try {
        return d();
      } finally {
        this.state.soloAwait = p;
      }
    }
    allowInAnd(d) {
      const p = this.prodParam.currentFlags();
      if (Is & ~p) {
        this.prodParam.enter(p | Is);
        try {
          return d();
        } finally {
          this.prodParam.exit();
        }
      }
      return d();
    }
    disallowInAnd(d) {
      const p = this.prodParam.currentFlags();
      if (Is & p) {
        this.prodParam.enter(p & ~Is);
        try {
          return d();
        } finally {
          this.prodParam.exit();
        }
      }
      return d();
    }
    registerTopicReference() {
      this.state.topicContext.maxTopicIndex = 0;
    }
    topicReferenceIsAllowedInCurrentContext() {
      return this.state.topicContext.maxNumOfResolvableTopics >= 1;
    }
    topicReferenceWasUsedInCurrentContext() {
      return this.state.topicContext.maxTopicIndex != null && this.state.topicContext.maxTopicIndex >= 0;
    }
    parseFSharpPipelineBody(d) {
      const p = this.state.startLoc;
      this.state.potentialArrowAt = this.state.start;
      const b = this.state.inFSharpPipelineDirectBody;
      this.state.inFSharpPipelineDirectBody = !0;
      const _ = this.parseExprOp(this.parseMaybeUnaryOrPrivate(), p, d);
      return this.state.inFSharpPipelineDirectBody = b, _;
    }
    parseModuleExpression() {
      this.expectPlugin("moduleBlocks");
      const d = this.startNode();
      this.next(), this.match(5) || this.unexpected(null, 5);
      const p = this.startNodeAt(this.state.endLoc);
      this.next();
      const b = this.initializeScopes(!0);
      this.enterInitialScopes();
      try {
        d.body = this.parseProgram(p, 8, "module");
      } finally {
        b();
      }
      return this.finishNode(d, "ModuleExpression");
    }
    parsePropertyNamePrefixOperator(d) {
    }
  }
  const oo = {
    kind: "loop"
  }, uc = {
    kind: "switch"
  }, cc = /[\uD800-\uDFFF]/u, lo = /in(?:stanceof)?/y;
  function pc(B, d) {
    for (let p = 0; p < B.length; p++) {
      const b = B[p], {
        type: _
      } = b;
      if (typeof _ == "number") {
        {
          if (_ === 136) {
            const {
              loc: H,
              start: ee,
              value: de,
              end: Ge
            } = b, Ye = ee + 1, Je = i(H.start, 1);
            B.splice(p, 1, new es({
              type: ut(27),
              value: "#",
              start: ee,
              end: Ye,
              startLoc: H.start,
              endLoc: Je
            }), new es({
              type: ut(130),
              value: de,
              start: Ye,
              end: Ge,
              startLoc: Je,
              endLoc: H.end
            })), p++;
            continue;
          }
          if (pt(_)) {
            const {
              loc: H,
              start: ee,
              value: de,
              end: Ge
            } = b, Ye = ee + 1, Je = i(H.start, 1);
            let gt;
            d.charCodeAt(ee) === 96 ? gt = new es({
              type: ut(22),
              value: "`",
              start: ee,
              end: Ye,
              startLoc: H.start,
              endLoc: Je
            }) : gt = new es({
              type: ut(8),
              value: "}",
              start: ee,
              end: Ye,
              startLoc: H.start,
              endLoc: Je
            });
            let It, _t, Ht, zi;
            _ === 24 ? (_t = Ge - 1, Ht = i(H.end, -1), It = de === null ? null : de.slice(1, -1), zi = new es({
              type: ut(22),
              value: "`",
              start: _t,
              end: Ge,
              startLoc: Ht,
              endLoc: H.end
            })) : (_t = Ge - 2, Ht = i(H.end, -2), It = de === null ? null : de.slice(1, -2), zi = new es({
              type: ut(23),
              value: "${",
              start: _t,
              end: Ge,
              startLoc: Ht,
              endLoc: H.end
            })), B.splice(p, 1, gt, new es({
              type: ut(20),
              value: It,
              start: Ye,
              end: _t,
              startLoc: Je,
              endLoc: Ht
            }), zi), p += 2;
            continue;
          }
        }
        b.type = ut(_);
      }
    }
    return B;
  }
  class fc extends lc {
    parseTopLevel(d, p) {
      return d.program = this.parseProgram(p), d.comments = this.state.comments, this.options.tokens && (d.tokens = pc(this.tokens, this.input)), this.finishNode(d, "File");
    }
    parseProgram(d, p = 137, b = this.options.sourceType) {
      if (d.sourceType = b, d.interpreter = this.parseInterpreterDirective(), this.parseBlockBody(d, !0, !0, p), this.inModule && !this.options.allowUndeclaredExports && this.scope.undefinedExports.size > 0)
        for (const [H, ee] of Array.from(this.scope.undefinedExports))
          this.raise(S.ModuleExportUndefined, {
            at: ee,
            localName: H
          });
      let _;
      return p === 137 ? _ = this.finishNode(d, "Program") : _ = this.finishNodeAt(d, "Program", i(this.state.startLoc, -1)), _;
    }
    stmtToDirective(d) {
      const p = d;
      p.type = "Directive", p.value = p.expression, delete p.expression;
      const b = p.value, _ = b.value, H = this.input.slice(b.start, b.end), ee = b.value = H.slice(1, -1);
      return this.addExtra(b, "raw", H), this.addExtra(b, "rawValue", ee), this.addExtra(b, "expressionValue", _), b.type = "DirectiveLiteral", p;
    }
    parseInterpreterDirective() {
      if (!this.match(28))
        return null;
      const d = this.startNode();
      return d.value = this.state.value, this.next(), this.finishNode(d, "InterpreterDirective");
    }
    isLet() {
      return this.isContextual(99) ? this.hasFollowingBindingAtom() : !1;
    }
    chStartsBindingIdentifier(d, p) {
      if (X(d)) {
        if (lo.lastIndex = p, lo.test(this.input)) {
          const b = this.codePointAtPos(lo.lastIndex);
          if (!ce(b) && b !== 92)
            return !1;
        }
        return !0;
      } else
        return d === 92;
    }
    chStartsBindingPattern(d) {
      return d === 91 || d === 123;
    }
    hasFollowingBindingAtom() {
      const d = this.nextTokenStart(), p = this.codePointAtPos(d);
      return this.chStartsBindingPattern(p) || this.chStartsBindingIdentifier(p, d);
    }
    hasInLineFollowingBindingIdentifier() {
      const d = this.nextTokenInLineStart(), p = this.codePointAtPos(d);
      return this.chStartsBindingIdentifier(p, d);
    }
    startsUsingForOf() {
      const {
        type: d,
        containsEsc: p
      } = this.lookahead();
      if (d === 101 && !p)
        return !1;
      if (ye(d) && !this.hasFollowingLineBreak())
        return this.expectPlugin("explicitResourceManagement"), !0;
    }
    startsAwaitUsing() {
      let d = this.nextTokenInLineStart();
      if (this.isUnparsedContextual(d, "using")) {
        d = this.nextTokenInLineStartSince(d + 5);
        const p = this.codePointAtPos(d);
        if (this.chStartsBindingIdentifier(p, d))
          return this.expectPlugin("explicitResourceManagement"), !0;
      }
      return !1;
    }
    parseModuleItem() {
      return this.parseStatementLike(15);
    }
    parseStatementListItem() {
      return this.parseStatementLike(6 | (!this.options.annexB || this.state.strict ? 0 : 8));
    }
    parseStatementOrSloppyAnnexBFunctionDeclaration(d = !1) {
      let p = 0;
      return this.options.annexB && !this.state.strict && (p |= 4, d && (p |= 8)), this.parseStatementLike(p);
    }
    parseStatement() {
      return this.parseStatementLike(0);
    }
    parseStatementLike(d) {
      let p = null;
      return this.match(26) && (p = this.parseDecorators(!0)), this.parseStatementContent(d, p);
    }
    parseStatementContent(d, p) {
      const b = this.state.type, _ = this.startNode(), H = !!(d & 2), ee = !!(d & 4), de = d & 1;
      switch (b) {
        case 60:
          return this.parseBreakContinueStatement(_, !0);
        case 63:
          return this.parseBreakContinueStatement(_, !1);
        case 64:
          return this.parseDebuggerStatement(_);
        case 90:
          return this.parseDoWhileStatement(_);
        case 91:
          return this.parseForStatement(_);
        case 68:
          if (this.lookaheadCharCode() === 46)
            break;
          return ee || this.raise(this.state.strict ? S.StrictFunction : this.options.annexB ? S.SloppyFunctionAnnexB : S.SloppyFunction, {
            at: this.state.startLoc
          }), this.parseFunctionStatement(_, !1, !H && ee);
        case 80:
          return H || this.unexpected(), this.parseClass(this.maybeTakeDecorators(p, _), !0);
        case 69:
          return this.parseIfStatement(_);
        case 70:
          return this.parseReturnStatement(_);
        case 71:
          return this.parseSwitchStatement(_);
        case 72:
          return this.parseThrowStatement(_);
        case 73:
          return this.parseTryStatement(_);
        case 96:
          if (!this.state.containsEsc && this.startsAwaitUsing())
            return this.isAwaitAllowed() ? H || this.raise(S.UnexpectedLexicalDeclaration, {
              at: _
            }) : this.raise(S.AwaitUsingNotInAsyncContext, {
              at: _
            }), this.next(), this.parseVarStatement(_, "await using");
          break;
        case 105:
          if (this.state.containsEsc || !this.hasInLineFollowingBindingIdentifier())
            break;
          return this.expectPlugin("explicitResourceManagement"), !this.scope.inModule && this.scope.inTopLevel ? this.raise(S.UnexpectedUsingDeclaration, {
            at: this.state.startLoc
          }) : H || this.raise(S.UnexpectedLexicalDeclaration, {
            at: this.state.startLoc
          }), this.parseVarStatement(_, "using");
        case 99: {
          if (this.state.containsEsc)
            break;
          const Je = this.nextTokenStart(), gt = this.codePointAtPos(Je);
          if (gt !== 91 && (!H && this.hasFollowingLineBreak() || !this.chStartsBindingIdentifier(gt, Je) && gt !== 123))
            break;
        }
        case 75:
          H || this.raise(S.UnexpectedLexicalDeclaration, {
            at: this.state.startLoc
          });
        case 74: {
          const Je = this.state.value;
          return this.parseVarStatement(_, Je);
        }
        case 92:
          return this.parseWhileStatement(_);
        case 76:
          return this.parseWithStatement(_);
        case 5:
          return this.parseBlock();
        case 13:
          return this.parseEmptyStatement(_);
        case 83: {
          const Je = this.lookaheadCharCode();
          if (Je === 40 || Je === 46)
            break;
        }
        case 82: {
          !this.options.allowImportExportEverywhere && !de && this.raise(S.UnexpectedImportExport, {
            at: this.state.startLoc
          }), this.next();
          let Je;
          return b === 83 ? (Je = this.parseImport(_), Je.type === "ImportDeclaration" && (!Je.importKind || Je.importKind === "value") && (this.sawUnambiguousESM = !0)) : (Je = this.parseExport(_, p), (Je.type === "ExportNamedDeclaration" && (!Je.exportKind || Je.exportKind === "value") || Je.type === "ExportAllDeclaration" && (!Je.exportKind || Je.exportKind === "value") || Je.type === "ExportDefaultDeclaration") && (this.sawUnambiguousESM = !0)), this.assertModuleNodeAllowed(Je), Je;
        }
        default:
          if (this.isAsyncFunction())
            return H || this.raise(S.AsyncFunctionInSingleStatementContext, {
              at: this.state.startLoc
            }), this.next(), this.parseFunctionStatement(_, !0, !H && ee);
      }
      const Ge = this.state.value, Ye = this.parseExpression();
      return ye(b) && Ye.type === "Identifier" && this.eat(14) ? this.parseLabeledStatement(_, Ge, Ye, d) : this.parseExpressionStatement(_, Ye, p);
    }
    assertModuleNodeAllowed(d) {
      !this.options.allowImportExportEverywhere && !this.inModule && this.raise(S.ImportOutsideModule, {
        at: d
      });
    }
    decoratorsEnabledBeforeExport() {
      return this.hasPlugin("decorators-legacy") ? !0 : this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") !== !1;
    }
    maybeTakeDecorators(d, p, b) {
      return d && (p.decorators && p.decorators.length > 0 ? (typeof this.getPluginOption("decorators", "decoratorsBeforeExport") != "boolean" && this.raise(S.DecoratorsBeforeAfterExport, {
        at: p.decorators[0]
      }), p.decorators.unshift(...d)) : p.decorators = d, this.resetStartLocationFromNode(p, d[0]), b && this.resetStartLocationFromNode(b, p)), p;
    }
    canHaveLeadingDecorator() {
      return this.match(80);
    }
    parseDecorators(d) {
      const p = [];
      do
        p.push(this.parseDecorator());
      while (this.match(26));
      if (this.match(82))
        d || this.unexpected(), this.decoratorsEnabledBeforeExport() || this.raise(S.DecoratorExportClass, {
          at: this.state.startLoc
        });
      else if (!this.canHaveLeadingDecorator())
        throw this.raise(S.UnexpectedLeadingDecorator, {
          at: this.state.startLoc
        });
      return p;
    }
    parseDecorator() {
      this.expectOnePlugin(["decorators", "decorators-legacy"]);
      const d = this.startNode();
      if (this.next(), this.hasPlugin("decorators")) {
        const p = this.state.startLoc;
        let b;
        if (this.match(10)) {
          const _ = this.state.startLoc;
          this.next(), b = this.parseExpression(), this.expect(11), b = this.wrapParenthesis(_, b);
          const H = this.state.startLoc;
          d.expression = this.parseMaybeDecoratorArguments(b), this.getPluginOption("decorators", "allowCallParenthesized") === !1 && d.expression !== b && this.raise(S.DecoratorArgumentsOutsideParentheses, {
            at: H
          });
        } else {
          for (b = this.parseIdentifier(!1); this.eat(16); ) {
            const _ = this.startNodeAt(p);
            _.object = b, this.match(136) ? (this.classScope.usePrivateName(this.state.value, this.state.startLoc), _.property = this.parsePrivateName()) : _.property = this.parseIdentifier(!0), _.computed = !1, b = this.finishNode(_, "MemberExpression");
          }
          d.expression = this.parseMaybeDecoratorArguments(b);
        }
      } else
        d.expression = this.parseExprSubscripts();
      return this.finishNode(d, "Decorator");
    }
    parseMaybeDecoratorArguments(d) {
      if (this.eat(10)) {
        const p = this.startNodeAtNode(d);
        return p.callee = d, p.arguments = this.parseCallExpressionArguments(11, !1), this.toReferencedList(p.arguments), this.finishNode(p, "CallExpression");
      }
      return d;
    }
    parseBreakContinueStatement(d, p) {
      return this.next(), this.isLineTerminator() ? d.label = null : (d.label = this.parseIdentifier(), this.semicolon()), this.verifyBreakContinue(d, p), this.finishNode(d, p ? "BreakStatement" : "ContinueStatement");
    }
    verifyBreakContinue(d, p) {
      let b;
      for (b = 0; b < this.state.labels.length; ++b) {
        const _ = this.state.labels[b];
        if ((d.label == null || _.name === d.label.name) && (_.kind != null && (p || _.kind === "loop") || d.label && p))
          break;
      }
      if (b === this.state.labels.length) {
        const _ = p ? "BreakStatement" : "ContinueStatement";
        this.raise(S.IllegalBreakContinue, {
          at: d,
          type: _
        });
      }
    }
    parseDebuggerStatement(d) {
      return this.next(), this.semicolon(), this.finishNode(d, "DebuggerStatement");
    }
    parseHeaderExpression() {
      this.expect(10);
      const d = this.parseExpression();
      return this.expect(11), d;
    }
    parseDoWhileStatement(d) {
      return this.next(), this.state.labels.push(oo), d.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.state.labels.pop(), this.expect(92), d.test = this.parseHeaderExpression(), this.eat(13), this.finishNode(d, "DoWhileStatement");
    }
    parseForStatement(d) {
      this.next(), this.state.labels.push(oo);
      let p = null;
      if (this.isAwaitAllowed() && this.eatContextual(96) && (p = this.state.lastTokStartLoc), this.scope.enter(an), this.expect(10), this.match(13))
        return p !== null && this.unexpected(p), this.parseFor(d, null);
      const b = this.isContextual(99);
      {
        const Ge = this.isContextual(96) && this.startsAwaitUsing(), Ye = Ge || this.isContextual(105) && this.startsUsingForOf(), Je = b && this.hasFollowingBindingAtom() || Ye;
        if (this.match(74) || this.match(75) || Je) {
          const gt = this.startNode();
          let It;
          Ge ? (It = "await using", this.isAwaitAllowed() || this.raise(S.AwaitUsingNotInAsyncContext, {
            at: this.state.startLoc
          }), this.next()) : It = this.state.value, this.next(), this.parseVar(gt, !0, It);
          const _t = this.finishNode(gt, "VariableDeclaration"), Ht = this.match(58);
          return Ht && Ye && this.raise(S.ForInUsing, {
            at: _t
          }), (Ht || this.isContextual(101)) && _t.declarations.length === 1 ? this.parseForIn(d, _t, p) : (p !== null && this.unexpected(p), this.parseFor(d, _t));
        }
      }
      const _ = this.isContextual(95), H = new ka(), ee = this.parseExpression(!0, H), de = this.isContextual(101);
      if (de && (b && this.raise(S.ForOfLet, {
        at: ee
      }), p === null && _ && ee.type === "Identifier" && this.raise(S.ForOfAsync, {
        at: ee
      })), de || this.match(58)) {
        this.checkDestructuringPrivate(H), this.toAssignable(ee, !0);
        const Ge = de ? "ForOfStatement" : "ForInStatement";
        return this.checkLVal(ee, {
          in: {
            type: Ge
          }
        }), this.parseForIn(d, ee, p);
      } else
        this.checkExpressionErrors(H, !0);
      return p !== null && this.unexpected(p), this.parseFor(d, ee);
    }
    parseFunctionStatement(d, p, b) {
      return this.next(), this.parseFunction(d, 1 | (b ? 2 : 0) | (p ? 8 : 0));
    }
    parseIfStatement(d) {
      return this.next(), d.test = this.parseHeaderExpression(), d.consequent = this.parseStatementOrSloppyAnnexBFunctionDeclaration(), d.alternate = this.eat(66) ? this.parseStatementOrSloppyAnnexBFunctionDeclaration() : null, this.finishNode(d, "IfStatement");
    }
    parseReturnStatement(d) {
      return !this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction && this.raise(S.IllegalReturn, {
        at: this.state.startLoc
      }), this.next(), this.isLineTerminator() ? d.argument = null : (d.argument = this.parseExpression(), this.semicolon()), this.finishNode(d, "ReturnStatement");
    }
    parseSwitchStatement(d) {
      this.next(), d.discriminant = this.parseHeaderExpression();
      const p = d.cases = [];
      this.expect(5), this.state.labels.push(uc), this.scope.enter(an);
      let b;
      for (let _; !this.match(8); )
        if (this.match(61) || this.match(65)) {
          const H = this.match(61);
          b && this.finishNode(b, "SwitchCase"), p.push(b = this.startNode()), b.consequent = [], this.next(), H ? b.test = this.parseExpression() : (_ && this.raise(S.MultipleDefaultsInSwitch, {
            at: this.state.lastTokStartLoc
          }), _ = !0, b.test = null), this.expect(14);
        } else
          b ? b.consequent.push(this.parseStatementListItem()) : this.unexpected();
      return this.scope.exit(), b && this.finishNode(b, "SwitchCase"), this.next(), this.state.labels.pop(), this.finishNode(d, "SwitchStatement");
    }
    parseThrowStatement(d) {
      return this.next(), this.hasPrecedingLineBreak() && this.raise(S.NewlineAfterThrow, {
        at: this.state.lastTokEndLoc
      }), d.argument = this.parseExpression(), this.semicolon(), this.finishNode(d, "ThrowStatement");
    }
    parseCatchClauseParam() {
      const d = this.parseBindingAtom();
      return this.scope.enter(this.options.annexB && d.type === "Identifier" ? en : 0), this.checkLVal(d, {
        in: {
          type: "CatchClause"
        },
        binding: tu
      }), d;
    }
    parseTryStatement(d) {
      if (this.next(), d.block = this.parseBlock(), d.handler = null, this.match(62)) {
        const p = this.startNode();
        this.next(), this.match(10) ? (this.expect(10), p.param = this.parseCatchClauseParam(), this.expect(11)) : (p.param = null, this.scope.enter(an)), p.body = this.withSmartMixTopicForbiddingContext(() => this.parseBlock(!1, !1)), this.scope.exit(), d.handler = this.finishNode(p, "CatchClause");
      }
      return d.finalizer = this.eat(67) ? this.parseBlock() : null, !d.handler && !d.finalizer && this.raise(S.NoCatchOrFinally, {
        at: d
      }), this.finishNode(d, "TryStatement");
    }
    parseVarStatement(d, p, b = !1) {
      return this.next(), this.parseVar(d, !1, p, b), this.semicolon(), this.finishNode(d, "VariableDeclaration");
    }
    parseWhileStatement(d) {
      return this.next(), d.test = this.parseHeaderExpression(), this.state.labels.push(oo), d.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.state.labels.pop(), this.finishNode(d, "WhileStatement");
    }
    parseWithStatement(d) {
      return this.state.strict && this.raise(S.StrictWith, {
        at: this.state.startLoc
      }), this.next(), d.object = this.parseHeaderExpression(), d.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.finishNode(d, "WithStatement");
    }
    parseEmptyStatement(d) {
      return this.next(), this.finishNode(d, "EmptyStatement");
    }
    parseLabeledStatement(d, p, b, _) {
      for (const ee of this.state.labels)
        ee.name === p && this.raise(S.LabelRedeclaration, {
          at: b,
          labelName: p
        });
      const H = Xe(this.state.type) ? "loop" : this.match(71) ? "switch" : null;
      for (let ee = this.state.labels.length - 1; ee >= 0; ee--) {
        const de = this.state.labels[ee];
        if (de.statementStart === d.start)
          de.statementStart = this.state.start, de.kind = H;
        else
          break;
      }
      return this.state.labels.push({
        name: p,
        kind: H,
        statementStart: this.state.start
      }), d.body = _ & 8 ? this.parseStatementOrSloppyAnnexBFunctionDeclaration(!0) : this.parseStatement(), this.state.labels.pop(), d.label = b, this.finishNode(d, "LabeledStatement");
    }
    parseExpressionStatement(d, p, b) {
      return d.expression = p, this.semicolon(), this.finishNode(d, "ExpressionStatement");
    }
    parseBlock(d = !1, p = !0, b) {
      const _ = this.startNode();
      return d && this.state.strictErrors.clear(), this.expect(5), p && this.scope.enter(an), this.parseBlockBody(_, d, !1, 8, b), p && this.scope.exit(), this.finishNode(_, "BlockStatement");
    }
    isValidDirective(d) {
      return d.type === "ExpressionStatement" && d.expression.type === "StringLiteral" && !d.expression.extra.parenthesized;
    }
    parseBlockBody(d, p, b, _, H) {
      const ee = d.body = [], de = d.directives = [];
      this.parseBlockOrModuleBlockBody(ee, p ? de : void 0, b, _, H);
    }
    parseBlockOrModuleBlockBody(d, p, b, _, H) {
      const ee = this.state.strict;
      let de = !1, Ge = !1;
      for (; !this.match(_); ) {
        const Ye = b ? this.parseModuleItem() : this.parseStatementListItem();
        if (p && !Ge) {
          if (this.isValidDirective(Ye)) {
            const Je = this.stmtToDirective(Ye);
            p.push(Je), !de && Je.value.value === "use strict" && (de = !0, this.setStrict(!0));
            continue;
          }
          Ge = !0, this.state.strictErrors.clear();
        }
        d.push(Ye);
      }
      H && H.call(this, de), ee || this.setStrict(!1), this.next();
    }
    parseFor(d, p) {
      return d.init = p, this.semicolon(!1), d.test = this.match(13) ? null : this.parseExpression(), this.semicolon(!1), d.update = this.match(11) ? null : this.parseExpression(), this.expect(11), d.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.scope.exit(), this.state.labels.pop(), this.finishNode(d, "ForStatement");
    }
    parseForIn(d, p, b) {
      const _ = this.match(58);
      return this.next(), _ ? b !== null && this.unexpected(b) : d.await = b !== null, p.type === "VariableDeclaration" && p.declarations[0].init != null && (!_ || !this.options.annexB || this.state.strict || p.kind !== "var" || p.declarations[0].id.type !== "Identifier") && this.raise(S.ForInOfLoopInitializer, {
        at: p,
        type: _ ? "ForInStatement" : "ForOfStatement"
      }), p.type === "AssignmentPattern" && this.raise(S.InvalidLhs, {
        at: p,
        ancestor: {
          type: "ForStatement"
        }
      }), d.left = p, d.right = _ ? this.parseExpression() : this.parseMaybeAssignAllowIn(), this.expect(11), d.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.scope.exit(), this.state.labels.pop(), this.finishNode(d, _ ? "ForInStatement" : "ForOfStatement");
    }
    parseVar(d, p, b, _ = !1) {
      const H = d.declarations = [];
      for (d.kind = b; ; ) {
        const ee = this.startNode();
        if (this.parseVarId(ee, b), ee.init = this.eat(29) ? p ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn() : null, ee.init === null && !_ && (ee.id.type !== "Identifier" && !(p && (this.match(58) || this.isContextual(101))) ? this.raise(S.DeclarationMissingInitializer, {
          at: this.state.lastTokEndLoc,
          kind: "destructuring"
        }) : b === "const" && !(this.match(58) || this.isContextual(101)) && this.raise(S.DeclarationMissingInitializer, {
          at: this.state.lastTokEndLoc,
          kind: "const"
        })), H.push(this.finishNode(ee, "VariableDeclarator")), !this.eat(12))
          break;
      }
      return d;
    }
    parseVarId(d, p) {
      const b = this.parseBindingAtom();
      this.checkLVal(b, {
        in: {
          type: "VariableDeclarator"
        },
        binding: p === "var" ? xa : Cs
      }), d.id = b;
    }
    parseAsyncFunctionExpression(d) {
      return this.parseFunction(d, 8);
    }
    parseFunction(d, p = 0) {
      const b = p & 2, _ = !!(p & 1), H = _ && !(p & 4), ee = !!(p & 8);
      this.initFunction(d, ee), this.match(55) && (b && this.raise(S.GeneratorInSingleStatementContext, {
        at: this.state.startLoc
      }), this.next(), d.generator = !0), _ && (d.id = this.parseFunctionId(H));
      const de = this.state.maybeInArrowParameters;
      return this.state.maybeInArrowParameters = !1, this.scope.enter(on), this.prodParam.enter(Ia(ee, d.generator)), _ || (d.id = this.parseFunctionId()), this.parseFunctionParams(d, !1), this.withSmartMixTopicForbiddingContext(() => {
        this.parseFunctionBodyAndFinish(d, _ ? "FunctionDeclaration" : "FunctionExpression");
      }), this.prodParam.exit(), this.scope.exit(), _ && !b && this.registerFunctionStatementId(d), this.state.maybeInArrowParameters = de, d;
    }
    parseFunctionId(d) {
      return d || ye(this.state.type) ? this.parseIdentifier() : null;
    }
    parseFunctionParams(d, p) {
      this.expect(10), this.expressionScope.enter(Iu()), d.params = this.parseBindingList(11, 41, 2 | (p ? 4 : 0)), this.expressionScope.exit();
    }
    registerFunctionStatementId(d) {
      d.id && this.scope.declareName(d.id.name, !this.options.annexB || this.state.strict || d.generator || d.async ? this.scope.treatFunctionsAsVar ? xa : Cs : Ro, d.id.loc.start);
    }
    parseClass(d, p, b) {
      this.next();
      const _ = this.state.strict;
      return this.state.strict = !0, this.parseClassId(d, p, b), this.parseClassSuper(d), d.body = this.parseClassBody(!!d.superClass, _), this.finishNode(d, p ? "ClassDeclaration" : "ClassExpression");
    }
    isClassProperty() {
      return this.match(29) || this.match(13) || this.match(8);
    }
    isClassMethod() {
      return this.match(10);
    }
    isNonstaticConstructor(d) {
      return !d.computed && !d.static && (d.key.name === "constructor" || d.key.value === "constructor");
    }
    parseClassBody(d, p) {
      this.classScope.enter();
      const b = {
        hadConstructor: !1,
        hadSuperClass: d
      };
      let _ = [];
      const H = this.startNode();
      if (H.body = [], this.expect(5), this.withSmartMixTopicForbiddingContext(() => {
        for (; !this.match(8); ) {
          if (this.eat(13)) {
            if (_.length > 0)
              throw this.raise(S.DecoratorSemicolon, {
                at: this.state.lastTokEndLoc
              });
            continue;
          }
          if (this.match(26)) {
            _.push(this.parseDecorator());
            continue;
          }
          const ee = this.startNode();
          _.length && (ee.decorators = _, this.resetStartLocationFromNode(ee, _[0]), _ = []), this.parseClassMember(H, ee, b), ee.kind === "constructor" && ee.decorators && ee.decorators.length > 0 && this.raise(S.DecoratorConstructor, {
            at: ee
          });
        }
      }), this.state.strict = p, this.next(), _.length)
        throw this.raise(S.TrailingDecorator, {
          at: this.state.startLoc
        });
      return this.classScope.exit(), this.finishNode(H, "ClassBody");
    }
    parseClassMemberFromModifier(d, p) {
      const b = this.parseIdentifier(!0);
      if (this.isClassMethod()) {
        const _ = p;
        return _.kind = "method", _.computed = !1, _.key = b, _.static = !1, this.pushClassMethod(d, _, !1, !1, !1, !1), !0;
      } else if (this.isClassProperty()) {
        const _ = p;
        return _.computed = !1, _.key = b, _.static = !1, d.body.push(this.parseClassProperty(_)), !0;
      }
      return this.resetPreviousNodeTrailingComments(b), !1;
    }
    parseClassMember(d, p, b) {
      const _ = this.isContextual(104);
      if (_) {
        if (this.parseClassMemberFromModifier(d, p))
          return;
        if (this.eat(5)) {
          this.parseClassStaticBlock(d, p);
          return;
        }
      }
      this.parseClassMemberWithIsStatic(d, p, b, _);
    }
    parseClassMemberWithIsStatic(d, p, b, _) {
      const H = p, ee = p, de = p, Ge = p, Ye = p, Je = H, gt = H;
      if (p.static = _, this.parsePropertyNamePrefixOperator(p), this.eat(55)) {
        Je.kind = "method";
        const Li = this.match(136);
        if (this.parseClassElementName(Je), Li) {
          this.pushClassPrivateMethod(d, ee, !0, !1);
          return;
        }
        this.isNonstaticConstructor(H) && this.raise(S.ConstructorIsGenerator, {
          at: H.key
        }), this.pushClassMethod(d, H, !0, !1, !1, !1);
        return;
      }
      const It = ye(this.state.type) && !this.state.containsEsc, _t = this.match(136), Ht = this.parseClassElementName(p), zi = this.state.startLoc;
      if (this.parsePostMemberNameModifiers(gt), this.isClassMethod()) {
        if (Je.kind = "method", _t) {
          this.pushClassPrivateMethod(d, ee, !1, !1);
          return;
        }
        const Li = this.isNonstaticConstructor(H);
        let Mi = !1;
        Li && (H.kind = "constructor", b.hadConstructor && !this.hasPlugin("typescript") && this.raise(S.DuplicateConstructor, {
          at: Ht
        }), Li && this.hasPlugin("typescript") && p.override && this.raise(S.OverrideOnConstructor, {
          at: Ht
        }), b.hadConstructor = !0, Mi = b.hadSuperClass), this.pushClassMethod(d, H, !1, !1, Li, Mi);
      } else if (this.isClassProperty())
        _t ? this.pushClassPrivateProperty(d, Ge) : this.pushClassProperty(d, de);
      else if (It && Ht.name === "async" && !this.isLineTerminator()) {
        this.resetPreviousNodeTrailingComments(Ht);
        const Li = this.eat(55);
        gt.optional && this.unexpected(zi), Je.kind = "method";
        const Mi = this.match(136);
        this.parseClassElementName(Je), this.parsePostMemberNameModifiers(gt), Mi ? this.pushClassPrivateMethod(d, ee, Li, !0) : (this.isNonstaticConstructor(H) && this.raise(S.ConstructorIsAsync, {
          at: H.key
        }), this.pushClassMethod(d, H, Li, !0, !1, !1));
      } else if (It && (Ht.name === "get" || Ht.name === "set") && !(this.match(55) && this.isLineTerminator())) {
        this.resetPreviousNodeTrailingComments(Ht), Je.kind = Ht.name;
        const Li = this.match(136);
        this.parseClassElementName(H), Li ? this.pushClassPrivateMethod(d, ee, !1, !1) : (this.isNonstaticConstructor(H) && this.raise(S.ConstructorIsAccessor, {
          at: H.key
        }), this.pushClassMethod(d, H, !1, !1, !1, !1)), this.checkGetterSetterParams(H);
      } else if (It && Ht.name === "accessor" && !this.isLineTerminator()) {
        this.expectPlugin("decoratorAutoAccessors"), this.resetPreviousNodeTrailingComments(Ht);
        const Li = this.match(136);
        this.parseClassElementName(de), this.pushClassAccessorProperty(d, Ye, Li);
      } else
        this.isLineTerminator() ? _t ? this.pushClassPrivateProperty(d, Ge) : this.pushClassProperty(d, de) : this.unexpected();
    }
    parseClassElementName(d) {
      const {
        type: p,
        value: b
      } = this.state;
      if ((p === 130 || p === 131) && d.static && b === "prototype" && this.raise(S.StaticPrototype, {
        at: this.state.startLoc
      }), p === 136) {
        b === "constructor" && this.raise(S.ConstructorClassPrivateField, {
          at: this.state.startLoc
        });
        const _ = this.parsePrivateName();
        return d.key = _, _;
      }
      return this.parsePropertyName(d);
    }
    parseClassStaticBlock(d, p) {
      var b;
      this.scope.enter(us | ga | bi);
      const _ = this.state.labels;
      this.state.labels = [], this.prodParam.enter(_s);
      const H = p.body = [];
      this.parseBlockOrModuleBlockBody(H, void 0, !1, 8), this.prodParam.exit(), this.scope.exit(), this.state.labels = _, d.body.push(this.finishNode(p, "StaticBlock")), (b = p.decorators) != null && b.length && this.raise(S.DecoratorStaticBlock, {
        at: p
      });
    }
    pushClassProperty(d, p) {
      !p.computed && (p.key.name === "constructor" || p.key.value === "constructor") && this.raise(S.ConstructorClassField, {
        at: p.key
      }), d.body.push(this.parseClassProperty(p));
    }
    pushClassPrivateProperty(d, p) {
      const b = this.parseClassPrivateProperty(p);
      d.body.push(b), this.classScope.declarePrivateName(this.getPrivateNameSV(b.key), Za, b.key.loc.start);
    }
    pushClassAccessorProperty(d, p, b) {
      if (!b && !p.computed) {
        const H = p.key;
        (H.name === "constructor" || H.value === "constructor") && this.raise(S.ConstructorClassField, {
          at: H
        });
      }
      const _ = this.parseClassAccessorProperty(p);
      d.body.push(_), b && this.classScope.declarePrivateName(this.getPrivateNameSV(_.key), Za, _.key.loc.start);
    }
    pushClassMethod(d, p, b, _, H, ee) {
      d.body.push(this.parseMethod(p, b, _, H, ee, "ClassMethod", !0));
    }
    pushClassPrivateMethod(d, p, b, _) {
      const H = this.parseMethod(p, b, _, !1, !1, "ClassPrivateMethod", !0);
      d.body.push(H);
      const ee = H.kind === "get" ? H.static ? lu : cu : H.kind === "set" ? H.static ? uu : pu : Za;
      this.declareClassPrivateMethodInScope(H, ee);
    }
    declareClassPrivateMethodInScope(d, p) {
      this.classScope.declarePrivateName(this.getPrivateNameSV(d.key), p, d.key.loc.start);
    }
    parsePostMemberNameModifiers(d) {
    }
    parseClassPrivateProperty(d) {
      return this.parseInitializer(d), this.semicolon(), this.finishNode(d, "ClassPrivateProperty");
    }
    parseClassProperty(d) {
      return this.parseInitializer(d), this.semicolon(), this.finishNode(d, "ClassProperty");
    }
    parseClassAccessorProperty(d) {
      return this.parseInitializer(d), this.semicolon(), this.finishNode(d, "ClassAccessorProperty");
    }
    parseInitializer(d) {
      this.scope.enter(us | bi), this.expressionScope.enter(Xo()), this.prodParam.enter(_s), d.value = this.eat(29) ? this.parseMaybeAssignAllowIn() : null, this.expressionScope.exit(), this.prodParam.exit(), this.scope.exit();
    }
    parseClassId(d, p, b, _ = Mo) {
      if (ye(this.state.type))
        d.id = this.parseIdentifier(), p && this.declareNameFromIdentifier(d.id, _);
      else if (b || !p)
        d.id = null;
      else
        throw this.raise(S.MissingClassName, {
          at: this.state.startLoc
        });
    }
    parseClassSuper(d) {
      d.superClass = this.eat(81) ? this.parseExprSubscripts() : null;
    }
    parseExport(d, p) {
      const b = this.parseMaybeImportPhase(d, !0), _ = this.maybeParseExportDefaultSpecifier(d, b), H = !_ || this.eat(12), ee = H && this.eatExportStar(d), de = ee && this.maybeParseExportNamespaceSpecifier(d), Ge = H && (!de || this.eat(12)), Ye = _ || ee;
      if (ee && !de) {
        if (_ && this.unexpected(), p)
          throw this.raise(S.UnsupportedDecoratorExport, {
            at: d
          });
        return this.parseExportFrom(d, !0), this.finishNode(d, "ExportAllDeclaration");
      }
      const Je = this.maybeParseExportNamedSpecifiers(d);
      _ && H && !ee && !Je && this.unexpected(null, 5), de && Ge && this.unexpected(null, 97);
      let gt;
      if (Ye || Je) {
        if (gt = !1, p)
          throw this.raise(S.UnsupportedDecoratorExport, {
            at: d
          });
        this.parseExportFrom(d, Ye);
      } else
        gt = this.maybeParseExportDeclaration(d);
      if (Ye || Je || gt) {
        var It;
        const _t = d;
        if (this.checkExport(_t, !0, !1, !!_t.source), ((It = _t.declaration) == null ? void 0 : It.type) === "ClassDeclaration")
          this.maybeTakeDecorators(p, _t.declaration, _t);
        else if (p)
          throw this.raise(S.UnsupportedDecoratorExport, {
            at: d
          });
        return this.finishNode(_t, "ExportNamedDeclaration");
      }
      if (this.eat(65)) {
        const _t = d, Ht = this.parseExportDefaultExpression();
        if (_t.declaration = Ht, Ht.type === "ClassDeclaration")
          this.maybeTakeDecorators(p, Ht, _t);
        else if (p)
          throw this.raise(S.UnsupportedDecoratorExport, {
            at: d
          });
        return this.checkExport(_t, !0, !0), this.finishNode(_t, "ExportDefaultDeclaration");
      }
      this.unexpected(null, 5);
    }
    eatExportStar(d) {
      return this.eat(55);
    }
    maybeParseExportDefaultSpecifier(d, p) {
      if (p || this.isExportDefaultSpecifier()) {
        this.expectPlugin("exportDefaultFrom", p == null ? void 0 : p.loc.start);
        const b = p || this.parseIdentifier(!0), _ = this.startNodeAtNode(b);
        return _.exported = b, d.specifiers = [this.finishNode(_, "ExportDefaultSpecifier")], !0;
      }
      return !1;
    }
    maybeParseExportNamespaceSpecifier(d) {
      if (this.isContextual(93)) {
        d.specifiers || (d.specifiers = []);
        const p = this.startNodeAt(this.state.lastTokStartLoc);
        return this.next(), p.exported = this.parseModuleExportName(), d.specifiers.push(this.finishNode(p, "ExportNamespaceSpecifier")), !0;
      }
      return !1;
    }
    maybeParseExportNamedSpecifiers(d) {
      if (this.match(5)) {
        d.specifiers || (d.specifiers = []);
        const p = d.exportKind === "type";
        return d.specifiers.push(...this.parseExportSpecifiers(p)), d.source = null, d.declaration = null, this.hasPlugin("importAssertions") && (d.assertions = []), !0;
      }
      return !1;
    }
    maybeParseExportDeclaration(d) {
      return this.shouldParseExportDeclaration() ? (d.specifiers = [], d.source = null, this.hasPlugin("importAssertions") && (d.assertions = []), d.declaration = this.parseExportDeclaration(d), !0) : !1;
    }
    isAsyncFunction() {
      if (!this.isContextual(95))
        return !1;
      const d = this.nextTokenInLineStart();
      return this.isUnparsedContextual(d, "function");
    }
    parseExportDefaultExpression() {
      const d = this.startNode();
      if (this.match(68))
        return this.next(), this.parseFunction(d, 5);
      if (this.isAsyncFunction())
        return this.next(), this.next(), this.parseFunction(d, 13);
      if (this.match(80))
        return this.parseClass(d, !0, !0);
      if (this.match(26))
        return this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") === !0 && this.raise(S.DecoratorBeforeExport, {
          at: this.state.startLoc
        }), this.parseClass(this.maybeTakeDecorators(this.parseDecorators(!1), this.startNode()), !0, !0);
      if (this.match(75) || this.match(74) || this.isLet())
        throw this.raise(S.UnsupportedDefaultExport, {
          at: this.state.startLoc
        });
      const p = this.parseMaybeAssignAllowIn();
      return this.semicolon(), p;
    }
    parseExportDeclaration(d) {
      return this.match(80) ? this.parseClass(this.startNode(), !0, !1) : this.parseStatementListItem();
    }
    isExportDefaultSpecifier() {
      const {
        type: d
      } = this.state;
      if (ye(d)) {
        if (d === 95 && !this.state.containsEsc || d === 99)
          return !1;
        if ((d === 128 || d === 127) && !this.state.containsEsc) {
          const {
            type: _
          } = this.lookahead();
          if (ye(_) && _ !== 97 || _ === 5)
            return this.expectOnePlugin(["flow", "typescript"]), !1;
        }
      } else if (!this.match(65))
        return !1;
      const p = this.nextTokenStart(), b = this.isUnparsedContextual(p, "from");
      if (this.input.charCodeAt(p) === 44 || ye(this.state.type) && b)
        return !0;
      if (this.match(65) && b) {
        const _ = this.input.charCodeAt(this.nextTokenStartSince(p + 4));
        return _ === 34 || _ === 39;
      }
      return !1;
    }
    parseExportFrom(d, p) {
      this.eatContextual(97) ? (d.source = this.parseImportSource(), this.checkExport(d), this.maybeParseImportAttributes(d), this.checkJSONModuleImport(d)) : p && this.unexpected(), this.semicolon();
    }
    shouldParseExportDeclaration() {
      const {
        type: d
      } = this.state;
      return d === 26 && (this.expectOnePlugin(["decorators", "decorators-legacy"]), this.hasPlugin("decorators")) ? (this.getPluginOption("decorators", "decoratorsBeforeExport") === !0 && this.raise(S.DecoratorBeforeExport, {
        at: this.state.startLoc
      }), !0) : d === 74 || d === 75 || d === 68 || d === 80 || this.isLet() || this.isAsyncFunction();
    }
    checkExport(d, p, b, _) {
      if (p) {
        if (b) {
          if (this.checkDuplicateExports(d, "default"), this.hasPlugin("exportDefaultFrom")) {
            var H;
            const ee = d.declaration;
            ee.type === "Identifier" && ee.name === "from" && ee.end - ee.start === 4 && !((H = ee.extra) != null && H.parenthesized) && this.raise(S.ExportDefaultFromAsIdentifier, {
              at: ee
            });
          }
        } else if (d.specifiers && d.specifiers.length)
          for (const ee of d.specifiers) {
            const {
              exported: de
            } = ee, Ge = de.type === "Identifier" ? de.name : de.value;
            if (this.checkDuplicateExports(ee, Ge), !_ && ee.local) {
              const {
                local: Ye
              } = ee;
              Ye.type !== "Identifier" ? this.raise(S.ExportBindingIsString, {
                at: ee,
                localName: Ye.value,
                exportName: Ge
              }) : (this.checkReservedWord(Ye.name, Ye.loc.start, !0, !1), this.scope.checkLocalExport(Ye));
            }
          }
        else if (d.declaration) {
          if (d.declaration.type === "FunctionDeclaration" || d.declaration.type === "ClassDeclaration") {
            const ee = d.declaration.id;
            if (!ee)
              throw new Error("Assertion failure");
            this.checkDuplicateExports(d, ee.name);
          } else if (d.declaration.type === "VariableDeclaration")
            for (const ee of d.declaration.declarations)
              this.checkDeclaration(ee.id);
        }
      }
    }
    checkDeclaration(d) {
      if (d.type === "Identifier")
        this.checkDuplicateExports(d, d.name);
      else if (d.type === "ObjectPattern")
        for (const p of d.properties)
          this.checkDeclaration(p);
      else if (d.type === "ArrayPattern")
        for (const p of d.elements)
          p && this.checkDeclaration(p);
      else
        d.type === "ObjectProperty" ? this.checkDeclaration(d.value) : d.type === "RestElement" ? this.checkDeclaration(d.argument) : d.type === "AssignmentPattern" && this.checkDeclaration(d.left);
    }
    checkDuplicateExports(d, p) {
      this.exportedIdentifiers.has(p) && (p === "default" ? this.raise(S.DuplicateDefaultExport, {
        at: d
      }) : this.raise(S.DuplicateExport, {
        at: d,
        exportName: p
      })), this.exportedIdentifiers.add(p);
    }
    parseExportSpecifiers(d) {
      const p = [];
      let b = !0;
      for (this.expect(5); !this.eat(8); ) {
        if (b)
          b = !1;
        else if (this.expect(12), this.eat(8))
          break;
        const _ = this.isContextual(128), H = this.match(131), ee = this.startNode();
        ee.local = this.parseModuleExportName(), p.push(this.parseExportSpecifier(ee, H, d, _));
      }
      return p;
    }
    parseExportSpecifier(d, p, b, _) {
      return this.eatContextual(93) ? d.exported = this.parseModuleExportName() : p ? d.exported = Mu(d.local) : d.exported || (d.exported = Gn(d.local)), this.finishNode(d, "ExportSpecifier");
    }
    parseModuleExportName() {
      if (this.match(131)) {
        const d = this.parseStringLiteral(this.state.value), p = d.value.match(cc);
        return p && this.raise(S.ModuleExportNameHasLoneSurrogate, {
          at: d,
          surrogateCharCode: p[0].charCodeAt(0)
        }), d;
      }
      return this.parseIdentifier(!0);
    }
    isJSONModuleImport(d) {
      return d.assertions != null ? d.assertions.some(({
        key: p,
        value: b
      }) => b.value === "json" && (p.type === "Identifier" ? p.name === "type" : p.value === "type")) : !1;
    }
    checkImportReflection(d) {
      if (d.module) {
        var p;
        (d.specifiers.length !== 1 || d.specifiers[0].type !== "ImportDefaultSpecifier") && this.raise(S.ImportReflectionNotBinding, {
          at: d.specifiers[0].loc.start
        }), ((p = d.assertions) == null ? void 0 : p.length) > 0 && this.raise(S.ImportReflectionHasAssertion, {
          at: d.specifiers[0].loc.start
        });
      }
    }
    checkJSONModuleImport(d) {
      if (this.isJSONModuleImport(d) && d.type !== "ExportAllDeclaration") {
        const {
          specifiers: p
        } = d;
        if (p != null) {
          const b = p.find((_) => {
            let H;
            if (_.type === "ExportSpecifier" ? H = _.local : _.type === "ImportSpecifier" && (H = _.imported), H !== void 0)
              return H.type === "Identifier" ? H.name !== "default" : H.value !== "default";
          });
          b !== void 0 && this.raise(S.ImportJSONBindingNotDefault, {
            at: b.loc.start
          });
        }
      }
    }
    isPotentialImportPhase(d) {
      return !d && this.isContextual(125);
    }
    applyImportPhase(d, p, b, _) {
      p || (b === "module" ? (this.expectPlugin("importReflection", _), d.module = !0) : this.hasPlugin("importReflection") && (d.module = !1));
    }
    parseMaybeImportPhase(d, p) {
      if (!this.isPotentialImportPhase(p))
        return this.applyImportPhase(d, p, null), null;
      const b = this.parseIdentifier(!0), {
        type: _
      } = this.state;
      return (Z(_) ? _ !== 97 || this.lookaheadCharCode() === 102 : _ !== 12) ? (this.resetPreviousIdentifierLeadingComments(b), this.applyImportPhase(d, p, b.name, b.loc.start), null) : (this.applyImportPhase(d, p, null), b);
    }
    isPrecedingIdImportPhase(d) {
      const {
        type: p
      } = this.state;
      return ye(p) ? p !== 97 || this.lookaheadCharCode() === 102 : p !== 12;
    }
    parseImport(d) {
      return this.match(131) ? this.parseImportSourceAndAttributes(d) : this.parseImportSpecifiersAndAfter(d, this.parseMaybeImportPhase(d, !1));
    }
    parseImportSpecifiersAndAfter(d, p) {
      d.specifiers = [];
      const _ = !this.maybeParseDefaultImportSpecifier(d, p) || this.eat(12), H = _ && this.maybeParseStarImportSpecifier(d);
      return _ && !H && this.parseNamedImportSpecifiers(d), this.expectContextual(97), this.parseImportSourceAndAttributes(d);
    }
    parseImportSourceAndAttributes(d) {
      var p;
      return (p = d.specifiers) != null || (d.specifiers = []), d.source = this.parseImportSource(), this.maybeParseImportAttributes(d), this.checkImportReflection(d), this.checkJSONModuleImport(d), this.semicolon(), this.finishNode(d, "ImportDeclaration");
    }
    parseImportSource() {
      return this.match(131) || this.unexpected(), this.parseExprAtom();
    }
    parseImportSpecifierLocal(d, p, b) {
      p.local = this.parseIdentifier(), d.specifiers.push(this.finishImportSpecifier(p, b));
    }
    finishImportSpecifier(d, p, b = Cs) {
      return this.checkLVal(d.local, {
        in: {
          type: p
        },
        binding: b
      }), this.finishNode(d, p);
    }
    parseImportAttributes() {
      this.expect(5);
      const d = [], p = /* @__PURE__ */ new Set();
      do {
        if (this.match(8))
          break;
        const b = this.startNode(), _ = this.state.value;
        if (p.has(_) && this.raise(S.ModuleAttributesWithDuplicateKeys, {
          at: this.state.startLoc,
          key: _
        }), p.add(_), this.match(131) ? b.key = this.parseStringLiteral(_) : b.key = this.parseIdentifier(!0), this.expect(14), !this.match(131))
          throw this.raise(S.ModuleAttributeInvalidValue, {
            at: this.state.startLoc
          });
        b.value = this.parseStringLiteral(this.state.value), d.push(this.finishNode(b, "ImportAttribute"));
      } while (this.eat(12));
      return this.expect(8), d;
    }
    parseModuleAttributes() {
      const d = [], p = /* @__PURE__ */ new Set();
      do {
        const b = this.startNode();
        if (b.key = this.parseIdentifier(!0), b.key.name !== "type" && this.raise(S.ModuleAttributeDifferentFromType, {
          at: b.key
        }), p.has(b.key.name) && this.raise(S.ModuleAttributesWithDuplicateKeys, {
          at: b.key,
          key: b.key.name
        }), p.add(b.key.name), this.expect(14), !this.match(131))
          throw this.raise(S.ModuleAttributeInvalidValue, {
            at: this.state.startLoc
          });
        b.value = this.parseStringLiteral(this.state.value), d.push(this.finishNode(b, "ImportAttribute"));
      } while (this.eat(12));
      return d;
    }
    maybeParseImportAttributes(d) {
      let p, b = !1;
      if (this.match(76)) {
        if (this.hasPrecedingLineBreak() && this.lookaheadCharCode() === 40)
          return;
        this.next(), this.hasPlugin("moduleAttributes") ? p = this.parseModuleAttributes() : (this.expectImportAttributesPlugin(), p = this.parseImportAttributes()), b = !0;
      } else if (this.isContextual(94) && !this.hasPrecedingLineBreak())
        this.hasPlugin("importAttributes") ? (this.getPluginOption("importAttributes", "deprecatedAssertSyntax") !== !0 && this.raise(S.ImportAttributesUseAssert, {
          at: this.state.startLoc
        }), this.addExtra(d, "deprecatedAssertSyntax", !0)) : this.expectOnePlugin(["importAttributes", "importAssertions"]), this.next(), p = this.parseImportAttributes();
      else if (this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions"))
        p = [];
      else if (this.hasPlugin("moduleAttributes"))
        p = [];
      else
        return;
      !b && this.hasPlugin("importAssertions") ? d.assertions = p : d.attributes = p;
    }
    maybeParseDefaultImportSpecifier(d, p) {
      if (p) {
        const b = this.startNodeAtNode(p);
        return b.local = p, d.specifiers.push(this.finishImportSpecifier(b, "ImportDefaultSpecifier")), !0;
      } else if (Z(this.state.type))
        return this.parseImportSpecifierLocal(d, this.startNode(), "ImportDefaultSpecifier"), !0;
      return !1;
    }
    maybeParseStarImportSpecifier(d) {
      if (this.match(55)) {
        const p = this.startNode();
        return this.next(), this.expectContextual(93), this.parseImportSpecifierLocal(d, p, "ImportNamespaceSpecifier"), !0;
      }
      return !1;
    }
    parseNamedImportSpecifiers(d) {
      let p = !0;
      for (this.expect(5); !this.eat(8); ) {
        if (p)
          p = !1;
        else {
          if (this.eat(14))
            throw this.raise(S.DestructureNamedImport, {
              at: this.state.startLoc
            });
          if (this.expect(12), this.eat(8))
            break;
        }
        const b = this.startNode(), _ = this.match(131), H = this.isContextual(128);
        b.imported = this.parseModuleExportName();
        const ee = this.parseImportSpecifier(b, _, d.importKind === "type" || d.importKind === "typeof", H, void 0);
        d.specifiers.push(ee);
      }
    }
    parseImportSpecifier(d, p, b, _, H) {
      if (this.eatContextual(93))
        d.local = this.parseIdentifier();
      else {
        const {
          imported: ee
        } = d;
        if (p)
          throw this.raise(S.ImportBindingIsString, {
            at: d,
            importName: ee.value
          });
        this.checkReservedWord(ee.name, d.loc.start, !0, !0), d.local || (d.local = Gn(ee));
      }
      return this.finishImportSpecifier(d, "ImportSpecifier", H);
    }
    isThisParam(d) {
      return d.type === "Identifier" && d.name === "this";
    }
  }
  class pl extends fc {
    constructor(d, p) {
      d = oc(d), super(d, p), this.options = d, this.initializeScopes(), this.plugins = hc(this.options.plugins), this.filename = d.sourceFilename;
    }
    getScopeHandler() {
      return to;
    }
    parse() {
      this.enterInitialScopes();
      const d = this.startNode(), p = this.startNode();
      return this.nextToken(), d.errors = null, this.parseTopLevel(d, p), d.errors = this.state.errors, d;
    }
  }
  function hc(B) {
    const d = /* @__PURE__ */ new Map();
    for (const p of B) {
      const [b, _] = Array.isArray(p) ? p : [p, {}];
      d.has(b) || d.set(b, _ || {});
    }
    return d;
  }
  function dc(B, d) {
    var p;
    if (((p = d) == null ? void 0 : p.sourceType) === "unambiguous") {
      d = Object.assign({}, d);
      try {
        d.sourceType = "module";
        const b = Ks(d, B), _ = b.parse();
        if (b.sawUnambiguousESM)
          return _;
        if (b.ambiguousScriptDifferentAst)
          try {
            return d.sourceType = "script", Ks(d, B).parse();
          } catch (H) {
          }
        else
          _.program.sourceType = "script";
        return _;
      } catch (b) {
        try {
          return d.sourceType = "script", Ks(d, B).parse();
        } catch (_) {
        }
        throw b;
      }
    } else
      return Ks(d, B).parse();
  }
  function mc(B, d) {
    const p = Ks(d, B);
    return p.options.strictMode && (p.state.strict = !0), p.getExpression();
  }
  function yc(B) {
    const d = {};
    for (const p of Object.keys(B))
      d[p] = ut(B[p]);
    return d;
  }
  const gc = yc(be);
  function Ks(B, d) {
    let p = pl;
    return B != null && B.plugins && (sc(B.plugins), p = bc(B.plugins)), new p(B, d);
  }
  const fl = {};
  function bc(B) {
    const d = ac.filter((_) => Di(B, _)), p = d.join("/");
    let b = fl[p];
    if (!b) {
      b = pl;
      for (const _ of d)
        b = ul[_](b);
      fl[p] = b;
    }
    return b;
  }
  return Bm.parse = dc, Bm.parseExpression = mc, Bm.tokTypes = gc, Bm;
}
var JE = {}, NR = {}, w_ = {}, A_ = {}, C_ = {}, Oe = {}, JT = {};
Object.defineProperty(JT, "__esModule", {
  value: !0
});
JT.default = Ist;
function Ist(e, t) {
  const r = Object.keys(t);
  for (const i of r)
    if (e[i] !== t[i])
      return !1;
  return !0;
}
var Cg = {};
Object.defineProperty(Cg, "__esModule", {
  value: !0
});
Cg.default = kst;
const qY = /* @__PURE__ */ new Set();
function kst(e, t, r = "") {
  if (qY.has(e))
    return;
  qY.add(e);
  const {
    internal: i,
    trace: n
  } = Ost(1, 2);
  i || console.warn("".concat(r, "`").concat(e, "` has been deprecated, please migrate to `").concat(t, "`\n").concat(n));
}
function Ost(e, t) {
  const {
    stackTraceLimit: r,
    prepareStackTrace: i
  } = Error;
  let n;
  if (Error.stackTraceLimit = 1 + e + t, Error.prepareStackTrace = function(a, o) {
    n = o;
  }, new Error().stack, Error.stackTraceLimit = r, Error.prepareStackTrace = i, !n)
    return {
      internal: !1,
      trace: ""
    };
  const s = n.slice(1 + e, 1 + e + t);
  return {
    internal: /[\\/]@babel[\\/]/.test(s[1].getFileName()),
    trace: s.map((a) => "    at ".concat(a)).join("\n")
  };
}
Object.defineProperty(Oe, "__esModule", {
  value: !0
});
Oe.isAccessor = Hct;
Oe.isAnyTypeAnnotation = fot;
Oe.isArgumentPlaceholder = Ult;
Oe.isArrayExpression = Nst;
Oe.isArrayPattern = kat;
Oe.isArrayTypeAnnotation = hot;
Oe.isArrowFunctionExpression = Oat;
Oe.isAssignmentExpression = Dst;
Oe.isAssignmentPattern = Iat;
Oe.isAwaitExpression = eot;
Oe.isBigIntLiteral = rot;
Oe.isBinary = dct;
Oe.isBinaryExpression = Lst;
Oe.isBindExpression = qlt;
Oe.isBlock = gct;
Oe.isBlockParent = yct;
Oe.isBlockStatement = Fst;
Oe.isBooleanLiteral = sat;
Oe.isBooleanLiteralTypeAnnotation = mot;
Oe.isBooleanTypeAnnotation = dot;
Oe.isBreakStatement = jst;
Oe.isCallExpression = $st;
Oe.isCatchClause = Ust;
Oe.isClass = qct;
Oe.isClassAccessorProperty = oot;
Oe.isClassBody = Nat;
Oe.isClassDeclaration = Lat;
Oe.isClassExpression = Dat;
Oe.isClassImplements = got;
Oe.isClassMethod = Kat;
Oe.isClassPrivateMethod = uot;
Oe.isClassPrivateProperty = lot;
Oe.isClassProperty = aot;
Oe.isCompletionStatement = Tct;
Oe.isConditional = Sct;
Oe.isConditionalExpression = qst;
Oe.isContinueStatement = Vst;
Oe.isDebuggerStatement = Wst;
Oe.isDecimalLiteral = Ylt;
Oe.isDeclaration = kct;
Oe.isDeclareClass = bot;
Oe.isDeclareExportAllDeclaration = Cot;
Oe.isDeclareExportDeclaration = Aot;
Oe.isDeclareFunction = vot;
Oe.isDeclareInterface = Tot;
Oe.isDeclareModule = Sot;
Oe.isDeclareModuleExports = xot;
Oe.isDeclareOpaqueType = Pot;
Oe.isDeclareTypeAlias = Eot;
Oe.isDeclareVariable = wot;
Oe.isDeclaredPredicate = _ot;
Oe.isDecorator = Wlt;
Oe.isDirective = Rst;
Oe.isDirectiveLiteral = Bst;
Oe.isDoExpression = Hlt;
Oe.isDoWhileStatement = Hst;
Oe.isEmptyStatement = Kst;
Oe.isEmptyTypeAnnotation = jot;
Oe.isEnumBody = Qct;
Oe.isEnumBooleanBody = hlt;
Oe.isEnumBooleanMember = glt;
Oe.isEnumDeclaration = flt;
Oe.isEnumDefaultedMember = Tlt;
Oe.isEnumMember = Zct;
Oe.isEnumNumberBody = dlt;
Oe.isEnumNumberMember = blt;
Oe.isEnumStringBody = mlt;
Oe.isEnumStringMember = vlt;
Oe.isEnumSymbolBody = ylt;
Oe.isExistsTypeAnnotation = Iot;
Oe.isExportAllDeclaration = Mat;
Oe.isExportDeclaration = Vct;
Oe.isExportDefaultDeclaration = Rat;
Oe.isExportDefaultSpecifier = Klt;
Oe.isExportNamedDeclaration = Bat;
Oe.isExportNamespaceSpecifier = iot;
Oe.isExportSpecifier = Fat;
Oe.isExpression = hct;
Oe.isExpressionStatement = zst;
Oe.isExpressionWrapper = Pct;
Oe.isFile = Gst;
Oe.isFlow = zct;
Oe.isFlowBaseAnnotation = Yct;
Oe.isFlowDeclaration = Xct;
Oe.isFlowPredicate = Jct;
Oe.isFlowType = Gct;
Oe.isFor = wct;
Oe.isForInStatement = Yst;
Oe.isForOfStatement = jat;
Oe.isForStatement = Xst;
Oe.isForXStatement = Act;
Oe.isFunction = Cct;
Oe.isFunctionDeclaration = Jst;
Oe.isFunctionExpression = Qst;
Oe.isFunctionParent = _ct;
Oe.isFunctionTypeAnnotation = kot;
Oe.isFunctionTypeParam = Oot;
Oe.isGenericTypeAnnotation = Not;
Oe.isIdentifier = Zst;
Oe.isIfStatement = eat;
Oe.isImmutable = Mct;
Oe.isImport = tot;
Oe.isImportAttribute = Vlt;
Oe.isImportDeclaration = $at;
Oe.isImportDefaultSpecifier = Uat;
Oe.isImportExpression = Wat;
Oe.isImportNamespaceSpecifier = qat;
Oe.isImportOrExportDeclaration = ode;
Oe.isImportSpecifier = Vat;
Oe.isIndexedAccessType = Slt;
Oe.isInferredPredicate = Dot;
Oe.isInterfaceDeclaration = Mot;
Oe.isInterfaceExtends = Lot;
Oe.isInterfaceTypeAnnotation = Rot;
Oe.isInterpreterDirective = Mst;
Oe.isIntersectionTypeAnnotation = Bot;
Oe.isJSX = ept;
Oe.isJSXAttribute = Elt;
Oe.isJSXClosingElement = Plt;
Oe.isJSXClosingFragment = Blt;
Oe.isJSXElement = wlt;
Oe.isJSXEmptyExpression = Alt;
Oe.isJSXExpressionContainer = Clt;
Oe.isJSXFragment = Mlt;
Oe.isJSXIdentifier = Ilt;
Oe.isJSXMemberExpression = klt;
Oe.isJSXNamespacedName = Olt;
Oe.isJSXOpeningElement = Nlt;
Oe.isJSXOpeningFragment = Rlt;
Oe.isJSXSpreadAttribute = Dlt;
Oe.isJSXSpreadChild = _lt;
Oe.isJSXText = Llt;
Oe.isLVal = Nct;
Oe.isLabeledStatement = tat;
Oe.isLiteral = Lct;
Oe.isLogicalExpression = oat;
Oe.isLoop = xct;
Oe.isMemberExpression = lat;
Oe.isMetaProperty = Hat;
Oe.isMethod = Bct;
Oe.isMiscellaneous = tpt;
Oe.isMixedTypeAnnotation = Fot;
Oe.isModuleDeclaration = cpt;
Oe.isModuleExpression = Xlt;
Oe.isModuleSpecifier = Wct;
Oe.isNewExpression = uat;
Oe.isNoop = Flt;
Oe.isNullLiteral = nat;
Oe.isNullLiteralTypeAnnotation = yot;
Oe.isNullableTypeAnnotation = $ot;
Oe.isNumberLiteral = apt;
Oe.isNumberLiteralTypeAnnotation = Uot;
Oe.isNumberTypeAnnotation = qot;
Oe.isNumericLiteral = iat;
Oe.isObjectExpression = pat;
Oe.isObjectMember = Fct;
Oe.isObjectMethod = fat;
Oe.isObjectPattern = zat;
Oe.isObjectProperty = hat;
Oe.isObjectTypeAnnotation = Vot;
Oe.isObjectTypeCallProperty = Hot;
Oe.isObjectTypeIndexer = Kot;
Oe.isObjectTypeInternalSlot = Wot;
Oe.isObjectTypeProperty = zot;
Oe.isObjectTypeSpreadProperty = Got;
Oe.isOpaqueType = Yot;
Oe.isOptionalCallExpression = sot;
Oe.isOptionalIndexedAccessType = xlt;
Oe.isOptionalMemberExpression = not;
Oe.isParenthesizedExpression = gat;
Oe.isPattern = Uct;
Oe.isPatternLike = Oct;
Oe.isPipelineBareFunction = Zlt;
Oe.isPipelinePrimaryTopicReference = eut;
Oe.isPipelineTopicExpression = Qlt;
Oe.isPlaceholder = jlt;
Oe.isPrivate = Kct;
Oe.isPrivateName = cot;
Oe.isProgram = cat;
Oe.isProperty = jct;
Oe.isPureish = Ict;
Oe.isQualifiedTypeIdentifier = Xot;
Oe.isRecordExpression = zlt;
Oe.isRegExpLiteral = aat;
Oe.isRegexLiteral = opt;
Oe.isRestElement = dat;
Oe.isRestProperty = lpt;
Oe.isReturnStatement = mat;
Oe.isScopable = mct;
Oe.isSequenceExpression = yat;
Oe.isSpreadElement = Gat;
Oe.isSpreadProperty = upt;
Oe.isStandardized = fct;
Oe.isStatement = bct;
Oe.isStaticBlock = pot;
Oe.isStringLiteral = rat;
Oe.isStringLiteralTypeAnnotation = Jot;
Oe.isStringTypeAnnotation = Qot;
Oe.isSuper = Yat;
Oe.isSwitchCase = bat;
Oe.isSwitchStatement = vat;
Oe.isSymbolTypeAnnotation = Zot;
Oe.isTSAnyKeyword = cut;
Oe.isTSArrayType = kut;
Oe.isTSAsExpression = Yut;
Oe.isTSBaseType = spt;
Oe.isTSBigIntKeyword = fut;
Oe.isTSBooleanKeyword = put;
Oe.isTSCallSignatureDeclaration = sut;
Oe.isTSConditionalType = But;
Oe.isTSConstructSignatureDeclaration = aut;
Oe.isTSConstructorType = wut;
Oe.isTSDeclareFunction = rut;
Oe.isTSDeclareMethod = iut;
Oe.isTSEntityName = Dct;
Oe.isTSEnumDeclaration = Qut;
Oe.isTSEnumMember = Zut;
Oe.isTSExportAssignment = act;
Oe.isTSExpressionWithTypeArguments = Wut;
Oe.isTSExternalModuleReference = nct;
Oe.isTSFunctionType = Put;
Oe.isTSImportEqualsDeclaration = ict;
Oe.isTSImportType = rct;
Oe.isTSIndexSignature = uut;
Oe.isTSIndexedAccessType = Uut;
Oe.isTSInferType = Fut;
Oe.isTSInstantiationExpression = Gut;
Oe.isTSInterfaceBody = Kut;
Oe.isTSInterfaceDeclaration = Hut;
Oe.isTSIntersectionType = Rut;
Oe.isTSIntrinsicKeyword = hut;
Oe.isTSLiteralType = Vut;
Oe.isTSMappedType = qut;
Oe.isTSMethodSignature = lut;
Oe.isTSModuleBlock = tct;
Oe.isTSModuleDeclaration = ect;
Oe.isTSNamedTupleMember = Lut;
Oe.isTSNamespaceExportDeclaration = oct;
Oe.isTSNeverKeyword = dut;
Oe.isTSNonNullExpression = sct;
Oe.isTSNullKeyword = mut;
Oe.isTSNumberKeyword = yut;
Oe.isTSObjectKeyword = gut;
Oe.isTSOptionalType = Nut;
Oe.isTSParameterProperty = tut;
Oe.isTSParenthesizedType = jut;
Oe.isTSPropertySignature = out;
Oe.isTSQualifiedName = nut;
Oe.isTSRestType = Dut;
Oe.isTSSatisfiesExpression = Xut;
Oe.isTSStringKeyword = but;
Oe.isTSSymbolKeyword = vut;
Oe.isTSThisType = Eut;
Oe.isTSTupleType = Out;
Oe.isTSType = npt;
Oe.isTSTypeAliasDeclaration = zut;
Oe.isTSTypeAnnotation = lct;
Oe.isTSTypeAssertion = Jut;
Oe.isTSTypeElement = ipt;
Oe.isTSTypeLiteral = Iut;
Oe.isTSTypeOperator = $ut;
Oe.isTSTypeParameter = pct;
Oe.isTSTypeParameterDeclaration = cct;
Oe.isTSTypeParameterInstantiation = uct;
Oe.isTSTypePredicate = Cut;
Oe.isTSTypeQuery = _ut;
Oe.isTSTypeReference = Aut;
Oe.isTSUndefinedKeyword = Tut;
Oe.isTSUnionType = Mut;
Oe.isTSUnknownKeyword = Sut;
Oe.isTSVoidKeyword = xut;
Oe.isTaggedTemplateExpression = Xat;
Oe.isTemplateElement = Jat;
Oe.isTemplateLiteral = Qat;
Oe.isTerminatorless = vct;
Oe.isThisExpression = Tat;
Oe.isThisTypeAnnotation = elt;
Oe.isThrowStatement = Sat;
Oe.isTopicReference = Jlt;
Oe.isTryStatement = xat;
Oe.isTupleExpression = Glt;
Oe.isTupleTypeAnnotation = tlt;
Oe.isTypeAlias = ilt;
Oe.isTypeAnnotation = nlt;
Oe.isTypeCastExpression = slt;
Oe.isTypeParameter = alt;
Oe.isTypeParameterDeclaration = olt;
Oe.isTypeParameterInstantiation = llt;
Oe.isTypeScript = rpt;
Oe.isTypeofTypeAnnotation = rlt;
Oe.isUnaryExpression = Eat;
Oe.isUnaryLike = $ct;
Oe.isUnionTypeAnnotation = ult;
Oe.isUpdateExpression = Pat;
Oe.isUserWhitespacable = Rct;
Oe.isV8IntrinsicIdentifier = $lt;
Oe.isVariableDeclaration = wat;
Oe.isVariableDeclarator = Aat;
Oe.isVariance = clt;
Oe.isVoidTypeAnnotation = plt;
Oe.isWhile = Ect;
Oe.isWhileStatement = Cat;
Oe.isWithStatement = _at;
Oe.isYieldExpression = Zat;
var Ke = JT, QT = Cg;
function Nst(e, t) {
  return !e || e.type !== "ArrayExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Dst(e, t) {
  return !e || e.type !== "AssignmentExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Lst(e, t) {
  return !e || e.type !== "BinaryExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Mst(e, t) {
  return !e || e.type !== "InterpreterDirective" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Rst(e, t) {
  return !e || e.type !== "Directive" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Bst(e, t) {
  return !e || e.type !== "DirectiveLiteral" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Fst(e, t) {
  return !e || e.type !== "BlockStatement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function jst(e, t) {
  return !e || e.type !== "BreakStatement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function $st(e, t) {
  return !e || e.type !== "CallExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Ust(e, t) {
  return !e || e.type !== "CatchClause" ? !1 : t == null || (0, Ke.default)(e, t);
}
function qst(e, t) {
  return !e || e.type !== "ConditionalExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Vst(e, t) {
  return !e || e.type !== "ContinueStatement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Wst(e, t) {
  return !e || e.type !== "DebuggerStatement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Hst(e, t) {
  return !e || e.type !== "DoWhileStatement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Kst(e, t) {
  return !e || e.type !== "EmptyStatement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function zst(e, t) {
  return !e || e.type !== "ExpressionStatement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Gst(e, t) {
  return !e || e.type !== "File" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Yst(e, t) {
  return !e || e.type !== "ForInStatement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Xst(e, t) {
  return !e || e.type !== "ForStatement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Jst(e, t) {
  return !e || e.type !== "FunctionDeclaration" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Qst(e, t) {
  return !e || e.type !== "FunctionExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Zst(e, t) {
  return !e || e.type !== "Identifier" ? !1 : t == null || (0, Ke.default)(e, t);
}
function eat(e, t) {
  return !e || e.type !== "IfStatement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function tat(e, t) {
  return !e || e.type !== "LabeledStatement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function rat(e, t) {
  return !e || e.type !== "StringLiteral" ? !1 : t == null || (0, Ke.default)(e, t);
}
function iat(e, t) {
  return !e || e.type !== "NumericLiteral" ? !1 : t == null || (0, Ke.default)(e, t);
}
function nat(e, t) {
  return !e || e.type !== "NullLiteral" ? !1 : t == null || (0, Ke.default)(e, t);
}
function sat(e, t) {
  return !e || e.type !== "BooleanLiteral" ? !1 : t == null || (0, Ke.default)(e, t);
}
function aat(e, t) {
  return !e || e.type !== "RegExpLiteral" ? !1 : t == null || (0, Ke.default)(e, t);
}
function oat(e, t) {
  return !e || e.type !== "LogicalExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function lat(e, t) {
  return !e || e.type !== "MemberExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function uat(e, t) {
  return !e || e.type !== "NewExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function cat(e, t) {
  return !e || e.type !== "Program" ? !1 : t == null || (0, Ke.default)(e, t);
}
function pat(e, t) {
  return !e || e.type !== "ObjectExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function fat(e, t) {
  return !e || e.type !== "ObjectMethod" ? !1 : t == null || (0, Ke.default)(e, t);
}
function hat(e, t) {
  return !e || e.type !== "ObjectProperty" ? !1 : t == null || (0, Ke.default)(e, t);
}
function dat(e, t) {
  return !e || e.type !== "RestElement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function mat(e, t) {
  return !e || e.type !== "ReturnStatement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function yat(e, t) {
  return !e || e.type !== "SequenceExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function gat(e, t) {
  return !e || e.type !== "ParenthesizedExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function bat(e, t) {
  return !e || e.type !== "SwitchCase" ? !1 : t == null || (0, Ke.default)(e, t);
}
function vat(e, t) {
  return !e || e.type !== "SwitchStatement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Tat(e, t) {
  return !e || e.type !== "ThisExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Sat(e, t) {
  return !e || e.type !== "ThrowStatement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function xat(e, t) {
  return !e || e.type !== "TryStatement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Eat(e, t) {
  return !e || e.type !== "UnaryExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Pat(e, t) {
  return !e || e.type !== "UpdateExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function wat(e, t) {
  return !e || e.type !== "VariableDeclaration" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Aat(e, t) {
  return !e || e.type !== "VariableDeclarator" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Cat(e, t) {
  return !e || e.type !== "WhileStatement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function _at(e, t) {
  return !e || e.type !== "WithStatement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Iat(e, t) {
  return !e || e.type !== "AssignmentPattern" ? !1 : t == null || (0, Ke.default)(e, t);
}
function kat(e, t) {
  return !e || e.type !== "ArrayPattern" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Oat(e, t) {
  return !e || e.type !== "ArrowFunctionExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Nat(e, t) {
  return !e || e.type !== "ClassBody" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Dat(e, t) {
  return !e || e.type !== "ClassExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Lat(e, t) {
  return !e || e.type !== "ClassDeclaration" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Mat(e, t) {
  return !e || e.type !== "ExportAllDeclaration" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Rat(e, t) {
  return !e || e.type !== "ExportDefaultDeclaration" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Bat(e, t) {
  return !e || e.type !== "ExportNamedDeclaration" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Fat(e, t) {
  return !e || e.type !== "ExportSpecifier" ? !1 : t == null || (0, Ke.default)(e, t);
}
function jat(e, t) {
  return !e || e.type !== "ForOfStatement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function $at(e, t) {
  return !e || e.type !== "ImportDeclaration" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Uat(e, t) {
  return !e || e.type !== "ImportDefaultSpecifier" ? !1 : t == null || (0, Ke.default)(e, t);
}
function qat(e, t) {
  return !e || e.type !== "ImportNamespaceSpecifier" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Vat(e, t) {
  return !e || e.type !== "ImportSpecifier" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Wat(e, t) {
  return !e || e.type !== "ImportExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Hat(e, t) {
  return !e || e.type !== "MetaProperty" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Kat(e, t) {
  return !e || e.type !== "ClassMethod" ? !1 : t == null || (0, Ke.default)(e, t);
}
function zat(e, t) {
  return !e || e.type !== "ObjectPattern" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Gat(e, t) {
  return !e || e.type !== "SpreadElement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Yat(e, t) {
  return !e || e.type !== "Super" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Xat(e, t) {
  return !e || e.type !== "TaggedTemplateExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Jat(e, t) {
  return !e || e.type !== "TemplateElement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Qat(e, t) {
  return !e || e.type !== "TemplateLiteral" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Zat(e, t) {
  return !e || e.type !== "YieldExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function eot(e, t) {
  return !e || e.type !== "AwaitExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function tot(e, t) {
  return !e || e.type !== "Import" ? !1 : t == null || (0, Ke.default)(e, t);
}
function rot(e, t) {
  return !e || e.type !== "BigIntLiteral" ? !1 : t == null || (0, Ke.default)(e, t);
}
function iot(e, t) {
  return !e || e.type !== "ExportNamespaceSpecifier" ? !1 : t == null || (0, Ke.default)(e, t);
}
function not(e, t) {
  return !e || e.type !== "OptionalMemberExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function sot(e, t) {
  return !e || e.type !== "OptionalCallExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function aot(e, t) {
  return !e || e.type !== "ClassProperty" ? !1 : t == null || (0, Ke.default)(e, t);
}
function oot(e, t) {
  return !e || e.type !== "ClassAccessorProperty" ? !1 : t == null || (0, Ke.default)(e, t);
}
function lot(e, t) {
  return !e || e.type !== "ClassPrivateProperty" ? !1 : t == null || (0, Ke.default)(e, t);
}
function uot(e, t) {
  return !e || e.type !== "ClassPrivateMethod" ? !1 : t == null || (0, Ke.default)(e, t);
}
function cot(e, t) {
  return !e || e.type !== "PrivateName" ? !1 : t == null || (0, Ke.default)(e, t);
}
function pot(e, t) {
  return !e || e.type !== "StaticBlock" ? !1 : t == null || (0, Ke.default)(e, t);
}
function fot(e, t) {
  return !e || e.type !== "AnyTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function hot(e, t) {
  return !e || e.type !== "ArrayTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function dot(e, t) {
  return !e || e.type !== "BooleanTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function mot(e, t) {
  return !e || e.type !== "BooleanLiteralTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function yot(e, t) {
  return !e || e.type !== "NullLiteralTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function got(e, t) {
  return !e || e.type !== "ClassImplements" ? !1 : t == null || (0, Ke.default)(e, t);
}
function bot(e, t) {
  return !e || e.type !== "DeclareClass" ? !1 : t == null || (0, Ke.default)(e, t);
}
function vot(e, t) {
  return !e || e.type !== "DeclareFunction" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Tot(e, t) {
  return !e || e.type !== "DeclareInterface" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Sot(e, t) {
  return !e || e.type !== "DeclareModule" ? !1 : t == null || (0, Ke.default)(e, t);
}
function xot(e, t) {
  return !e || e.type !== "DeclareModuleExports" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Eot(e, t) {
  return !e || e.type !== "DeclareTypeAlias" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Pot(e, t) {
  return !e || e.type !== "DeclareOpaqueType" ? !1 : t == null || (0, Ke.default)(e, t);
}
function wot(e, t) {
  return !e || e.type !== "DeclareVariable" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Aot(e, t) {
  return !e || e.type !== "DeclareExportDeclaration" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Cot(e, t) {
  return !e || e.type !== "DeclareExportAllDeclaration" ? !1 : t == null || (0, Ke.default)(e, t);
}
function _ot(e, t) {
  return !e || e.type !== "DeclaredPredicate" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Iot(e, t) {
  return !e || e.type !== "ExistsTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function kot(e, t) {
  return !e || e.type !== "FunctionTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Oot(e, t) {
  return !e || e.type !== "FunctionTypeParam" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Not(e, t) {
  return !e || e.type !== "GenericTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Dot(e, t) {
  return !e || e.type !== "InferredPredicate" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Lot(e, t) {
  return !e || e.type !== "InterfaceExtends" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Mot(e, t) {
  return !e || e.type !== "InterfaceDeclaration" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Rot(e, t) {
  return !e || e.type !== "InterfaceTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Bot(e, t) {
  return !e || e.type !== "IntersectionTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Fot(e, t) {
  return !e || e.type !== "MixedTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function jot(e, t) {
  return !e || e.type !== "EmptyTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function $ot(e, t) {
  return !e || e.type !== "NullableTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Uot(e, t) {
  return !e || e.type !== "NumberLiteralTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function qot(e, t) {
  return !e || e.type !== "NumberTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Vot(e, t) {
  return !e || e.type !== "ObjectTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Wot(e, t) {
  return !e || e.type !== "ObjectTypeInternalSlot" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Hot(e, t) {
  return !e || e.type !== "ObjectTypeCallProperty" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Kot(e, t) {
  return !e || e.type !== "ObjectTypeIndexer" ? !1 : t == null || (0, Ke.default)(e, t);
}
function zot(e, t) {
  return !e || e.type !== "ObjectTypeProperty" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Got(e, t) {
  return !e || e.type !== "ObjectTypeSpreadProperty" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Yot(e, t) {
  return !e || e.type !== "OpaqueType" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Xot(e, t) {
  return !e || e.type !== "QualifiedTypeIdentifier" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Jot(e, t) {
  return !e || e.type !== "StringLiteralTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Qot(e, t) {
  return !e || e.type !== "StringTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Zot(e, t) {
  return !e || e.type !== "SymbolTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function elt(e, t) {
  return !e || e.type !== "ThisTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function tlt(e, t) {
  return !e || e.type !== "TupleTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function rlt(e, t) {
  return !e || e.type !== "TypeofTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function ilt(e, t) {
  return !e || e.type !== "TypeAlias" ? !1 : t == null || (0, Ke.default)(e, t);
}
function nlt(e, t) {
  return !e || e.type !== "TypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function slt(e, t) {
  return !e || e.type !== "TypeCastExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function alt(e, t) {
  return !e || e.type !== "TypeParameter" ? !1 : t == null || (0, Ke.default)(e, t);
}
function olt(e, t) {
  return !e || e.type !== "TypeParameterDeclaration" ? !1 : t == null || (0, Ke.default)(e, t);
}
function llt(e, t) {
  return !e || e.type !== "TypeParameterInstantiation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function ult(e, t) {
  return !e || e.type !== "UnionTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function clt(e, t) {
  return !e || e.type !== "Variance" ? !1 : t == null || (0, Ke.default)(e, t);
}
function plt(e, t) {
  return !e || e.type !== "VoidTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function flt(e, t) {
  return !e || e.type !== "EnumDeclaration" ? !1 : t == null || (0, Ke.default)(e, t);
}
function hlt(e, t) {
  return !e || e.type !== "EnumBooleanBody" ? !1 : t == null || (0, Ke.default)(e, t);
}
function dlt(e, t) {
  return !e || e.type !== "EnumNumberBody" ? !1 : t == null || (0, Ke.default)(e, t);
}
function mlt(e, t) {
  return !e || e.type !== "EnumStringBody" ? !1 : t == null || (0, Ke.default)(e, t);
}
function ylt(e, t) {
  return !e || e.type !== "EnumSymbolBody" ? !1 : t == null || (0, Ke.default)(e, t);
}
function glt(e, t) {
  return !e || e.type !== "EnumBooleanMember" ? !1 : t == null || (0, Ke.default)(e, t);
}
function blt(e, t) {
  return !e || e.type !== "EnumNumberMember" ? !1 : t == null || (0, Ke.default)(e, t);
}
function vlt(e, t) {
  return !e || e.type !== "EnumStringMember" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Tlt(e, t) {
  return !e || e.type !== "EnumDefaultedMember" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Slt(e, t) {
  return !e || e.type !== "IndexedAccessType" ? !1 : t == null || (0, Ke.default)(e, t);
}
function xlt(e, t) {
  return !e || e.type !== "OptionalIndexedAccessType" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Elt(e, t) {
  return !e || e.type !== "JSXAttribute" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Plt(e, t) {
  return !e || e.type !== "JSXClosingElement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function wlt(e, t) {
  return !e || e.type !== "JSXElement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Alt(e, t) {
  return !e || e.type !== "JSXEmptyExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Clt(e, t) {
  return !e || e.type !== "JSXExpressionContainer" ? !1 : t == null || (0, Ke.default)(e, t);
}
function _lt(e, t) {
  return !e || e.type !== "JSXSpreadChild" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Ilt(e, t) {
  return !e || e.type !== "JSXIdentifier" ? !1 : t == null || (0, Ke.default)(e, t);
}
function klt(e, t) {
  return !e || e.type !== "JSXMemberExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Olt(e, t) {
  return !e || e.type !== "JSXNamespacedName" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Nlt(e, t) {
  return !e || e.type !== "JSXOpeningElement" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Dlt(e, t) {
  return !e || e.type !== "JSXSpreadAttribute" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Llt(e, t) {
  return !e || e.type !== "JSXText" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Mlt(e, t) {
  return !e || e.type !== "JSXFragment" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Rlt(e, t) {
  return !e || e.type !== "JSXOpeningFragment" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Blt(e, t) {
  return !e || e.type !== "JSXClosingFragment" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Flt(e, t) {
  return !e || e.type !== "Noop" ? !1 : t == null || (0, Ke.default)(e, t);
}
function jlt(e, t) {
  return !e || e.type !== "Placeholder" ? !1 : t == null || (0, Ke.default)(e, t);
}
function $lt(e, t) {
  return !e || e.type !== "V8IntrinsicIdentifier" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Ult(e, t) {
  return !e || e.type !== "ArgumentPlaceholder" ? !1 : t == null || (0, Ke.default)(e, t);
}
function qlt(e, t) {
  return !e || e.type !== "BindExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Vlt(e, t) {
  return !e || e.type !== "ImportAttribute" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Wlt(e, t) {
  return !e || e.type !== "Decorator" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Hlt(e, t) {
  return !e || e.type !== "DoExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Klt(e, t) {
  return !e || e.type !== "ExportDefaultSpecifier" ? !1 : t == null || (0, Ke.default)(e, t);
}
function zlt(e, t) {
  return !e || e.type !== "RecordExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Glt(e, t) {
  return !e || e.type !== "TupleExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Ylt(e, t) {
  return !e || e.type !== "DecimalLiteral" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Xlt(e, t) {
  return !e || e.type !== "ModuleExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Jlt(e, t) {
  return !e || e.type !== "TopicReference" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Qlt(e, t) {
  return !e || e.type !== "PipelineTopicExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Zlt(e, t) {
  return !e || e.type !== "PipelineBareFunction" ? !1 : t == null || (0, Ke.default)(e, t);
}
function eut(e, t) {
  return !e || e.type !== "PipelinePrimaryTopicReference" ? !1 : t == null || (0, Ke.default)(e, t);
}
function tut(e, t) {
  return !e || e.type !== "TSParameterProperty" ? !1 : t == null || (0, Ke.default)(e, t);
}
function rut(e, t) {
  return !e || e.type !== "TSDeclareFunction" ? !1 : t == null || (0, Ke.default)(e, t);
}
function iut(e, t) {
  return !e || e.type !== "TSDeclareMethod" ? !1 : t == null || (0, Ke.default)(e, t);
}
function nut(e, t) {
  return !e || e.type !== "TSQualifiedName" ? !1 : t == null || (0, Ke.default)(e, t);
}
function sut(e, t) {
  return !e || e.type !== "TSCallSignatureDeclaration" ? !1 : t == null || (0, Ke.default)(e, t);
}
function aut(e, t) {
  return !e || e.type !== "TSConstructSignatureDeclaration" ? !1 : t == null || (0, Ke.default)(e, t);
}
function out(e, t) {
  return !e || e.type !== "TSPropertySignature" ? !1 : t == null || (0, Ke.default)(e, t);
}
function lut(e, t) {
  return !e || e.type !== "TSMethodSignature" ? !1 : t == null || (0, Ke.default)(e, t);
}
function uut(e, t) {
  return !e || e.type !== "TSIndexSignature" ? !1 : t == null || (0, Ke.default)(e, t);
}
function cut(e, t) {
  return !e || e.type !== "TSAnyKeyword" ? !1 : t == null || (0, Ke.default)(e, t);
}
function put(e, t) {
  return !e || e.type !== "TSBooleanKeyword" ? !1 : t == null || (0, Ke.default)(e, t);
}
function fut(e, t) {
  return !e || e.type !== "TSBigIntKeyword" ? !1 : t == null || (0, Ke.default)(e, t);
}
function hut(e, t) {
  return !e || e.type !== "TSIntrinsicKeyword" ? !1 : t == null || (0, Ke.default)(e, t);
}
function dut(e, t) {
  return !e || e.type !== "TSNeverKeyword" ? !1 : t == null || (0, Ke.default)(e, t);
}
function mut(e, t) {
  return !e || e.type !== "TSNullKeyword" ? !1 : t == null || (0, Ke.default)(e, t);
}
function yut(e, t) {
  return !e || e.type !== "TSNumberKeyword" ? !1 : t == null || (0, Ke.default)(e, t);
}
function gut(e, t) {
  return !e || e.type !== "TSObjectKeyword" ? !1 : t == null || (0, Ke.default)(e, t);
}
function but(e, t) {
  return !e || e.type !== "TSStringKeyword" ? !1 : t == null || (0, Ke.default)(e, t);
}
function vut(e, t) {
  return !e || e.type !== "TSSymbolKeyword" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Tut(e, t) {
  return !e || e.type !== "TSUndefinedKeyword" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Sut(e, t) {
  return !e || e.type !== "TSUnknownKeyword" ? !1 : t == null || (0, Ke.default)(e, t);
}
function xut(e, t) {
  return !e || e.type !== "TSVoidKeyword" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Eut(e, t) {
  return !e || e.type !== "TSThisType" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Put(e, t) {
  return !e || e.type !== "TSFunctionType" ? !1 : t == null || (0, Ke.default)(e, t);
}
function wut(e, t) {
  return !e || e.type !== "TSConstructorType" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Aut(e, t) {
  return !e || e.type !== "TSTypeReference" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Cut(e, t) {
  return !e || e.type !== "TSTypePredicate" ? !1 : t == null || (0, Ke.default)(e, t);
}
function _ut(e, t) {
  return !e || e.type !== "TSTypeQuery" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Iut(e, t) {
  return !e || e.type !== "TSTypeLiteral" ? !1 : t == null || (0, Ke.default)(e, t);
}
function kut(e, t) {
  return !e || e.type !== "TSArrayType" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Out(e, t) {
  return !e || e.type !== "TSTupleType" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Nut(e, t) {
  return !e || e.type !== "TSOptionalType" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Dut(e, t) {
  return !e || e.type !== "TSRestType" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Lut(e, t) {
  return !e || e.type !== "TSNamedTupleMember" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Mut(e, t) {
  return !e || e.type !== "TSUnionType" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Rut(e, t) {
  return !e || e.type !== "TSIntersectionType" ? !1 : t == null || (0, Ke.default)(e, t);
}
function But(e, t) {
  return !e || e.type !== "TSConditionalType" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Fut(e, t) {
  return !e || e.type !== "TSInferType" ? !1 : t == null || (0, Ke.default)(e, t);
}
function jut(e, t) {
  return !e || e.type !== "TSParenthesizedType" ? !1 : t == null || (0, Ke.default)(e, t);
}
function $ut(e, t) {
  return !e || e.type !== "TSTypeOperator" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Uut(e, t) {
  return !e || e.type !== "TSIndexedAccessType" ? !1 : t == null || (0, Ke.default)(e, t);
}
function qut(e, t) {
  return !e || e.type !== "TSMappedType" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Vut(e, t) {
  return !e || e.type !== "TSLiteralType" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Wut(e, t) {
  return !e || e.type !== "TSExpressionWithTypeArguments" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Hut(e, t) {
  return !e || e.type !== "TSInterfaceDeclaration" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Kut(e, t) {
  return !e || e.type !== "TSInterfaceBody" ? !1 : t == null || (0, Ke.default)(e, t);
}
function zut(e, t) {
  return !e || e.type !== "TSTypeAliasDeclaration" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Gut(e, t) {
  return !e || e.type !== "TSInstantiationExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Yut(e, t) {
  return !e || e.type !== "TSAsExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Xut(e, t) {
  return !e || e.type !== "TSSatisfiesExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Jut(e, t) {
  return !e || e.type !== "TSTypeAssertion" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Qut(e, t) {
  return !e || e.type !== "TSEnumDeclaration" ? !1 : t == null || (0, Ke.default)(e, t);
}
function Zut(e, t) {
  return !e || e.type !== "TSEnumMember" ? !1 : t == null || (0, Ke.default)(e, t);
}
function ect(e, t) {
  return !e || e.type !== "TSModuleDeclaration" ? !1 : t == null || (0, Ke.default)(e, t);
}
function tct(e, t) {
  return !e || e.type !== "TSModuleBlock" ? !1 : t == null || (0, Ke.default)(e, t);
}
function rct(e, t) {
  return !e || e.type !== "TSImportType" ? !1 : t == null || (0, Ke.default)(e, t);
}
function ict(e, t) {
  return !e || e.type !== "TSImportEqualsDeclaration" ? !1 : t == null || (0, Ke.default)(e, t);
}
function nct(e, t) {
  return !e || e.type !== "TSExternalModuleReference" ? !1 : t == null || (0, Ke.default)(e, t);
}
function sct(e, t) {
  return !e || e.type !== "TSNonNullExpression" ? !1 : t == null || (0, Ke.default)(e, t);
}
function act(e, t) {
  return !e || e.type !== "TSExportAssignment" ? !1 : t == null || (0, Ke.default)(e, t);
}
function oct(e, t) {
  return !e || e.type !== "TSNamespaceExportDeclaration" ? !1 : t == null || (0, Ke.default)(e, t);
}
function lct(e, t) {
  return !e || e.type !== "TSTypeAnnotation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function uct(e, t) {
  return !e || e.type !== "TSTypeParameterInstantiation" ? !1 : t == null || (0, Ke.default)(e, t);
}
function cct(e, t) {
  return !e || e.type !== "TSTypeParameterDeclaration" ? !1 : t == null || (0, Ke.default)(e, t);
}
function pct(e, t) {
  return !e || e.type !== "TSTypeParameter" ? !1 : t == null || (0, Ke.default)(e, t);
}
function fct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ArrayExpression":
    case "AssignmentExpression":
    case "BinaryExpression":
    case "InterpreterDirective":
    case "Directive":
    case "DirectiveLiteral":
    case "BlockStatement":
    case "BreakStatement":
    case "CallExpression":
    case "CatchClause":
    case "ConditionalExpression":
    case "ContinueStatement":
    case "DebuggerStatement":
    case "DoWhileStatement":
    case "EmptyStatement":
    case "ExpressionStatement":
    case "File":
    case "ForInStatement":
    case "ForStatement":
    case "FunctionDeclaration":
    case "FunctionExpression":
    case "Identifier":
    case "IfStatement":
    case "LabeledStatement":
    case "StringLiteral":
    case "NumericLiteral":
    case "NullLiteral":
    case "BooleanLiteral":
    case "RegExpLiteral":
    case "LogicalExpression":
    case "MemberExpression":
    case "NewExpression":
    case "Program":
    case "ObjectExpression":
    case "ObjectMethod":
    case "ObjectProperty":
    case "RestElement":
    case "ReturnStatement":
    case "SequenceExpression":
    case "ParenthesizedExpression":
    case "SwitchCase":
    case "SwitchStatement":
    case "ThisExpression":
    case "ThrowStatement":
    case "TryStatement":
    case "UnaryExpression":
    case "UpdateExpression":
    case "VariableDeclaration":
    case "VariableDeclarator":
    case "WhileStatement":
    case "WithStatement":
    case "AssignmentPattern":
    case "ArrayPattern":
    case "ArrowFunctionExpression":
    case "ClassBody":
    case "ClassExpression":
    case "ClassDeclaration":
    case "ExportAllDeclaration":
    case "ExportDefaultDeclaration":
    case "ExportNamedDeclaration":
    case "ExportSpecifier":
    case "ForOfStatement":
    case "ImportDeclaration":
    case "ImportDefaultSpecifier":
    case "ImportNamespaceSpecifier":
    case "ImportSpecifier":
    case "ImportExpression":
    case "MetaProperty":
    case "ClassMethod":
    case "ObjectPattern":
    case "SpreadElement":
    case "Super":
    case "TaggedTemplateExpression":
    case "TemplateElement":
    case "TemplateLiteral":
    case "YieldExpression":
    case "AwaitExpression":
    case "Import":
    case "BigIntLiteral":
    case "ExportNamespaceSpecifier":
    case "OptionalMemberExpression":
    case "OptionalCallExpression":
    case "ClassProperty":
    case "ClassAccessorProperty":
    case "ClassPrivateProperty":
    case "ClassPrivateMethod":
    case "PrivateName":
    case "StaticBlock":
      break;
    case "Placeholder":
      switch (e.expectedNode) {
        case "Identifier":
        case "StringLiteral":
        case "BlockStatement":
        case "ClassBody":
          break;
        default:
          return !1;
      }
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function hct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ArrayExpression":
    case "AssignmentExpression":
    case "BinaryExpression":
    case "CallExpression":
    case "ConditionalExpression":
    case "FunctionExpression":
    case "Identifier":
    case "StringLiteral":
    case "NumericLiteral":
    case "NullLiteral":
    case "BooleanLiteral":
    case "RegExpLiteral":
    case "LogicalExpression":
    case "MemberExpression":
    case "NewExpression":
    case "ObjectExpression":
    case "SequenceExpression":
    case "ParenthesizedExpression":
    case "ThisExpression":
    case "UnaryExpression":
    case "UpdateExpression":
    case "ArrowFunctionExpression":
    case "ClassExpression":
    case "ImportExpression":
    case "MetaProperty":
    case "Super":
    case "TaggedTemplateExpression":
    case "TemplateLiteral":
    case "YieldExpression":
    case "AwaitExpression":
    case "Import":
    case "BigIntLiteral":
    case "OptionalMemberExpression":
    case "OptionalCallExpression":
    case "TypeCastExpression":
    case "JSXElement":
    case "JSXFragment":
    case "BindExpression":
    case "DoExpression":
    case "RecordExpression":
    case "TupleExpression":
    case "DecimalLiteral":
    case "ModuleExpression":
    case "TopicReference":
    case "PipelineTopicExpression":
    case "PipelineBareFunction":
    case "PipelinePrimaryTopicReference":
    case "TSInstantiationExpression":
    case "TSAsExpression":
    case "TSSatisfiesExpression":
    case "TSTypeAssertion":
    case "TSNonNullExpression":
      break;
    case "Placeholder":
      switch (e.expectedNode) {
        case "Expression":
        case "Identifier":
        case "StringLiteral":
          break;
        default:
          return !1;
      }
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function dct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "BinaryExpression":
    case "LogicalExpression":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function mct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "BlockStatement":
    case "CatchClause":
    case "DoWhileStatement":
    case "ForInStatement":
    case "ForStatement":
    case "FunctionDeclaration":
    case "FunctionExpression":
    case "Program":
    case "ObjectMethod":
    case "SwitchStatement":
    case "WhileStatement":
    case "ArrowFunctionExpression":
    case "ClassExpression":
    case "ClassDeclaration":
    case "ForOfStatement":
    case "ClassMethod":
    case "ClassPrivateMethod":
    case "StaticBlock":
    case "TSModuleBlock":
      break;
    case "Placeholder":
      if (e.expectedNode === "BlockStatement")
        break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function yct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "BlockStatement":
    case "CatchClause":
    case "DoWhileStatement":
    case "ForInStatement":
    case "ForStatement":
    case "FunctionDeclaration":
    case "FunctionExpression":
    case "Program":
    case "ObjectMethod":
    case "SwitchStatement":
    case "WhileStatement":
    case "ArrowFunctionExpression":
    case "ForOfStatement":
    case "ClassMethod":
    case "ClassPrivateMethod":
    case "StaticBlock":
    case "TSModuleBlock":
      break;
    case "Placeholder":
      if (e.expectedNode === "BlockStatement")
        break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function gct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "BlockStatement":
    case "Program":
    case "TSModuleBlock":
      break;
    case "Placeholder":
      if (e.expectedNode === "BlockStatement")
        break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function bct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "BlockStatement":
    case "BreakStatement":
    case "ContinueStatement":
    case "DebuggerStatement":
    case "DoWhileStatement":
    case "EmptyStatement":
    case "ExpressionStatement":
    case "ForInStatement":
    case "ForStatement":
    case "FunctionDeclaration":
    case "IfStatement":
    case "LabeledStatement":
    case "ReturnStatement":
    case "SwitchStatement":
    case "ThrowStatement":
    case "TryStatement":
    case "VariableDeclaration":
    case "WhileStatement":
    case "WithStatement":
    case "ClassDeclaration":
    case "ExportAllDeclaration":
    case "ExportDefaultDeclaration":
    case "ExportNamedDeclaration":
    case "ForOfStatement":
    case "ImportDeclaration":
    case "DeclareClass":
    case "DeclareFunction":
    case "DeclareInterface":
    case "DeclareModule":
    case "DeclareModuleExports":
    case "DeclareTypeAlias":
    case "DeclareOpaqueType":
    case "DeclareVariable":
    case "DeclareExportDeclaration":
    case "DeclareExportAllDeclaration":
    case "InterfaceDeclaration":
    case "OpaqueType":
    case "TypeAlias":
    case "EnumDeclaration":
    case "TSDeclareFunction":
    case "TSInterfaceDeclaration":
    case "TSTypeAliasDeclaration":
    case "TSEnumDeclaration":
    case "TSModuleDeclaration":
    case "TSImportEqualsDeclaration":
    case "TSExportAssignment":
    case "TSNamespaceExportDeclaration":
      break;
    case "Placeholder":
      switch (e.expectedNode) {
        case "Statement":
        case "Declaration":
        case "BlockStatement":
          break;
        default:
          return !1;
      }
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function vct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "BreakStatement":
    case "ContinueStatement":
    case "ReturnStatement":
    case "ThrowStatement":
    case "YieldExpression":
    case "AwaitExpression":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Tct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "BreakStatement":
    case "ContinueStatement":
    case "ReturnStatement":
    case "ThrowStatement":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Sct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ConditionalExpression":
    case "IfStatement":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function xct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "DoWhileStatement":
    case "ForInStatement":
    case "ForStatement":
    case "WhileStatement":
    case "ForOfStatement":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Ect(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "DoWhileStatement":
    case "WhileStatement":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Pct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ExpressionStatement":
    case "ParenthesizedExpression":
    case "TypeCastExpression":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function wct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ForInStatement":
    case "ForStatement":
    case "ForOfStatement":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Act(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ForInStatement":
    case "ForOfStatement":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Cct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "FunctionDeclaration":
    case "FunctionExpression":
    case "ObjectMethod":
    case "ArrowFunctionExpression":
    case "ClassMethod":
    case "ClassPrivateMethod":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function _ct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "FunctionDeclaration":
    case "FunctionExpression":
    case "ObjectMethod":
    case "ArrowFunctionExpression":
    case "ClassMethod":
    case "ClassPrivateMethod":
    case "StaticBlock":
    case "TSModuleBlock":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Ict(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "FunctionDeclaration":
    case "FunctionExpression":
    case "StringLiteral":
    case "NumericLiteral":
    case "NullLiteral":
    case "BooleanLiteral":
    case "RegExpLiteral":
    case "ArrowFunctionExpression":
    case "BigIntLiteral":
    case "DecimalLiteral":
      break;
    case "Placeholder":
      if (e.expectedNode === "StringLiteral")
        break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function kct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "FunctionDeclaration":
    case "VariableDeclaration":
    case "ClassDeclaration":
    case "ExportAllDeclaration":
    case "ExportDefaultDeclaration":
    case "ExportNamedDeclaration":
    case "ImportDeclaration":
    case "DeclareClass":
    case "DeclareFunction":
    case "DeclareInterface":
    case "DeclareModule":
    case "DeclareModuleExports":
    case "DeclareTypeAlias":
    case "DeclareOpaqueType":
    case "DeclareVariable":
    case "DeclareExportDeclaration":
    case "DeclareExportAllDeclaration":
    case "InterfaceDeclaration":
    case "OpaqueType":
    case "TypeAlias":
    case "EnumDeclaration":
    case "TSDeclareFunction":
    case "TSInterfaceDeclaration":
    case "TSTypeAliasDeclaration":
    case "TSEnumDeclaration":
    case "TSModuleDeclaration":
      break;
    case "Placeholder":
      if (e.expectedNode === "Declaration")
        break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Oct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "Identifier":
    case "RestElement":
    case "AssignmentPattern":
    case "ArrayPattern":
    case "ObjectPattern":
    case "TSAsExpression":
    case "TSSatisfiesExpression":
    case "TSTypeAssertion":
    case "TSNonNullExpression":
      break;
    case "Placeholder":
      switch (e.expectedNode) {
        case "Pattern":
        case "Identifier":
          break;
        default:
          return !1;
      }
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Nct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "Identifier":
    case "MemberExpression":
    case "RestElement":
    case "AssignmentPattern":
    case "ArrayPattern":
    case "ObjectPattern":
    case "TSParameterProperty":
    case "TSAsExpression":
    case "TSSatisfiesExpression":
    case "TSTypeAssertion":
    case "TSNonNullExpression":
      break;
    case "Placeholder":
      switch (e.expectedNode) {
        case "Pattern":
        case "Identifier":
          break;
        default:
          return !1;
      }
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Dct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "Identifier":
    case "TSQualifiedName":
      break;
    case "Placeholder":
      if (e.expectedNode === "Identifier")
        break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Lct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "StringLiteral":
    case "NumericLiteral":
    case "NullLiteral":
    case "BooleanLiteral":
    case "RegExpLiteral":
    case "TemplateLiteral":
    case "BigIntLiteral":
    case "DecimalLiteral":
      break;
    case "Placeholder":
      if (e.expectedNode === "StringLiteral")
        break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Mct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "StringLiteral":
    case "NumericLiteral":
    case "NullLiteral":
    case "BooleanLiteral":
    case "BigIntLiteral":
    case "JSXAttribute":
    case "JSXClosingElement":
    case "JSXElement":
    case "JSXExpressionContainer":
    case "JSXSpreadChild":
    case "JSXOpeningElement":
    case "JSXText":
    case "JSXFragment":
    case "JSXOpeningFragment":
    case "JSXClosingFragment":
    case "DecimalLiteral":
      break;
    case "Placeholder":
      if (e.expectedNode === "StringLiteral")
        break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Rct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ObjectMethod":
    case "ObjectProperty":
    case "ObjectTypeInternalSlot":
    case "ObjectTypeCallProperty":
    case "ObjectTypeIndexer":
    case "ObjectTypeProperty":
    case "ObjectTypeSpreadProperty":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Bct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ObjectMethod":
    case "ClassMethod":
    case "ClassPrivateMethod":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Fct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ObjectMethod":
    case "ObjectProperty":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function jct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ObjectProperty":
    case "ClassProperty":
    case "ClassAccessorProperty":
    case "ClassPrivateProperty":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function $ct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "UnaryExpression":
    case "SpreadElement":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Uct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "AssignmentPattern":
    case "ArrayPattern":
    case "ObjectPattern":
      break;
    case "Placeholder":
      if (e.expectedNode === "Pattern")
        break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function qct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ClassExpression":
    case "ClassDeclaration":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function ode(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ExportAllDeclaration":
    case "ExportDefaultDeclaration":
    case "ExportNamedDeclaration":
    case "ImportDeclaration":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Vct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ExportAllDeclaration":
    case "ExportDefaultDeclaration":
    case "ExportNamedDeclaration":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Wct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ExportSpecifier":
    case "ImportDefaultSpecifier":
    case "ImportNamespaceSpecifier":
    case "ImportSpecifier":
    case "ExportNamespaceSpecifier":
    case "ExportDefaultSpecifier":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Hct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ClassAccessorProperty":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Kct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "ClassPrivateProperty":
    case "ClassPrivateMethod":
    case "PrivateName":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function zct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "AnyTypeAnnotation":
    case "ArrayTypeAnnotation":
    case "BooleanTypeAnnotation":
    case "BooleanLiteralTypeAnnotation":
    case "NullLiteralTypeAnnotation":
    case "ClassImplements":
    case "DeclareClass":
    case "DeclareFunction":
    case "DeclareInterface":
    case "DeclareModule":
    case "DeclareModuleExports":
    case "DeclareTypeAlias":
    case "DeclareOpaqueType":
    case "DeclareVariable":
    case "DeclareExportDeclaration":
    case "DeclareExportAllDeclaration":
    case "DeclaredPredicate":
    case "ExistsTypeAnnotation":
    case "FunctionTypeAnnotation":
    case "FunctionTypeParam":
    case "GenericTypeAnnotation":
    case "InferredPredicate":
    case "InterfaceExtends":
    case "InterfaceDeclaration":
    case "InterfaceTypeAnnotation":
    case "IntersectionTypeAnnotation":
    case "MixedTypeAnnotation":
    case "EmptyTypeAnnotation":
    case "NullableTypeAnnotation":
    case "NumberLiteralTypeAnnotation":
    case "NumberTypeAnnotation":
    case "ObjectTypeAnnotation":
    case "ObjectTypeInternalSlot":
    case "ObjectTypeCallProperty":
    case "ObjectTypeIndexer":
    case "ObjectTypeProperty":
    case "ObjectTypeSpreadProperty":
    case "OpaqueType":
    case "QualifiedTypeIdentifier":
    case "StringLiteralTypeAnnotation":
    case "StringTypeAnnotation":
    case "SymbolTypeAnnotation":
    case "ThisTypeAnnotation":
    case "TupleTypeAnnotation":
    case "TypeofTypeAnnotation":
    case "TypeAlias":
    case "TypeAnnotation":
    case "TypeCastExpression":
    case "TypeParameter":
    case "TypeParameterDeclaration":
    case "TypeParameterInstantiation":
    case "UnionTypeAnnotation":
    case "Variance":
    case "VoidTypeAnnotation":
    case "EnumDeclaration":
    case "EnumBooleanBody":
    case "EnumNumberBody":
    case "EnumStringBody":
    case "EnumSymbolBody":
    case "EnumBooleanMember":
    case "EnumNumberMember":
    case "EnumStringMember":
    case "EnumDefaultedMember":
    case "IndexedAccessType":
    case "OptionalIndexedAccessType":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Gct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "AnyTypeAnnotation":
    case "ArrayTypeAnnotation":
    case "BooleanTypeAnnotation":
    case "BooleanLiteralTypeAnnotation":
    case "NullLiteralTypeAnnotation":
    case "ExistsTypeAnnotation":
    case "FunctionTypeAnnotation":
    case "GenericTypeAnnotation":
    case "InterfaceTypeAnnotation":
    case "IntersectionTypeAnnotation":
    case "MixedTypeAnnotation":
    case "EmptyTypeAnnotation":
    case "NullableTypeAnnotation":
    case "NumberLiteralTypeAnnotation":
    case "NumberTypeAnnotation":
    case "ObjectTypeAnnotation":
    case "StringLiteralTypeAnnotation":
    case "StringTypeAnnotation":
    case "SymbolTypeAnnotation":
    case "ThisTypeAnnotation":
    case "TupleTypeAnnotation":
    case "TypeofTypeAnnotation":
    case "UnionTypeAnnotation":
    case "VoidTypeAnnotation":
    case "IndexedAccessType":
    case "OptionalIndexedAccessType":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Yct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "AnyTypeAnnotation":
    case "BooleanTypeAnnotation":
    case "NullLiteralTypeAnnotation":
    case "MixedTypeAnnotation":
    case "EmptyTypeAnnotation":
    case "NumberTypeAnnotation":
    case "StringTypeAnnotation":
    case "SymbolTypeAnnotation":
    case "ThisTypeAnnotation":
    case "VoidTypeAnnotation":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Xct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "DeclareClass":
    case "DeclareFunction":
    case "DeclareInterface":
    case "DeclareModule":
    case "DeclareModuleExports":
    case "DeclareTypeAlias":
    case "DeclareOpaqueType":
    case "DeclareVariable":
    case "DeclareExportDeclaration":
    case "DeclareExportAllDeclaration":
    case "InterfaceDeclaration":
    case "OpaqueType":
    case "TypeAlias":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Jct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "DeclaredPredicate":
    case "InferredPredicate":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Qct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "EnumBooleanBody":
    case "EnumNumberBody":
    case "EnumStringBody":
    case "EnumSymbolBody":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function Zct(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "EnumBooleanMember":
    case "EnumNumberMember":
    case "EnumStringMember":
    case "EnumDefaultedMember":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function ept(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "JSXAttribute":
    case "JSXClosingElement":
    case "JSXElement":
    case "JSXEmptyExpression":
    case "JSXExpressionContainer":
    case "JSXSpreadChild":
    case "JSXIdentifier":
    case "JSXMemberExpression":
    case "JSXNamespacedName":
    case "JSXOpeningElement":
    case "JSXSpreadAttribute":
    case "JSXText":
    case "JSXFragment":
    case "JSXOpeningFragment":
    case "JSXClosingFragment":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function tpt(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "Noop":
    case "Placeholder":
    case "V8IntrinsicIdentifier":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function rpt(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "TSParameterProperty":
    case "TSDeclareFunction":
    case "TSDeclareMethod":
    case "TSQualifiedName":
    case "TSCallSignatureDeclaration":
    case "TSConstructSignatureDeclaration":
    case "TSPropertySignature":
    case "TSMethodSignature":
    case "TSIndexSignature":
    case "TSAnyKeyword":
    case "TSBooleanKeyword":
    case "TSBigIntKeyword":
    case "TSIntrinsicKeyword":
    case "TSNeverKeyword":
    case "TSNullKeyword":
    case "TSNumberKeyword":
    case "TSObjectKeyword":
    case "TSStringKeyword":
    case "TSSymbolKeyword":
    case "TSUndefinedKeyword":
    case "TSUnknownKeyword":
    case "TSVoidKeyword":
    case "TSThisType":
    case "TSFunctionType":
    case "TSConstructorType":
    case "TSTypeReference":
    case "TSTypePredicate":
    case "TSTypeQuery":
    case "TSTypeLiteral":
    case "TSArrayType":
    case "TSTupleType":
    case "TSOptionalType":
    case "TSRestType":
    case "TSNamedTupleMember":
    case "TSUnionType":
    case "TSIntersectionType":
    case "TSConditionalType":
    case "TSInferType":
    case "TSParenthesizedType":
    case "TSTypeOperator":
    case "TSIndexedAccessType":
    case "TSMappedType":
    case "TSLiteralType":
    case "TSExpressionWithTypeArguments":
    case "TSInterfaceDeclaration":
    case "TSInterfaceBody":
    case "TSTypeAliasDeclaration":
    case "TSInstantiationExpression":
    case "TSAsExpression":
    case "TSSatisfiesExpression":
    case "TSTypeAssertion":
    case "TSEnumDeclaration":
    case "TSEnumMember":
    case "TSModuleDeclaration":
    case "TSModuleBlock":
    case "TSImportType":
    case "TSImportEqualsDeclaration":
    case "TSExternalModuleReference":
    case "TSNonNullExpression":
    case "TSExportAssignment":
    case "TSNamespaceExportDeclaration":
    case "TSTypeAnnotation":
    case "TSTypeParameterInstantiation":
    case "TSTypeParameterDeclaration":
    case "TSTypeParameter":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function ipt(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "TSCallSignatureDeclaration":
    case "TSConstructSignatureDeclaration":
    case "TSPropertySignature":
    case "TSMethodSignature":
    case "TSIndexSignature":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function npt(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "TSAnyKeyword":
    case "TSBooleanKeyword":
    case "TSBigIntKeyword":
    case "TSIntrinsicKeyword":
    case "TSNeverKeyword":
    case "TSNullKeyword":
    case "TSNumberKeyword":
    case "TSObjectKeyword":
    case "TSStringKeyword":
    case "TSSymbolKeyword":
    case "TSUndefinedKeyword":
    case "TSUnknownKeyword":
    case "TSVoidKeyword":
    case "TSThisType":
    case "TSFunctionType":
    case "TSConstructorType":
    case "TSTypeReference":
    case "TSTypePredicate":
    case "TSTypeQuery":
    case "TSTypeLiteral":
    case "TSArrayType":
    case "TSTupleType":
    case "TSOptionalType":
    case "TSRestType":
    case "TSUnionType":
    case "TSIntersectionType":
    case "TSConditionalType":
    case "TSInferType":
    case "TSParenthesizedType":
    case "TSTypeOperator":
    case "TSIndexedAccessType":
    case "TSMappedType":
    case "TSLiteralType":
    case "TSExpressionWithTypeArguments":
    case "TSImportType":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function spt(e, t) {
  if (!e)
    return !1;
  switch (e.type) {
    case "TSAnyKeyword":
    case "TSBooleanKeyword":
    case "TSBigIntKeyword":
    case "TSIntrinsicKeyword":
    case "TSNeverKeyword":
    case "TSNullKeyword":
    case "TSNumberKeyword":
    case "TSObjectKeyword":
    case "TSStringKeyword":
    case "TSSymbolKeyword":
    case "TSUndefinedKeyword":
    case "TSUnknownKeyword":
    case "TSVoidKeyword":
    case "TSThisType":
    case "TSLiteralType":
      break;
    default:
      return !1;
  }
  return t == null || (0, Ke.default)(e, t);
}
function apt(e, t) {
  return (0, QT.default)("isNumberLiteral", "isNumericLiteral"), !e || e.type !== "NumberLiteral" ? !1 : t == null || (0, Ke.default)(e, t);
}
function opt(e, t) {
  return (0, QT.default)("isRegexLiteral", "isRegExpLiteral"), !e || e.type !== "RegexLiteral" ? !1 : t == null || (0, Ke.default)(e, t);
}
function lpt(e, t) {
  return (0, QT.default)("isRestProperty", "isRestElement"), !e || e.type !== "RestProperty" ? !1 : t == null || (0, Ke.default)(e, t);
}
function upt(e, t) {
  return (0, QT.default)("isSpreadProperty", "isSpreadElement"), !e || e.type !== "SpreadProperty" ? !1 : t == null || (0, Ke.default)(e, t);
}
function cpt(e, t) {
  return (0, QT.default)("isModuleDeclaration", "isImportOrExportDeclaration"), ode(e, t);
}
Object.defineProperty(C_, "__esModule", {
  value: !0
});
C_.default = ppt;
var Fb = Oe;
function ppt(e, t, r) {
  if (!(0, Fb.isMemberExpression)(e))
    return !1;
  const i = Array.isArray(t) ? t : t.split("."), n = [];
  let s;
  for (s = e; (0, Fb.isMemberExpression)(s); s = s.object)
    n.push(s.property);
  if (n.push(s), n.length < i.length || !r && n.length > i.length)
    return !1;
  for (let a = 0, o = n.length - 1; a < i.length; a++, o--) {
    const l = n[o];
    let u;
    if ((0, Fb.isIdentifier)(l))
      u = l.name;
    else if ((0, Fb.isStringLiteral)(l))
      u = l.value;
    else if ((0, Fb.isThisExpression)(l))
      u = "this";
    else
      return !1;
    if (i[a] !== u)
      return !1;
  }
  return !0;
}
Object.defineProperty(A_, "__esModule", {
  value: !0
});
A_.default = hpt;
var fpt = C_;
function hpt(e, t) {
  const r = e.split(".");
  return (i) => (0, fpt.default)(i, r, t);
}
Object.defineProperty(w_, "__esModule", {
  value: !0
});
w_.default = void 0;
var dpt = A_;
const mpt = (0, dpt.default)("React.Component");
w_.default = mpt;
var I9 = {};
Object.defineProperty(I9, "__esModule", {
  value: !0
});
I9.default = ypt;
function ypt(e) {
  return !!e && /^[a-z]/.test(e);
}
var QE = {}, ZE = {}, we = {}, ad = {}, DR = {}, ds = {}, e1 = {}, t1 = {}, VY;
function k9() {
  if (VY)
    return t1;
  VY = 1, Object.defineProperty(t1, "__esModule", {
    value: !0
  }), t1.default = t;
  var e = Hc();
  function t(r, i) {
    if (r === i)
      return !0;
    if (r == null || e.ALIAS_KEYS[i])
      return !1;
    const n = e.FLIPPED_ALIAS_KEYS[i];
    if (n) {
      if (n[0] === r)
        return !0;
      for (const s of n)
        if (r === s)
          return !0;
    }
    return !1;
  }
  return t1;
}
var r1 = {}, WY;
function lde() {
  if (WY)
    return r1;
  WY = 1, Object.defineProperty(r1, "__esModule", {
    value: !0
  }), r1.default = t;
  var e = Hc();
  function t(r, i) {
    if (r === i)
      return !0;
    const n = e.PLACEHOLDERS_ALIAS[r];
    if (n) {
      for (const s of n)
        if (i === s)
          return !0;
    }
    return !1;
  }
  return r1;
}
var HY;
function ZT() {
  if (HY)
    return e1;
  HY = 1, Object.defineProperty(e1, "__esModule", {
    value: !0
  }), e1.default = n;
  var e = JT, t = k9(), r = lde(), i = Hc();
  function n(s, a, o) {
    return a ? (0, t.default)(a.type, s) ? o === void 0 ? !0 : (0, e.default)(a, o) : !o && a.type === "Placeholder" && s in i.FLIPPED_ALIAS_KEYS ? (0, r.default)(a.expectedNode, s) : !1 : !1;
  }
  return e1;
}
var cm = {};
Object.defineProperty(cm, "__esModule", {
  value: !0
});
cm.default = gpt;
var LR = qc();
function gpt(e, t = !0) {
  return typeof e != "string" || t && ((0, LR.isKeyword)(e) || (0, LR.isStrictReservedWord)(e, !0)) ? !1 : (0, LR.isIdentifierName)(e);
}
var eS = {};
Object.defineProperty(eS, "__esModule", {
  value: !0
});
eS.readCodePoint = cde;
eS.readInt = ude;
eS.readStringContents = vpt;
var bpt = function(t) {
  return t >= 48 && t <= 57;
};
const KY = {
  decBinOct: /* @__PURE__ */ new Set([46, 66, 69, 79, 95, 98, 101, 111]),
  hex: /* @__PURE__ */ new Set([46, 88, 95, 120])
}, i1 = {
  bin: (e) => e === 48 || e === 49,
  oct: (e) => e >= 48 && e <= 55,
  dec: (e) => e >= 48 && e <= 57,
  hex: (e) => e >= 48 && e <= 57 || e >= 65 && e <= 70 || e >= 97 && e <= 102
};
function vpt(e, t, r, i, n, s) {
  const a = r, o = i, l = n;
  let u = "", c = null, f = r;
  const {
    length: h
  } = t;
  for (; ; ) {
    if (r >= h) {
      s.unterminated(a, o, l), u += t.slice(f, r);
      break;
    }
    const m = t.charCodeAt(r);
    if (Tpt(e, m, t, r)) {
      u += t.slice(f, r);
      break;
    }
    if (m === 92) {
      u += t.slice(f, r);
      const g = Spt(t, r, i, n, e === "template", s);
      g.ch === null && !c ? c = {
        pos: r,
        lineStart: i,
        curLine: n
      } : u += g.ch, {
        pos: r,
        lineStart: i,
        curLine: n
      } = g, f = r;
    } else
      m === 8232 || m === 8233 ? (++r, ++n, i = r) : m === 10 || m === 13 ? e === "template" ? (u += t.slice(f, r) + "\n", ++r, m === 13 && t.charCodeAt(r) === 10 && ++r, ++n, f = i = r) : s.unterminated(a, o, l) : ++r;
  }
  return {
    pos: r,
    str: u,
    firstInvalidLoc: c,
    lineStart: i,
    curLine: n,
    containsInvalid: !!c
  };
}
function Tpt(e, t, r, i) {
  return e === "template" ? t === 96 || t === 36 && r.charCodeAt(i + 1) === 123 : t === (e === "double" ? 34 : 39);
}
function Spt(e, t, r, i, n, s) {
  const a = !n;
  t++;
  const o = (u) => ({
    pos: t,
    ch: u,
    lineStart: r,
    curLine: i
  }), l = e.charCodeAt(t++);
  switch (l) {
    case 110:
      return o("\n");
    case 114:
      return o("\r");
    case 120: {
      let u;
      return {
        code: u,
        pos: t
      } = zF(e, t, r, i, 2, !1, a, s), o(u === null ? null : String.fromCharCode(u));
    }
    case 117: {
      let u;
      return {
        code: u,
        pos: t
      } = cde(e, t, r, i, a, s), o(u === null ? null : String.fromCodePoint(u));
    }
    case 116:
      return o("	");
    case 98:
      return o("\b");
    case 118:
      return o("\v");
    case 102:
      return o("\f");
    case 13:
      e.charCodeAt(t) === 10 && ++t;
    case 10:
      r = t, ++i;
    case 8232:
    case 8233:
      return o("");
    case 56:
    case 57:
      if (n)
        return o(null);
      s.strictNumericEscape(t - 1, r, i);
    default:
      if (l >= 48 && l <= 55) {
        const u = t - 1;
        let f = /^[0-7]+/.exec(e.slice(u, t + 2))[0], h = parseInt(f, 8);
        h > 255 && (f = f.slice(0, -1), h = parseInt(f, 8)), t += f.length - 1;
        const m = e.charCodeAt(t);
        if (f !== "0" || m === 56 || m === 57) {
          if (n)
            return o(null);
          s.strictNumericEscape(u, r, i);
        }
        return o(String.fromCharCode(h));
      }
      return o(String.fromCharCode(l));
  }
}
function zF(e, t, r, i, n, s, a, o) {
  const l = t;
  let u;
  return {
    n: u,
    pos: t
  } = ude(e, t, r, i, 16, n, s, !1, o, !a), u === null && (a ? o.invalidEscapeSequence(l, r, i) : t = l - 1), {
    code: u,
    pos: t
  };
}
function ude(e, t, r, i, n, s, a, o, l, u) {
  const c = t, f = n === 16 ? KY.hex : KY.decBinOct, h = n === 16 ? i1.hex : n === 10 ? i1.dec : n === 8 ? i1.oct : i1.bin;
  let m = !1, g = 0;
  for (let y = 0, v = s == null ? 1 / 0 : s; y < v; ++y) {
    const T = e.charCodeAt(t);
    let S;
    if (T === 95 && o !== "bail") {
      const P = e.charCodeAt(t - 1), x = e.charCodeAt(t + 1);
      if (o) {
        if (Number.isNaN(x) || !h(x) || f.has(P) || f.has(x)) {
          if (u)
            return {
              n: null,
              pos: t
            };
          l.unexpectedNumericSeparator(t, r, i);
        }
      } else {
        if (u)
          return {
            n: null,
            pos: t
          };
        l.numericSeparatorInEscapeSequence(t, r, i);
      }
      ++t;
      continue;
    }
    if (T >= 97 ? S = T - 97 + 10 : T >= 65 ? S = T - 65 + 10 : bpt(T) ? S = T - 48 : S = 1 / 0, S >= n) {
      if (S <= 9 && u)
        return {
          n: null,
          pos: t
        };
      if (S <= 9 && l.invalidDigit(t, r, i, n))
        S = 0;
      else if (a)
        S = 0, m = !0;
      else
        break;
    }
    ++t, g = g * n + S;
  }
  return t === c || s != null && t - c !== s || m ? {
    n: null,
    pos: t
  } : {
    n: g,
    pos: t
  };
}
function cde(e, t, r, i, n, s) {
  const a = e.charCodeAt(t);
  let o;
  if (a === 123) {
    if (++t, {
      code: o,
      pos: t
    } = zF(e, t, r, i, e.indexOf("}", t) - t, !0, n, s), ++t, o !== null && o > 1114111)
      if (n)
        s.invalidCodePoint(t, r, i);
      else
        return {
          code: null,
          pos: t
        };
  } else
    ({
      code: o,
      pos: t
    } = zF(e, t, r, i, 4, !1, n, s));
  return {
    code: o,
    pos: t
  };
}
var xr = {};
Object.defineProperty(xr, "__esModule", {
  value: !0
});
xr.UPDATE_OPERATORS = xr.UNARY_OPERATORS = xr.STRING_UNARY_OPERATORS = xr.STATEMENT_OR_BLOCK_KEYS = xr.NUMBER_UNARY_OPERATORS = xr.NUMBER_BINARY_OPERATORS = xr.NOT_LOCAL_BINDING = xr.LOGICAL_OPERATORS = xr.INHERIT_KEYS = xr.FOR_INIT_KEYS = xr.FLATTENABLE_KEYS = xr.EQUALITY_BINARY_OPERATORS = xr.COMPARISON_BINARY_OPERATORS = xr.COMMENT_KEYS = xr.BOOLEAN_UNARY_OPERATORS = xr.BOOLEAN_NUMBER_BINARY_OPERATORS = xr.BOOLEAN_BINARY_OPERATORS = xr.BLOCK_SCOPED_SYMBOL = xr.BINARY_OPERATORS = xr.ASSIGNMENT_OPERATORS = void 0;
xr.STATEMENT_OR_BLOCK_KEYS = ["consequent", "body", "alternate"];
xr.FLATTENABLE_KEYS = ["body", "expressions"];
xr.FOR_INIT_KEYS = ["left", "init"];
xr.COMMENT_KEYS = ["leadingComments", "trailingComments", "innerComments"];
const xpt = xr.LOGICAL_OPERATORS = ["||", "&&", "??"];
xr.UPDATE_OPERATORS = ["++", "--"];
const Ept = xr.BOOLEAN_NUMBER_BINARY_OPERATORS = [">", "<", ">=", "<="], Ppt = xr.EQUALITY_BINARY_OPERATORS = ["==", "===", "!=", "!=="], wpt = xr.COMPARISON_BINARY_OPERATORS = [...Ppt, "in", "instanceof"], Apt = xr.BOOLEAN_BINARY_OPERATORS = [...wpt, ...Ept], pde = xr.NUMBER_BINARY_OPERATORS = ["-", "/", "%", "*", "**", "&", "|", ">>", ">>>", "<<", "^"];
xr.BINARY_OPERATORS = ["+", ...pde, ...Apt, "|>"];
xr.ASSIGNMENT_OPERATORS = ["=", "+=", ...pde.map((e) => e + "="), ...xpt.map((e) => e + "=")];
const Cpt = xr.BOOLEAN_UNARY_OPERATORS = ["delete", "!"], _pt = xr.NUMBER_UNARY_OPERATORS = ["+", "-", "~"], Ipt = xr.STRING_UNARY_OPERATORS = ["typeof"];
xr.UNARY_OPERATORS = ["void", "throw", ...Cpt, ..._pt, ...Ipt];
xr.INHERIT_KEYS = {
  optional: ["typeAnnotation", "typeParameters", "returnType"],
  force: ["start", "loc", "end"]
};
xr.BLOCK_SCOPED_SYMBOL = Symbol.for("var used to be block scoped");
xr.NOT_LOCAL_BINDING = Symbol.for("should not be considered a local binding");
var fi = {}, zY;
function Rf() {
  if (zY)
    return fi;
  zY = 1, Object.defineProperty(fi, "__esModule", {
    value: !0
  }), fi.VISITOR_KEYS = fi.NODE_PARENT_VALIDATIONS = fi.NODE_FIELDS = fi.FLIPPED_ALIAS_KEYS = fi.DEPRECATED_KEYS = fi.BUILDER_KEYS = fi.ALIAS_KEYS = void 0, fi.arrayOf = g, fi.arrayOfType = y, fi.assertEach = T, fi.assertNodeOrValueType = x, fi.assertNodeType = P, fi.assertOneOf = S, fi.assertOptionalChainStart = w, fi.assertShape = D, fi.assertValueType = C, fi.chain = A, fi.default = q, fi.defineAliasedType = F, fi.validate = c, fi.validateArrayOfType = v, fi.validateOptional = h, fi.validateOptionalType = m, fi.validateType = f;
  var e = ZT(), t = O9();
  const r = fi.VISITOR_KEYS = {}, i = fi.ALIAS_KEYS = {}, n = fi.FLIPPED_ALIAS_KEYS = {}, s = fi.NODE_FIELDS = {}, a = fi.BUILDER_KEYS = {}, o = fi.DEPRECATED_KEYS = {}, l = fi.NODE_PARENT_VALIDATIONS = {};
  function u(j) {
    return Array.isArray(j) ? "array" : j === null ? "null" : typeof j;
  }
  function c(j) {
    return {
      validate: j
    };
  }
  function f(...j) {
    return c(P(...j));
  }
  function h(j) {
    return {
      validate: j,
      optional: !0
    };
  }
  function m(...j) {
    return {
      validate: P(...j),
      optional: !0
    };
  }
  function g(j) {
    return A(C("array"), T(j));
  }
  function y(...j) {
    return g(P(...j));
  }
  function v(...j) {
    return c(y(...j));
  }
  function T(j) {
    const N = process.env.BABEL_TYPES_8_BREAKING ? t.validateChild : () => {
    };
    function M(R, $, V) {
      if (Array.isArray(V))
        for (let K = 0; K < V.length; K++) {
          const z = "".concat($, "[").concat(K, "]"), W = V[K];
          j(R, z, W), N(R, z, W);
        }
    }
    return M.each = j, M;
  }
  function S(...j) {
    function N(M, R, $) {
      if (!j.includes($))
        throw new TypeError("Property ".concat(R, " expected value to be one of ").concat(JSON.stringify(j), " but got ").concat(JSON.stringify($)));
    }
    return N.oneOf = j, N;
  }
  function P(...j) {
    function N(M, R, $) {
      for (const V of j)
        if ((0, e.default)(V, $)) {
          (0, t.validateChild)(M, R, $);
          return;
        }
      throw new TypeError("Property ".concat(R, " of ").concat(M.type, " expected node to be of a type ").concat(JSON.stringify(j), " but instead got ").concat(JSON.stringify($ == null ? void 0 : $.type)));
    }
    return N.oneOfNodeTypes = j, N;
  }
  function x(...j) {
    function N(M, R, $) {
      for (const V of j)
        if (u($) === V || (0, e.default)(V, $)) {
          (0, t.validateChild)(M, R, $);
          return;
        }
      throw new TypeError("Property ".concat(R, " of ").concat(M.type, " expected node to be of a type ").concat(JSON.stringify(j), " but instead got ").concat(JSON.stringify($ == null ? void 0 : $.type)));
    }
    return N.oneOfNodeOrValueTypes = j, N;
  }
  function C(j) {
    function N(M, R, $) {
      if (!(u($) === j))
        throw new TypeError("Property ".concat(R, " expected type of ").concat(j, " but got ").concat(u($)));
    }
    return N.type = j, N;
  }
  function D(j) {
    function N(M, R, $) {
      const V = [];
      for (const K of Object.keys(j))
        try {
          (0, t.validateField)(M, K, $[K], j[K]);
        } catch (z) {
          if (z instanceof TypeError) {
            V.push(z.message);
            continue;
          }
          throw z;
        }
      if (V.length)
        throw new TypeError("Property ".concat(R, " of ").concat(M.type, " expected to have the following:\n").concat(V.join("\n")));
    }
    return N.shapeOf = j, N;
  }
  function w() {
    function j(N) {
      var M;
      let R = N;
      for (; N; ) {
        const {
          type: $
        } = R;
        if ($ === "OptionalCallExpression") {
          if (R.optional)
            return;
          R = R.callee;
          continue;
        }
        if ($ === "OptionalMemberExpression") {
          if (R.optional)
            return;
          R = R.object;
          continue;
        }
        break;
      }
      throw new TypeError("Non-optional ".concat(N.type, " must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ").concat((M = R) == null ? void 0 : M.type));
    }
    return j;
  }
  function A(...j) {
    function N(...M) {
      for (const R of j)
        R(...M);
    }
    if (N.chainOf = j, j.length >= 2 && "type" in j[0] && j[0].type === "array" && !("each" in j[1]))
      throw new Error('An assertValueType("array") validator can only be followed by an assertEach(...) validator.');
    return N;
  }
  const I = /* @__PURE__ */ new Set(["aliases", "builder", "deprecatedAlias", "fields", "inherits", "visitor", "validate"]), L = /* @__PURE__ */ new Set(["default", "optional", "deprecated", "validate"]), O = {};
  function F(...j) {
    return (N, M = {}) => {
      let R = M.aliases;
      if (!R) {
        var $, V;
        M.inherits && (R = ($ = O[M.inherits].aliases) == null ? void 0 : $.slice()), (V = R) != null || (R = []), M.aliases = R;
      }
      const K = j.filter((z) => !R.includes(z));
      R.unshift(...K), q(N, M);
    };
  }
  function q(j, N = {}) {
    const M = N.inherits && O[N.inherits] || {};
    let R = N.fields;
    if (!R && (R = {}, M.fields)) {
      const z = Object.getOwnPropertyNames(M.fields);
      for (const W of z) {
        const Y = M.fields[W], G = Y.default;
        if (Array.isArray(G) ? G.length > 0 : G && typeof G == "object")
          throw new Error("field defaults can only be primitives or empty arrays currently");
        R[W] = {
          default: Array.isArray(G) ? [] : G,
          optional: Y.optional,
          deprecated: Y.deprecated,
          validate: Y.validate
        };
      }
    }
    const $ = N.visitor || M.visitor || [], V = N.aliases || M.aliases || [], K = N.builder || M.builder || N.visitor || [];
    for (const z of Object.keys(N))
      if (!I.has(z))
        throw new Error('Unknown type option "'.concat(z, '" on ').concat(j));
    N.deprecatedAlias && (o[N.deprecatedAlias] = j);
    for (const z of $.concat(K))
      R[z] = R[z] || {};
    for (const z of Object.keys(R)) {
      const W = R[z];
      W.default !== void 0 && !K.includes(z) && (W.optional = !0), W.default === void 0 ? W.default = null : !W.validate && W.default != null && (W.validate = C(u(W.default)));
      for (const Y of Object.keys(W))
        if (!L.has(Y))
          throw new Error('Unknown field key "'.concat(Y, '" on ').concat(j, ".").concat(z));
    }
    r[j] = N.visitor = $, a[j] = N.builder = K, s[j] = N.fields = R, i[j] = N.aliases = V, V.forEach((z) => {
      n[z] = n[z] || [], n[z].push(j);
    }), N.validate && (l[j] = N.validate), O[j] = N;
  }
  return fi;
}
var GY;
function __() {
  if (GY)
    return ds;
  GY = 1, Object.defineProperty(ds, "__esModule", {
    value: !0
  }), ds.patternLikeCommon = ds.importAttributes = ds.functionTypeAnnotationCommon = ds.functionDeclarationCommon = ds.functionCommon = ds.classMethodOrPropertyCommon = ds.classMethodOrDeclareMethodCommon = void 0;
  var e = ZT(), t = cm, r = qc(), i = eS, n = xr, s = Rf();
  const a = (0, s.defineAliasedType)("Standardized");
  a("ArrayExpression", {
    fields: {
      elements: {
        validate: (0, s.arrayOf)((0, s.assertNodeOrValueType)("null", "Expression", "SpreadElement")),
        default: process.env.BABEL_TYPES_8_BREAKING ? void 0 : []
      }
    },
    visitor: ["elements"],
    aliases: ["Expression"]
  }), a("AssignmentExpression", {
    fields: {
      operator: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? Object.assign(function() {
          const g = (0, s.assertOneOf)(...n.ASSIGNMENT_OPERATORS), y = (0, s.assertOneOf)("=");
          return function(v, T, S) {
            ((0, e.default)("Pattern", v.left) ? y : g)(v, T, S);
          };
        }(), {
          type: "string"
        }) : (0, s.assertValueType)("string")
      },
      left: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.assertNodeType)("Identifier", "MemberExpression", "OptionalMemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") : (0, s.assertNodeType)("LVal", "OptionalMemberExpression")
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      }
    },
    builder: ["operator", "left", "right"],
    visitor: ["left", "right"],
    aliases: ["Expression"]
  }), a("BinaryExpression", {
    builder: ["operator", "left", "right"],
    fields: {
      operator: {
        validate: (0, s.assertOneOf)(...n.BINARY_OPERATORS)
      },
      left: {
        validate: function() {
          const g = (0, s.assertNodeType)("Expression"), y = (0, s.assertNodeType)("Expression", "PrivateName");
          return Object.assign(function(T, S, P) {
            (T.operator === "in" ? y : g)(T, S, P);
          }, {
            oneOfNodeTypes: ["Expression", "PrivateName"]
          });
        }()
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      }
    },
    visitor: ["left", "right"],
    aliases: ["Binary", "Expression"]
  }), a("InterpreterDirective", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, s.assertValueType)("string")
      }
    }
  }), a("Directive", {
    visitor: ["value"],
    fields: {
      value: {
        validate: (0, s.assertNodeType)("DirectiveLiteral")
      }
    }
  }), a("DirectiveLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, s.assertValueType)("string")
      }
    }
  }), a("BlockStatement", {
    builder: ["body", "directives"],
    visitor: ["directives", "body"],
    fields: {
      directives: {
        validate: (0, s.arrayOfType)("Directive"),
        default: []
      },
      body: (0, s.validateArrayOfType)("Statement")
    },
    aliases: ["Scopable", "BlockParent", "Block", "Statement"]
  }), a("BreakStatement", {
    visitor: ["label"],
    fields: {
      label: {
        validate: (0, s.assertNodeType)("Identifier"),
        optional: !0
      }
    },
    aliases: ["Statement", "Terminatorless", "CompletionStatement"]
  }), a("CallExpression", {
    visitor: ["callee", "arguments", "typeParameters", "typeArguments"],
    builder: ["callee", "arguments"],
    aliases: ["Expression"],
    fields: Object.assign({
      callee: {
        validate: (0, s.assertNodeType)("Expression", "Super", "V8IntrinsicIdentifier")
      },
      arguments: (0, s.validateArrayOfType)("Expression", "SpreadElement", "ArgumentPlaceholder")
    }, process.env.BABEL_TYPES_8_BREAKING ? {} : {
      optional: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      }
    }, {
      typeArguments: {
        validate: (0, s.assertNodeType)("TypeParameterInstantiation"),
        optional: !0
      },
      typeParameters: {
        validate: (0, s.assertNodeType)("TSTypeParameterInstantiation"),
        optional: !0
      }
    })
  }), a("CatchClause", {
    visitor: ["param", "body"],
    fields: {
      param: {
        validate: (0, s.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern"),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      }
    },
    aliases: ["Scopable", "BlockParent"]
  }), a("ConditionalExpression", {
    visitor: ["test", "consequent", "alternate"],
    fields: {
      test: {
        validate: (0, s.assertNodeType)("Expression")
      },
      consequent: {
        validate: (0, s.assertNodeType)("Expression")
      },
      alternate: {
        validate: (0, s.assertNodeType)("Expression")
      }
    },
    aliases: ["Expression", "Conditional"]
  }), a("ContinueStatement", {
    visitor: ["label"],
    fields: {
      label: {
        validate: (0, s.assertNodeType)("Identifier"),
        optional: !0
      }
    },
    aliases: ["Statement", "Terminatorless", "CompletionStatement"]
  }), a("DebuggerStatement", {
    aliases: ["Statement"]
  }), a("DoWhileStatement", {
    builder: ["test", "body"],
    visitor: ["body", "test"],
    fields: {
      test: {
        validate: (0, s.assertNodeType)("Expression")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    },
    aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"]
  }), a("EmptyStatement", {
    aliases: ["Statement"]
  }), a("ExpressionStatement", {
    visitor: ["expression"],
    fields: {
      expression: {
        validate: (0, s.assertNodeType)("Expression")
      }
    },
    aliases: ["Statement", "ExpressionWrapper"]
  }), a("File", {
    builder: ["program", "comments", "tokens"],
    visitor: ["program"],
    fields: {
      program: {
        validate: (0, s.assertNodeType)("Program")
      },
      comments: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.assertEach)((0, s.assertNodeType)("CommentBlock", "CommentLine")) : Object.assign(() => {
        }, {
          each: {
            oneOfNodeTypes: ["CommentBlock", "CommentLine"]
          }
        }),
        optional: !0
      },
      tokens: {
        validate: (0, s.assertEach)(Object.assign(() => {
        }, {
          type: "any"
        })),
        optional: !0
      }
    }
  }), a("ForInStatement", {
    visitor: ["left", "right", "body"],
    aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"],
    fields: {
      left: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.assertNodeType)("VariableDeclaration", "Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") : (0, s.assertNodeType)("VariableDeclaration", "LVal")
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  }), a("ForStatement", {
    visitor: ["init", "test", "update", "body"],
    aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop"],
    fields: {
      init: {
        validate: (0, s.assertNodeType)("VariableDeclaration", "Expression"),
        optional: !0
      },
      test: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      update: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  });
  const o = () => ({
    params: (0, s.validateArrayOfType)("Identifier", "Pattern", "RestElement"),
    generator: {
      default: !1
    },
    async: {
      default: !1
    }
  });
  ds.functionCommon = o;
  const l = () => ({
    returnType: {
      validate: (0, s.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
      optional: !0
    },
    typeParameters: {
      validate: (0, s.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"),
      optional: !0
    }
  });
  ds.functionTypeAnnotationCommon = l;
  const u = () => Object.assign({}, o(), {
    declare: {
      validate: (0, s.assertValueType)("boolean"),
      optional: !0
    },
    id: {
      validate: (0, s.assertNodeType)("Identifier"),
      optional: !0
    }
  });
  ds.functionDeclarationCommon = u, a("FunctionDeclaration", {
    builder: ["id", "params", "body", "generator", "async"],
    visitor: ["id", "typeParameters", "params", "returnType", "body"],
    fields: Object.assign({}, u(), l(), {
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      },
      predicate: {
        validate: (0, s.assertNodeType)("DeclaredPredicate", "InferredPredicate"),
        optional: !0
      }
    }),
    aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Statement", "Pureish", "Declaration"],
    validate: process.env.BABEL_TYPES_8_BREAKING ? function() {
      const g = (0, s.assertNodeType)("Identifier");
      return function(y, v, T) {
        (0, e.default)("ExportDefaultDeclaration", y) || g(T, "id", T.id);
      };
    }() : void 0
  }), a("FunctionExpression", {
    inherits: "FunctionDeclaration",
    aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"],
    fields: Object.assign({}, o(), l(), {
      id: {
        validate: (0, s.assertNodeType)("Identifier"),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      },
      predicate: {
        validate: (0, s.assertNodeType)("DeclaredPredicate", "InferredPredicate"),
        optional: !0
      }
    })
  });
  const c = () => ({
    typeAnnotation: {
      validate: (0, s.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
      optional: !0
    },
    optional: {
      validate: (0, s.assertValueType)("boolean"),
      optional: !0
    },
    decorators: {
      validate: (0, s.arrayOfType)("Decorator"),
      optional: !0
    }
  });
  ds.patternLikeCommon = c, a("Identifier", {
    builder: ["name"],
    visitor: ["typeAnnotation", "decorators"],
    aliases: ["Expression", "PatternLike", "LVal", "TSEntityName"],
    fields: Object.assign({}, c(), {
      name: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.chain)((0, s.assertValueType)("string"), Object.assign(function(g, y, v) {
          if (!(0, t.default)(v, !1))
            throw new TypeError('"'.concat(v, '" is not a valid identifier name'));
        }, {
          type: "string"
        })) : (0, s.assertValueType)("string")
      }
    }),
    validate: process.env.BABEL_TYPES_8_BREAKING ? function(g, y, v) {
      const T = /\.(\w+)$/.exec(y);
      if (!T)
        return;
      const [, S] = T, P = {
        computed: !1
      };
      if (S === "property") {
        if ((0, e.default)("MemberExpression", g, P) || (0, e.default)("OptionalMemberExpression", g, P))
          return;
      } else if (S === "key") {
        if ((0, e.default)("Property", g, P) || (0, e.default)("Method", g, P))
          return;
      } else if (S === "exported") {
        if ((0, e.default)("ExportSpecifier", g))
          return;
      } else if (S === "imported") {
        if ((0, e.default)("ImportSpecifier", g, {
          imported: v
        }))
          return;
      } else if (S === "meta" && (0, e.default)("MetaProperty", g, {
        meta: v
      }))
        return;
      if (((0, r.isKeyword)(v.name) || (0, r.isReservedWord)(v.name, !1)) && v.name !== "this")
        throw new TypeError('"'.concat(v.name, '" is not a valid identifier'));
    } : void 0
  }), a("IfStatement", {
    visitor: ["test", "consequent", "alternate"],
    aliases: ["Statement", "Conditional"],
    fields: {
      test: {
        validate: (0, s.assertNodeType)("Expression")
      },
      consequent: {
        validate: (0, s.assertNodeType)("Statement")
      },
      alternate: {
        optional: !0,
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  }), a("LabeledStatement", {
    visitor: ["label", "body"],
    aliases: ["Statement"],
    fields: {
      label: {
        validate: (0, s.assertNodeType)("Identifier")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  }), a("StringLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, s.assertValueType)("string")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), a("NumericLiteral", {
    builder: ["value"],
    deprecatedAlias: "NumberLiteral",
    fields: {
      value: {
        validate: (0, s.chain)((0, s.assertValueType)("number"), Object.assign(function(g, y, v) {
        }, {
          type: "number"
        }))
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), a("NullLiteral", {
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), a("BooleanLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, s.assertValueType)("boolean")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), a("RegExpLiteral", {
    builder: ["pattern", "flags"],
    deprecatedAlias: "RegexLiteral",
    aliases: ["Expression", "Pureish", "Literal"],
    fields: {
      pattern: {
        validate: (0, s.assertValueType)("string")
      },
      flags: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.chain)((0, s.assertValueType)("string"), Object.assign(function(g, y, v) {
          const T = /[^gimsuy]/.exec(v);
          if (T)
            throw new TypeError('"'.concat(T[0], '" is not a valid RegExp flag'));
        }, {
          type: "string"
        })) : (0, s.assertValueType)("string"),
        default: ""
      }
    }
  }), a("LogicalExpression", {
    builder: ["operator", "left", "right"],
    visitor: ["left", "right"],
    aliases: ["Binary", "Expression"],
    fields: {
      operator: {
        validate: (0, s.assertOneOf)(...n.LOGICAL_OPERATORS)
      },
      left: {
        validate: (0, s.assertNodeType)("Expression")
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("MemberExpression", {
    builder: ["object", "property", "computed", ...process.env.BABEL_TYPES_8_BREAKING ? [] : ["optional"]],
    visitor: ["object", "property"],
    aliases: ["Expression", "LVal"],
    fields: Object.assign({
      object: {
        validate: (0, s.assertNodeType)("Expression", "Super")
      },
      property: {
        validate: function() {
          const g = (0, s.assertNodeType)("Identifier", "PrivateName"), y = (0, s.assertNodeType)("Expression"), v = function(T, S, P) {
            (T.computed ? y : g)(T, S, P);
          };
          return v.oneOfNodeTypes = ["Expression", "Identifier", "PrivateName"], v;
        }()
      },
      computed: {
        default: !1
      }
    }, process.env.BABEL_TYPES_8_BREAKING ? {} : {
      optional: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      }
    })
  }), a("NewExpression", {
    inherits: "CallExpression"
  }), a("Program", {
    visitor: ["directives", "body"],
    builder: ["body", "directives", "sourceType", "interpreter"],
    fields: {
      sourceType: {
        validate: (0, s.assertOneOf)("script", "module"),
        default: "script"
      },
      interpreter: {
        validate: (0, s.assertNodeType)("InterpreterDirective"),
        default: null,
        optional: !0
      },
      directives: {
        validate: (0, s.arrayOfType)("Directive"),
        default: []
      },
      body: (0, s.validateArrayOfType)("Statement")
    },
    aliases: ["Scopable", "BlockParent", "Block"]
  }), a("ObjectExpression", {
    visitor: ["properties"],
    aliases: ["Expression"],
    fields: {
      properties: (0, s.validateArrayOfType)("ObjectMethod", "ObjectProperty", "SpreadElement")
    }
  }), a("ObjectMethod", {
    builder: ["kind", "key", "params", "body", "computed", "generator", "async"],
    visitor: ["decorators", "key", "typeParameters", "params", "returnType", "body"],
    fields: Object.assign({}, o(), l(), {
      kind: Object.assign({
        validate: (0, s.assertOneOf)("method", "get", "set")
      }, process.env.BABEL_TYPES_8_BREAKING ? {} : {
        default: "method"
      }),
      computed: {
        default: !1
      },
      key: {
        validate: function() {
          const g = (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"), y = (0, s.assertNodeType)("Expression"), v = function(T, S, P) {
            (T.computed ? y : g)(T, S, P);
          };
          return v.oneOfNodeTypes = ["Expression", "Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"], v;
        }()
      },
      decorators: {
        validate: (0, s.arrayOfType)("Decorator"),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      }
    }),
    aliases: ["UserWhitespacable", "Function", "Scopable", "BlockParent", "FunctionParent", "Method", "ObjectMember"]
  }), a("ObjectProperty", {
    builder: ["key", "value", "computed", "shorthand", ...process.env.BABEL_TYPES_8_BREAKING ? [] : ["decorators"]],
    fields: {
      computed: {
        default: !1
      },
      key: {
        validate: function() {
          const g = (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "DecimalLiteral", "PrivateName"), y = (0, s.assertNodeType)("Expression");
          return Object.assign(function(T, S, P) {
            (T.computed ? y : g)(T, S, P);
          }, {
            oneOfNodeTypes: ["Expression", "Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "DecimalLiteral", "PrivateName"]
          });
        }()
      },
      value: {
        validate: (0, s.assertNodeType)("Expression", "PatternLike")
      },
      shorthand: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.chain)((0, s.assertValueType)("boolean"), Object.assign(function(g, y, v) {
          if (v) {
            if (g.computed)
              throw new TypeError("Property shorthand of ObjectProperty cannot be true if computed is true");
            if (!(0, e.default)("Identifier", g.key))
              throw new TypeError("Property shorthand of ObjectProperty cannot be true if key is not an Identifier");
          }
        }, {
          type: "boolean"
        })) : (0, s.assertValueType)("boolean"),
        default: !1
      },
      decorators: {
        validate: (0, s.arrayOfType)("Decorator"),
        optional: !0
      }
    },
    visitor: ["key", "value", "decorators"],
    aliases: ["UserWhitespacable", "Property", "ObjectMember"],
    validate: process.env.BABEL_TYPES_8_BREAKING ? function() {
      const g = (0, s.assertNodeType)("Identifier", "Pattern", "TSAsExpression", "TSSatisfiesExpression", "TSNonNullExpression", "TSTypeAssertion"), y = (0, s.assertNodeType)("Expression");
      return function(v, T, S) {
        ((0, e.default)("ObjectPattern", v) ? g : y)(S, "value", S.value);
      };
    }() : void 0
  }), a("RestElement", {
    visitor: ["argument", "typeAnnotation"],
    builder: ["argument"],
    aliases: ["LVal", "PatternLike"],
    deprecatedAlias: "RestProperty",
    fields: Object.assign({}, c(), {
      argument: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern", "MemberExpression", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") : (0, s.assertNodeType)("LVal")
      }
    }),
    validate: process.env.BABEL_TYPES_8_BREAKING ? function(g, y) {
      const v = /(\w+)\[(\d+)\]/.exec(y);
      if (!v)
        throw new Error("Internal Babel error: malformed key.");
      const [, T, S] = v;
      if (g[T].length > +S + 1)
        throw new TypeError("RestElement must be last element of ".concat(T));
    } : void 0
  }), a("ReturnStatement", {
    visitor: ["argument"],
    aliases: ["Statement", "Terminatorless", "CompletionStatement"],
    fields: {
      argument: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      }
    }
  }), a("SequenceExpression", {
    visitor: ["expressions"],
    fields: {
      expressions: (0, s.validateArrayOfType)("Expression")
    },
    aliases: ["Expression"]
  }), a("ParenthesizedExpression", {
    visitor: ["expression"],
    aliases: ["Expression", "ExpressionWrapper"],
    fields: {
      expression: {
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("SwitchCase", {
    visitor: ["test", "consequent"],
    fields: {
      test: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      consequent: (0, s.validateArrayOfType)("Statement")
    }
  }), a("SwitchStatement", {
    visitor: ["discriminant", "cases"],
    aliases: ["Statement", "BlockParent", "Scopable"],
    fields: {
      discriminant: {
        validate: (0, s.assertNodeType)("Expression")
      },
      cases: (0, s.validateArrayOfType)("SwitchCase")
    }
  }), a("ThisExpression", {
    aliases: ["Expression"]
  }), a("ThrowStatement", {
    visitor: ["argument"],
    aliases: ["Statement", "Terminatorless", "CompletionStatement"],
    fields: {
      argument: {
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("TryStatement", {
    visitor: ["block", "handler", "finalizer"],
    aliases: ["Statement"],
    fields: {
      block: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.chain)((0, s.assertNodeType)("BlockStatement"), Object.assign(function(g) {
          if (!g.handler && !g.finalizer)
            throw new TypeError("TryStatement expects either a handler or finalizer, or both");
        }, {
          oneOfNodeTypes: ["BlockStatement"]
        })) : (0, s.assertNodeType)("BlockStatement")
      },
      handler: {
        optional: !0,
        validate: (0, s.assertNodeType)("CatchClause")
      },
      finalizer: {
        optional: !0,
        validate: (0, s.assertNodeType)("BlockStatement")
      }
    }
  }), a("UnaryExpression", {
    builder: ["operator", "argument", "prefix"],
    fields: {
      prefix: {
        default: !0
      },
      argument: {
        validate: (0, s.assertNodeType)("Expression")
      },
      operator: {
        validate: (0, s.assertOneOf)(...n.UNARY_OPERATORS)
      }
    },
    visitor: ["argument"],
    aliases: ["UnaryLike", "Expression"]
  }), a("UpdateExpression", {
    builder: ["operator", "argument", "prefix"],
    fields: {
      prefix: {
        default: !1
      },
      argument: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.assertNodeType)("Identifier", "MemberExpression") : (0, s.assertNodeType)("Expression")
      },
      operator: {
        validate: (0, s.assertOneOf)(...n.UPDATE_OPERATORS)
      }
    },
    visitor: ["argument"],
    aliases: ["Expression"]
  }), a("VariableDeclaration", {
    builder: ["kind", "declarations"],
    visitor: ["declarations"],
    aliases: ["Statement", "Declaration"],
    fields: {
      declare: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      kind: {
        validate: (0, s.assertOneOf)("var", "let", "const", "using", "await using")
      },
      declarations: (0, s.validateArrayOfType)("VariableDeclarator")
    },
    validate: process.env.BABEL_TYPES_8_BREAKING ? (() => {
      const g = (0, s.assertNodeType)("Identifier");
      return function(y, v, T) {
        if ((0, e.default)("ForXStatement", y, {
          left: T
        })) {
          if (T.declarations.length !== 1)
            throw new TypeError("Exactly one VariableDeclarator is required in the VariableDeclaration of a ".concat(y.type));
        } else
          T.declarations.forEach((S) => {
            S.init || g(S, "id", S.id);
          });
      };
    })() : void 0
  }), a("VariableDeclarator", {
    visitor: ["id", "init"],
    fields: {
      id: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern") : (0, s.assertNodeType)("LVal")
      },
      definite: {
        optional: !0,
        validate: (0, s.assertValueType)("boolean")
      },
      init: {
        optional: !0,
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("WhileStatement", {
    visitor: ["test", "body"],
    aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"],
    fields: {
      test: {
        validate: (0, s.assertNodeType)("Expression")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  }), a("WithStatement", {
    visitor: ["object", "body"],
    aliases: ["Statement"],
    fields: {
      object: {
        validate: (0, s.assertNodeType)("Expression")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      }
    }
  }), a("AssignmentPattern", {
    visitor: ["left", "right", "decorators"],
    builder: ["left", "right"],
    aliases: ["Pattern", "PatternLike", "LVal"],
    fields: Object.assign({}, c(), {
      left: {
        validate: (0, s.assertNodeType)("Identifier", "ObjectPattern", "ArrayPattern", "MemberExpression", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression")
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      },
      decorators: {
        validate: (0, s.arrayOfType)("Decorator"),
        optional: !0
      }
    })
  }), a("ArrayPattern", {
    visitor: ["elements", "typeAnnotation"],
    builder: ["elements"],
    aliases: ["Pattern", "PatternLike", "LVal"],
    fields: Object.assign({}, c(), {
      elements: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeOrValueType)("null", "PatternLike", "LVal")))
      }
    })
  }), a("ArrowFunctionExpression", {
    builder: ["params", "body", "async"],
    visitor: ["typeParameters", "params", "returnType", "body"],
    aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"],
    fields: Object.assign({}, o(), l(), {
      expression: {
        validate: (0, s.assertValueType)("boolean")
      },
      body: {
        validate: (0, s.assertNodeType)("BlockStatement", "Expression")
      },
      predicate: {
        validate: (0, s.assertNodeType)("DeclaredPredicate", "InferredPredicate"),
        optional: !0
      }
    })
  }), a("ClassBody", {
    visitor: ["body"],
    fields: {
      body: (0, s.validateArrayOfType)("ClassMethod", "ClassPrivateMethod", "ClassProperty", "ClassPrivateProperty", "ClassAccessorProperty", "TSDeclareMethod", "TSIndexSignature", "StaticBlock")
    }
  }), a("ClassExpression", {
    builder: ["id", "superClass", "body", "decorators"],
    visitor: ["decorators", "id", "typeParameters", "superClass", "superTypeParameters", "mixins", "implements", "body"],
    aliases: ["Scopable", "Class", "Expression"],
    fields: {
      id: {
        validate: (0, s.assertNodeType)("Identifier"),
        optional: !0
      },
      typeParameters: {
        validate: (0, s.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("ClassBody")
      },
      superClass: {
        optional: !0,
        validate: (0, s.assertNodeType)("Expression")
      },
      superTypeParameters: {
        validate: (0, s.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      },
      implements: {
        validate: (0, s.arrayOfType)("TSExpressionWithTypeArguments", "ClassImplements"),
        optional: !0
      },
      decorators: {
        validate: (0, s.arrayOfType)("Decorator"),
        optional: !0
      },
      mixins: {
        validate: (0, s.assertNodeType)("InterfaceExtends"),
        optional: !0
      }
    }
  }), a("ClassDeclaration", {
    inherits: "ClassExpression",
    aliases: ["Scopable", "Class", "Statement", "Declaration"],
    fields: {
      id: {
        validate: (0, s.assertNodeType)("Identifier"),
        optional: !0
      },
      typeParameters: {
        validate: (0, s.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"),
        optional: !0
      },
      body: {
        validate: (0, s.assertNodeType)("ClassBody")
      },
      superClass: {
        optional: !0,
        validate: (0, s.assertNodeType)("Expression")
      },
      superTypeParameters: {
        validate: (0, s.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      },
      implements: {
        validate: (0, s.arrayOfType)("TSExpressionWithTypeArguments", "ClassImplements"),
        optional: !0
      },
      decorators: {
        validate: (0, s.arrayOfType)("Decorator"),
        optional: !0
      },
      mixins: {
        validate: (0, s.assertNodeType)("InterfaceExtends"),
        optional: !0
      },
      declare: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      abstract: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      }
    },
    validate: process.env.BABEL_TYPES_8_BREAKING ? function() {
      const g = (0, s.assertNodeType)("Identifier");
      return function(y, v, T) {
        (0, e.default)("ExportDefaultDeclaration", y) || g(T, "id", T.id);
      };
    }() : void 0
  });
  const f = ds.importAttributes = {
    attributes: {
      optional: !0,
      validate: (0, s.arrayOfType)("ImportAttribute")
    },
    assertions: {
      deprecated: !0,
      optional: !0,
      validate: (0, s.arrayOfType)("ImportAttribute")
    }
  };
  a("ExportAllDeclaration", {
    builder: ["source"],
    visitor: ["source", "attributes", "assertions"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration", "ExportDeclaration"],
    fields: Object.assign({
      source: {
        validate: (0, s.assertNodeType)("StringLiteral")
      },
      exportKind: (0, s.validateOptional)((0, s.assertOneOf)("type", "value"))
    }, f)
  }), a("ExportDefaultDeclaration", {
    visitor: ["declaration"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration", "ExportDeclaration"],
    fields: {
      declaration: (0, s.validateType)("TSDeclareFunction", "FunctionDeclaration", "ClassDeclaration", "Expression"),
      exportKind: (0, s.validateOptional)((0, s.assertOneOf)("value"))
    }
  }), a("ExportNamedDeclaration", {
    builder: ["declaration", "specifiers", "source"],
    visitor: process.env ? ["declaration", "specifiers", "source", "attributes"] : ["declaration", "specifiers", "source", "attributes", "assertions"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration", "ExportDeclaration"],
    fields: Object.assign({
      declaration: {
        optional: !0,
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.chain)((0, s.assertNodeType)("Declaration"), Object.assign(function(g, y, v) {
          if (v && g.specifiers.length)
            throw new TypeError("Only declaration or specifiers is allowed on ExportNamedDeclaration");
          if (v && g.source)
            throw new TypeError("Cannot export a declaration from a source");
        }, {
          oneOfNodeTypes: ["Declaration"]
        })) : (0, s.assertNodeType)("Declaration")
      }
    }, f, {
      specifiers: {
        default: [],
        validate: (0, s.arrayOf)(function() {
          const g = (0, s.assertNodeType)("ExportSpecifier", "ExportDefaultSpecifier", "ExportNamespaceSpecifier"), y = (0, s.assertNodeType)("ExportSpecifier");
          return process.env.BABEL_TYPES_8_BREAKING ? Object.assign(function(v, T, S) {
            (v.source ? g : y)(v, T, S);
          }, {
            oneOfNodeTypes: ["ExportSpecifier", "ExportDefaultSpecifier", "ExportNamespaceSpecifier"]
          }) : g;
        }())
      },
      source: {
        validate: (0, s.assertNodeType)("StringLiteral"),
        optional: !0
      },
      exportKind: (0, s.validateOptional)((0, s.assertOneOf)("type", "value"))
    })
  }), a("ExportSpecifier", {
    visitor: ["local", "exported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, s.assertNodeType)("Identifier")
      },
      exported: {
        validate: (0, s.assertNodeType)("Identifier", "StringLiteral")
      },
      exportKind: {
        validate: (0, s.assertOneOf)("type", "value"),
        optional: !0
      }
    }
  }), a("ForOfStatement", {
    visitor: ["left", "right", "body"],
    builder: ["left", "right", "body", "await"],
    aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"],
    fields: {
      left: {
        validate: function() {
          if (!process.env.BABEL_TYPES_8_BREAKING)
            return (0, s.assertNodeType)("VariableDeclaration", "LVal");
          const g = (0, s.assertNodeType)("VariableDeclaration"), y = (0, s.assertNodeType)("Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression");
          return Object.assign(function(v, T, S) {
            (0, e.default)("VariableDeclaration", S) ? g(v, T, S) : y(v, T, S);
          }, {
            oneOfNodeTypes: ["VariableDeclaration", "Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression"]
          });
        }()
      },
      right: {
        validate: (0, s.assertNodeType)("Expression")
      },
      body: {
        validate: (0, s.assertNodeType)("Statement")
      },
      await: {
        default: !1
      }
    }
  }), a("ImportDeclaration", {
    builder: ["specifiers", "source"],
    visitor: ["specifiers", "source", "attributes", "assertions"],
    aliases: ["Statement", "Declaration", "ImportOrExportDeclaration"],
    fields: Object.assign({}, f, {
      module: {
        optional: !0,
        validate: (0, s.assertValueType)("boolean")
      },
      phase: {
        default: null,
        validate: (0, s.assertOneOf)("source", "defer")
      },
      specifiers: (0, s.validateArrayOfType)("ImportSpecifier", "ImportDefaultSpecifier", "ImportNamespaceSpecifier"),
      source: {
        validate: (0, s.assertNodeType)("StringLiteral")
      },
      importKind: {
        validate: (0, s.assertOneOf)("type", "typeof", "value"),
        optional: !0
      }
    })
  }), a("ImportDefaultSpecifier", {
    visitor: ["local"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, s.assertNodeType)("Identifier")
      }
    }
  }), a("ImportNamespaceSpecifier", {
    visitor: ["local"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, s.assertNodeType)("Identifier")
      }
    }
  }), a("ImportSpecifier", {
    visitor: ["imported", "local"],
    builder: ["local", "imported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      local: {
        validate: (0, s.assertNodeType)("Identifier")
      },
      imported: {
        validate: (0, s.assertNodeType)("Identifier", "StringLiteral")
      },
      importKind: {
        validate: (0, s.assertOneOf)("type", "typeof", "value"),
        optional: !0
      }
    }
  }), a("ImportExpression", {
    visitor: ["source", "options"],
    aliases: ["Expression"],
    fields: {
      phase: {
        default: null,
        validate: (0, s.assertOneOf)("source", "defer")
      },
      source: {
        validate: (0, s.assertNodeType)("Expression")
      },
      options: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      }
    }
  }), a("MetaProperty", {
    visitor: ["meta", "property"],
    aliases: ["Expression"],
    fields: {
      meta: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.chain)((0, s.assertNodeType)("Identifier"), Object.assign(function(g, y, v) {
          let T;
          switch (v.name) {
            case "function":
              T = "sent";
              break;
            case "new":
              T = "target";
              break;
            case "import":
              T = "meta";
              break;
          }
          if (!(0, e.default)("Identifier", g.property, {
            name: T
          }))
            throw new TypeError("Unrecognised MetaProperty");
        }, {
          oneOfNodeTypes: ["Identifier"]
        })) : (0, s.assertNodeType)("Identifier")
      },
      property: {
        validate: (0, s.assertNodeType)("Identifier")
      }
    }
  });
  const h = () => ({
    abstract: {
      validate: (0, s.assertValueType)("boolean"),
      optional: !0
    },
    accessibility: {
      validate: (0, s.assertOneOf)("public", "private", "protected"),
      optional: !0
    },
    static: {
      default: !1
    },
    override: {
      default: !1
    },
    computed: {
      default: !1
    },
    optional: {
      validate: (0, s.assertValueType)("boolean"),
      optional: !0
    },
    key: {
      validate: (0, s.chain)(function() {
        const g = (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"), y = (0, s.assertNodeType)("Expression");
        return function(v, T, S) {
          (v.computed ? y : g)(v, T, S);
        };
      }(), (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "Expression"))
    }
  });
  ds.classMethodOrPropertyCommon = h;
  const m = () => Object.assign({}, o(), h(), {
    params: (0, s.validateArrayOfType)("Identifier", "Pattern", "RestElement", "TSParameterProperty"),
    kind: {
      validate: (0, s.assertOneOf)("get", "set", "method", "constructor"),
      default: "method"
    },
    access: {
      validate: (0, s.chain)((0, s.assertValueType)("string"), (0, s.assertOneOf)("public", "private", "protected")),
      optional: !0
    },
    decorators: {
      validate: (0, s.arrayOfType)("Decorator"),
      optional: !0
    }
  });
  return ds.classMethodOrDeclareMethodCommon = m, a("ClassMethod", {
    aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method"],
    builder: ["kind", "key", "params", "body", "computed", "static", "generator", "async"],
    visitor: ["decorators", "key", "typeParameters", "params", "returnType", "body"],
    fields: Object.assign({}, m(), l(), {
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      }
    })
  }), a("ObjectPattern", {
    visitor: ["properties", "typeAnnotation", "decorators"],
    builder: ["properties"],
    aliases: ["Pattern", "PatternLike", "LVal"],
    fields: Object.assign({}, c(), {
      properties: (0, s.validateArrayOfType)("RestElement", "ObjectProperty")
    })
  }), a("SpreadElement", {
    visitor: ["argument"],
    aliases: ["UnaryLike"],
    deprecatedAlias: "SpreadProperty",
    fields: {
      argument: {
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("Super", {
    aliases: ["Expression"]
  }), a("TaggedTemplateExpression", {
    visitor: ["tag", "typeParameters", "quasi"],
    builder: ["tag", "quasi"],
    aliases: ["Expression"],
    fields: {
      tag: {
        validate: (0, s.assertNodeType)("Expression")
      },
      quasi: {
        validate: (0, s.assertNodeType)("TemplateLiteral")
      },
      typeParameters: {
        validate: (0, s.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      }
    }
  }), a("TemplateElement", {
    builder: ["value", "tail"],
    fields: {
      value: {
        validate: (0, s.chain)((0, s.assertShape)({
          raw: {
            validate: (0, s.assertValueType)("string")
          },
          cooked: {
            validate: (0, s.assertValueType)("string"),
            optional: !0
          }
        }), function(y) {
          const v = y.value.raw;
          let T = !1;
          const S = () => {
            throw new Error("Internal @babel/types error.");
          }, {
            str: P,
            firstInvalidLoc: x
          } = (0, i.readStringContents)("template", v, 0, 0, 0, {
            unterminated() {
              T = !0;
            },
            strictNumericEscape: S,
            invalidEscapeSequence: S,
            numericSeparatorInEscapeSequence: S,
            unexpectedNumericSeparator: S,
            invalidDigit: S,
            invalidCodePoint: S
          });
          if (!T)
            throw new Error("Invalid raw");
          y.value.cooked = x ? null : P;
        })
      },
      tail: {
        default: !1
      }
    }
  }), a("TemplateLiteral", {
    visitor: ["quasis", "expressions"],
    aliases: ["Expression", "Literal"],
    fields: {
      quasis: (0, s.validateArrayOfType)("TemplateElement"),
      expressions: {
        validate: (0, s.chain)((0, s.assertValueType)("array"), (0, s.assertEach)((0, s.assertNodeType)("Expression", "TSType")), function(g, y, v) {
          if (g.quasis.length !== v.length + 1)
            throw new TypeError("Number of ".concat(g.type, " quasis should be exactly one more than the number of expressions.\nExpected ").concat(v.length + 1, " quasis but got ").concat(g.quasis.length));
        })
      }
    }
  }), a("YieldExpression", {
    builder: ["argument", "delegate"],
    visitor: ["argument"],
    aliases: ["Expression", "Terminatorless"],
    fields: {
      delegate: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.chain)((0, s.assertValueType)("boolean"), Object.assign(function(g, y, v) {
          if (v && !g.argument)
            throw new TypeError("Property delegate of YieldExpression cannot be true if there is no argument");
        }, {
          type: "boolean"
        })) : (0, s.assertValueType)("boolean"),
        default: !1
      },
      argument: {
        optional: !0,
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("AwaitExpression", {
    builder: ["argument"],
    visitor: ["argument"],
    aliases: ["Expression", "Terminatorless"],
    fields: {
      argument: {
        validate: (0, s.assertNodeType)("Expression")
      }
    }
  }), a("Import", {
    aliases: ["Expression"]
  }), a("BigIntLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, s.assertValueType)("string")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), a("ExportNamespaceSpecifier", {
    visitor: ["exported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      exported: {
        validate: (0, s.assertNodeType)("Identifier")
      }
    }
  }), a("OptionalMemberExpression", {
    builder: ["object", "property", "computed", "optional"],
    visitor: ["object", "property"],
    aliases: ["Expression"],
    fields: {
      object: {
        validate: (0, s.assertNodeType)("Expression")
      },
      property: {
        validate: function() {
          const g = (0, s.assertNodeType)("Identifier"), y = (0, s.assertNodeType)("Expression");
          return Object.assign(function(T, S, P) {
            (T.computed ? y : g)(T, S, P);
          }, {
            oneOfNodeTypes: ["Expression", "Identifier"]
          });
        }()
      },
      computed: {
        default: !1
      },
      optional: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.chain)((0, s.assertValueType)("boolean"), (0, s.assertOptionalChainStart)()) : (0, s.assertValueType)("boolean")
      }
    }
  }), a("OptionalCallExpression", {
    visitor: ["callee", "arguments", "typeParameters", "typeArguments"],
    builder: ["callee", "arguments", "optional"],
    aliases: ["Expression"],
    fields: {
      callee: {
        validate: (0, s.assertNodeType)("Expression")
      },
      arguments: (0, s.validateArrayOfType)("Expression", "SpreadElement", "ArgumentPlaceholder"),
      optional: {
        validate: process.env.BABEL_TYPES_8_BREAKING ? (0, s.chain)((0, s.assertValueType)("boolean"), (0, s.assertOptionalChainStart)()) : (0, s.assertValueType)("boolean")
      },
      typeArguments: {
        validate: (0, s.assertNodeType)("TypeParameterInstantiation"),
        optional: !0
      },
      typeParameters: {
        validate: (0, s.assertNodeType)("TSTypeParameterInstantiation"),
        optional: !0
      }
    }
  }), a("ClassProperty", {
    visitor: ["decorators", "key", "typeAnnotation", "value"],
    builder: ["key", "value", "typeAnnotation", "decorators", "computed", "static"],
    aliases: ["Property"],
    fields: Object.assign({}, h(), {
      value: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      definite: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      typeAnnotation: {
        validate: (0, s.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
        optional: !0
      },
      decorators: {
        validate: (0, s.arrayOfType)("Decorator"),
        optional: !0
      },
      readonly: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      declare: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      variance: {
        validate: (0, s.assertNodeType)("Variance"),
        optional: !0
      }
    })
  }), a("ClassAccessorProperty", {
    visitor: ["decorators", "key", "typeAnnotation", "value"],
    builder: ["key", "value", "typeAnnotation", "decorators", "computed", "static"],
    aliases: ["Property", "Accessor"],
    fields: Object.assign({}, h(), {
      key: {
        validate: (0, s.chain)(function() {
          const g = (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "PrivateName"), y = (0, s.assertNodeType)("Expression");
          return function(v, T, S) {
            (v.computed ? y : g)(v, T, S);
          };
        }(), (0, s.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "Expression", "PrivateName"))
      },
      value: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      definite: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      typeAnnotation: {
        validate: (0, s.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
        optional: !0
      },
      decorators: {
        validate: (0, s.arrayOfType)("Decorator"),
        optional: !0
      },
      readonly: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      declare: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      variance: {
        validate: (0, s.assertNodeType)("Variance"),
        optional: !0
      }
    })
  }), a("ClassPrivateProperty", {
    visitor: ["decorators", "key", "typeAnnotation", "value"],
    builder: ["key", "value", "decorators", "static"],
    aliases: ["Property", "Private"],
    fields: {
      key: {
        validate: (0, s.assertNodeType)("PrivateName")
      },
      value: {
        validate: (0, s.assertNodeType)("Expression"),
        optional: !0
      },
      typeAnnotation: {
        validate: (0, s.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"),
        optional: !0
      },
      decorators: {
        validate: (0, s.arrayOfType)("Decorator"),
        optional: !0
      },
      static: {
        validate: (0, s.assertValueType)("boolean"),
        default: !1
      },
      readonly: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      definite: {
        validate: (0, s.assertValueType)("boolean"),
        optional: !0
      },
      variance: {
        validate: (0, s.assertNodeType)("Variance"),
        optional: !0
      }
    }
  }), a("ClassPrivateMethod", {
    builder: ["kind", "key", "params", "body", "static"],
    visitor: ["decorators", "key", "typeParameters", "params", "returnType", "body"],
    aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method", "Private"],
    fields: Object.assign({}, m(), l(), {
      kind: {
        validate: (0, s.assertOneOf)("get", "set", "method"),
        default: "method"
      },
      key: {
        validate: (0, s.assertNodeType)("PrivateName")
      },
      body: {
        validate: (0, s.assertNodeType)("BlockStatement")
      }
    })
  }), a("PrivateName", {
    visitor: ["id"],
    aliases: ["Private"],
    fields: {
      id: {
        validate: (0, s.assertNodeType)("Identifier")
      }
    }
  }), a("StaticBlock", {
    visitor: ["body"],
    fields: {
      body: (0, s.validateArrayOfType)("Statement")
    },
    aliases: ["Scopable", "BlockParent", "FunctionParent"]
  }), ds;
}
var YY = {}, XY;
function kpt() {
  if (XY)
    return YY;
  XY = 1;
  var e = __(), t = Rf();
  const r = (0, t.defineAliasedType)("Flow"), i = (n) => {
    const s = n === "DeclareClass";
    r(n, {
      builder: ["id", "typeParameters", "extends", "body"],
      visitor: ["id", "typeParameters", "extends", ...s ? ["mixins", "implements"] : [], "body"],
      aliases: ["FlowDeclaration", "Statement", "Declaration"],
      fields: Object.assign({
        id: (0, t.validateType)("Identifier"),
        typeParameters: (0, t.validateOptionalType)("TypeParameterDeclaration"),
        extends: (0, t.validateOptional)((0, t.arrayOfType)("InterfaceExtends"))
      }, s ? {
        mixins: (0, t.validateOptional)((0, t.arrayOfType)("InterfaceExtends")),
        implements: (0, t.validateOptional)((0, t.arrayOfType)("ClassImplements"))
      } : {}, {
        body: (0, t.validateType)("ObjectTypeAnnotation")
      })
    });
  };
  return r("AnyTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), r("ArrayTypeAnnotation", {
    visitor: ["elementType"],
    aliases: ["FlowType"],
    fields: {
      elementType: (0, t.validateType)("FlowType")
    }
  }), r("BooleanTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), r("BooleanLiteralTypeAnnotation", {
    builder: ["value"],
    aliases: ["FlowType"],
    fields: {
      value: (0, t.validate)((0, t.assertValueType)("boolean"))
    }
  }), r("NullLiteralTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), r("ClassImplements", {
    visitor: ["id", "typeParameters"],
    fields: {
      id: (0, t.validateType)("Identifier"),
      typeParameters: (0, t.validateOptionalType)("TypeParameterInstantiation")
    }
  }), i("DeclareClass"), r("DeclareFunction", {
    visitor: ["id"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, t.validateType)("Identifier"),
      predicate: (0, t.validateOptionalType)("DeclaredPredicate")
    }
  }), i("DeclareInterface"), r("DeclareModule", {
    builder: ["id", "body", "kind"],
    visitor: ["id", "body"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, t.validateType)("Identifier", "StringLiteral"),
      body: (0, t.validateType)("BlockStatement"),
      kind: (0, t.validateOptional)((0, t.assertOneOf)("CommonJS", "ES"))
    }
  }), r("DeclareModuleExports", {
    visitor: ["typeAnnotation"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      typeAnnotation: (0, t.validateType)("TypeAnnotation")
    }
  }), r("DeclareTypeAlias", {
    visitor: ["id", "typeParameters", "right"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, t.validateType)("Identifier"),
      typeParameters: (0, t.validateOptionalType)("TypeParameterDeclaration"),
      right: (0, t.validateType)("FlowType")
    }
  }), r("DeclareOpaqueType", {
    visitor: ["id", "typeParameters", "supertype"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, t.validateType)("Identifier"),
      typeParameters: (0, t.validateOptionalType)("TypeParameterDeclaration"),
      supertype: (0, t.validateOptionalType)("FlowType"),
      impltype: (0, t.validateOptionalType)("FlowType")
    }
  }), r("DeclareVariable", {
    visitor: ["id"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, t.validateType)("Identifier")
    }
  }), r("DeclareExportDeclaration", {
    visitor: ["declaration", "specifiers", "source", "attributes"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: Object.assign({
      declaration: (0, t.validateOptionalType)("Flow"),
      specifiers: (0, t.validateOptional)((0, t.arrayOfType)("ExportSpecifier", "ExportNamespaceSpecifier")),
      source: (0, t.validateOptionalType)("StringLiteral"),
      default: (0, t.validateOptional)((0, t.assertValueType)("boolean"))
    }, e.importAttributes)
  }), r("DeclareExportAllDeclaration", {
    visitor: ["source", "attributes"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: Object.assign({
      source: (0, t.validateType)("StringLiteral"),
      exportKind: (0, t.validateOptional)((0, t.assertOneOf)("type", "value"))
    }, e.importAttributes)
  }), r("DeclaredPredicate", {
    visitor: ["value"],
    aliases: ["FlowPredicate"],
    fields: {
      value: (0, t.validateType)("Flow")
    }
  }), r("ExistsTypeAnnotation", {
    aliases: ["FlowType"]
  }), r("FunctionTypeAnnotation", {
    visitor: ["typeParameters", "params", "rest", "returnType"],
    aliases: ["FlowType"],
    fields: {
      typeParameters: (0, t.validateOptionalType)("TypeParameterDeclaration"),
      params: (0, t.validateArrayOfType)("FunctionTypeParam"),
      rest: (0, t.validateOptionalType)("FunctionTypeParam"),
      this: (0, t.validateOptionalType)("FunctionTypeParam"),
      returnType: (0, t.validateType)("FlowType")
    }
  }), r("FunctionTypeParam", {
    visitor: ["name", "typeAnnotation"],
    fields: {
      name: (0, t.validateOptionalType)("Identifier"),
      typeAnnotation: (0, t.validateType)("FlowType"),
      optional: (0, t.validateOptional)((0, t.assertValueType)("boolean"))
    }
  }), r("GenericTypeAnnotation", {
    visitor: ["id", "typeParameters"],
    aliases: ["FlowType"],
    fields: {
      id: (0, t.validateType)("Identifier", "QualifiedTypeIdentifier"),
      typeParameters: (0, t.validateOptionalType)("TypeParameterInstantiation")
    }
  }), r("InferredPredicate", {
    aliases: ["FlowPredicate"]
  }), r("InterfaceExtends", {
    visitor: ["id", "typeParameters"],
    fields: {
      id: (0, t.validateType)("Identifier", "QualifiedTypeIdentifier"),
      typeParameters: (0, t.validateOptionalType)("TypeParameterInstantiation")
    }
  }), i("InterfaceDeclaration"), r("InterfaceTypeAnnotation", {
    visitor: ["extends", "body"],
    aliases: ["FlowType"],
    fields: {
      extends: (0, t.validateOptional)((0, t.arrayOfType)("InterfaceExtends")),
      body: (0, t.validateType)("ObjectTypeAnnotation")
    }
  }), r("IntersectionTypeAnnotation", {
    visitor: ["types"],
    aliases: ["FlowType"],
    fields: {
      types: (0, t.validate)((0, t.arrayOfType)("FlowType"))
    }
  }), r("MixedTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), r("EmptyTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), r("NullableTypeAnnotation", {
    visitor: ["typeAnnotation"],
    aliases: ["FlowType"],
    fields: {
      typeAnnotation: (0, t.validateType)("FlowType")
    }
  }), r("NumberLiteralTypeAnnotation", {
    builder: ["value"],
    aliases: ["FlowType"],
    fields: {
      value: (0, t.validate)((0, t.assertValueType)("number"))
    }
  }), r("NumberTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), r("ObjectTypeAnnotation", {
    visitor: ["properties", "indexers", "callProperties", "internalSlots"],
    aliases: ["FlowType"],
    builder: ["properties", "indexers", "callProperties", "internalSlots", "exact"],
    fields: {
      properties: (0, t.validate)((0, t.arrayOfType)("ObjectTypeProperty", "ObjectTypeSpreadProperty")),
      indexers: {
        validate: (0, t.arrayOfType)("ObjectTypeIndexer"),
        optional: !0,
        default: []
      },
      callProperties: {
        validate: (0, t.arrayOfType)("ObjectTypeCallProperty"),
        optional: !0,
        default: []
      },
      internalSlots: {
        validate: (0, t.arrayOfType)("ObjectTypeInternalSlot"),
        optional: !0,
        default: []
      },
      exact: {
        validate: (0, t.assertValueType)("boolean"),
        default: !1
      },
      inexact: (0, t.validateOptional)((0, t.assertValueType)("boolean"))
    }
  }), r("ObjectTypeInternalSlot", {
    visitor: ["id", "value"],
    builder: ["id", "value", "optional", "static", "method"],
    aliases: ["UserWhitespacable"],
    fields: {
      id: (0, t.validateType)("Identifier"),
      value: (0, t.validateType)("FlowType"),
      optional: (0, t.validate)((0, t.assertValueType)("boolean")),
      static: (0, t.validate)((0, t.assertValueType)("boolean")),
      method: (0, t.validate)((0, t.assertValueType)("boolean"))
    }
  }), r("ObjectTypeCallProperty", {
    visitor: ["value"],
    aliases: ["UserWhitespacable"],
    fields: {
      value: (0, t.validateType)("FlowType"),
      static: (0, t.validate)((0, t.assertValueType)("boolean"))
    }
  }), r("ObjectTypeIndexer", {
    visitor: ["variance", "id", "key", "value"],
    builder: ["id", "key", "value", "variance"],
    aliases: ["UserWhitespacable"],
    fields: {
      id: (0, t.validateOptionalType)("Identifier"),
      key: (0, t.validateType)("FlowType"),
      value: (0, t.validateType)("FlowType"),
      static: (0, t.validate)((0, t.assertValueType)("boolean")),
      variance: (0, t.validateOptionalType)("Variance")
    }
  }), r("ObjectTypeProperty", {
    visitor: ["key", "value", "variance"],
    aliases: ["UserWhitespacable"],
    fields: {
      key: (0, t.validateType)("Identifier", "StringLiteral"),
      value: (0, t.validateType)("FlowType"),
      kind: (0, t.validate)((0, t.assertOneOf)("init", "get", "set")),
      static: (0, t.validate)((0, t.assertValueType)("boolean")),
      proto: (0, t.validate)((0, t.assertValueType)("boolean")),
      optional: (0, t.validate)((0, t.assertValueType)("boolean")),
      variance: (0, t.validateOptionalType)("Variance"),
      method: (0, t.validate)((0, t.assertValueType)("boolean"))
    }
  }), r("ObjectTypeSpreadProperty", {
    visitor: ["argument"],
    aliases: ["UserWhitespacable"],
    fields: {
      argument: (0, t.validateType)("FlowType")
    }
  }), r("OpaqueType", {
    visitor: ["id", "typeParameters", "supertype", "impltype"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, t.validateType)("Identifier"),
      typeParameters: (0, t.validateOptionalType)("TypeParameterDeclaration"),
      supertype: (0, t.validateOptionalType)("FlowType"),
      impltype: (0, t.validateType)("FlowType")
    }
  }), r("QualifiedTypeIdentifier", {
    visitor: ["qualification", "id"],
    builder: ["id", "qualification"],
    fields: {
      id: (0, t.validateType)("Identifier"),
      qualification: (0, t.validateType)("Identifier", "QualifiedTypeIdentifier")
    }
  }), r("StringLiteralTypeAnnotation", {
    builder: ["value"],
    aliases: ["FlowType"],
    fields: {
      value: (0, t.validate)((0, t.assertValueType)("string"))
    }
  }), r("StringTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), r("SymbolTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), r("ThisTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), r("TupleTypeAnnotation", {
    visitor: ["types"],
    aliases: ["FlowType"],
    fields: {
      types: (0, t.validate)((0, t.arrayOfType)("FlowType"))
    }
  }), r("TypeofTypeAnnotation", {
    visitor: ["argument"],
    aliases: ["FlowType"],
    fields: {
      argument: (0, t.validateType)("FlowType")
    }
  }), r("TypeAlias", {
    visitor: ["id", "typeParameters", "right"],
    aliases: ["FlowDeclaration", "Statement", "Declaration"],
    fields: {
      id: (0, t.validateType)("Identifier"),
      typeParameters: (0, t.validateOptionalType)("TypeParameterDeclaration"),
      right: (0, t.validateType)("FlowType")
    }
  }), r("TypeAnnotation", {
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, t.validateType)("FlowType")
    }
  }), r("TypeCastExpression", {
    visitor: ["expression", "typeAnnotation"],
    aliases: ["ExpressionWrapper", "Expression"],
    fields: {
      expression: (0, t.validateType)("Expression"),
      typeAnnotation: (0, t.validateType)("TypeAnnotation")
    }
  }), r("TypeParameter", {
    visitor: ["bound", "default", "variance"],
    fields: {
      name: (0, t.validate)((0, t.assertValueType)("string")),
      bound: (0, t.validateOptionalType)("TypeAnnotation"),
      default: (0, t.validateOptionalType)("FlowType"),
      variance: (0, t.validateOptionalType)("Variance")
    }
  }), r("TypeParameterDeclaration", {
    visitor: ["params"],
    fields: {
      params: (0, t.validate)((0, t.arrayOfType)("TypeParameter"))
    }
  }), r("TypeParameterInstantiation", {
    visitor: ["params"],
    fields: {
      params: (0, t.validate)((0, t.arrayOfType)("FlowType"))
    }
  }), r("UnionTypeAnnotation", {
    visitor: ["types"],
    aliases: ["FlowType"],
    fields: {
      types: (0, t.validate)((0, t.arrayOfType)("FlowType"))
    }
  }), r("Variance", {
    builder: ["kind"],
    fields: {
      kind: (0, t.validate)((0, t.assertOneOf)("minus", "plus"))
    }
  }), r("VoidTypeAnnotation", {
    aliases: ["FlowType", "FlowBaseAnnotation"]
  }), r("EnumDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "body"],
    fields: {
      id: (0, t.validateType)("Identifier"),
      body: (0, t.validateType)("EnumBooleanBody", "EnumNumberBody", "EnumStringBody", "EnumSymbolBody")
    }
  }), r("EnumBooleanBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      explicitType: (0, t.validate)((0, t.assertValueType)("boolean")),
      members: (0, t.validateArrayOfType)("EnumBooleanMember"),
      hasUnknownMembers: (0, t.validate)((0, t.assertValueType)("boolean"))
    }
  }), r("EnumNumberBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      explicitType: (0, t.validate)((0, t.assertValueType)("boolean")),
      members: (0, t.validateArrayOfType)("EnumNumberMember"),
      hasUnknownMembers: (0, t.validate)((0, t.assertValueType)("boolean"))
    }
  }), r("EnumStringBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      explicitType: (0, t.validate)((0, t.assertValueType)("boolean")),
      members: (0, t.validateArrayOfType)("EnumStringMember", "EnumDefaultedMember"),
      hasUnknownMembers: (0, t.validate)((0, t.assertValueType)("boolean"))
    }
  }), r("EnumSymbolBody", {
    aliases: ["EnumBody"],
    visitor: ["members"],
    fields: {
      members: (0, t.validateArrayOfType)("EnumDefaultedMember"),
      hasUnknownMembers: (0, t.validate)((0, t.assertValueType)("boolean"))
    }
  }), r("EnumBooleanMember", {
    aliases: ["EnumMember"],
    visitor: ["id"],
    fields: {
      id: (0, t.validateType)("Identifier"),
      init: (0, t.validateType)("BooleanLiteral")
    }
  }), r("EnumNumberMember", {
    aliases: ["EnumMember"],
    visitor: ["id", "init"],
    fields: {
      id: (0, t.validateType)("Identifier"),
      init: (0, t.validateType)("NumericLiteral")
    }
  }), r("EnumStringMember", {
    aliases: ["EnumMember"],
    visitor: ["id", "init"],
    fields: {
      id: (0, t.validateType)("Identifier"),
      init: (0, t.validateType)("StringLiteral")
    }
  }), r("EnumDefaultedMember", {
    aliases: ["EnumMember"],
    visitor: ["id"],
    fields: {
      id: (0, t.validateType)("Identifier")
    }
  }), r("IndexedAccessType", {
    visitor: ["objectType", "indexType"],
    aliases: ["FlowType"],
    fields: {
      objectType: (0, t.validateType)("FlowType"),
      indexType: (0, t.validateType)("FlowType")
    }
  }), r("OptionalIndexedAccessType", {
    visitor: ["objectType", "indexType"],
    aliases: ["FlowType"],
    fields: {
      objectType: (0, t.validateType)("FlowType"),
      indexType: (0, t.validateType)("FlowType"),
      optional: (0, t.validate)((0, t.assertValueType)("boolean"))
    }
  }), YY;
}
var JY = {}, QY;
function Opt() {
  if (QY)
    return JY;
  QY = 1;
  var e = Rf();
  const t = (0, e.defineAliasedType)("JSX");
  return t("JSXAttribute", {
    visitor: ["name", "value"],
    aliases: ["Immutable"],
    fields: {
      name: {
        validate: (0, e.assertNodeType)("JSXIdentifier", "JSXNamespacedName")
      },
      value: {
        optional: !0,
        validate: (0, e.assertNodeType)("JSXElement", "JSXFragment", "StringLiteral", "JSXExpressionContainer")
      }
    }
  }), t("JSXClosingElement", {
    visitor: ["name"],
    aliases: ["Immutable"],
    fields: {
      name: {
        validate: (0, e.assertNodeType)("JSXIdentifier", "JSXMemberExpression", "JSXNamespacedName")
      }
    }
  }), t("JSXElement", {
    builder: ["openingElement", "closingElement", "children", "selfClosing"],
    visitor: ["openingElement", "children", "closingElement"],
    aliases: ["Immutable", "Expression"],
    fields: Object.assign({
      openingElement: {
        validate: (0, e.assertNodeType)("JSXOpeningElement")
      },
      closingElement: {
        optional: !0,
        validate: (0, e.assertNodeType)("JSXClosingElement")
      },
      children: (0, e.validateArrayOfType)("JSXText", "JSXExpressionContainer", "JSXSpreadChild", "JSXElement", "JSXFragment")
    }, {
      selfClosing: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      }
    })
  }), t("JSXEmptyExpression", {}), t("JSXExpressionContainer", {
    visitor: ["expression"],
    aliases: ["Immutable"],
    fields: {
      expression: {
        validate: (0, e.assertNodeType)("Expression", "JSXEmptyExpression")
      }
    }
  }), t("JSXSpreadChild", {
    visitor: ["expression"],
    aliases: ["Immutable"],
    fields: {
      expression: {
        validate: (0, e.assertNodeType)("Expression")
      }
    }
  }), t("JSXIdentifier", {
    builder: ["name"],
    fields: {
      name: {
        validate: (0, e.assertValueType)("string")
      }
    }
  }), t("JSXMemberExpression", {
    visitor: ["object", "property"],
    fields: {
      object: {
        validate: (0, e.assertNodeType)("JSXMemberExpression", "JSXIdentifier")
      },
      property: {
        validate: (0, e.assertNodeType)("JSXIdentifier")
      }
    }
  }), t("JSXNamespacedName", {
    visitor: ["namespace", "name"],
    fields: {
      namespace: {
        validate: (0, e.assertNodeType)("JSXIdentifier")
      },
      name: {
        validate: (0, e.assertNodeType)("JSXIdentifier")
      }
    }
  }), t("JSXOpeningElement", {
    builder: ["name", "attributes", "selfClosing"],
    visitor: ["name", "attributes"],
    aliases: ["Immutable"],
    fields: {
      name: {
        validate: (0, e.assertNodeType)("JSXIdentifier", "JSXMemberExpression", "JSXNamespacedName")
      },
      selfClosing: {
        default: !1
      },
      attributes: (0, e.validateArrayOfType)("JSXAttribute", "JSXSpreadAttribute"),
      typeParameters: {
        validate: (0, e.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"),
        optional: !0
      }
    }
  }), t("JSXSpreadAttribute", {
    visitor: ["argument"],
    fields: {
      argument: {
        validate: (0, e.assertNodeType)("Expression")
      }
    }
  }), t("JSXText", {
    aliases: ["Immutable"],
    builder: ["value"],
    fields: {
      value: {
        validate: (0, e.assertValueType)("string")
      }
    }
  }), t("JSXFragment", {
    builder: ["openingFragment", "closingFragment", "children"],
    visitor: ["openingFragment", "children", "closingFragment"],
    aliases: ["Immutable", "Expression"],
    fields: {
      openingFragment: {
        validate: (0, e.assertNodeType)("JSXOpeningFragment")
      },
      closingFragment: {
        validate: (0, e.assertNodeType)("JSXClosingFragment")
      },
      children: (0, e.validateArrayOfType)("JSXText", "JSXExpressionContainer", "JSXSpreadChild", "JSXElement", "JSXFragment")
    }
  }), t("JSXOpeningFragment", {
    aliases: ["Immutable"]
  }), t("JSXClosingFragment", {
    aliases: ["Immutable"]
  }), JY;
}
var ZY = {}, Rp = {}, eX;
function fde() {
  if (eX)
    return Rp;
  eX = 1, Object.defineProperty(Rp, "__esModule", {
    value: !0
  }), Rp.PLACEHOLDERS_FLIPPED_ALIAS = Rp.PLACEHOLDERS_ALIAS = Rp.PLACEHOLDERS = void 0;
  var e = Rf();
  const t = Rp.PLACEHOLDERS = ["Identifier", "StringLiteral", "Expression", "Statement", "Declaration", "BlockStatement", "ClassBody", "Pattern"], r = Rp.PLACEHOLDERS_ALIAS = {
    Declaration: ["Statement"],
    Pattern: ["PatternLike", "LVal"]
  };
  for (const n of t) {
    const s = e.ALIAS_KEYS[n];
    s != null && s.length && (r[n] = s);
  }
  const i = Rp.PLACEHOLDERS_FLIPPED_ALIAS = {};
  return Object.keys(r).forEach((n) => {
    r[n].forEach((s) => {
      hasOwnProperty.call(i, s) || (i[s] = []), i[s].push(n);
    });
  }), Rp;
}
var tX;
function Npt() {
  if (tX)
    return ZY;
  tX = 1;
  var e = Rf(), t = fde(), r = __();
  const i = (0, e.defineAliasedType)("Miscellaneous");
  return i("Noop", {
    visitor: []
  }), i("Placeholder", {
    visitor: [],
    builder: ["expectedNode", "name"],
    fields: Object.assign({
      name: {
        validate: (0, e.assertNodeType)("Identifier")
      },
      expectedNode: {
        validate: (0, e.assertOneOf)(...t.PLACEHOLDERS)
      }
    }, (0, r.patternLikeCommon)())
  }), i("V8IntrinsicIdentifier", {
    builder: ["name"],
    fields: {
      name: {
        validate: (0, e.assertValueType)("string")
      }
    }
  }), ZY;
}
var rX = {}, iX;
function Dpt() {
  if (iX)
    return rX;
  iX = 1;
  var e = Rf();
  return (0, e.default)("ArgumentPlaceholder", {}), (0, e.default)("BindExpression", {
    visitor: ["object", "callee"],
    aliases: ["Expression"],
    fields: process.env.BABEL_TYPES_8_BREAKING ? {
      object: {
        validate: (0, e.assertNodeType)("Expression")
      },
      callee: {
        validate: (0, e.assertNodeType)("Expression")
      }
    } : {
      object: {
        validate: Object.assign(() => {
        }, {
          oneOfNodeTypes: ["Expression"]
        })
      },
      callee: {
        validate: Object.assign(() => {
        }, {
          oneOfNodeTypes: ["Expression"]
        })
      }
    }
  }), (0, e.default)("ImportAttribute", {
    visitor: ["key", "value"],
    fields: {
      key: {
        validate: (0, e.assertNodeType)("Identifier", "StringLiteral")
      },
      value: {
        validate: (0, e.assertNodeType)("StringLiteral")
      }
    }
  }), (0, e.default)("Decorator", {
    visitor: ["expression"],
    fields: {
      expression: {
        validate: (0, e.assertNodeType)("Expression")
      }
    }
  }), (0, e.default)("DoExpression", {
    visitor: ["body"],
    builder: ["body", "async"],
    aliases: ["Expression"],
    fields: {
      body: {
        validate: (0, e.assertNodeType)("BlockStatement")
      },
      async: {
        validate: (0, e.assertValueType)("boolean"),
        default: !1
      }
    }
  }), (0, e.default)("ExportDefaultSpecifier", {
    visitor: ["exported"],
    aliases: ["ModuleSpecifier"],
    fields: {
      exported: {
        validate: (0, e.assertNodeType)("Identifier")
      }
    }
  }), (0, e.default)("RecordExpression", {
    visitor: ["properties"],
    aliases: ["Expression"],
    fields: {
      properties: (0, e.validateArrayOfType)("ObjectProperty", "SpreadElement")
    }
  }), (0, e.default)("TupleExpression", {
    fields: {
      elements: {
        validate: (0, e.arrayOfType)("Expression", "SpreadElement"),
        default: []
      }
    },
    visitor: ["elements"],
    aliases: ["Expression"]
  }), (0, e.default)("DecimalLiteral", {
    builder: ["value"],
    fields: {
      value: {
        validate: (0, e.assertValueType)("string")
      }
    },
    aliases: ["Expression", "Pureish", "Literal", "Immutable"]
  }), (0, e.default)("ModuleExpression", {
    visitor: ["body"],
    fields: {
      body: {
        validate: (0, e.assertNodeType)("Program")
      }
    },
    aliases: ["Expression"]
  }), (0, e.default)("TopicReference", {
    aliases: ["Expression"]
  }), (0, e.default)("PipelineTopicExpression", {
    builder: ["expression"],
    visitor: ["expression"],
    fields: {
      expression: {
        validate: (0, e.assertNodeType)("Expression")
      }
    },
    aliases: ["Expression"]
  }), (0, e.default)("PipelineBareFunction", {
    builder: ["callee"],
    visitor: ["callee"],
    fields: {
      callee: {
        validate: (0, e.assertNodeType)("Expression")
      }
    },
    aliases: ["Expression"]
  }), (0, e.default)("PipelinePrimaryTopicReference", {
    aliases: ["Expression"]
  }), rX;
}
var nX = {}, sX;
function Lpt() {
  if (sX)
    return nX;
  sX = 1;
  var e = Rf(), t = __(), r = ZT();
  const i = (0, e.defineAliasedType)("TypeScript"), n = (0, e.assertValueType)("boolean"), s = () => ({
    returnType: {
      validate: (0, e.assertNodeType)("TSTypeAnnotation", "Noop"),
      optional: !0
    },
    typeParameters: {
      validate: (0, e.assertNodeType)("TSTypeParameterDeclaration", "Noop"),
      optional: !0
    }
  });
  i("TSParameterProperty", {
    aliases: ["LVal"],
    visitor: ["parameter"],
    fields: {
      accessibility: {
        validate: (0, e.assertOneOf)("public", "private", "protected"),
        optional: !0
      },
      readonly: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      },
      parameter: {
        validate: (0, e.assertNodeType)("Identifier", "AssignmentPattern")
      },
      override: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      },
      decorators: {
        validate: (0, e.arrayOfType)("Decorator"),
        optional: !0
      }
    }
  }), i("TSDeclareFunction", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "typeParameters", "params", "returnType"],
    fields: Object.assign({}, (0, t.functionDeclarationCommon)(), s())
  }), i("TSDeclareMethod", {
    visitor: ["decorators", "key", "typeParameters", "params", "returnType"],
    fields: Object.assign({}, (0, t.classMethodOrDeclareMethodCommon)(), s())
  }), i("TSQualifiedName", {
    aliases: ["TSEntityName"],
    visitor: ["left", "right"],
    fields: {
      left: (0, e.validateType)("TSEntityName"),
      right: (0, e.validateType)("Identifier")
    }
  });
  const a = () => ({
    typeParameters: (0, e.validateOptionalType)("TSTypeParameterDeclaration"),
    parameters: (0, e.validateArrayOfType)("ArrayPattern", "Identifier", "ObjectPattern", "RestElement"),
    typeAnnotation: (0, e.validateOptionalType)("TSTypeAnnotation")
  }), o = {
    aliases: ["TSTypeElement"],
    visitor: ["typeParameters", "parameters", "typeAnnotation"],
    fields: a()
  };
  i("TSCallSignatureDeclaration", o), i("TSConstructSignatureDeclaration", o);
  const l = () => ({
    key: (0, e.validateType)("Expression"),
    computed: {
      default: !1
    },
    optional: (0, e.validateOptional)(n)
  });
  i("TSPropertySignature", {
    aliases: ["TSTypeElement"],
    visitor: ["key", "typeAnnotation"],
    fields: Object.assign({}, l(), {
      readonly: (0, e.validateOptional)(n),
      typeAnnotation: (0, e.validateOptionalType)("TSTypeAnnotation"),
      kind: {
        validate: (0, e.assertOneOf)("get", "set")
      }
    })
  }), i("TSMethodSignature", {
    aliases: ["TSTypeElement"],
    visitor: ["key", "typeParameters", "parameters", "typeAnnotation"],
    fields: Object.assign({}, a(), l(), {
      kind: {
        validate: (0, e.assertOneOf)("method", "get", "set")
      }
    })
  }), i("TSIndexSignature", {
    aliases: ["TSTypeElement"],
    visitor: ["parameters", "typeAnnotation"],
    fields: {
      readonly: (0, e.validateOptional)(n),
      static: (0, e.validateOptional)(n),
      parameters: (0, e.validateArrayOfType)("Identifier"),
      typeAnnotation: (0, e.validateOptionalType)("TSTypeAnnotation")
    }
  });
  const u = ["TSAnyKeyword", "TSBooleanKeyword", "TSBigIntKeyword", "TSIntrinsicKeyword", "TSNeverKeyword", "TSNullKeyword", "TSNumberKeyword", "TSObjectKeyword", "TSStringKeyword", "TSSymbolKeyword", "TSUndefinedKeyword", "TSUnknownKeyword", "TSVoidKeyword"];
  for (const g of u)
    i(g, {
      aliases: ["TSType", "TSBaseType"],
      visitor: [],
      fields: {}
    });
  i("TSThisType", {
    aliases: ["TSType", "TSBaseType"],
    visitor: [],
    fields: {}
  });
  const c = {
    aliases: ["TSType"],
    visitor: ["typeParameters", "parameters", "typeAnnotation"]
  };
  i("TSFunctionType", Object.assign({}, c, {
    fields: a()
  })), i("TSConstructorType", Object.assign({}, c, {
    fields: Object.assign({}, a(), {
      abstract: (0, e.validateOptional)(n)
    })
  })), i("TSTypeReference", {
    aliases: ["TSType"],
    visitor: ["typeName", "typeParameters"],
    fields: {
      typeName: (0, e.validateType)("TSEntityName"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterInstantiation")
    }
  }), i("TSTypePredicate", {
    aliases: ["TSType"],
    visitor: ["parameterName", "typeAnnotation"],
    builder: ["parameterName", "typeAnnotation", "asserts"],
    fields: {
      parameterName: (0, e.validateType)("Identifier", "TSThisType"),
      typeAnnotation: (0, e.validateOptionalType)("TSTypeAnnotation"),
      asserts: (0, e.validateOptional)(n)
    }
  }), i("TSTypeQuery", {
    aliases: ["TSType"],
    visitor: ["exprName", "typeParameters"],
    fields: {
      exprName: (0, e.validateType)("TSEntityName", "TSImportType"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterInstantiation")
    }
  }), i("TSTypeLiteral", {
    aliases: ["TSType"],
    visitor: ["members"],
    fields: {
      members: (0, e.validateArrayOfType)("TSTypeElement")
    }
  }), i("TSArrayType", {
    aliases: ["TSType"],
    visitor: ["elementType"],
    fields: {
      elementType: (0, e.validateType)("TSType")
    }
  }), i("TSTupleType", {
    aliases: ["TSType"],
    visitor: ["elementTypes"],
    fields: {
      elementTypes: (0, e.validateArrayOfType)("TSType", "TSNamedTupleMember")
    }
  }), i("TSOptionalType", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, e.validateType)("TSType")
    }
  }), i("TSRestType", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, e.validateType)("TSType")
    }
  }), i("TSNamedTupleMember", {
    visitor: ["label", "elementType"],
    builder: ["label", "elementType", "optional"],
    fields: {
      label: (0, e.validateType)("Identifier"),
      optional: {
        validate: n,
        default: !1
      },
      elementType: (0, e.validateType)("TSType")
    }
  });
  const f = {
    aliases: ["TSType"],
    visitor: ["types"],
    fields: {
      types: (0, e.validateArrayOfType)("TSType")
    }
  };
  i("TSUnionType", f), i("TSIntersectionType", f), i("TSConditionalType", {
    aliases: ["TSType"],
    visitor: ["checkType", "extendsType", "trueType", "falseType"],
    fields: {
      checkType: (0, e.validateType)("TSType"),
      extendsType: (0, e.validateType)("TSType"),
      trueType: (0, e.validateType)("TSType"),
      falseType: (0, e.validateType)("TSType")
    }
  }), i("TSInferType", {
    aliases: ["TSType"],
    visitor: ["typeParameter"],
    fields: {
      typeParameter: (0, e.validateType)("TSTypeParameter")
    }
  }), i("TSParenthesizedType", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: (0, e.validateType)("TSType")
    }
  }), i("TSTypeOperator", {
    aliases: ["TSType"],
    visitor: ["typeAnnotation"],
    fields: {
      operator: (0, e.validate)((0, e.assertValueType)("string")),
      typeAnnotation: (0, e.validateType)("TSType")
    }
  }), i("TSIndexedAccessType", {
    aliases: ["TSType"],
    visitor: ["objectType", "indexType"],
    fields: {
      objectType: (0, e.validateType)("TSType"),
      indexType: (0, e.validateType)("TSType")
    }
  }), i("TSMappedType", {
    aliases: ["TSType"],
    visitor: ["typeParameter", "nameType", "typeAnnotation"],
    builder: ["typeParameter", "typeAnnotation", "nameType"],
    fields: Object.assign({}, {
      typeParameter: (0, e.validateType)("TSTypeParameter")
    }, {
      readonly: (0, e.validateOptional)((0, e.assertOneOf)(!0, !1, "+", "-")),
      optional: (0, e.validateOptional)((0, e.assertOneOf)(!0, !1, "+", "-")),
      typeAnnotation: (0, e.validateOptionalType)("TSType"),
      nameType: (0, e.validateOptionalType)("TSType")
    })
  }), i("TSLiteralType", {
    aliases: ["TSType", "TSBaseType"],
    visitor: ["literal"],
    fields: {
      literal: {
        validate: function() {
          const g = (0, e.assertNodeType)("NumericLiteral", "BigIntLiteral"), y = (0, e.assertOneOf)("-"), v = (0, e.assertNodeType)("NumericLiteral", "StringLiteral", "BooleanLiteral", "BigIntLiteral", "TemplateLiteral");
          function T(S, P, x) {
            (0, r.default)("UnaryExpression", x) ? (y(x, "operator", x.operator), g(x, "argument", x.argument)) : v(S, P, x);
          }
          return T.oneOfNodeTypes = ["NumericLiteral", "StringLiteral", "BooleanLiteral", "BigIntLiteral", "TemplateLiteral", "UnaryExpression"], T;
        }()
      }
    }
  });
  const h = {
    aliases: ["TSType"],
    visitor: ["expression", "typeParameters"],
    fields: {
      expression: (0, e.validateType)("TSEntityName"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterInstantiation")
    }
  };
  i("TSExpressionWithTypeArguments", h), i("TSInterfaceDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "typeParameters", "extends", "body"],
    fields: {
      declare: (0, e.validateOptional)(n),
      id: (0, e.validateType)("Identifier"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterDeclaration"),
      extends: (0, e.validateOptional)((0, e.arrayOfType)("TSExpressionWithTypeArguments")),
      body: (0, e.validateType)("TSInterfaceBody")
    }
  }), i("TSInterfaceBody", {
    visitor: ["body"],
    fields: {
      body: (0, e.validateArrayOfType)("TSTypeElement")
    }
  }), i("TSTypeAliasDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "typeParameters", "typeAnnotation"],
    fields: {
      declare: (0, e.validateOptional)(n),
      id: (0, e.validateType)("Identifier"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterDeclaration"),
      typeAnnotation: (0, e.validateType)("TSType")
    }
  }), i("TSInstantiationExpression", {
    aliases: ["Expression"],
    visitor: ["expression", "typeParameters"],
    fields: {
      expression: (0, e.validateType)("Expression"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterInstantiation")
    }
  });
  const m = {
    aliases: ["Expression", "LVal", "PatternLike"],
    visitor: ["expression", "typeAnnotation"],
    fields: {
      expression: (0, e.validateType)("Expression"),
      typeAnnotation: (0, e.validateType)("TSType")
    }
  };
  return i("TSAsExpression", m), i("TSSatisfiesExpression", m), i("TSTypeAssertion", {
    aliases: ["Expression", "LVal", "PatternLike"],
    visitor: ["typeAnnotation", "expression"],
    fields: {
      typeAnnotation: (0, e.validateType)("TSType"),
      expression: (0, e.validateType)("Expression")
    }
  }), i("TSEnumDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "members"],
    fields: {
      declare: (0, e.validateOptional)(n),
      const: (0, e.validateOptional)(n),
      id: (0, e.validateType)("Identifier"),
      members: (0, e.validateArrayOfType)("TSEnumMember"),
      initializer: (0, e.validateOptionalType)("Expression")
    }
  }), i("TSEnumMember", {
    visitor: ["id", "initializer"],
    fields: {
      id: (0, e.validateType)("Identifier", "StringLiteral"),
      initializer: (0, e.validateOptionalType)("Expression")
    }
  }), i("TSModuleDeclaration", {
    aliases: ["Statement", "Declaration"],
    visitor: ["id", "body"],
    fields: {
      kind: {
        validate: (0, e.assertOneOf)("global", "module", "namespace")
      },
      declare: (0, e.validateOptional)(n),
      global: (0, e.validateOptional)(n),
      id: (0, e.validateType)("Identifier", "StringLiteral"),
      body: (0, e.validateType)("TSModuleBlock", "TSModuleDeclaration")
    }
  }), i("TSModuleBlock", {
    aliases: ["Scopable", "Block", "BlockParent", "FunctionParent"],
    visitor: ["body"],
    fields: {
      body: (0, e.validateArrayOfType)("Statement")
    }
  }), i("TSImportType", {
    aliases: ["TSType"],
    visitor: ["argument", "qualifier", "typeParameters"],
    fields: {
      argument: (0, e.validateType)("StringLiteral"),
      qualifier: (0, e.validateOptionalType)("TSEntityName"),
      typeParameters: (0, e.validateOptionalType)("TSTypeParameterInstantiation"),
      options: {
        validate: (0, e.assertNodeType)("Expression"),
        optional: !0
      }
    }
  }), i("TSImportEqualsDeclaration", {
    aliases: ["Statement"],
    visitor: ["id", "moduleReference"],
    fields: {
      isExport: (0, e.validate)(n),
      id: (0, e.validateType)("Identifier"),
      moduleReference: (0, e.validateType)("TSEntityName", "TSExternalModuleReference"),
      importKind: {
        validate: (0, e.assertOneOf)("type", "value"),
        optional: !0
      }
    }
  }), i("TSExternalModuleReference", {
    visitor: ["expression"],
    fields: {
      expression: (0, e.validateType)("StringLiteral")
    }
  }), i("TSNonNullExpression", {
    aliases: ["Expression", "LVal", "PatternLike"],
    visitor: ["expression"],
    fields: {
      expression: (0, e.validateType)("Expression")
    }
  }), i("TSExportAssignment", {
    aliases: ["Statement"],
    visitor: ["expression"],
    fields: {
      expression: (0, e.validateType)("Expression")
    }
  }), i("TSNamespaceExportDeclaration", {
    aliases: ["Statement"],
    visitor: ["id"],
    fields: {
      id: (0, e.validateType)("Identifier")
    }
  }), i("TSTypeAnnotation", {
    visitor: ["typeAnnotation"],
    fields: {
      typeAnnotation: {
        validate: (0, e.assertNodeType)("TSType")
      }
    }
  }), i("TSTypeParameterInstantiation", {
    visitor: ["params"],
    fields: {
      params: (0, e.validateArrayOfType)("TSType")
    }
  }), i("TSTypeParameterDeclaration", {
    visitor: ["params"],
    fields: {
      params: (0, e.validateArrayOfType)("TSTypeParameter")
    }
  }), i("TSTypeParameter", {
    builder: ["constraint", "default", "name"],
    visitor: ["constraint", "default"],
    fields: {
      name: {
        validate: (0, e.assertValueType)("string")
      },
      in: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      },
      out: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      },
      const: {
        validate: (0, e.assertValueType)("boolean"),
        optional: !0
      },
      constraint: {
        validate: (0, e.assertNodeType)("TSType"),
        optional: !0
      },
      default: {
        validate: (0, e.assertNodeType)("TSType"),
        optional: !0
      }
    }
  }), nX;
}
var I_ = {};
Object.defineProperty(I_, "__esModule", {
  value: !0
});
I_.DEPRECATED_ALIASES = void 0;
I_.DEPRECATED_ALIASES = {
  ModuleDeclaration: "ImportOrExportDeclaration"
};
var aX;
function Hc() {
  return aX || (aX = 1, function(e) {
    Object.defineProperty(e, "__esModule", {
      value: !0
    }), Object.defineProperty(e, "ALIAS_KEYS", {
      enumerable: !0,
      get: function() {
        return t.ALIAS_KEYS;
      }
    }), Object.defineProperty(e, "BUILDER_KEYS", {
      enumerable: !0,
      get: function() {
        return t.BUILDER_KEYS;
      }
    }), Object.defineProperty(e, "DEPRECATED_ALIASES", {
      enumerable: !0,
      get: function() {
        return i.DEPRECATED_ALIASES;
      }
    }), Object.defineProperty(e, "DEPRECATED_KEYS", {
      enumerable: !0,
      get: function() {
        return t.DEPRECATED_KEYS;
      }
    }), Object.defineProperty(e, "FLIPPED_ALIAS_KEYS", {
      enumerable: !0,
      get: function() {
        return t.FLIPPED_ALIAS_KEYS;
      }
    }), Object.defineProperty(e, "NODE_FIELDS", {
      enumerable: !0,
      get: function() {
        return t.NODE_FIELDS;
      }
    }), Object.defineProperty(e, "NODE_PARENT_VALIDATIONS", {
      enumerable: !0,
      get: function() {
        return t.NODE_PARENT_VALIDATIONS;
      }
    }), Object.defineProperty(e, "PLACEHOLDERS", {
      enumerable: !0,
      get: function() {
        return r.PLACEHOLDERS;
      }
    }), Object.defineProperty(e, "PLACEHOLDERS_ALIAS", {
      enumerable: !0,
      get: function() {
        return r.PLACEHOLDERS_ALIAS;
      }
    }), Object.defineProperty(e, "PLACEHOLDERS_FLIPPED_ALIAS", {
      enumerable: !0,
      get: function() {
        return r.PLACEHOLDERS_FLIPPED_ALIAS;
      }
    }), e.TYPES = void 0, Object.defineProperty(e, "VISITOR_KEYS", {
      enumerable: !0,
      get: function() {
        return t.VISITOR_KEYS;
      }
    }), __(), kpt(), Opt(), Npt(), Dpt(), Lpt();
    var t = Rf(), r = fde(), i = I_;
    Object.keys(i.DEPRECATED_ALIASES).forEach((n) => {
      t.FLIPPED_ALIAS_KEYS[n] = t.FLIPPED_ALIAS_KEYS[i.DEPRECATED_ALIASES[n]];
    }), e.TYPES = [].concat(Object.keys(t.VISITOR_KEYS), Object.keys(t.FLIPPED_ALIAS_KEYS), Object.keys(t.DEPRECATED_KEYS));
  }(DR)), DR;
}
var oX;
function O9() {
  if (oX)
    return ad;
  oX = 1, Object.defineProperty(ad, "__esModule", {
    value: !0
  }), ad.default = t, ad.validateChild = n, ad.validateField = i, ad.validateInternal = r;
  var e = Hc();
  function t(s, a, o) {
    if (!s)
      return;
    const l = e.NODE_FIELDS[s.type];
    if (!l)
      return;
    const u = l[a];
    i(s, a, o, u), n(s, a, o);
  }
  function r(s, a, o, l, u) {
    if (s != null && s.validate && !(s.optional && l == null) && (s.validate(a, o, l), u)) {
      var c;
      const f = l.type;
      if (f == null)
        return;
      (c = e.NODE_PARENT_VALIDATIONS[f]) == null || c.call(e.NODE_PARENT_VALIDATIONS, a, o, l);
    }
  }
  function i(s, a, o, l) {
    l != null && l.validate && (l.optional && o == null || l.validate(s, a, o));
  }
  function n(s, a, o) {
    var l;
    const u = o == null ? void 0 : o.type;
    u != null && ((l = e.NODE_PARENT_VALIDATIONS[u]) == null || l.call(e.NODE_PARENT_VALIDATIONS, s, a, o));
  }
  return ad;
}
Object.defineProperty(we, "__esModule", {
  value: !0
});
we.anyTypeAnnotation = hht;
we.argumentPlaceholder = qdt;
we.arrayExpression = Bpt;
we.arrayPattern = Nft;
we.arrayTypeAnnotation = dht;
we.arrowFunctionExpression = Dft;
we.assignmentExpression = Fpt;
we.assignmentPattern = Oft;
we.awaitExpression = tht;
we.bigIntLiteral = iht;
we.binaryExpression = jpt;
we.bindExpression = Vdt;
we.blockStatement = Vpt;
we.booleanLiteral = uft;
we.booleanLiteralTypeAnnotation = yht;
we.booleanTypeAnnotation = mht;
we.breakStatement = Wpt;
we.callExpression = Hpt;
we.catchClause = Kpt;
we.classAccessorProperty = lht;
we.classBody = Lft;
we.classDeclaration = Rft;
we.classExpression = Mft;
we.classImplements = bht;
we.classMethod = Gft;
we.classPrivateMethod = cht;
we.classPrivateProperty = uht;
we.classProperty = oht;
we.conditionalExpression = zpt;
we.continueStatement = Gpt;
we.debuggerStatement = Ypt;
we.decimalLiteral = Xdt;
we.declareClass = vht;
we.declareExportAllDeclaration = _ht;
we.declareExportDeclaration = Cht;
we.declareFunction = Tht;
we.declareInterface = Sht;
we.declareModule = xht;
we.declareModuleExports = Eht;
we.declareOpaqueType = wht;
we.declareTypeAlias = Pht;
we.declareVariable = Aht;
we.declaredPredicate = Iht;
we.decorator = Hdt;
we.directive = Upt;
we.directiveLiteral = qpt;
we.doExpression = Kdt;
we.doWhileStatement = Xpt;
we.emptyStatement = Jpt;
we.emptyTypeAnnotation = $ht;
we.enumBooleanBody = ddt;
we.enumBooleanMember = bdt;
we.enumDeclaration = hdt;
we.enumDefaultedMember = Sdt;
we.enumNumberBody = mdt;
we.enumNumberMember = vdt;
we.enumStringBody = ydt;
we.enumStringMember = Tdt;
we.enumSymbolBody = gdt;
we.existsTypeAnnotation = kht;
we.exportAllDeclaration = Bft;
we.exportDefaultDeclaration = Fft;
we.exportDefaultSpecifier = zdt;
we.exportNamedDeclaration = jft;
we.exportNamespaceSpecifier = nht;
we.exportSpecifier = $ft;
we.expressionStatement = Qpt;
we.file = Zpt;
we.forInStatement = eft;
we.forOfStatement = Uft;
we.forStatement = tft;
we.functionDeclaration = rft;
we.functionExpression = ift;
we.functionTypeAnnotation = Oht;
we.functionTypeParam = Nht;
we.genericTypeAnnotation = Dht;
we.identifier = nft;
we.ifStatement = sft;
we.import = rht;
we.importAttribute = Wdt;
we.importDeclaration = qft;
we.importDefaultSpecifier = Vft;
we.importExpression = Kft;
we.importNamespaceSpecifier = Wft;
we.importSpecifier = Hft;
we.indexedAccessType = xdt;
we.inferredPredicate = Lht;
we.interfaceDeclaration = Rht;
we.interfaceExtends = Mht;
we.interfaceTypeAnnotation = Bht;
we.interpreterDirective = $pt;
we.intersectionTypeAnnotation = Fht;
we.jSXAttribute = we.jsxAttribute = Pdt;
we.jSXClosingElement = we.jsxClosingElement = wdt;
we.jSXClosingFragment = we.jsxClosingFragment = Fdt;
we.jSXElement = we.jsxElement = Adt;
we.jSXEmptyExpression = we.jsxEmptyExpression = Cdt;
we.jSXExpressionContainer = we.jsxExpressionContainer = _dt;
we.jSXFragment = we.jsxFragment = Rdt;
we.jSXIdentifier = we.jsxIdentifier = kdt;
we.jSXMemberExpression = we.jsxMemberExpression = Odt;
we.jSXNamespacedName = we.jsxNamespacedName = Ndt;
we.jSXOpeningElement = we.jsxOpeningElement = Ddt;
we.jSXOpeningFragment = we.jsxOpeningFragment = Bdt;
we.jSXSpreadAttribute = we.jsxSpreadAttribute = Ldt;
we.jSXSpreadChild = we.jsxSpreadChild = Idt;
we.jSXText = we.jsxText = Mdt;
we.labeledStatement = aft;
we.logicalExpression = cft;
we.memberExpression = pft;
we.metaProperty = zft;
we.mixedTypeAnnotation = jht;
we.moduleExpression = Jdt;
we.newExpression = fft;
we.noop = jdt;
we.nullLiteral = lft;
we.nullLiteralTypeAnnotation = ght;
we.nullableTypeAnnotation = Uht;
we.numberLiteral = hyt;
we.numberLiteralTypeAnnotation = qht;
we.numberTypeAnnotation = Vht;
we.numericLiteral = hde;
we.objectExpression = dft;
we.objectMethod = mft;
we.objectPattern = Yft;
we.objectProperty = yft;
we.objectTypeAnnotation = Wht;
we.objectTypeCallProperty = Kht;
we.objectTypeIndexer = zht;
we.objectTypeInternalSlot = Hht;
we.objectTypeProperty = Ght;
we.objectTypeSpreadProperty = Yht;
we.opaqueType = Xht;
we.optionalCallExpression = aht;
we.optionalIndexedAccessType = Edt;
we.optionalMemberExpression = sht;
we.parenthesizedExpression = vft;
we.pipelineBareFunction = emt;
we.pipelinePrimaryTopicReference = tmt;
we.pipelineTopicExpression = Zdt;
we.placeholder = $dt;
we.privateName = pht;
we.program = hft;
we.qualifiedTypeIdentifier = Jht;
we.recordExpression = Gdt;
we.regExpLiteral = dde;
we.regexLiteral = dyt;
we.restElement = mde;
we.restProperty = myt;
we.returnStatement = gft;
we.sequenceExpression = bft;
we.spreadElement = yde;
we.spreadProperty = yyt;
we.staticBlock = fht;
we.stringLiteral = oft;
we.stringLiteralTypeAnnotation = Qht;
we.stringTypeAnnotation = Zht;
we.super = Xft;
we.switchCase = Tft;
we.switchStatement = Sft;
we.symbolTypeAnnotation = edt;
we.taggedTemplateExpression = Jft;
we.templateElement = Qft;
we.templateLiteral = Zft;
we.thisExpression = xft;
we.thisTypeAnnotation = tdt;
we.throwStatement = Eft;
we.topicReference = Qdt;
we.tryStatement = Pft;
we.tSAnyKeyword = we.tsAnyKeyword = pmt;
we.tSArrayType = we.tsArrayType = Omt;
we.tSAsExpression = we.tsAsExpression = Xmt;
we.tSBigIntKeyword = we.tsBigIntKeyword = hmt;
we.tSBooleanKeyword = we.tsBooleanKeyword = fmt;
we.tSCallSignatureDeclaration = we.tsCallSignatureDeclaration = amt;
we.tSConditionalType = we.tsConditionalType = Fmt;
we.tSConstructSignatureDeclaration = we.tsConstructSignatureDeclaration = omt;
we.tSConstructorType = we.tsConstructorType = Amt;
we.tSDeclareFunction = we.tsDeclareFunction = imt;
we.tSDeclareMethod = we.tsDeclareMethod = nmt;
we.tSEnumDeclaration = we.tsEnumDeclaration = Zmt;
we.tSEnumMember = we.tsEnumMember = eyt;
we.tSExportAssignment = we.tsExportAssignment = oyt;
we.tSExpressionWithTypeArguments = we.tsExpressionWithTypeArguments = Hmt;
we.tSExternalModuleReference = we.tsExternalModuleReference = syt;
we.tSFunctionType = we.tsFunctionType = wmt;
we.tSImportEqualsDeclaration = we.tsImportEqualsDeclaration = nyt;
we.tSImportType = we.tsImportType = iyt;
we.tSIndexSignature = we.tsIndexSignature = cmt;
we.tSIndexedAccessType = we.tsIndexedAccessType = qmt;
we.tSInferType = we.tsInferType = jmt;
we.tSInstantiationExpression = we.tsInstantiationExpression = Ymt;
we.tSInterfaceBody = we.tsInterfaceBody = zmt;
we.tSInterfaceDeclaration = we.tsInterfaceDeclaration = Kmt;
we.tSIntersectionType = we.tsIntersectionType = Bmt;
we.tSIntrinsicKeyword = we.tsIntrinsicKeyword = dmt;
we.tSLiteralType = we.tsLiteralType = Wmt;
we.tSMappedType = we.tsMappedType = Vmt;
we.tSMethodSignature = we.tsMethodSignature = umt;
we.tSModuleBlock = we.tsModuleBlock = ryt;
we.tSModuleDeclaration = we.tsModuleDeclaration = tyt;
we.tSNamedTupleMember = we.tsNamedTupleMember = Mmt;
we.tSNamespaceExportDeclaration = we.tsNamespaceExportDeclaration = lyt;
we.tSNeverKeyword = we.tsNeverKeyword = mmt;
we.tSNonNullExpression = we.tsNonNullExpression = ayt;
we.tSNullKeyword = we.tsNullKeyword = ymt;
we.tSNumberKeyword = we.tsNumberKeyword = gmt;
we.tSObjectKeyword = we.tsObjectKeyword = bmt;
we.tSOptionalType = we.tsOptionalType = Dmt;
we.tSParameterProperty = we.tsParameterProperty = rmt;
we.tSParenthesizedType = we.tsParenthesizedType = $mt;
we.tSPropertySignature = we.tsPropertySignature = lmt;
we.tSQualifiedName = we.tsQualifiedName = smt;
we.tSRestType = we.tsRestType = Lmt;
we.tSSatisfiesExpression = we.tsSatisfiesExpression = Jmt;
we.tSStringKeyword = we.tsStringKeyword = vmt;
we.tSSymbolKeyword = we.tsSymbolKeyword = Tmt;
we.tSThisType = we.tsThisType = Pmt;
we.tSTupleType = we.tsTupleType = Nmt;
we.tSTypeAliasDeclaration = we.tsTypeAliasDeclaration = Gmt;
we.tSTypeAnnotation = we.tsTypeAnnotation = uyt;
we.tSTypeAssertion = we.tsTypeAssertion = Qmt;
we.tSTypeLiteral = we.tsTypeLiteral = kmt;
we.tSTypeOperator = we.tsTypeOperator = Umt;
we.tSTypeParameter = we.tsTypeParameter = fyt;
we.tSTypeParameterDeclaration = we.tsTypeParameterDeclaration = pyt;
we.tSTypeParameterInstantiation = we.tsTypeParameterInstantiation = cyt;
we.tSTypePredicate = we.tsTypePredicate = _mt;
we.tSTypeQuery = we.tsTypeQuery = Imt;
we.tSTypeReference = we.tsTypeReference = Cmt;
we.tSUndefinedKeyword = we.tsUndefinedKeyword = Smt;
we.tSUnionType = we.tsUnionType = Rmt;
we.tSUnknownKeyword = we.tsUnknownKeyword = xmt;
we.tSVoidKeyword = we.tsVoidKeyword = Emt;
we.tupleExpression = Ydt;
we.tupleTypeAnnotation = rdt;
we.typeAlias = ndt;
we.typeAnnotation = sdt;
we.typeCastExpression = adt;
we.typeParameter = odt;
we.typeParameterDeclaration = ldt;
we.typeParameterInstantiation = udt;
we.typeofTypeAnnotation = idt;
we.unaryExpression = wft;
we.unionTypeAnnotation = cdt;
we.updateExpression = Aft;
we.v8IntrinsicIdentifier = Udt;
we.variableDeclaration = Cft;
we.variableDeclarator = _ft;
we.variance = pdt;
we.voidTypeAnnotation = fdt;
we.whileStatement = Ift;
we.withStatement = kft;
we.yieldExpression = eht;
var Mpt = O9(), k_ = Cg, Rpt = Rf();
const {
  validateInternal: he
} = Mpt, {
  NODE_FIELDS: it
} = Rpt;
function Bpt(e = []) {
  const t = {
    type: "ArrayExpression",
    elements: e
  }, r = it.ArrayExpression;
  return he(r.elements, t, "elements", e, 1), t;
}
function Fpt(e, t, r) {
  const i = {
    type: "AssignmentExpression",
    operator: e,
    left: t,
    right: r
  }, n = it.AssignmentExpression;
  return he(n.operator, i, "operator", e), he(n.left, i, "left", t, 1), he(n.right, i, "right", r, 1), i;
}
function jpt(e, t, r) {
  const i = {
    type: "BinaryExpression",
    operator: e,
    left: t,
    right: r
  }, n = it.BinaryExpression;
  return he(n.operator, i, "operator", e), he(n.left, i, "left", t, 1), he(n.right, i, "right", r, 1), i;
}
function $pt(e) {
  const t = {
    type: "InterpreterDirective",
    value: e
  }, r = it.InterpreterDirective;
  return he(r.value, t, "value", e), t;
}
function Upt(e) {
  const t = {
    type: "Directive",
    value: e
  }, r = it.Directive;
  return he(r.value, t, "value", e, 1), t;
}
function qpt(e) {
  const t = {
    type: "DirectiveLiteral",
    value: e
  }, r = it.DirectiveLiteral;
  return he(r.value, t, "value", e), t;
}
function Vpt(e, t = []) {
  const r = {
    type: "BlockStatement",
    body: e,
    directives: t
  }, i = it.BlockStatement;
  return he(i.body, r, "body", e, 1), he(i.directives, r, "directives", t, 1), r;
}
function Wpt(e = null) {
  const t = {
    type: "BreakStatement",
    label: e
  }, r = it.BreakStatement;
  return he(r.label, t, "label", e, 1), t;
}
function Hpt(e, t) {
  const r = {
    type: "CallExpression",
    callee: e,
    arguments: t
  }, i = it.CallExpression;
  return he(i.callee, r, "callee", e, 1), he(i.arguments, r, "arguments", t, 1), r;
}
function Kpt(e = null, t) {
  const r = {
    type: "CatchClause",
    param: e,
    body: t
  }, i = it.CatchClause;
  return he(i.param, r, "param", e, 1), he(i.body, r, "body", t, 1), r;
}
function zpt(e, t, r) {
  const i = {
    type: "ConditionalExpression",
    test: e,
    consequent: t,
    alternate: r
  }, n = it.ConditionalExpression;
  return he(n.test, i, "test", e, 1), he(n.consequent, i, "consequent", t, 1), he(n.alternate, i, "alternate", r, 1), i;
}
function Gpt(e = null) {
  const t = {
    type: "ContinueStatement",
    label: e
  }, r = it.ContinueStatement;
  return he(r.label, t, "label", e, 1), t;
}
function Ypt() {
  return {
    type: "DebuggerStatement"
  };
}
function Xpt(e, t) {
  const r = {
    type: "DoWhileStatement",
    test: e,
    body: t
  }, i = it.DoWhileStatement;
  return he(i.test, r, "test", e, 1), he(i.body, r, "body", t, 1), r;
}
function Jpt() {
  return {
    type: "EmptyStatement"
  };
}
function Qpt(e) {
  const t = {
    type: "ExpressionStatement",
    expression: e
  }, r = it.ExpressionStatement;
  return he(r.expression, t, "expression", e, 1), t;
}
function Zpt(e, t = null, r = null) {
  const i = {
    type: "File",
    program: e,
    comments: t,
    tokens: r
  }, n = it.File;
  return he(n.program, i, "program", e, 1), he(n.comments, i, "comments", t, 1), he(n.tokens, i, "tokens", r), i;
}
function eft(e, t, r) {
  const i = {
    type: "ForInStatement",
    left: e,
    right: t,
    body: r
  }, n = it.ForInStatement;
  return he(n.left, i, "left", e, 1), he(n.right, i, "right", t, 1), he(n.body, i, "body", r, 1), i;
}
function tft(e = null, t = null, r = null, i) {
  const n = {
    type: "ForStatement",
    init: e,
    test: t,
    update: r,
    body: i
  }, s = it.ForStatement;
  return he(s.init, n, "init", e, 1), he(s.test, n, "test", t, 1), he(s.update, n, "update", r, 1), he(s.body, n, "body", i, 1), n;
}
function rft(e = null, t, r, i = !1, n = !1) {
  const s = {
    type: "FunctionDeclaration",
    id: e,
    params: t,
    body: r,
    generator: i,
    async: n
  }, a = it.FunctionDeclaration;
  return he(a.id, s, "id", e, 1), he(a.params, s, "params", t, 1), he(a.body, s, "body", r, 1), he(a.generator, s, "generator", i), he(a.async, s, "async", n), s;
}
function ift(e = null, t, r, i = !1, n = !1) {
  const s = {
    type: "FunctionExpression",
    id: e,
    params: t,
    body: r,
    generator: i,
    async: n
  }, a = it.FunctionExpression;
  return he(a.id, s, "id", e, 1), he(a.params, s, "params", t, 1), he(a.body, s, "body", r, 1), he(a.generator, s, "generator", i), he(a.async, s, "async", n), s;
}
function nft(e) {
  const t = {
    type: "Identifier",
    name: e
  }, r = it.Identifier;
  return he(r.name, t, "name", e), t;
}
function sft(e, t, r = null) {
  const i = {
    type: "IfStatement",
    test: e,
    consequent: t,
    alternate: r
  }, n = it.IfStatement;
  return he(n.test, i, "test", e, 1), he(n.consequent, i, "consequent", t, 1), he(n.alternate, i, "alternate", r, 1), i;
}
function aft(e, t) {
  const r = {
    type: "LabeledStatement",
    label: e,
    body: t
  }, i = it.LabeledStatement;
  return he(i.label, r, "label", e, 1), he(i.body, r, "body", t, 1), r;
}
function oft(e) {
  const t = {
    type: "StringLiteral",
    value: e
  }, r = it.StringLiteral;
  return he(r.value, t, "value", e), t;
}
function hde(e) {
  const t = {
    type: "NumericLiteral",
    value: e
  }, r = it.NumericLiteral;
  return he(r.value, t, "value", e), t;
}
function lft() {
  return {
    type: "NullLiteral"
  };
}
function uft(e) {
  const t = {
    type: "BooleanLiteral",
    value: e
  }, r = it.BooleanLiteral;
  return he(r.value, t, "value", e), t;
}
function dde(e, t = "") {
  const r = {
    type: "RegExpLiteral",
    pattern: e,
    flags: t
  }, i = it.RegExpLiteral;
  return he(i.pattern, r, "pattern", e), he(i.flags, r, "flags", t), r;
}
function cft(e, t, r) {
  const i = {
    type: "LogicalExpression",
    operator: e,
    left: t,
    right: r
  }, n = it.LogicalExpression;
  return he(n.operator, i, "operator", e), he(n.left, i, "left", t, 1), he(n.right, i, "right", r, 1), i;
}
function pft(e, t, r = !1, i = null) {
  const n = {
    type: "MemberExpression",
    object: e,
    property: t,
    computed: r,
    optional: i
  }, s = it.MemberExpression;
  return he(s.object, n, "object", e, 1), he(s.property, n, "property", t, 1), he(s.computed, n, "computed", r), he(s.optional, n, "optional", i), n;
}
function fft(e, t) {
  const r = {
    type: "NewExpression",
    callee: e,
    arguments: t
  }, i = it.NewExpression;
  return he(i.callee, r, "callee", e, 1), he(i.arguments, r, "arguments", t, 1), r;
}
function hft(e, t = [], r = "script", i = null) {
  const n = {
    type: "Program",
    body: e,
    directives: t,
    sourceType: r,
    interpreter: i
  }, s = it.Program;
  return he(s.body, n, "body", e, 1), he(s.directives, n, "directives", t, 1), he(s.sourceType, n, "sourceType", r), he(s.interpreter, n, "interpreter", i, 1), n;
}
function dft(e) {
  const t = {
    type: "ObjectExpression",
    properties: e
  }, r = it.ObjectExpression;
  return he(r.properties, t, "properties", e, 1), t;
}
function mft(e = "method", t, r, i, n = !1, s = !1, a = !1) {
  const o = {
    type: "ObjectMethod",
    kind: e,
    key: t,
    params: r,
    body: i,
    computed: n,
    generator: s,
    async: a
  }, l = it.ObjectMethod;
  return he(l.kind, o, "kind", e), he(l.key, o, "key", t, 1), he(l.params, o, "params", r, 1), he(l.body, o, "body", i, 1), he(l.computed, o, "computed", n), he(l.generator, o, "generator", s), he(l.async, o, "async", a), o;
}
function yft(e, t, r = !1, i = !1, n = null) {
  const s = {
    type: "ObjectProperty",
    key: e,
    value: t,
    computed: r,
    shorthand: i,
    decorators: n
  }, a = it.ObjectProperty;
  return he(a.key, s, "key", e, 1), he(a.value, s, "value", t, 1), he(a.computed, s, "computed", r), he(a.shorthand, s, "shorthand", i), he(a.decorators, s, "decorators", n, 1), s;
}
function mde(e) {
  const t = {
    type: "RestElement",
    argument: e
  }, r = it.RestElement;
  return he(r.argument, t, "argument", e, 1), t;
}
function gft(e = null) {
  const t = {
    type: "ReturnStatement",
    argument: e
  }, r = it.ReturnStatement;
  return he(r.argument, t, "argument", e, 1), t;
}
function bft(e) {
  const t = {
    type: "SequenceExpression",
    expressions: e
  }, r = it.SequenceExpression;
  return he(r.expressions, t, "expressions", e, 1), t;
}
function vft(e) {
  const t = {
    type: "ParenthesizedExpression",
    expression: e
  }, r = it.ParenthesizedExpression;
  return he(r.expression, t, "expression", e, 1), t;
}
function Tft(e = null, t) {
  const r = {
    type: "SwitchCase",
    test: e,
    consequent: t
  }, i = it.SwitchCase;
  return he(i.test, r, "test", e, 1), he(i.consequent, r, "consequent", t, 1), r;
}
function Sft(e, t) {
  const r = {
    type: "SwitchStatement",
    discriminant: e,
    cases: t
  }, i = it.SwitchStatement;
  return he(i.discriminant, r, "discriminant", e, 1), he(i.cases, r, "cases", t, 1), r;
}
function xft() {
  return {
    type: "ThisExpression"
  };
}
function Eft(e) {
  const t = {
    type: "ThrowStatement",
    argument: e
  }, r = it.ThrowStatement;
  return he(r.argument, t, "argument", e, 1), t;
}
function Pft(e, t = null, r = null) {
  const i = {
    type: "TryStatement",
    block: e,
    handler: t,
    finalizer: r
  }, n = it.TryStatement;
  return he(n.block, i, "block", e, 1), he(n.handler, i, "handler", t, 1), he(n.finalizer, i, "finalizer", r, 1), i;
}
function wft(e, t, r = !0) {
  const i = {
    type: "UnaryExpression",
    operator: e,
    argument: t,
    prefix: r
  }, n = it.UnaryExpression;
  return he(n.operator, i, "operator", e), he(n.argument, i, "argument", t, 1), he(n.prefix, i, "prefix", r), i;
}
function Aft(e, t, r = !1) {
  const i = {
    type: "UpdateExpression",
    operator: e,
    argument: t,
    prefix: r
  }, n = it.UpdateExpression;
  return he(n.operator, i, "operator", e), he(n.argument, i, "argument", t, 1), he(n.prefix, i, "prefix", r), i;
}
function Cft(e, t) {
  const r = {
    type: "VariableDeclaration",
    kind: e,
    declarations: t
  }, i = it.VariableDeclaration;
  return he(i.kind, r, "kind", e), he(i.declarations, r, "declarations", t, 1), r;
}
function _ft(e, t = null) {
  const r = {
    type: "VariableDeclarator",
    id: e,
    init: t
  }, i = it.VariableDeclarator;
  return he(i.id, r, "id", e, 1), he(i.init, r, "init", t, 1), r;
}
function Ift(e, t) {
  const r = {
    type: "WhileStatement",
    test: e,
    body: t
  }, i = it.WhileStatement;
  return he(i.test, r, "test", e, 1), he(i.body, r, "body", t, 1), r;
}
function kft(e, t) {
  const r = {
    type: "WithStatement",
    object: e,
    body: t
  }, i = it.WithStatement;
  return he(i.object, r, "object", e, 1), he(i.body, r, "body", t, 1), r;
}
function Oft(e, t) {
  const r = {
    type: "AssignmentPattern",
    left: e,
    right: t
  }, i = it.AssignmentPattern;
  return he(i.left, r, "left", e, 1), he(i.right, r, "right", t, 1), r;
}
function Nft(e) {
  const t = {
    type: "ArrayPattern",
    elements: e
  }, r = it.ArrayPattern;
  return he(r.elements, t, "elements", e, 1), t;
}
function Dft(e, t, r = !1) {
  const i = {
    type: "ArrowFunctionExpression",
    params: e,
    body: t,
    async: r,
    expression: null
  }, n = it.ArrowFunctionExpression;
  return he(n.params, i, "params", e, 1), he(n.body, i, "body", t, 1), he(n.async, i, "async", r), i;
}
function Lft(e) {
  const t = {
    type: "ClassBody",
    body: e
  }, r = it.ClassBody;
  return he(r.body, t, "body", e, 1), t;
}
function Mft(e = null, t = null, r, i = null) {
  const n = {
    type: "ClassExpression",
    id: e,
    superClass: t,
    body: r,
    decorators: i
  }, s = it.ClassExpression;
  return he(s.id, n, "id", e, 1), he(s.superClass, n, "superClass", t, 1), he(s.body, n, "body", r, 1), he(s.decorators, n, "decorators", i, 1), n;
}
function Rft(e = null, t = null, r, i = null) {
  const n = {
    type: "ClassDeclaration",
    id: e,
    superClass: t,
    body: r,
    decorators: i
  }, s = it.ClassDeclaration;
  return he(s.id, n, "id", e, 1), he(s.superClass, n, "superClass", t, 1), he(s.body, n, "body", r, 1), he(s.decorators, n, "decorators", i, 1), n;
}
function Bft(e) {
  const t = {
    type: "ExportAllDeclaration",
    source: e
  }, r = it.ExportAllDeclaration;
  return he(r.source, t, "source", e, 1), t;
}
function Fft(e) {
  const t = {
    type: "ExportDefaultDeclaration",
    declaration: e
  }, r = it.ExportDefaultDeclaration;
  return he(r.declaration, t, "declaration", e, 1), t;
}
function jft(e = null, t = [], r = null) {
  const i = {
    type: "ExportNamedDeclaration",
    declaration: e,
    specifiers: t,
    source: r
  }, n = it.ExportNamedDeclaration;
  return he(n.declaration, i, "declaration", e, 1), he(n.specifiers, i, "specifiers", t, 1), he(n.source, i, "source", r, 1), i;
}
function $ft(e, t) {
  const r = {
    type: "ExportSpecifier",
    local: e,
    exported: t
  }, i = it.ExportSpecifier;
  return he(i.local, r, "local", e, 1), he(i.exported, r, "exported", t, 1), r;
}
function Uft(e, t, r, i = !1) {
  const n = {
    type: "ForOfStatement",
    left: e,
    right: t,
    body: r,
    await: i
  }, s = it.ForOfStatement;
  return he(s.left, n, "left", e, 1), he(s.right, n, "right", t, 1), he(s.body, n, "body", r, 1), he(s.await, n, "await", i), n;
}
function qft(e, t) {
  const r = {
    type: "ImportDeclaration",
    specifiers: e,
    source: t
  }, i = it.ImportDeclaration;
  return he(i.specifiers, r, "specifiers", e, 1), he(i.source, r, "source", t, 1), r;
}
function Vft(e) {
  const t = {
    type: "ImportDefaultSpecifier",
    local: e
  }, r = it.ImportDefaultSpecifier;
  return he(r.local, t, "local", e, 1), t;
}
function Wft(e) {
  const t = {
    type: "ImportNamespaceSpecifier",
    local: e
  }, r = it.ImportNamespaceSpecifier;
  return he(r.local, t, "local", e, 1), t;
}
function Hft(e, t) {
  const r = {
    type: "ImportSpecifier",
    local: e,
    imported: t
  }, i = it.ImportSpecifier;
  return he(i.local, r, "local", e, 1), he(i.imported, r, "imported", t, 1), r;
}
function Kft(e, t = null) {
  const r = {
    type: "ImportExpression",
    source: e,
    options: t
  }, i = it.ImportExpression;
  return he(i.source, r, "source", e, 1), he(i.options, r, "options", t, 1), r;
}
function zft(e, t) {
  const r = {
    type: "MetaProperty",
    meta: e,
    property: t
  }, i = it.MetaProperty;
  return he(i.meta, r, "meta", e, 1), he(i.property, r, "property", t, 1), r;
}
function Gft(e = "method", t, r, i, n = !1, s = !1, a = !1, o = !1) {
  const l = {
    type: "ClassMethod",
    kind: e,
    key: t,
    params: r,
    body: i,
    computed: n,
    static: s,
    generator: a,
    async: o
  }, u = it.ClassMethod;
  return he(u.kind, l, "kind", e), he(u.key, l, "key", t, 1), he(u.params, l, "params", r, 1), he(u.body, l, "body", i, 1), he(u.computed, l, "computed", n), he(u.static, l, "static", s), he(u.generator, l, "generator", a), he(u.async, l, "async", o), l;
}
function Yft(e) {
  const t = {
    type: "ObjectPattern",
    properties: e
  }, r = it.ObjectPattern;
  return he(r.properties, t, "properties", e, 1), t;
}
function yde(e) {
  const t = {
    type: "SpreadElement",
    argument: e
  }, r = it.SpreadElement;
  return he(r.argument, t, "argument", e, 1), t;
}
function Xft() {
  return {
    type: "Super"
  };
}
function Jft(e, t) {
  const r = {
    type: "TaggedTemplateExpression",
    tag: e,
    quasi: t
  }, i = it.TaggedTemplateExpression;
  return he(i.tag, r, "tag", e, 1), he(i.quasi, r, "quasi", t, 1), r;
}
function Qft(e, t = !1) {
  const r = {
    type: "TemplateElement",
    value: e,
    tail: t
  }, i = it.TemplateElement;
  return he(i.value, r, "value", e), he(i.tail, r, "tail", t), r;
}
function Zft(e, t) {
  const r = {
    type: "TemplateLiteral",
    quasis: e,
    expressions: t
  }, i = it.TemplateLiteral;
  return he(i.quasis, r, "quasis", e, 1), he(i.expressions, r, "expressions", t, 1), r;
}
function eht(e = null, t = !1) {
  const r = {
    type: "YieldExpression",
    argument: e,
    delegate: t
  }, i = it.YieldExpression;
  return he(i.argument, r, "argument", e, 1), he(i.delegate, r, "delegate", t), r;
}
function tht(e) {
  const t = {
    type: "AwaitExpression",
    argument: e
  }, r = it.AwaitExpression;
  return he(r.argument, t, "argument", e, 1), t;
}
function rht() {
  return {
    type: "Import"
  };
}
function iht(e) {
  const t = {
    type: "BigIntLiteral",
    value: e
  }, r = it.BigIntLiteral;
  return he(r.value, t, "value", e), t;
}
function nht(e) {
  const t = {
    type: "ExportNamespaceSpecifier",
    exported: e
  }, r = it.ExportNamespaceSpecifier;
  return he(r.exported, t, "exported", e, 1), t;
}
function sht(e, t, r = !1, i) {
  const n = {
    type: "OptionalMemberExpression",
    object: e,
    property: t,
    computed: r,
    optional: i
  }, s = it.OptionalMemberExpression;
  return he(s.object, n, "object", e, 1), he(s.property, n, "property", t, 1), he(s.computed, n, "computed", r), he(s.optional, n, "optional", i), n;
}
function aht(e, t, r) {
  const i = {
    type: "OptionalCallExpression",
    callee: e,
    arguments: t,
    optional: r
  }, n = it.OptionalCallExpression;
  return he(n.callee, i, "callee", e, 1), he(n.arguments, i, "arguments", t, 1), he(n.optional, i, "optional", r), i;
}
function oht(e, t = null, r = null, i = null, n = !1, s = !1) {
  const a = {
    type: "ClassProperty",
    key: e,
    value: t,
    typeAnnotation: r,
    decorators: i,
    computed: n,
    static: s
  }, o = it.ClassProperty;
  return he(o.key, a, "key", e, 1), he(o.value, a, "value", t, 1), he(o.typeAnnotation, a, "typeAnnotation", r, 1), he(o.decorators, a, "decorators", i, 1), he(o.computed, a, "computed", n), he(o.static, a, "static", s), a;
}
function lht(e, t = null, r = null, i = null, n = !1, s = !1) {
  const a = {
    type: "ClassAccessorProperty",
    key: e,
    value: t,
    typeAnnotation: r,
    decorators: i,
    computed: n,
    static: s
  }, o = it.ClassAccessorProperty;
  return he(o.key, a, "key", e, 1), he(o.value, a, "value", t, 1), he(o.typeAnnotation, a, "typeAnnotation", r, 1), he(o.decorators, a, "decorators", i, 1), he(o.computed, a, "computed", n), he(o.static, a, "static", s), a;
}
function uht(e, t = null, r = null, i = !1) {
  const n = {
    type: "ClassPrivateProperty",
    key: e,
    value: t,
    decorators: r,
    static: i
  }, s = it.ClassPrivateProperty;
  return he(s.key, n, "key", e, 1), he(s.value, n, "value", t, 1), he(s.decorators, n, "decorators", r, 1), he(s.static, n, "static", i), n;
}
function cht(e = "method", t, r, i, n = !1) {
  const s = {
    type: "ClassPrivateMethod",
    kind: e,
    key: t,
    params: r,
    body: i,
    static: n
  }, a = it.ClassPrivateMethod;
  return he(a.kind, s, "kind", e), he(a.key, s, "key", t, 1), he(a.params, s, "params", r, 1), he(a.body, s, "body", i, 1), he(a.static, s, "static", n), s;
}
function pht(e) {
  const t = {
    type: "PrivateName",
    id: e
  }, r = it.PrivateName;
  return he(r.id, t, "id", e, 1), t;
}
function fht(e) {
  const t = {
    type: "StaticBlock",
    body: e
  }, r = it.StaticBlock;
  return he(r.body, t, "body", e, 1), t;
}
function hht() {
  return {
    type: "AnyTypeAnnotation"
  };
}
function dht(e) {
  const t = {
    type: "ArrayTypeAnnotation",
    elementType: e
  }, r = it.ArrayTypeAnnotation;
  return he(r.elementType, t, "elementType", e, 1), t;
}
function mht() {
  return {
    type: "BooleanTypeAnnotation"
  };
}
function yht(e) {
  const t = {
    type: "BooleanLiteralTypeAnnotation",
    value: e
  }, r = it.BooleanLiteralTypeAnnotation;
  return he(r.value, t, "value", e), t;
}
function ght() {
  return {
    type: "NullLiteralTypeAnnotation"
  };
}
function bht(e, t = null) {
  const r = {
    type: "ClassImplements",
    id: e,
    typeParameters: t
  }, i = it.ClassImplements;
  return he(i.id, r, "id", e, 1), he(i.typeParameters, r, "typeParameters", t, 1), r;
}
function vht(e, t = null, r = null, i) {
  const n = {
    type: "DeclareClass",
    id: e,
    typeParameters: t,
    extends: r,
    body: i
  }, s = it.DeclareClass;
  return he(s.id, n, "id", e, 1), he(s.typeParameters, n, "typeParameters", t, 1), he(s.extends, n, "extends", r, 1), he(s.body, n, "body", i, 1), n;
}
function Tht(e) {
  const t = {
    type: "DeclareFunction",
    id: e
  }, r = it.DeclareFunction;
  return he(r.id, t, "id", e, 1), t;
}
function Sht(e, t = null, r = null, i) {
  const n = {
    type: "DeclareInterface",
    id: e,
    typeParameters: t,
    extends: r,
    body: i
  }, s = it.DeclareInterface;
  return he(s.id, n, "id", e, 1), he(s.typeParameters, n, "typeParameters", t, 1), he(s.extends, n, "extends", r, 1), he(s.body, n, "body", i, 1), n;
}
function xht(e, t, r = null) {
  const i = {
    type: "DeclareModule",
    id: e,
    body: t,
    kind: r
  }, n = it.DeclareModule;
  return he(n.id, i, "id", e, 1), he(n.body, i, "body", t, 1), he(n.kind, i, "kind", r), i;
}
function Eht(e) {
  const t = {
    type: "DeclareModuleExports",
    typeAnnotation: e
  }, r = it.DeclareModuleExports;
  return he(r.typeAnnotation, t, "typeAnnotation", e, 1), t;
}
function Pht(e, t = null, r) {
  const i = {
    type: "DeclareTypeAlias",
    id: e,
    typeParameters: t,
    right: r
  }, n = it.DeclareTypeAlias;
  return he(n.id, i, "id", e, 1), he(n.typeParameters, i, "typeParameters", t, 1), he(n.right, i, "right", r, 1), i;
}
function wht(e, t = null, r = null) {
  const i = {
    type: "DeclareOpaqueType",
    id: e,
    typeParameters: t,
    supertype: r
  }, n = it.DeclareOpaqueType;
  return he(n.id, i, "id", e, 1), he(n.typeParameters, i, "typeParameters", t, 1), he(n.supertype, i, "supertype", r, 1), i;
}
function Aht(e) {
  const t = {
    type: "DeclareVariable",
    id: e
  }, r = it.DeclareVariable;
  return he(r.id, t, "id", e, 1), t;
}
function Cht(e = null, t = null, r = null, i = null) {
  const n = {
    type: "DeclareExportDeclaration",
    declaration: e,
    specifiers: t,
    source: r,
    attributes: i
  }, s = it.DeclareExportDeclaration;
  return he(s.declaration, n, "declaration", e, 1), he(s.specifiers, n, "specifiers", t, 1), he(s.source, n, "source", r, 1), he(s.attributes, n, "attributes", i, 1), n;
}
function _ht(e, t = null) {
  const r = {
    type: "DeclareExportAllDeclaration",
    source: e,
    attributes: t
  }, i = it.DeclareExportAllDeclaration;
  return he(i.source, r, "source", e, 1), he(i.attributes, r, "attributes", t, 1), r;
}
function Iht(e) {
  const t = {
    type: "DeclaredPredicate",
    value: e
  }, r = it.DeclaredPredicate;
  return he(r.value, t, "value", e, 1), t;
}
function kht() {
  return {
    type: "ExistsTypeAnnotation"
  };
}
function Oht(e = null, t, r = null, i) {
  const n = {
    type: "FunctionTypeAnnotation",
    typeParameters: e,
    params: t,
    rest: r,
    returnType: i
  }, s = it.FunctionTypeAnnotation;
  return he(s.typeParameters, n, "typeParameters", e, 1), he(s.params, n, "params", t, 1), he(s.rest, n, "rest", r, 1), he(s.returnType, n, "returnType", i, 1), n;
}
function Nht(e = null, t) {
  const r = {
    type: "FunctionTypeParam",
    name: e,
    typeAnnotation: t
  }, i = it.FunctionTypeParam;
  return he(i.name, r, "name", e, 1), he(i.typeAnnotation, r, "typeAnnotation", t, 1), r;
}
function Dht(e, t = null) {
  const r = {
    type: "GenericTypeAnnotation",
    id: e,
    typeParameters: t
  }, i = it.GenericTypeAnnotation;
  return he(i.id, r, "id", e, 1), he(i.typeParameters, r, "typeParameters", t, 1), r;
}
function Lht() {
  return {
    type: "InferredPredicate"
  };
}
function Mht(e, t = null) {
  const r = {
    type: "InterfaceExtends",
    id: e,
    typeParameters: t
  }, i = it.InterfaceExtends;
  return he(i.id, r, "id", e, 1), he(i.typeParameters, r, "typeParameters", t, 1), r;
}
function Rht(e, t = null, r = null, i) {
  const n = {
    type: "InterfaceDeclaration",
    id: e,
    typeParameters: t,
    extends: r,
    body: i
  }, s = it.InterfaceDeclaration;
  return he(s.id, n, "id", e, 1), he(s.typeParameters, n, "typeParameters", t, 1), he(s.extends, n, "extends", r, 1), he(s.body, n, "body", i, 1), n;
}
function Bht(e = null, t) {
  const r = {
    type: "InterfaceTypeAnnotation",
    extends: e,
    body: t
  }, i = it.InterfaceTypeAnnotation;
  return he(i.extends, r, "extends", e, 1), he(i.body, r, "body", t, 1), r;
}
function Fht(e) {
  const t = {
    type: "IntersectionTypeAnnotation",
    types: e
  }, r = it.IntersectionTypeAnnotation;
  return he(r.types, t, "types", e, 1), t;
}
function jht() {
  return {
    type: "MixedTypeAnnotation"
  };
}
function $ht() {
  return {
    type: "EmptyTypeAnnotation"
  };
}
function Uht(e) {
  const t = {
    type: "NullableTypeAnnotation",
    typeAnnotation: e
  }, r = it.NullableTypeAnnotation;
  return he(r.typeAnnotation, t, "typeAnnotation", e, 1), t;
}
function qht(e) {
  const t = {
    type: "NumberLiteralTypeAnnotation",
    value: e
  }, r = it.NumberLiteralTypeAnnotation;
  return he(r.value, t, "value", e), t;
}
function Vht() {
  return {
    type: "NumberTypeAnnotation"
  };
}
function Wht(e, t = [], r = [], i = [], n = !1) {
  const s = {
    type: "ObjectTypeAnnotation",
    properties: e,
    indexers: t,
    callProperties: r,
    internalSlots: i,
    exact: n
  }, a = it.ObjectTypeAnnotation;
  return he(a.properties, s, "properties", e, 1), he(a.indexers, s, "indexers", t, 1), he(a.callProperties, s, "callProperties", r, 1), he(a.internalSlots, s, "internalSlots", i, 1), he(a.exact, s, "exact", n), s;
}
function Hht(e, t, r, i, n) {
  const s = {
    type: "ObjectTypeInternalSlot",
    id: e,
    value: t,
    optional: r,
    static: i,
    method: n
  }, a = it.ObjectTypeInternalSlot;
  return he(a.id, s, "id", e, 1), he(a.value, s, "value", t, 1), he(a.optional, s, "optional", r), he(a.static, s, "static", i), he(a.method, s, "method", n), s;
}
function Kht(e) {
  const t = {
    type: "ObjectTypeCallProperty",
    value: e,
    static: null
  }, r = it.ObjectTypeCallProperty;
  return he(r.value, t, "value", e, 1), t;
}
function zht(e = null, t, r, i = null) {
  const n = {
    type: "ObjectTypeIndexer",
    id: e,
    key: t,
    value: r,
    variance: i,
    static: null
  }, s = it.ObjectTypeIndexer;
  return he(s.id, n, "id", e, 1), he(s.key, n, "key", t, 1), he(s.value, n, "value", r, 1), he(s.variance, n, "variance", i, 1), n;
}
function Ght(e, t, r = null) {
  const i = {
    type: "ObjectTypeProperty",
    key: e,
    value: t,
    variance: r,
    kind: null,
    method: null,
    optional: null,
    proto: null,
    static: null
  }, n = it.ObjectTypeProperty;
  return he(n.key, i, "key", e, 1), he(n.value, i, "value", t, 1), he(n.variance, i, "variance", r, 1), i;
}
function Yht(e) {
  const t = {
    type: "ObjectTypeSpreadProperty",
    argument: e
  }, r = it.ObjectTypeSpreadProperty;
  return he(r.argument, t, "argument", e, 1), t;
}
function Xht(e, t = null, r = null, i) {
  const n = {
    type: "OpaqueType",
    id: e,
    typeParameters: t,
    supertype: r,
    impltype: i
  }, s = it.OpaqueType;
  return he(s.id, n, "id", e, 1), he(s.typeParameters, n, "typeParameters", t, 1), he(s.supertype, n, "supertype", r, 1), he(s.impltype, n, "impltype", i, 1), n;
}
function Jht(e, t) {
  const r = {
    type: "QualifiedTypeIdentifier",
    id: e,
    qualification: t
  }, i = it.QualifiedTypeIdentifier;
  return he(i.id, r, "id", e, 1), he(i.qualification, r, "qualification", t, 1), r;
}
function Qht(e) {
  const t = {
    type: "StringLiteralTypeAnnotation",
    value: e
  }, r = it.StringLiteralTypeAnnotation;
  return he(r.value, t, "value", e), t;
}
function Zht() {
  return {
    type: "StringTypeAnnotation"
  };
}
function edt() {
  return {
    type: "SymbolTypeAnnotation"
  };
}
function tdt() {
  return {
    type: "ThisTypeAnnotation"
  };
}
function rdt(e) {
  const t = {
    type: "TupleTypeAnnotation",
    types: e
  }, r = it.TupleTypeAnnotation;
  return he(r.types, t, "types", e, 1), t;
}
function idt(e) {
  const t = {
    type: "TypeofTypeAnnotation",
    argument: e
  }, r = it.TypeofTypeAnnotation;
  return he(r.argument, t, "argument", e, 1), t;
}
function ndt(e, t = null, r) {
  const i = {
    type: "TypeAlias",
    id: e,
    typeParameters: t,
    right: r
  }, n = it.TypeAlias;
  return he(n.id, i, "id", e, 1), he(n.typeParameters, i, "typeParameters", t, 1), he(n.right, i, "right", r, 1), i;
}
function sdt(e) {
  const t = {
    type: "TypeAnnotation",
    typeAnnotation: e
  }, r = it.TypeAnnotation;
  return he(r.typeAnnotation, t, "typeAnnotation", e, 1), t;
}
function adt(e, t) {
  const r = {
    type: "TypeCastExpression",
    expression: e,
    typeAnnotation: t
  }, i = it.TypeCastExpression;
  return he(i.expression, r, "expression", e, 1), he(i.typeAnnotation, r, "typeAnnotation", t, 1), r;
}
function odt(e = null, t = null, r = null) {
  const i = {
    type: "TypeParameter",
    bound: e,
    default: t,
    variance: r,
    name: null
  }, n = it.TypeParameter;
  return he(n.bound, i, "bound", e, 1), he(n.default, i, "default", t, 1), he(n.variance, i, "variance", r, 1), i;
}
function ldt(e) {
  const t = {
    type: "TypeParameterDeclaration",
    params: e
  }, r = it.TypeParameterDeclaration;
  return he(r.params, t, "params", e, 1), t;
}
function udt(e) {
  const t = {
    type: "TypeParameterInstantiation",
    params: e
  }, r = it.TypeParameterInstantiation;
  return he(r.params, t, "params", e, 1), t;
}
function cdt(e) {
  const t = {
    type: "UnionTypeAnnotation",
    types: e
  }, r = it.UnionTypeAnnotation;
  return he(r.types, t, "types", e, 1), t;
}
function pdt(e) {
  const t = {
    type: "Variance",
    kind: e
  }, r = it.Variance;
  return he(r.kind, t, "kind", e), t;
}
function fdt() {
  return {
    type: "VoidTypeAnnotation"
  };
}
function hdt(e, t) {
  const r = {
    type: "EnumDeclaration",
    id: e,
    body: t
  }, i = it.EnumDeclaration;
  return he(i.id, r, "id", e, 1), he(i.body, r, "body", t, 1), r;
}
function ddt(e) {
  const t = {
    type: "EnumBooleanBody",
    members: e,
    explicitType: null,
    hasUnknownMembers: null
  }, r = it.EnumBooleanBody;
  return he(r.members, t, "members", e, 1), t;
}
function mdt(e) {
  const t = {
    type: "EnumNumberBody",
    members: e,
    explicitType: null,
    hasUnknownMembers: null
  }, r = it.EnumNumberBody;
  return he(r.members, t, "members", e, 1), t;
}
function ydt(e) {
  const t = {
    type: "EnumStringBody",
    members: e,
    explicitType: null,
    hasUnknownMembers: null
  }, r = it.EnumStringBody;
  return he(r.members, t, "members", e, 1), t;
}
function gdt(e) {
  const t = {
    type: "EnumSymbolBody",
    members: e,
    hasUnknownMembers: null
  }, r = it.EnumSymbolBody;
  return he(r.members, t, "members", e, 1), t;
}
function bdt(e) {
  const t = {
    type: "EnumBooleanMember",
    id: e,
    init: null
  }, r = it.EnumBooleanMember;
  return he(r.id, t, "id", e, 1), t;
}
function vdt(e, t) {
  const r = {
    type: "EnumNumberMember",
    id: e,
    init: t
  }, i = it.EnumNumberMember;
  return he(i.id, r, "id", e, 1), he(i.init, r, "init", t, 1), r;
}
function Tdt(e, t) {
  const r = {
    type: "EnumStringMember",
    id: e,
    init: t
  }, i = it.EnumStringMember;
  return he(i.id, r, "id", e, 1), he(i.init, r, "init", t, 1), r;
}
function Sdt(e) {
  const t = {
    type: "EnumDefaultedMember",
    id: e
  }, r = it.EnumDefaultedMember;
  return he(r.id, t, "id", e, 1), t;
}
function xdt(e, t) {
  const r = {
    type: "IndexedAccessType",
    objectType: e,
    indexType: t
  }, i = it.IndexedAccessType;
  return he(i.objectType, r, "objectType", e, 1), he(i.indexType, r, "indexType", t, 1), r;
}
function Edt(e, t) {
  const r = {
    type: "OptionalIndexedAccessType",
    objectType: e,
    indexType: t,
    optional: null
  }, i = it.OptionalIndexedAccessType;
  return he(i.objectType, r, "objectType", e, 1), he(i.indexType, r, "indexType", t, 1), r;
}
function Pdt(e, t = null) {
  const r = {
    type: "JSXAttribute",
    name: e,
    value: t
  }, i = it.JSXAttribute;
  return he(i.name, r, "name", e, 1), he(i.value, r, "value", t, 1), r;
}
function wdt(e) {
  const t = {
    type: "JSXClosingElement",
    name: e
  }, r = it.JSXClosingElement;
  return he(r.name, t, "name", e, 1), t;
}
function Adt(e, t = null, r, i = null) {
  const n = {
    type: "JSXElement",
    openingElement: e,
    closingElement: t,
    children: r,
    selfClosing: i
  }, s = it.JSXElement;
  return he(s.openingElement, n, "openingElement", e, 1), he(s.closingElement, n, "closingElement", t, 1), he(s.children, n, "children", r, 1), he(s.selfClosing, n, "selfClosing", i), n;
}
function Cdt() {
  return {
    type: "JSXEmptyExpression"
  };
}
function _dt(e) {
  const t = {
    type: "JSXExpressionContainer",
    expression: e
  }, r = it.JSXExpressionContainer;
  return he(r.expression, t, "expression", e, 1), t;
}
function Idt(e) {
  const t = {
    type: "JSXSpreadChild",
    expression: e
  }, r = it.JSXSpreadChild;
  return he(r.expression, t, "expression", e, 1), t;
}
function kdt(e) {
  const t = {
    type: "JSXIdentifier",
    name: e
  }, r = it.JSXIdentifier;
  return he(r.name, t, "name", e), t;
}
function Odt(e, t) {
  const r = {
    type: "JSXMemberExpression",
    object: e,
    property: t
  }, i = it.JSXMemberExpression;
  return he(i.object, r, "object", e, 1), he(i.property, r, "property", t, 1), r;
}
function Ndt(e, t) {
  const r = {
    type: "JSXNamespacedName",
    namespace: e,
    name: t
  }, i = it.JSXNamespacedName;
  return he(i.namespace, r, "namespace", e, 1), he(i.name, r, "name", t, 1), r;
}
function Ddt(e, t, r = !1) {
  const i = {
    type: "JSXOpeningElement",
    name: e,
    attributes: t,
    selfClosing: r
  }, n = it.JSXOpeningElement;
  return he(n.name, i, "name", e, 1), he(n.attributes, i, "attributes", t, 1), he(n.selfClosing, i, "selfClosing", r), i;
}
function Ldt(e) {
  const t = {
    type: "JSXSpreadAttribute",
    argument: e
  }, r = it.JSXSpreadAttribute;
  return he(r.argument, t, "argument", e, 1), t;
}
function Mdt(e) {
  const t = {
    type: "JSXText",
    value: e
  }, r = it.JSXText;
  return he(r.value, t, "value", e), t;
}
function Rdt(e, t, r) {
  const i = {
    type: "JSXFragment",
    openingFragment: e,
    closingFragment: t,
    children: r
  }, n = it.JSXFragment;
  return he(n.openingFragment, i, "openingFragment", e, 1), he(n.closingFragment, i, "closingFragment", t, 1), he(n.children, i, "children", r, 1), i;
}
function Bdt() {
  return {
    type: "JSXOpeningFragment"
  };
}
function Fdt() {
  return {
    type: "JSXClosingFragment"
  };
}
function jdt() {
  return {
    type: "Noop"
  };
}
function $dt(e, t) {
  const r = {
    type: "Placeholder",
    expectedNode: e,
    name: t
  }, i = it.Placeholder;
  return he(i.expectedNode, r, "expectedNode", e), he(i.name, r, "name", t, 1), r;
}
function Udt(e) {
  const t = {
    type: "V8IntrinsicIdentifier",
    name: e
  }, r = it.V8IntrinsicIdentifier;
  return he(r.name, t, "name", e), t;
}
function qdt() {
  return {
    type: "ArgumentPlaceholder"
  };
}
function Vdt(e, t) {
  const r = {
    type: "BindExpression",
    object: e,
    callee: t
  }, i = it.BindExpression;
  return he(i.object, r, "object", e, 1), he(i.callee, r, "callee", t, 1), r;
}
function Wdt(e, t) {
  const r = {
    type: "ImportAttribute",
    key: e,
    value: t
  }, i = it.ImportAttribute;
  return he(i.key, r, "key", e, 1), he(i.value, r, "value", t, 1), r;
}
function Hdt(e) {
  const t = {
    type: "Decorator",
    expression: e
  }, r = it.Decorator;
  return he(r.expression, t, "expression", e, 1), t;
}
function Kdt(e, t = !1) {
  const r = {
    type: "DoExpression",
    body: e,
    async: t
  }, i = it.DoExpression;
  return he(i.body, r, "body", e, 1), he(i.async, r, "async", t), r;
}
function zdt(e) {
  const t = {
    type: "ExportDefaultSpecifier",
    exported: e
  }, r = it.ExportDefaultSpecifier;
  return he(r.exported, t, "exported", e, 1), t;
}
function Gdt(e) {
  const t = {
    type: "RecordExpression",
    properties: e
  }, r = it.RecordExpression;
  return he(r.properties, t, "properties", e, 1), t;
}
function Ydt(e = []) {
  const t = {
    type: "TupleExpression",
    elements: e
  }, r = it.TupleExpression;
  return he(r.elements, t, "elements", e, 1), t;
}
function Xdt(e) {
  const t = {
    type: "DecimalLiteral",
    value: e
  }, r = it.DecimalLiteral;
  return he(r.value, t, "value", e), t;
}
function Jdt(e) {
  const t = {
    type: "ModuleExpression",
    body: e
  }, r = it.ModuleExpression;
  return he(r.body, t, "body", e, 1), t;
}
function Qdt() {
  return {
    type: "TopicReference"
  };
}
function Zdt(e) {
  const t = {
    type: "PipelineTopicExpression",
    expression: e
  }, r = it.PipelineTopicExpression;
  return he(r.expression, t, "expression", e, 1), t;
}
function emt(e) {
  const t = {
    type: "PipelineBareFunction",
    callee: e
  }, r = it.PipelineBareFunction;
  return he(r.callee, t, "callee", e, 1), t;
}
function tmt() {
  return {
    type: "PipelinePrimaryTopicReference"
  };
}
function rmt(e) {
  const t = {
    type: "TSParameterProperty",
    parameter: e
  }, r = it.TSParameterProperty;
  return he(r.parameter, t, "parameter", e, 1), t;
}
function imt(e = null, t = null, r, i = null) {
  const n = {
    type: "TSDeclareFunction",
    id: e,
    typeParameters: t,
    params: r,
    returnType: i
  }, s = it.TSDeclareFunction;
  return he(s.id, n, "id", e, 1), he(s.typeParameters, n, "typeParameters", t, 1), he(s.params, n, "params", r, 1), he(s.returnType, n, "returnType", i, 1), n;
}
function nmt(e = null, t, r = null, i, n = null) {
  const s = {
    type: "TSDeclareMethod",
    decorators: e,
    key: t,
    typeParameters: r,
    params: i,
    returnType: n
  }, a = it.TSDeclareMethod;
  return he(a.decorators, s, "decorators", e, 1), he(a.key, s, "key", t, 1), he(a.typeParameters, s, "typeParameters", r, 1), he(a.params, s, "params", i, 1), he(a.returnType, s, "returnType", n, 1), s;
}
function smt(e, t) {
  const r = {
    type: "TSQualifiedName",
    left: e,
    right: t
  }, i = it.TSQualifiedName;
  return he(i.left, r, "left", e, 1), he(i.right, r, "right", t, 1), r;
}
function amt(e = null, t, r = null) {
  const i = {
    type: "TSCallSignatureDeclaration",
    typeParameters: e,
    parameters: t,
    typeAnnotation: r
  }, n = it.TSCallSignatureDeclaration;
  return he(n.typeParameters, i, "typeParameters", e, 1), he(n.parameters, i, "parameters", t, 1), he(n.typeAnnotation, i, "typeAnnotation", r, 1), i;
}
function omt(e = null, t, r = null) {
  const i = {
    type: "TSConstructSignatureDeclaration",
    typeParameters: e,
    parameters: t,
    typeAnnotation: r
  }, n = it.TSConstructSignatureDeclaration;
  return he(n.typeParameters, i, "typeParameters", e, 1), he(n.parameters, i, "parameters", t, 1), he(n.typeAnnotation, i, "typeAnnotation", r, 1), i;
}
function lmt(e, t = null) {
  const r = {
    type: "TSPropertySignature",
    key: e,
    typeAnnotation: t,
    kind: null
  }, i = it.TSPropertySignature;
  return he(i.key, r, "key", e, 1), he(i.typeAnnotation, r, "typeAnnotation", t, 1), r;
}
function umt(e, t = null, r, i = null) {
  const n = {
    type: "TSMethodSignature",
    key: e,
    typeParameters: t,
    parameters: r,
    typeAnnotation: i,
    kind: null
  }, s = it.TSMethodSignature;
  return he(s.key, n, "key", e, 1), he(s.typeParameters, n, "typeParameters", t, 1), he(s.parameters, n, "parameters", r, 1), he(s.typeAnnotation, n, "typeAnnotation", i, 1), n;
}
function cmt(e, t = null) {
  const r = {
    type: "TSIndexSignature",
    parameters: e,
    typeAnnotation: t
  }, i = it.TSIndexSignature;
  return he(i.parameters, r, "parameters", e, 1), he(i.typeAnnotation, r, "typeAnnotation", t, 1), r;
}
function pmt() {
  return {
    type: "TSAnyKeyword"
  };
}
function fmt() {
  return {
    type: "TSBooleanKeyword"
  };
}
function hmt() {
  return {
    type: "TSBigIntKeyword"
  };
}
function dmt() {
  return {
    type: "TSIntrinsicKeyword"
  };
}
function mmt() {
  return {
    type: "TSNeverKeyword"
  };
}
function ymt() {
  return {
    type: "TSNullKeyword"
  };
}
function gmt() {
  return {
    type: "TSNumberKeyword"
  };
}
function bmt() {
  return {
    type: "TSObjectKeyword"
  };
}
function vmt() {
  return {
    type: "TSStringKeyword"
  };
}
function Tmt() {
  return {
    type: "TSSymbolKeyword"
  };
}
function Smt() {
  return {
    type: "TSUndefinedKeyword"
  };
}
function xmt() {
  return {
    type: "TSUnknownKeyword"
  };
}
function Emt() {
  return {
    type: "TSVoidKeyword"
  };
}
function Pmt() {
  return {
    type: "TSThisType"
  };
}
function wmt(e = null, t, r = null) {
  const i = {
    type: "TSFunctionType",
    typeParameters: e,
    parameters: t,
    typeAnnotation: r
  }, n = it.TSFunctionType;
  return he(n.typeParameters, i, "typeParameters", e, 1), he(n.parameters, i, "parameters", t, 1), he(n.typeAnnotation, i, "typeAnnotation", r, 1), i;
}
function Amt(e = null, t, r = null) {
  const i = {
    type: "TSConstructorType",
    typeParameters: e,
    parameters: t,
    typeAnnotation: r
  }, n = it.TSConstructorType;
  return he(n.typeParameters, i, "typeParameters", e, 1), he(n.parameters, i, "parameters", t, 1), he(n.typeAnnotation, i, "typeAnnotation", r, 1), i;
}
function Cmt(e, t = null) {
  const r = {
    type: "TSTypeReference",
    typeName: e,
    typeParameters: t
  }, i = it.TSTypeReference;
  return he(i.typeName, r, "typeName", e, 1), he(i.typeParameters, r, "typeParameters", t, 1), r;
}
function _mt(e, t = null, r = null) {
  const i = {
    type: "TSTypePredicate",
    parameterName: e,
    typeAnnotation: t,
    asserts: r
  }, n = it.TSTypePredicate;
  return he(n.parameterName, i, "parameterName", e, 1), he(n.typeAnnotation, i, "typeAnnotation", t, 1), he(n.asserts, i, "asserts", r), i;
}
function Imt(e, t = null) {
  const r = {
    type: "TSTypeQuery",
    exprName: e,
    typeParameters: t
  }, i = it.TSTypeQuery;
  return he(i.exprName, r, "exprName", e, 1), he(i.typeParameters, r, "typeParameters", t, 1), r;
}
function kmt(e) {
  const t = {
    type: "TSTypeLiteral",
    members: e
  }, r = it.TSTypeLiteral;
  return he(r.members, t, "members", e, 1), t;
}
function Omt(e) {
  const t = {
    type: "TSArrayType",
    elementType: e
  }, r = it.TSArrayType;
  return he(r.elementType, t, "elementType", e, 1), t;
}
function Nmt(e) {
  const t = {
    type: "TSTupleType",
    elementTypes: e
  }, r = it.TSTupleType;
  return he(r.elementTypes, t, "elementTypes", e, 1), t;
}
function Dmt(e) {
  const t = {
    type: "TSOptionalType",
    typeAnnotation: e
  }, r = it.TSOptionalType;
  return he(r.typeAnnotation, t, "typeAnnotation", e, 1), t;
}
function Lmt(e) {
  const t = {
    type: "TSRestType",
    typeAnnotation: e
  }, r = it.TSRestType;
  return he(r.typeAnnotation, t, "typeAnnotation", e, 1), t;
}
function Mmt(e, t, r = !1) {
  const i = {
    type: "TSNamedTupleMember",
    label: e,
    elementType: t,
    optional: r
  }, n = it.TSNamedTupleMember;
  return he(n.label, i, "label", e, 1), he(n.elementType, i, "elementType", t, 1), he(n.optional, i, "optional", r), i;
}
function Rmt(e) {
  const t = {
    type: "TSUnionType",
    types: e
  }, r = it.TSUnionType;
  return he(r.types, t, "types", e, 1), t;
}
function Bmt(e) {
  const t = {
    type: "TSIntersectionType",
    types: e
  }, r = it.TSIntersectionType;
  return he(r.types, t, "types", e, 1), t;
}
function Fmt(e, t, r, i) {
  const n = {
    type: "TSConditionalType",
    checkType: e,
    extendsType: t,
    trueType: r,
    falseType: i
  }, s = it.TSConditionalType;
  return he(s.checkType, n, "checkType", e, 1), he(s.extendsType, n, "extendsType", t, 1), he(s.trueType, n, "trueType", r, 1), he(s.falseType, n, "falseType", i, 1), n;
}
function jmt(e) {
  const t = {
    type: "TSInferType",
    typeParameter: e
  }, r = it.TSInferType;
  return he(r.typeParameter, t, "typeParameter", e, 1), t;
}
function $mt(e) {
  const t = {
    type: "TSParenthesizedType",
    typeAnnotation: e
  }, r = it.TSParenthesizedType;
  return he(r.typeAnnotation, t, "typeAnnotation", e, 1), t;
}
function Umt(e) {
  const t = {
    type: "TSTypeOperator",
    typeAnnotation: e,
    operator: null
  }, r = it.TSTypeOperator;
  return he(r.typeAnnotation, t, "typeAnnotation", e, 1), t;
}
function qmt(e, t) {
  const r = {
    type: "TSIndexedAccessType",
    objectType: e,
    indexType: t
  }, i = it.TSIndexedAccessType;
  return he(i.objectType, r, "objectType", e, 1), he(i.indexType, r, "indexType", t, 1), r;
}
function Vmt(e, t = null, r = null) {
  const i = {
    type: "TSMappedType",
    typeParameter: e,
    typeAnnotation: t,
    nameType: r
  }, n = it.TSMappedType;
  return he(n.typeParameter, i, "typeParameter", e, 1), he(n.typeAnnotation, i, "typeAnnotation", t, 1), he(n.nameType, i, "nameType", r, 1), i;
}
function Wmt(e) {
  const t = {
    type: "TSLiteralType",
    literal: e
  }, r = it.TSLiteralType;
  return he(r.literal, t, "literal", e, 1), t;
}
function Hmt(e, t = null) {
  const r = {
    type: "TSExpressionWithTypeArguments",
    expression: e,
    typeParameters: t
  }, i = it.TSExpressionWithTypeArguments;
  return he(i.expression, r, "expression", e, 1), he(i.typeParameters, r, "typeParameters", t, 1), r;
}
function Kmt(e, t = null, r = null, i) {
  const n = {
    type: "TSInterfaceDeclaration",
    id: e,
    typeParameters: t,
    extends: r,
    body: i
  }, s = it.TSInterfaceDeclaration;
  return he(s.id, n, "id", e, 1), he(s.typeParameters, n, "typeParameters", t, 1), he(s.extends, n, "extends", r, 1), he(s.body, n, "body", i, 1), n;
}
function zmt(e) {
  const t = {
    type: "TSInterfaceBody",
    body: e
  }, r = it.TSInterfaceBody;
  return he(r.body, t, "body", e, 1), t;
}
function Gmt(e, t = null, r) {
  const i = {
    type: "TSTypeAliasDeclaration",
    id: e,
    typeParameters: t,
    typeAnnotation: r
  }, n = it.TSTypeAliasDeclaration;
  return he(n.id, i, "id", e, 1), he(n.typeParameters, i, "typeParameters", t, 1), he(n.typeAnnotation, i, "typeAnnotation", r, 1), i;
}
function Ymt(e, t = null) {
  const r = {
    type: "TSInstantiationExpression",
    expression: e,
    typeParameters: t
  }, i = it.TSInstantiationExpression;
  return he(i.expression, r, "expression", e, 1), he(i.typeParameters, r, "typeParameters", t, 1), r;
}
function Xmt(e, t) {
  const r = {
    type: "TSAsExpression",
    expression: e,
    typeAnnotation: t
  }, i = it.TSAsExpression;
  return he(i.expression, r, "expression", e, 1), he(i.typeAnnotation, r, "typeAnnotation", t, 1), r;
}
function Jmt(e, t) {
  const r = {
    type: "TSSatisfiesExpression",
    expression: e,
    typeAnnotation: t
  }, i = it.TSSatisfiesExpression;
  return he(i.expression, r, "expression", e, 1), he(i.typeAnnotation, r, "typeAnnotation", t, 1), r;
}
function Qmt(e, t) {
  const r = {
    type: "TSTypeAssertion",
    typeAnnotation: e,
    expression: t
  }, i = it.TSTypeAssertion;
  return he(i.typeAnnotation, r, "typeAnnotation", e, 1), he(i.expression, r, "expression", t, 1), r;
}
function Zmt(e, t) {
  const r = {
    type: "TSEnumDeclaration",
    id: e,
    members: t
  }, i = it.TSEnumDeclaration;
  return he(i.id, r, "id", e, 1), he(i.members, r, "members", t, 1), r;
}
function eyt(e, t = null) {
  const r = {
    type: "TSEnumMember",
    id: e,
    initializer: t
  }, i = it.TSEnumMember;
  return he(i.id, r, "id", e, 1), he(i.initializer, r, "initializer", t, 1), r;
}
function tyt(e, t) {
  const r = {
    type: "TSModuleDeclaration",
    id: e,
    body: t,
    kind: null
  }, i = it.TSModuleDeclaration;
  return he(i.id, r, "id", e, 1), he(i.body, r, "body", t, 1), r;
}
function ryt(e) {
  const t = {
    type: "TSModuleBlock",
    body: e
  }, r = it.TSModuleBlock;
  return he(r.body, t, "body", e, 1), t;
}
function iyt(e, t = null, r = null) {
  const i = {
    type: "TSImportType",
    argument: e,
    qualifier: t,
    typeParameters: r
  }, n = it.TSImportType;
  return he(n.argument, i, "argument", e, 1), he(n.qualifier, i, "qualifier", t, 1), he(n.typeParameters, i, "typeParameters", r, 1), i;
}
function nyt(e, t) {
  const r = {
    type: "TSImportEqualsDeclaration",
    id: e,
    moduleReference: t,
    isExport: null
  }, i = it.TSImportEqualsDeclaration;
  return he(i.id, r, "id", e, 1), he(i.moduleReference, r, "moduleReference", t, 1), r;
}
function syt(e) {
  const t = {
    type: "TSExternalModuleReference",
    expression: e
  }, r = it.TSExternalModuleReference;
  return he(r.expression, t, "expression", e, 1), t;
}
function ayt(e) {
  const t = {
    type: "TSNonNullExpression",
    expression: e
  }, r = it.TSNonNullExpression;
  return he(r.expression, t, "expression", e, 1), t;
}
function oyt(e) {
  const t = {
    type: "TSExportAssignment",
    expression: e
  }, r = it.TSExportAssignment;
  return he(r.expression, t, "expression", e, 1), t;
}
function lyt(e) {
  const t = {
    type: "TSNamespaceExportDeclaration",
    id: e
  }, r = it.TSNamespaceExportDeclaration;
  return he(r.id, t, "id", e, 1), t;
}
function uyt(e) {
  const t = {
    type: "TSTypeAnnotation",
    typeAnnotation: e
  }, r = it.TSTypeAnnotation;
  return he(r.typeAnnotation, t, "typeAnnotation", e, 1), t;
}
function cyt(e) {
  const t = {
    type: "TSTypeParameterInstantiation",
    params: e
  }, r = it.TSTypeParameterInstantiation;
  return he(r.params, t, "params", e, 1), t;
}
function pyt(e) {
  const t = {
    type: "TSTypeParameterDeclaration",
    params: e
  }, r = it.TSTypeParameterDeclaration;
  return he(r.params, t, "params", e, 1), t;
}
function fyt(e = null, t = null, r) {
  const i = {
    type: "TSTypeParameter",
    constraint: e,
    default: t,
    name: r
  }, n = it.TSTypeParameter;
  return he(n.constraint, i, "constraint", e, 1), he(n.default, i, "default", t, 1), he(n.name, i, "name", r), i;
}
function hyt(e) {
  return (0, k_.default)("NumberLiteral", "NumericLiteral", "The node type "), hde(e);
}
function dyt(e, t = "") {
  return (0, k_.default)("RegexLiteral", "RegExpLiteral", "The node type "), dde(e, t);
}
function myt(e) {
  return (0, k_.default)("RestProperty", "RestElement", "The node type "), mde(e);
}
function yyt(e) {
  return (0, k_.default)("SpreadProperty", "SpreadElement", "The node type "), yde(e);
}
var lX;
function gyt() {
  if (lX)
    return ZE;
  lX = 1, Object.defineProperty(ZE, "__esModule", {
    value: !0
  }), ZE.default = r;
  var e = we, t = Qn();
  function r(i, n) {
    const s = i.value.split(/\r\n|\n|\r/);
    let a = 0;
    for (let l = 0; l < s.length; l++)
      /[^ \t]/.exec(s[l]) && (a = l);
    let o = "";
    for (let l = 0; l < s.length; l++) {
      const u = s[l], c = l === 0, f = l === s.length - 1, h = l === a;
      let m = u.replace(/\t/g, " ");
      c || (m = m.replace(/^ +/, "")), f || (m = m.replace(/ +$/, "")), m && (h || (m += " "), o += m);
    }
    o && n.push((0, t.inherits)((0, e.stringLiteral)(o), i));
  }
  return ZE;
}
var uX;
function byt() {
  if (uX)
    return QE;
  uX = 1, Object.defineProperty(QE, "__esModule", {
    value: !0
  }), QE.default = r;
  var e = Oe, t = gyt();
  function r(i) {
    const n = [];
    for (let s = 0; s < i.children.length; s++) {
      let a = i.children[s];
      if ((0, e.isJSXText)(a)) {
        (0, t.default)(a, n);
        continue;
      }
      (0, e.isJSXExpressionContainer)(a) && (a = a.expression), !(0, e.isJSXEmptyExpression)(a) && n.push(a);
    }
    return n;
  }
  return QE;
}
var N9 = {}, O_ = {};
Object.defineProperty(O_, "__esModule", {
  value: !0
});
O_.default = Tyt;
var vyt = Hc();
function Tyt(e) {
  return !!(e && vyt.VISITOR_KEYS[e.type]);
}
Object.defineProperty(N9, "__esModule", {
  value: !0
});
N9.default = xyt;
var Syt = O_;
function xyt(e) {
  if (!(0, Syt.default)(e)) {
    var t;
    const r = (t = e == null ? void 0 : e.type) != null ? t : JSON.stringify(e);
    throw new TypeError('Not a valid node of type "'.concat(r, '"'));
  }
}
var je = {};
Object.defineProperty(je, "__esModule", {
  value: !0
});
je.assertAccessor = FTt;
je.assertAnyTypeAnnotation = nbt;
je.assertArgumentPlaceholder = D0t;
je.assertArrayExpression = Pyt;
je.assertArrayPattern = xgt;
je.assertArrayTypeAnnotation = sbt;
je.assertArrowFunctionExpression = Egt;
je.assertAssignmentExpression = wyt;
je.assertAssignmentPattern = Sgt;
je.assertAwaitExpression = Kgt;
je.assertBigIntLiteral = Ggt;
je.assertBinary = aTt;
je.assertBinaryExpression = Ayt;
je.assertBindExpression = L0t;
je.assertBlock = uTt;
je.assertBlockParent = lTt;
je.assertBlockStatement = kyt;
je.assertBooleanLiteral = Jyt;
je.assertBooleanLiteralTypeAnnotation = obt;
je.assertBooleanTypeAnnotation = abt;
je.assertBreakStatement = Oyt;
je.assertCallExpression = Nyt;
je.assertCatchClause = Dyt;
je.assertClass = LTt;
je.assertClassAccessorProperty = Zgt;
je.assertClassBody = Pgt;
je.assertClassDeclaration = Agt;
je.assertClassExpression = wgt;
je.assertClassImplements = ubt;
je.assertClassMethod = Fgt;
je.assertClassPrivateMethod = tbt;
je.assertClassPrivateProperty = ebt;
je.assertClassProperty = Qgt;
je.assertCompletionStatement = fTt;
je.assertConditional = hTt;
je.assertConditionalExpression = Lyt;
je.assertContinueStatement = Myt;
je.assertDebuggerStatement = Ryt;
je.assertDecimalLiteral = U0t;
je.assertDeclaration = xTt;
je.assertDeclareClass = cbt;
je.assertDeclareExportAllDeclaration = vbt;
je.assertDeclareExportDeclaration = bbt;
je.assertDeclareFunction = pbt;
je.assertDeclareInterface = fbt;
je.assertDeclareModule = hbt;
je.assertDeclareModuleExports = dbt;
je.assertDeclareOpaqueType = ybt;
je.assertDeclareTypeAlias = mbt;
je.assertDeclareVariable = gbt;
je.assertDeclaredPredicate = Tbt;
je.assertDecorator = R0t;
je.assertDirective = _yt;
je.assertDirectiveLiteral = Iyt;
je.assertDoExpression = B0t;
je.assertDoWhileStatement = Byt;
je.assertEmptyStatement = Fyt;
je.assertEmptyTypeAnnotation = Obt;
je.assertEnumBody = HTt;
je.assertEnumBooleanBody = s0t;
je.assertEnumBooleanMember = u0t;
je.assertEnumDeclaration = n0t;
je.assertEnumDefaultedMember = f0t;
je.assertEnumMember = KTt;
je.assertEnumNumberBody = a0t;
je.assertEnumNumberMember = c0t;
je.assertEnumStringBody = o0t;
je.assertEnumStringMember = p0t;
je.assertEnumSymbolBody = l0t;
je.assertExistsTypeAnnotation = Sbt;
je.assertExportAllDeclaration = Cgt;
je.assertExportDeclaration = RTt;
je.assertExportDefaultDeclaration = _gt;
je.assertExportDefaultSpecifier = F0t;
je.assertExportNamedDeclaration = Igt;
je.assertExportNamespaceSpecifier = Ygt;
je.assertExportSpecifier = kgt;
je.assertExpression = sTt;
je.assertExpressionStatement = jyt;
je.assertExpressionWrapper = yTt;
je.assertFile = $yt;
je.assertFlow = $Tt;
je.assertFlowBaseAnnotation = qTt;
je.assertFlowDeclaration = VTt;
je.assertFlowPredicate = WTt;
je.assertFlowType = UTt;
je.assertFor = gTt;
je.assertForInStatement = Uyt;
je.assertForOfStatement = Ogt;
je.assertForStatement = qyt;
je.assertForXStatement = bTt;
je.assertFunction = vTt;
je.assertFunctionDeclaration = Vyt;
je.assertFunctionExpression = Wyt;
je.assertFunctionParent = TTt;
je.assertFunctionTypeAnnotation = xbt;
je.assertFunctionTypeParam = Ebt;
je.assertGenericTypeAnnotation = Pbt;
je.assertIdentifier = Hyt;
je.assertIfStatement = Kyt;
je.assertImmutable = CTt;
je.assertImport = zgt;
je.assertImportAttribute = M0t;
je.assertImportDeclaration = Ngt;
je.assertImportDefaultSpecifier = Dgt;
je.assertImportExpression = Rgt;
je.assertImportNamespaceSpecifier = Lgt;
je.assertImportOrExportDeclaration = MTt;
je.assertImportSpecifier = Mgt;
je.assertIndexedAccessType = h0t;
je.assertInferredPredicate = wbt;
je.assertInterfaceDeclaration = Cbt;
je.assertInterfaceExtends = Abt;
je.assertInterfaceTypeAnnotation = _bt;
je.assertInterpreterDirective = Cyt;
je.assertIntersectionTypeAnnotation = Ibt;
je.assertJSX = zTt;
je.assertJSXAttribute = m0t;
je.assertJSXClosingElement = y0t;
je.assertJSXClosingFragment = I0t;
je.assertJSXElement = g0t;
je.assertJSXEmptyExpression = b0t;
je.assertJSXExpressionContainer = v0t;
je.assertJSXFragment = C0t;
je.assertJSXIdentifier = S0t;
je.assertJSXMemberExpression = x0t;
je.assertJSXNamespacedName = E0t;
je.assertJSXOpeningElement = P0t;
je.assertJSXOpeningFragment = _0t;
je.assertJSXSpreadAttribute = w0t;
je.assertJSXSpreadChild = T0t;
je.assertJSXText = A0t;
je.assertLVal = PTt;
je.assertLabeledStatement = zyt;
je.assertLiteral = ATt;
je.assertLogicalExpression = Zyt;
je.assertLoop = dTt;
je.assertMemberExpression = egt;
je.assertMetaProperty = Bgt;
je.assertMethod = ITt;
je.assertMiscellaneous = GTt;
je.assertMixedTypeAnnotation = kbt;
je.assertModuleDeclaration = iSt;
je.assertModuleExpression = q0t;
je.assertModuleSpecifier = BTt;
je.assertNewExpression = tgt;
je.assertNoop = k0t;
je.assertNullLiteral = Xyt;
je.assertNullLiteralTypeAnnotation = lbt;
je.assertNullableTypeAnnotation = Nbt;
je.assertNumberLiteral = ZTt;
je.assertNumberLiteralTypeAnnotation = Dbt;
je.assertNumberTypeAnnotation = Lbt;
je.assertNumericLiteral = Yyt;
je.assertObjectExpression = igt;
je.assertObjectMember = kTt;
je.assertObjectMethod = ngt;
je.assertObjectPattern = jgt;
je.assertObjectProperty = sgt;
je.assertObjectTypeAnnotation = Mbt;
je.assertObjectTypeCallProperty = Bbt;
je.assertObjectTypeIndexer = Fbt;
je.assertObjectTypeInternalSlot = Rbt;
je.assertObjectTypeProperty = jbt;
je.assertObjectTypeSpreadProperty = $bt;
je.assertOpaqueType = Ubt;
je.assertOptionalCallExpression = Jgt;
je.assertOptionalIndexedAccessType = d0t;
je.assertOptionalMemberExpression = Xgt;
je.assertParenthesizedExpression = ugt;
je.assertPattern = DTt;
je.assertPatternLike = ETt;
je.assertPipelineBareFunction = H0t;
je.assertPipelinePrimaryTopicReference = K0t;
je.assertPipelineTopicExpression = W0t;
je.assertPlaceholder = O0t;
je.assertPrivate = jTt;
je.assertPrivateName = rbt;
je.assertProgram = rgt;
je.assertProperty = OTt;
je.assertPureish = STt;
je.assertQualifiedTypeIdentifier = qbt;
je.assertRecordExpression = j0t;
je.assertRegExpLiteral = Qyt;
je.assertRegexLiteral = eSt;
je.assertRestElement = agt;
je.assertRestProperty = tSt;
je.assertReturnStatement = ogt;
je.assertScopable = oTt;
je.assertSequenceExpression = lgt;
je.assertSpreadElement = $gt;
je.assertSpreadProperty = rSt;
je.assertStandardized = nTt;
je.assertStatement = cTt;
je.assertStaticBlock = ibt;
je.assertStringLiteral = Gyt;
je.assertStringLiteralTypeAnnotation = Vbt;
je.assertStringTypeAnnotation = Wbt;
je.assertSuper = Ugt;
je.assertSwitchCase = cgt;
je.assertSwitchStatement = pgt;
je.assertSymbolTypeAnnotation = Hbt;
je.assertTSAnyKeyword = rvt;
je.assertTSArrayType = xvt;
je.assertTSAsExpression = Uvt;
je.assertTSBaseType = QTt;
je.assertTSBigIntKeyword = nvt;
je.assertTSBooleanKeyword = ivt;
je.assertTSCallSignatureDeclaration = J0t;
je.assertTSConditionalType = Ivt;
je.assertTSConstructSignatureDeclaration = Q0t;
je.assertTSConstructorType = gvt;
je.assertTSDeclareFunction = G0t;
je.assertTSDeclareMethod = Y0t;
je.assertTSEntityName = wTt;
je.assertTSEnumDeclaration = Wvt;
je.assertTSEnumMember = Hvt;
je.assertTSExportAssignment = Qvt;
je.assertTSExpressionWithTypeArguments = Rvt;
je.assertTSExternalModuleReference = Xvt;
je.assertTSFunctionType = yvt;
je.assertTSImportEqualsDeclaration = Yvt;
je.assertTSImportType = Gvt;
je.assertTSIndexSignature = tvt;
je.assertTSIndexedAccessType = Dvt;
je.assertTSInferType = kvt;
je.assertTSInstantiationExpression = $vt;
je.assertTSInterfaceBody = Fvt;
je.assertTSInterfaceDeclaration = Bvt;
je.assertTSIntersectionType = _vt;
je.assertTSIntrinsicKeyword = svt;
je.assertTSLiteralType = Mvt;
je.assertTSMappedType = Lvt;
je.assertTSMethodSignature = evt;
je.assertTSModuleBlock = zvt;
je.assertTSModuleDeclaration = Kvt;
je.assertTSNamedTupleMember = Avt;
je.assertTSNamespaceExportDeclaration = Zvt;
je.assertTSNeverKeyword = avt;
je.assertTSNonNullExpression = Jvt;
je.assertTSNullKeyword = ovt;
je.assertTSNumberKeyword = lvt;
je.assertTSObjectKeyword = uvt;
je.assertTSOptionalType = Pvt;
je.assertTSParameterProperty = z0t;
je.assertTSParenthesizedType = Ovt;
je.assertTSPropertySignature = Z0t;
je.assertTSQualifiedName = X0t;
je.assertTSRestType = wvt;
je.assertTSSatisfiesExpression = qvt;
je.assertTSStringKeyword = cvt;
je.assertTSSymbolKeyword = pvt;
je.assertTSThisType = mvt;
je.assertTSTupleType = Evt;
je.assertTSType = JTt;
je.assertTSTypeAliasDeclaration = jvt;
je.assertTSTypeAnnotation = eTt;
je.assertTSTypeAssertion = Vvt;
je.assertTSTypeElement = XTt;
je.assertTSTypeLiteral = Svt;
je.assertTSTypeOperator = Nvt;
je.assertTSTypeParameter = iTt;
je.assertTSTypeParameterDeclaration = rTt;
je.assertTSTypeParameterInstantiation = tTt;
je.assertTSTypePredicate = vvt;
je.assertTSTypeQuery = Tvt;
je.assertTSTypeReference = bvt;
je.assertTSUndefinedKeyword = fvt;
je.assertTSUnionType = Cvt;
je.assertTSUnknownKeyword = hvt;
je.assertTSVoidKeyword = dvt;
je.assertTaggedTemplateExpression = qgt;
je.assertTemplateElement = Vgt;
je.assertTemplateLiteral = Wgt;
je.assertTerminatorless = pTt;
je.assertThisExpression = fgt;
je.assertThisTypeAnnotation = Kbt;
je.assertThrowStatement = hgt;
je.assertTopicReference = V0t;
je.assertTryStatement = dgt;
je.assertTupleExpression = $0t;
je.assertTupleTypeAnnotation = zbt;
je.assertTypeAlias = Ybt;
je.assertTypeAnnotation = Xbt;
je.assertTypeCastExpression = Jbt;
je.assertTypeParameter = Qbt;
je.assertTypeParameterDeclaration = Zbt;
je.assertTypeParameterInstantiation = e0t;
je.assertTypeScript = YTt;
je.assertTypeofTypeAnnotation = Gbt;
je.assertUnaryExpression = mgt;
je.assertUnaryLike = NTt;
je.assertUnionTypeAnnotation = t0t;
je.assertUpdateExpression = ygt;
je.assertUserWhitespacable = _Tt;
je.assertV8IntrinsicIdentifier = N0t;
je.assertVariableDeclaration = ggt;
je.assertVariableDeclarator = bgt;
je.assertVariance = r0t;
je.assertVoidTypeAnnotation = i0t;
je.assertWhile = mTt;
je.assertWhileStatement = vgt;
je.assertWithStatement = Tgt;
je.assertYieldExpression = Hgt;
var Eyt = ZT(), tS = Cg;
function Ve(e, t, r) {
  if (!(0, Eyt.default)(e, t, r))
    throw new Error('Expected type "'.concat(e, '" with option ').concat(JSON.stringify(r), ", ") + 'but instead got "'.concat(t.type, '".'));
}
function Pyt(e, t) {
  Ve("ArrayExpression", e, t);
}
function wyt(e, t) {
  Ve("AssignmentExpression", e, t);
}
function Ayt(e, t) {
  Ve("BinaryExpression", e, t);
}
function Cyt(e, t) {
  Ve("InterpreterDirective", e, t);
}
function _yt(e, t) {
  Ve("Directive", e, t);
}
function Iyt(e, t) {
  Ve("DirectiveLiteral", e, t);
}
function kyt(e, t) {
  Ve("BlockStatement", e, t);
}
function Oyt(e, t) {
  Ve("BreakStatement", e, t);
}
function Nyt(e, t) {
  Ve("CallExpression", e, t);
}
function Dyt(e, t) {
  Ve("CatchClause", e, t);
}
function Lyt(e, t) {
  Ve("ConditionalExpression", e, t);
}
function Myt(e, t) {
  Ve("ContinueStatement", e, t);
}
function Ryt(e, t) {
  Ve("DebuggerStatement", e, t);
}
function Byt(e, t) {
  Ve("DoWhileStatement", e, t);
}
function Fyt(e, t) {
  Ve("EmptyStatement", e, t);
}
function jyt(e, t) {
  Ve("ExpressionStatement", e, t);
}
function $yt(e, t) {
  Ve("File", e, t);
}
function Uyt(e, t) {
  Ve("ForInStatement", e, t);
}
function qyt(e, t) {
  Ve("ForStatement", e, t);
}
function Vyt(e, t) {
  Ve("FunctionDeclaration", e, t);
}
function Wyt(e, t) {
  Ve("FunctionExpression", e, t);
}
function Hyt(e, t) {
  Ve("Identifier", e, t);
}
function Kyt(e, t) {
  Ve("IfStatement", e, t);
}
function zyt(e, t) {
  Ve("LabeledStatement", e, t);
}
function Gyt(e, t) {
  Ve("StringLiteral", e, t);
}
function Yyt(e, t) {
  Ve("NumericLiteral", e, t);
}
function Xyt(e, t) {
  Ve("NullLiteral", e, t);
}
function Jyt(e, t) {
  Ve("BooleanLiteral", e, t);
}
function Qyt(e, t) {
  Ve("RegExpLiteral", e, t);
}
function Zyt(e, t) {
  Ve("LogicalExpression", e, t);
}
function egt(e, t) {
  Ve("MemberExpression", e, t);
}
function tgt(e, t) {
  Ve("NewExpression", e, t);
}
function rgt(e, t) {
  Ve("Program", e, t);
}
function igt(e, t) {
  Ve("ObjectExpression", e, t);
}
function ngt(e, t) {
  Ve("ObjectMethod", e, t);
}
function sgt(e, t) {
  Ve("ObjectProperty", e, t);
}
function agt(e, t) {
  Ve("RestElement", e, t);
}
function ogt(e, t) {
  Ve("ReturnStatement", e, t);
}
function lgt(e, t) {
  Ve("SequenceExpression", e, t);
}
function ugt(e, t) {
  Ve("ParenthesizedExpression", e, t);
}
function cgt(e, t) {
  Ve("SwitchCase", e, t);
}
function pgt(e, t) {
  Ve("SwitchStatement", e, t);
}
function fgt(e, t) {
  Ve("ThisExpression", e, t);
}
function hgt(e, t) {
  Ve("ThrowStatement", e, t);
}
function dgt(e, t) {
  Ve("TryStatement", e, t);
}
function mgt(e, t) {
  Ve("UnaryExpression", e, t);
}
function ygt(e, t) {
  Ve("UpdateExpression", e, t);
}
function ggt(e, t) {
  Ve("VariableDeclaration", e, t);
}
function bgt(e, t) {
  Ve("VariableDeclarator", e, t);
}
function vgt(e, t) {
  Ve("WhileStatement", e, t);
}
function Tgt(e, t) {
  Ve("WithStatement", e, t);
}
function Sgt(e, t) {
  Ve("AssignmentPattern", e, t);
}
function xgt(e, t) {
  Ve("ArrayPattern", e, t);
}
function Egt(e, t) {
  Ve("ArrowFunctionExpression", e, t);
}
function Pgt(e, t) {
  Ve("ClassBody", e, t);
}
function wgt(e, t) {
  Ve("ClassExpression", e, t);
}
function Agt(e, t) {
  Ve("ClassDeclaration", e, t);
}
function Cgt(e, t) {
  Ve("ExportAllDeclaration", e, t);
}
function _gt(e, t) {
  Ve("ExportDefaultDeclaration", e, t);
}
function Igt(e, t) {
  Ve("ExportNamedDeclaration", e, t);
}
function kgt(e, t) {
  Ve("ExportSpecifier", e, t);
}
function Ogt(e, t) {
  Ve("ForOfStatement", e, t);
}
function Ngt(e, t) {
  Ve("ImportDeclaration", e, t);
}
function Dgt(e, t) {
  Ve("ImportDefaultSpecifier", e, t);
}
function Lgt(e, t) {
  Ve("ImportNamespaceSpecifier", e, t);
}
function Mgt(e, t) {
  Ve("ImportSpecifier", e, t);
}
function Rgt(e, t) {
  Ve("ImportExpression", e, t);
}
function Bgt(e, t) {
  Ve("MetaProperty", e, t);
}
function Fgt(e, t) {
  Ve("ClassMethod", e, t);
}
function jgt(e, t) {
  Ve("ObjectPattern", e, t);
}
function $gt(e, t) {
  Ve("SpreadElement", e, t);
}
function Ugt(e, t) {
  Ve("Super", e, t);
}
function qgt(e, t) {
  Ve("TaggedTemplateExpression", e, t);
}
function Vgt(e, t) {
  Ve("TemplateElement", e, t);
}
function Wgt(e, t) {
  Ve("TemplateLiteral", e, t);
}
function Hgt(e, t) {
  Ve("YieldExpression", e, t);
}
function Kgt(e, t) {
  Ve("AwaitExpression", e, t);
}
function zgt(e, t) {
  Ve("Import", e, t);
}
function Ggt(e, t) {
  Ve("BigIntLiteral", e, t);
}
function Ygt(e, t) {
  Ve("ExportNamespaceSpecifier", e, t);
}
function Xgt(e, t) {
  Ve("OptionalMemberExpression", e, t);
}
function Jgt(e, t) {
  Ve("OptionalCallExpression", e, t);
}
function Qgt(e, t) {
  Ve("ClassProperty", e, t);
}
function Zgt(e, t) {
  Ve("ClassAccessorProperty", e, t);
}
function ebt(e, t) {
  Ve("ClassPrivateProperty", e, t);
}
function tbt(e, t) {
  Ve("ClassPrivateMethod", e, t);
}
function rbt(e, t) {
  Ve("PrivateName", e, t);
}
function ibt(e, t) {
  Ve("StaticBlock", e, t);
}
function nbt(e, t) {
  Ve("AnyTypeAnnotation", e, t);
}
function sbt(e, t) {
  Ve("ArrayTypeAnnotation", e, t);
}
function abt(e, t) {
  Ve("BooleanTypeAnnotation", e, t);
}
function obt(e, t) {
  Ve("BooleanLiteralTypeAnnotation", e, t);
}
function lbt(e, t) {
  Ve("NullLiteralTypeAnnotation", e, t);
}
function ubt(e, t) {
  Ve("ClassImplements", e, t);
}
function cbt(e, t) {
  Ve("DeclareClass", e, t);
}
function pbt(e, t) {
  Ve("DeclareFunction", e, t);
}
function fbt(e, t) {
  Ve("DeclareInterface", e, t);
}
function hbt(e, t) {
  Ve("DeclareModule", e, t);
}
function dbt(e, t) {
  Ve("DeclareModuleExports", e, t);
}
function mbt(e, t) {
  Ve("DeclareTypeAlias", e, t);
}
function ybt(e, t) {
  Ve("DeclareOpaqueType", e, t);
}
function gbt(e, t) {
  Ve("DeclareVariable", e, t);
}
function bbt(e, t) {
  Ve("DeclareExportDeclaration", e, t);
}
function vbt(e, t) {
  Ve("DeclareExportAllDeclaration", e, t);
}
function Tbt(e, t) {
  Ve("DeclaredPredicate", e, t);
}
function Sbt(e, t) {
  Ve("ExistsTypeAnnotation", e, t);
}
function xbt(e, t) {
  Ve("FunctionTypeAnnotation", e, t);
}
function Ebt(e, t) {
  Ve("FunctionTypeParam", e, t);
}
function Pbt(e, t) {
  Ve("GenericTypeAnnotation", e, t);
}
function wbt(e, t) {
  Ve("InferredPredicate", e, t);
}
function Abt(e, t) {
  Ve("InterfaceExtends", e, t);
}
function Cbt(e, t) {
  Ve("InterfaceDeclaration", e, t);
}
function _bt(e, t) {
  Ve("InterfaceTypeAnnotation", e, t);
}
function Ibt(e, t) {
  Ve("IntersectionTypeAnnotation", e, t);
}
function kbt(e, t) {
  Ve("MixedTypeAnnotation", e, t);
}
function Obt(e, t) {
  Ve("EmptyTypeAnnotation", e, t);
}
function Nbt(e, t) {
  Ve("NullableTypeAnnotation", e, t);
}
function Dbt(e, t) {
  Ve("NumberLiteralTypeAnnotation", e, t);
}
function Lbt(e, t) {
  Ve("NumberTypeAnnotation", e, t);
}
function Mbt(e, t) {
  Ve("ObjectTypeAnnotation", e, t);
}
function Rbt(e, t) {
  Ve("ObjectTypeInternalSlot", e, t);
}
function Bbt(e, t) {
  Ve("ObjectTypeCallProperty", e, t);
}
function Fbt(e, t) {
  Ve("ObjectTypeIndexer", e, t);
}
function jbt(e, t) {
  Ve("ObjectTypeProperty", e, t);
}
function $bt(e, t) {
  Ve("ObjectTypeSpreadProperty", e, t);
}
function Ubt(e, t) {
  Ve("OpaqueType", e, t);
}
function qbt(e, t) {
  Ve("QualifiedTypeIdentifier", e, t);
}
function Vbt(e, t) {
  Ve("StringLiteralTypeAnnotation", e, t);
}
function Wbt(e, t) {
  Ve("StringTypeAnnotation", e, t);
}
function Hbt(e, t) {
  Ve("SymbolTypeAnnotation", e, t);
}
function Kbt(e, t) {
  Ve("ThisTypeAnnotation", e, t);
}
function zbt(e, t) {
  Ve("TupleTypeAnnotation", e, t);
}
function Gbt(e, t) {
  Ve("TypeofTypeAnnotation", e, t);
}
function Ybt(e, t) {
  Ve("TypeAlias", e, t);
}
function Xbt(e, t) {
  Ve("TypeAnnotation", e, t);
}
function Jbt(e, t) {
  Ve("TypeCastExpression", e, t);
}
function Qbt(e, t) {
  Ve("TypeParameter", e, t);
}
function Zbt(e, t) {
  Ve("TypeParameterDeclaration", e, t);
}
function e0t(e, t) {
  Ve("TypeParameterInstantiation", e, t);
}
function t0t(e, t) {
  Ve("UnionTypeAnnotation", e, t);
}
function r0t(e, t) {
  Ve("Variance", e, t);
}
function i0t(e, t) {
  Ve("VoidTypeAnnotation", e, t);
}
function n0t(e, t) {
  Ve("EnumDeclaration", e, t);
}
function s0t(e, t) {
  Ve("EnumBooleanBody", e, t);
}
function a0t(e, t) {
  Ve("EnumNumberBody", e, t);
}
function o0t(e, t) {
  Ve("EnumStringBody", e, t);
}
function l0t(e, t) {
  Ve("EnumSymbolBody", e, t);
}
function u0t(e, t) {
  Ve("EnumBooleanMember", e, t);
}
function c0t(e, t) {
  Ve("EnumNumberMember", e, t);
}
function p0t(e, t) {
  Ve("EnumStringMember", e, t);
}
function f0t(e, t) {
  Ve("EnumDefaultedMember", e, t);
}
function h0t(e, t) {
  Ve("IndexedAccessType", e, t);
}
function d0t(e, t) {
  Ve("OptionalIndexedAccessType", e, t);
}
function m0t(e, t) {
  Ve("JSXAttribute", e, t);
}
function y0t(e, t) {
  Ve("JSXClosingElement", e, t);
}
function g0t(e, t) {
  Ve("JSXElement", e, t);
}
function b0t(e, t) {
  Ve("JSXEmptyExpression", e, t);
}
function v0t(e, t) {
  Ve("JSXExpressionContainer", e, t);
}
function T0t(e, t) {
  Ve("JSXSpreadChild", e, t);
}
function S0t(e, t) {
  Ve("JSXIdentifier", e, t);
}
function x0t(e, t) {
  Ve("JSXMemberExpression", e, t);
}
function E0t(e, t) {
  Ve("JSXNamespacedName", e, t);
}
function P0t(e, t) {
  Ve("JSXOpeningElement", e, t);
}
function w0t(e, t) {
  Ve("JSXSpreadAttribute", e, t);
}
function A0t(e, t) {
  Ve("JSXText", e, t);
}
function C0t(e, t) {
  Ve("JSXFragment", e, t);
}
function _0t(e, t) {
  Ve("JSXOpeningFragment", e, t);
}
function I0t(e, t) {
  Ve("JSXClosingFragment", e, t);
}
function k0t(e, t) {
  Ve("Noop", e, t);
}
function O0t(e, t) {
  Ve("Placeholder", e, t);
}
function N0t(e, t) {
  Ve("V8IntrinsicIdentifier", e, t);
}
function D0t(e, t) {
  Ve("ArgumentPlaceholder", e, t);
}
function L0t(e, t) {
  Ve("BindExpression", e, t);
}
function M0t(e, t) {
  Ve("ImportAttribute", e, t);
}
function R0t(e, t) {
  Ve("Decorator", e, t);
}
function B0t(e, t) {
  Ve("DoExpression", e, t);
}
function F0t(e, t) {
  Ve("ExportDefaultSpecifier", e, t);
}
function j0t(e, t) {
  Ve("RecordExpression", e, t);
}
function $0t(e, t) {
  Ve("TupleExpression", e, t);
}
function U0t(e, t) {
  Ve("DecimalLiteral", e, t);
}
function q0t(e, t) {
  Ve("ModuleExpression", e, t);
}
function V0t(e, t) {
  Ve("TopicReference", e, t);
}
function W0t(e, t) {
  Ve("PipelineTopicExpression", e, t);
}
function H0t(e, t) {
  Ve("PipelineBareFunction", e, t);
}
function K0t(e, t) {
  Ve("PipelinePrimaryTopicReference", e, t);
}
function z0t(e, t) {
  Ve("TSParameterProperty", e, t);
}
function G0t(e, t) {
  Ve("TSDeclareFunction", e, t);
}
function Y0t(e, t) {
  Ve("TSDeclareMethod", e, t);
}
function X0t(e, t) {
  Ve("TSQualifiedName", e, t);
}
function J0t(e, t) {
  Ve("TSCallSignatureDeclaration", e, t);
}
function Q0t(e, t) {
  Ve("TSConstructSignatureDeclaration", e, t);
}
function Z0t(e, t) {
  Ve("TSPropertySignature", e, t);
}
function evt(e, t) {
  Ve("TSMethodSignature", e, t);
}
function tvt(e, t) {
  Ve("TSIndexSignature", e, t);
}
function rvt(e, t) {
  Ve("TSAnyKeyword", e, t);
}
function ivt(e, t) {
  Ve("TSBooleanKeyword", e, t);
}
function nvt(e, t) {
  Ve("TSBigIntKeyword", e, t);
}
function svt(e, t) {
  Ve("TSIntrinsicKeyword", e, t);
}
function avt(e, t) {
  Ve("TSNeverKeyword", e, t);
}
function ovt(e, t) {
  Ve("TSNullKeyword", e, t);
}
function lvt(e, t) {
  Ve("TSNumberKeyword", e, t);
}
function uvt(e, t) {
  Ve("TSObjectKeyword", e, t);
}
function cvt(e, t) {
  Ve("TSStringKeyword", e, t);
}
function pvt(e, t) {
  Ve("TSSymbolKeyword", e, t);
}
function fvt(e, t) {
  Ve("TSUndefinedKeyword", e, t);
}
function hvt(e, t) {
  Ve("TSUnknownKeyword", e, t);
}
function dvt(e, t) {
  Ve("TSVoidKeyword", e, t);
}
function mvt(e, t) {
  Ve("TSThisType", e, t);
}
function yvt(e, t) {
  Ve("TSFunctionType", e, t);
}
function gvt(e, t) {
  Ve("TSConstructorType", e, t);
}
function bvt(e, t) {
  Ve("TSTypeReference", e, t);
}
function vvt(e, t) {
  Ve("TSTypePredicate", e, t);
}
function Tvt(e, t) {
  Ve("TSTypeQuery", e, t);
}
function Svt(e, t) {
  Ve("TSTypeLiteral", e, t);
}
function xvt(e, t) {
  Ve("TSArrayType", e, t);
}
function Evt(e, t) {
  Ve("TSTupleType", e, t);
}
function Pvt(e, t) {
  Ve("TSOptionalType", e, t);
}
function wvt(e, t) {
  Ve("TSRestType", e, t);
}
function Avt(e, t) {
  Ve("TSNamedTupleMember", e, t);
}
function Cvt(e, t) {
  Ve("TSUnionType", e, t);
}
function _vt(e, t) {
  Ve("TSIntersectionType", e, t);
}
function Ivt(e, t) {
  Ve("TSConditionalType", e, t);
}
function kvt(e, t) {
  Ve("TSInferType", e, t);
}
function Ovt(e, t) {
  Ve("TSParenthesizedType", e, t);
}
function Nvt(e, t) {
  Ve("TSTypeOperator", e, t);
}
function Dvt(e, t) {
  Ve("TSIndexedAccessType", e, t);
}
function Lvt(e, t) {
  Ve("TSMappedType", e, t);
}
function Mvt(e, t) {
  Ve("TSLiteralType", e, t);
}
function Rvt(e, t) {
  Ve("TSExpressionWithTypeArguments", e, t);
}
function Bvt(e, t) {
  Ve("TSInterfaceDeclaration", e, t);
}
function Fvt(e, t) {
  Ve("TSInterfaceBody", e, t);
}
function jvt(e, t) {
  Ve("TSTypeAliasDeclaration", e, t);
}
function $vt(e, t) {
  Ve("TSInstantiationExpression", e, t);
}
function Uvt(e, t) {
  Ve("TSAsExpression", e, t);
}
function qvt(e, t) {
  Ve("TSSatisfiesExpression", e, t);
}
function Vvt(e, t) {
  Ve("TSTypeAssertion", e, t);
}
function Wvt(e, t) {
  Ve("TSEnumDeclaration", e, t);
}
function Hvt(e, t) {
  Ve("TSEnumMember", e, t);
}
function Kvt(e, t) {
  Ve("TSModuleDeclaration", e, t);
}
function zvt(e, t) {
  Ve("TSModuleBlock", e, t);
}
function Gvt(e, t) {
  Ve("TSImportType", e, t);
}
function Yvt(e, t) {
  Ve("TSImportEqualsDeclaration", e, t);
}
function Xvt(e, t) {
  Ve("TSExternalModuleReference", e, t);
}
function Jvt(e, t) {
  Ve("TSNonNullExpression", e, t);
}
function Qvt(e, t) {
  Ve("TSExportAssignment", e, t);
}
function Zvt(e, t) {
  Ve("TSNamespaceExportDeclaration", e, t);
}
function eTt(e, t) {
  Ve("TSTypeAnnotation", e, t);
}
function tTt(e, t) {
  Ve("TSTypeParameterInstantiation", e, t);
}
function rTt(e, t) {
  Ve("TSTypeParameterDeclaration", e, t);
}
function iTt(e, t) {
  Ve("TSTypeParameter", e, t);
}
function nTt(e, t) {
  Ve("Standardized", e, t);
}
function sTt(e, t) {
  Ve("Expression", e, t);
}
function aTt(e, t) {
  Ve("Binary", e, t);
}
function oTt(e, t) {
  Ve("Scopable", e, t);
}
function lTt(e, t) {
  Ve("BlockParent", e, t);
}
function uTt(e, t) {
  Ve("Block", e, t);
}
function cTt(e, t) {
  Ve("Statement", e, t);
}
function pTt(e, t) {
  Ve("Terminatorless", e, t);
}
function fTt(e, t) {
  Ve("CompletionStatement", e, t);
}
function hTt(e, t) {
  Ve("Conditional", e, t);
}
function dTt(e, t) {
  Ve("Loop", e, t);
}
function mTt(e, t) {
  Ve("While", e, t);
}
function yTt(e, t) {
  Ve("ExpressionWrapper", e, t);
}
function gTt(e, t) {
  Ve("For", e, t);
}
function bTt(e, t) {
  Ve("ForXStatement", e, t);
}
function vTt(e, t) {
  Ve("Function", e, t);
}
function TTt(e, t) {
  Ve("FunctionParent", e, t);
}
function STt(e, t) {
  Ve("Pureish", e, t);
}
function xTt(e, t) {
  Ve("Declaration", e, t);
}
function ETt(e, t) {
  Ve("PatternLike", e, t);
}
function PTt(e, t) {
  Ve("LVal", e, t);
}
function wTt(e, t) {
  Ve("TSEntityName", e, t);
}
function ATt(e, t) {
  Ve("Literal", e, t);
}
function CTt(e, t) {
  Ve("Immutable", e, t);
}
function _Tt(e, t) {
  Ve("UserWhitespacable", e, t);
}
function ITt(e, t) {
  Ve("Method", e, t);
}
function kTt(e, t) {
  Ve("ObjectMember", e, t);
}
function OTt(e, t) {
  Ve("Property", e, t);
}
function NTt(e, t) {
  Ve("UnaryLike", e, t);
}
function DTt(e, t) {
  Ve("Pattern", e, t);
}
function LTt(e, t) {
  Ve("Class", e, t);
}
function MTt(e, t) {
  Ve("ImportOrExportDeclaration", e, t);
}
function RTt(e, t) {
  Ve("ExportDeclaration", e, t);
}
function BTt(e, t) {
  Ve("ModuleSpecifier", e, t);
}
function FTt(e, t) {
  Ve("Accessor", e, t);
}
function jTt(e, t) {
  Ve("Private", e, t);
}
function $Tt(e, t) {
  Ve("Flow", e, t);
}
function UTt(e, t) {
  Ve("FlowType", e, t);
}
function qTt(e, t) {
  Ve("FlowBaseAnnotation", e, t);
}
function VTt(e, t) {
  Ve("FlowDeclaration", e, t);
}
function WTt(e, t) {
  Ve("FlowPredicate", e, t);
}
function HTt(e, t) {
  Ve("EnumBody", e, t);
}
function KTt(e, t) {
  Ve("EnumMember", e, t);
}
function zTt(e, t) {
  Ve("JSX", e, t);
}
function GTt(e, t) {
  Ve("Miscellaneous", e, t);
}
function YTt(e, t) {
  Ve("TypeScript", e, t);
}
function XTt(e, t) {
  Ve("TSTypeElement", e, t);
}
function JTt(e, t) {
  Ve("TSType", e, t);
}
function QTt(e, t) {
  Ve("TSBaseType", e, t);
}
function ZTt(e, t) {
  (0, tS.default)("assertNumberLiteral", "assertNumericLiteral"), Ve("NumberLiteral", e, t);
}
function eSt(e, t) {
  (0, tS.default)("assertRegexLiteral", "assertRegExpLiteral"), Ve("RegexLiteral", e, t);
}
function tSt(e, t) {
  (0, tS.default)("assertRestProperty", "assertRestElement"), Ve("RestProperty", e, t);
}
function rSt(e, t) {
  (0, tS.default)("assertSpreadProperty", "assertSpreadElement"), Ve("SpreadProperty", e, t);
}
function iSt(e, t) {
  (0, tS.default)("assertModuleDeclaration", "assertImportOrExportDeclaration"), Ve("ModuleDeclaration", e, t);
}
var N_ = {};
Object.defineProperty(N_, "__esModule", {
  value: !0
});
N_.default = void 0;
var xc = we;
N_.default = nSt;
function nSt(e) {
  switch (e) {
    case "string":
      return (0, xc.stringTypeAnnotation)();
    case "number":
      return (0, xc.numberTypeAnnotation)();
    case "undefined":
      return (0, xc.voidTypeAnnotation)();
    case "boolean":
      return (0, xc.booleanTypeAnnotation)();
    case "function":
      return (0, xc.genericTypeAnnotation)((0, xc.identifier)("Function"));
    case "object":
      return (0, xc.genericTypeAnnotation)((0, xc.identifier)("Object"));
    case "symbol":
      return (0, xc.genericTypeAnnotation)((0, xc.identifier)("Symbol"));
    case "bigint":
      return (0, xc.anyTypeAnnotation)();
  }
  throw new Error("Invalid typeof value: " + e);
}
var D9 = {}, D_ = {};
Object.defineProperty(D_, "__esModule", {
  value: !0
});
D_.default = bde;
var E0 = Oe;
function gde(e) {
  return (0, E0.isIdentifier)(e) ? e.name : "".concat(e.id.name, ".").concat(gde(e.qualification));
}
function bde(e) {
  const t = Array.from(e), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Set(), s = [];
  for (let a = 0; a < t.length; a++) {
    const o = t[a];
    if (o && !s.includes(o)) {
      if ((0, E0.isAnyTypeAnnotation)(o))
        return [o];
      if ((0, E0.isFlowBaseAnnotation)(o)) {
        i.set(o.type, o);
        continue;
      }
      if ((0, E0.isUnionTypeAnnotation)(o)) {
        n.has(o.types) || (t.push(...o.types), n.add(o.types));
        continue;
      }
      if ((0, E0.isGenericTypeAnnotation)(o)) {
        const l = gde(o.id);
        if (r.has(l)) {
          let u = r.get(l);
          u.typeParameters ? o.typeParameters && (u.typeParameters.params.push(...o.typeParameters.params), u.typeParameters.params = bde(u.typeParameters.params)) : u = o.typeParameters;
        } else
          r.set(l, o);
        continue;
      }
      s.push(o);
    }
  }
  for (const [, a] of i)
    s.push(a);
  for (const [, a] of r)
    s.push(a);
  return s;
}
Object.defineProperty(D9, "__esModule", {
  value: !0
});
D9.default = oSt;
var sSt = we, aSt = D_;
function oSt(e) {
  const t = (0, aSt.default)(e);
  return t.length === 1 ? t[0] : (0, sSt.unionTypeAnnotation)(t);
}
var L9 = {}, M9 = {};
Object.defineProperty(M9, "__esModule", {
  value: !0
});
M9.default = Tde;
var P0 = Oe;
function vde(e) {
  return (0, P0.isIdentifier)(e) ? e.name : "".concat(e.right.name, ".").concat(vde(e.left));
}
function Tde(e) {
  const t = Array.from(e), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Set(), s = [];
  for (let a = 0; a < t.length; a++) {
    const o = t[a];
    if (o && !s.includes(o)) {
      if ((0, P0.isTSAnyKeyword)(o))
        return [o];
      if ((0, P0.isTSBaseType)(o)) {
        i.set(o.type, o);
        continue;
      }
      if ((0, P0.isTSUnionType)(o)) {
        n.has(o.types) || (t.push(...o.types), n.add(o.types));
        continue;
      }
      if ((0, P0.isTSTypeReference)(o) && o.typeParameters) {
        const l = vde(o.typeName);
        if (r.has(l)) {
          let u = r.get(l);
          u.typeParameters ? o.typeParameters && (u.typeParameters.params.push(...o.typeParameters.params), u.typeParameters.params = Tde(u.typeParameters.params)) : u = o.typeParameters;
        } else
          r.set(l, o);
        continue;
      }
      s.push(o);
    }
  }
  for (const [, a] of i)
    s.push(a);
  for (const [, a] of r)
    s.push(a);
  return s;
}
Object.defineProperty(L9, "__esModule", {
  value: !0
});
L9.default = pSt;
var lSt = we, uSt = M9, cSt = Oe;
function pSt(e) {
  const t = e.map((i) => (0, cSt.isTSTypeAnnotation)(i) ? i.typeAnnotation : i), r = (0, uSt.default)(t);
  return r.length === 1 ? r[0] : (0, lSt.tsUnionType)(r);
}
var Sde = {};
(function(e) {
  Object.defineProperty(e, "__esModule", {
    value: !0
  }), Object.defineProperty(e, "AnyTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.anyTypeAnnotation;
    }
  }), Object.defineProperty(e, "ArgumentPlaceholder", {
    enumerable: !0,
    get: function() {
      return t.argumentPlaceholder;
    }
  }), Object.defineProperty(e, "ArrayExpression", {
    enumerable: !0,
    get: function() {
      return t.arrayExpression;
    }
  }), Object.defineProperty(e, "ArrayPattern", {
    enumerable: !0,
    get: function() {
      return t.arrayPattern;
    }
  }), Object.defineProperty(e, "ArrayTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.arrayTypeAnnotation;
    }
  }), Object.defineProperty(e, "ArrowFunctionExpression", {
    enumerable: !0,
    get: function() {
      return t.arrowFunctionExpression;
    }
  }), Object.defineProperty(e, "AssignmentExpression", {
    enumerable: !0,
    get: function() {
      return t.assignmentExpression;
    }
  }), Object.defineProperty(e, "AssignmentPattern", {
    enumerable: !0,
    get: function() {
      return t.assignmentPattern;
    }
  }), Object.defineProperty(e, "AwaitExpression", {
    enumerable: !0,
    get: function() {
      return t.awaitExpression;
    }
  }), Object.defineProperty(e, "BigIntLiteral", {
    enumerable: !0,
    get: function() {
      return t.bigIntLiteral;
    }
  }), Object.defineProperty(e, "BinaryExpression", {
    enumerable: !0,
    get: function() {
      return t.binaryExpression;
    }
  }), Object.defineProperty(e, "BindExpression", {
    enumerable: !0,
    get: function() {
      return t.bindExpression;
    }
  }), Object.defineProperty(e, "BlockStatement", {
    enumerable: !0,
    get: function() {
      return t.blockStatement;
    }
  }), Object.defineProperty(e, "BooleanLiteral", {
    enumerable: !0,
    get: function() {
      return t.booleanLiteral;
    }
  }), Object.defineProperty(e, "BooleanLiteralTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.booleanLiteralTypeAnnotation;
    }
  }), Object.defineProperty(e, "BooleanTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.booleanTypeAnnotation;
    }
  }), Object.defineProperty(e, "BreakStatement", {
    enumerable: !0,
    get: function() {
      return t.breakStatement;
    }
  }), Object.defineProperty(e, "CallExpression", {
    enumerable: !0,
    get: function() {
      return t.callExpression;
    }
  }), Object.defineProperty(e, "CatchClause", {
    enumerable: !0,
    get: function() {
      return t.catchClause;
    }
  }), Object.defineProperty(e, "ClassAccessorProperty", {
    enumerable: !0,
    get: function() {
      return t.classAccessorProperty;
    }
  }), Object.defineProperty(e, "ClassBody", {
    enumerable: !0,
    get: function() {
      return t.classBody;
    }
  }), Object.defineProperty(e, "ClassDeclaration", {
    enumerable: !0,
    get: function() {
      return t.classDeclaration;
    }
  }), Object.defineProperty(e, "ClassExpression", {
    enumerable: !0,
    get: function() {
      return t.classExpression;
    }
  }), Object.defineProperty(e, "ClassImplements", {
    enumerable: !0,
    get: function() {
      return t.classImplements;
    }
  }), Object.defineProperty(e, "ClassMethod", {
    enumerable: !0,
    get: function() {
      return t.classMethod;
    }
  }), Object.defineProperty(e, "ClassPrivateMethod", {
    enumerable: !0,
    get: function() {
      return t.classPrivateMethod;
    }
  }), Object.defineProperty(e, "ClassPrivateProperty", {
    enumerable: !0,
    get: function() {
      return t.classPrivateProperty;
    }
  }), Object.defineProperty(e, "ClassProperty", {
    enumerable: !0,
    get: function() {
      return t.classProperty;
    }
  }), Object.defineProperty(e, "ConditionalExpression", {
    enumerable: !0,
    get: function() {
      return t.conditionalExpression;
    }
  }), Object.defineProperty(e, "ContinueStatement", {
    enumerable: !0,
    get: function() {
      return t.continueStatement;
    }
  }), Object.defineProperty(e, "DebuggerStatement", {
    enumerable: !0,
    get: function() {
      return t.debuggerStatement;
    }
  }), Object.defineProperty(e, "DecimalLiteral", {
    enumerable: !0,
    get: function() {
      return t.decimalLiteral;
    }
  }), Object.defineProperty(e, "DeclareClass", {
    enumerable: !0,
    get: function() {
      return t.declareClass;
    }
  }), Object.defineProperty(e, "DeclareExportAllDeclaration", {
    enumerable: !0,
    get: function() {
      return t.declareExportAllDeclaration;
    }
  }), Object.defineProperty(e, "DeclareExportDeclaration", {
    enumerable: !0,
    get: function() {
      return t.declareExportDeclaration;
    }
  }), Object.defineProperty(e, "DeclareFunction", {
    enumerable: !0,
    get: function() {
      return t.declareFunction;
    }
  }), Object.defineProperty(e, "DeclareInterface", {
    enumerable: !0,
    get: function() {
      return t.declareInterface;
    }
  }), Object.defineProperty(e, "DeclareModule", {
    enumerable: !0,
    get: function() {
      return t.declareModule;
    }
  }), Object.defineProperty(e, "DeclareModuleExports", {
    enumerable: !0,
    get: function() {
      return t.declareModuleExports;
    }
  }), Object.defineProperty(e, "DeclareOpaqueType", {
    enumerable: !0,
    get: function() {
      return t.declareOpaqueType;
    }
  }), Object.defineProperty(e, "DeclareTypeAlias", {
    enumerable: !0,
    get: function() {
      return t.declareTypeAlias;
    }
  }), Object.defineProperty(e, "DeclareVariable", {
    enumerable: !0,
    get: function() {
      return t.declareVariable;
    }
  }), Object.defineProperty(e, "DeclaredPredicate", {
    enumerable: !0,
    get: function() {
      return t.declaredPredicate;
    }
  }), Object.defineProperty(e, "Decorator", {
    enumerable: !0,
    get: function() {
      return t.decorator;
    }
  }), Object.defineProperty(e, "Directive", {
    enumerable: !0,
    get: function() {
      return t.directive;
    }
  }), Object.defineProperty(e, "DirectiveLiteral", {
    enumerable: !0,
    get: function() {
      return t.directiveLiteral;
    }
  }), Object.defineProperty(e, "DoExpression", {
    enumerable: !0,
    get: function() {
      return t.doExpression;
    }
  }), Object.defineProperty(e, "DoWhileStatement", {
    enumerable: !0,
    get: function() {
      return t.doWhileStatement;
    }
  }), Object.defineProperty(e, "EmptyStatement", {
    enumerable: !0,
    get: function() {
      return t.emptyStatement;
    }
  }), Object.defineProperty(e, "EmptyTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.emptyTypeAnnotation;
    }
  }), Object.defineProperty(e, "EnumBooleanBody", {
    enumerable: !0,
    get: function() {
      return t.enumBooleanBody;
    }
  }), Object.defineProperty(e, "EnumBooleanMember", {
    enumerable: !0,
    get: function() {
      return t.enumBooleanMember;
    }
  }), Object.defineProperty(e, "EnumDeclaration", {
    enumerable: !0,
    get: function() {
      return t.enumDeclaration;
    }
  }), Object.defineProperty(e, "EnumDefaultedMember", {
    enumerable: !0,
    get: function() {
      return t.enumDefaultedMember;
    }
  }), Object.defineProperty(e, "EnumNumberBody", {
    enumerable: !0,
    get: function() {
      return t.enumNumberBody;
    }
  }), Object.defineProperty(e, "EnumNumberMember", {
    enumerable: !0,
    get: function() {
      return t.enumNumberMember;
    }
  }), Object.defineProperty(e, "EnumStringBody", {
    enumerable: !0,
    get: function() {
      return t.enumStringBody;
    }
  }), Object.defineProperty(e, "EnumStringMember", {
    enumerable: !0,
    get: function() {
      return t.enumStringMember;
    }
  }), Object.defineProperty(e, "EnumSymbolBody", {
    enumerable: !0,
    get: function() {
      return t.enumSymbolBody;
    }
  }), Object.defineProperty(e, "ExistsTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.existsTypeAnnotation;
    }
  }), Object.defineProperty(e, "ExportAllDeclaration", {
    enumerable: !0,
    get: function() {
      return t.exportAllDeclaration;
    }
  }), Object.defineProperty(e, "ExportDefaultDeclaration", {
    enumerable: !0,
    get: function() {
      return t.exportDefaultDeclaration;
    }
  }), Object.defineProperty(e, "ExportDefaultSpecifier", {
    enumerable: !0,
    get: function() {
      return t.exportDefaultSpecifier;
    }
  }), Object.defineProperty(e, "ExportNamedDeclaration", {
    enumerable: !0,
    get: function() {
      return t.exportNamedDeclaration;
    }
  }), Object.defineProperty(e, "ExportNamespaceSpecifier", {
    enumerable: !0,
    get: function() {
      return t.exportNamespaceSpecifier;
    }
  }), Object.defineProperty(e, "ExportSpecifier", {
    enumerable: !0,
    get: function() {
      return t.exportSpecifier;
    }
  }), Object.defineProperty(e, "ExpressionStatement", {
    enumerable: !0,
    get: function() {
      return t.expressionStatement;
    }
  }), Object.defineProperty(e, "File", {
    enumerable: !0,
    get: function() {
      return t.file;
    }
  }), Object.defineProperty(e, "ForInStatement", {
    enumerable: !0,
    get: function() {
      return t.forInStatement;
    }
  }), Object.defineProperty(e, "ForOfStatement", {
    enumerable: !0,
    get: function() {
      return t.forOfStatement;
    }
  }), Object.defineProperty(e, "ForStatement", {
    enumerable: !0,
    get: function() {
      return t.forStatement;
    }
  }), Object.defineProperty(e, "FunctionDeclaration", {
    enumerable: !0,
    get: function() {
      return t.functionDeclaration;
    }
  }), Object.defineProperty(e, "FunctionExpression", {
    enumerable: !0,
    get: function() {
      return t.functionExpression;
    }
  }), Object.defineProperty(e, "FunctionTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.functionTypeAnnotation;
    }
  }), Object.defineProperty(e, "FunctionTypeParam", {
    enumerable: !0,
    get: function() {
      return t.functionTypeParam;
    }
  }), Object.defineProperty(e, "GenericTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.genericTypeAnnotation;
    }
  }), Object.defineProperty(e, "Identifier", {
    enumerable: !0,
    get: function() {
      return t.identifier;
    }
  }), Object.defineProperty(e, "IfStatement", {
    enumerable: !0,
    get: function() {
      return t.ifStatement;
    }
  }), Object.defineProperty(e, "Import", {
    enumerable: !0,
    get: function() {
      return t.import;
    }
  }), Object.defineProperty(e, "ImportAttribute", {
    enumerable: !0,
    get: function() {
      return t.importAttribute;
    }
  }), Object.defineProperty(e, "ImportDeclaration", {
    enumerable: !0,
    get: function() {
      return t.importDeclaration;
    }
  }), Object.defineProperty(e, "ImportDefaultSpecifier", {
    enumerable: !0,
    get: function() {
      return t.importDefaultSpecifier;
    }
  }), Object.defineProperty(e, "ImportExpression", {
    enumerable: !0,
    get: function() {
      return t.importExpression;
    }
  }), Object.defineProperty(e, "ImportNamespaceSpecifier", {
    enumerable: !0,
    get: function() {
      return t.importNamespaceSpecifier;
    }
  }), Object.defineProperty(e, "ImportSpecifier", {
    enumerable: !0,
    get: function() {
      return t.importSpecifier;
    }
  }), Object.defineProperty(e, "IndexedAccessType", {
    enumerable: !0,
    get: function() {
      return t.indexedAccessType;
    }
  }), Object.defineProperty(e, "InferredPredicate", {
    enumerable: !0,
    get: function() {
      return t.inferredPredicate;
    }
  }), Object.defineProperty(e, "InterfaceDeclaration", {
    enumerable: !0,
    get: function() {
      return t.interfaceDeclaration;
    }
  }), Object.defineProperty(e, "InterfaceExtends", {
    enumerable: !0,
    get: function() {
      return t.interfaceExtends;
    }
  }), Object.defineProperty(e, "InterfaceTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.interfaceTypeAnnotation;
    }
  }), Object.defineProperty(e, "InterpreterDirective", {
    enumerable: !0,
    get: function() {
      return t.interpreterDirective;
    }
  }), Object.defineProperty(e, "IntersectionTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.intersectionTypeAnnotation;
    }
  }), Object.defineProperty(e, "JSXAttribute", {
    enumerable: !0,
    get: function() {
      return t.jsxAttribute;
    }
  }), Object.defineProperty(e, "JSXClosingElement", {
    enumerable: !0,
    get: function() {
      return t.jsxClosingElement;
    }
  }), Object.defineProperty(e, "JSXClosingFragment", {
    enumerable: !0,
    get: function() {
      return t.jsxClosingFragment;
    }
  }), Object.defineProperty(e, "JSXElement", {
    enumerable: !0,
    get: function() {
      return t.jsxElement;
    }
  }), Object.defineProperty(e, "JSXEmptyExpression", {
    enumerable: !0,
    get: function() {
      return t.jsxEmptyExpression;
    }
  }), Object.defineProperty(e, "JSXExpressionContainer", {
    enumerable: !0,
    get: function() {
      return t.jsxExpressionContainer;
    }
  }), Object.defineProperty(e, "JSXFragment", {
    enumerable: !0,
    get: function() {
      return t.jsxFragment;
    }
  }), Object.defineProperty(e, "JSXIdentifier", {
    enumerable: !0,
    get: function() {
      return t.jsxIdentifier;
    }
  }), Object.defineProperty(e, "JSXMemberExpression", {
    enumerable: !0,
    get: function() {
      return t.jsxMemberExpression;
    }
  }), Object.defineProperty(e, "JSXNamespacedName", {
    enumerable: !0,
    get: function() {
      return t.jsxNamespacedName;
    }
  }), Object.defineProperty(e, "JSXOpeningElement", {
    enumerable: !0,
    get: function() {
      return t.jsxOpeningElement;
    }
  }), Object.defineProperty(e, "JSXOpeningFragment", {
    enumerable: !0,
    get: function() {
      return t.jsxOpeningFragment;
    }
  }), Object.defineProperty(e, "JSXSpreadAttribute", {
    enumerable: !0,
    get: function() {
      return t.jsxSpreadAttribute;
    }
  }), Object.defineProperty(e, "JSXSpreadChild", {
    enumerable: !0,
    get: function() {
      return t.jsxSpreadChild;
    }
  }), Object.defineProperty(e, "JSXText", {
    enumerable: !0,
    get: function() {
      return t.jsxText;
    }
  }), Object.defineProperty(e, "LabeledStatement", {
    enumerable: !0,
    get: function() {
      return t.labeledStatement;
    }
  }), Object.defineProperty(e, "LogicalExpression", {
    enumerable: !0,
    get: function() {
      return t.logicalExpression;
    }
  }), Object.defineProperty(e, "MemberExpression", {
    enumerable: !0,
    get: function() {
      return t.memberExpression;
    }
  }), Object.defineProperty(e, "MetaProperty", {
    enumerable: !0,
    get: function() {
      return t.metaProperty;
    }
  }), Object.defineProperty(e, "MixedTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.mixedTypeAnnotation;
    }
  }), Object.defineProperty(e, "ModuleExpression", {
    enumerable: !0,
    get: function() {
      return t.moduleExpression;
    }
  }), Object.defineProperty(e, "NewExpression", {
    enumerable: !0,
    get: function() {
      return t.newExpression;
    }
  }), Object.defineProperty(e, "Noop", {
    enumerable: !0,
    get: function() {
      return t.noop;
    }
  }), Object.defineProperty(e, "NullLiteral", {
    enumerable: !0,
    get: function() {
      return t.nullLiteral;
    }
  }), Object.defineProperty(e, "NullLiteralTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.nullLiteralTypeAnnotation;
    }
  }), Object.defineProperty(e, "NullableTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.nullableTypeAnnotation;
    }
  }), Object.defineProperty(e, "NumberLiteral", {
    enumerable: !0,
    get: function() {
      return t.numberLiteral;
    }
  }), Object.defineProperty(e, "NumberLiteralTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.numberLiteralTypeAnnotation;
    }
  }), Object.defineProperty(e, "NumberTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.numberTypeAnnotation;
    }
  }), Object.defineProperty(e, "NumericLiteral", {
    enumerable: !0,
    get: function() {
      return t.numericLiteral;
    }
  }), Object.defineProperty(e, "ObjectExpression", {
    enumerable: !0,
    get: function() {
      return t.objectExpression;
    }
  }), Object.defineProperty(e, "ObjectMethod", {
    enumerable: !0,
    get: function() {
      return t.objectMethod;
    }
  }), Object.defineProperty(e, "ObjectPattern", {
    enumerable: !0,
    get: function() {
      return t.objectPattern;
    }
  }), Object.defineProperty(e, "ObjectProperty", {
    enumerable: !0,
    get: function() {
      return t.objectProperty;
    }
  }), Object.defineProperty(e, "ObjectTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.objectTypeAnnotation;
    }
  }), Object.defineProperty(e, "ObjectTypeCallProperty", {
    enumerable: !0,
    get: function() {
      return t.objectTypeCallProperty;
    }
  }), Object.defineProperty(e, "ObjectTypeIndexer", {
    enumerable: !0,
    get: function() {
      return t.objectTypeIndexer;
    }
  }), Object.defineProperty(e, "ObjectTypeInternalSlot", {
    enumerable: !0,
    get: function() {
      return t.objectTypeInternalSlot;
    }
  }), Object.defineProperty(e, "ObjectTypeProperty", {
    enumerable: !0,
    get: function() {
      return t.objectTypeProperty;
    }
  }), Object.defineProperty(e, "ObjectTypeSpreadProperty", {
    enumerable: !0,
    get: function() {
      return t.objectTypeSpreadProperty;
    }
  }), Object.defineProperty(e, "OpaqueType", {
    enumerable: !0,
    get: function() {
      return t.opaqueType;
    }
  }), Object.defineProperty(e, "OptionalCallExpression", {
    enumerable: !0,
    get: function() {
      return t.optionalCallExpression;
    }
  }), Object.defineProperty(e, "OptionalIndexedAccessType", {
    enumerable: !0,
    get: function() {
      return t.optionalIndexedAccessType;
    }
  }), Object.defineProperty(e, "OptionalMemberExpression", {
    enumerable: !0,
    get: function() {
      return t.optionalMemberExpression;
    }
  }), Object.defineProperty(e, "ParenthesizedExpression", {
    enumerable: !0,
    get: function() {
      return t.parenthesizedExpression;
    }
  }), Object.defineProperty(e, "PipelineBareFunction", {
    enumerable: !0,
    get: function() {
      return t.pipelineBareFunction;
    }
  }), Object.defineProperty(e, "PipelinePrimaryTopicReference", {
    enumerable: !0,
    get: function() {
      return t.pipelinePrimaryTopicReference;
    }
  }), Object.defineProperty(e, "PipelineTopicExpression", {
    enumerable: !0,
    get: function() {
      return t.pipelineTopicExpression;
    }
  }), Object.defineProperty(e, "Placeholder", {
    enumerable: !0,
    get: function() {
      return t.placeholder;
    }
  }), Object.defineProperty(e, "PrivateName", {
    enumerable: !0,
    get: function() {
      return t.privateName;
    }
  }), Object.defineProperty(e, "Program", {
    enumerable: !0,
    get: function() {
      return t.program;
    }
  }), Object.defineProperty(e, "QualifiedTypeIdentifier", {
    enumerable: !0,
    get: function() {
      return t.qualifiedTypeIdentifier;
    }
  }), Object.defineProperty(e, "RecordExpression", {
    enumerable: !0,
    get: function() {
      return t.recordExpression;
    }
  }), Object.defineProperty(e, "RegExpLiteral", {
    enumerable: !0,
    get: function() {
      return t.regExpLiteral;
    }
  }), Object.defineProperty(e, "RegexLiteral", {
    enumerable: !0,
    get: function() {
      return t.regexLiteral;
    }
  }), Object.defineProperty(e, "RestElement", {
    enumerable: !0,
    get: function() {
      return t.restElement;
    }
  }), Object.defineProperty(e, "RestProperty", {
    enumerable: !0,
    get: function() {
      return t.restProperty;
    }
  }), Object.defineProperty(e, "ReturnStatement", {
    enumerable: !0,
    get: function() {
      return t.returnStatement;
    }
  }), Object.defineProperty(e, "SequenceExpression", {
    enumerable: !0,
    get: function() {
      return t.sequenceExpression;
    }
  }), Object.defineProperty(e, "SpreadElement", {
    enumerable: !0,
    get: function() {
      return t.spreadElement;
    }
  }), Object.defineProperty(e, "SpreadProperty", {
    enumerable: !0,
    get: function() {
      return t.spreadProperty;
    }
  }), Object.defineProperty(e, "StaticBlock", {
    enumerable: !0,
    get: function() {
      return t.staticBlock;
    }
  }), Object.defineProperty(e, "StringLiteral", {
    enumerable: !0,
    get: function() {
      return t.stringLiteral;
    }
  }), Object.defineProperty(e, "StringLiteralTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.stringLiteralTypeAnnotation;
    }
  }), Object.defineProperty(e, "StringTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.stringTypeAnnotation;
    }
  }), Object.defineProperty(e, "Super", {
    enumerable: !0,
    get: function() {
      return t.super;
    }
  }), Object.defineProperty(e, "SwitchCase", {
    enumerable: !0,
    get: function() {
      return t.switchCase;
    }
  }), Object.defineProperty(e, "SwitchStatement", {
    enumerable: !0,
    get: function() {
      return t.switchStatement;
    }
  }), Object.defineProperty(e, "SymbolTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.symbolTypeAnnotation;
    }
  }), Object.defineProperty(e, "TSAnyKeyword", {
    enumerable: !0,
    get: function() {
      return t.tsAnyKeyword;
    }
  }), Object.defineProperty(e, "TSArrayType", {
    enumerable: !0,
    get: function() {
      return t.tsArrayType;
    }
  }), Object.defineProperty(e, "TSAsExpression", {
    enumerable: !0,
    get: function() {
      return t.tsAsExpression;
    }
  }), Object.defineProperty(e, "TSBigIntKeyword", {
    enumerable: !0,
    get: function() {
      return t.tsBigIntKeyword;
    }
  }), Object.defineProperty(e, "TSBooleanKeyword", {
    enumerable: !0,
    get: function() {
      return t.tsBooleanKeyword;
    }
  }), Object.defineProperty(e, "TSCallSignatureDeclaration", {
    enumerable: !0,
    get: function() {
      return t.tsCallSignatureDeclaration;
    }
  }), Object.defineProperty(e, "TSConditionalType", {
    enumerable: !0,
    get: function() {
      return t.tsConditionalType;
    }
  }), Object.defineProperty(e, "TSConstructSignatureDeclaration", {
    enumerable: !0,
    get: function() {
      return t.tsConstructSignatureDeclaration;
    }
  }), Object.defineProperty(e, "TSConstructorType", {
    enumerable: !0,
    get: function() {
      return t.tsConstructorType;
    }
  }), Object.defineProperty(e, "TSDeclareFunction", {
    enumerable: !0,
    get: function() {
      return t.tsDeclareFunction;
    }
  }), Object.defineProperty(e, "TSDeclareMethod", {
    enumerable: !0,
    get: function() {
      return t.tsDeclareMethod;
    }
  }), Object.defineProperty(e, "TSEnumDeclaration", {
    enumerable: !0,
    get: function() {
      return t.tsEnumDeclaration;
    }
  }), Object.defineProperty(e, "TSEnumMember", {
    enumerable: !0,
    get: function() {
      return t.tsEnumMember;
    }
  }), Object.defineProperty(e, "TSExportAssignment", {
    enumerable: !0,
    get: function() {
      return t.tsExportAssignment;
    }
  }), Object.defineProperty(e, "TSExpressionWithTypeArguments", {
    enumerable: !0,
    get: function() {
      return t.tsExpressionWithTypeArguments;
    }
  }), Object.defineProperty(e, "TSExternalModuleReference", {
    enumerable: !0,
    get: function() {
      return t.tsExternalModuleReference;
    }
  }), Object.defineProperty(e, "TSFunctionType", {
    enumerable: !0,
    get: function() {
      return t.tsFunctionType;
    }
  }), Object.defineProperty(e, "TSImportEqualsDeclaration", {
    enumerable: !0,
    get: function() {
      return t.tsImportEqualsDeclaration;
    }
  }), Object.defineProperty(e, "TSImportType", {
    enumerable: !0,
    get: function() {
      return t.tsImportType;
    }
  }), Object.defineProperty(e, "TSIndexSignature", {
    enumerable: !0,
    get: function() {
      return t.tsIndexSignature;
    }
  }), Object.defineProperty(e, "TSIndexedAccessType", {
    enumerable: !0,
    get: function() {
      return t.tsIndexedAccessType;
    }
  }), Object.defineProperty(e, "TSInferType", {
    enumerable: !0,
    get: function() {
      return t.tsInferType;
    }
  }), Object.defineProperty(e, "TSInstantiationExpression", {
    enumerable: !0,
    get: function() {
      return t.tsInstantiationExpression;
    }
  }), Object.defineProperty(e, "TSInterfaceBody", {
    enumerable: !0,
    get: function() {
      return t.tsInterfaceBody;
    }
  }), Object.defineProperty(e, "TSInterfaceDeclaration", {
    enumerable: !0,
    get: function() {
      return t.tsInterfaceDeclaration;
    }
  }), Object.defineProperty(e, "TSIntersectionType", {
    enumerable: !0,
    get: function() {
      return t.tsIntersectionType;
    }
  }), Object.defineProperty(e, "TSIntrinsicKeyword", {
    enumerable: !0,
    get: function() {
      return t.tsIntrinsicKeyword;
    }
  }), Object.defineProperty(e, "TSLiteralType", {
    enumerable: !0,
    get: function() {
      return t.tsLiteralType;
    }
  }), Object.defineProperty(e, "TSMappedType", {
    enumerable: !0,
    get: function() {
      return t.tsMappedType;
    }
  }), Object.defineProperty(e, "TSMethodSignature", {
    enumerable: !0,
    get: function() {
      return t.tsMethodSignature;
    }
  }), Object.defineProperty(e, "TSModuleBlock", {
    enumerable: !0,
    get: function() {
      return t.tsModuleBlock;
    }
  }), Object.defineProperty(e, "TSModuleDeclaration", {
    enumerable: !0,
    get: function() {
      return t.tsModuleDeclaration;
    }
  }), Object.defineProperty(e, "TSNamedTupleMember", {
    enumerable: !0,
    get: function() {
      return t.tsNamedTupleMember;
    }
  }), Object.defineProperty(e, "TSNamespaceExportDeclaration", {
    enumerable: !0,
    get: function() {
      return t.tsNamespaceExportDeclaration;
    }
  }), Object.defineProperty(e, "TSNeverKeyword", {
    enumerable: !0,
    get: function() {
      return t.tsNeverKeyword;
    }
  }), Object.defineProperty(e, "TSNonNullExpression", {
    enumerable: !0,
    get: function() {
      return t.tsNonNullExpression;
    }
  }), Object.defineProperty(e, "TSNullKeyword", {
    enumerable: !0,
    get: function() {
      return t.tsNullKeyword;
    }
  }), Object.defineProperty(e, "TSNumberKeyword", {
    enumerable: !0,
    get: function() {
      return t.tsNumberKeyword;
    }
  }), Object.defineProperty(e, "TSObjectKeyword", {
    enumerable: !0,
    get: function() {
      return t.tsObjectKeyword;
    }
  }), Object.defineProperty(e, "TSOptionalType", {
    enumerable: !0,
    get: function() {
      return t.tsOptionalType;
    }
  }), Object.defineProperty(e, "TSParameterProperty", {
    enumerable: !0,
    get: function() {
      return t.tsParameterProperty;
    }
  }), Object.defineProperty(e, "TSParenthesizedType", {
    enumerable: !0,
    get: function() {
      return t.tsParenthesizedType;
    }
  }), Object.defineProperty(e, "TSPropertySignature", {
    enumerable: !0,
    get: function() {
      return t.tsPropertySignature;
    }
  }), Object.defineProperty(e, "TSQualifiedName", {
    enumerable: !0,
    get: function() {
      return t.tsQualifiedName;
    }
  }), Object.defineProperty(e, "TSRestType", {
    enumerable: !0,
    get: function() {
      return t.tsRestType;
    }
  }), Object.defineProperty(e, "TSSatisfiesExpression", {
    enumerable: !0,
    get: function() {
      return t.tsSatisfiesExpression;
    }
  }), Object.defineProperty(e, "TSStringKeyword", {
    enumerable: !0,
    get: function() {
      return t.tsStringKeyword;
    }
  }), Object.defineProperty(e, "TSSymbolKeyword", {
    enumerable: !0,
    get: function() {
      return t.tsSymbolKeyword;
    }
  }), Object.defineProperty(e, "TSThisType", {
    enumerable: !0,
    get: function() {
      return t.tsThisType;
    }
  }), Object.defineProperty(e, "TSTupleType", {
    enumerable: !0,
    get: function() {
      return t.tsTupleType;
    }
  }), Object.defineProperty(e, "TSTypeAliasDeclaration", {
    enumerable: !0,
    get: function() {
      return t.tsTypeAliasDeclaration;
    }
  }), Object.defineProperty(e, "TSTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.tsTypeAnnotation;
    }
  }), Object.defineProperty(e, "TSTypeAssertion", {
    enumerable: !0,
    get: function() {
      return t.tsTypeAssertion;
    }
  }), Object.defineProperty(e, "TSTypeLiteral", {
    enumerable: !0,
    get: function() {
      return t.tsTypeLiteral;
    }
  }), Object.defineProperty(e, "TSTypeOperator", {
    enumerable: !0,
    get: function() {
      return t.tsTypeOperator;
    }
  }), Object.defineProperty(e, "TSTypeParameter", {
    enumerable: !0,
    get: function() {
      return t.tsTypeParameter;
    }
  }), Object.defineProperty(e, "TSTypeParameterDeclaration", {
    enumerable: !0,
    get: function() {
      return t.tsTypeParameterDeclaration;
    }
  }), Object.defineProperty(e, "TSTypeParameterInstantiation", {
    enumerable: !0,
    get: function() {
      return t.tsTypeParameterInstantiation;
    }
  }), Object.defineProperty(e, "TSTypePredicate", {
    enumerable: !0,
    get: function() {
      return t.tsTypePredicate;
    }
  }), Object.defineProperty(e, "TSTypeQuery", {
    enumerable: !0,
    get: function() {
      return t.tsTypeQuery;
    }
  }), Object.defineProperty(e, "TSTypeReference", {
    enumerable: !0,
    get: function() {
      return t.tsTypeReference;
    }
  }), Object.defineProperty(e, "TSUndefinedKeyword", {
    enumerable: !0,
    get: function() {
      return t.tsUndefinedKeyword;
    }
  }), Object.defineProperty(e, "TSUnionType", {
    enumerable: !0,
    get: function() {
      return t.tsUnionType;
    }
  }), Object.defineProperty(e, "TSUnknownKeyword", {
    enumerable: !0,
    get: function() {
      return t.tsUnknownKeyword;
    }
  }), Object.defineProperty(e, "TSVoidKeyword", {
    enumerable: !0,
    get: function() {
      return t.tsVoidKeyword;
    }
  }), Object.defineProperty(e, "TaggedTemplateExpression", {
    enumerable: !0,
    get: function() {
      return t.taggedTemplateExpression;
    }
  }), Object.defineProperty(e, "TemplateElement", {
    enumerable: !0,
    get: function() {
      return t.templateElement;
    }
  }), Object.defineProperty(e, "TemplateLiteral", {
    enumerable: !0,
    get: function() {
      return t.templateLiteral;
    }
  }), Object.defineProperty(e, "ThisExpression", {
    enumerable: !0,
    get: function() {
      return t.thisExpression;
    }
  }), Object.defineProperty(e, "ThisTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.thisTypeAnnotation;
    }
  }), Object.defineProperty(e, "ThrowStatement", {
    enumerable: !0,
    get: function() {
      return t.throwStatement;
    }
  }), Object.defineProperty(e, "TopicReference", {
    enumerable: !0,
    get: function() {
      return t.topicReference;
    }
  }), Object.defineProperty(e, "TryStatement", {
    enumerable: !0,
    get: function() {
      return t.tryStatement;
    }
  }), Object.defineProperty(e, "TupleExpression", {
    enumerable: !0,
    get: function() {
      return t.tupleExpression;
    }
  }), Object.defineProperty(e, "TupleTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.tupleTypeAnnotation;
    }
  }), Object.defineProperty(e, "TypeAlias", {
    enumerable: !0,
    get: function() {
      return t.typeAlias;
    }
  }), Object.defineProperty(e, "TypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.typeAnnotation;
    }
  }), Object.defineProperty(e, "TypeCastExpression", {
    enumerable: !0,
    get: function() {
      return t.typeCastExpression;
    }
  }), Object.defineProperty(e, "TypeParameter", {
    enumerable: !0,
    get: function() {
      return t.typeParameter;
    }
  }), Object.defineProperty(e, "TypeParameterDeclaration", {
    enumerable: !0,
    get: function() {
      return t.typeParameterDeclaration;
    }
  }), Object.defineProperty(e, "TypeParameterInstantiation", {
    enumerable: !0,
    get: function() {
      return t.typeParameterInstantiation;
    }
  }), Object.defineProperty(e, "TypeofTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.typeofTypeAnnotation;
    }
  }), Object.defineProperty(e, "UnaryExpression", {
    enumerable: !0,
    get: function() {
      return t.unaryExpression;
    }
  }), Object.defineProperty(e, "UnionTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.unionTypeAnnotation;
    }
  }), Object.defineProperty(e, "UpdateExpression", {
    enumerable: !0,
    get: function() {
      return t.updateExpression;
    }
  }), Object.defineProperty(e, "V8IntrinsicIdentifier", {
    enumerable: !0,
    get: function() {
      return t.v8IntrinsicIdentifier;
    }
  }), Object.defineProperty(e, "VariableDeclaration", {
    enumerable: !0,
    get: function() {
      return t.variableDeclaration;
    }
  }), Object.defineProperty(e, "VariableDeclarator", {
    enumerable: !0,
    get: function() {
      return t.variableDeclarator;
    }
  }), Object.defineProperty(e, "Variance", {
    enumerable: !0,
    get: function() {
      return t.variance;
    }
  }), Object.defineProperty(e, "VoidTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return t.voidTypeAnnotation;
    }
  }), Object.defineProperty(e, "WhileStatement", {
    enumerable: !0,
    get: function() {
      return t.whileStatement;
    }
  }), Object.defineProperty(e, "WithStatement", {
    enumerable: !0,
    get: function() {
      return t.withStatement;
    }
  }), Object.defineProperty(e, "YieldExpression", {
    enumerable: !0,
    get: function() {
      return t.yieldExpression;
    }
  });
  var t = we;
})(Sde);
var L_ = {};
Object.defineProperty(L_, "__esModule", {
  value: !0
});
L_.buildUndefinedNode = fSt;
var cX = we;
function fSt() {
  return (0, cX.unaryExpression)("void", (0, cX.numericLiteral)(0), !0);
}
var Bf = {};
Object.defineProperty(Bf, "__esModule", {
  value: !0
});
Bf.default = hSt;
var pX = Hc(), fX = Oe;
const {
  hasOwn: zc
} = {
  hasOwn: Function.call.bind(Object.prototype.hasOwnProperty)
};
function hX(e, t, r, i) {
  return e && typeof e.type == "string" ? xde(e, t, r, i) : e;
}
function MR(e, t, r, i) {
  return Array.isArray(e) ? e.map((n) => hX(n, t, r, i)) : hX(e, t, r, i);
}
function hSt(e, t = !0, r = !1) {
  return xde(e, t, r, /* @__PURE__ */ new Map());
}
function xde(e, t = !0, r = !1, i) {
  if (!e)
    return e;
  const {
    type: n
  } = e, s = {
    type: e.type
  };
  if ((0, fX.isIdentifier)(e))
    s.name = e.name, zc(e, "optional") && typeof e.optional == "boolean" && (s.optional = e.optional), zc(e, "typeAnnotation") && (s.typeAnnotation = t ? MR(e.typeAnnotation, !0, r, i) : e.typeAnnotation), zc(e, "decorators") && (s.decorators = t ? MR(e.decorators, !0, r, i) : e.decorators);
  else if (zc(pX.NODE_FIELDS, n))
    for (const a of Object.keys(pX.NODE_FIELDS[n]))
      zc(e, a) && (t ? s[a] = (0, fX.isFile)(e) && a === "comments" ? n1(e.comments, t, r, i) : MR(e[a], !0, r, i) : s[a] = e[a]);
  else
    throw new Error('Unknown node type: "'.concat(n, '"'));
  return zc(e, "loc") && (r ? s.loc = null : s.loc = e.loc), zc(e, "leadingComments") && (s.leadingComments = n1(e.leadingComments, t, r, i)), zc(e, "innerComments") && (s.innerComments = n1(e.innerComments, t, r, i)), zc(e, "trailingComments") && (s.trailingComments = n1(e.trailingComments, t, r, i)), zc(e, "extra") && (s.extra = Object.assign({}, e.extra)), s;
}
function n1(e, t, r, i) {
  return !e || !t ? e : e.map((n) => {
    const s = i.get(n);
    if (s)
      return s;
    const {
      type: a,
      value: o,
      loc: l
    } = n, u = {
      type: a,
      value: o,
      loc: l
    };
    return r && (u.loc = null), i.set(n, u), u;
  });
}
var R9 = {};
Object.defineProperty(R9, "__esModule", {
  value: !0
});
R9.default = mSt;
var dSt = Bf;
function mSt(e) {
  return (0, dSt.default)(e, !1);
}
var B9 = {};
Object.defineProperty(B9, "__esModule", {
  value: !0
});
B9.default = gSt;
var ySt = Bf;
function gSt(e) {
  return (0, ySt.default)(e);
}
var F9 = {};
Object.defineProperty(F9, "__esModule", {
  value: !0
});
F9.default = vSt;
var bSt = Bf;
function vSt(e) {
  return (0, bSt.default)(e, !0, !0);
}
var j9 = {};
Object.defineProperty(j9, "__esModule", {
  value: !0
});
j9.default = SSt;
var TSt = Bf;
function SSt(e) {
  return (0, TSt.default)(e, !1, !0);
}
var $9 = {}, M_ = {};
Object.defineProperty(M_, "__esModule", {
  value: !0
});
M_.default = xSt;
function xSt(e, t, r) {
  if (!r || !e)
    return e;
  const i = "".concat(t, "Comments");
  return e[i] ? t === "leading" ? e[i] = r.concat(e[i]) : e[i].push(...r) : e[i] = r, e;
}
Object.defineProperty($9, "__esModule", {
  value: !0
});
$9.default = PSt;
var ESt = M_;
function PSt(e, t, r, i) {
  return (0, ESt.default)(e, t, [{
    type: i ? "CommentLine" : "CommentBlock",
    value: r
  }]);
}
var R_ = {}, rS = {};
Object.defineProperty(rS, "__esModule", {
  value: !0
});
rS.default = wSt;
function wSt(e, t, r) {
  t && r && (t[e] = Array.from(new Set([].concat(t[e], r[e]).filter(Boolean))));
}
Object.defineProperty(R_, "__esModule", {
  value: !0
});
R_.default = CSt;
var ASt = rS;
function CSt(e, t) {
  (0, ASt.default)("innerComments", e, t);
}
var B_ = {};
Object.defineProperty(B_, "__esModule", {
  value: !0
});
B_.default = ISt;
var _St = rS;
function ISt(e, t) {
  (0, _St.default)("leadingComments", e, t);
}
var F_ = {}, j_ = {};
Object.defineProperty(j_, "__esModule", {
  value: !0
});
j_.default = OSt;
var kSt = rS;
function OSt(e, t) {
  (0, kSt.default)("trailingComments", e, t);
}
Object.defineProperty(F_, "__esModule", {
  value: !0
});
F_.default = MSt;
var NSt = j_, DSt = B_, LSt = R_;
function MSt(e, t) {
  return (0, NSt.default)(e, t), (0, DSt.default)(e, t), (0, LSt.default)(e, t), e;
}
var U9 = {};
Object.defineProperty(U9, "__esModule", {
  value: !0
});
U9.default = BSt;
var RSt = xr;
function BSt(e) {
  return RSt.COMMENT_KEYS.forEach((t) => {
    e[t] = null;
  }), e;
}
var At = {};
Object.defineProperty(At, "__esModule", {
  value: !0
});
At.WHILE_TYPES = At.USERWHITESPACABLE_TYPES = At.UNARYLIKE_TYPES = At.TYPESCRIPT_TYPES = At.TSTYPE_TYPES = At.TSTYPEELEMENT_TYPES = At.TSENTITYNAME_TYPES = At.TSBASETYPE_TYPES = At.TERMINATORLESS_TYPES = At.STATEMENT_TYPES = At.STANDARDIZED_TYPES = At.SCOPABLE_TYPES = At.PUREISH_TYPES = At.PROPERTY_TYPES = At.PRIVATE_TYPES = At.PATTERN_TYPES = At.PATTERNLIKE_TYPES = At.OBJECTMEMBER_TYPES = At.MODULESPECIFIER_TYPES = At.MODULEDECLARATION_TYPES = At.MISCELLANEOUS_TYPES = At.METHOD_TYPES = At.LVAL_TYPES = At.LOOP_TYPES = At.LITERAL_TYPES = At.JSX_TYPES = At.IMPORTOREXPORTDECLARATION_TYPES = At.IMMUTABLE_TYPES = At.FUNCTION_TYPES = At.FUNCTIONPARENT_TYPES = At.FOR_TYPES = At.FORXSTATEMENT_TYPES = At.FLOW_TYPES = At.FLOWTYPE_TYPES = At.FLOWPREDICATE_TYPES = At.FLOWDECLARATION_TYPES = At.FLOWBASEANNOTATION_TYPES = At.EXPRESSION_TYPES = At.EXPRESSIONWRAPPER_TYPES = At.EXPORTDECLARATION_TYPES = At.ENUMMEMBER_TYPES = At.ENUMBODY_TYPES = At.DECLARATION_TYPES = At.CONDITIONAL_TYPES = At.COMPLETIONSTATEMENT_TYPES = At.CLASS_TYPES = At.BLOCK_TYPES = At.BLOCKPARENT_TYPES = At.BINARY_TYPES = At.ACCESSOR_TYPES = void 0;
var vr = Hc();
At.STANDARDIZED_TYPES = vr.FLIPPED_ALIAS_KEYS.Standardized;
At.EXPRESSION_TYPES = vr.FLIPPED_ALIAS_KEYS.Expression;
At.BINARY_TYPES = vr.FLIPPED_ALIAS_KEYS.Binary;
At.SCOPABLE_TYPES = vr.FLIPPED_ALIAS_KEYS.Scopable;
At.BLOCKPARENT_TYPES = vr.FLIPPED_ALIAS_KEYS.BlockParent;
At.BLOCK_TYPES = vr.FLIPPED_ALIAS_KEYS.Block;
At.STATEMENT_TYPES = vr.FLIPPED_ALIAS_KEYS.Statement;
At.TERMINATORLESS_TYPES = vr.FLIPPED_ALIAS_KEYS.Terminatorless;
At.COMPLETIONSTATEMENT_TYPES = vr.FLIPPED_ALIAS_KEYS.CompletionStatement;
At.CONDITIONAL_TYPES = vr.FLIPPED_ALIAS_KEYS.Conditional;
At.LOOP_TYPES = vr.FLIPPED_ALIAS_KEYS.Loop;
At.WHILE_TYPES = vr.FLIPPED_ALIAS_KEYS.While;
At.EXPRESSIONWRAPPER_TYPES = vr.FLIPPED_ALIAS_KEYS.ExpressionWrapper;
At.FOR_TYPES = vr.FLIPPED_ALIAS_KEYS.For;
At.FORXSTATEMENT_TYPES = vr.FLIPPED_ALIAS_KEYS.ForXStatement;
At.FUNCTION_TYPES = vr.FLIPPED_ALIAS_KEYS.Function;
At.FUNCTIONPARENT_TYPES = vr.FLIPPED_ALIAS_KEYS.FunctionParent;
At.PUREISH_TYPES = vr.FLIPPED_ALIAS_KEYS.Pureish;
At.DECLARATION_TYPES = vr.FLIPPED_ALIAS_KEYS.Declaration;
At.PATTERNLIKE_TYPES = vr.FLIPPED_ALIAS_KEYS.PatternLike;
At.LVAL_TYPES = vr.FLIPPED_ALIAS_KEYS.LVal;
At.TSENTITYNAME_TYPES = vr.FLIPPED_ALIAS_KEYS.TSEntityName;
At.LITERAL_TYPES = vr.FLIPPED_ALIAS_KEYS.Literal;
At.IMMUTABLE_TYPES = vr.FLIPPED_ALIAS_KEYS.Immutable;
At.USERWHITESPACABLE_TYPES = vr.FLIPPED_ALIAS_KEYS.UserWhitespacable;
At.METHOD_TYPES = vr.FLIPPED_ALIAS_KEYS.Method;
At.OBJECTMEMBER_TYPES = vr.FLIPPED_ALIAS_KEYS.ObjectMember;
At.PROPERTY_TYPES = vr.FLIPPED_ALIAS_KEYS.Property;
At.UNARYLIKE_TYPES = vr.FLIPPED_ALIAS_KEYS.UnaryLike;
At.PATTERN_TYPES = vr.FLIPPED_ALIAS_KEYS.Pattern;
At.CLASS_TYPES = vr.FLIPPED_ALIAS_KEYS.Class;
const FSt = At.IMPORTOREXPORTDECLARATION_TYPES = vr.FLIPPED_ALIAS_KEYS.ImportOrExportDeclaration;
At.EXPORTDECLARATION_TYPES = vr.FLIPPED_ALIAS_KEYS.ExportDeclaration;
At.MODULESPECIFIER_TYPES = vr.FLIPPED_ALIAS_KEYS.ModuleSpecifier;
At.ACCESSOR_TYPES = vr.FLIPPED_ALIAS_KEYS.Accessor;
At.PRIVATE_TYPES = vr.FLIPPED_ALIAS_KEYS.Private;
At.FLOW_TYPES = vr.FLIPPED_ALIAS_KEYS.Flow;
At.FLOWTYPE_TYPES = vr.FLIPPED_ALIAS_KEYS.FlowType;
At.FLOWBASEANNOTATION_TYPES = vr.FLIPPED_ALIAS_KEYS.FlowBaseAnnotation;
At.FLOWDECLARATION_TYPES = vr.FLIPPED_ALIAS_KEYS.FlowDeclaration;
At.FLOWPREDICATE_TYPES = vr.FLIPPED_ALIAS_KEYS.FlowPredicate;
At.ENUMBODY_TYPES = vr.FLIPPED_ALIAS_KEYS.EnumBody;
At.ENUMMEMBER_TYPES = vr.FLIPPED_ALIAS_KEYS.EnumMember;
At.JSX_TYPES = vr.FLIPPED_ALIAS_KEYS.JSX;
At.MISCELLANEOUS_TYPES = vr.FLIPPED_ALIAS_KEYS.Miscellaneous;
At.TYPESCRIPT_TYPES = vr.FLIPPED_ALIAS_KEYS.TypeScript;
At.TSTYPEELEMENT_TYPES = vr.FLIPPED_ALIAS_KEYS.TSTypeElement;
At.TSTYPE_TYPES = vr.FLIPPED_ALIAS_KEYS.TSType;
At.TSBASETYPE_TYPES = vr.FLIPPED_ALIAS_KEYS.TSBaseType;
At.MODULEDECLARATION_TYPES = FSt;
var q9 = {}, $_ = {};
Object.defineProperty($_, "__esModule", {
  value: !0
});
$_.default = jSt;
var s1 = Oe, RR = we;
function jSt(e, t) {
  if ((0, s1.isBlockStatement)(e))
    return e;
  let r = [];
  return (0, s1.isEmptyStatement)(e) ? r = [] : ((0, s1.isStatement)(e) || ((0, s1.isFunction)(t) ? e = (0, RR.returnStatement)(e) : e = (0, RR.expressionStatement)(e)), r = [e]), (0, RR.blockStatement)(r);
}
Object.defineProperty(q9, "__esModule", {
  value: !0
});
q9.default = USt;
var $St = $_;
function USt(e, t = "body") {
  const r = (0, $St.default)(e[t], e);
  return e[t] = r, r;
}
var V9 = {}, U_ = {};
Object.defineProperty(U_, "__esModule", {
  value: !0
});
U_.default = WSt;
var qSt = cm, VSt = qc();
function WSt(e) {
  e = e + "";
  let t = "";
  for (const r of e)
    t += (0, VSt.isIdentifierChar)(r.codePointAt(0)) ? r : "-";
  return t = t.replace(/^[-0-9]+/, ""), t = t.replace(/[-\s]+(.)?/g, function(r, i) {
    return i ? i.toUpperCase() : "";
  }), (0, qSt.default)(t) || (t = "_".concat(t)), t || "_";
}
Object.defineProperty(V9, "__esModule", {
  value: !0
});
V9.default = KSt;
var HSt = U_;
function KSt(e) {
  return e = (0, HSt.default)(e), (e === "eval" || e === "arguments") && (e = "_" + e), e;
}
var W9 = {};
Object.defineProperty(W9, "__esModule", {
  value: !0
});
W9.default = YSt;
var zSt = Oe, GSt = we;
function YSt(e, t = e.key || e.property) {
  return !e.computed && (0, zSt.isIdentifier)(t) && (t = (0, GSt.stringLiteral)(t.name)), t;
}
var q_ = {};
Object.defineProperty(q_, "__esModule", {
  value: !0
});
q_.default = void 0;
var jb = Oe;
q_.default = XSt;
function XSt(e) {
  if ((0, jb.isExpressionStatement)(e) && (e = e.expression), (0, jb.isExpression)(e))
    return e;
  if ((0, jb.isClass)(e) ? e.type = "ClassExpression" : (0, jb.isFunction)(e) && (e.type = "FunctionExpression"), !(0, jb.isExpression)(e))
    throw new Error("cannot turn ".concat(e.type, " to an expression"));
  return e;
}
var H9 = {}, V_ = {}, W_ = {};
Object.defineProperty(W_, "__esModule", {
  value: !0
});
W_.default = GF;
var JSt = Hc();
function GF(e, t, r) {
  if (!e)
    return;
  const i = JSt.VISITOR_KEYS[e.type];
  if (i) {
    r = r || {}, t(e, r);
    for (const n of i) {
      const s = e[n];
      if (Array.isArray(s))
        for (const a of s)
          GF(a, t, r);
      else
        GF(s, t, r);
    }
  }
}
var H_ = {};
Object.defineProperty(H_, "__esModule", {
  value: !0
});
H_.default = ext;
var QSt = xr;
const Ede = ["tokens", "start", "end", "loc", "raw", "rawValue"], ZSt = [...QSt.COMMENT_KEYS, "comments", ...Ede];
function ext(e, t = {}) {
  const r = t.preserveComments ? Ede : ZSt;
  for (const n of r)
    e[n] != null && (e[n] = void 0);
  for (const n of Object.keys(e))
    n[0] === "_" && e[n] != null && (e[n] = void 0);
  const i = Object.getOwnPropertySymbols(e);
  for (const n of i)
    e[n] = null;
}
Object.defineProperty(V_, "__esModule", {
  value: !0
});
V_.default = ixt;
var txt = W_, rxt = H_;
function ixt(e, t) {
  return (0, txt.default)(e, rxt.default, t), e;
}
Object.defineProperty(H9, "__esModule", {
  value: !0
});
H9.default = Id;
var dX = Oe, nxt = Bf, sxt = V_;
function Id(e, t = e.key) {
  let r;
  return e.kind === "method" ? Id.increment() + "" : ((0, dX.isIdentifier)(t) ? r = t.name : (0, dX.isStringLiteral)(t) ? r = JSON.stringify(t.value) : r = JSON.stringify((0, sxt.default)((0, nxt.default)(t))), e.computed && (r = "[".concat(r, "]")), e.static && (r = "static:".concat(r)), r);
}
Id.uid = 0;
Id.increment = function() {
  return Id.uid >= Number.MAX_SAFE_INTEGER ? Id.uid = 0 : Id.uid++;
};
var K_ = {};
Object.defineProperty(K_, "__esModule", {
  value: !0
});
K_.default = void 0;
var a1 = Oe, axt = we;
K_.default = oxt;
function oxt(e, t) {
  if ((0, a1.isStatement)(e))
    return e;
  let r = !1, i;
  if ((0, a1.isClass)(e))
    r = !0, i = "ClassDeclaration";
  else if ((0, a1.isFunction)(e))
    r = !0, i = "FunctionDeclaration";
  else if ((0, a1.isAssignmentExpression)(e))
    return (0, axt.expressionStatement)(e);
  if (r && !e.id && (i = !1), !i) {
    if (t)
      return !1;
    throw new Error("cannot turn ".concat(e.type, " to a statement"));
  }
  return e.type = i, e;
}
var z_ = {};
Object.defineProperty(z_, "__esModule", {
  value: !0
});
z_.default = void 0;
var lxt = cm, Os = we;
z_.default = YF;
const uxt = Function.call.bind(Object.prototype.toString);
function cxt(e) {
  return uxt(e) === "[object RegExp]";
}
function pxt(e) {
  if (typeof e != "object" || e === null || Object.prototype.toString.call(e) !== "[object Object]")
    return !1;
  const t = Object.getPrototypeOf(e);
  return t === null || Object.getPrototypeOf(t) === null;
}
function YF(e) {
  if (e === void 0)
    return (0, Os.identifier)("undefined");
  if (e === !0 || e === !1)
    return (0, Os.booleanLiteral)(e);
  if (e === null)
    return (0, Os.nullLiteral)();
  if (typeof e == "string")
    return (0, Os.stringLiteral)(e);
  if (typeof e == "number") {
    let t;
    if (Number.isFinite(e))
      t = (0, Os.numericLiteral)(Math.abs(e));
    else {
      let r;
      Number.isNaN(e) ? r = (0, Os.numericLiteral)(0) : r = (0, Os.numericLiteral)(1), t = (0, Os.binaryExpression)("/", r, (0, Os.numericLiteral)(0));
    }
    return (e < 0 || Object.is(e, -0)) && (t = (0, Os.unaryExpression)("-", t)), t;
  }
  if (cxt(e)) {
    const t = e.source, r = /\/([a-z]*)$/.exec(e.toString())[1];
    return (0, Os.regExpLiteral)(t, r);
  }
  if (Array.isArray(e))
    return (0, Os.arrayExpression)(e.map(YF));
  if (pxt(e)) {
    const t = [];
    for (const r of Object.keys(e)) {
      let i;
      (0, lxt.default)(r) ? i = (0, Os.identifier)(r) : i = (0, Os.stringLiteral)(r), t.push((0, Os.objectProperty)(i, YF(e[r])));
    }
    return (0, Os.objectExpression)(t);
  }
  throw new Error("don't know how to turn this value into a node");
}
var K9 = {};
Object.defineProperty(K9, "__esModule", {
  value: !0
});
K9.default = hxt;
var fxt = we;
function hxt(e, t, r = !1) {
  return e.object = (0, fxt.memberExpression)(e.object, e.property, e.computed), e.property = t, e.computed = !!r, e;
}
var z9 = {};
Object.defineProperty(z9, "__esModule", {
  value: !0
});
z9.default = mxt;
var mX = xr, dxt = F_;
function mxt(e, t) {
  if (!e || !t)
    return e;
  for (const r of mX.INHERIT_KEYS.optional)
    e[r] == null && (e[r] = t[r]);
  for (const r of Object.keys(t))
    r[0] === "_" && r !== "__clone" && (e[r] = t[r]);
  for (const r of mX.INHERIT_KEYS.force)
    e[r] = t[r];
  return (0, dxt.default)(e, t), e;
}
var o1 = {}, yX;
function yxt() {
  if (yX)
    return o1;
  yX = 1, Object.defineProperty(o1, "__esModule", {
    value: !0
  }), o1.default = r;
  var e = we, t = Qn();
  function r(i, n) {
    if ((0, t.isSuper)(i.object))
      throw new Error("Cannot prepend node to super property access (`super.foo`).");
    return i.object = (0, e.memberExpression)(n, i.object), i;
  }
  return o1;
}
var G9 = {};
Object.defineProperty(G9, "__esModule", {
  value: !0
});
G9.default = gxt;
function gxt(e) {
  const t = [].concat(e), r = /* @__PURE__ */ Object.create(null);
  for (; t.length; ) {
    const i = t.pop();
    if (i)
      switch (i.type) {
        case "ArrayPattern":
          t.push(...i.elements);
          break;
        case "AssignmentExpression":
        case "AssignmentPattern":
        case "ForInStatement":
        case "ForOfStatement":
          t.push(i.left);
          break;
        case "ObjectPattern":
          t.push(...i.properties);
          break;
        case "ObjectProperty":
          t.push(i.value);
          break;
        case "RestElement":
        case "UpdateExpression":
          t.push(i.argument);
          break;
        case "UnaryExpression":
          i.operator === "delete" && t.push(i.argument);
          break;
        case "Identifier":
          r[i.name] = i;
          break;
      }
  }
  return r;
}
var _g = {};
Object.defineProperty(_g, "__esModule", {
  value: !0
});
_g.default = Y9;
var Bp = Oe;
function Y9(e, t, r, i) {
  const n = [].concat(e), s = /* @__PURE__ */ Object.create(null);
  for (; n.length; ) {
    const a = n.shift();
    if (!a || i && ((0, Bp.isAssignmentExpression)(a) || (0, Bp.isUnaryExpression)(a) || (0, Bp.isUpdateExpression)(a)))
      continue;
    if ((0, Bp.isIdentifier)(a)) {
      t ? (s[a.name] = s[a.name] || []).push(a) : s[a.name] = a;
      continue;
    }
    if ((0, Bp.isExportDeclaration)(a) && !(0, Bp.isExportAllDeclaration)(a)) {
      (0, Bp.isDeclaration)(a.declaration) && n.push(a.declaration);
      continue;
    }
    if (r) {
      if ((0, Bp.isFunctionDeclaration)(a)) {
        n.push(a.id);
        continue;
      }
      if ((0, Bp.isFunctionExpression)(a))
        continue;
    }
    const o = Y9.keys[a.type];
    if (o)
      for (let l = 0; l < o.length; l++) {
        const u = o[l], c = a[u];
        c && (Array.isArray(c) ? n.push(...c) : n.push(c));
      }
  }
  return s;
}
const bxt = {
  DeclareClass: ["id"],
  DeclareFunction: ["id"],
  DeclareModule: ["id"],
  DeclareVariable: ["id"],
  DeclareInterface: ["id"],
  DeclareTypeAlias: ["id"],
  DeclareOpaqueType: ["id"],
  InterfaceDeclaration: ["id"],
  TypeAlias: ["id"],
  OpaqueType: ["id"],
  CatchClause: ["param"],
  LabeledStatement: ["label"],
  UnaryExpression: ["argument"],
  AssignmentExpression: ["left"],
  ImportSpecifier: ["local"],
  ImportNamespaceSpecifier: ["local"],
  ImportDefaultSpecifier: ["local"],
  ImportDeclaration: ["specifiers"],
  ExportSpecifier: ["exported"],
  ExportNamespaceSpecifier: ["exported"],
  ExportDefaultSpecifier: ["exported"],
  FunctionDeclaration: ["id", "params"],
  FunctionExpression: ["id", "params"],
  ArrowFunctionExpression: ["params"],
  ObjectMethod: ["params"],
  ClassMethod: ["params"],
  ClassPrivateMethod: ["params"],
  ForInStatement: ["left"],
  ForOfStatement: ["left"],
  ClassDeclaration: ["id"],
  ClassExpression: ["id"],
  RestElement: ["argument"],
  UpdateExpression: ["argument"],
  ObjectProperty: ["value"],
  AssignmentPattern: ["left"],
  ArrayPattern: ["elements"],
  ObjectPattern: ["properties"],
  VariableDeclaration: ["declarations"],
  VariableDeclarator: ["id"]
};
Y9.keys = bxt;
var G_ = {};
Object.defineProperty(G_, "__esModule", {
  value: !0
});
G_.default = void 0;
var vxt = _g;
G_.default = Txt;
function Txt(e, t) {
  return (0, vxt.default)(e, t, !0);
}
var X9 = {};
Object.defineProperty(X9, "__esModule", {
  value: !0
});
X9.default = xxt;
var Cl = Oe;
function Sxt(e) {
  return (0, Cl.isNullLiteral)(e) ? "null" : (0, Cl.isRegExpLiteral)(e) ? "/".concat(e.pattern, "/").concat(e.flags) : (0, Cl.isTemplateLiteral)(e) ? e.quasis.map((t) => t.value.raw).join("") : e.value !== void 0 ? String(e.value) : null;
}
function gX(e) {
  if (!e.computed || (0, Cl.isLiteral)(e.key))
    return e.key;
}
function xxt(e, t) {
  if ("id" in e && e.id)
    return {
      name: e.id.name,
      originalNode: e.id
    };
  let r = "", i;
  if ((0, Cl.isObjectProperty)(t, {
    value: e
  }) ? i = gX(t) : (0, Cl.isObjectMethod)(e) || (0, Cl.isClassMethod)(e) ? (i = gX(e), e.kind === "get" ? r = "get " : e.kind === "set" && (r = "set ")) : (0, Cl.isVariableDeclarator)(t, {
    init: e
  }) ? i = t.id : (0, Cl.isAssignmentExpression)(t, {
    operator: "=",
    right: e
  }) && (i = t.left), !i)
    return null;
  const n = (0, Cl.isLiteral)(i) ? Sxt(i) : (0, Cl.isIdentifier)(i) ? i.name : (0, Cl.isPrivateName)(i) ? i.id.name : null;
  return n == null ? null : {
    name: r + n,
    originalNode: i
  };
}
var J9 = {};
Object.defineProperty(J9, "__esModule", {
  value: !0
});
J9.default = Pxt;
var Ext = Hc();
function Pxt(e, t, r) {
  typeof t == "function" && (t = {
    enter: t
  });
  const {
    enter: i,
    exit: n
  } = t;
  XF(e, i, n, r, []);
}
function XF(e, t, r, i, n) {
  const s = Ext.VISITOR_KEYS[e.type];
  if (s) {
    t && t(e, n, i);
    for (const a of s) {
      const o = e[a];
      if (Array.isArray(o))
        for (let l = 0; l < o.length; l++) {
          const u = o[l];
          u && (n.push({
            node: e,
            key: a,
            index: l
          }), XF(u, t, r, i, n), n.pop());
        }
      else
        o && (n.push({
          node: e,
          key: a
        }), XF(o, t, r, i, n), n.pop());
    }
    r && r(e, n, i);
  }
}
var Q9 = {};
Object.defineProperty(Q9, "__esModule", {
  value: !0
});
Q9.default = Axt;
var wxt = _g;
function Axt(e, t, r) {
  if (r && e.type === "Identifier" && t.type === "ObjectProperty" && r.type === "ObjectExpression")
    return !1;
  const i = wxt.default.keys[t.type];
  if (i)
    for (let n = 0; n < i.length; n++) {
      const s = i[n], a = t[s];
      if (Array.isArray(a)) {
        if (a.includes(e))
          return !0;
      } else if (a === e)
        return !0;
    }
  return !1;
}
var Z9 = {}, Y_ = {};
Object.defineProperty(Y_, "__esModule", {
  value: !0
});
Y_.default = Ixt;
var Cxt = Oe, _xt = xr;
function Ixt(e) {
  return (0, Cxt.isVariableDeclaration)(e) && (e.kind !== "var" || e[_xt.BLOCK_SCOPED_SYMBOL]);
}
Object.defineProperty(Z9, "__esModule", {
  value: !0
});
Z9.default = Oxt;
var bX = Oe, kxt = Y_;
function Oxt(e) {
  return (0, bX.isFunctionDeclaration)(e) || (0, bX.isClassDeclaration)(e) || (0, kxt.default)(e);
}
var e5 = {};
Object.defineProperty(e5, "__esModule", {
  value: !0
});
e5.default = Lxt;
var Nxt = k9(), Dxt = Oe;
function Lxt(e) {
  return (0, Nxt.default)(e.type, "Immutable") ? !0 : (0, Dxt.isIdentifier)(e) ? e.name === "undefined" : !1;
}
var t5 = {};
Object.defineProperty(t5, "__esModule", {
  value: !0
});
t5.default = JF;
var vX = Hc();
function JF(e, t) {
  if (typeof e != "object" || typeof t != "object" || e == null || t == null)
    return e === t;
  if (e.type !== t.type)
    return !1;
  const r = Object.keys(vX.NODE_FIELDS[e.type] || e.type), i = vX.VISITOR_KEYS[e.type];
  for (const n of r) {
    const s = e[n], a = t[n];
    if (typeof s != typeof a)
      return !1;
    if (!(s == null && a == null)) {
      if (s == null || a == null)
        return !1;
      if (Array.isArray(s)) {
        if (!Array.isArray(a) || s.length !== a.length)
          return !1;
        for (let o = 0; o < s.length; o++)
          if (!JF(s[o], a[o]))
            return !1;
        continue;
      }
      if (typeof s == "object" && !(i != null && i.includes(n))) {
        for (const o of Object.keys(s))
          if (s[o] !== a[o])
            return !1;
        continue;
      }
      if (!JF(s, a))
        return !1;
    }
  }
  return !0;
}
var r5 = {};
Object.defineProperty(r5, "__esModule", {
  value: !0
});
r5.default = Mxt;
function Mxt(e, t, r) {
  switch (t.type) {
    case "MemberExpression":
    case "OptionalMemberExpression":
      return t.property === e ? !!t.computed : t.object === e;
    case "JSXMemberExpression":
      return t.object === e;
    case "VariableDeclarator":
      return t.init === e;
    case "ArrowFunctionExpression":
      return t.body === e;
    case "PrivateName":
      return !1;
    case "ClassMethod":
    case "ClassPrivateMethod":
    case "ObjectMethod":
      return t.key === e ? !!t.computed : !1;
    case "ObjectProperty":
      return t.key === e ? !!t.computed : !r || r.type !== "ObjectPattern";
    case "ClassProperty":
    case "ClassAccessorProperty":
      return t.key === e ? !!t.computed : !0;
    case "ClassPrivateProperty":
      return t.key !== e;
    case "ClassDeclaration":
    case "ClassExpression":
      return t.superClass === e;
    case "AssignmentExpression":
      return t.right === e;
    case "AssignmentPattern":
      return t.right === e;
    case "LabeledStatement":
      return !1;
    case "CatchClause":
      return !1;
    case "RestElement":
      return !1;
    case "BreakStatement":
    case "ContinueStatement":
      return !1;
    case "FunctionDeclaration":
    case "FunctionExpression":
      return !1;
    case "ExportNamespaceSpecifier":
    case "ExportDefaultSpecifier":
      return !1;
    case "ExportSpecifier":
      return r != null && r.source ? !1 : t.local === e;
    case "ImportDefaultSpecifier":
    case "ImportNamespaceSpecifier":
    case "ImportSpecifier":
      return !1;
    case "ImportAttribute":
      return !1;
    case "JSXAttribute":
      return !1;
    case "ObjectPattern":
    case "ArrayPattern":
      return !1;
    case "MetaProperty":
      return !1;
    case "ObjectTypeProperty":
      return t.key !== e;
    case "TSEnumMember":
      return t.id !== e;
    case "TSPropertySignature":
      return t.key === e ? !!t.computed : !0;
  }
  return !0;
}
var i5 = {};
Object.defineProperty(i5, "__esModule", {
  value: !0
});
i5.default = Rxt;
var od = Oe;
function Rxt(e, t) {
  return (0, od.isBlockStatement)(e) && ((0, od.isFunction)(t) || (0, od.isCatchClause)(t)) ? !1 : (0, od.isPattern)(e) && ((0, od.isFunction)(t) || (0, od.isCatchClause)(t)) ? !0 : (0, od.isScopable)(e);
}
var n5 = {};
Object.defineProperty(n5, "__esModule", {
  value: !0
});
n5.default = Bxt;
var TX = Oe;
function Bxt(e) {
  return (0, TX.isImportDefaultSpecifier)(e) || (0, TX.isIdentifier)(e.imported || e.exported, {
    name: "default"
  });
}
var s5 = {};
Object.defineProperty(s5, "__esModule", {
  value: !0
});
s5.default = $xt;
var Fxt = cm;
const jxt = /* @__PURE__ */ new Set(["abstract", "boolean", "byte", "char", "double", "enum", "final", "float", "goto", "implements", "int", "interface", "long", "native", "package", "private", "protected", "public", "short", "static", "synchronized", "throws", "transient", "volatile"]);
function $xt(e) {
  return (0, Fxt.default)(e) && !jxt.has(e);
}
var a5 = {};
Object.defineProperty(a5, "__esModule", {
  value: !0
});
a5.default = Vxt;
var Uxt = Oe, qxt = xr;
function Vxt(e) {
  return (0, Uxt.isVariableDeclaration)(e, {
    kind: "var"
  }) && !e[qxt.BLOCK_SCOPED_SYMBOL];
}
var o5 = {}, l5 = {};
Object.defineProperty(l5, "__esModule", {
  value: !0
});
l5.default = xP;
var Wxt = _g, ld = Oe, BR = we, FR = L_, Hxt = Bf;
function xP(e, t) {
  const r = [];
  let i = !0;
  for (const n of e)
    if ((0, ld.isEmptyStatement)(n) || (i = !1), (0, ld.isExpression)(n))
      r.push(n);
    else if ((0, ld.isExpressionStatement)(n))
      r.push(n.expression);
    else if ((0, ld.isVariableDeclaration)(n)) {
      if (n.kind !== "var")
        return;
      for (const s of n.declarations) {
        const a = (0, Wxt.default)(s);
        for (const o of Object.keys(a))
          t.push({
            kind: n.kind,
            id: (0, Hxt.default)(a[o])
          });
        s.init && r.push((0, BR.assignmentExpression)("=", s.id, s.init));
      }
      i = !0;
    } else if ((0, ld.isIfStatement)(n)) {
      const s = n.consequent ? xP([n.consequent], t) : (0, FR.buildUndefinedNode)(), a = n.alternate ? xP([n.alternate], t) : (0, FR.buildUndefinedNode)();
      if (!s || !a)
        return;
      r.push((0, BR.conditionalExpression)(n.test, s, a));
    } else if ((0, ld.isBlockStatement)(n)) {
      const s = xP(n.body, t);
      if (!s)
        return;
      r.push(s);
    } else if ((0, ld.isEmptyStatement)(n))
      e.indexOf(n) === 0 && (i = !0);
    else
      return;
  return i && r.push((0, FR.buildUndefinedNode)()), r.length === 1 ? r[0] : (0, BR.sequenceExpression)(r);
}
Object.defineProperty(o5, "__esModule", {
  value: !0
});
o5.default = zxt;
var Kxt = l5;
function zxt(e, t) {
  if (!(e != null && e.length))
    return;
  const r = [], i = (0, Kxt.default)(e, r);
  if (i) {
    for (const n of r)
      t.push(n);
    return i;
  }
}
var SX;
function Qn() {
  return SX || (SX = 1, function(e) {
    Object.defineProperty(e, "__esModule", {
      value: !0
    });
    var t = {
      react: !0,
      assertNode: !0,
      createTypeAnnotationBasedOnTypeof: !0,
      createUnionTypeAnnotation: !0,
      createFlowUnionType: !0,
      createTSUnionType: !0,
      cloneNode: !0,
      clone: !0,
      cloneDeep: !0,
      cloneDeepWithoutLoc: !0,
      cloneWithoutLoc: !0,
      addComment: !0,
      addComments: !0,
      inheritInnerComments: !0,
      inheritLeadingComments: !0,
      inheritsComments: !0,
      inheritTrailingComments: !0,
      removeComments: !0,
      ensureBlock: !0,
      toBindingIdentifierName: !0,
      toBlock: !0,
      toComputedKey: !0,
      toExpression: !0,
      toIdentifier: !0,
      toKeyAlias: !0,
      toStatement: !0,
      valueToNode: !0,
      appendToMemberExpression: !0,
      inherits: !0,
      prependToMemberExpression: !0,
      removeProperties: !0,
      removePropertiesDeep: !0,
      removeTypeDuplicates: !0,
      getAssignmentIdentifiers: !0,
      getBindingIdentifiers: !0,
      getOuterBindingIdentifiers: !0,
      getFunctionName: !0,
      traverse: !0,
      traverseFast: !0,
      shallowEqual: !0,
      is: !0,
      isBinding: !0,
      isBlockScoped: !0,
      isImmutable: !0,
      isLet: !0,
      isNode: !0,
      isNodesEquivalent: !0,
      isPlaceholderType: !0,
      isReferenced: !0,
      isScope: !0,
      isSpecifierDefault: !0,
      isType: !0,
      isValidES3Identifier: !0,
      isValidIdentifier: !0,
      isVar: !0,
      matchesPattern: !0,
      validate: !0,
      buildMatchMemberExpression: !0,
      __internal__deprecationWarning: !0
    };
    Object.defineProperty(e, "__internal__deprecationWarning", {
      enumerable: !0,
      get: function() {
        return $e.default;
      }
    }), Object.defineProperty(e, "addComment", {
      enumerable: !0,
      get: function() {
        return S.default;
      }
    }), Object.defineProperty(e, "addComments", {
      enumerable: !0,
      get: function() {
        return P.default;
      }
    }), Object.defineProperty(e, "appendToMemberExpression", {
      enumerable: !0,
      get: function() {
        return z.default;
      }
    }), Object.defineProperty(e, "assertNode", {
      enumerable: !0,
      get: function() {
        return s.default;
      }
    }), Object.defineProperty(e, "buildMatchMemberExpression", {
      enumerable: !0,
      get: function() {
        return ge.default;
      }
    }), Object.defineProperty(e, "clone", {
      enumerable: !0,
      get: function() {
        return g.default;
      }
    }), Object.defineProperty(e, "cloneDeep", {
      enumerable: !0,
      get: function() {
        return y.default;
      }
    }), Object.defineProperty(e, "cloneDeepWithoutLoc", {
      enumerable: !0,
      get: function() {
        return v.default;
      }
    }), Object.defineProperty(e, "cloneNode", {
      enumerable: !0,
      get: function() {
        return m.default;
      }
    }), Object.defineProperty(e, "cloneWithoutLoc", {
      enumerable: !0,
      get: function() {
        return T.default;
      }
    }), Object.defineProperty(e, "createFlowUnionType", {
      enumerable: !0,
      get: function() {
        return l.default;
      }
    }), Object.defineProperty(e, "createTSUnionType", {
      enumerable: !0,
      get: function() {
        return u.default;
      }
    }), Object.defineProperty(e, "createTypeAnnotationBasedOnTypeof", {
      enumerable: !0,
      get: function() {
        return o.default;
      }
    }), Object.defineProperty(e, "createUnionTypeAnnotation", {
      enumerable: !0,
      get: function() {
        return l.default;
      }
    }), Object.defineProperty(e, "ensureBlock", {
      enumerable: !0,
      get: function() {
        return O.default;
      }
    }), Object.defineProperty(e, "getAssignmentIdentifiers", {
      enumerable: !0,
      get: function() {
        return ae.default;
      }
    }), Object.defineProperty(e, "getBindingIdentifiers", {
      enumerable: !0,
      get: function() {
        return be.default;
      }
    }), Object.defineProperty(e, "getFunctionName", {
      enumerable: !0,
      get: function() {
        return fe.default;
      }
    }), Object.defineProperty(e, "getOuterBindingIdentifiers", {
      enumerable: !0,
      get: function() {
        return ye.default;
      }
    }), Object.defineProperty(e, "inheritInnerComments", {
      enumerable: !0,
      get: function() {
        return x.default;
      }
    }), Object.defineProperty(e, "inheritLeadingComments", {
      enumerable: !0,
      get: function() {
        return C.default;
      }
    }), Object.defineProperty(e, "inheritTrailingComments", {
      enumerable: !0,
      get: function() {
        return w.default;
      }
    }), Object.defineProperty(e, "inherits", {
      enumerable: !0,
      get: function() {
        return W.default;
      }
    }), Object.defineProperty(e, "inheritsComments", {
      enumerable: !0,
      get: function() {
        return D.default;
      }
    }), Object.defineProperty(e, "is", {
      enumerable: !0,
      get: function() {
        return xe.default;
      }
    }), Object.defineProperty(e, "isBinding", {
      enumerable: !0,
      get: function() {
        return Pe.default;
      }
    }), Object.defineProperty(e, "isBlockScoped", {
      enumerable: !0,
      get: function() {
        return ve.default;
      }
    }), Object.defineProperty(e, "isImmutable", {
      enumerable: !0,
      get: function() {
        return Xe.default;
      }
    }), Object.defineProperty(e, "isLet", {
      enumerable: !0,
      get: function() {
        return st.default;
      }
    }), Object.defineProperty(e, "isNode", {
      enumerable: !0,
      get: function() {
        return Se.default;
      }
    }), Object.defineProperty(e, "isNodesEquivalent", {
      enumerable: !0,
      get: function() {
        return oe.default;
      }
    }), Object.defineProperty(e, "isPlaceholderType", {
      enumerable: !0,
      get: function() {
        return te.default;
      }
    }), Object.defineProperty(e, "isReferenced", {
      enumerable: !0,
      get: function() {
        return se.default;
      }
    }), Object.defineProperty(e, "isScope", {
      enumerable: !0,
      get: function() {
        return re.default;
      }
    }), Object.defineProperty(e, "isSpecifierDefault", {
      enumerable: !0,
      get: function() {
        return Te.default;
      }
    }), Object.defineProperty(e, "isType", {
      enumerable: !0,
      get: function() {
        return ze.default;
      }
    }), Object.defineProperty(e, "isValidES3Identifier", {
      enumerable: !0,
      get: function() {
        return Ze.default;
      }
    }), Object.defineProperty(e, "isValidIdentifier", {
      enumerable: !0,
      get: function() {
        return pt.default;
      }
    }), Object.defineProperty(e, "isVar", {
      enumerable: !0,
      get: function() {
        return ut.default;
      }
    }), Object.defineProperty(e, "matchesPattern", {
      enumerable: !0,
      get: function() {
        return bt.default;
      }
    }), Object.defineProperty(e, "prependToMemberExpression", {
      enumerable: !0,
      get: function() {
        return Y.default;
      }
    }), e.react = void 0, Object.defineProperty(e, "removeComments", {
      enumerable: !0,
      get: function() {
        return A.default;
      }
    }), Object.defineProperty(e, "removeProperties", {
      enumerable: !0,
      get: function() {
        return G.default;
      }
    }), Object.defineProperty(e, "removePropertiesDeep", {
      enumerable: !0,
      get: function() {
        return le.default;
      }
    }), Object.defineProperty(e, "removeTypeDuplicates", {
      enumerable: !0,
      get: function() {
        return ne.default;
      }
    }), Object.defineProperty(e, "shallowEqual", {
      enumerable: !0,
      get: function() {
        return me.default;
      }
    }), Object.defineProperty(e, "toBindingIdentifierName", {
      enumerable: !0,
      get: function() {
        return F.default;
      }
    }), Object.defineProperty(e, "toBlock", {
      enumerable: !0,
      get: function() {
        return q.default;
      }
    }), Object.defineProperty(e, "toComputedKey", {
      enumerable: !0,
      get: function() {
        return j.default;
      }
    }), Object.defineProperty(e, "toExpression", {
      enumerable: !0,
      get: function() {
        return N.default;
      }
    }), Object.defineProperty(e, "toIdentifier", {
      enumerable: !0,
      get: function() {
        return M.default;
      }
    }), Object.defineProperty(e, "toKeyAlias", {
      enumerable: !0,
      get: function() {
        return R.default;
      }
    }), Object.defineProperty(e, "toStatement", {
      enumerable: !0,
      get: function() {
        return $.default;
      }
    }), Object.defineProperty(e, "traverse", {
      enumerable: !0,
      get: function() {
        return Z.default;
      }
    }), Object.defineProperty(e, "traverseFast", {
      enumerable: !0,
      get: function() {
        return ue.default;
      }
    }), Object.defineProperty(e, "validate", {
      enumerable: !0,
      get: function() {
        return vt.default;
      }
    }), Object.defineProperty(e, "valueToNode", {
      enumerable: !0,
      get: function() {
        return V.default;
      }
    });
    var r = w_, i = I9, n = byt(), s = N9, a = je;
    Object.keys(a).forEach(function(ie) {
      ie === "default" || ie === "__esModule" || Object.prototype.hasOwnProperty.call(t, ie) || ie in e && e[ie] === a[ie] || Object.defineProperty(e, ie, {
        enumerable: !0,
        get: function() {
          return a[ie];
        }
      });
    });
    var o = N_, l = D9, u = L9, c = we;
    Object.keys(c).forEach(function(ie) {
      ie === "default" || ie === "__esModule" || Object.prototype.hasOwnProperty.call(t, ie) || ie in e && e[ie] === c[ie] || Object.defineProperty(e, ie, {
        enumerable: !0,
        get: function() {
          return c[ie];
        }
      });
    });
    var f = Sde;
    Object.keys(f).forEach(function(ie) {
      ie === "default" || ie === "__esModule" || Object.prototype.hasOwnProperty.call(t, ie) || ie in e && e[ie] === f[ie] || Object.defineProperty(e, ie, {
        enumerable: !0,
        get: function() {
          return f[ie];
        }
      });
    });
    var h = L_;
    Object.keys(h).forEach(function(ie) {
      ie === "default" || ie === "__esModule" || Object.prototype.hasOwnProperty.call(t, ie) || ie in e && e[ie] === h[ie] || Object.defineProperty(e, ie, {
        enumerable: !0,
        get: function() {
          return h[ie];
        }
      });
    });
    var m = Bf, g = R9, y = B9, v = F9, T = j9, S = $9, P = M_, x = R_, C = B_, D = F_, w = j_, A = U9, I = At;
    Object.keys(I).forEach(function(ie) {
      ie === "default" || ie === "__esModule" || Object.prototype.hasOwnProperty.call(t, ie) || ie in e && e[ie] === I[ie] || Object.defineProperty(e, ie, {
        enumerable: !0,
        get: function() {
          return I[ie];
        }
      });
    });
    var L = xr;
    Object.keys(L).forEach(function(ie) {
      ie === "default" || ie === "__esModule" || Object.prototype.hasOwnProperty.call(t, ie) || ie in e && e[ie] === L[ie] || Object.defineProperty(e, ie, {
        enumerable: !0,
        get: function() {
          return L[ie];
        }
      });
    });
    var O = q9, F = V9, q = $_, j = W9, N = q_, M = U_, R = H9, $ = K_, V = z_, K = Hc();
    Object.keys(K).forEach(function(ie) {
      ie === "default" || ie === "__esModule" || Object.prototype.hasOwnProperty.call(t, ie) || ie in e && e[ie] === K[ie] || Object.defineProperty(e, ie, {
        enumerable: !0,
        get: function() {
          return K[ie];
        }
      });
    });
    var z = K9, W = z9, Y = yxt(), G = H_, le = V_, ne = D_, ae = G9, be = _g, ye = G_, fe = X9, Z = J9;
    Object.keys(Z).forEach(function(ie) {
      ie === "default" || ie === "__esModule" || Object.prototype.hasOwnProperty.call(t, ie) || ie in e && e[ie] === Z[ie] || Object.defineProperty(e, ie, {
        enumerable: !0,
        get: function() {
          return Z[ie];
        }
      });
    });
    var ue = W_, me = JT, xe = ZT(), Pe = Q9, ve = Z9, Xe = e5, st = Y_, Se = O_, oe = t5, te = lde(), se = r5, re = i5, Te = n5, ze = k9(), Ze = s5, pt = cm, ut = a5, bt = C_, vt = O9(), ge = A_, pe = Oe;
    Object.keys(pe).forEach(function(ie) {
      ie === "default" || ie === "__esModule" || Object.prototype.hasOwnProperty.call(t, ie) || ie in e && e[ie] === pe[ie] || Object.defineProperty(e, ie, {
        enumerable: !0,
        get: function() {
          return pe[ie];
        }
      });
    });
    var $e = Cg;
    e.react = {
      isReactComponent: r.default,
      isCompatTag: i.default,
      buildChildren: n.default
    }, e.toSequenceExpression = o5.default, process.env.BABEL_TYPES_8_BREAKING && console.warn("BABEL_TYPES_8_BREAKING is not supported anymore. Use the latest Babel 8.0.0 pre-release instead!");
  }(NR)), NR;
}
var xX;
function Pde() {
  if (xX)
    return JE;
  xX = 1, Object.defineProperty(JE, "__esModule", {
    value: !0
  }), JE.default = s;
  var e = Qn();
  const {
    assignmentExpression: t,
    expressionStatement: r,
    identifier: i
  } = e, n = {
    Scope(a, o) {
      o.kind === "let" && a.skip();
    },
    FunctionParent(a) {
      a.skip();
    },
    VariableDeclaration(a, o) {
      if (o.kind && a.node.kind !== o.kind)
        return;
      const l = [], u = a.get("declarations");
      let c;
      for (const f of u) {
        c = f.node.id, f.node.init && l.push(r(t("=", f.node.id, f.node.init)));
        for (const h of Object.keys(f.getBindingIdentifiers()))
          o.emit(i(h), h, f.node.init !== null);
      }
      a.parentPath.isFor({
        left: a.node
      }) ? a.replaceWith(c) : a.replaceWithMultiple(l);
    }
  };
  function s(a, o, l = "var") {
    a.traverse(n, {
      kind: l,
      emit: o
    });
  }
  return JE;
}
var EX;
function Gxt() {
  if (EX)
    return Mp;
  EX = 1, Object.defineProperty(Mp, "__esModule", {
    value: !0
  }), Mp._replaceWith = j, Mp.replaceExpressionWithStatements = N, Mp.replaceInline = M, Mp.replaceWith = q, Mp.replaceWithMultiple = O, Mp.replaceWithSourceString = F;
  var e = am, t = yp(), r = pm(), i = Ag(), n = _9(), s = Ui(), a = Pde();
  const {
    FUNCTION_TYPES: o,
    arrowFunctionExpression: l,
    assignmentExpression: u,
    awaitExpression: c,
    blockStatement: f,
    callExpression: h,
    cloneNode: m,
    expressionStatement: g,
    identifier: y,
    inheritLeadingComments: v,
    inheritTrailingComments: T,
    inheritsComments: S,
    isExpression: P,
    isProgram: x,
    isStatement: C,
    removeComments: D,
    returnStatement: w,
    toSequenceExpression: A,
    validate: I,
    yieldExpression: L
  } = s;
  function O(R) {
    var $;
    this.resync(), R = this._verifyNodeList(R), v(R[0], this.node), T(R[R.length - 1], this.node), ($ = i.path.get(this.parent)) == null || $.delete(this.node), this.node = this.container[this.key] = null;
    const V = this.insertAfter(R);
    return this.node ? this.requeue() : this.remove(), V;
  }
  function F(R) {
    this.resync();
    let $;
    try {
      R = "(".concat(R, ")"), $ = (0, n.parse)(R);
    } catch (K) {
      const z = K.loc;
      throw z && (K.message += " - make sure this is an expression.\n" + (0, e.codeFrameColumns)(R, {
        start: {
          line: z.line,
          column: z.column + 1
        }
      }), K.code = "BABEL_REPLACE_SOURCE_ERROR"), K;
    }
    const V = $.program.body[0].expression;
    return t.default.removeProperties(V), this.replaceWith(V);
  }
  function q(R) {
    if (this.resync(), this.removed)
      throw new Error("You can't replace this node, we've already removed it");
    let $ = R instanceof r.default ? R.node : R;
    if (!$)
      throw new Error("You passed `path.replaceWith()` a falsy node, use `path.remove()` instead");
    if (this.node === $)
      return [this];
    if (this.isProgram() && !x($))
      throw new Error("You can only replace a Program root node with another Program node");
    if (Array.isArray($))
      throw new Error("Don't use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`");
    if (typeof $ == "string")
      throw new Error("Don't use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`");
    let V = "";
    if (this.isNodeType("Statement") && P($) && !this.canHaveVariableDeclarationOrExpression() && !this.canSwapBetweenExpressionAndStatement($) && !this.parentPath.isExportDefaultDeclaration() && ($ = g($), V = "expression"), this.isNodeType("Expression") && C($) && !this.canHaveVariableDeclarationOrExpression() && !this.canSwapBetweenExpressionAndStatement($))
      return this.replaceExpressionWithStatements([$]);
    const K = this.node;
    return K && (S($, K), D(K)), this._replaceWith($), this.type = $.type, this.setScope(), this.requeue(), [V ? this.get(V) : this];
  }
  function j(R) {
    var $;
    if (!this.container)
      throw new ReferenceError("Container is falsy");
    this.inList ? I(this.parent, this.key, [R]) : I(this.parent, this.key, R), this.debug("Replace with ".concat(R == null ? void 0 : R.type)), ($ = i.path.get(this.parent)) == null || $.set(R, this).delete(this.node), this.node = this.container[this.key] = R;
  }
  function N(R) {
    this.resync();
    const $ = A(R, this.scope);
    if ($)
      return this.replaceWith($)[0].get("expressions");
    const V = this.getFunctionParent(), K = V == null ? void 0 : V.is("async"), z = V == null ? void 0 : V.is("generator"), W = l([], f(R));
    this.replaceWith(h(W, []));
    const Y = this.get("callee");
    (0, a.default)(Y.get("body"), (be) => {
      this.scope.push({
        id: be
      });
    }, "var");
    const G = this.get("callee").getCompletionRecords();
    for (const be of G) {
      if (!be.isExpressionStatement())
        continue;
      const ye = be.findParent((fe) => fe.isLoop());
      if (ye) {
        let fe = ye.getData("expressionReplacementReturnUid");
        fe ? fe = y(fe.name) : (fe = Y.scope.generateDeclaredUidIdentifier("ret"), Y.get("body").pushContainer("body", w(m(fe))), ye.setData("expressionReplacementReturnUid", fe)), be.get("expression").replaceWith(u("=", m(fe), be.node.expression));
      } else
        be.replaceWith(w(be.node.expression));
    }
    Y.arrowFunctionToExpression();
    const le = Y, ne = K && t.default.hasType(this.get("callee.body").node, "AwaitExpression", o), ae = z && t.default.hasType(this.get("callee.body").node, "YieldExpression", o);
    return ne && (le.set("async", !0), ae || this.replaceWith(c(this.node))), ae && (le.set("generator", !0), this.replaceWith(L(this.node, !0))), le.get("body.body");
  }
  function M(R) {
    if (this.resync(), Array.isArray(R))
      if (Array.isArray(this.container)) {
        R = this._verifyNodeList(R);
        const $ = this._containerInsertAfter(R);
        return this.remove(), $;
      } else
        return this.replaceWithMultiple(R);
    else
      return this.replaceWith(R);
  }
  return Mp;
}
var $b = {}, PX;
function Yxt() {
  if (PX)
    return $b;
  PX = 1, Object.defineProperty($b, "__esModule", {
    value: !0
  }), $b.evaluate = c, $b.evaluateTruthy = n;
  const e = ["String", "Number", "Math"], t = ["random"];
  function r(f) {
    return e.includes(f);
  }
  function i(f) {
    return t.includes(f);
  }
  function n() {
    const f = this.evaluate();
    if (f.confident)
      return !!f.value;
  }
  function s(f, h) {
    h.confident && (h.deoptPath = f, h.confident = !1);
  }
  const a = /* @__PURE__ */ new Map([["undefined", void 0], ["Infinity", 1 / 0], ["NaN", NaN]]);
  function o(f, h) {
    const {
      node: m
    } = f, {
      seen: g
    } = h;
    if (g.has(m)) {
      const y = g.get(m);
      if (y.resolved)
        return y.value;
      s(f, h);
      return;
    } else {
      const y = {
        resolved: !1
      };
      g.set(m, y);
      const v = l(f, h);
      return h.confident && (y.resolved = !0, y.value = v), v;
    }
  }
  function l(f, h) {
    if (h.confident) {
      if (f.isSequenceExpression()) {
        const m = f.get("expressions");
        return o(m[m.length - 1], h);
      }
      if (f.isStringLiteral() || f.isNumericLiteral() || f.isBooleanLiteral())
        return f.node.value;
      if (f.isNullLiteral())
        return null;
      if (f.isTemplateLiteral())
        return u(f, f.node.quasis, h);
      if (f.isTaggedTemplateExpression() && f.get("tag").isMemberExpression()) {
        const m = f.get("tag.object"), {
          node: {
            name: g
          }
        } = m, y = f.get("tag.property");
        if (m.isIdentifier() && g === "String" && !f.scope.getBinding(g) && y.isIdentifier() && y.node.name === "raw")
          return u(f, f.node.quasi.quasis, h, !0);
      }
      if (f.isConditionalExpression()) {
        const m = o(f.get("test"), h);
        return h.confident ? o(m ? f.get("consequent") : f.get("alternate"), h) : void 0;
      }
      if (f.isExpressionWrapper())
        return o(f.get("expression"), h);
      if (f.isMemberExpression() && !f.parentPath.isCallExpression({
        callee: f.node
      })) {
        const m = f.get("property"), g = f.get("object");
        if (g.isLiteral()) {
          const y = g.node.value, v = typeof y;
          let T = null;
          if (f.node.computed) {
            if (T = o(m, h), !h.confident)
              return;
          } else
            m.isIdentifier() && (T = m.node.name);
          if ((v === "number" || v === "string") && T != null && (typeof T == "number" || typeof T == "string"))
            return y[T];
        }
      }
      if (f.isReferencedIdentifier()) {
        const m = f.scope.getBinding(f.node.name);
        if (m) {
          if (m.constantViolations.length > 0 || f.node.start < m.path.node.end) {
            s(m.path, h);
            return;
          }
          if (m.hasValue)
            return m.value;
        }
        const g = f.node.name;
        if (a.has(g)) {
          if (!m)
            return a.get(g);
          s(m.path, h);
          return;
        }
        const y = f.resolve();
        if (y === f) {
          s(f, h);
          return;
        } else
          return o(y, h);
      }
      if (f.isUnaryExpression({
        prefix: !0
      })) {
        if (f.node.operator === "void")
          return;
        const m = f.get("argument");
        if (f.node.operator === "typeof" && (m.isFunction() || m.isClass()))
          return "function";
        const g = o(m, h);
        if (!h.confident)
          return;
        switch (f.node.operator) {
          case "!":
            return !g;
          case "+":
            return +g;
          case "-":
            return -g;
          case "~":
            return ~g;
          case "typeof":
            return typeof g;
        }
      }
      if (f.isArrayExpression()) {
        const m = [], g = f.get("elements");
        for (const y of g) {
          const v = y.evaluate();
          if (v.confident)
            m.push(v.value);
          else {
            s(v.deopt, h);
            return;
          }
        }
        return m;
      }
      if (f.isObjectExpression()) {
        const m = {}, g = f.get("properties");
        for (const y of g) {
          if (y.isObjectMethod() || y.isSpreadElement()) {
            s(y, h);
            return;
          }
          const v = y.get("key");
          let T;
          if (y.node.computed) {
            if (T = v.evaluate(), !T.confident) {
              s(T.deopt, h);
              return;
            }
            T = T.value;
          } else
            v.isIdentifier() ? T = v.node.name : T = v.node.value;
          let P = y.get("value").evaluate();
          if (!P.confident) {
            s(P.deopt, h);
            return;
          }
          P = P.value, m[T] = P;
        }
        return m;
      }
      if (f.isLogicalExpression()) {
        const m = h.confident, g = o(f.get("left"), h), y = h.confident;
        h.confident = m;
        const v = o(f.get("right"), h), T = h.confident;
        switch (f.node.operator) {
          case "||":
            return h.confident = y && (!!g || T), h.confident ? g || v : void 0;
          case "&&":
            return h.confident = y && (!g || T), h.confident ? g && v : void 0;
          case "??":
            return h.confident = y && (g != null || T), h.confident ? g != null ? g : v : void 0;
        }
      }
      if (f.isBinaryExpression()) {
        const m = o(f.get("left"), h);
        if (!h.confident)
          return;
        const g = o(f.get("right"), h);
        if (!h.confident)
          return;
        switch (f.node.operator) {
          case "-":
            return m - g;
          case "+":
            return m + g;
          case "/":
            return m / g;
          case "*":
            return m * g;
          case "%":
            return m % g;
          case "**":
            return Math.pow(m, g);
          case "<":
            return m < g;
          case ">":
            return m > g;
          case "<=":
            return m <= g;
          case ">=":
            return m >= g;
          case "==":
            return m == g;
          case "!=":
            return m != g;
          case "===":
            return m === g;
          case "!==":
            return m !== g;
          case "|":
            return m | g;
          case "&":
            return m & g;
          case "^":
            return m ^ g;
          case "<<":
            return m << g;
          case ">>":
            return m >> g;
          case ">>>":
            return m >>> g;
        }
      }
      if (f.isCallExpression()) {
        const m = f.get("callee");
        let g, y;
        if (m.isIdentifier() && !f.scope.getBinding(m.node.name) && r(m.node.name) && (y = jt[m.node.name]), m.isMemberExpression()) {
          const v = m.get("object"), T = m.get("property");
          if (v.isIdentifier() && T.isIdentifier() && r(v.node.name) && !i(T.node.name) && (g = jt[v.node.name], y = g[T.node.name]), v.isLiteral() && T.isIdentifier()) {
            const S = typeof v.node.value;
            (S === "string" || S === "number") && (g = v.node.value, y = g[T.node.name]);
          }
        }
        if (y) {
          const v = f.get("arguments").map((T) => o(T, h));
          return h.confident ? y.apply(g, v) : void 0;
        }
      }
      s(f, h);
    }
  }
  function u(f, h, m, g = !1) {
    let y = "", v = 0;
    const T = f.isTemplateLiteral() ? f.get("expressions") : f.get("quasi.expressions");
    for (const S of h) {
      if (!m.confident)
        break;
      y += g ? S.value.raw : S.value.cooked;
      const P = T[v++];
      P && (y += String(o(P, m)));
    }
    if (m.confident)
      return y;
  }
  function c() {
    const f = {
      confident: !0,
      deoptPath: null,
      seen: /* @__PURE__ */ new Map()
    };
    let h = o(this, f);
    return f.confident || (h = void 0), {
      confident: f.confident,
      deopt: f.deoptPath,
      value: h
    };
  }
  return $b;
}
var eh = {}, iS = {};
Object.defineProperty(iS, "__esModule", {
  value: !0
});
iS.default = yEt;
var wde = rn, Xxt = Qn();
const {
  NOT_LOCAL_BINDING: wX,
  cloneNode: Jxt,
  identifier: Qxt,
  isAssignmentExpression: Zxt,
  isAssignmentPattern: eEt,
  isFunction: Ade,
  isIdentifier: AX,
  isLiteral: CX,
  isNullLiteral: tEt,
  isObjectMethod: rEt,
  isObjectProperty: iEt,
  isRegExpLiteral: nEt,
  isRestElement: sEt,
  isTemplateLiteral: aEt,
  isVariableDeclarator: oEt,
  toBindingIdentifierName: lEt
} = Xxt;
function uEt(e) {
  const t = e.params.findIndex((r) => eEt(r) || sEt(r));
  return t === -1 ? e.params.length : t;
}
const cEt = wde.default.statement("\n  (function (FUNCTION_KEY) {\n    function FUNCTION_ID() {\n      return FUNCTION_KEY.apply(this, arguments);\n    }\n\n    FUNCTION_ID.toString = function () {\n      return FUNCTION_KEY.toString();\n    }\n\n    return FUNCTION_ID;\n  })(FUNCTION)\n"), pEt = wde.default.statement("\n  (function (FUNCTION_KEY) {\n    function* FUNCTION_ID() {\n      return yield* FUNCTION_KEY.apply(this, arguments);\n    }\n\n    FUNCTION_ID.toString = function () {\n      return FUNCTION_KEY.toString();\n    };\n\n    return FUNCTION_ID;\n  })(FUNCTION)\n"), fEt = {
  "ReferencedIdentifier|BindingIdentifier"(e, t) {
    e.node.name !== t.name || e.scope.getBindingIdentifier(t.name) !== t.outerDeclar || (t.selfReference = !0, e.stop());
  }
};
function hEt(e) {
  return tEt(e) ? "null" : nEt(e) ? "_".concat(e.pattern, "_").concat(e.flags) : aEt(e) ? e.quasis.map((t) => t.value.raw).join("") : e.value !== void 0 ? e.value + "" : "";
}
function dEt(e, t, r, i) {
  if (e.selfReference)
    if (i.hasBinding(r.name) && !i.hasGlobal(r.name))
      i.rename(r.name);
    else {
      if (!Ade(t))
        return;
      let n = cEt;
      t.generator && (n = pEt);
      const s = n({
        FUNCTION: t,
        FUNCTION_ID: r,
        FUNCTION_KEY: i.generateUidIdentifier(r.name)
      }).expression, a = s.callee.body.body[0].params;
      for (let o = 0, l = uEt(t); o < l; o++)
        a.push(i.generateUidIdentifier("x"));
      return s;
    }
  t.id = r, i.getProgramParent().references[r.name] = !0;
}
function mEt(e, t, r) {
  const i = {
    selfAssignment: !1,
    selfReference: !1,
    outerDeclar: r.getBindingIdentifier(t),
    name: t
  }, n = r.getOwnBinding(t);
  return n ? n.kind === "param" && (i.selfReference = !0) : (i.outerDeclar || r.hasGlobal(t)) && r.traverse(e, fEt, i), i;
}
function yEt({
  node: e,
  parent: t,
  scope: r,
  id: i
}, n = !1, s = !1) {
  if (e.id)
    return;
  if ((iEt(t) || rEt(t, {
    kind: "method"
  })) && (!t.computed || CX(t.key)))
    i = t.key;
  else if (oEt(t)) {
    if (i = t.id, AX(i) && !n) {
      const u = r.parent.getBinding(i.name);
      if (u && u.constant && r.getBinding(i.name) === u) {
        e.id = Jxt(i), e.id[wX] = !0;
        return;
      }
    }
  } else if (Zxt(t, {
    operator: "="
  }))
    i = t.left;
  else if (!i)
    return;
  let a;
  if (i && CX(i) ? a = hEt(i) : i && AX(i) && (a = i.name), a === void 0 || !s && Ade(e) && /[\uD800-\uDFFF]/.test(a))
    return;
  a = lEt(a);
  const o = Qxt(a);
  o[wX] = !0;
  const l = mEt(e, a, r);
  return dEt(l, e, o, r) || e;
}
var _X;
function gEt() {
  if (_X)
    return eh;
  _X = 1, Object.defineProperty(eh, "__esModule", {
    value: !0
  }), eh.arrowFunctionToExpression = R, eh.ensureBlock = j, eh.toComputedKey = q, eh.unwrapFunctionEnvironment = N;
  var e = Ui(), t = Io, r = iS, i = P_();
  const {
    arrowFunctionExpression: n,
    assignmentExpression: s,
    binaryExpression: a,
    blockStatement: o,
    callExpression: l,
    conditionalExpression: u,
    expressionStatement: c,
    identifier: f,
    isIdentifier: h,
    jsxIdentifier: m,
    logicalExpression: g,
    LOGICAL_OPERATORS: y,
    memberExpression: v,
    metaProperty: T,
    numericLiteral: S,
    objectExpression: P,
    restElement: x,
    returnStatement: C,
    sequenceExpression: D,
    spreadElement: w,
    stringLiteral: A,
    super: I,
    thisExpression: L,
    toExpression: O,
    unaryExpression: F
  } = e;
  function q() {
    let fe;
    if (this.isMemberExpression())
      fe = this.node.property;
    else if (this.isProperty() || this.isMethod())
      fe = this.node.key;
    else
      throw new ReferenceError("todo");
    return this.node.computed || h(fe) && (fe = A(fe.name)), fe;
  }
  function j() {
    const fe = this.get("body"), Z = fe.node;
    if (Array.isArray(fe))
      throw new Error("Can't convert array path to a block statement");
    if (!Z)
      throw new Error("Can't convert node without a body");
    if (fe.isBlockStatement())
      return Z;
    const ue = [];
    let me = "body", xe, Pe;
    fe.isStatement() ? (Pe = "body", xe = 0, ue.push(fe.node)) : (me += ".body.0", this.isFunction() ? (xe = "argument", ue.push(C(fe.node))) : (xe = "expression", ue.push(c(fe.node)))), this.node.body = o(ue);
    const ve = this.get(me);
    return fe.setup(ve, Pe ? ve.node[Pe] : ve.node, Pe, xe), this.node;
  }
  eh.arrowFunctionToShadowed = function() {
    this.isArrowFunctionExpression() && this.arrowFunctionToExpression();
  };
  function N() {
    if (!this.isArrowFunctionExpression() && !this.isFunctionExpression() && !this.isFunctionDeclaration())
      throw this.buildCodeFrameError("Can only unwrap the environment of a function.");
    V(this);
  }
  function M(fe, Z) {
    fe.node.type = Z;
  }
  function R({
    allowInsertArrow: fe = !0,
    allowInsertArrowWithRest: Z = fe,
    noNewArrows: ue = !(() => {
      var me;
      return (me = arguments[0]) == null ? void 0 : me.specCompliant;
    })()
  } = {}) {
    if (!this.isArrowFunctionExpression())
      throw this.buildCodeFrameError("Cannot convert non-arrow function to a function expression.");
    const {
      thisBinding: me,
      fnPath: xe
    } = V(this, ue, fe, Z);
    if (xe.ensureBlock(), M(xe, "FunctionExpression"), !ue) {
      const Pe = me ? null : xe.scope.generateUidIdentifier("arrowCheckId");
      return Pe && xe.parentPath.scope.push({
        id: Pe,
        init: P([])
      }), xe.get("body").unshiftContainer("body", c(l(this.hub.addHelper("newArrowCheck"), [L(), f(Pe ? Pe.name : me)]))), xe.replaceWith(l(v((0, r.default)(this, !0) || xe.node, f("bind")), [Pe ? f(Pe.name) : L()])), xe.get("callee.object");
    }
    return xe;
  }
  const $ = (0, i.merge)([{
    CallExpression(fe, {
      allSuperCalls: Z
    }) {
      fe.get("callee").isSuper() && Z.push(fe);
    }
  }, t.default]);
  function V(fe, Z = !0, ue = !0, me = !0) {
    let xe, Pe = fe.findParent((re) => {
      if (re.isArrowFunctionExpression()) {
        var Te;
        return (Te = xe) != null || (xe = re), !1;
      }
      return re.isFunction() || re.isProgram() || re.isClassProperty({
        static: !1
      }) || re.isClassPrivateProperty({
        static: !1
      });
    });
    const ve = Pe.isClassMethod({
      kind: "constructor"
    });
    if (Pe.isClassProperty() || Pe.isClassPrivateProperty())
      if (xe)
        Pe = xe;
      else if (ue)
        fe.replaceWith(l(n([], O(fe.node)), [])), Pe = fe.get("callee"), fe = Pe.get("body");
      else
        throw fe.buildCodeFrameError("Unable to transform arrow inside class property");
    const {
      thisPaths: Xe,
      argumentsPaths: st,
      newTargetPaths: Se,
      superProps: oe,
      superCalls: te
    } = ye(fe);
    if (ve && te.length > 0) {
      if (!ue)
        throw te[0].buildCodeFrameError("When using '@babel/plugin-transform-arrow-functions', it's not possible to compile `super()` in an arrow function without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");
      if (!me)
        throw te[0].buildCodeFrameError("When using '@babel/plugin-transform-parameters', it's not possible to compile `super()` in an arrow function with default or rest parameters without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");
      const re = [];
      Pe.traverse($, {
        allSuperCalls: re
      });
      const Te = le(Pe);
      re.forEach((ze) => {
        const Ze = f(Te);
        Ze.loc = ze.node.callee.loc, ze.get("callee").replaceWith(Ze);
      });
    }
    if (st.length > 0) {
      const re = ae(Pe, "arguments", () => {
        const Te = () => f("arguments");
        return Pe.scope.path.isProgram() ? u(a("===", F("typeof", Te()), A("undefined")), Pe.scope.buildUndefinedNode(), Te()) : Te();
      });
      st.forEach((Te) => {
        const ze = f(re);
        ze.loc = Te.node.loc, Te.replaceWith(ze);
      });
    }
    if (Se.length > 0) {
      const re = ae(Pe, "newtarget", () => T(f("new"), f("target")));
      Se.forEach((Te) => {
        const ze = f(re);
        ze.loc = Te.node.loc, Te.replaceWith(ze);
      });
    }
    if (oe.length > 0) {
      if (!ue)
        throw oe[0].buildCodeFrameError("When using '@babel/plugin-transform-arrow-functions', it's not possible to compile `super.prop` in an arrow function without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");
      oe.reduce((Te, ze) => Te.concat(z(ze)), []).forEach((Te) => {
        const ze = Te.node.computed ? "" : Te.get("property").node.name, Ze = Te.parentPath, pt = Ze.isAssignmentExpression({
          left: Te.node
        }), ut = Ze.isCallExpression({
          callee: Te.node
        }), bt = Ze.isTaggedTemplateExpression({
          tag: Te.node
        }), vt = ne(Pe, pt, ze), ge = [];
        if (Te.node.computed && ge.push(Te.get("property").node), pt) {
          const $e = Ze.node.right;
          ge.push($e);
        }
        const pe = l(f(vt), ge);
        ut ? (Ze.unshiftContainer("arguments", L()), Te.replaceWith(v(pe, f("call"))), Xe.push(Ze.get("arguments.0"))) : pt ? Ze.replaceWith(pe) : bt ? (Te.replaceWith(l(v(pe, f("bind"), !1), [L()])), Xe.push(Te.get("arguments.0"))) : Te.replaceWith(pe);
      });
    }
    let se;
    return (Xe.length > 0 || !Z) && (se = G(Pe, ve), (Z || ve && W(Pe)) && (Xe.forEach((re) => {
      const Te = re.isJSX() ? m(se) : f(se);
      Te.loc = re.node.loc, re.replaceWith(Te);
    }), Z || (se = null))), {
      thisBinding: se,
      fnPath: fe
    };
  }
  function K(fe) {
    return y.includes(fe);
  }
  function z(fe) {
    if (fe.parentPath.isAssignmentExpression() && fe.parentPath.node.operator !== "=") {
      const ue = fe.parentPath, me = ue.node.operator.slice(0, -1), xe = ue.node.right, Pe = K(me);
      if (fe.node.computed) {
        const ve = fe.scope.generateDeclaredUidIdentifier("tmp"), Xe = fe.node.object, st = fe.node.property;
        ue.get("left").replaceWith(v(Xe, s("=", ve, st), !0)), ue.get("right").replaceWith(Z(Pe ? "=" : me, v(Xe, f(ve.name), !0), xe));
      } else {
        const ve = fe.node.object, Xe = fe.node.property;
        ue.get("left").replaceWith(v(ve, Xe)), ue.get("right").replaceWith(Z(Pe ? "=" : me, v(ve, f(Xe.name)), xe));
      }
      return Pe ? ue.replaceWith(g(me, ue.node.left, ue.node.right)) : ue.node.operator = "=", [ue.get("left"), ue.get("right").get("left")];
    } else if (fe.parentPath.isUpdateExpression()) {
      const ue = fe.parentPath, me = fe.scope.generateDeclaredUidIdentifier("tmp"), xe = fe.node.computed ? fe.scope.generateDeclaredUidIdentifier("prop") : null, Pe = [s("=", me, v(fe.node.object, xe ? s("=", xe, fe.node.property) : fe.node.property, fe.node.computed)), s("=", v(fe.node.object, xe ? f(xe.name) : fe.node.property, fe.node.computed), a(fe.parentPath.node.operator[0], f(me.name), S(1)))];
      fe.parentPath.node.prefix || Pe.push(f(me.name)), ue.replaceWith(D(Pe));
      const ve = ue.get("expressions.0.right"), Xe = ue.get("expressions.1.left");
      return [ve, Xe];
    }
    return [fe];
    function Z(ue, me, xe) {
      return ue === "=" ? s("=", me, xe) : a(ue, me, xe);
    }
  }
  function W(fe) {
    return fe.isClassMethod() && !!fe.parentPath.parentPath.node.superClass;
  }
  const Y = (0, i.merge)([{
    CallExpression(fe, {
      supers: Z,
      thisBinding: ue
    }) {
      fe.get("callee").isSuper() && (Z.has(fe.node) || (Z.add(fe.node), fe.replaceWithMultiple([fe.node, s("=", f(ue), f("this"))])));
    }
  }, t.default]);
  function G(fe, Z) {
    return ae(fe, "this", (ue) => {
      if (!Z || !W(fe))
        return L();
      fe.traverse(Y, {
        supers: /* @__PURE__ */ new WeakSet(),
        thisBinding: ue
      });
    });
  }
  function le(fe) {
    return ae(fe, "supercall", () => {
      const Z = fe.scope.generateUidIdentifier("args");
      return n([x(Z)], l(I(), [w(f(Z.name))]));
    });
  }
  function ne(fe, Z, ue) {
    const me = Z ? "set" : "get";
    return ae(fe, "superprop_".concat(me, ":").concat(ue || ""), () => {
      const xe = [];
      let Pe;
      if (ue)
        Pe = v(I(), f(ue));
      else {
        const ve = fe.scope.generateUidIdentifier("prop");
        xe.unshift(ve), Pe = v(I(), f(ve.name), !0);
      }
      if (Z) {
        const ve = fe.scope.generateUidIdentifier("value");
        xe.push(ve), Pe = s("=", Pe, f(ve.name));
      }
      return n(xe, Pe);
    });
  }
  function ae(fe, Z, ue) {
    const me = "binding:" + Z;
    let xe = fe.getData(me);
    if (!xe) {
      const Pe = fe.scope.generateUidIdentifier(Z);
      xe = Pe.name, fe.setData(me, xe), fe.scope.push({
        id: Pe,
        init: ue(xe)
      });
    }
    return xe;
  }
  const be = (0, i.merge)([{
    ThisExpression(fe, {
      thisPaths: Z
    }) {
      Z.push(fe);
    },
    JSXIdentifier(fe, {
      thisPaths: Z
    }) {
      fe.node.name === "this" && (!fe.parentPath.isJSXMemberExpression({
        object: fe.node
      }) && !fe.parentPath.isJSXOpeningElement({
        name: fe.node
      }) || Z.push(fe));
    },
    CallExpression(fe, {
      superCalls: Z
    }) {
      fe.get("callee").isSuper() && Z.push(fe);
    },
    MemberExpression(fe, {
      superProps: Z
    }) {
      fe.get("object").isSuper() && Z.push(fe);
    },
    Identifier(fe, {
      argumentsPaths: Z
    }) {
      if (!fe.isReferencedIdentifier({
        name: "arguments"
      }))
        return;
      let ue = fe.scope;
      do {
        if (ue.hasOwnBinding("arguments")) {
          ue.rename("arguments");
          return;
        }
        if (ue.path.isFunction() && !ue.path.isArrowFunctionExpression())
          break;
      } while (ue = ue.parent);
      Z.push(fe);
    },
    MetaProperty(fe, {
      newTargetPaths: Z
    }) {
      fe.get("meta").isIdentifier({
        name: "new"
      }) && fe.get("property").isIdentifier({
        name: "target"
      }) && Z.push(fe);
    }
  }, t.default]);
  function ye(fe) {
    const Z = [], ue = [], me = [], xe = [], Pe = [];
    return fe.traverse(be, {
      thisPaths: Z,
      argumentsPaths: ue,
      newTargetPaths: me,
      superProps: xe,
      superCalls: Pe
    }), {
      thisPaths: Z,
      argumentsPaths: ue,
      newTargetPaths: me,
      superProps: xe,
      superCalls: Pe
    };
  }
  return eh;
}
var Sn = {}, IX;
function bEt() {
  if (IX)
    return Sn;
  IX = 1, Object.defineProperty(Sn, "__esModule", {
    value: !0
  }), Sn._guessExecutionStatusRelativeTo = F, Sn._resolve = R, Sn.canHaveVariableDeclarationOrExpression = T, Sn.canSwapBetweenExpressionAndStatement = S, Sn.equals = y, Sn.getSource = D, Sn.has = f, Sn.is = void 0, Sn.isCompletionRecord = P, Sn.isConstantExpression = $, Sn.isInStrictMode = V, Sn.isNodeType = v, Sn.isStatementOrBlock = x, Sn.isStatic = h, Sn.isnt = g, Sn.matchesPattern = c, Sn.referencesImport = C, Sn.resolve = M, Sn.willIMaybeExecuteBefore = w;
  var e = Ui();
  const {
    STATEMENT_OR_BLOCK_KEYS: t,
    VISITOR_KEYS: r,
    isBlockStatement: i,
    isExpression: n,
    isIdentifier: s,
    isLiteral: a,
    isStringLiteral: o,
    isType: l,
    matchesPattern: u
  } = e;
  function c(K, z) {
    return u(this.node, K, z);
  }
  function f(K) {
    const z = this.node && this.node[K];
    return z && Array.isArray(z) ? !!z.length : !!z;
  }
  function h() {
    return this.scope.isStatic(this.node);
  }
  const m = f;
  Sn.is = m;
  function g(K) {
    return !this.has(K);
  }
  function y(K, z) {
    return this.node[K] === z;
  }
  function v(K) {
    return l(this.type, K);
  }
  function T() {
    return (this.key === "init" || this.key === "left") && this.parentPath.isFor();
  }
  function S(K) {
    return this.key !== "body" || !this.parentPath.isArrowFunctionExpression() ? !1 : this.isExpression() ? i(K) : this.isBlockStatement() ? n(K) : !1;
  }
  function P(K) {
    let z = this, W = !0;
    do {
      const {
        type: Y,
        container: G
      } = z;
      if (!W && (z.isFunction() || Y === "StaticBlock"))
        return !!K;
      if (W = !1, Array.isArray(G) && z.key !== G.length - 1)
        return !1;
    } while ((z = z.parentPath) && !z.isProgram() && !z.isDoExpression());
    return !0;
  }
  function x() {
    return this.parentPath.isLabeledStatement() || i(this.container) ? !1 : t.includes(this.key);
  }
  function C(K, z) {
    if (!this.isReferencedIdentifier()) {
      if (this.isJSXMemberExpression() && this.node.property.name === z || (this.isMemberExpression() || this.isOptionalMemberExpression()) && (this.node.computed ? o(this.node.property, {
        value: z
      }) : this.node.property.name === z)) {
        const le = this.get("object");
        return le.isReferencedIdentifier() && le.referencesImport(K, "*");
      }
      return !1;
    }
    const W = this.scope.getBinding(this.node.name);
    if (!W || W.kind !== "module")
      return !1;
    const Y = W.path, G = Y.parentPath;
    if (!G.isImportDeclaration())
      return !1;
    if (G.node.source.value === K) {
      if (!z)
        return !0;
    } else
      return !1;
    return !!(Y.isImportDefaultSpecifier() && z === "default" || Y.isImportNamespaceSpecifier() && z === "*" || Y.isImportSpecifier() && s(Y.node.imported, {
      name: z
    }));
  }
  function D() {
    const K = this.node;
    if (K.end) {
      const z = this.hub.getCode();
      if (z)
        return z.slice(K.start, K.end);
    }
    return "";
  }
  function w(K) {
    return this._guessExecutionStatusRelativeTo(K) !== "after";
  }
  function A(K) {
    return K.isProgram() ? K : (K.parentPath.scope.getFunctionParent() || K.parentPath.scope.getProgramParent()).path;
  }
  function I(K, z) {
    switch (K) {
      case "LogicalExpression":
        return z === "right";
      case "ConditionalExpression":
      case "IfStatement":
        return z === "consequent" || z === "alternate";
      case "WhileStatement":
      case "DoWhileStatement":
      case "ForInStatement":
      case "ForOfStatement":
        return z === "body";
      case "ForStatement":
        return z === "body" || z === "update";
      case "SwitchStatement":
        return z === "cases";
      case "TryStatement":
        return z === "handler";
      case "AssignmentPattern":
        return z === "right";
      case "OptionalMemberExpression":
        return z === "property";
      case "OptionalCallExpression":
        return z === "arguments";
      default:
        return !1;
    }
  }
  function L(K, z) {
    for (let W = 0; W < z; W++) {
      const Y = K[W];
      if (I(Y.parent.type, Y.parentKey))
        return !0;
    }
    return !1;
  }
  const O = Symbol();
  function F(K) {
    return q(this, K, /* @__PURE__ */ new Map());
  }
  function q(K, z, W) {
    const Y = {
      this: A(K),
      target: A(z)
    };
    if (Y.target.node !== Y.this.node)
      return N(K, Y.target, W);
    const G = {
      target: z.getAncestry(),
      this: K.getAncestry()
    };
    if (G.target.indexOf(K) >= 0)
      return "after";
    if (G.this.indexOf(z) >= 0)
      return "before";
    let le;
    const ne = {
      target: 0,
      this: 0
    };
    for (; !le && ne.this < G.this.length; ) {
      const fe = G.this[ne.this];
      ne.target = G.target.indexOf(fe), ne.target >= 0 ? le = fe : ne.this++;
    }
    if (!le)
      throw new Error("Internal Babel error - The two compared nodes don't appear to belong to the same program.");
    if (L(G.this, ne.this - 1) || L(G.target, ne.target - 1))
      return "unknown";
    const ae = {
      this: G.this[ne.this - 1],
      target: G.target[ne.target - 1]
    };
    if (ae.target.listKey && ae.this.listKey && ae.target.container === ae.this.container)
      return ae.target.key > ae.this.key ? "before" : "after";
    const be = r[le.type], ye = {
      this: be.indexOf(ae.this.parentKey),
      target: be.indexOf(ae.target.parentKey)
    };
    return ye.target > ye.this ? "before" : "after";
  }
  function j(K, z, W) {
    if (z.isFunctionDeclaration()) {
      if (z.parentPath.isExportDeclaration())
        return "unknown";
    } else
      return q(K, z, W) === "before" ? "before" : "unknown";
    const Y = z.scope.getBinding(z.node.id.name);
    if (!Y.references)
      return "before";
    const G = Y.referencePaths;
    let le;
    for (const ne of G) {
      if (!!ne.find((ye) => ye.node === z.node))
        continue;
      if (ne.key !== "callee" || !ne.parentPath.isCallExpression())
        return "unknown";
      const be = q(K, ne, W);
      if (le && le !== be)
        return "unknown";
      le = be;
    }
    return le;
  }
  function N(K, z, W) {
    let Y = W.get(K.node), G;
    if (!Y)
      W.set(K.node, Y = /* @__PURE__ */ new Map());
    else if (G = Y.get(z.node))
      return G === O ? "unknown" : G;
    Y.set(z.node, O);
    const le = j(K, z, W);
    return Y.set(z.node, le), le;
  }
  function M(K, z) {
    return this._resolve(K, z) || this;
  }
  function R(K, z) {
    if (!(z && z.indexOf(this) >= 0))
      if (z = z || [], z.push(this), this.isVariableDeclarator()) {
        if (this.get("id").isIdentifier())
          return this.get("init").resolve(K, z);
      } else if (this.isReferencedIdentifier()) {
        const W = this.scope.getBinding(this.node.name);
        if (!W || !W.constant || W.kind === "module")
          return;
        if (W.path !== this) {
          const Y = W.path.resolve(K, z);
          return this.find((G) => G.node === Y.node) ? void 0 : Y;
        }
      } else {
        if (this.isTypeCastExpression())
          return this.get("expression").resolve(K, z);
        if (K && this.isMemberExpression()) {
          const W = this.toComputedKey();
          if (!a(W))
            return;
          const Y = W.value, G = this.get("object").resolve(K, z);
          if (G.isObjectExpression()) {
            const le = G.get("properties");
            for (const ne of le) {
              if (!ne.isProperty())
                continue;
              const ae = ne.get("key");
              let be = ne.isnt("computed") && ae.isIdentifier({
                name: Y
              });
              if (be = be || ae.isLiteral({
                value: Y
              }), be)
                return ne.get("value").resolve(K, z);
            }
          } else if (G.isArrayExpression() && !isNaN(+Y)) {
            const ne = G.get("elements")[Y];
            if (ne)
              return ne.resolve(K, z);
          }
        }
      }
  }
  function $() {
    if (this.isIdentifier()) {
      const K = this.scope.getBinding(this.node.name);
      return K ? K.constant : !1;
    }
    if (this.isLiteral())
      return this.isRegExpLiteral() ? !1 : this.isTemplateLiteral() ? this.get("expressions").every((K) => K.isConstantExpression()) : !0;
    if (this.isUnaryExpression())
      return this.node.operator !== "void" ? !1 : this.get("argument").isConstantExpression();
    if (this.isBinaryExpression()) {
      const {
        operator: K
      } = this.node;
      return K !== "in" && K !== "instanceof" && this.get("left").isConstantExpression() && this.get("right").isConstantExpression();
    }
    return !1;
  }
  function V() {
    return !!(this.isProgram() ? this : this.parentPath).find((W) => {
      if (W.isProgram({
        sourceType: "module"
      }) || W.isClass())
        return !0;
      if (W.isArrowFunctionExpression() && !W.get("body").isBlockStatement())
        return !1;
      let Y;
      if (W.isFunction())
        Y = W.node.body;
      else if (W.isProgram())
        Y = W.node;
      else
        return !1;
      for (const G of Y.directives)
        if (G.value.value === "use strict")
          return !0;
    });
  }
  return Sn;
}
var cn = {}, kX;
function vEt() {
  if (kX)
    return cn;
  kX = 1, Object.defineProperty(cn, "__esModule", {
    value: !0
  }), cn._call = i, cn._getQueueContexts = D, cn._resyncKey = g, cn._resyncList = y, cn._resyncParent = m, cn._resyncRemoved = v, cn.call = r, cn.isBlacklisted = cn.isDenylisted = n, cn.popContext = T, cn.pushContext = S, cn.requeue = C, cn.resync = h, cn.setContext = f, cn.setKey = x, cn.setScope = c, cn.setup = P, cn.skip = o, cn.skipKey = l, cn.stop = u, cn.visit = a;
  var e = u5(), t = pm();
  function r(w) {
    const A = this.opts;
    if (this.debug(w), this.node && this._call(A[w]))
      return !0;
    if (this.node) {
      var I;
      return this._call((I = A[this.node.type]) == null ? void 0 : I[w]);
    }
    return !1;
  }
  function i(w) {
    if (!w)
      return !1;
    for (const A of w) {
      if (!A)
        continue;
      const I = this.node;
      if (!I)
        return !0;
      const L = A.call(this.state, this, this.state);
      if (L && typeof L == "object" && typeof L.then == "function")
        throw new Error("You appear to be using a plugin with an async traversal visitor, which your current version of Babel does not support. If you're using a published plugin, you may need to upgrade your @babel/core version.");
      if (L)
        throw new Error("Unexpected return value from visitor method ".concat(A));
      if (this.node !== I || this._traverseFlags > 0)
        return !0;
    }
    return !1;
  }
  function n() {
    var w;
    const A = (w = this.opts.denylist) != null ? w : this.opts.blacklist;
    return A && A.indexOf(this.node.type) > -1;
  }
  function s(w, A) {
    w.context !== A && (w.context = A, w.state = A.state, w.opts = A.opts);
  }
  function a() {
    var w, A;
    if (!this.node || this.isDenylisted() || (w = (A = this.opts).shouldSkip) != null && w.call(A, this))
      return !1;
    const I = this.context;
    return this.shouldSkip || this.call("enter") ? (this.debug("Skip..."), this.shouldStop) : (s(this, I), this.debug("Recursing into..."), this.shouldStop = (0, e.traverseNode)(this.node, this.opts, this.scope, this.state, this, this.skipKeys), s(this, I), this.call("exit"), this.shouldStop);
  }
  function o() {
    this.shouldSkip = !0;
  }
  function l(w) {
    this.skipKeys == null && (this.skipKeys = {}), this.skipKeys[w] = !0;
  }
  function u() {
    this._traverseFlags |= t.SHOULD_SKIP | t.SHOULD_STOP;
  }
  function c() {
    var w, A;
    if ((w = this.opts) != null && w.noScope)
      return;
    let I = this.parentPath;
    ((this.key === "key" || this.listKey === "decorators") && I.isMethod() || this.key === "discriminant" && I.isSwitchStatement()) && (I = I.parentPath);
    let L;
    for (; I && !L; ) {
      var O;
      if ((O = I.opts) != null && O.noScope)
        return;
      L = I.scope, I = I.parentPath;
    }
    this.scope = this.getScope(L), (A = this.scope) == null || A.init();
  }
  function f(w) {
    return this.skipKeys != null && (this.skipKeys = {}), this._traverseFlags = 0, w && (this.context = w, this.state = w.state, this.opts = w.opts), this.setScope(), this;
  }
  function h() {
    this.removed || (this._resyncParent(), this._resyncList(), this._resyncKey());
  }
  function m() {
    this.parentPath && (this.parent = this.parentPath.node);
  }
  function g() {
    if (this.container && this.node !== this.container[this.key]) {
      if (Array.isArray(this.container)) {
        for (let w = 0; w < this.container.length; w++)
          if (this.container[w] === this.node) {
            this.setKey(w);
            return;
          }
      } else
        for (const w of Object.keys(this.container))
          if (this.container[w] === this.node) {
            this.setKey(w);
            return;
          }
      this.key = null;
    }
  }
  function y() {
    if (!this.parent || !this.inList)
      return;
    const w = this.parent[this.listKey];
    this.container !== w && (this.container = w || null);
  }
  function v() {
    (this.key == null || !this.container || this.container[this.key] !== this.node) && this._markRemoved();
  }
  function T() {
    this.contexts.pop(), this.contexts.length > 0 ? this.setContext(this.contexts[this.contexts.length - 1]) : this.setContext(void 0);
  }
  function S(w) {
    this.contexts.push(w), this.setContext(w);
  }
  function P(w, A, I, L) {
    this.listKey = I, this.container = A, this.parentPath = w || this.parentPath, this.setKey(L);
  }
  function x(w) {
    var A;
    this.key = w, this.node = this.container[this.key], this.type = (A = this.node) == null ? void 0 : A.type;
  }
  function C(w = this) {
    if (w.removed)
      return;
    const A = this.contexts;
    for (const I of A)
      I.maybeQueue(w);
  }
  function D() {
    let w = this, A = this.contexts;
    for (; !A.length && (w = w.parentPath, !!w); )
      A = w.contexts;
    return A;
  }
  return cn;
}
var Fp = {}, Ub = {}, OX;
function TEt() {
  if (OX)
    return Ub;
  OX = 1, Object.defineProperty(Ub, "__esModule", {
    value: !0
  }), Ub.hooks = void 0;
  const e = [function(t, r) {
    if (t.key === "test" && (r.isWhile() || r.isSwitchCase()) || t.key === "declaration" && r.isExportDeclaration() || t.key === "body" && r.isLabeledStatement() || t.listKey === "declarations" && r.isVariableDeclaration() && r.node.declarations.length === 1 || t.key === "expression" && r.isExpressionStatement())
      return r.remove(), !0;
  }, function(t, r) {
    if (r.isSequenceExpression() && r.node.expressions.length === 1)
      return r.replaceWith(r.node.expressions[0]), !0;
  }, function(t, r) {
    if (r.isBinary())
      return t.key === "left" ? r.replaceWith(r.node.right) : r.replaceWith(r.node.left), !0;
  }, function(t, r) {
    if (r.isIfStatement() && t.key === "consequent" || t.key === "body" && (r.isLoop() || r.isArrowFunctionExpression()))
      return t.replaceWith({
        type: "BlockStatement",
        body: []
      }), !0;
  }];
  return Ub.hooks = e, Ub;
}
var NX;
function SEt() {
  if (NX)
    return Fp;
  NX = 1, Object.defineProperty(Fp, "__esModule", {
    value: !0
  }), Fp._assertUnremoved = l, Fp._callRemovalHooks = s, Fp._markRemoved = o, Fp._remove = a, Fp._removeFromScope = n, Fp.remove = i;
  var e = TEt(), t = Ag(), r = pm();
  function i() {
    var u;
    if (this._assertUnremoved(), this.resync(), (u = this.opts) != null && u.noScope || this._removeFromScope(), this._callRemovalHooks()) {
      this._markRemoved();
      return;
    }
    this.shareCommentsWithSiblings(), this._remove(), this._markRemoved();
  }
  function n() {
    const u = this.getBindingIdentifiers();
    Object.keys(u).forEach((c) => this.scope.removeBinding(c));
  }
  function s() {
    for (const u of e.hooks)
      if (u(this, this.parentPath))
        return !0;
  }
  function a() {
    Array.isArray(this.container) ? (this.container.splice(this.key, 1), this.updateSiblingKeys(this.key, -1)) : this._replaceWith(null);
  }
  function o() {
    this._traverseFlags |= r.SHOULD_SKIP | r.REMOVED, this.parent && t.path.get(this.parent).delete(this.node), this.node = null;
  }
  function l() {
    if (this.removed)
      throw this.buildCodeFrameError("NodePath has been removed so is read-only.");
  }
  return Fp;
}
var po = {}, qb = {}, DX;
function xEt() {
  if (DX)
    return qb;
  DX = 1, Object.defineProperty(qb, "__esModule", {
    value: !0
  }), qb.default = void 0;
  var e = Ui(), t = e;
  const {
    react: r
  } = e, {
    cloneNode: i,
    jsxExpressionContainer: n,
    variableDeclaration: s,
    variableDeclarator: a
  } = t, o = {
    ReferencedIdentifier(u, c) {
      if (u.isJSXIdentifier() && r.isCompatTag(u.node.name) && !u.parentPath.isJSXMemberExpression())
        return;
      if (u.node.name === "this") {
        let h = u.scope;
        do
          if (h.path.isFunction() && !h.path.isArrowFunctionExpression())
            break;
        while (h = h.parent);
        h && c.breakOnScopePaths.push(h.path);
      }
      const f = u.scope.getBinding(u.node.name);
      if (f) {
        for (const h of f.constantViolations)
          if (h.scope !== f.path.scope) {
            c.mutableBinding = !0, u.stop();
            return;
          }
        f === c.scope.getBinding(u.node.name) && (c.bindings[u.node.name] = f);
      }
    }
  };
  class l {
    constructor(c, f) {
      this.breakOnScopePaths = void 0, this.bindings = void 0, this.mutableBinding = void 0, this.scopes = void 0, this.scope = void 0, this.path = void 0, this.attachAfter = void 0, this.breakOnScopePaths = [], this.bindings = {}, this.mutableBinding = !1, this.scopes = [], this.scope = f, this.path = c, this.attachAfter = !1;
    }
    isCompatibleScope(c) {
      for (const f of Object.keys(this.bindings)) {
        const h = this.bindings[f];
        if (!c.bindingIdentifierEquals(f, h.identifier))
          return !1;
      }
      return !0;
    }
    getCompatibleScopes() {
      let c = this.path.scope;
      do {
        if (this.isCompatibleScope(c))
          this.scopes.push(c);
        else
          break;
        if (this.breakOnScopePaths.indexOf(c.path) >= 0)
          break;
      } while (c = c.parent);
    }
    getAttachmentPath() {
      let c = this._getAttachmentPath();
      if (!c)
        return;
      let f = c.scope;
      if (f.path === c && (f = c.scope.parent), f.path.isProgram() || f.path.isFunction())
        for (const h of Object.keys(this.bindings)) {
          if (!f.hasOwnBinding(h))
            continue;
          const m = this.bindings[h];
          if (m.kind === "param" || m.path.parentKey === "params")
            continue;
          if (this.getAttachmentParentForPath(m.path).key >= c.key) {
            this.attachAfter = !0, c = m.path;
            for (const y of m.constantViolations)
              this.getAttachmentParentForPath(y).key > c.key && (c = y);
          }
        }
      return c;
    }
    _getAttachmentPath() {
      const f = this.scopes.pop();
      if (f) {
        if (f.path.isFunction())
          if (this.hasOwnParamBindings(f)) {
            if (this.scope === f)
              return;
            const h = f.path.get("body").get("body");
            for (let m = 0; m < h.length; m++)
              if (!h[m].node._blockHoist)
                return h[m];
          } else
            return this.getNextScopeAttachmentParent();
        else if (f.path.isProgram())
          return this.getNextScopeAttachmentParent();
      }
    }
    getNextScopeAttachmentParent() {
      const c = this.scopes.pop();
      if (c)
        return this.getAttachmentParentForPath(c.path);
    }
    getAttachmentParentForPath(c) {
      do
        if (!c.parentPath || Array.isArray(c.container) && c.isStatement())
          return c;
      while (c = c.parentPath);
    }
    hasOwnParamBindings(c) {
      for (const f of Object.keys(this.bindings)) {
        if (!c.hasOwnBinding(f))
          continue;
        const h = this.bindings[f];
        if (h.kind === "param" && h.constant)
          return !0;
      }
      return !1;
    }
    run() {
      if (this.path.traverse(o, this), this.mutableBinding)
        return;
      this.getCompatibleScopes();
      const c = this.getAttachmentPath();
      if (!c || c.getFunctionParent() === this.path.getFunctionParent())
        return;
      let f = c.scope.generateUidIdentifier("ref");
      const h = a(f, this.path.node), m = this.attachAfter ? "insertAfter" : "insertBefore", [g] = c[m]([c.isVariableDeclarator() ? h : s("var", [h])]), y = this.path.parentPath;
      return y.isJSXElement() && this.path.container === y.node.children && (f = n(f)), this.path.replaceWith(i(f)), c.isVariableDeclarator() ? g.get("init") : g.get("declarations.0.init");
    }
  }
  return qb.default = l, qb;
}
var LX;
function EEt() {
  if (LX)
    return po;
  LX = 1, Object.defineProperty(po, "__esModule", {
    value: !0
  }), po._containerInsert = x, po._containerInsertAfter = D, po._containerInsertBefore = C, po._verifyNodeList = F, po.hoist = N, po.insertAfter = L, po.insertBefore = P, po.pushContainer = j, po.unshiftContainer = q, po.updateSiblingKeys = O;
  var e = Ag(), t = xEt(), r = pm(), i = Ui();
  const {
    arrowFunctionExpression: n,
    assertExpression: s,
    assignmentExpression: a,
    blockStatement: o,
    callExpression: l,
    cloneNode: u,
    expressionStatement: c,
    isAssignmentExpression: f,
    isCallExpression: h,
    isExportNamedDeclaration: m,
    isExpression: g,
    isIdentifier: y,
    isSequenceExpression: v,
    isSuper: T,
    thisExpression: S
  } = i;
  function P(M) {
    this._assertUnremoved();
    const R = this._verifyNodeList(M), {
      parentPath: $,
      parent: V
    } = this;
    if ($.isExpressionStatement() || $.isLabeledStatement() || m(V) || $.isExportDefaultDeclaration() && this.isDeclaration())
      return $.insertBefore(R);
    if (this.isNodeType("Expression") && !this.isJSXElement() || $.isForStatement() && this.key === "init")
      return this.node && R.push(this.node), this.replaceExpressionWithStatements(R);
    if (Array.isArray(this.container))
      return this._containerInsertBefore(R);
    if (this.isStatementOrBlock()) {
      const K = this.node, z = K && (!this.isExpressionStatement() || K.expression != null);
      return this.replaceWith(o(z ? [K] : [])), this.unshiftContainer("body", R);
    } else
      throw new Error("We don't know what to do with this node type. We were previously a Statement but we can't fit in here?");
  }
  function x(M, R) {
    this.updateSiblingKeys(M, R.length);
    const $ = [];
    this.container.splice(M, 0, ...R);
    for (let K = 0; K < R.length; K++) {
      const z = M + K, W = this.getSibling(z);
      $.push(W), this.context && this.context.queue && W.pushContext(this.context);
    }
    const V = this._getQueueContexts();
    for (const K of $) {
      K.setScope(), K.debug("Inserted.");
      for (const z of V)
        z.maybeQueue(K, !0);
    }
    return $;
  }
  function C(M) {
    return this._containerInsert(this.key, M);
  }
  function D(M) {
    return this._containerInsert(this.key + 1, M);
  }
  const w = (M) => M[M.length - 1];
  function A(M) {
    return v(M.parent) && (w(M.parent.expressions) !== M.node || A(M.parentPath));
  }
  function I(M, R) {
    if (!f(M) || !y(M.left))
      return !1;
    const $ = R.getBlockParent();
    return $.hasOwnBinding(M.left.name) && $.getOwnBinding(M.left.name).constantViolations.length <= 1;
  }
  function L(M) {
    if (this._assertUnremoved(), this.isSequenceExpression())
      return w(this.get("expressions")).insertAfter(M);
    const R = this._verifyNodeList(M), {
      parentPath: $,
      parent: V
    } = this;
    if ($.isExpressionStatement() || $.isLabeledStatement() || m(V) || $.isExportDefaultDeclaration() && this.isDeclaration())
      return $.insertAfter(R.map((K) => g(K) ? c(K) : K));
    if (this.isNodeType("Expression") && !this.isJSXElement() && !$.isJSXElement() || $.isForStatement() && this.key === "init") {
      if (this.node) {
        const K = this.node;
        let {
          scope: z
        } = this;
        if (z.path.isPattern())
          return s(K), this.replaceWith(l(n([], K), [])), this.get("callee.body").insertAfter(R), [this];
        if (A(this))
          R.unshift(K);
        else if (h(K) && T(K.callee))
          R.unshift(K), R.push(S());
        else if (I(K, z))
          R.unshift(K), R.push(u(K.left));
        else if (z.isPure(K, !0))
          R.push(K);
        else {
          $.isMethod({
            computed: !0,
            key: K
          }) && (z = z.parent);
          const W = z.generateDeclaredUidIdentifier();
          R.unshift(c(a("=", u(W), K))), R.push(c(u(W)));
        }
      }
      return this.replaceExpressionWithStatements(R);
    } else {
      if (Array.isArray(this.container))
        return this._containerInsertAfter(R);
      if (this.isStatementOrBlock()) {
        const K = this.node, z = K && (!this.isExpressionStatement() || K.expression != null);
        return this.replaceWith(o(z ? [K] : [])), this.pushContainer("body", R);
      } else
        throw new Error("We don't know what to do with this node type. We were previously a Statement but we can't fit in here?");
    }
  }
  function O(M, R) {
    if (!this.parent)
      return;
    const $ = e.path.get(this.parent);
    for (const [, V] of $)
      typeof V.key == "number" && V.key >= M && (V.key += R);
  }
  function F(M) {
    if (!M)
      return [];
    Array.isArray(M) || (M = [M]);
    for (let R = 0; R < M.length; R++) {
      const $ = M[R];
      let V;
      if ($ ? typeof $ != "object" ? V = "contains a non-object node" : $.type ? $ instanceof r.default && (V = "has a NodePath when it expected a raw object") : V = "without a type" : V = "has falsy node", V) {
        const K = Array.isArray($) ? "array" : typeof $;
        throw new Error("Node list ".concat(V, " with the index of ").concat(R, " and type of ").concat(K));
      }
    }
    return M;
  }
  function q(M, R) {
    return this._assertUnremoved(), R = this._verifyNodeList(R), r.default.get({
      parentPath: this,
      parent: this.node,
      container: this.node[M],
      listKey: M,
      key: 0
    }).setContext(this.context)._containerInsertBefore(R);
  }
  function j(M, R) {
    this._assertUnremoved();
    const $ = this._verifyNodeList(R), V = this.node[M];
    return r.default.get({
      parentPath: this,
      parent: this.node,
      container: V,
      listKey: M,
      key: V.length
    }).setContext(this.context).replaceWithMultiple($);
  }
  function N(M = this.scope) {
    return new t.default(this, M).run();
  }
  return po;
}
var ms = {}, MX;
function PEt() {
  if (MX)
    return ms;
  MX = 1, Object.defineProperty(ms, "__esModule", {
    value: !0
  }), ms._getKey = I, ms._getPattern = L, ms.get = A, ms.getAllNextSiblings = D, ms.getAllPrevSiblings = w, ms.getBindingIdentifierPaths = q, ms.getBindingIdentifiers = O, ms.getCompletionRecords = S, ms.getNextSibling = C, ms.getOpposite = f, ms.getOuterBindingIdentifierPaths = j, ms.getOuterBindingIdentifiers = F, ms.getPrevSibling = x, ms.getSibling = P;
  var e = pm(), t = Ui();
  const {
    getBindingIdentifiers: r,
    getOuterBindingIdentifiers: i,
    isDeclaration: n,
    numericLiteral: s,
    unaryExpression: a
  } = t, o = 0, l = 1;
  function u(N) {
    return {
      type: o,
      path: N
    };
  }
  function c(N) {
    return {
      type: l,
      path: N
    };
  }
  function f() {
    return this.key === "left" ? this.getSibling("right") : this.key === "right" ? this.getSibling("left") : null;
  }
  function h(N, M, R) {
    return N && M.push(...T(N, R)), M;
  }
  function m(N, M, R) {
    let $ = [];
    for (let V = 0; V < N.length; V++) {
      const K = N[V], z = T(K, R), W = [], Y = [];
      for (const G of z)
        G.type === o && W.push(G), G.type === l && Y.push(G);
      W.length && ($ = W), M.push(...Y);
    }
    return M.push(...$), M;
  }
  function g(N) {
    N.forEach((M) => {
      M.type = l;
    });
  }
  function y(N, M) {
    N.forEach((R) => {
      R.path.isBreakStatement({
        label: null
      }) && (M ? R.path.replaceWith(a("void", s(0))) : R.path.remove());
    });
  }
  function v(N, M) {
    const R = [];
    if (M.canHaveBreak) {
      let $ = [];
      for (let V = 0; V < N.length; V++) {
        const K = N[V], z = Object.assign({}, M, {
          inCaseClause: !1
        });
        K.isBlockStatement() && (M.inCaseClause || M.shouldPopulateBreak) ? z.shouldPopulateBreak = !0 : z.shouldPopulateBreak = !1;
        const W = T(K, z);
        if (W.length > 0 && W.every((Y) => Y.type === l)) {
          $.length > 0 && W.every((Y) => Y.path.isBreakStatement({
            label: null
          })) ? (g($), R.push(...$), $.some((Y) => Y.path.isDeclaration()) && (R.push(...W), y(W, !0)), y(W, !1)) : (R.push(...W), M.shouldPopulateBreak || y(W, !0));
          break;
        }
        if (V === N.length - 1)
          R.push(...W);
        else {
          $ = [];
          for (let Y = 0; Y < W.length; Y++) {
            const G = W[Y];
            G.type === l && R.push(G), G.type === o && $.push(G);
          }
        }
      }
    } else if (N.length)
      for (let $ = N.length - 1; $ >= 0; $--) {
        const V = T(N[$], M);
        if (V.length > 1 || V.length === 1 && !V[0].path.isVariableDeclaration()) {
          R.push(...V);
          break;
        }
      }
    return R;
  }
  function T(N, M) {
    let R = [];
    if (N.isIfStatement())
      R = h(N.get("consequent"), R, M), R = h(N.get("alternate"), R, M);
    else {
      if (N.isDoExpression() || N.isFor() || N.isWhile() || N.isLabeledStatement())
        return h(N.get("body"), R, M);
      if (N.isProgram() || N.isBlockStatement())
        return v(N.get("body"), M);
      if (N.isFunction())
        return T(N.get("body"), M);
      if (N.isTryStatement())
        R = h(N.get("block"), R, M), R = h(N.get("handler"), R, M);
      else {
        if (N.isCatchClause())
          return h(N.get("body"), R, M);
        if (N.isSwitchStatement())
          return m(N.get("cases"), R, M);
        if (N.isSwitchCase())
          return v(N.get("consequent"), {
            canHaveBreak: !0,
            shouldPopulateBreak: !1,
            inCaseClause: !0
          });
        N.isBreakStatement() ? R.push(c(N)) : R.push(u(N));
      }
    }
    return R;
  }
  function S() {
    return T(this, {
      canHaveBreak: !1,
      shouldPopulateBreak: !1,
      inCaseClause: !1
    }).map((M) => M.path);
  }
  function P(N) {
    return e.default.get({
      parentPath: this.parentPath,
      parent: this.parent,
      container: this.container,
      listKey: this.listKey,
      key: N
    }).setContext(this.context);
  }
  function x() {
    return this.getSibling(this.key - 1);
  }
  function C() {
    return this.getSibling(this.key + 1);
  }
  function D() {
    let N = this.key, M = this.getSibling(++N);
    const R = [];
    for (; M.node; )
      R.push(M), M = this.getSibling(++N);
    return R;
  }
  function w() {
    let N = this.key, M = this.getSibling(--N);
    const R = [];
    for (; M.node; )
      R.push(M), M = this.getSibling(--N);
    return R;
  }
  function A(N, M = !0) {
    M === !0 && (M = this.context);
    const R = N.split(".");
    return R.length === 1 ? this._getKey(N, M) : this._getPattern(R, M);
  }
  function I(N, M) {
    const R = this.node, $ = R[N];
    return Array.isArray($) ? $.map((V, K) => e.default.get({
      listKey: N,
      parentPath: this,
      parent: R,
      container: $,
      key: K
    }).setContext(M)) : e.default.get({
      parentPath: this,
      parent: R,
      container: R,
      key: N
    }).setContext(M);
  }
  function L(N, M) {
    let R = this;
    for (const $ of N)
      $ === "." ? R = R.parentPath : Array.isArray(R) ? R = R[$] : R = R.get($, M);
    return R;
  }
  function O(N) {
    return r(this.node, N);
  }
  function F(N) {
    return i(this.node, N);
  }
  function q(N = !1, M = !1) {
    const $ = [this], V = /* @__PURE__ */ Object.create(null);
    for (; $.length; ) {
      const K = $.shift();
      if (!K || !K.node)
        continue;
      const z = r.keys[K.node.type];
      if (K.isIdentifier()) {
        N ? (V[K.node.name] = V[K.node.name] || []).push(K) : V[K.node.name] = K;
        continue;
      }
      if (K.isExportDeclaration()) {
        const W = K.get("declaration");
        n(W) && $.push(W);
        continue;
      }
      if (M) {
        if (K.isFunctionDeclaration()) {
          $.push(K.get("id"));
          continue;
        }
        if (K.isFunctionExpression())
          continue;
      }
      if (z)
        for (let W = 0; W < z.length; W++) {
          const Y = z[W], G = K.get(Y);
          Array.isArray(G) ? $.push(...G) : G.node && $.push(G);
        }
    }
    return V;
  }
  function j(N = !1) {
    return this.getBindingIdentifierPaths(N, !0);
  }
  return ms;
}
var Fm = {}, RX;
function wEt() {
  if (RX)
    return Fm;
  RX = 1, Object.defineProperty(Fm, "__esModule", {
    value: !0
  }), Fm.addComment = s, Fm.addComments = a, Fm.shareCommentsWithSiblings = i;
  var e = Ui();
  const {
    addComment: t,
    addComments: r
  } = e;
  function i() {
    if (typeof this.key == "string")
      return;
    const o = this.node;
    if (!o)
      return;
    const l = o.trailingComments, u = o.leadingComments;
    if (!l && !u)
      return;
    const c = this.getSibling(this.key - 1), f = this.getSibling(this.key + 1), h = !!c.node, m = !!f.node;
    h && (u && c.addComments("trailing", n(u, c.node.trailingComments)), l && !m && c.addComments("trailing", l)), m && (l && f.addComments("leading", n(l, f.node.leadingComments)), u && !h && f.addComments("leading", u));
  }
  function n(o, l) {
    if (!l)
      return o;
    let u = -1;
    return o.filter((c) => {
      const f = l.indexOf(c, u);
      if (f === -1)
        return !0;
      u = f;
    });
  }
  function s(o, l, u) {
    t(this.node, o, l, u);
  }
  function a(o, l) {
    r(this.node, o, l);
  }
  return Fm;
}
var Dn = {}, BX;
function AEt() {
  if (BX)
    return Dn;
  BX = 1, Object.defineProperty(Dn, "__esModule", {
    value: !0
  }), Dn.isBindingIdentifier = I, Dn.isBlockScoped = j, Dn.isExistentialTypeParam = Y, Dn.isExpression = O, Dn.isFlow = V, Dn.isForAwaitStatement = W, Dn.isGenerated = R, Dn.isNumericLiteralTypeAnnotation = G, Dn.isPure = $, Dn.isReferenced = q, Dn.isReferencedIdentifier = w, Dn.isReferencedMemberExpression = A, Dn.isRestProperty = K, Dn.isScope = F, Dn.isSpreadProperty = z, Dn.isStatement = L, Dn.isUser = M, Dn.isVar = N;
  var e = Ui();
  const {
    isBinding: t,
    isBlockScoped: r,
    isExportDeclaration: i,
    isExpression: n,
    isFlow: s,
    isForStatement: a,
    isForXStatement: o,
    isIdentifier: l,
    isImportDeclaration: u,
    isImportSpecifier: c,
    isJSXIdentifier: f,
    isJSXMemberExpression: h,
    isMemberExpression: m,
    isRestElement: g,
    isReferenced: y,
    isScope: v,
    isStatement: T,
    isVar: S,
    isVariableDeclaration: P,
    react: x,
    isForOfStatement: C
  } = e, {
    isCompatTag: D
  } = x;
  function w(le) {
    const {
      node: ne,
      parent: ae
    } = this;
    if (!l(ne, le) && !h(ae, le))
      if (f(ne, le)) {
        if (D(ne.name))
          return !1;
      } else
        return !1;
    return y(ne, ae, this.parentPath.parent);
  }
  function A() {
    const {
      node: le,
      parent: ne
    } = this;
    return m(le) && y(le, ne);
  }
  function I() {
    const {
      node: le,
      parent: ne
    } = this, ae = this.parentPath.parent;
    return l(le) && t(le, ne, ae);
  }
  function L() {
    const {
      node: le,
      parent: ne
    } = this;
    return T(le) ? !(P(le) && (o(ne, {
      left: le
    }) || a(ne, {
      init: le
    }))) : !1;
  }
  function O() {
    return this.isIdentifier() ? this.isReferencedIdentifier() : n(this.node);
  }
  function F() {
    return v(this.node, this.parent);
  }
  function q() {
    return y(this.node, this.parent);
  }
  function j() {
    return r(this.node);
  }
  function N() {
    return S(this.node);
  }
  function M() {
    return this.node && !!this.node.loc;
  }
  function R() {
    return !this.isUser();
  }
  function $(le) {
    return this.scope.isPure(this.node, le);
  }
  function V() {
    const {
      node: le
    } = this;
    return s(le) ? !0 : u(le) ? le.importKind === "type" || le.importKind === "typeof" : i(le) ? le.exportKind === "type" : c(le) ? le.importKind === "type" || le.importKind === "typeof" : !1;
  }
  function K() {
    return g(this.node) && this.parentPath && this.parentPath.isObjectPattern();
  }
  function z() {
    return g(this.node) && this.parentPath && this.parentPath.isObjectExpression();
  }
  function W() {
    return C(this.node, {
      await: !0
    });
  }
  function Y() {
    throw new Error("`path.isExistentialTypeParam` has been renamed to `path.isExistsTypeAnnotation()` in Babel 7.");
  }
  function G() {
    throw new Error("`path.isNumericLiteralTypeAnnotation()` has been renamed to `path.isNumberLiteralTypeAnnotation()` in Babel 7.");
  }
  return Dn;
}
var FX;
function pm() {
  if (FX)
    return Sc;
  FX = 1, Object.defineProperty(Sc, "__esModule", {
    value: !0
  }), Sc.default = Sc.SHOULD_STOP = Sc.SHOULD_SKIP = Sc.REMOVED = void 0;
  var e = Ghe(), t = Yhe(), r = yp(), i = Jhe(), n = Ui(), s = n, a = Ag(), o = C9(), l = wst(), u = _st(), c = Gxt(), f = Yxt(), h = gEt(), m = bEt(), g = vEt(), y = SEt(), v = EEt(), T = PEt(), S = wEt(), P = AEt();
  const {
    validate: x
  } = n, C = t("babel"), D = 1 << 0;
  Sc.REMOVED = D;
  const w = 1 << 1;
  Sc.SHOULD_STOP = w;
  const A = 1 << 2;
  Sc.SHOULD_SKIP = A;
  class I {
    constructor(F, q) {
      this.contexts = [], this.state = null, this.opts = null, this._traverseFlags = 0, this.skipKeys = null, this.parentPath = null, this.container = null, this.listKey = null, this.key = null, this.node = null, this.type = null, this.parent = q, this.hub = F, this.data = null, this.context = null, this.scope = null;
    }
    static get({
      hub: F,
      parentPath: q,
      parent: j,
      container: N,
      listKey: M,
      key: R
    }) {
      if (!F && q && (F = q.hub), !j)
        throw new Error("To get a node path the parent needs to exist");
      const $ = N[R];
      let V = a.path.get(j);
      V || (V = /* @__PURE__ */ new Map(), a.path.set(j, V));
      let K = V.get($);
      return K || (K = new I(F, j), $ && V.set($, K)), K.setup(q, N, M, R), K;
    }
    getScope(F) {
      return this.isScope() ? new i.default(this) : F;
    }
    setData(F, q) {
      return this.data == null && (this.data = /* @__PURE__ */ Object.create(null)), this.data[F] = q;
    }
    getData(F, q) {
      this.data == null && (this.data = /* @__PURE__ */ Object.create(null));
      let j = this.data[F];
      return j === void 0 && q !== void 0 && (j = this.data[F] = q), j;
    }
    hasNode() {
      return this.node != null;
    }
    buildCodeFrameError(F, q = SyntaxError) {
      return this.hub.buildError(this.node, F, q);
    }
    traverse(F, q) {
      (0, r.default)(this.node, F, this.scope, q, this);
    }
    set(F, q) {
      x(this.node, F, q), this.node[F] = q;
    }
    getPathLocation() {
      const F = [];
      let q = this;
      do {
        let j = q.key;
        q.inList && (j = "".concat(q.listKey, "[").concat(j, "]")), F.unshift(j);
      } while (q = q.parentPath);
      return F.join(".");
    }
    debug(F) {
      C.enabled && C("".concat(this.getPathLocation(), " ").concat(this.type, ": ").concat(F));
    }
    toString() {
      return (0, o.default)(this.node).code;
    }
    get inList() {
      return !!this.listKey;
    }
    set inList(F) {
      F || (this.listKey = null);
    }
    get parentKey() {
      return this.listKey || this.key;
    }
    get shouldSkip() {
      return !!(this._traverseFlags & A);
    }
    set shouldSkip(F) {
      F ? this._traverseFlags |= A : this._traverseFlags &= ~A;
    }
    get shouldStop() {
      return !!(this._traverseFlags & w);
    }
    set shouldStop(F) {
      F ? this._traverseFlags |= w : this._traverseFlags &= ~w;
    }
    get removed() {
      return !!(this._traverseFlags & D);
    }
    set removed(F) {
      F ? this._traverseFlags |= D : this._traverseFlags &= ~D;
    }
  }
  Object.assign(I.prototype, l, u, c, f, h, m, g, y, v, T, S), I.prototype._guessExecutionStatusRelativeToDifferentFunctions = m._guessExecutionStatusRelativeTo;
  for (const O of s.TYPES) {
    const F = "is".concat(O), q = s[F];
    I.prototype[F] = function(j) {
      return q(this.node, j);
    }, I.prototype["assert".concat(O)] = function(j) {
      if (!q(this.node, j))
        throw new TypeError("Expected node path of type ".concat(O));
    };
  }
  Object.assign(I.prototype, P);
  for (const O of Object.keys(e))
    O[0] !== "_" && (s.TYPES.includes(O) || s.TYPES.push(O));
  var L = I;
  return Sc.default = L, Sc;
}
var jX;
function CEt() {
  if (jX)
    return kb;
  jX = 1, Object.defineProperty(kb, "__esModule", {
    value: !0
  }), kb.default = void 0;
  var e = pm(), t = Ui();
  const {
    VISITOR_KEYS: r
  } = t;
  class i {
    constructor(s, a, o, l) {
      this.queue = null, this.priorityQueue = null, this.parentPath = l, this.scope = s, this.state = o, this.opts = a;
    }
    shouldVisit(s) {
      const a = this.opts;
      if (a.enter || a.exit || a[s.type])
        return !0;
      const o = r[s.type];
      if (!(o != null && o.length))
        return !1;
      for (const l of o)
        if (s[l])
          return !0;
      return !1;
    }
    create(s, a, o, l) {
      return e.default.get({
        parentPath: this.parentPath,
        parent: s,
        container: a,
        key: o,
        listKey: l
      });
    }
    maybeQueue(s, a) {
      this.queue && (a ? this.queue.push(s) : this.priorityQueue.push(s));
    }
    visitMultiple(s, a, o) {
      if (s.length === 0)
        return !1;
      const l = [];
      for (let u = 0; u < s.length; u++) {
        const c = s[u];
        c && this.shouldVisit(c) && l.push(this.create(a, s, u, o));
      }
      return this.visitQueue(l);
    }
    visitSingle(s, a) {
      return this.shouldVisit(s[a]) ? this.visitQueue([this.create(s, s, a)]) : !1;
    }
    visitQueue(s) {
      this.queue = s, this.priorityQueue = [];
      const a = /* @__PURE__ */ new WeakSet();
      let o = !1;
      for (const l of s) {
        if (l.resync(), (l.contexts.length === 0 || l.contexts[l.contexts.length - 1] !== this) && l.pushContext(this), l.key === null)
          continue;
        const {
          node: u
        } = l;
        if (!a.has(u)) {
          if (u && a.add(u), l.visit()) {
            o = !0;
            break;
          }
          if (this.priorityQueue.length && (o = this.visitQueue(this.priorityQueue), this.priorityQueue = [], this.queue = s, o))
            break;
        }
      }
      for (const l of s)
        l.popContext();
      return this.queue = null, o;
    }
    visit(s, a) {
      const o = s[a];
      return o ? Array.isArray(o) ? this.visitMultiple(o, s, a) : this.visitSingle(s, a) : !1;
    }
  }
  return kb.default = i, kb;
}
var $X;
function u5() {
  if ($X)
    return VE;
  $X = 1, Object.defineProperty(VE, "__esModule", {
    value: !0
  }), VE.traverseNode = i;
  var e = CEt(), t = Ui();
  const {
    VISITOR_KEYS: r
  } = t;
  function i(n, s, a, o, l, u) {
    const c = r[n.type];
    if (!c)
      return !1;
    const f = new e.default(a, s, o, l);
    for (const h of c)
      if (!(u && u[h]) && f.visit(n, h))
        return !0;
    return !1;
  }
  return VE;
}
var Vb = {}, UX;
function _Et() {
  if (UX)
    return Vb;
  UX = 1, Object.defineProperty(Vb, "__esModule", {
    value: !0
  }), Vb.default = void 0;
  class e {
    getCode() {
    }
    getScope() {
    }
    addHelper() {
      throw new Error("Helpers are not supported by the default hub.");
    }
    buildError(r, i, n = TypeError) {
      return new n(i);
    }
  }
  return Vb.default = e, Vb;
}
var qX;
function yp() {
  return qX || (qX = 1, function(e) {
    Object.defineProperty(e, "__esModule", {
      value: !0
    }), Object.defineProperty(e, "Hub", {
      enumerable: !0,
      get: function() {
        return o.default;
      }
    }), Object.defineProperty(e, "NodePath", {
      enumerable: !0,
      get: function() {
        return s.default;
      }
    }), Object.defineProperty(e, "Scope", {
      enumerable: !0,
      get: function() {
        return a.default;
      }
    }), e.visitors = e.default = void 0;
    var t = P_();
    e.visitors = t;
    var r = Ui(), i = Ag(), n = u5(), s = pm(), a = Jhe(), o = _Et();
    const {
      VISITOR_KEYS: l,
      removeProperties: u,
      traverseFast: c
    } = r;
    function f(g, y = {}, v, T, S) {
      if (g) {
        if (!y.noScope && !v && g.type !== "Program" && g.type !== "File")
          throw new Error("You must pass a scope and parentPath unless traversing a Program/File. " + "Instead of that you tried to traverse a ".concat(g.type, " node without ") + "passing scope and parentPath.");
        l[g.type] && (t.explode(y), (0, n.traverseNode)(g, y, v, T, S));
      }
    }
    var h = f;
    e.default = h, f.visitors = t, f.verify = t.verify, f.explode = t.explode, f.cheap = function(g, y) {
      c(g, y);
    }, f.node = function(g, y, v, T, S, P) {
      (0, n.traverseNode)(g, y, v, T, S, P);
    }, f.clearNode = function(g, y) {
      u(g, y), i.path.delete(g);
    }, f.removeProperties = function(g, y) {
      return c(g, f.clearNode, y), g;
    };
    function m(g, y) {
      g.node.type === y.type && (y.has = !0, g.stop());
    }
    f.hasType = function(g, y, v) {
      if (v != null && v.includes(g.type))
        return !1;
      if (g.type === y)
        return !0;
      const T = {
        has: !1,
        type: y
      };
      return f(g, {
        noScope: !0,
        denylist: v,
        enter: m
      }, null, T), T.has;
    }, f.cache = i;
  }(SR)), SR;
}
var Wb = {}, Hb = {}, VX;
function IEt() {
  if (VX)
    return Hb;
  VX = 1, Object.defineProperty(Hb, "__esModule", {
    value: !0
  }), Hb.default = void 0;
  var e = rn;
  function t(i, n) {
    return Object.freeze({
      minVersion: i,
      ast: () => e.default.program.ast(n, {
        preserveComments: !0
      })
    });
  }
  var r = Object.freeze({
    AsyncGenerator: t("7.0.0-beta.0", 'import OverloadYield from"OverloadYield";export default function AsyncGenerator(gen){var front,back;function resume(key,arg){try{var result=gen[key](arg),value=result.value,overloaded=value instanceof OverloadYield;Promise.resolve(overloaded?value.v:value).then((function(arg){if(overloaded){var nextKey="return"===key?"return":"next";if(!value.k||arg.done)return resume(nextKey,arg);arg=gen[nextKey](arg).value}settle(result.done?"return":"normal",arg)}),(function(err){resume("throw",err)}))}catch(err){settle("throw",err)}}function settle(type,value){switch(type){case"return":front.resolve({value:value,done:!0});break;case"throw":front.reject(value);break;default:front.resolve({value:value,done:!1})}(front=front.next)?resume(front.key,front.arg):back=null}this._invoke=function(key,arg){return new Promise((function(resolve,reject){var request={key:key,arg:arg,resolve:resolve,reject:reject,next:null};back?back=back.next=request:(front=back=request,resume(key,arg))}))},"function"!=typeof gen.return&&(this.return=void 0)}AsyncGenerator.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},AsyncGenerator.prototype.next=function(arg){return this._invoke("next",arg)},AsyncGenerator.prototype.throw=function(arg){return this._invoke("throw",arg)},AsyncGenerator.prototype.return=function(arg){return this._invoke("return",arg)};'),
    OverloadYield: t("7.18.14", "export default function _OverloadYield(value,kind){this.v=value,this.k=kind}"),
    applyDecs: t("7.17.8", 'function old_createMetadataMethodsForProperty(metadataMap,kind,property,decoratorFinishedRef){return{getMetadata:function(key){old_assertNotFinished(decoratorFinishedRef,"getMetadata"),old_assertMetadataKey(key);var metadataForKey=metadataMap[key];if(void 0!==metadataForKey)if(1===kind){var pub=metadataForKey.public;if(void 0!==pub)return pub[property]}else if(2===kind){var priv=metadataForKey.private;if(void 0!==priv)return priv.get(property)}else if(Object.hasOwnProperty.call(metadataForKey,"constructor"))return metadataForKey.constructor},setMetadata:function(key,value){old_assertNotFinished(decoratorFinishedRef,"setMetadata"),old_assertMetadataKey(key);var metadataForKey=metadataMap[key];if(void 0===metadataForKey&&(metadataForKey=metadataMap[key]={}),1===kind){var pub=metadataForKey.public;void 0===pub&&(pub=metadataForKey.public={}),pub[property]=value}else if(2===kind){var priv=metadataForKey.priv;void 0===priv&&(priv=metadataForKey.private=new Map),priv.set(property,value)}else metadataForKey.constructor=value}}}function old_convertMetadataMapToFinal(obj,metadataMap){var parentMetadataMap=obj[Symbol.metadata||Symbol.for("Symbol.metadata")],metadataKeys=Object.getOwnPropertySymbols(metadataMap);if(0!==metadataKeys.length){for(var i=0;i<metadataKeys.length;i++){var key=metadataKeys[i],metaForKey=metadataMap[key],parentMetaForKey=parentMetadataMap?parentMetadataMap[key]:null,pub=metaForKey.public,parentPub=parentMetaForKey?parentMetaForKey.public:null;pub&&parentPub&&Object.setPrototypeOf(pub,parentPub);var priv=metaForKey.private;if(priv){var privArr=Array.from(priv.values()),parentPriv=parentMetaForKey?parentMetaForKey.private:null;parentPriv&&(privArr=privArr.concat(parentPriv)),metaForKey.private=privArr}parentMetaForKey&&Object.setPrototypeOf(metaForKey,parentMetaForKey)}parentMetadataMap&&Object.setPrototypeOf(metadataMap,parentMetadataMap),obj[Symbol.metadata||Symbol.for("Symbol.metadata")]=metadataMap}}function old_createAddInitializerMethod(initializers,decoratorFinishedRef){return function(initializer){old_assertNotFinished(decoratorFinishedRef,"addInitializer"),old_assertCallable(initializer,"An initializer"),initializers.push(initializer)}}function old_memberDec(dec,name,desc,metadataMap,initializers,kind,isStatic,isPrivate,value){var kindStr;switch(kind){case 1:kindStr="accessor";break;case 2:kindStr="method";break;case 3:kindStr="getter";break;case 4:kindStr="setter";break;default:kindStr="field"}var metadataKind,metadataName,ctx={kind:kindStr,name:isPrivate?"#"+name:name,isStatic:isStatic,isPrivate:isPrivate},decoratorFinishedRef={v:!1};if(0!==kind&&(ctx.addInitializer=old_createAddInitializerMethod(initializers,decoratorFinishedRef)),isPrivate){metadataKind=2,metadataName=Symbol(name);var access={};0===kind?(access.get=desc.get,access.set=desc.set):2===kind?access.get=function(){return desc.value}:(1!==kind&&3!==kind||(access.get=function(){return desc.get.call(this)}),1!==kind&&4!==kind||(access.set=function(v){desc.set.call(this,v)})),ctx.access=access}else metadataKind=1,metadataName=name;try{return dec(value,Object.assign(ctx,old_createMetadataMethodsForProperty(metadataMap,metadataKind,metadataName,decoratorFinishedRef)))}finally{decoratorFinishedRef.v=!0}}function old_assertNotFinished(decoratorFinishedRef,fnName){if(decoratorFinishedRef.v)throw new Error("attempted to call "+fnName+" after decoration was finished")}function old_assertMetadataKey(key){if("symbol"!=typeof key)throw new TypeError("Metadata keys must be symbols, received: "+key)}function old_assertCallable(fn,hint){if("function"!=typeof fn)throw new TypeError(hint+" must be a function")}function old_assertValidReturnValue(kind,value){var type=typeof value;if(1===kind){if("object"!==type||null===value)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==value.get&&old_assertCallable(value.get,"accessor.get"),void 0!==value.set&&old_assertCallable(value.set,"accessor.set"),void 0!==value.init&&old_assertCallable(value.init,"accessor.init"),void 0!==value.initializer&&old_assertCallable(value.initializer,"accessor.initializer")}else if("function"!==type){var hint;throw hint=0===kind?"field":10===kind?"class":"method",new TypeError(hint+" decorators must return a function or void 0")}}function old_getInit(desc){var initializer;return null==(initializer=desc.init)&&(initializer=desc.initializer)&&"undefined"!=typeof console&&console.warn(".initializer has been renamed to .init as of March 2022"),initializer}function old_applyMemberDec(ret,base,decInfo,name,kind,isStatic,isPrivate,metadataMap,initializers){var desc,initializer,value,newValue,get,set,decs=decInfo[0];if(isPrivate?desc=0===kind||1===kind?{get:decInfo[3],set:decInfo[4]}:3===kind?{get:decInfo[3]}:4===kind?{set:decInfo[3]}:{value:decInfo[3]}:0!==kind&&(desc=Object.getOwnPropertyDescriptor(base,name)),1===kind?value={get:desc.get,set:desc.set}:2===kind?value=desc.value:3===kind?value=desc.get:4===kind&&(value=desc.set),"function"==typeof decs)void 0!==(newValue=old_memberDec(decs,name,desc,metadataMap,initializers,kind,isStatic,isPrivate,value))&&(old_assertValidReturnValue(kind,newValue),0===kind?initializer=newValue:1===kind?(initializer=old_getInit(newValue),get=newValue.get||value.get,set=newValue.set||value.set,value={get:get,set:set}):value=newValue);else for(var i=decs.length-1;i>=0;i--){var newInit;if(void 0!==(newValue=old_memberDec(decs[i],name,desc,metadataMap,initializers,kind,isStatic,isPrivate,value)))old_assertValidReturnValue(kind,newValue),0===kind?newInit=newValue:1===kind?(newInit=old_getInit(newValue),get=newValue.get||value.get,set=newValue.set||value.set,value={get:get,set:set}):value=newValue,void 0!==newInit&&(void 0===initializer?initializer=newInit:"function"==typeof initializer?initializer=[initializer,newInit]:initializer.push(newInit))}if(0===kind||1===kind){if(void 0===initializer)initializer=function(instance,init){return init};else if("function"!=typeof initializer){var ownInitializers=initializer;initializer=function(instance,init){for(var value=init,i=0;i<ownInitializers.length;i++)value=ownInitializers[i].call(instance,value);return value}}else{var originalInitializer=initializer;initializer=function(instance,init){return originalInitializer.call(instance,init)}}ret.push(initializer)}0!==kind&&(1===kind?(desc.get=value.get,desc.set=value.set):2===kind?desc.value=value:3===kind?desc.get=value:4===kind&&(desc.set=value),isPrivate?1===kind?(ret.push((function(instance,args){return value.get.call(instance,args)})),ret.push((function(instance,args){return value.set.call(instance,args)}))):2===kind?ret.push(value):ret.push((function(instance,args){return value.call(instance,args)})):Object.defineProperty(base,name,desc))}function old_applyMemberDecs(ret,Class,protoMetadataMap,staticMetadataMap,decInfos){for(var protoInitializers,staticInitializers,existingProtoNonFields=new Map,existingStaticNonFields=new Map,i=0;i<decInfos.length;i++){var decInfo=decInfos[i];if(Array.isArray(decInfo)){var base,metadataMap,initializers,kind=decInfo[1],name=decInfo[2],isPrivate=decInfo.length>3,isStatic=kind>=5;if(isStatic?(base=Class,metadataMap=staticMetadataMap,0!==(kind-=5)&&(initializers=staticInitializers=staticInitializers||[])):(base=Class.prototype,metadataMap=protoMetadataMap,0!==kind&&(initializers=protoInitializers=protoInitializers||[])),0!==kind&&!isPrivate){var existingNonFields=isStatic?existingStaticNonFields:existingProtoNonFields,existingKind=existingNonFields.get(name)||0;if(!0===existingKind||3===existingKind&&4!==kind||4===existingKind&&3!==kind)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+name);!existingKind&&kind>2?existingNonFields.set(name,kind):existingNonFields.set(name,!0)}old_applyMemberDec(ret,base,decInfo,name,kind,isStatic,isPrivate,metadataMap,initializers)}}old_pushInitializers(ret,protoInitializers),old_pushInitializers(ret,staticInitializers)}function old_pushInitializers(ret,initializers){initializers&&ret.push((function(instance){for(var i=0;i<initializers.length;i++)initializers[i].call(instance);return instance}))}function old_applyClassDecs(ret,targetClass,metadataMap,classDecs){if(classDecs.length>0){for(var initializers=[],newClass=targetClass,name=targetClass.name,i=classDecs.length-1;i>=0;i--){var decoratorFinishedRef={v:!1};try{var ctx=Object.assign({kind:"class",name:name,addInitializer:old_createAddInitializerMethod(initializers,decoratorFinishedRef)},old_createMetadataMethodsForProperty(metadataMap,0,name,decoratorFinishedRef)),nextNewClass=classDecs[i](newClass,ctx)}finally{decoratorFinishedRef.v=!0}void 0!==nextNewClass&&(old_assertValidReturnValue(10,nextNewClass),newClass=nextNewClass)}ret.push(newClass,(function(){for(var i=0;i<initializers.length;i++)initializers[i].call(newClass)}))}}export default function applyDecs(targetClass,memberDecs,classDecs){var ret=[],staticMetadataMap={},protoMetadataMap={};return old_applyMemberDecs(ret,targetClass,protoMetadataMap,staticMetadataMap,memberDecs),old_convertMetadataMapToFinal(targetClass.prototype,protoMetadataMap),old_applyClassDecs(ret,targetClass,staticMetadataMap,classDecs),old_convertMetadataMapToFinal(targetClass,staticMetadataMap),ret}'),
    applyDecs2203: t("7.19.0", 'function applyDecs2203Factory(){function createAddInitializerMethod(initializers,decoratorFinishedRef){return function(initializer){!function(decoratorFinishedRef,fnName){if(decoratorFinishedRef.v)throw new Error("attempted to call "+fnName+" after decoration was finished")}(decoratorFinishedRef,"addInitializer"),assertCallable(initializer,"An initializer"),initializers.push(initializer)}}function memberDec(dec,name,desc,initializers,kind,isStatic,isPrivate,value){var kindStr;switch(kind){case 1:kindStr="accessor";break;case 2:kindStr="method";break;case 3:kindStr="getter";break;case 4:kindStr="setter";break;default:kindStr="field"}var get,set,ctx={kind:kindStr,name:isPrivate?"#"+name:name,static:isStatic,private:isPrivate},decoratorFinishedRef={v:!1};0!==kind&&(ctx.addInitializer=createAddInitializerMethod(initializers,decoratorFinishedRef)),0===kind?isPrivate?(get=desc.get,set=desc.set):(get=function(){return this[name]},set=function(v){this[name]=v}):2===kind?get=function(){return desc.value}:(1!==kind&&3!==kind||(get=function(){return desc.get.call(this)}),1!==kind&&4!==kind||(set=function(v){desc.set.call(this,v)})),ctx.access=get&&set?{get:get,set:set}:get?{get:get}:{set:set};try{return dec(value,ctx)}finally{decoratorFinishedRef.v=!0}}function assertCallable(fn,hint){if("function"!=typeof fn)throw new TypeError(hint+" must be a function")}function assertValidReturnValue(kind,value){var type=typeof value;if(1===kind){if("object"!==type||null===value)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==value.get&&assertCallable(value.get,"accessor.get"),void 0!==value.set&&assertCallable(value.set,"accessor.set"),void 0!==value.init&&assertCallable(value.init,"accessor.init")}else if("function"!==type){var hint;throw hint=0===kind?"field":10===kind?"class":"method",new TypeError(hint+" decorators must return a function or void 0")}}function applyMemberDec(ret,base,decInfo,name,kind,isStatic,isPrivate,initializers){var desc,init,value,newValue,get,set,decs=decInfo[0];if(isPrivate?desc=0===kind||1===kind?{get:decInfo[3],set:decInfo[4]}:3===kind?{get:decInfo[3]}:4===kind?{set:decInfo[3]}:{value:decInfo[3]}:0!==kind&&(desc=Object.getOwnPropertyDescriptor(base,name)),1===kind?value={get:desc.get,set:desc.set}:2===kind?value=desc.value:3===kind?value=desc.get:4===kind&&(value=desc.set),"function"==typeof decs)void 0!==(newValue=memberDec(decs,name,desc,initializers,kind,isStatic,isPrivate,value))&&(assertValidReturnValue(kind,newValue),0===kind?init=newValue:1===kind?(init=newValue.init,get=newValue.get||value.get,set=newValue.set||value.set,value={get:get,set:set}):value=newValue);else for(var i=decs.length-1;i>=0;i--){var newInit;if(void 0!==(newValue=memberDec(decs[i],name,desc,initializers,kind,isStatic,isPrivate,value)))assertValidReturnValue(kind,newValue),0===kind?newInit=newValue:1===kind?(newInit=newValue.init,get=newValue.get||value.get,set=newValue.set||value.set,value={get:get,set:set}):value=newValue,void 0!==newInit&&(void 0===init?init=newInit:"function"==typeof init?init=[init,newInit]:init.push(newInit))}if(0===kind||1===kind){if(void 0===init)init=function(instance,init){return init};else if("function"!=typeof init){var ownInitializers=init;init=function(instance,init){for(var value=init,i=0;i<ownInitializers.length;i++)value=ownInitializers[i].call(instance,value);return value}}else{var originalInitializer=init;init=function(instance,init){return originalInitializer.call(instance,init)}}ret.push(init)}0!==kind&&(1===kind?(desc.get=value.get,desc.set=value.set):2===kind?desc.value=value:3===kind?desc.get=value:4===kind&&(desc.set=value),isPrivate?1===kind?(ret.push((function(instance,args){return value.get.call(instance,args)})),ret.push((function(instance,args){return value.set.call(instance,args)}))):2===kind?ret.push(value):ret.push((function(instance,args){return value.call(instance,args)})):Object.defineProperty(base,name,desc))}function pushInitializers(ret,initializers){initializers&&ret.push((function(instance){for(var i=0;i<initializers.length;i++)initializers[i].call(instance);return instance}))}return function(targetClass,memberDecs,classDecs){var ret=[];return function(ret,Class,decInfos){for(var protoInitializers,staticInitializers,existingProtoNonFields=new Map,existingStaticNonFields=new Map,i=0;i<decInfos.length;i++){var decInfo=decInfos[i];if(Array.isArray(decInfo)){var base,initializers,kind=decInfo[1],name=decInfo[2],isPrivate=decInfo.length>3,isStatic=kind>=5;if(isStatic?(base=Class,0!=(kind-=5)&&(initializers=staticInitializers=staticInitializers||[])):(base=Class.prototype,0!==kind&&(initializers=protoInitializers=protoInitializers||[])),0!==kind&&!isPrivate){var existingNonFields=isStatic?existingStaticNonFields:existingProtoNonFields,existingKind=existingNonFields.get(name)||0;if(!0===existingKind||3===existingKind&&4!==kind||4===existingKind&&3!==kind)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+name);!existingKind&&kind>2?existingNonFields.set(name,kind):existingNonFields.set(name,!0)}applyMemberDec(ret,base,decInfo,name,kind,isStatic,isPrivate,initializers)}}pushInitializers(ret,protoInitializers),pushInitializers(ret,staticInitializers)}(ret,targetClass,memberDecs),function(ret,targetClass,classDecs){if(classDecs.length>0){for(var initializers=[],newClass=targetClass,name=targetClass.name,i=classDecs.length-1;i>=0;i--){var decoratorFinishedRef={v:!1};try{var nextNewClass=classDecs[i](newClass,{kind:"class",name:name,addInitializer:createAddInitializerMethod(initializers,decoratorFinishedRef)})}finally{decoratorFinishedRef.v=!0}void 0!==nextNewClass&&(assertValidReturnValue(10,nextNewClass),newClass=nextNewClass)}ret.push(newClass,(function(){for(var i=0;i<initializers.length;i++)initializers[i].call(newClass)}))}}(ret,targetClass,classDecs),ret}}var applyDecs2203Impl;export default function applyDecs2203(targetClass,memberDecs,classDecs){return(applyDecs2203Impl=applyDecs2203Impl||applyDecs2203Factory())(targetClass,memberDecs,classDecs)}'),
    applyDecs2203R: t("7.20.0", 'function applyDecs2203RFactory(){function createAddInitializerMethod(initializers,decoratorFinishedRef){return function(initializer){!function(decoratorFinishedRef,fnName){if(decoratorFinishedRef.v)throw new Error("attempted to call "+fnName+" after decoration was finished")}(decoratorFinishedRef,"addInitializer"),assertCallable(initializer,"An initializer"),initializers.push(initializer)}}function memberDec(dec,name,desc,initializers,kind,isStatic,isPrivate,value){var kindStr;switch(kind){case 1:kindStr="accessor";break;case 2:kindStr="method";break;case 3:kindStr="getter";break;case 4:kindStr="setter";break;default:kindStr="field"}var get,set,ctx={kind:kindStr,name:isPrivate?"#"+name:name,static:isStatic,private:isPrivate},decoratorFinishedRef={v:!1};0!==kind&&(ctx.addInitializer=createAddInitializerMethod(initializers,decoratorFinishedRef)),0===kind?isPrivate?(get=desc.get,set=desc.set):(get=function(){return this[name]},set=function(v){this[name]=v}):2===kind?get=function(){return desc.value}:(1!==kind&&3!==kind||(get=function(){return desc.get.call(this)}),1!==kind&&4!==kind||(set=function(v){desc.set.call(this,v)})),ctx.access=get&&set?{get:get,set:set}:get?{get:get}:{set:set};try{return dec(value,ctx)}finally{decoratorFinishedRef.v=!0}}function assertCallable(fn,hint){if("function"!=typeof fn)throw new TypeError(hint+" must be a function")}function assertValidReturnValue(kind,value){var type=typeof value;if(1===kind){if("object"!==type||null===value)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==value.get&&assertCallable(value.get,"accessor.get"),void 0!==value.set&&assertCallable(value.set,"accessor.set"),void 0!==value.init&&assertCallable(value.init,"accessor.init")}else if("function"!==type){var hint;throw hint=0===kind?"field":10===kind?"class":"method",new TypeError(hint+" decorators must return a function or void 0")}}function applyMemberDec(ret,base,decInfo,name,kind,isStatic,isPrivate,initializers){var desc,init,value,newValue,get,set,decs=decInfo[0];if(isPrivate?desc=0===kind||1===kind?{get:decInfo[3],set:decInfo[4]}:3===kind?{get:decInfo[3]}:4===kind?{set:decInfo[3]}:{value:decInfo[3]}:0!==kind&&(desc=Object.getOwnPropertyDescriptor(base,name)),1===kind?value={get:desc.get,set:desc.set}:2===kind?value=desc.value:3===kind?value=desc.get:4===kind&&(value=desc.set),"function"==typeof decs)void 0!==(newValue=memberDec(decs,name,desc,initializers,kind,isStatic,isPrivate,value))&&(assertValidReturnValue(kind,newValue),0===kind?init=newValue:1===kind?(init=newValue.init,get=newValue.get||value.get,set=newValue.set||value.set,value={get:get,set:set}):value=newValue);else for(var i=decs.length-1;i>=0;i--){var newInit;if(void 0!==(newValue=memberDec(decs[i],name,desc,initializers,kind,isStatic,isPrivate,value)))assertValidReturnValue(kind,newValue),0===kind?newInit=newValue:1===kind?(newInit=newValue.init,get=newValue.get||value.get,set=newValue.set||value.set,value={get:get,set:set}):value=newValue,void 0!==newInit&&(void 0===init?init=newInit:"function"==typeof init?init=[init,newInit]:init.push(newInit))}if(0===kind||1===kind){if(void 0===init)init=function(instance,init){return init};else if("function"!=typeof init){var ownInitializers=init;init=function(instance,init){for(var value=init,i=0;i<ownInitializers.length;i++)value=ownInitializers[i].call(instance,value);return value}}else{var originalInitializer=init;init=function(instance,init){return originalInitializer.call(instance,init)}}ret.push(init)}0!==kind&&(1===kind?(desc.get=value.get,desc.set=value.set):2===kind?desc.value=value:3===kind?desc.get=value:4===kind&&(desc.set=value),isPrivate?1===kind?(ret.push((function(instance,args){return value.get.call(instance,args)})),ret.push((function(instance,args){return value.set.call(instance,args)}))):2===kind?ret.push(value):ret.push((function(instance,args){return value.call(instance,args)})):Object.defineProperty(base,name,desc))}function applyMemberDecs(Class,decInfos){for(var protoInitializers,staticInitializers,ret=[],existingProtoNonFields=new Map,existingStaticNonFields=new Map,i=0;i<decInfos.length;i++){var decInfo=decInfos[i];if(Array.isArray(decInfo)){var base,initializers,kind=decInfo[1],name=decInfo[2],isPrivate=decInfo.length>3,isStatic=kind>=5;if(isStatic?(base=Class,0!==(kind-=5)&&(initializers=staticInitializers=staticInitializers||[])):(base=Class.prototype,0!==kind&&(initializers=protoInitializers=protoInitializers||[])),0!==kind&&!isPrivate){var existingNonFields=isStatic?existingStaticNonFields:existingProtoNonFields,existingKind=existingNonFields.get(name)||0;if(!0===existingKind||3===existingKind&&4!==kind||4===existingKind&&3!==kind)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+name);!existingKind&&kind>2?existingNonFields.set(name,kind):existingNonFields.set(name,!0)}applyMemberDec(ret,base,decInfo,name,kind,isStatic,isPrivate,initializers)}}return pushInitializers(ret,protoInitializers),pushInitializers(ret,staticInitializers),ret}function pushInitializers(ret,initializers){initializers&&ret.push((function(instance){for(var i=0;i<initializers.length;i++)initializers[i].call(instance);return instance}))}return function(targetClass,memberDecs,classDecs){return{e:applyMemberDecs(targetClass,memberDecs),get c(){return function(targetClass,classDecs){if(classDecs.length>0){for(var initializers=[],newClass=targetClass,name=targetClass.name,i=classDecs.length-1;i>=0;i--){var decoratorFinishedRef={v:!1};try{var nextNewClass=classDecs[i](newClass,{kind:"class",name:name,addInitializer:createAddInitializerMethod(initializers,decoratorFinishedRef)})}finally{decoratorFinishedRef.v=!0}void 0!==nextNewClass&&(assertValidReturnValue(10,nextNewClass),newClass=nextNewClass)}return[newClass,function(){for(var i=0;i<initializers.length;i++)initializers[i].call(newClass)}]}}(targetClass,classDecs)}}}}export default function applyDecs2203R(targetClass,memberDecs,classDecs){return(applyDecs2203R=applyDecs2203RFactory())(targetClass,memberDecs,classDecs)}'),
    applyDecs2301: t("7.21.0", 'import checkInRHS from"checkInRHS";function createAddInitializerMethod(initializers,decoratorFinishedRef){return function(initializer){assertNotFinished(decoratorFinishedRef,"addInitializer"),assertCallable(initializer,"An initializer"),initializers.push(initializer)}}function assertInstanceIfPrivate(has,target){if(!has(target))throw new TypeError("Attempted to access private element on non-instance")}function memberDec(dec,name,desc,initializers,kind,isStatic,isPrivate,value,hasPrivateBrand){var kindStr;switch(kind){case 1:kindStr="accessor";break;case 2:kindStr="method";break;case 3:kindStr="getter";break;case 4:kindStr="setter";break;default:kindStr="field"}var get,set,ctx={kind:kindStr,name:isPrivate?"#"+name:name,static:isStatic,private:isPrivate},decoratorFinishedRef={v:!1};if(0!==kind&&(ctx.addInitializer=createAddInitializerMethod(initializers,decoratorFinishedRef)),isPrivate||0!==kind&&2!==kind)if(2===kind)get=function(target){return assertInstanceIfPrivate(hasPrivateBrand,target),desc.value};else{var t=0===kind||1===kind;(t||3===kind)&&(get=isPrivate?function(target){return assertInstanceIfPrivate(hasPrivateBrand,target),desc.get.call(target)}:function(target){return desc.get.call(target)}),(t||4===kind)&&(set=isPrivate?function(target,value){assertInstanceIfPrivate(hasPrivateBrand,target),desc.set.call(target,value)}:function(target,value){desc.set.call(target,value)})}else get=function(target){return target[name]},0===kind&&(set=function(target,v){target[name]=v});var has=isPrivate?hasPrivateBrand.bind():function(target){return name in target};ctx.access=get&&set?{get:get,set:set,has:has}:get?{get:get,has:has}:{set:set,has:has};try{return dec(value,ctx)}finally{decoratorFinishedRef.v=!0}}function assertNotFinished(decoratorFinishedRef,fnName){if(decoratorFinishedRef.v)throw new Error("attempted to call "+fnName+" after decoration was finished")}function assertCallable(fn,hint){if("function"!=typeof fn)throw new TypeError(hint+" must be a function")}function assertValidReturnValue(kind,value){var type=typeof value;if(1===kind){if("object"!==type||null===value)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==value.get&&assertCallable(value.get,"accessor.get"),void 0!==value.set&&assertCallable(value.set,"accessor.set"),void 0!==value.init&&assertCallable(value.init,"accessor.init")}else if("function"!==type){var hint;throw hint=0===kind?"field":10===kind?"class":"method",new TypeError(hint+" decorators must return a function or void 0")}}function curryThis1(fn){return function(){return fn(this)}}function curryThis2(fn){return function(value){fn(this,value)}}function applyMemberDec(ret,base,decInfo,name,kind,isStatic,isPrivate,initializers,hasPrivateBrand){var desc,init,value,newValue,get,set,decs=decInfo[0];if(isPrivate?desc=0===kind||1===kind?{get:curryThis1(decInfo[3]),set:curryThis2(decInfo[4])}:3===kind?{get:decInfo[3]}:4===kind?{set:decInfo[3]}:{value:decInfo[3]}:0!==kind&&(desc=Object.getOwnPropertyDescriptor(base,name)),1===kind?value={get:desc.get,set:desc.set}:2===kind?value=desc.value:3===kind?value=desc.get:4===kind&&(value=desc.set),"function"==typeof decs)void 0!==(newValue=memberDec(decs,name,desc,initializers,kind,isStatic,isPrivate,value,hasPrivateBrand))&&(assertValidReturnValue(kind,newValue),0===kind?init=newValue:1===kind?(init=newValue.init,get=newValue.get||value.get,set=newValue.set||value.set,value={get:get,set:set}):value=newValue);else for(var i=decs.length-1;i>=0;i--){var newInit;if(void 0!==(newValue=memberDec(decs[i],name,desc,initializers,kind,isStatic,isPrivate,value,hasPrivateBrand)))assertValidReturnValue(kind,newValue),0===kind?newInit=newValue:1===kind?(newInit=newValue.init,get=newValue.get||value.get,set=newValue.set||value.set,value={get:get,set:set}):value=newValue,void 0!==newInit&&(void 0===init?init=newInit:"function"==typeof init?init=[init,newInit]:init.push(newInit))}if(0===kind||1===kind){if(void 0===init)init=function(instance,init){return init};else if("function"!=typeof init){var ownInitializers=init;init=function(instance,init){for(var value=init,i=0;i<ownInitializers.length;i++)value=ownInitializers[i].call(instance,value);return value}}else{var originalInitializer=init;init=function(instance,init){return originalInitializer.call(instance,init)}}ret.push(init)}0!==kind&&(1===kind?(desc.get=value.get,desc.set=value.set):2===kind?desc.value=value:3===kind?desc.get=value:4===kind&&(desc.set=value),isPrivate?1===kind?(ret.push((function(instance,args){return value.get.call(instance,args)})),ret.push((function(instance,args){return value.set.call(instance,args)}))):2===kind?ret.push(value):ret.push((function(instance,args){return value.call(instance,args)})):Object.defineProperty(base,name,desc))}function applyMemberDecs(Class,decInfos,instanceBrand){for(var protoInitializers,staticInitializers,staticBrand,ret=[],existingProtoNonFields=new Map,existingStaticNonFields=new Map,i=0;i<decInfos.length;i++){var decInfo=decInfos[i];if(Array.isArray(decInfo)){var base,initializers,kind=decInfo[1],name=decInfo[2],isPrivate=decInfo.length>3,isStatic=kind>=5,hasPrivateBrand=instanceBrand;if(isStatic?(base=Class,0!==(kind-=5)&&(initializers=staticInitializers=staticInitializers||[]),isPrivate&&!staticBrand&&(staticBrand=function(_){return checkInRHS(_)===Class}),hasPrivateBrand=staticBrand):(base=Class.prototype,0!==kind&&(initializers=protoInitializers=protoInitializers||[])),0!==kind&&!isPrivate){var existingNonFields=isStatic?existingStaticNonFields:existingProtoNonFields,existingKind=existingNonFields.get(name)||0;if(!0===existingKind||3===existingKind&&4!==kind||4===existingKind&&3!==kind)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+name);!existingKind&&kind>2?existingNonFields.set(name,kind):existingNonFields.set(name,!0)}applyMemberDec(ret,base,decInfo,name,kind,isStatic,isPrivate,initializers,hasPrivateBrand)}}return pushInitializers(ret,protoInitializers),pushInitializers(ret,staticInitializers),ret}function pushInitializers(ret,initializers){initializers&&ret.push((function(instance){for(var i=0;i<initializers.length;i++)initializers[i].call(instance);return instance}))}function applyClassDecs(targetClass,classDecs){if(classDecs.length>0){for(var initializers=[],newClass=targetClass,name=targetClass.name,i=classDecs.length-1;i>=0;i--){var decoratorFinishedRef={v:!1};try{var nextNewClass=classDecs[i](newClass,{kind:"class",name:name,addInitializer:createAddInitializerMethod(initializers,decoratorFinishedRef)})}finally{decoratorFinishedRef.v=!0}void 0!==nextNewClass&&(assertValidReturnValue(10,nextNewClass),newClass=nextNewClass)}return[newClass,function(){for(var i=0;i<initializers.length;i++)initializers[i].call(newClass)}]}}export default function applyDecs2301(targetClass,memberDecs,classDecs,instanceBrand){return{e:applyMemberDecs(targetClass,memberDecs,instanceBrand),get c(){return applyClassDecs(targetClass,classDecs)}}}'),
    asyncGeneratorDelegate: t("7.0.0-beta.0", 'import OverloadYield from"OverloadYield";export default function _asyncGeneratorDelegate(inner){var iter={},waiting=!1;function pump(key,value){return waiting=!0,value=new Promise((function(resolve){resolve(inner[key](value))})),{done:!1,value:new OverloadYield(value,1)}}return iter["undefined"!=typeof Symbol&&Symbol.iterator||"@@iterator"]=function(){return this},iter.next=function(value){return waiting?(waiting=!1,value):pump("next",value)},"function"==typeof inner.throw&&(iter.throw=function(value){if(waiting)throw waiting=!1,value;return pump("throw",value)}),"function"==typeof inner.return&&(iter.return=function(value){return waiting?(waiting=!1,value):pump("return",value)}),iter}'),
    asyncIterator: t("7.15.9", 'export default function _asyncIterator(iterable){var method,async,sync,retry=2;for("undefined"!=typeof Symbol&&(async=Symbol.asyncIterator,sync=Symbol.iterator);retry--;){if(async&&null!=(method=iterable[async]))return method.call(iterable);if(sync&&null!=(method=iterable[sync]))return new AsyncFromSyncIterator(method.call(iterable));async="@@asyncIterator",sync="@@iterator"}throw new TypeError("Object is not async iterable")}function AsyncFromSyncIterator(s){function AsyncFromSyncIteratorContinuation(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+" is not an object."));var done=r.done;return Promise.resolve(r.value).then((function(value){return{value:value,done:done}}))}return AsyncFromSyncIterator=function(s){this.s=s,this.n=s.next},AsyncFromSyncIterator.prototype={s:null,n:null,next:function(){return AsyncFromSyncIteratorContinuation(this.n.apply(this.s,arguments))},return:function(value){var ret=this.s.return;return void 0===ret?Promise.resolve({value:value,done:!0}):AsyncFromSyncIteratorContinuation(ret.apply(this.s,arguments))},throw:function(value){var thr=this.s.return;return void 0===thr?Promise.reject(value):AsyncFromSyncIteratorContinuation(thr.apply(this.s,arguments))}},new AsyncFromSyncIterator(s)}'),
    awaitAsyncGenerator: t("7.0.0-beta.0", 'import OverloadYield from"OverloadYield";export default function _awaitAsyncGenerator(value){return new OverloadYield(value,0)}'),
    checkInRHS: t("7.20.5", 'export default function _checkInRHS(value){if(Object(value)!==value)throw TypeError("right-hand side of \'in\' should be an object, got "+(null!==value?typeof value:"null"));return value}'),
    defineAccessor: t("7.20.7", "export default function _defineAccessor(type,obj,key,fn){var desc={configurable:!0,enumerable:!0};return desc[type]=fn,Object.defineProperty(obj,key,desc)}"),
    iterableToArrayLimit: t("7.0.0-beta.0", 'export default function _iterableToArrayLimit(arr,i){var _i=null==arr?null:"undefined"!=typeof Symbol&&arr[Symbol.iterator]||arr["@@iterator"];if(null!=_i){var _s,_e,_x,_r,_arr=[],_n=!0,_d=!1;try{if(_x=(_i=_i.call(arr)).next,0===i){if(Object(_i)!==_i)return;_n=!1}else for(;!(_n=(_s=_x.call(_i)).done)&&(_arr.push(_s.value),_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{if(!_n&&null!=_i.return&&(_r=_i.return(),Object(_r)!==_r))return}finally{if(_d)throw _e}}return _arr}}'),
    iterableToArrayLimitLoose: t("7.0.0-beta.0", 'export default function _iterableToArrayLimitLoose(arr,i){var _i=arr&&("undefined"!=typeof Symbol&&arr[Symbol.iterator]||arr["@@iterator"]);if(null!=_i){var _s,_arr=[];for(_i=_i.call(arr);arr.length<i&&!(_s=_i.next()).done;)_arr.push(_s.value);return _arr}}'),
    jsx: t("7.0.0-beta.0", 'var REACT_ELEMENT_TYPE;export default function _createRawReactElement(type,props,key,children){REACT_ELEMENT_TYPE||(REACT_ELEMENT_TYPE="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103);var defaultProps=type&&type.defaultProps,childrenLength=arguments.length-3;if(props||0===childrenLength||(props={children:void 0}),1===childrenLength)props.children=children;else if(childrenLength>1){for(var childArray=new Array(childrenLength),i=0;i<childrenLength;i++)childArray[i]=arguments[i+3];props.children=childArray}if(props&&defaultProps)for(var propName in defaultProps)void 0===props[propName]&&(props[propName]=defaultProps[propName]);else props||(props=defaultProps||{});return{$$typeof:REACT_ELEMENT_TYPE,type:type,key:void 0===key?null:""+key,ref:null,props:props,_owner:null}}'),
    objectSpread2: t("7.5.0", 'import defineProperty from"defineProperty";function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter((function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable}))),keys.push.apply(keys,symbols)}return keys}export default function _objectSpread2(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach((function(key){defineProperty(target,key,source[key])})):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach((function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))}))}return target}'),
    regeneratorRuntime: t("7.18.0", 'export default function _regeneratorRuntime(){"use strict";\n/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */_regeneratorRuntime=function(){return exports};var exports={},Op=Object.prototype,hasOwn=Op.hasOwnProperty,defineProperty=Object.defineProperty||function(obj,key,desc){obj[key]=desc.value},$Symbol="function"==typeof Symbol?Symbol:{},iteratorSymbol=$Symbol.iterator||"@@iterator",asyncIteratorSymbol=$Symbol.asyncIterator||"@@asyncIterator",toStringTagSymbol=$Symbol.toStringTag||"@@toStringTag";function define(obj,key,value){return Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}),obj[key]}try{define({},"")}catch(err){define=function(obj,key,value){return obj[key]=value}}function wrap(innerFn,outerFn,self,tryLocsList){var protoGenerator=outerFn&&outerFn.prototype instanceof Generator?outerFn:Generator,generator=Object.create(protoGenerator.prototype),context=new Context(tryLocsList||[]);return defineProperty(generator,"_invoke",{value:makeInvokeMethod(innerFn,self,context)}),generator}function tryCatch(fn,obj,arg){try{return{type:"normal",arg:fn.call(obj,arg)}}catch(err){return{type:"throw",arg:err}}}exports.wrap=wrap;var ContinueSentinel={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var IteratorPrototype={};define(IteratorPrototype,iteratorSymbol,(function(){return this}));var getProto=Object.getPrototypeOf,NativeIteratorPrototype=getProto&&getProto(getProto(values([])));NativeIteratorPrototype&&NativeIteratorPrototype!==Op&&hasOwn.call(NativeIteratorPrototype,iteratorSymbol)&&(IteratorPrototype=NativeIteratorPrototype);var Gp=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(IteratorPrototype);function defineIteratorMethods(prototype){["next","throw","return"].forEach((function(method){define(prototype,method,(function(arg){return this._invoke(method,arg)}))}))}function AsyncIterator(generator,PromiseImpl){function invoke(method,arg,resolve,reject){var record=tryCatch(generator[method],generator,arg);if("throw"!==record.type){var result=record.arg,value=result.value;return value&&"object"==typeof value&&hasOwn.call(value,"__await")?PromiseImpl.resolve(value.__await).then((function(value){invoke("next",value,resolve,reject)}),(function(err){invoke("throw",err,resolve,reject)})):PromiseImpl.resolve(value).then((function(unwrapped){result.value=unwrapped,resolve(result)}),(function(error){return invoke("throw",error,resolve,reject)}))}reject(record.arg)}var previousPromise;defineProperty(this,"_invoke",{value:function(method,arg){function callInvokeWithMethodAndArg(){return new PromiseImpl((function(resolve,reject){invoke(method,arg,resolve,reject)}))}return previousPromise=previousPromise?previousPromise.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}})}function makeInvokeMethod(innerFn,self,context){var state="suspendedStart";return function(method,arg){if("executing"===state)throw new Error("Generator is already running");if("completed"===state){if("throw"===method)throw arg;return doneResult()}for(context.method=method,context.arg=arg;;){var delegate=context.delegate;if(delegate){var delegateResult=maybeInvokeDelegate(delegate,context);if(delegateResult){if(delegateResult===ContinueSentinel)continue;return delegateResult}}if("next"===context.method)context.sent=context._sent=context.arg;else if("throw"===context.method){if("suspendedStart"===state)throw state="completed",context.arg;context.dispatchException(context.arg)}else"return"===context.method&&context.abrupt("return",context.arg);state="executing";var record=tryCatch(innerFn,self,context);if("normal"===record.type){if(state=context.done?"completed":"suspendedYield",record.arg===ContinueSentinel)continue;return{value:record.arg,done:context.done}}"throw"===record.type&&(state="completed",context.method="throw",context.arg=record.arg)}}}function maybeInvokeDelegate(delegate,context){var methodName=context.method,method=delegate.iterator[methodName];if(undefined===method)return context.delegate=null,"throw"===methodName&&delegate.iterator.return&&(context.method="return",context.arg=undefined,maybeInvokeDelegate(delegate,context),"throw"===context.method)||"return"!==methodName&&(context.method="throw",context.arg=new TypeError("The iterator does not provide a \'"+methodName+"\' method")),ContinueSentinel;var record=tryCatch(method,delegate.iterator,context.arg);if("throw"===record.type)return context.method="throw",context.arg=record.arg,context.delegate=null,ContinueSentinel;var info=record.arg;return info?info.done?(context[delegate.resultName]=info.value,context.next=delegate.nextLoc,"return"!==context.method&&(context.method="next",context.arg=undefined),context.delegate=null,ContinueSentinel):info:(context.method="throw",context.arg=new TypeError("iterator result is not an object"),context.delegate=null,ContinueSentinel)}function pushTryEntry(locs){var entry={tryLoc:locs[0]};1 in locs&&(entry.catchLoc=locs[1]),2 in locs&&(entry.finallyLoc=locs[2],entry.afterLoc=locs[3]),this.tryEntries.push(entry)}function resetTryEntry(entry){var record=entry.completion||{};record.type="normal",delete record.arg,entry.completion=record}function Context(tryLocsList){this.tryEntries=[{tryLoc:"root"}],tryLocsList.forEach(pushTryEntry,this),this.reset(!0)}function values(iterable){if(iterable){var iteratorMethod=iterable[iteratorSymbol];if(iteratorMethod)return iteratorMethod.call(iterable);if("function"==typeof iterable.next)return iterable;if(!isNaN(iterable.length)){var i=-1,next=function next(){for(;++i<iterable.length;)if(hasOwn.call(iterable,i))return next.value=iterable[i],next.done=!1,next;return next.value=undefined,next.done=!0,next};return next.next=next}}return{next:doneResult}}function doneResult(){return{value:undefined,done:!0}}return GeneratorFunction.prototype=GeneratorFunctionPrototype,defineProperty(Gp,"constructor",{value:GeneratorFunctionPrototype,configurable:!0}),defineProperty(GeneratorFunctionPrototype,"constructor",{value:GeneratorFunction,configurable:!0}),GeneratorFunction.displayName=define(GeneratorFunctionPrototype,toStringTagSymbol,"GeneratorFunction"),exports.isGeneratorFunction=function(genFun){var ctor="function"==typeof genFun&&genFun.constructor;return!!ctor&&(ctor===GeneratorFunction||"GeneratorFunction"===(ctor.displayName||ctor.name))},exports.mark=function(genFun){return Object.setPrototypeOf?Object.setPrototypeOf(genFun,GeneratorFunctionPrototype):(genFun.__proto__=GeneratorFunctionPrototype,define(genFun,toStringTagSymbol,"GeneratorFunction")),genFun.prototype=Object.create(Gp),genFun},exports.awrap=function(arg){return{__await:arg}},defineIteratorMethods(AsyncIterator.prototype),define(AsyncIterator.prototype,asyncIteratorSymbol,(function(){return this})),exports.AsyncIterator=AsyncIterator,exports.async=function(innerFn,outerFn,self,tryLocsList,PromiseImpl){void 0===PromiseImpl&&(PromiseImpl=Promise);var iter=new AsyncIterator(wrap(innerFn,outerFn,self,tryLocsList),PromiseImpl);return exports.isGeneratorFunction(outerFn)?iter:iter.next().then((function(result){return result.done?result.value:iter.next()}))},defineIteratorMethods(Gp),define(Gp,toStringTagSymbol,"Generator"),define(Gp,iteratorSymbol,(function(){return this})),define(Gp,"toString",(function(){return"[object Generator]"})),exports.keys=function(val){var object=Object(val),keys=[];for(var key in object)keys.push(key);return keys.reverse(),function next(){for(;keys.length;){var key=keys.pop();if(key in object)return next.value=key,next.done=!1,next}return next.done=!0,next}},exports.values=values,Context.prototype={constructor:Context,reset:function(skipTempReset){if(this.prev=0,this.next=0,this.sent=this._sent=undefined,this.done=!1,this.delegate=null,this.method="next",this.arg=undefined,this.tryEntries.forEach(resetTryEntry),!skipTempReset)for(var name in this)"t"===name.charAt(0)&&hasOwn.call(this,name)&&!isNaN(+name.slice(1))&&(this[name]=undefined)},stop:function(){this.done=!0;var rootRecord=this.tryEntries[0].completion;if("throw"===rootRecord.type)throw rootRecord.arg;return this.rval},dispatchException:function(exception){if(this.done)throw exception;var context=this;function handle(loc,caught){return record.type="throw",record.arg=exception,context.next=loc,caught&&(context.method="next",context.arg=undefined),!!caught}for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i],record=entry.completion;if("root"===entry.tryLoc)return handle("end");if(entry.tryLoc<=this.prev){var hasCatch=hasOwn.call(entry,"catchLoc"),hasFinally=hasOwn.call(entry,"finallyLoc");if(hasCatch&&hasFinally){if(this.prev<entry.catchLoc)return handle(entry.catchLoc,!0);if(this.prev<entry.finallyLoc)return handle(entry.finallyLoc)}else if(hasCatch){if(this.prev<entry.catchLoc)return handle(entry.catchLoc,!0)}else{if(!hasFinally)throw new Error("try statement without catch or finally");if(this.prev<entry.finallyLoc)return handle(entry.finallyLoc)}}}},abrupt:function(type,arg){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.tryLoc<=this.prev&&hasOwn.call(entry,"finallyLoc")&&this.prev<entry.finallyLoc){var finallyEntry=entry;break}}finallyEntry&&("break"===type||"continue"===type)&&finallyEntry.tryLoc<=arg&&arg<=finallyEntry.finallyLoc&&(finallyEntry=null);var record=finallyEntry?finallyEntry.completion:{};return record.type=type,record.arg=arg,finallyEntry?(this.method="next",this.next=finallyEntry.finallyLoc,ContinueSentinel):this.complete(record)},complete:function(record,afterLoc){if("throw"===record.type)throw record.arg;return"break"===record.type||"continue"===record.type?this.next=record.arg:"return"===record.type?(this.rval=this.arg=record.arg,this.method="return",this.next="end"):"normal"===record.type&&afterLoc&&(this.next=afterLoc),ContinueSentinel},finish:function(finallyLoc){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.finallyLoc===finallyLoc)return this.complete(entry.completion,entry.afterLoc),resetTryEntry(entry),ContinueSentinel}},catch:function(tryLoc){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.tryLoc===tryLoc){var record=entry.completion;if("throw"===record.type){var thrown=record.arg;resetTryEntry(entry)}return thrown}}throw new Error("illegal catch attempt")},delegateYield:function(iterable,resultName,nextLoc){return this.delegate={iterator:values(iterable),resultName:resultName,nextLoc:nextLoc},"next"===this.method&&(this.arg=undefined),ContinueSentinel}},exports}'),
    typeof: t("7.0.0-beta.0", 'export default function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj},_typeof(obj)}'),
    wrapRegExp: t("7.19.0", 'import setPrototypeOf from"setPrototypeOf";import inherits from"inherits";export default function _wrapRegExp(){_wrapRegExp=function(re,groups){return new BabelRegExp(re,void 0,groups)};var _super=RegExp.prototype,_groups=new WeakMap;function BabelRegExp(re,flags,groups){var _this=new RegExp(re,flags);return _groups.set(_this,groups||_groups.get(re)),setPrototypeOf(_this,BabelRegExp.prototype)}function buildGroups(result,re){var g=_groups.get(re);return Object.keys(g).reduce((function(groups,name){var i=g[name];if("number"==typeof i)groups[name]=result[i];else{for(var k=0;void 0===result[i[k]]&&k+1<i.length;)k++;groups[name]=result[i[k]]}return groups}),Object.create(null))}return inherits(BabelRegExp,RegExp),BabelRegExp.prototype.exec=function(str){var result=_super.exec.call(this,str);if(result){result.groups=buildGroups(result,this);var indices=result.indices;indices&&(indices.groups=buildGroups(indices,this))}return result},BabelRegExp.prototype[Symbol.replace]=function(str,substitution){if("string"==typeof substitution){var groups=_groups.get(this);return _super[Symbol.replace].call(this,str,substitution.replace(/\\$<([^>]+)>/g,(function(_,name){var group=groups[name];return"$"+(Array.isArray(group)?group.join("$"):group)})))}if("function"==typeof substitution){var _this=this;return _super[Symbol.replace].call(this,str,(function(){var args=arguments;return"object"!=typeof args[args.length-1]&&(args=[].slice.call(args)).push(buildGroups(args,_this)),substitution.apply(this,args)}))}return _super[Symbol.replace].call(this,str,substitution)},_wrapRegExp.apply(this,arguments)}')
  });
  return Hb.default = r, Hb;
}
var WX, Ane, Cne, _ne, Ine, kne, One, Nne, Dne, Lne, Mne, Rne, Bne, Fne, jne, $ne, Une, qne, Vne, Wne, Hne, Kne, zne, Gne, Yne, Xne, Jne, Qne, Zne, ese, tse, rse, ise, nse, sse, ase, ose, lse, use, cse, pse, fse, hse, dse, mse, yse, gse, bse, vse, Tse, Sse, xse, Ese, Pse, wse, Ase, Cse, _se, Ise, kse, Ose, Nse, Dse, Lse, Mse, Rse, Bse, Fse, jse, $se, Use, qse, Vse, Wse, Hse, Kse, zse, Gse, Yse, Xse, Jse, Qse, Zse;
function kEt() {
  if (WX)
    return Wb;
  WX = 1, Object.defineProperty(Wb, "__esModule", {
    value: !0
  }), Wb.default = void 0;
  var e = rn, t = IEt();
  const r = Object.assign({
    __proto__: null
  }, t.default);
  var i = r;
  Wb.default = i;
  const n = (s) => (a) => ({
    minVersion: s,
    ast: () => e.default.program.ast(a)
  });
  return r.AwaitValue = n("7.0.0-beta.0")(Ane || (Ane = at(["\n    export default function _AwaitValue(value) {\n      this.wrapped = value;\n    }\n  "]))), r.wrapAsyncGenerator = n("7.0.0-beta.0")(Cne || (Cne = at(['\n  import AsyncGenerator from "AsyncGenerator";\n\n  export default function _wrapAsyncGenerator(fn) {\n    return function () {\n      return new AsyncGenerator(fn.apply(this, arguments));\n    };\n  }\n']))), r.asyncToGenerator = n("7.0.0-beta.0")(_ne || (_ne = at(['\n  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n    try {\n      var info = gen[key](arg);\n      var value = info.value;\n    } catch (error) {\n      reject(error);\n      return;\n    }\n\n    if (info.done) {\n      resolve(value);\n    } else {\n      Promise.resolve(value).then(_next, _throw);\n    }\n  }\n\n  export default function _asyncToGenerator(fn) {\n    return function () {\n      var self = this, args = arguments;\n      return new Promise(function (resolve, reject) {\n        var gen = fn.apply(self, args);\n        function _next(value) {\n          asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);\n        }\n        function _throw(err) {\n          asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);\n        }\n\n        _next(undefined);\n      });\n    };\n  }\n']))), r.classCallCheck = n("7.0.0-beta.0")(Ine || (Ine = at(['\n  export default function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError("Cannot call a class as a function");\n    }\n  }\n']))), r.createClass = n("7.0.0-beta.0")(kne || (kne = at(['\n  import toPropertyKey from "toPropertyKey";\n  function _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i ++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if ("value" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n    }\n  }\n\n  export default function _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) _defineProperties(Constructor, staticProps);\n    Object.defineProperty(Constructor, "prototype", { writable: false });\n    return Constructor;\n  }\n']))), r.defineEnumerableProperties = n("7.0.0-beta.0")(One || (One = at(['\n  export default function _defineEnumerableProperties(obj, descs) {\n    for (var key in descs) {\n      var desc = descs[key];\n      desc.configurable = desc.enumerable = true;\n      if ("value" in desc) desc.writable = true;\n      Object.defineProperty(obj, key, desc);\n    }\n\n    // Symbols are not enumerated over by for-in loops. If native\n    // Symbols are available, fetch all of the descs object\'s own\n    // symbol properties and define them on our target object too.\n    if (Object.getOwnPropertySymbols) {\n      var objectSymbols = Object.getOwnPropertySymbols(descs);\n      for (var i = 0; i < objectSymbols.length; i++) {\n        var sym = objectSymbols[i];\n        var desc = descs[sym];\n        desc.configurable = desc.enumerable = true;\n        if ("value" in desc) desc.writable = true;\n        Object.defineProperty(obj, sym, desc);\n      }\n    }\n    return obj;\n  }\n']))), r.defaults = n("7.0.0-beta.0")(Nne || (Nne = at(["\n  export default function _defaults(obj, defaults) {\n    var keys = Object.getOwnPropertyNames(defaults);\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i];\n      var value = Object.getOwnPropertyDescriptor(defaults, key);\n      if (value && value.configurable && obj[key] === undefined) {\n        Object.defineProperty(obj, key, value);\n      }\n    }\n    return obj;\n  }\n"]))), r.defineProperty = n("7.0.0-beta.0")(Dne || (Dne = at(['\n  import toPropertyKey from "toPropertyKey";\n  export default function _defineProperty(obj, key, value) {\n    key = toPropertyKey(key);\n    // Shortcircuit the slow defineProperty path when possible.\n    // We are trying to avoid issues where setters defined on the\n    // prototype cause side effects under the fast path of simple\n    // assignment. By checking for existence of the property with\n    // the in operator, we can optimize most of this overhead away.\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n    return obj;\n  }\n']))), r.extends = n("7.0.0-beta.0")(Lne || (Lne = at(["\n  export default function _extends() {\n    _extends = Object.assign ? Object.assign.bind() : function (target) {\n      for (var i = 1; i < arguments.length; i++) {\n        var source = arguments[i];\n        for (var key in source) {\n          if (Object.prototype.hasOwnProperty.call(source, key)) {\n            target[key] = source[key];\n          }\n        }\n      }\n      return target;\n    };\n\n    return _extends.apply(this, arguments);\n  }\n"]))), r.objectSpread = n("7.0.0-beta.0")(Mne || (Mne = at(["\n  import defineProperty from \"defineProperty\";\n\n  export default function _objectSpread(target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = (arguments[i] != null) ? Object(arguments[i]) : {};\n      var ownKeys = Object.keys(source);\n      if (typeof Object.getOwnPropertySymbols === 'function') {\n        ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function(sym) {\n          return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n        }));\n      }\n      ownKeys.forEach(function(key) {\n        defineProperty(target, key, source[key]);\n      });\n    }\n    return target;\n  }\n"]))), r.inherits = n("7.0.0-beta.0")(Rne || (Rne = at(['\n  import setPrototypeOf from "setPrototypeOf";\n\n  export default function _inherits(subClass, superClass) {\n    if (typeof superClass !== "function" && superClass !== null) {\n      throw new TypeError("Super expression must either be null or a function");\n    }\n    // We can\'t use defineProperty to set the prototype in a single step because it\n    // doesn\'t work in Chrome <= 36. https://github.com/babel/babel/issues/14056\n    // V8 bug: https://bugs.chromium.org/p/v8/issues/detail?id=3334\n    subClass.prototype = Object.create(superClass && superClass.prototype, {\n      constructor: {\n        value: subClass,\n        writable: true,\n        configurable: true\n      }\n    });\n    Object.defineProperty(subClass, "prototype", { writable: false });\n    if (superClass) setPrototypeOf(subClass, superClass);\n  }\n']))), r.inheritsLoose = n("7.0.0-beta.0")(Bne || (Bne = at(['\n  import setPrototypeOf from "setPrototypeOf";\n\n  export default function _inheritsLoose(subClass, superClass) {\n    subClass.prototype = Object.create(superClass.prototype);\n    subClass.prototype.constructor = subClass;\n    setPrototypeOf(subClass, superClass);\n  }\n']))), r.getPrototypeOf = n("7.0.0-beta.0")(Fne || (Fne = at(["\n  export default function _getPrototypeOf(o) {\n    _getPrototypeOf = Object.setPrototypeOf\n      ? Object.getPrototypeOf.bind()\n      : function _getPrototypeOf(o) {\n          return o.__proto__ || Object.getPrototypeOf(o);\n        };\n    return _getPrototypeOf(o);\n  }\n"]))), r.setPrototypeOf = n("7.0.0-beta.0")(jne || (jne = at(["\n  export default function _setPrototypeOf(o, p) {\n    _setPrototypeOf = Object.setPrototypeOf\n      ? Object.setPrototypeOf.bind()\n      : function _setPrototypeOf(o, p) {\n          o.__proto__ = p;\n          return o;\n        };\n    return _setPrototypeOf(o, p);\n  }\n"]))), r.isNativeReflectConstruct = n("7.9.0")($ne || ($ne = at(["\n  export default function _isNativeReflectConstruct() {\n    if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n\n    // core-js@3\n    if (Reflect.construct.sham) return false;\n\n    // Proxy can't be polyfilled. Every browser implemented\n    // proxies before or at the same time as Reflect.construct,\n    // so if they support Proxy they also support Reflect.construct.\n    if (typeof Proxy === \"function\") return true;\n\n    // Since Reflect.construct can't be properly polyfilled, some\n    // implementations (e.g. core-js@2) don't set the correct internal slots.\n    // Those polyfills don't allow us to subclass built-ins, so we need to\n    // use our fallback implementation.\n    try {\n      // If the internal slots aren't set, this throws an error similar to\n      //   TypeError: this is not a Boolean object.\n\n      Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));\n      return true;\n    } catch (e) {\n      return false;\n    }\n  }\n"]))), r.construct = n("7.0.0-beta.0")(Une || (Une = at(['\n  import setPrototypeOf from "setPrototypeOf";\n  import isNativeReflectConstruct from "isNativeReflectConstruct";\n\n  export default function _construct(Parent, args, Class) {\n    if (isNativeReflectConstruct()) {\n      _construct = Reflect.construct.bind();\n    } else {\n      // NOTE: If Parent !== Class, the correct __proto__ is set *after*\n      //       calling the constructor.\n      _construct = function _construct(Parent, args, Class) {\n        var a = [null];\n        a.push.apply(a, args);\n        var Constructor = Function.bind.apply(Parent, a);\n        var instance = new Constructor();\n        if (Class) setPrototypeOf(instance, Class.prototype);\n        return instance;\n      };\n    }\n    // Avoid issues with Class being present but undefined when it wasn\'t\n    // present in the original call.\n    return _construct.apply(null, arguments);\n  }\n']))), r.isNativeFunction = n("7.0.0-beta.0")(qne || (qne = at(['\n  export default function _isNativeFunction(fn) {\n    // Note: This function returns "true" for core-js functions.\n    return Function.toString.call(fn).indexOf("[native code]") !== -1;\n  }\n']))), r.wrapNativeSuper = n("7.0.0-beta.0")(Vne || (Vne = at(['\n  import getPrototypeOf from "getPrototypeOf";\n  import setPrototypeOf from "setPrototypeOf";\n  import isNativeFunction from "isNativeFunction";\n  import construct from "construct";\n\n  export default function _wrapNativeSuper(Class) {\n    var _cache = typeof Map === "function" ? new Map() : undefined;\n\n    _wrapNativeSuper = function _wrapNativeSuper(Class) {\n      if (Class === null || !isNativeFunction(Class)) return Class;\n      if (typeof Class !== "function") {\n        throw new TypeError("Super expression must either be null or a function");\n      }\n      if (typeof _cache !== "undefined") {\n        if (_cache.has(Class)) return _cache.get(Class);\n        _cache.set(Class, Wrapper);\n      }\n      function Wrapper() {\n        return construct(Class, arguments, getPrototypeOf(this).constructor)\n      }\n      Wrapper.prototype = Object.create(Class.prototype, {\n        constructor: {\n          value: Wrapper,\n          enumerable: false,\n          writable: true,\n          configurable: true,\n        }\n      });\n\n      return setPrototypeOf(Wrapper, Class);\n    }\n\n    return _wrapNativeSuper(Class)\n  }\n']))), r.instanceof = n("7.0.0-beta.0")(Wne || (Wne = at(['\n  export default function _instanceof(left, right) {\n    if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {\n      return !!right[Symbol.hasInstance](left);\n    } else {\n      return left instanceof right;\n    }\n  }\n']))), r.interopRequireDefault = n("7.0.0-beta.0")(Hne || (Hne = at(["\n  export default function _interopRequireDefault(obj) {\n    return obj && obj.__esModule ? obj : { default: obj };\n  }\n"]))), r.interopRequireWildcard = n("7.14.0")(Kne || (Kne = at(['\n  function _getRequireWildcardCache(nodeInterop) {\n    if (typeof WeakMap !== "function") return null;\n\n    var cacheBabelInterop = new WeakMap();\n    var cacheNodeInterop = new WeakMap();\n    return (_getRequireWildcardCache = function (nodeInterop) {\n      return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n    })(nodeInterop);\n  }\n\n  export default function _interopRequireWildcard(obj, nodeInterop) {\n    if (!nodeInterop && obj && obj.__esModule) {\n      return obj;\n    }\n\n    if (obj === null || (typeof obj !== "object" && typeof obj !== "function")) {\n      return { default: obj }\n    }\n\n    var cache = _getRequireWildcardCache(nodeInterop);\n    if (cache && cache.has(obj)) {\n      return cache.get(obj);\n    }\n\n    var newObj = {};\n    var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n    for (var key in obj) {\n      if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {\n        var desc = hasPropertyDescriptor\n          ? Object.getOwnPropertyDescriptor(obj, key)\n          : null;\n        if (desc && (desc.get || desc.set)) {\n          Object.defineProperty(newObj, key, desc);\n        } else {\n          newObj[key] = obj[key];\n        }\n      }\n    }\n    newObj.default = obj;\n    if (cache) {\n      cache.set(obj, newObj);\n    }\n    return newObj;\n  }\n']))), r.newArrowCheck = n("7.0.0-beta.0")(zne || (zne = at(['\n  export default function _newArrowCheck(innerThis, boundThis) {\n    if (innerThis !== boundThis) {\n      throw new TypeError("Cannot instantiate an arrow function");\n    }\n  }\n']))), r.objectDestructuringEmpty = n("7.0.0-beta.0")(Gne || (Gne = at(['\n  export default function _objectDestructuringEmpty(obj) {\n    if (obj == null) throw new TypeError("Cannot destructure " + obj);\n  }\n']))), r.objectWithoutPropertiesLoose = n("7.0.0-beta.0")(Yne || (Yne = at(["\n  export default function _objectWithoutPropertiesLoose(source, excluded) {\n    if (source == null) return {};\n\n    var target = {};\n    var sourceKeys = Object.keys(source);\n    var key, i;\n\n    for (i = 0; i < sourceKeys.length; i++) {\n      key = sourceKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      target[key] = source[key];\n    }\n\n    return target;\n  }\n"]))), r.objectWithoutProperties = n("7.0.0-beta.0")(Xne || (Xne = at(['\n  import objectWithoutPropertiesLoose from "objectWithoutPropertiesLoose";\n\n  export default function _objectWithoutProperties(source, excluded) {\n    if (source == null) return {};\n\n    var target = objectWithoutPropertiesLoose(source, excluded);\n    var key, i;\n\n    if (Object.getOwnPropertySymbols) {\n      var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n      for (i = 0; i < sourceSymbolKeys.length; i++) {\n        key = sourceSymbolKeys[i];\n        if (excluded.indexOf(key) >= 0) continue;\n        if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n        target[key] = source[key];\n      }\n    }\n\n    return target;\n  }\n']))), r.assertThisInitialized = n("7.0.0-beta.0")(Jne || (Jne = at(["\n  export default function _assertThisInitialized(self) {\n    if (self === void 0) {\n      throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n    }\n    return self;\n  }\n"]))), r.possibleConstructorReturn = n("7.0.0-beta.0")(Qne || (Qne = at(['\n  import assertThisInitialized from "assertThisInitialized";\n\n  export default function _possibleConstructorReturn(self, call) {\n    if (call && (typeof call === "object" || typeof call === "function")) {\n      return call;\n    } else if (call !== void 0) {\n      throw new TypeError("Derived constructors may only return object or undefined");\n    }\n\n    return assertThisInitialized(self);\n  }\n']))), r.createSuper = n("7.9.0")(Zne || (Zne = at(['\n  import getPrototypeOf from "getPrototypeOf";\n  import isNativeReflectConstruct from "isNativeReflectConstruct";\n  import possibleConstructorReturn from "possibleConstructorReturn";\n\n  export default function _createSuper(Derived) {\n    var hasNativeReflectConstruct = isNativeReflectConstruct();\n\n    return function _createSuperInternal() {\n      var Super = getPrototypeOf(Derived), result;\n      if (hasNativeReflectConstruct) {\n        // NOTE: This doesn\'t work if this.__proto__.constructor has been modified.\n        var NewTarget = getPrototypeOf(this).constructor;\n        result = Reflect.construct(Super, arguments, NewTarget);\n      } else {\n        result = Super.apply(this, arguments);\n      }\n      return possibleConstructorReturn(this, result);\n    }\n  }\n ']))), r.superPropBase = n("7.0.0-beta.0")(ese || (ese = at(['\n  import getPrototypeOf from "getPrototypeOf";\n\n  export default function _superPropBase(object, property) {\n    // Yes, this throws if object is null to being with, that\'s on purpose.\n    while (!Object.prototype.hasOwnProperty.call(object, property)) {\n      object = getPrototypeOf(object);\n      if (object === null) break;\n    }\n    return object;\n  }\n']))), r.get = n("7.0.0-beta.0")(tse || (tse = at(['\n  import superPropBase from "superPropBase";\n\n  export default function _get() {\n    if (typeof Reflect !== "undefined" && Reflect.get) {\n      _get = Reflect.get.bind();\n    } else {\n      _get = function _get(target, property, receiver) {\n        var base = superPropBase(target, property);\n\n        if (!base) return;\n\n        var desc = Object.getOwnPropertyDescriptor(base, property);\n        if (desc.get) {\n          // STEP 3. If receiver is not present, then set receiver to target.\n          return desc.get.call(arguments.length < 3 ? target : receiver);\n        }\n\n        return desc.value;\n      };\n    }\n    return _get.apply(this, arguments);\n  }\n']))), r.set = n("7.0.0-beta.0")(rse || (rse = at(['\n  import superPropBase from "superPropBase";\n  import defineProperty from "defineProperty";\n\n  function set(target, property, value, receiver) {\n    if (typeof Reflect !== "undefined" && Reflect.set) {\n      set = Reflect.set;\n    } else {\n      set = function set(target, property, value, receiver) {\n        var base = superPropBase(target, property);\n        var desc;\n\n        if (base) {\n          desc = Object.getOwnPropertyDescriptor(base, property);\n          if (desc.set) {\n            desc.set.call(receiver, value);\n            return true;\n          } else if (!desc.writable) {\n            // Both getter and non-writable fall into this.\n            return false;\n          }\n        }\n\n        // Without a super that defines the property, spec boils down to\n        // "define on receiver" for some reason.\n        desc = Object.getOwnPropertyDescriptor(receiver, property);\n        if (desc) {\n          if (!desc.writable) {\n            // Setter, getter, and non-writable fall into this.\n            return false;\n          }\n\n          desc.value = value;\n          Object.defineProperty(receiver, property, desc);\n        } else {\n          // Avoid setters that may be defined on Sub\'s prototype, but not on\n          // the instance.\n          defineProperty(receiver, property, value);\n        }\n\n        return true;\n      };\n    }\n\n    return set(target, property, value, receiver);\n  }\n\n  export default function _set(target, property, value, receiver, isStrict) {\n    var s = set(target, property, value, receiver || target);\n    if (!s && isStrict) {\n      throw new TypeError(\'failed to set property\');\n    }\n\n    return value;\n  }\n']))), r.taggedTemplateLiteral = n("7.0.0-beta.0")(ise || (ise = at(["\n  export default function _taggedTemplateLiteral(strings, raw) {\n    if (!raw) { raw = strings.slice(0); }\n    return Object.freeze(Object.defineProperties(strings, {\n        raw: { value: Object.freeze(raw) }\n    }));\n  }\n"]))), r.taggedTemplateLiteralLoose = n("7.0.0-beta.0")(nse || (nse = at(["\n  export default function _taggedTemplateLiteralLoose(strings, raw) {\n    if (!raw) { raw = strings.slice(0); }\n    strings.raw = raw;\n    return strings;\n  }\n"]))), r.readOnlyError = n("7.0.0-beta.0")(sse || (sse = at(['\n  export default function _readOnlyError(name) {\n    throw new TypeError("\\"" + name + "\\" is read-only");\n  }\n'], ['\n  export default function _readOnlyError(name) {\n    throw new TypeError("\\\\"" + name + "\\\\" is read-only");\n  }\n']))), r.writeOnlyError = n("7.12.13")(ase || (ase = at(['\n  export default function _writeOnlyError(name) {\n    throw new TypeError("\\"" + name + "\\" is write-only");\n  }\n'], ['\n  export default function _writeOnlyError(name) {\n    throw new TypeError("\\\\"" + name + "\\\\" is write-only");\n  }\n']))), r.classNameTDZError = n("7.0.0-beta.0")(ose || (ose = at(['\n  export default function _classNameTDZError(name) {\n    throw new ReferenceError("Class \\"" + name + "\\" cannot be referenced in computed property keys.");\n  }\n'], ['\n  export default function _classNameTDZError(name) {\n    throw new ReferenceError("Class \\\\"" + name + "\\\\" cannot be referenced in computed property keys.");\n  }\n']))), r.temporalUndefined = n("7.0.0-beta.0")(lse || (lse = at(["\n  // This function isn't mean to be called, but to be used as a reference.\n  // We can't use a normal object because it isn't hoisted.\n  export default function _temporalUndefined() {}\n"]))), r.tdz = n("7.5.5")(use || (use = at(['\n  export default function _tdzError(name) {\n    throw new ReferenceError(name + " is not defined - temporal dead zone");\n  }\n']))), r.temporalRef = n("7.0.0-beta.0")(cse || (cse = at(['\n  import undef from "temporalUndefined";\n  import err from "tdz";\n\n  export default function _temporalRef(val, name) {\n    return val === undef ? err(name) : val;\n  }\n']))), r.slicedToArray = n("7.0.0-beta.0")(pse || (pse = at(['\n  import arrayWithHoles from "arrayWithHoles";\n  import iterableToArrayLimit from "iterableToArrayLimit";\n  import unsupportedIterableToArray from "unsupportedIterableToArray";\n  import nonIterableRest from "nonIterableRest";\n\n  export default function _slicedToArray(arr, i) {\n    return (\n      arrayWithHoles(arr) ||\n      iterableToArrayLimit(arr, i) ||\n      unsupportedIterableToArray(arr, i) ||\n      nonIterableRest()\n    );\n  }\n']))), r.slicedToArrayLoose = n("7.0.0-beta.0")(fse || (fse = at(['\n  import arrayWithHoles from "arrayWithHoles";\n  import iterableToArrayLimitLoose from "iterableToArrayLimitLoose";\n  import unsupportedIterableToArray from "unsupportedIterableToArray";\n  import nonIterableRest from "nonIterableRest";\n\n  export default function _slicedToArrayLoose(arr, i) {\n    return (\n      arrayWithHoles(arr) ||\n      iterableToArrayLimitLoose(arr, i) ||\n      unsupportedIterableToArray(arr, i) ||\n      nonIterableRest()\n    );\n  }\n']))), r.toArray = n("7.0.0-beta.0")(hse || (hse = at(['\n  import arrayWithHoles from "arrayWithHoles";\n  import iterableToArray from "iterableToArray";\n  import unsupportedIterableToArray from "unsupportedIterableToArray";\n  import nonIterableRest from "nonIterableRest";\n\n  export default function _toArray(arr) {\n    return (\n      arrayWithHoles(arr) ||\n      iterableToArray(arr) ||\n      unsupportedIterableToArray(arr) ||\n      nonIterableRest()\n    );\n  }\n']))), r.toConsumableArray = n("7.0.0-beta.0")(dse || (dse = at(['\n  import arrayWithoutHoles from "arrayWithoutHoles";\n  import iterableToArray from "iterableToArray";\n  import unsupportedIterableToArray from "unsupportedIterableToArray";\n  import nonIterableSpread from "nonIterableSpread";\n\n  export default function _toConsumableArray(arr) {\n    return (\n      arrayWithoutHoles(arr) ||\n      iterableToArray(arr) ||\n      unsupportedIterableToArray(arr) ||\n      nonIterableSpread()\n    );\n  }\n']))), r.arrayWithoutHoles = n("7.0.0-beta.0")(mse || (mse = at(['\n  import arrayLikeToArray from "arrayLikeToArray";\n\n  export default function _arrayWithoutHoles(arr) {\n    if (Array.isArray(arr)) return arrayLikeToArray(arr);\n  }\n']))), r.arrayWithHoles = n("7.0.0-beta.0")(yse || (yse = at(["\n  export default function _arrayWithHoles(arr) {\n    if (Array.isArray(arr)) return arr;\n  }\n"]))), r.maybeArrayLike = n("7.9.0")(gse || (gse = at(['\n  import arrayLikeToArray from "arrayLikeToArray";\n\n  export default function _maybeArrayLike(next, arr, i) {\n    if (arr && !Array.isArray(arr) && typeof arr.length === "number") {\n      var len = arr.length;\n      return arrayLikeToArray(arr, i !== void 0 && i < len ? i : len);\n    }\n    return next(arr, i);\n  }\n']))), r.iterableToArray = n("7.0.0-beta.0")(bse || (bse = at(['\n  export default function _iterableToArray(iter) {\n    if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);\n  }\n']))), r.unsupportedIterableToArray = n("7.9.0")(vse || (vse = at(['\n  import arrayLikeToArray from "arrayLikeToArray";\n\n  export default function _unsupportedIterableToArray(o, minLen) {\n    if (!o) return;\n    if (typeof o === "string") return arrayLikeToArray(o, minLen);\n    var n = Object.prototype.toString.call(o).slice(8, -1);\n    if (n === "Object" && o.constructor) n = o.constructor.name;\n    if (n === "Map" || n === "Set") return Array.from(o);\n    if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n      return arrayLikeToArray(o, minLen);\n  }\n']))), r.arrayLikeToArray = n("7.9.0")(Tse || (Tse = at(["\n  export default function _arrayLikeToArray(arr, len) {\n    if (len == null || len > arr.length) len = arr.length;\n    for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n    return arr2;\n  }\n"]))), r.nonIterableSpread = n("7.0.0-beta.0")(Sse || (Sse = at(['\n  export default function _nonIterableSpread() {\n    throw new TypeError(\n      "Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."\n    );\n  }\n'], ['\n  export default function _nonIterableSpread() {\n    throw new TypeError(\n      "Invalid attempt to spread non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."\n    );\n  }\n']))), r.nonIterableRest = n("7.0.0-beta.0")(xse || (xse = at(['\n  export default function _nonIterableRest() {\n    throw new TypeError(\n      "Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."\n    );\n  }\n'], ['\n  export default function _nonIterableRest() {\n    throw new TypeError(\n      "Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."\n    );\n  }\n']))), r.createForOfIteratorHelper = n("7.9.0")(Ese || (Ese = at(['\n  import unsupportedIterableToArray from "unsupportedIterableToArray";\n\n  // s: start (create the iterator)\n  // n: next\n  // e: error (called whenever something throws)\n  // f: finish (always called at the end)\n\n  export default function _createForOfIteratorHelper(o, allowArrayLike) {\n    var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];\n\n    if (!it) {\n      // Fallback for engines without symbol support\n      if (\n        Array.isArray(o) ||\n        (it = unsupportedIterableToArray(o)) ||\n        (allowArrayLike && o && typeof o.length === "number")\n      ) {\n        if (it) o = it;\n        var i = 0;\n        var F = function(){};\n        return {\n          s: F,\n          n: function() {\n            if (i >= o.length) return { done: true };\n            return { done: false, value: o[i++] };\n          },\n          e: function(e) { throw e; },\n          f: F,\n        };\n      }\n\n      throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");\n    }\n\n    var normalCompletion = true, didErr = false, err;\n\n    return {\n      s: function() {\n        it = it.call(o);\n      },\n      n: function() {\n        var step = it.next();\n        normalCompletion = step.done;\n        return step;\n      },\n      e: function(e) {\n        didErr = true;\n        err = e;\n      },\n      f: function() {\n        try {\n          if (!normalCompletion && it.return != null) it.return();\n        } finally {\n          if (didErr) throw err;\n        }\n      }\n    };\n  }\n'], ['\n  import unsupportedIterableToArray from "unsupportedIterableToArray";\n\n  // s: start (create the iterator)\n  // n: next\n  // e: error (called whenever something throws)\n  // f: finish (always called at the end)\n\n  export default function _createForOfIteratorHelper(o, allowArrayLike) {\n    var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];\n\n    if (!it) {\n      // Fallback for engines without symbol support\n      if (\n        Array.isArray(o) ||\n        (it = unsupportedIterableToArray(o)) ||\n        (allowArrayLike && o && typeof o.length === "number")\n      ) {\n        if (it) o = it;\n        var i = 0;\n        var F = function(){};\n        return {\n          s: F,\n          n: function() {\n            if (i >= o.length) return { done: true };\n            return { done: false, value: o[i++] };\n          },\n          e: function(e) { throw e; },\n          f: F,\n        };\n      }\n\n      throw new TypeError("Invalid attempt to iterate non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");\n    }\n\n    var normalCompletion = true, didErr = false, err;\n\n    return {\n      s: function() {\n        it = it.call(o);\n      },\n      n: function() {\n        var step = it.next();\n        normalCompletion = step.done;\n        return step;\n      },\n      e: function(e) {\n        didErr = true;\n        err = e;\n      },\n      f: function() {\n        try {\n          if (!normalCompletion && it.return != null) it.return();\n        } finally {\n          if (didErr) throw err;\n        }\n      }\n    };\n  }\n']))), r.createForOfIteratorHelperLoose = n("7.9.0")(Pse || (Pse = at(['\n  import unsupportedIterableToArray from "unsupportedIterableToArray";\n\n  export default function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n    var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];\n\n    if (it) return (it = it.call(o)).next.bind(it);\n\n    // Fallback for engines without symbol support\n    if (\n      Array.isArray(o) ||\n      (it = unsupportedIterableToArray(o)) ||\n      (allowArrayLike && o && typeof o.length === "number")\n    ) {\n      if (it) o = it;\n      var i = 0;\n      return function() {\n        if (i >= o.length) return { done: true };\n        return { done: false, value: o[i++] };\n      }\n    }\n\n    throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");\n  }\n'], ['\n  import unsupportedIterableToArray from "unsupportedIterableToArray";\n\n  export default function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n    var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];\n\n    if (it) return (it = it.call(o)).next.bind(it);\n\n    // Fallback for engines without symbol support\n    if (\n      Array.isArray(o) ||\n      (it = unsupportedIterableToArray(o)) ||\n      (allowArrayLike && o && typeof o.length === "number")\n    ) {\n      if (it) o = it;\n      var i = 0;\n      return function() {\n        if (i >= o.length) return { done: true };\n        return { done: false, value: o[i++] };\n      }\n    }\n\n    throw new TypeError("Invalid attempt to iterate non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");\n  }\n']))), r.skipFirstGeneratorNext = n("7.0.0-beta.0")(wse || (wse = at(["\n  export default function _skipFirstGeneratorNext(fn) {\n    return function () {\n      var it = fn.apply(this, arguments);\n      it.next();\n      return it;\n    }\n  }\n"]))), r.toPrimitive = n("7.1.5")(Ase || (Ase = at(['\n  export default function _toPrimitive(\n    input,\n    hint /*: "default" | "string" | "number" | void */\n  ) {\n    if (typeof input !== "object" || input === null) return input;\n    var prim = input[Symbol.toPrimitive];\n    if (prim !== undefined) {\n      var res = prim.call(input, hint || "default");\n      if (typeof res !== "object") return res;\n      throw new TypeError("@@toPrimitive must return a primitive value.");\n    }\n    return (hint === "string" ? String : Number)(input);\n  }\n']))), r.toPropertyKey = n("7.1.5")(Cse || (Cse = at(['\n  import toPrimitive from "toPrimitive";\n\n  export default function _toPropertyKey(arg) {\n    var key = toPrimitive(arg, "string");\n    return typeof key === "symbol" ? key : String(key);\n  }\n']))), r.initializerWarningHelper = n("7.0.0-beta.0")(_se || (_se = at(["\n    export default function _initializerWarningHelper(descriptor, context){\n        throw new Error(\n          'Decorating class property failed. Please ensure that ' +\n          'proposal-class-properties is enabled and runs after the decorators transform.'\n        );\n    }\n"]))), r.initializerDefineProperty = n("7.0.0-beta.0")(Ise || (Ise = at(["\n    export default function _initializerDefineProperty(target, property, descriptor, context){\n        if (!descriptor) return;\n\n        Object.defineProperty(target, property, {\n            enumerable: descriptor.enumerable,\n            configurable: descriptor.configurable,\n            writable: descriptor.writable,\n            value: descriptor.initializer ? descriptor.initializer.call(context) : void 0,\n        });\n    }\n"]))), r.applyDecoratedDescriptor = n("7.0.0-beta.0")(kse || (kse = at(["\n    export default function _applyDecoratedDescriptor(target, property, decorators, descriptor, context){\n        var desc = {};\n        Object.keys(descriptor).forEach(function(key){\n            desc[key] = descriptor[key];\n        });\n        desc.enumerable = !!desc.enumerable;\n        desc.configurable = !!desc.configurable;\n        if ('value' in desc || desc.initializer){\n            desc.writable = true;\n        }\n\n        desc = decorators.slice().reverse().reduce(function(desc, decorator){\n            return decorator(target, property, desc) || desc;\n        }, desc);\n\n        if (context && desc.initializer !== void 0){\n            desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n            desc.initializer = undefined;\n        }\n\n        if (desc.initializer === void 0){\n            Object.defineProperty(target, property, desc);\n            desc = null;\n        }\n\n        return desc;\n    }\n"]))), r.classPrivateFieldLooseKey = n("7.0.0-beta.0")(Ose || (Ose = at(['\n  var id = 0;\n  export default function _classPrivateFieldKey(name) {\n    return "__private_" + (id++) + "_" + name;\n  }\n']))), r.classPrivateFieldLooseBase = n("7.0.0-beta.0")(Nse || (Nse = at(['\n  export default function _classPrivateFieldBase(receiver, privateKey) {\n    if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {\n      throw new TypeError("attempted to use private field on non-instance");\n    }\n    return receiver;\n  }\n']))), r.classPrivateFieldGet = n("7.0.0-beta.0")(Dse || (Dse = at(['\n  import classApplyDescriptorGet from "classApplyDescriptorGet";\n  import classExtractFieldDescriptor from "classExtractFieldDescriptor";\n  export default function _classPrivateFieldGet(receiver, privateMap) {\n    var descriptor = classExtractFieldDescriptor(receiver, privateMap, "get");\n    return classApplyDescriptorGet(receiver, descriptor);\n  }\n']))), r.classPrivateFieldSet = n("7.0.0-beta.0")(Lse || (Lse = at(['\n  import classApplyDescriptorSet from "classApplyDescriptorSet";\n  import classExtractFieldDescriptor from "classExtractFieldDescriptor";\n  export default function _classPrivateFieldSet(receiver, privateMap, value) {\n    var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set");\n    classApplyDescriptorSet(receiver, descriptor, value);\n    return value;\n  }\n']))), r.classPrivateFieldDestructureSet = n("7.4.4")(Mse || (Mse = at(['\n  import classApplyDescriptorDestructureSet from "classApplyDescriptorDestructureSet";\n  import classExtractFieldDescriptor from "classExtractFieldDescriptor";\n  export default function _classPrivateFieldDestructureSet(receiver, privateMap) {\n    var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set");\n    return classApplyDescriptorDestructureSet(receiver, descriptor);\n  }\n']))), r.classExtractFieldDescriptor = n("7.13.10")(Rse || (Rse = at(['\n  export default function _classExtractFieldDescriptor(receiver, privateMap, action) {\n    if (!privateMap.has(receiver)) {\n      throw new TypeError("attempted to " + action + " private field on non-instance");\n    }\n    return privateMap.get(receiver);\n  }\n']))), r.classStaticPrivateFieldSpecGet = n("7.0.2")(Bse || (Bse = at(['\n  import classApplyDescriptorGet from "classApplyDescriptorGet";\n  import classCheckPrivateStaticAccess from "classCheckPrivateStaticAccess";\n  import classCheckPrivateStaticFieldDescriptor from "classCheckPrivateStaticFieldDescriptor";\n  export default function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) {\n    classCheckPrivateStaticAccess(receiver, classConstructor);\n    classCheckPrivateStaticFieldDescriptor(descriptor, "get");\n    return classApplyDescriptorGet(receiver, descriptor);\n  }\n']))), r.classStaticPrivateFieldSpecSet = n("7.0.2")(Fse || (Fse = at(['\n  import classApplyDescriptorSet from "classApplyDescriptorSet";\n  import classCheckPrivateStaticAccess from "classCheckPrivateStaticAccess";\n  import classCheckPrivateStaticFieldDescriptor from "classCheckPrivateStaticFieldDescriptor";\n  export default function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) {\n    classCheckPrivateStaticAccess(receiver, classConstructor);\n    classCheckPrivateStaticFieldDescriptor(descriptor, "set");\n    classApplyDescriptorSet(receiver, descriptor, value);\n    return value;\n  }\n']))), r.classStaticPrivateMethodGet = n("7.3.2")(jse || (jse = at(['\n  import classCheckPrivateStaticAccess from "classCheckPrivateStaticAccess";\n  export default function _classStaticPrivateMethodGet(receiver, classConstructor, method) {\n    classCheckPrivateStaticAccess(receiver, classConstructor);\n    return method;\n  }\n']))), r.classStaticPrivateMethodSet = n("7.3.2")($se || ($se = at(['\n  export default function _classStaticPrivateMethodSet() {\n    throw new TypeError("attempted to set read only static private field");\n  }\n']))), r.classApplyDescriptorGet = n("7.13.10")(Use || (Use = at(["\n  export default function _classApplyDescriptorGet(receiver, descriptor) {\n    if (descriptor.get) {\n      return descriptor.get.call(receiver);\n    }\n    return descriptor.value;\n  }\n"]))), r.classApplyDescriptorSet = n("7.13.10")(qse || (qse = at(['\n  export default function _classApplyDescriptorSet(receiver, descriptor, value) {\n    if (descriptor.set) {\n      descriptor.set.call(receiver, value);\n    } else {\n      if (!descriptor.writable) {\n        // This should only throw in strict mode, but class bodies are\n        // always strict and private fields can only be used inside\n        // class bodies.\n        throw new TypeError("attempted to set read only private field");\n      }\n      descriptor.value = value;\n    }\n  }\n']))), r.classApplyDescriptorDestructureSet = n("7.13.10")(Vse || (Vse = at(['\n  export default function _classApplyDescriptorDestructureSet(receiver, descriptor) {\n    if (descriptor.set) {\n      if (!("__destrObj" in descriptor)) {\n        descriptor.__destrObj = {\n          set value(v) {\n            descriptor.set.call(receiver, v)\n          },\n        };\n      }\n      return descriptor.__destrObj;\n    } else {\n      if (!descriptor.writable) {\n        // This should only throw in strict mode, but class bodies are\n        // always strict and private fields can only be used inside\n        // class bodies.\n        throw new TypeError("attempted to set read only private field");\n      }\n\n      return descriptor;\n    }\n  }\n']))), r.classStaticPrivateFieldDestructureSet = n("7.13.10")(Wse || (Wse = at(['\n  import classApplyDescriptorDestructureSet from "classApplyDescriptorDestructureSet";\n  import classCheckPrivateStaticAccess from "classCheckPrivateStaticAccess";\n  import classCheckPrivateStaticFieldDescriptor from "classCheckPrivateStaticFieldDescriptor";\n  export default function _classStaticPrivateFieldDestructureSet(receiver, classConstructor, descriptor) {\n    classCheckPrivateStaticAccess(receiver, classConstructor);\n    classCheckPrivateStaticFieldDescriptor(descriptor, "set");\n    return classApplyDescriptorDestructureSet(receiver, descriptor);\n  }\n']))), r.classCheckPrivateStaticAccess = n("7.13.10")(Hse || (Hse = at(['\n  export default function _classCheckPrivateStaticAccess(receiver, classConstructor) {\n    if (receiver !== classConstructor) {\n      throw new TypeError("Private static access of wrong provenance");\n    }\n  }\n']))), r.classCheckPrivateStaticFieldDescriptor = n("7.13.10")(Kse || (Kse = at(['\n  export default function _classCheckPrivateStaticFieldDescriptor(descriptor, action) {\n    if (descriptor === undefined) {\n      throw new TypeError("attempted to " + action + " private static field before its declaration");\n    }\n  }\n']))), r.decorate = n("7.1.5")(zse || (zse = at(['\n  import toArray from "toArray";\n  import toPropertyKey from "toPropertyKey";\n\n  // These comments are stripped by @babel/template\n  /*::\n  type PropertyDescriptor =\n    | {\n        value: any,\n        writable: boolean,\n        configurable: boolean,\n        enumerable: boolean,\n      }\n    | {\n        get?: () => any,\n        set?: (v: any) => void,\n        configurable: boolean,\n        enumerable: boolean,\n      };\n\n  type FieldDescriptor ={\n    writable: boolean,\n    configurable: boolean,\n    enumerable: boolean,\n  };\n\n  type Placement = "static" | "prototype" | "own";\n  type Key = string | symbol; // PrivateName is not supported yet.\n\n  type ElementDescriptor =\n    | {\n        kind: "method",\n        key: Key,\n        placement: Placement,\n        descriptor: PropertyDescriptor\n      }\n    | {\n        kind: "field",\n        key: Key,\n        placement: Placement,\n        descriptor: FieldDescriptor,\n        initializer?: () => any,\n      };\n\n  // This is exposed to the user code\n  type ElementObjectInput = ElementDescriptor & {\n    [@@toStringTag]?: "Descriptor"\n  };\n\n  // This is exposed to the user code\n  type ElementObjectOutput = ElementDescriptor & {\n    [@@toStringTag]?: "Descriptor"\n    extras?: ElementDescriptor[],\n    finisher?: ClassFinisher,\n  };\n\n  // This is exposed to the user code\n  type ClassObject = {\n    [@@toStringTag]?: "Descriptor",\n    kind: "class",\n    elements: ElementDescriptor[],\n  };\n\n  type ElementDecorator = (descriptor: ElementObjectInput) => ?ElementObjectOutput;\n  type ClassDecorator = (descriptor: ClassObject) => ?ClassObject;\n  type ClassFinisher = <A, B>(cl: Class<A>) => Class<B>;\n\n  // Only used by Babel in the transform output, not part of the spec.\n  type ElementDefinition =\n    | {\n        kind: "method",\n        value: any,\n        key: Key,\n        static?: boolean,\n        decorators?: ElementDecorator[],\n      }\n    | {\n        kind: "field",\n        value: () => any,\n        key: Key,\n        static?: boolean,\n        decorators?: ElementDecorator[],\n    };\n\n  declare function ClassFactory<C>(initialize: (instance: C) => void): {\n    F: Class<C>,\n    d: ElementDefinition[]\n  }\n\n  */\n\n  /*::\n  // Various combinations with/without extras and with one or many finishers\n\n  type ElementFinisherExtras = {\n    element: ElementDescriptor,\n    finisher?: ClassFinisher,\n    extras?: ElementDescriptor[],\n  };\n\n  type ElementFinishersExtras = {\n    element: ElementDescriptor,\n    finishers: ClassFinisher[],\n    extras: ElementDescriptor[],\n  };\n\n  type ElementsFinisher = {\n    elements: ElementDescriptor[],\n    finisher?: ClassFinisher,\n  };\n\n  type ElementsFinishers = {\n    elements: ElementDescriptor[],\n    finishers: ClassFinisher[],\n  };\n\n  */\n\n  /*::\n\n  type Placements = {\n    static: Key[],\n    prototype: Key[],\n    own: Key[],\n  };\n\n  */\n\n  // ClassDefinitionEvaluation (Steps 26-*)\n  export default function _decorate(\n    decorators /*: ClassDecorator[] */,\n    factory /*: ClassFactory */,\n    superClass /*: ?Class<*> */,\n    mixins /*: ?Array<Function> */,\n  ) /*: Class<*> */ {\n    var api = _getDecoratorsApi();\n    if (mixins) {\n      for (var i = 0; i < mixins.length; i++) {\n        api = mixins[i](api);\n      }\n    }\n\n    var r = factory(function initialize(O) {\n      api.initializeInstanceElements(O, decorated.elements);\n    }, superClass);\n    var decorated = api.decorateClass(\n      _coalesceClassElements(r.d.map(_createElementDescriptor)),\n      decorators,\n    );\n\n    api.initializeClassElements(r.F, decorated.elements);\n\n    return api.runClassFinishers(r.F, decorated.finishers);\n  }\n\n  function _getDecoratorsApi() {\n    _getDecoratorsApi = function() {\n      return api;\n    };\n\n    var api = {\n      elementsDefinitionOrder: [["method"], ["field"]],\n\n      // InitializeInstanceElements\n      initializeInstanceElements: function(\n        /*::<C>*/ O /*: C */,\n        elements /*: ElementDescriptor[] */,\n      ) {\n        ["method", "field"].forEach(function(kind) {\n          elements.forEach(function(element /*: ElementDescriptor */) {\n            if (element.kind === kind && element.placement === "own") {\n              this.defineClassElement(O, element);\n            }\n          }, this);\n        }, this);\n      },\n\n      // InitializeClassElements\n      initializeClassElements: function(\n        /*::<C>*/ F /*: Class<C> */,\n        elements /*: ElementDescriptor[] */,\n      ) {\n        var proto = F.prototype;\n\n        ["method", "field"].forEach(function(kind) {\n          elements.forEach(function(element /*: ElementDescriptor */) {\n            var placement = element.placement;\n            if (\n              element.kind === kind &&\n              (placement === "static" || placement === "prototype")\n            ) {\n              var receiver = placement === "static" ? F : proto;\n              this.defineClassElement(receiver, element);\n            }\n          }, this);\n        }, this);\n      },\n\n      // DefineClassElement\n      defineClassElement: function(\n        /*::<C>*/ receiver /*: C | Class<C> */,\n        element /*: ElementDescriptor */,\n      ) {\n        var descriptor /*: PropertyDescriptor */ = element.descriptor;\n        if (element.kind === "field") {\n          var initializer = element.initializer;\n          descriptor = {\n            enumerable: descriptor.enumerable,\n            writable: descriptor.writable,\n            configurable: descriptor.configurable,\n            value: initializer === void 0 ? void 0 : initializer.call(receiver),\n          };\n        }\n        Object.defineProperty(receiver, element.key, descriptor);\n      },\n\n      // DecorateClass\n      decorateClass: function(\n        elements /*: ElementDescriptor[] */,\n        decorators /*: ClassDecorator[] */,\n      ) /*: ElementsFinishers */ {\n        var newElements /*: ElementDescriptor[] */ = [];\n        var finishers /*: ClassFinisher[] */ = [];\n        var placements /*: Placements */ = {\n          static: [],\n          prototype: [],\n          own: [],\n        };\n\n        elements.forEach(function(element /*: ElementDescriptor */) {\n          this.addElementPlacement(element, placements);\n        }, this);\n\n        elements.forEach(function(element /*: ElementDescriptor */) {\n          if (!_hasDecorators(element)) return newElements.push(element);\n\n          var elementFinishersExtras /*: ElementFinishersExtras */ = this.decorateElement(\n            element,\n            placements,\n          );\n          newElements.push(elementFinishersExtras.element);\n          newElements.push.apply(newElements, elementFinishersExtras.extras);\n          finishers.push.apply(finishers, elementFinishersExtras.finishers);\n        }, this);\n\n        if (!decorators) {\n          return { elements: newElements, finishers: finishers };\n        }\n\n        var result /*: ElementsFinishers */ = this.decorateConstructor(\n          newElements,\n          decorators,\n        );\n        finishers.push.apply(finishers, result.finishers);\n        result.finishers = finishers;\n\n        return result;\n      },\n\n      // AddElementPlacement\n      addElementPlacement: function(\n        element /*: ElementDescriptor */,\n        placements /*: Placements */,\n        silent /*: boolean */,\n      ) {\n        var keys = placements[element.placement];\n        if (!silent && keys.indexOf(element.key) !== -1) {\n          throw new TypeError("Duplicated element (" + element.key + ")");\n        }\n        keys.push(element.key);\n      },\n\n      // DecorateElement\n      decorateElement: function(\n        element /*: ElementDescriptor */,\n        placements /*: Placements */,\n      ) /*: ElementFinishersExtras */ {\n        var extras /*: ElementDescriptor[] */ = [];\n        var finishers /*: ClassFinisher[] */ = [];\n\n        for (\n          var decorators = element.decorators, i = decorators.length - 1;\n          i >= 0;\n          i--\n        ) {\n          // (inlined) RemoveElementPlacement\n          var keys = placements[element.placement];\n          keys.splice(keys.indexOf(element.key), 1);\n\n          var elementObject /*: ElementObjectInput */ = this.fromElementDescriptor(\n            element,\n          );\n          var elementFinisherExtras /*: ElementFinisherExtras */ = this.toElementFinisherExtras(\n            (0, decorators[i])(elementObject) /*: ElementObjectOutput */ ||\n              elementObject,\n          );\n\n          element = elementFinisherExtras.element;\n          this.addElementPlacement(element, placements);\n\n          if (elementFinisherExtras.finisher) {\n            finishers.push(elementFinisherExtras.finisher);\n          }\n\n          var newExtras /*: ElementDescriptor[] | void */ =\n            elementFinisherExtras.extras;\n          if (newExtras) {\n            for (var j = 0; j < newExtras.length; j++) {\n              this.addElementPlacement(newExtras[j], placements);\n            }\n            extras.push.apply(extras, newExtras);\n          }\n        }\n\n        return { element: element, finishers: finishers, extras: extras };\n      },\n\n      // DecorateConstructor\n      decorateConstructor: function(\n        elements /*: ElementDescriptor[] */,\n        decorators /*: ClassDecorator[] */,\n      ) /*: ElementsFinishers */ {\n        var finishers /*: ClassFinisher[] */ = [];\n\n        for (var i = decorators.length - 1; i >= 0; i--) {\n          var obj /*: ClassObject */ = this.fromClassDescriptor(elements);\n          var elementsAndFinisher /*: ElementsFinisher */ = this.toClassDescriptor(\n            (0, decorators[i])(obj) /*: ClassObject */ || obj,\n          );\n\n          if (elementsAndFinisher.finisher !== undefined) {\n            finishers.push(elementsAndFinisher.finisher);\n          }\n\n          if (elementsAndFinisher.elements !== undefined) {\n            elements = elementsAndFinisher.elements;\n\n            for (var j = 0; j < elements.length - 1; j++) {\n              for (var k = j + 1; k < elements.length; k++) {\n                if (\n                  elements[j].key === elements[k].key &&\n                  elements[j].placement === elements[k].placement\n                ) {\n                  throw new TypeError(\n                    "Duplicated element (" + elements[j].key + ")",\n                  );\n                }\n              }\n            }\n          }\n        }\n\n        return { elements: elements, finishers: finishers };\n      },\n\n      // FromElementDescriptor\n      fromElementDescriptor: function(\n        element /*: ElementDescriptor */,\n      ) /*: ElementObject */ {\n        var obj /*: ElementObject */ = {\n          kind: element.kind,\n          key: element.key,\n          placement: element.placement,\n          descriptor: element.descriptor,\n        };\n\n        var desc = {\n          value: "Descriptor",\n          configurable: true,\n        };\n        Object.defineProperty(obj, Symbol.toStringTag, desc);\n\n        if (element.kind === "field") obj.initializer = element.initializer;\n\n        return obj;\n      },\n\n      // ToElementDescriptors\n      toElementDescriptors: function(\n        elementObjects /*: ElementObject[] */,\n      ) /*: ElementDescriptor[] */ {\n        if (elementObjects === undefined) return;\n        return toArray(elementObjects).map(function(elementObject) {\n          var element = this.toElementDescriptor(elementObject);\n          this.disallowProperty(elementObject, "finisher", "An element descriptor");\n          this.disallowProperty(elementObject, "extras", "An element descriptor");\n          return element;\n        }, this);\n      },\n\n      // ToElementDescriptor\n      toElementDescriptor: function(\n        elementObject /*: ElementObject */,\n      ) /*: ElementDescriptor */ {\n        var kind = String(elementObject.kind);\n        if (kind !== "method" && kind !== "field") {\n          throw new TypeError(\n            \'An element descriptor\\\'s .kind property must be either "method" or\' +\n              \' "field", but a decorator created an element descriptor with\' +\n              \' .kind "\' +\n              kind +\n              \'"\',\n          );\n        }\n\n        var key = toPropertyKey(elementObject.key);\n\n        var placement = String(elementObject.placement);\n        if (\n          placement !== "static" &&\n          placement !== "prototype" &&\n          placement !== "own"\n        ) {\n          throw new TypeError(\n            \'An element descriptor\\\'s .placement property must be one of "static",\' +\n              \' "prototype" or "own", but a decorator created an element descriptor\' +\n              \' with .placement "\' +\n              placement +\n              \'"\',\n          );\n        }\n\n        var descriptor /*: PropertyDescriptor */ = elementObject.descriptor;\n\n        this.disallowProperty(elementObject, "elements", "An element descriptor");\n\n        var element /*: ElementDescriptor */ = {\n          kind: kind,\n          key: key,\n          placement: placement,\n          descriptor: Object.assign({}, descriptor),\n        };\n\n        if (kind !== "field") {\n          this.disallowProperty(elementObject, "initializer", "A method descriptor");\n        } else {\n          this.disallowProperty(\n            descriptor,\n            "get",\n            "The property descriptor of a field descriptor",\n          );\n          this.disallowProperty(\n            descriptor,\n            "set",\n            "The property descriptor of a field descriptor",\n          );\n          this.disallowProperty(\n            descriptor,\n            "value",\n            "The property descriptor of a field descriptor",\n          );\n\n          element.initializer = elementObject.initializer;\n        }\n\n        return element;\n      },\n\n      toElementFinisherExtras: function(\n        elementObject /*: ElementObject */,\n      ) /*: ElementFinisherExtras */ {\n        var element /*: ElementDescriptor */ = this.toElementDescriptor(\n          elementObject,\n        );\n        var finisher /*: ClassFinisher */ = _optionalCallableProperty(\n          elementObject,\n          "finisher",\n        );\n        var extras /*: ElementDescriptors[] */ = this.toElementDescriptors(\n          elementObject.extras,\n        );\n\n        return { element: element, finisher: finisher, extras: extras };\n      },\n\n      // FromClassDescriptor\n      fromClassDescriptor: function(\n        elements /*: ElementDescriptor[] */,\n      ) /*: ClassObject */ {\n        var obj = {\n          kind: "class",\n          elements: elements.map(this.fromElementDescriptor, this),\n        };\n\n        var desc = { value: "Descriptor", configurable: true };\n        Object.defineProperty(obj, Symbol.toStringTag, desc);\n\n        return obj;\n      },\n\n      // ToClassDescriptor\n      toClassDescriptor: function(\n        obj /*: ClassObject */,\n      ) /*: ElementsFinisher */ {\n        var kind = String(obj.kind);\n        if (kind !== "class") {\n          throw new TypeError(\n            \'A class descriptor\\\'s .kind property must be "class", but a decorator\' +\n              \' created a class descriptor with .kind "\' +\n              kind +\n              \'"\',\n          );\n        }\n\n        this.disallowProperty(obj, "key", "A class descriptor");\n        this.disallowProperty(obj, "placement", "A class descriptor");\n        this.disallowProperty(obj, "descriptor", "A class descriptor");\n        this.disallowProperty(obj, "initializer", "A class descriptor");\n        this.disallowProperty(obj, "extras", "A class descriptor");\n\n        var finisher = _optionalCallableProperty(obj, "finisher");\n        var elements = this.toElementDescriptors(obj.elements);\n\n        return { elements: elements, finisher: finisher };\n      },\n\n      // RunClassFinishers\n      runClassFinishers: function(\n        constructor /*: Class<*> */,\n        finishers /*: ClassFinisher[] */,\n      ) /*: Class<*> */ {\n        for (var i = 0; i < finishers.length; i++) {\n          var newConstructor /*: ?Class<*> */ = (0, finishers[i])(constructor);\n          if (newConstructor !== undefined) {\n            // NOTE: This should check if IsConstructor(newConstructor) is false.\n            if (typeof newConstructor !== "function") {\n              throw new TypeError("Finishers must return a constructor.");\n            }\n            constructor = newConstructor;\n          }\n        }\n        return constructor;\n      },\n\n      disallowProperty: function(obj, name, objectType) {\n        if (obj[name] !== undefined) {\n          throw new TypeError(objectType + " can\'t have a ." + name + " property.");\n        }\n      }\n    };\n\n    return api;\n  }\n\n  // ClassElementEvaluation\n  function _createElementDescriptor(\n    def /*: ElementDefinition */,\n  ) /*: ElementDescriptor */ {\n    var key = toPropertyKey(def.key);\n\n    var descriptor /*: PropertyDescriptor */;\n    if (def.kind === "method") {\n      descriptor = {\n        value: def.value,\n        writable: true,\n        configurable: true,\n        enumerable: false,\n      };\n    } else if (def.kind === "get") {\n      descriptor = { get: def.value, configurable: true, enumerable: false };\n    } else if (def.kind === "set") {\n      descriptor = { set: def.value, configurable: true, enumerable: false };\n    } else if (def.kind === "field") {\n      descriptor = { configurable: true, writable: true, enumerable: true };\n    }\n\n    var element /*: ElementDescriptor */ = {\n      kind: def.kind === "field" ? "field" : "method",\n      key: key,\n      placement: def.static\n        ? "static"\n        : def.kind === "field"\n        ? "own"\n        : "prototype",\n      descriptor: descriptor,\n    };\n    if (def.decorators) element.decorators = def.decorators;\n    if (def.kind === "field") element.initializer = def.value;\n\n    return element;\n  }\n\n  // CoalesceGetterSetter\n  function _coalesceGetterSetter(\n    element /*: ElementDescriptor */,\n    other /*: ElementDescriptor */,\n  ) {\n    if (element.descriptor.get !== undefined) {\n      other.descriptor.get = element.descriptor.get;\n    } else {\n      other.descriptor.set = element.descriptor.set;\n    }\n  }\n\n  // CoalesceClassElements\n  function _coalesceClassElements(\n    elements /*: ElementDescriptor[] */,\n  ) /*: ElementDescriptor[] */ {\n    var newElements /*: ElementDescriptor[] */ = [];\n\n    var isSameElement = function(\n      other /*: ElementDescriptor */,\n    ) /*: boolean */ {\n      return (\n        other.kind === "method" &&\n        other.key === element.key &&\n        other.placement === element.placement\n      );\n    };\n\n    for (var i = 0; i < elements.length; i++) {\n      var element /*: ElementDescriptor */ = elements[i];\n      var other /*: ElementDescriptor */;\n\n      if (\n        element.kind === "method" &&\n        (other = newElements.find(isSameElement))\n      ) {\n        if (\n          _isDataDescriptor(element.descriptor) ||\n          _isDataDescriptor(other.descriptor)\n        ) {\n          if (_hasDecorators(element) || _hasDecorators(other)) {\n            throw new ReferenceError(\n              "Duplicated methods (" + element.key + ") can\'t be decorated.",\n            );\n          }\n          other.descriptor = element.descriptor;\n        } else {\n          if (_hasDecorators(element)) {\n            if (_hasDecorators(other)) {\n              throw new ReferenceError(\n                "Decorators can\'t be placed on different accessors with for " +\n                  "the same property (" +\n                  element.key +\n                  ").",\n              );\n            }\n            other.decorators = element.decorators;\n          }\n          _coalesceGetterSetter(element, other);\n        }\n      } else {\n        newElements.push(element);\n      }\n    }\n\n    return newElements;\n  }\n\n  function _hasDecorators(element /*: ElementDescriptor */) /*: boolean */ {\n    return element.decorators && element.decorators.length;\n  }\n\n  function _isDataDescriptor(desc /*: PropertyDescriptor */) /*: boolean */ {\n    return (\n      desc !== undefined &&\n      !(desc.value === undefined && desc.writable === undefined)\n    );\n  }\n\n  function _optionalCallableProperty /*::<T>*/(\n    obj /*: T */,\n    name /*: $Keys<T> */,\n  ) /*: ?Function */ {\n    var value = obj[name];\n    if (value !== undefined && typeof value !== "function") {\n      throw new TypeError("Expected \'" + name + "\' to be a function");\n    }\n    return value;\n  }\n\n'], ['\n  import toArray from "toArray";\n  import toPropertyKey from "toPropertyKey";\n\n  // These comments are stripped by @babel/template\n  /*::\n  type PropertyDescriptor =\n    | {\n        value: any,\n        writable: boolean,\n        configurable: boolean,\n        enumerable: boolean,\n      }\n    | {\n        get?: () => any,\n        set?: (v: any) => void,\n        configurable: boolean,\n        enumerable: boolean,\n      };\n\n  type FieldDescriptor ={\n    writable: boolean,\n    configurable: boolean,\n    enumerable: boolean,\n  };\n\n  type Placement = "static" | "prototype" | "own";\n  type Key = string | symbol; // PrivateName is not supported yet.\n\n  type ElementDescriptor =\n    | {\n        kind: "method",\n        key: Key,\n        placement: Placement,\n        descriptor: PropertyDescriptor\n      }\n    | {\n        kind: "field",\n        key: Key,\n        placement: Placement,\n        descriptor: FieldDescriptor,\n        initializer?: () => any,\n      };\n\n  // This is exposed to the user code\n  type ElementObjectInput = ElementDescriptor & {\n    [@@toStringTag]?: "Descriptor"\n  };\n\n  // This is exposed to the user code\n  type ElementObjectOutput = ElementDescriptor & {\n    [@@toStringTag]?: "Descriptor"\n    extras?: ElementDescriptor[],\n    finisher?: ClassFinisher,\n  };\n\n  // This is exposed to the user code\n  type ClassObject = {\n    [@@toStringTag]?: "Descriptor",\n    kind: "class",\n    elements: ElementDescriptor[],\n  };\n\n  type ElementDecorator = (descriptor: ElementObjectInput) => ?ElementObjectOutput;\n  type ClassDecorator = (descriptor: ClassObject) => ?ClassObject;\n  type ClassFinisher = <A, B>(cl: Class<A>) => Class<B>;\n\n  // Only used by Babel in the transform output, not part of the spec.\n  type ElementDefinition =\n    | {\n        kind: "method",\n        value: any,\n        key: Key,\n        static?: boolean,\n        decorators?: ElementDecorator[],\n      }\n    | {\n        kind: "field",\n        value: () => any,\n        key: Key,\n        static?: boolean,\n        decorators?: ElementDecorator[],\n    };\n\n  declare function ClassFactory<C>(initialize: (instance: C) => void): {\n    F: Class<C>,\n    d: ElementDefinition[]\n  }\n\n  */\n\n  /*::\n  // Various combinations with/without extras and with one or many finishers\n\n  type ElementFinisherExtras = {\n    element: ElementDescriptor,\n    finisher?: ClassFinisher,\n    extras?: ElementDescriptor[],\n  };\n\n  type ElementFinishersExtras = {\n    element: ElementDescriptor,\n    finishers: ClassFinisher[],\n    extras: ElementDescriptor[],\n  };\n\n  type ElementsFinisher = {\n    elements: ElementDescriptor[],\n    finisher?: ClassFinisher,\n  };\n\n  type ElementsFinishers = {\n    elements: ElementDescriptor[],\n    finishers: ClassFinisher[],\n  };\n\n  */\n\n  /*::\n\n  type Placements = {\n    static: Key[],\n    prototype: Key[],\n    own: Key[],\n  };\n\n  */\n\n  // ClassDefinitionEvaluation (Steps 26-*)\n  export default function _decorate(\n    decorators /*: ClassDecorator[] */,\n    factory /*: ClassFactory */,\n    superClass /*: ?Class<*> */,\n    mixins /*: ?Array<Function> */,\n  ) /*: Class<*> */ {\n    var api = _getDecoratorsApi();\n    if (mixins) {\n      for (var i = 0; i < mixins.length; i++) {\n        api = mixins[i](api);\n      }\n    }\n\n    var r = factory(function initialize(O) {\n      api.initializeInstanceElements(O, decorated.elements);\n    }, superClass);\n    var decorated = api.decorateClass(\n      _coalesceClassElements(r.d.map(_createElementDescriptor)),\n      decorators,\n    );\n\n    api.initializeClassElements(r.F, decorated.elements);\n\n    return api.runClassFinishers(r.F, decorated.finishers);\n  }\n\n  function _getDecoratorsApi() {\n    _getDecoratorsApi = function() {\n      return api;\n    };\n\n    var api = {\n      elementsDefinitionOrder: [["method"], ["field"]],\n\n      // InitializeInstanceElements\n      initializeInstanceElements: function(\n        /*::<C>*/ O /*: C */,\n        elements /*: ElementDescriptor[] */,\n      ) {\n        ["method", "field"].forEach(function(kind) {\n          elements.forEach(function(element /*: ElementDescriptor */) {\n            if (element.kind === kind && element.placement === "own") {\n              this.defineClassElement(O, element);\n            }\n          }, this);\n        }, this);\n      },\n\n      // InitializeClassElements\n      initializeClassElements: function(\n        /*::<C>*/ F /*: Class<C> */,\n        elements /*: ElementDescriptor[] */,\n      ) {\n        var proto = F.prototype;\n\n        ["method", "field"].forEach(function(kind) {\n          elements.forEach(function(element /*: ElementDescriptor */) {\n            var placement = element.placement;\n            if (\n              element.kind === kind &&\n              (placement === "static" || placement === "prototype")\n            ) {\n              var receiver = placement === "static" ? F : proto;\n              this.defineClassElement(receiver, element);\n            }\n          }, this);\n        }, this);\n      },\n\n      // DefineClassElement\n      defineClassElement: function(\n        /*::<C>*/ receiver /*: C | Class<C> */,\n        element /*: ElementDescriptor */,\n      ) {\n        var descriptor /*: PropertyDescriptor */ = element.descriptor;\n        if (element.kind === "field") {\n          var initializer = element.initializer;\n          descriptor = {\n            enumerable: descriptor.enumerable,\n            writable: descriptor.writable,\n            configurable: descriptor.configurable,\n            value: initializer === void 0 ? void 0 : initializer.call(receiver),\n          };\n        }\n        Object.defineProperty(receiver, element.key, descriptor);\n      },\n\n      // DecorateClass\n      decorateClass: function(\n        elements /*: ElementDescriptor[] */,\n        decorators /*: ClassDecorator[] */,\n      ) /*: ElementsFinishers */ {\n        var newElements /*: ElementDescriptor[] */ = [];\n        var finishers /*: ClassFinisher[] */ = [];\n        var placements /*: Placements */ = {\n          static: [],\n          prototype: [],\n          own: [],\n        };\n\n        elements.forEach(function(element /*: ElementDescriptor */) {\n          this.addElementPlacement(element, placements);\n        }, this);\n\n        elements.forEach(function(element /*: ElementDescriptor */) {\n          if (!_hasDecorators(element)) return newElements.push(element);\n\n          var elementFinishersExtras /*: ElementFinishersExtras */ = this.decorateElement(\n            element,\n            placements,\n          );\n          newElements.push(elementFinishersExtras.element);\n          newElements.push.apply(newElements, elementFinishersExtras.extras);\n          finishers.push.apply(finishers, elementFinishersExtras.finishers);\n        }, this);\n\n        if (!decorators) {\n          return { elements: newElements, finishers: finishers };\n        }\n\n        var result /*: ElementsFinishers */ = this.decorateConstructor(\n          newElements,\n          decorators,\n        );\n        finishers.push.apply(finishers, result.finishers);\n        result.finishers = finishers;\n\n        return result;\n      },\n\n      // AddElementPlacement\n      addElementPlacement: function(\n        element /*: ElementDescriptor */,\n        placements /*: Placements */,\n        silent /*: boolean */,\n      ) {\n        var keys = placements[element.placement];\n        if (!silent && keys.indexOf(element.key) !== -1) {\n          throw new TypeError("Duplicated element (" + element.key + ")");\n        }\n        keys.push(element.key);\n      },\n\n      // DecorateElement\n      decorateElement: function(\n        element /*: ElementDescriptor */,\n        placements /*: Placements */,\n      ) /*: ElementFinishersExtras */ {\n        var extras /*: ElementDescriptor[] */ = [];\n        var finishers /*: ClassFinisher[] */ = [];\n\n        for (\n          var decorators = element.decorators, i = decorators.length - 1;\n          i >= 0;\n          i--\n        ) {\n          // (inlined) RemoveElementPlacement\n          var keys = placements[element.placement];\n          keys.splice(keys.indexOf(element.key), 1);\n\n          var elementObject /*: ElementObjectInput */ = this.fromElementDescriptor(\n            element,\n          );\n          var elementFinisherExtras /*: ElementFinisherExtras */ = this.toElementFinisherExtras(\n            (0, decorators[i])(elementObject) /*: ElementObjectOutput */ ||\n              elementObject,\n          );\n\n          element = elementFinisherExtras.element;\n          this.addElementPlacement(element, placements);\n\n          if (elementFinisherExtras.finisher) {\n            finishers.push(elementFinisherExtras.finisher);\n          }\n\n          var newExtras /*: ElementDescriptor[] | void */ =\n            elementFinisherExtras.extras;\n          if (newExtras) {\n            for (var j = 0; j < newExtras.length; j++) {\n              this.addElementPlacement(newExtras[j], placements);\n            }\n            extras.push.apply(extras, newExtras);\n          }\n        }\n\n        return { element: element, finishers: finishers, extras: extras };\n      },\n\n      // DecorateConstructor\n      decorateConstructor: function(\n        elements /*: ElementDescriptor[] */,\n        decorators /*: ClassDecorator[] */,\n      ) /*: ElementsFinishers */ {\n        var finishers /*: ClassFinisher[] */ = [];\n\n        for (var i = decorators.length - 1; i >= 0; i--) {\n          var obj /*: ClassObject */ = this.fromClassDescriptor(elements);\n          var elementsAndFinisher /*: ElementsFinisher */ = this.toClassDescriptor(\n            (0, decorators[i])(obj) /*: ClassObject */ || obj,\n          );\n\n          if (elementsAndFinisher.finisher !== undefined) {\n            finishers.push(elementsAndFinisher.finisher);\n          }\n\n          if (elementsAndFinisher.elements !== undefined) {\n            elements = elementsAndFinisher.elements;\n\n            for (var j = 0; j < elements.length - 1; j++) {\n              for (var k = j + 1; k < elements.length; k++) {\n                if (\n                  elements[j].key === elements[k].key &&\n                  elements[j].placement === elements[k].placement\n                ) {\n                  throw new TypeError(\n                    "Duplicated element (" + elements[j].key + ")",\n                  );\n                }\n              }\n            }\n          }\n        }\n\n        return { elements: elements, finishers: finishers };\n      },\n\n      // FromElementDescriptor\n      fromElementDescriptor: function(\n        element /*: ElementDescriptor */,\n      ) /*: ElementObject */ {\n        var obj /*: ElementObject */ = {\n          kind: element.kind,\n          key: element.key,\n          placement: element.placement,\n          descriptor: element.descriptor,\n        };\n\n        var desc = {\n          value: "Descriptor",\n          configurable: true,\n        };\n        Object.defineProperty(obj, Symbol.toStringTag, desc);\n\n        if (element.kind === "field") obj.initializer = element.initializer;\n\n        return obj;\n      },\n\n      // ToElementDescriptors\n      toElementDescriptors: function(\n        elementObjects /*: ElementObject[] */,\n      ) /*: ElementDescriptor[] */ {\n        if (elementObjects === undefined) return;\n        return toArray(elementObjects).map(function(elementObject) {\n          var element = this.toElementDescriptor(elementObject);\n          this.disallowProperty(elementObject, "finisher", "An element descriptor");\n          this.disallowProperty(elementObject, "extras", "An element descriptor");\n          return element;\n        }, this);\n      },\n\n      // ToElementDescriptor\n      toElementDescriptor: function(\n        elementObject /*: ElementObject */,\n      ) /*: ElementDescriptor */ {\n        var kind = String(elementObject.kind);\n        if (kind !== "method" && kind !== "field") {\n          throw new TypeError(\n            \'An element descriptor\\\\\'s .kind property must be either "method" or\' +\n              \' "field", but a decorator created an element descriptor with\' +\n              \' .kind "\' +\n              kind +\n              \'"\',\n          );\n        }\n\n        var key = toPropertyKey(elementObject.key);\n\n        var placement = String(elementObject.placement);\n        if (\n          placement !== "static" &&\n          placement !== "prototype" &&\n          placement !== "own"\n        ) {\n          throw new TypeError(\n            \'An element descriptor\\\\\'s .placement property must be one of "static",\' +\n              \' "prototype" or "own", but a decorator created an element descriptor\' +\n              \' with .placement "\' +\n              placement +\n              \'"\',\n          );\n        }\n\n        var descriptor /*: PropertyDescriptor */ = elementObject.descriptor;\n\n        this.disallowProperty(elementObject, "elements", "An element descriptor");\n\n        var element /*: ElementDescriptor */ = {\n          kind: kind,\n          key: key,\n          placement: placement,\n          descriptor: Object.assign({}, descriptor),\n        };\n\n        if (kind !== "field") {\n          this.disallowProperty(elementObject, "initializer", "A method descriptor");\n        } else {\n          this.disallowProperty(\n            descriptor,\n            "get",\n            "The property descriptor of a field descriptor",\n          );\n          this.disallowProperty(\n            descriptor,\n            "set",\n            "The property descriptor of a field descriptor",\n          );\n          this.disallowProperty(\n            descriptor,\n            "value",\n            "The property descriptor of a field descriptor",\n          );\n\n          element.initializer = elementObject.initializer;\n        }\n\n        return element;\n      },\n\n      toElementFinisherExtras: function(\n        elementObject /*: ElementObject */,\n      ) /*: ElementFinisherExtras */ {\n        var element /*: ElementDescriptor */ = this.toElementDescriptor(\n          elementObject,\n        );\n        var finisher /*: ClassFinisher */ = _optionalCallableProperty(\n          elementObject,\n          "finisher",\n        );\n        var extras /*: ElementDescriptors[] */ = this.toElementDescriptors(\n          elementObject.extras,\n        );\n\n        return { element: element, finisher: finisher, extras: extras };\n      },\n\n      // FromClassDescriptor\n      fromClassDescriptor: function(\n        elements /*: ElementDescriptor[] */,\n      ) /*: ClassObject */ {\n        var obj = {\n          kind: "class",\n          elements: elements.map(this.fromElementDescriptor, this),\n        };\n\n        var desc = { value: "Descriptor", configurable: true };\n        Object.defineProperty(obj, Symbol.toStringTag, desc);\n\n        return obj;\n      },\n\n      // ToClassDescriptor\n      toClassDescriptor: function(\n        obj /*: ClassObject */,\n      ) /*: ElementsFinisher */ {\n        var kind = String(obj.kind);\n        if (kind !== "class") {\n          throw new TypeError(\n            \'A class descriptor\\\\\'s .kind property must be "class", but a decorator\' +\n              \' created a class descriptor with .kind "\' +\n              kind +\n              \'"\',\n          );\n        }\n\n        this.disallowProperty(obj, "key", "A class descriptor");\n        this.disallowProperty(obj, "placement", "A class descriptor");\n        this.disallowProperty(obj, "descriptor", "A class descriptor");\n        this.disallowProperty(obj, "initializer", "A class descriptor");\n        this.disallowProperty(obj, "extras", "A class descriptor");\n\n        var finisher = _optionalCallableProperty(obj, "finisher");\n        var elements = this.toElementDescriptors(obj.elements);\n\n        return { elements: elements, finisher: finisher };\n      },\n\n      // RunClassFinishers\n      runClassFinishers: function(\n        constructor /*: Class<*> */,\n        finishers /*: ClassFinisher[] */,\n      ) /*: Class<*> */ {\n        for (var i = 0; i < finishers.length; i++) {\n          var newConstructor /*: ?Class<*> */ = (0, finishers[i])(constructor);\n          if (newConstructor !== undefined) {\n            // NOTE: This should check if IsConstructor(newConstructor) is false.\n            if (typeof newConstructor !== "function") {\n              throw new TypeError("Finishers must return a constructor.");\n            }\n            constructor = newConstructor;\n          }\n        }\n        return constructor;\n      },\n\n      disallowProperty: function(obj, name, objectType) {\n        if (obj[name] !== undefined) {\n          throw new TypeError(objectType + " can\'t have a ." + name + " property.");\n        }\n      }\n    };\n\n    return api;\n  }\n\n  // ClassElementEvaluation\n  function _createElementDescriptor(\n    def /*: ElementDefinition */,\n  ) /*: ElementDescriptor */ {\n    var key = toPropertyKey(def.key);\n\n    var descriptor /*: PropertyDescriptor */;\n    if (def.kind === "method") {\n      descriptor = {\n        value: def.value,\n        writable: true,\n        configurable: true,\n        enumerable: false,\n      };\n    } else if (def.kind === "get") {\n      descriptor = { get: def.value, configurable: true, enumerable: false };\n    } else if (def.kind === "set") {\n      descriptor = { set: def.value, configurable: true, enumerable: false };\n    } else if (def.kind === "field") {\n      descriptor = { configurable: true, writable: true, enumerable: true };\n    }\n\n    var element /*: ElementDescriptor */ = {\n      kind: def.kind === "field" ? "field" : "method",\n      key: key,\n      placement: def.static\n        ? "static"\n        : def.kind === "field"\n        ? "own"\n        : "prototype",\n      descriptor: descriptor,\n    };\n    if (def.decorators) element.decorators = def.decorators;\n    if (def.kind === "field") element.initializer = def.value;\n\n    return element;\n  }\n\n  // CoalesceGetterSetter\n  function _coalesceGetterSetter(\n    element /*: ElementDescriptor */,\n    other /*: ElementDescriptor */,\n  ) {\n    if (element.descriptor.get !== undefined) {\n      other.descriptor.get = element.descriptor.get;\n    } else {\n      other.descriptor.set = element.descriptor.set;\n    }\n  }\n\n  // CoalesceClassElements\n  function _coalesceClassElements(\n    elements /*: ElementDescriptor[] */,\n  ) /*: ElementDescriptor[] */ {\n    var newElements /*: ElementDescriptor[] */ = [];\n\n    var isSameElement = function(\n      other /*: ElementDescriptor */,\n    ) /*: boolean */ {\n      return (\n        other.kind === "method" &&\n        other.key === element.key &&\n        other.placement === element.placement\n      );\n    };\n\n    for (var i = 0; i < elements.length; i++) {\n      var element /*: ElementDescriptor */ = elements[i];\n      var other /*: ElementDescriptor */;\n\n      if (\n        element.kind === "method" &&\n        (other = newElements.find(isSameElement))\n      ) {\n        if (\n          _isDataDescriptor(element.descriptor) ||\n          _isDataDescriptor(other.descriptor)\n        ) {\n          if (_hasDecorators(element) || _hasDecorators(other)) {\n            throw new ReferenceError(\n              "Duplicated methods (" + element.key + ") can\'t be decorated.",\n            );\n          }\n          other.descriptor = element.descriptor;\n        } else {\n          if (_hasDecorators(element)) {\n            if (_hasDecorators(other)) {\n              throw new ReferenceError(\n                "Decorators can\'t be placed on different accessors with for " +\n                  "the same property (" +\n                  element.key +\n                  ").",\n              );\n            }\n            other.decorators = element.decorators;\n          }\n          _coalesceGetterSetter(element, other);\n        }\n      } else {\n        newElements.push(element);\n      }\n    }\n\n    return newElements;\n  }\n\n  function _hasDecorators(element /*: ElementDescriptor */) /*: boolean */ {\n    return element.decorators && element.decorators.length;\n  }\n\n  function _isDataDescriptor(desc /*: PropertyDescriptor */) /*: boolean */ {\n    return (\n      desc !== undefined &&\n      !(desc.value === undefined && desc.writable === undefined)\n    );\n  }\n\n  function _optionalCallableProperty /*::<T>*/(\n    obj /*: T */,\n    name /*: $Keys<T> */,\n  ) /*: ?Function */ {\n    var value = obj[name];\n    if (value !== undefined && typeof value !== "function") {\n      throw new TypeError("Expected \'" + name + "\' to be a function");\n    }\n    return value;\n  }\n\n']))), r.classPrivateMethodGet = n("7.1.6")(Gse || (Gse = at(['\n  export default function _classPrivateMethodGet(receiver, privateSet, fn) {\n    if (!privateSet.has(receiver)) {\n      throw new TypeError("attempted to get private field on non-instance");\n    }\n    return fn;\n  }\n']))), r.checkPrivateRedeclaration = n("7.14.1")(Yse || (Yse = at(['\n  export default function _checkPrivateRedeclaration(obj, privateCollection) {\n    if (privateCollection.has(obj)) {\n      throw new TypeError("Cannot initialize the same private elements twice on an object");\n    }\n  }\n']))), r.classPrivateFieldInitSpec = n("7.14.1")(Xse || (Xse = at(['\n  import checkPrivateRedeclaration from "checkPrivateRedeclaration";\n\n  export default function _classPrivateFieldInitSpec(obj, privateMap, value) {\n    checkPrivateRedeclaration(obj, privateMap);\n    privateMap.set(obj, value);\n  }\n']))), r.classPrivateMethodInitSpec = n("7.14.1")(Jse || (Jse = at(['\n  import checkPrivateRedeclaration from "checkPrivateRedeclaration";\n\n  export default function _classPrivateMethodInitSpec(obj, privateSet) {\n    checkPrivateRedeclaration(obj, privateSet);\n    privateSet.add(obj);\n  }\n']))), r.classPrivateMethodSet = n("7.1.6")(Qse || (Qse = at(['\n    export default function _classPrivateMethodSet() {\n      throw new TypeError("attempted to reassign private method");\n    }\n  ']))), r.identity = n("7.17.0")(Zse || (Zse = at(["\n  export default function _identity(x) {\n    return x;\n  }\n"]))), Wb;
}
var HX;
function Cde() {
  if (HX)
    return Tc;
  HX = 1, Object.defineProperty(Tc, "__esModule", {
    value: !0
  }), Tc.default = void 0, Tc.ensure = T, Tc.get = g, Tc.getDependencies = v, Tc.list = void 0, Tc.minVersion = y;
  var e = yp(), t = sn(), r = kEt();
  const {
    assignmentExpression: i,
    cloneNode: n,
    expressionStatement: s,
    file: a,
    identifier: o
  } = t;
  function l(x) {
    const C = [];
    for (; x.parentPath; x = x.parentPath)
      C.push(x.key), x.inList && C.push(x.listKey);
    return C.reverse().join(".");
  }
  let u;
  function c(x) {
    const C = /* @__PURE__ */ new Set(), D = /* @__PURE__ */ new Set(), w = /* @__PURE__ */ new Map();
    let A, I;
    const L = [], O = [], F = [], q = {
      ImportDeclaration(N) {
        const M = N.node.source.value;
        if (!r.default[M])
          throw N.buildCodeFrameError("Unknown helper ".concat(M));
        if (N.get("specifiers").length !== 1 || !N.get("specifiers.0").isImportDefaultSpecifier())
          throw N.buildCodeFrameError("Helpers can only import a default value");
        const R = N.node.specifiers[0].local;
        w.set(R, M), O.push(l(N));
      },
      ExportDefaultDeclaration(N) {
        const M = N.get("declaration");
        if (!M.isFunctionDeclaration() || !M.node.id)
          throw M.buildCodeFrameError("Helpers can only export named function declarations");
        A = M.node.id.name, I = l(N);
      },
      ExportAllDeclaration(N) {
        throw N.buildCodeFrameError("Helpers can only export default");
      },
      ExportNamedDeclaration(N) {
        throw N.buildCodeFrameError("Helpers can only export default");
      },
      Statement(N) {
        N.isImportDeclaration() || N.isExportDeclaration() || N.skip();
      }
    }, j = {
      Program(N) {
        const M = N.scope.getAllBindings();
        Object.keys(M).forEach((R) => {
          R !== A && (w.has(M[R].identifier) || D.add(R));
        });
      },
      ReferencedIdentifier(N) {
        const M = N.node.name, R = N.scope.getBinding(M);
        R ? w.has(R.identifier) && F.push(l(N)) : C.add(M);
      },
      AssignmentExpression(N) {
        const M = N.get("left");
        if (!(A in M.getBindingIdentifiers()))
          return;
        if (!M.isIdentifier())
          throw M.buildCodeFrameError("Only simple assignments to exports are allowed in helpers");
        const R = N.scope.getBinding(A);
        R != null && R.scope.path.isProgram() && L.push(l(N));
      }
    };
    if ((0, e.default)(x.ast, q, x.scope), (0, e.default)(x.ast, j, x.scope), !I)
      throw new Error("Helpers must have a default export.");
    return L.reverse(), {
      globals: Array.from(C),
      localBindingNames: Array.from(D),
      dependencies: w,
      exportBindingAssignments: L,
      exportPath: I,
      exportName: A,
      importBindingsReferences: F,
      importPaths: O
    };
  }
  function f(x, C, D, w, A) {
    if (w && !D)
      throw new Error("Unexpected local bindings for module-based helpers.");
    if (!D)
      return;
    const {
      localBindingNames: I,
      dependencies: L,
      exportBindingAssignments: O,
      exportPath: F,
      exportName: q,
      importBindingsReferences: j,
      importPaths: N
    } = C, M = {};
    L.forEach((G, le) => {
      M[le.name] = typeof A == "function" && A(G) || le;
    });
    const R = {}, $ = new Set(w || []);
    I.forEach((G) => {
      let le = G;
      for (; $.has(le); )
        le = "_" + le;
      le !== G && (R[G] = le);
    }), D.type === "Identifier" && q !== D.name && (R[q] = D.name);
    const {
      path: V
    } = x, K = V.get(F), z = N.map((G) => V.get(G)), W = j.map((G) => V.get(G)), Y = K.get("declaration");
    if (D.type === "Identifier")
      K.replaceWith(Y);
    else if (D.type === "MemberExpression")
      O.forEach((G) => {
        const le = V.get(G);
        le.replaceWith(i("=", D, le.node));
      }), K.replaceWith(Y), V.pushContainer("body", s(i("=", D, o(q))));
    else
      throw new Error("Unexpected helper format.");
    Object.keys(R).forEach((G) => {
      V.scope.rename(G, R[G]);
    });
    for (const G of z)
      G.remove();
    for (const G of W) {
      const le = n(M[G.node.name]);
      G.replaceWith(le);
    }
  }
  const h = /* @__PURE__ */ Object.create(null);
  function m(x) {
    if (!h[x]) {
      const C = r.default[x];
      if (!C)
        throw Object.assign(new ReferenceError("Unknown helper ".concat(x)), {
          code: "BABEL_HELPER_UNKNOWN",
          helper: x
        });
      const D = () => {
        if (!u) {
          const A = {
            ast: a(C.ast()),
            path: null
          };
          return (0, e.default)(A.ast, {
            Program: (I) => (A.path = I).stop()
          }), A;
        }
        return new u({
          filename: "babel-helper://".concat(x)
        }, {
          ast: a(C.ast()),
          code: "[internal Babel helper code]",
          inputMap: null
        });
      };
      let w = null;
      h[x] = {
        minVersion: C.minVersion,
        build(A, I, L) {
          const O = D();
          return w || (w = c(O)), f(O, w, I, L, A), {
            nodes: O.ast.program.body,
            globals: w.globals
          };
        },
        getDependencies() {
          return w || (w = c(D())), Array.from(w.dependencies.values());
        }
      };
    }
    return h[x];
  }
  function g(x, C, D, w) {
    return m(x).build(C, D, w);
  }
  function y(x) {
    return m(x).minVersion;
  }
  function v(x) {
    return m(x).getDependencies();
  }
  function T(x, C) {
    u || (u = C), m(x);
  }
  const S = Object.keys(r.default).map((x) => x.replace(/^_/, ""));
  Tc.list = S;
  var P = g;
  return Tc.default = P, Tc;
}
var Kb = {}, KX;
function _de() {
  if (KX)
    return Kb;
  KX = 1, Object.defineProperty(Kb, "__esModule", {
    value: !0
  }), Kb.codeFrameColumns = s, Kb.default = a;
  var e = Ffe();
  let t = !1;
  function r(o) {
    return {
      gutter: o.grey,
      marker: o.red.bold,
      message: o.red.bold
    };
  }
  const i = /\r\n|[\n\r\u2028\u2029]/;
  function n(o, l, u) {
    const c = Object.assign({
      column: 0,
      line: -1
    }, o.start), f = Object.assign({}, c, o.end), {
      linesAbove: h = 2,
      linesBelow: m = 3
    } = u || {}, g = c.line, y = c.column, v = f.line, T = f.column;
    let S = Math.max(g - (h + 1), 0), P = Math.min(l.length, v + m);
    g === -1 && (S = 0), v === -1 && (P = l.length);
    const x = v - g, C = {};
    if (x)
      for (let D = 0; D <= x; D++) {
        const w = D + g;
        if (!y)
          C[w] = !0;
        else if (D === 0) {
          const A = l[w - 1].length;
          C[w] = [y, A - y + 1];
        } else if (D === x)
          C[w] = [0, T];
        else {
          const A = l[w - D].length;
          C[w] = [0, A];
        }
      }
    else
      y === T ? y ? C[g] = [y, 0] : C[g] = !0 : C[g] = [y, T - y];
    return {
      start: S,
      end: P,
      markerLines: C
    };
  }
  function s(o, l, u = {}) {
    const c = (u.highlightCode || u.forceColor) && (0, e.shouldHighlight)(u), f = (0, e.getChalk)(u), h = r(f), m = (D, w) => c ? D(w) : w, g = o.split(i), {
      start: y,
      end: v,
      markerLines: T
    } = n(l, g, u), S = l.start && typeof l.start.column == "number", P = String(v).length;
    let C = (c ? (0, e.default)(o, u) : o).split(i, v).slice(y, v).map((D, w) => {
      const A = y + 1 + w, I = " ".concat(A).slice(-P), L = " ".concat(I, " |"), O = T[A], F = !T[A + 1];
      if (O) {
        let q = "";
        if (Array.isArray(O)) {
          const j = D.slice(0, Math.max(O[0] - 1, 0)).replace(/[^\t]/g, " "), N = O[1] || 1;
          q = ["\n ", m(h.gutter, L.replace(/\d/g, " ")), " ", j, m(h.marker, "^").repeat(N)].join(""), F && u.message && (q += " " + m(h.message, u.message));
        }
        return [m(h.marker, ">"), m(h.gutter, L), D.length > 0 ? " ".concat(D) : "", q].join("");
      } else
        return " ".concat(m(h.gutter, L)).concat(D.length > 0 ? " ".concat(D) : "");
    }).join("\n");
    return u.message && !S && (C = "".concat(" ".repeat(P + 1)).concat(u.message, "\n").concat(C)), c ? f.reset(C) : C;
  }
  function a(o, l, u, c = {}) {
    if (!t) {
      t = !0;
      const h = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";
      if (process.emitWarning)
        process.emitWarning(h, "DeprecationWarning");
      else {
        const m = new Error(h);
        m.name = "DeprecationWarning", console.warn(new Error(h));
      }
    }
    return u = Math.max(u, 0), s(o, {
      start: {
        column: u,
        line: l
      }
    }, c);
  }
  return Kb;
}
var jR = {}, l1 = {}, zX;
function OEt() {
  if (zX)
    return l1;
  zX = 1, Object.defineProperty(l1, "__esModule", {
    value: !0
  }), l1.default = a;
  var e = Io, t = yp(), r = sn();
  const {
    numericLiteral: i,
    unaryExpression: n
  } = r, s = t.default.visitors.merge([e.default, {
    ThisExpression(o) {
      o.replaceWith(n("void", i(0), !0));
    }
  }]);
  function a(o) {
    (0, t.default)(o.node, Object.assign({}, s, {
      noScope: !0
    }));
  }
  return l1;
}
var u1 = {}, c1 = {}, GX;
function NEt() {
  if (GX)
    return c1;
  GX = 1, Object.defineProperty(c1, "__esModule", {
    value: !0
  }), c1.default = f;
  var e = Qn();
  const {
    LOGICAL_OPERATORS: t,
    assignmentExpression: r,
    binaryExpression: i,
    cloneNode: n,
    identifier: s,
    logicalExpression: a,
    numericLiteral: o,
    sequenceExpression: l,
    unaryExpression: u
  } = e, c = {
    AssignmentExpression: {
      exit(h) {
        const {
          scope: m,
          seen: g,
          bindingNames: y
        } = this;
        if (h.node.operator === "=" || g.has(h.node))
          return;
        g.add(h.node);
        const v = h.get("left");
        if (!v.isIdentifier())
          return;
        const T = v.node.name;
        if (!y.has(T) || m.getBinding(T) !== h.scope.getBinding(T))
          return;
        const S = h.node.operator.slice(0, -1);
        t.includes(S) ? h.replaceWith(a(S, h.node.left, r("=", n(h.node.left), h.node.right))) : (h.node.right = i(S, n(h.node.left), h.node.right), h.node.operator = "=");
      }
    }
  };
  c.UpdateExpression = {
    exit(h) {
      if (!this.includeUpdateExpression)
        return;
      const {
        scope: m,
        bindingNames: g
      } = this, y = h.get("argument");
      if (!y.isIdentifier())
        return;
      const v = y.node.name;
      if (g.has(v) && m.getBinding(v) === h.scope.getBinding(v))
        if (h.parentPath.isExpressionStatement() && !h.isCompletionRecord()) {
          const T = h.node.operator == "++" ? "+=" : "-=";
          h.replaceWith(r(T, y.node, o(1)));
        } else if (h.node.prefix)
          h.replaceWith(r("=", s(v), i(h.node.operator[0], u("+", y.node), o(1))));
        else {
          const T = h.scope.generateUidIdentifierBasedOnNode(y.node, "old"), S = T.name;
          h.scope.push({
            id: T
          });
          const P = i(h.node.operator[0], s(S), o(1));
          h.replaceWith(l([r("=", s(S), u("+", y.node)), r("=", n(y.node), P), s(S)]));
        }
    }
  };
  function f(h, m) {
    {
      var g;
      h.traverse(c, {
        scope: h.scope,
        bindingNames: m,
        seen: /* @__PURE__ */ new WeakSet(),
        includeUpdateExpression: (g = arguments[2]) != null ? g : !0
      });
    }
  }
  return c1;
}
var YX, eae;
function DEt() {
  if (YX)
    return u1;
  YX = 1, Object.defineProperty(u1, "__esModule", {
    value: !0
  }), u1.default = C;
  var e = Af(), t = sn(), r = rn, i = NEt();
  const {
    assignmentExpression: n,
    callExpression: s,
    cloneNode: a,
    expressionStatement: o,
    getOuterBindingIdentifiers: l,
    identifier: u,
    isMemberExpression: c,
    isVariableDeclaration: f,
    jsxIdentifier: h,
    jsxMemberExpression: m,
    memberExpression: g,
    numericLiteral: y,
    sequenceExpression: v,
    stringLiteral: T,
    variableDeclaration: S,
    variableDeclarator: P
  } = t;
  function x(L) {
    do
      switch (L.parent.type) {
        case "TSTypeAnnotation":
        case "TSTypeAliasDeclaration":
        case "TSTypeReference":
        case "TypeAnnotation":
        case "TypeAlias":
          return !0;
        case "ExportSpecifier":
          return L.parentPath.parent.exportKind === "type";
        default:
          if (L.parentPath.isStatement() || L.parentPath.isExpression())
            return !1;
      }
    while (L = L.parentPath);
  }
  function C(L, O) {
    const F = /* @__PURE__ */ new Map(), q = /* @__PURE__ */ new Map(), j = ($) => {
      L.requeue($);
    };
    for (const [$, V] of O.source) {
      for (const [K, z] of V.imports)
        F.set(K, [$, z, null]);
      for (const K of V.importsNamespace)
        F.set(K, [$, null, K]);
    }
    for (const [$, V] of O.local) {
      let K = q.get($);
      K || (K = [], q.set($, K)), K.push(...V.names);
    }
    const N = {
      metadata: O,
      requeueInParent: j,
      scope: L.scope,
      exported: q
    };
    L.traverse(D, N);
    const M = /* @__PURE__ */ new Set([...Array.from(F.keys()), ...Array.from(q.keys())]);
    (0, i.default)(L, M, !1);
    const R = {
      seen: /* @__PURE__ */ new WeakSet(),
      metadata: O,
      requeueInParent: j,
      scope: L.scope,
      imported: F,
      exported: q,
      buildImportReference: ([$, V, K], z) => {
        const W = O.source.get($);
        if (W.referenced = !0, K)
          return W.lazy && (z = s(z, [])), z;
        let Y = u(W.name);
        if (W.lazy && (Y = s(Y, [])), V === "default" && W.interop === "node-default")
          return Y;
        const G = O.stringSpecifiers.has(V);
        return g(Y, G ? T(V) : u(V), G);
      }
    };
    L.traverse(I, R);
  }
  const D = {
    Scope(L) {
      L.skip();
    },
    ClassDeclaration(L) {
      const {
        requeueInParent: O,
        exported: F,
        metadata: q
      } = this, {
        id: j
      } = L.node;
      if (!j)
        throw new Error("Expected class to have a name");
      const N = j.name, M = F.get(N) || [];
      if (M.length > 0) {
        const R = o(w(q, M, u(N), L.scope));
        R._blockHoist = L.node._blockHoist, O(L.insertAfter(R)[0]);
      }
    },
    VariableDeclaration(L) {
      const {
        requeueInParent: O,
        exported: F,
        metadata: q
      } = this;
      Object.keys(L.getOuterBindingIdentifiers()).forEach((j) => {
        const N = F.get(j) || [];
        if (N.length > 0) {
          const M = o(w(q, N, u(j), L.scope));
          M._blockHoist = L.node._blockHoist, O(L.insertAfter(M)[0]);
        }
      });
    }
  }, w = (L, O, F, q) => {
    const j = L.exportName;
    for (let N = q; N != null; N = N.parent)
      N.hasOwnBinding(j) && N.rename(j);
    return (O || []).reduce((N, M) => {
      const {
        stringSpecifiers: R
      } = L, $ = R.has(M);
      return n("=", g(u(j), $ ? T(M) : u(M), $), N);
    }, F);
  }, A = (L) => r.default.expression.ast(eae || (eae = at(["\n    (function() {\n      throw new Error('\"' + '", "' + '\" is read-only.');\n    })()\n  "])), L), I = {
    ReferencedIdentifier(L) {
      const {
        seen: O,
        buildImportReference: F,
        scope: q,
        imported: j,
        requeueInParent: N
      } = this;
      if (O.has(L.node))
        return;
      O.add(L.node);
      const M = L.node.name, R = j.get(M);
      if (R) {
        if (x(L))
          throw L.buildCodeFrameError('Cannot transform the imported binding "'.concat(M, "\" since it's also used in a type annotation. ") + "Please strip type annotations using @babel/preset-typescript or @babel/preset-flow.");
        const $ = L.scope.getBinding(M);
        if (q.getBinding(M) !== $)
          return;
        const K = F(R, L.node);
        if (K.loc = L.node.loc, (L.parentPath.isCallExpression({
          callee: L.node
        }) || L.parentPath.isOptionalCallExpression({
          callee: L.node
        }) || L.parentPath.isTaggedTemplateExpression({
          tag: L.node
        })) && c(K))
          L.replaceWith(v([y(0), K]));
        else if (L.isJSXIdentifier() && c(K)) {
          const {
            object: z,
            property: W
          } = K;
          L.replaceWith(m(h(z.name), h(W.name)));
        } else
          L.replaceWith(K);
        N(L), L.skip();
      }
    },
    UpdateExpression(L) {
      const {
        scope: O,
        seen: F,
        imported: q,
        exported: j,
        requeueInParent: N,
        buildImportReference: M
      } = this;
      if (F.has(L.node))
        return;
      F.add(L.node);
      const R = L.get("argument");
      if (R.isMemberExpression())
        return;
      const $ = L.node;
      if (R.isIdentifier()) {
        const V = R.node.name;
        if (O.getBinding(V) !== L.scope.getBinding(V))
          return;
        const K = j.get(V), z = q.get(V);
        if ((K == null ? void 0 : K.length) > 0 || z)
          if (z)
            L.replaceWith(n($.operator[0] + "=", M(z, R.node), A(V)));
          else if ($.prefix)
            L.replaceWith(w(this.metadata, K, a($), L.scope));
          else {
            const W = O.generateDeclaredUidIdentifier(V);
            L.replaceWith(v([n("=", a(W), a($)), w(this.metadata, K, u(V), L.scope), a(W)]));
          }
      }
      N(L), L.skip();
    },
    AssignmentExpression: {
      exit(L) {
        const {
          scope: O,
          seen: F,
          imported: q,
          exported: j,
          requeueInParent: N,
          buildImportReference: M
        } = this;
        if (F.has(L.node))
          return;
        F.add(L.node);
        const R = L.get("left");
        if (!R.isMemberExpression())
          if (R.isIdentifier()) {
            const $ = R.node.name;
            if (O.getBinding($) !== L.scope.getBinding($))
              return;
            const V = j.get($), K = q.get($);
            if ((V == null ? void 0 : V.length) > 0 || K) {
              e(L.node.operator === "=", "Path was not simplified");
              const z = L.node;
              K && (z.left = M(K, R.node), z.right = v([z.right, A($)])), L.replaceWith(w(this.metadata, V, z, L.scope)), N(L);
            }
          } else {
            const $ = R.getOuterBindingIdentifiers(), V = Object.keys($).filter((W) => O.getBinding(W) === L.scope.getBinding(W)), K = V.find((W) => q.has(W));
            K && (L.node.right = v([L.node.right, A(K)]));
            const z = [];
            if (V.forEach((W) => {
              const Y = j.get(W) || [];
              Y.length > 0 && z.push(w(this.metadata, Y, u(W), L.scope));
            }), z.length > 0) {
              let W = v(z);
              L.parentPath.isExpressionStatement() && (W = o(W), W._blockHoist = L.parentPath.node._blockHoist);
              const Y = L.insertAfter(W)[0];
              N(Y);
            }
          }
      }
    },
    "ForOfStatement|ForInStatement"(L) {
      const {
        scope: O,
        node: F
      } = L, {
        left: q
      } = F, {
        exported: j,
        imported: N,
        scope: M
      } = this;
      if (!f(q)) {
        let R = !1, $;
        const V = L.get("body").scope;
        for (const W of Object.keys(l(q)))
          M.getBinding(W) === O.getBinding(W) && (j.has(W) && (R = !0, V.hasOwnBinding(W) && V.rename(W)), N.has(W) && !$ && ($ = W));
        if (!R && !$)
          return;
        L.ensureBlock();
        const K = L.get("body"), z = O.generateUidIdentifierBasedOnNode(q);
        L.get("left").replaceWith(S("let", [P(a(z))])), O.registerDeclaration(L.get("left")), R && K.unshiftContainer("body", o(n("=", q, z))), $ && K.unshiftContainer("body", o(A($)));
      }
    }
  };
  return u1;
}
var ud = {}, XX;
function LEt() {
  if (XX)
    return ud;
  XX = 1, Object.defineProperty(ud, "__esModule", {
    value: !0
  }), ud.default = o, ud.hasExports = i, ud.isSideEffectImport = n, ud.validateImportInteropOption = s;
  var e = xs, t = qc(), r = um;
  function i(g) {
    return g.hasExports;
  }
  function n(g) {
    return g.imports.size === 0 && g.importsNamespace.size === 0 && g.reexports.size === 0 && g.reexportNamespace.size === 0 && !g.reexportAll;
  }
  function s(g) {
    if (typeof g != "function" && g !== "none" && g !== "babel" && g !== "node")
      throw new Error('.importInterop must be one of "none", "babel", "node", or a function returning one of those values (received '.concat(g, ")."));
    return g;
  }
  function a(g, y, v) {
    return typeof g == "function" ? s(g(y, v)) : g;
  }
  function o(g, y, {
    importInterop: v,
    initializeReexports: T = !1,
    lazy: S = !1,
    esNamespaceOnly: P = !1,
    filename: x
  }) {
    y || (y = g.scope.generateUidIdentifier("exports").name);
    const C = /* @__PURE__ */ new Set();
    h(g);
    const {
      local: D,
      sources: w,
      hasExports: A
    } = c(g, {
      initializeReexports: T,
      lazy: S
    }, C);
    m(g);
    for (const [I, L] of w) {
      L.importsNamespace.size > 0 && (L.name = L.importsNamespace.values().next().value);
      const O = a(v, I, x);
      O === "none" ? L.interop = "none" : O === "node" && L.interop === "namespace" ? L.interop = "node-namespace" : O === "node" && L.interop === "default" ? L.interop = "node-default" : P && L.interop === "namespace" && (L.interop = "default");
    }
    return {
      exportName: y,
      exportNameListName: null,
      hasExports: A,
      local: D,
      source: w,
      stringSpecifiers: C
    };
  }
  function l(g, y) {
    if (g.isIdentifier())
      return g.node.name;
    if (g.isStringLiteral()) {
      const v = g.node.value;
      return (0, t.isIdentifierName)(v) || y.add(v), v;
    } else
      throw new Error("Expected export specifier to be either Identifier or StringLiteral, got ".concat(g.node.type));
  }
  function u(g) {
    if (!g.isExportSpecifier())
      throw g.isExportNamespaceSpecifier() ? g.buildCodeFrameError("Export namespace should be first transformed by `@babel/plugin-transform-export-namespace-from`.") : g.buildCodeFrameError("Unexpected export specifier type");
  }
  function c(g, {
    lazy: y,
    initializeReexports: v
  }, T) {
    const S = f(g, v, T), P = /* @__PURE__ */ new Map(), x = (D) => {
      const w = D.value;
      let A = P.get(w);
      return A || (A = {
        name: g.scope.generateUidIdentifier((0, e.basename)(w, (0, e.extname)(w))).name,
        interop: "none",
        loc: null,
        imports: /* @__PURE__ */ new Map(),
        importsNamespace: /* @__PURE__ */ new Set(),
        reexports: /* @__PURE__ */ new Map(),
        reexportNamespace: /* @__PURE__ */ new Set(),
        reexportAll: null,
        lazy: !1,
        referenced: !1
      }, P.set(w, A)), A;
    };
    let C = !1;
    g.get("body").forEach((D) => {
      if (D.isImportDeclaration()) {
        const w = x(D.node.source);
        w.loc || (w.loc = D.node.loc), D.get("specifiers").forEach((A) => {
          if (A.isImportDefaultSpecifier()) {
            const I = A.get("local").node.name;
            w.imports.set(I, "default");
            const L = S.get(I);
            L && (S.delete(I), L.names.forEach((O) => {
              w.reexports.set(O, "default");
            }), w.referenced = !0);
          } else if (A.isImportNamespaceSpecifier()) {
            const I = A.get("local").node.name;
            w.importsNamespace.add(I);
            const L = S.get(I);
            L && (S.delete(I), L.names.forEach((O) => {
              w.reexportNamespace.add(O);
            }), w.referenced = !0);
          } else if (A.isImportSpecifier()) {
            const I = l(A.get("imported"), T), L = A.get("local").node.name;
            w.imports.set(L, I);
            const O = S.get(L);
            O && (S.delete(L), O.names.forEach((F) => {
              w.reexports.set(F, I);
            }), w.referenced = !0);
          }
        });
      } else if (D.isExportAllDeclaration()) {
        C = !0;
        const w = x(D.node.source);
        w.loc || (w.loc = D.node.loc), w.reexportAll = {
          loc: D.node.loc
        }, w.referenced = !0;
      } else if (D.isExportNamedDeclaration() && D.node.source) {
        C = !0;
        const w = x(D.node.source);
        w.loc || (w.loc = D.node.loc), D.get("specifiers").forEach((A) => {
          u(A);
          const I = l(A.get("local"), T), L = l(A.get("exported"), T);
          if (w.reexports.set(L, I), w.referenced = !0, L === "__esModule")
            throw A.get("exported").buildCodeFrameError('Illegal export "__esModule".');
        });
      } else
        (D.isExportNamedDeclaration() || D.isExportDefaultDeclaration()) && (C = !0);
    });
    for (const D of P.values()) {
      let w = !1, A = !1;
      D.importsNamespace.size > 0 && (w = !0, A = !0), D.reexportAll && (A = !0);
      for (const I of D.imports.values())
        I === "default" ? w = !0 : A = !0;
      for (const I of D.reexports.values())
        I === "default" ? w = !0 : A = !0;
      w && A ? D.interop = "namespace" : w && (D.interop = "default");
    }
    for (const [D, w] of P)
      if (y !== !1 && !(n(w) || w.reexportAll))
        if (y === !0)
          w.lazy = !/\./.test(D);
        else if (Array.isArray(y))
          w.lazy = y.indexOf(D) !== -1;
        else if (typeof y == "function")
          w.lazy = y(D);
        else
          throw new Error(".lazy must be a boolean, string array, or function");
    return {
      hasExports: C,
      local: S,
      sources: P
    };
  }
  function f(g, y, v) {
    const T = /* @__PURE__ */ new Map();
    g.get("body").forEach((x) => {
      let C;
      if (x.isImportDeclaration())
        C = "import";
      else {
        if (x.isExportDefaultDeclaration() && (x = x.get("declaration")), x.isExportNamedDeclaration()) {
          if (x.node.declaration)
            x = x.get("declaration");
          else if (y && x.node.source && x.get("source").isStringLiteral()) {
            x.get("specifiers").forEach((D) => {
              u(D), T.set(D.get("local").node.name, "block");
            });
            return;
          }
        }
        if (x.isFunctionDeclaration())
          C = "hoisted";
        else if (x.isClassDeclaration())
          C = "block";
        else if (x.isVariableDeclaration({
          kind: "var"
        }))
          C = "var";
        else if (x.isVariableDeclaration())
          C = "block";
        else
          return;
      }
      Object.keys(x.getOuterBindingIdentifiers()).forEach((D) => {
        T.set(D, C);
      });
    });
    const S = /* @__PURE__ */ new Map(), P = (x) => {
      const C = x.node.name;
      let D = S.get(C);
      if (!D) {
        const w = T.get(C);
        if (w === void 0)
          throw x.buildCodeFrameError('Exporting local "'.concat(C, '", which is not declared.'));
        D = {
          names: [],
          kind: w
        }, S.set(C, D);
      }
      return D;
    };
    return g.get("body").forEach((x) => {
      if (x.isExportNamedDeclaration() && (y || !x.node.source))
        if (x.node.declaration) {
          const C = x.get("declaration"), D = C.getOuterBindingIdentifierPaths();
          Object.keys(D).forEach((w) => {
            if (w === "__esModule")
              throw C.buildCodeFrameError('Illegal export "__esModule".');
            P(D[w]).names.push(w);
          });
        } else
          x.get("specifiers").forEach((C) => {
            const D = C.get("local"), w = C.get("exported"), A = P(D), I = l(w, v);
            if (I === "__esModule")
              throw w.buildCodeFrameError('Illegal export "__esModule".');
            A.names.push(I);
          });
      else if (x.isExportDefaultDeclaration()) {
        const C = x.get("declaration");
        if (C.isFunctionDeclaration() || C.isClassDeclaration())
          P(C.get("id")).names.push("default");
        else
          throw C.buildCodeFrameError("Unexpected default expression export.");
      }
    }), S;
  }
  function h(g) {
    g.get("body").forEach((y) => {
      y.isExportDefaultDeclaration() && (0, r.default)(y);
    });
  }
  function m(g) {
    g.get("body").forEach((y) => {
      if (y.isImportDeclaration())
        y.remove();
      else if (y.isExportNamedDeclaration())
        y.node.declaration ? (y.node.declaration._blockHoist = y.node._blockHoist, y.replaceWith(y.node.declaration)) : y.remove();
      else if (y.isExportDefaultDeclaration()) {
        const v = y.get("declaration");
        if (v.isFunctionDeclaration() || v.isClassDeclaration())
          v._blockHoist = y.node._blockHoist, y.replaceWith(v);
        else
          throw v.buildCodeFrameError("Unexpected default expression export.");
      } else
        y.isExportAllDeclaration() && y.remove();
    });
  }
  return ud;
}
var zb = {}, JX, tae, rae, iae, nae, sae;
function QX() {
  if (JX)
    return zb;
  JX = 1, Object.defineProperty(zb, "__esModule", {
    value: !0
  }), zb.buildDynamicImport = r;
  var e = sn(), t = rn;
  zb.getDynamicImportSource = function(n) {
    const [s] = n.arguments;
    return e.isStringLiteral(s) || e.isTemplateLiteral(s) ? s : t.default.expression.ast(tae || (tae = at(["`${", "}`"], ["\\`\\${", "}\\`"])), s);
  };
  function r(i, n, s, a) {
    const [o] = i.arguments;
    if (e.isStringLiteral(o) || e.isTemplateLiteral(o) && o.quasis.length === 0)
      return n ? t.default.expression.ast(rae || (rae = at(["\n        Promise.resolve().then(() => ", ")\n      "])), a(o)) : a(o);
    const l = e.isTemplateLiteral(o) ? e.identifier("specifier") : e.templateLiteral([e.templateElement({
      raw: ""
    }), e.templateElement({
      raw: ""
    })], [e.identifier("specifier")]);
    return n ? t.default.expression.ast(iae || (iae = at(["\n      (specifier =>\n        new Promise(r => r(", "))\n          .then(s => ", ")\n      )(", ")\n    "])), l, a(e.identifier("s")), o) : s ? t.default.expression.ast(nae || (nae = at(["\n      (specifier =>\n        new Promise(r => r(", "))\n      )(", ")\n    "])), a(l), o) : t.default.expression.ast(sae || (sae = at(["\n      (specifier => ", ")(", ")\n    "])), a(l), o);
  }
  return zb;
}
var Gb = {}, ZX;
function MEt() {
  if (ZX)
    return Gb;
  ZX = 1, Object.defineProperty(Gb, "__esModule", {
    value: !0
  }), Gb.default = e;
  {
    const t = e;
    Gb.default = e = function(i, n) {
      var s, a, o, l;
      return t(i, {
        moduleId: (s = n.moduleId) != null ? s : i.moduleId,
        moduleIds: (a = n.moduleIds) != null ? a : i.moduleIds,
        getModuleId: (o = n.getModuleId) != null ? o : i.getModuleId,
        moduleRoot: (l = n.moduleRoot) != null ? l : i.moduleRoot
      });
    };
  }
  function e(t, r) {
    const {
      filename: i,
      filenameRelative: n = i,
      sourceRoot: s = r.moduleRoot
    } = t, {
      moduleId: a,
      moduleIds: o = !!a,
      getModuleId: l,
      moduleRoot: u = s
    } = r;
    if (!o)
      return null;
    if (a != null && !l)
      return a;
    let c = u != null ? u + "/" : "";
    if (n) {
      const f = s != null ? new RegExp("^" + s + "/?") : "";
      c += n.replace(f, "").replace(/\.(\w*?)$/, "");
    }
    return c = c.replace(/\\/g, "/"), l && l(c) || c;
  }
  return Gb;
}
var eJ, aae, oae, lae, uae, cae, pae, fae, hae, dae, mae, yae, gae, bae;
function REt() {
  return eJ || (eJ = 1, function(e) {
    Object.defineProperty(e, "__esModule", {
      value: !0
    }), Object.defineProperty(e, "buildDynamicImport", {
      enumerable: !0,
      get: function() {
        return l.buildDynamicImport;
      }
    }), e.buildNamespaceInitStatements = L, e.ensureStatementsHoisted = A, Object.defineProperty(e, "getModuleName", {
      enumerable: !0,
      get: function() {
        return u.default;
      }
    }), Object.defineProperty(e, "hasExports", {
      enumerable: !0,
      get: function() {
        return o.hasExports;
      }
    }), Object.defineProperty(e, "isModule", {
      enumerable: !0,
      get: function() {
        return n.isModule;
      }
    }), Object.defineProperty(e, "isSideEffectImport", {
      enumerable: !0,
      get: function() {
        return o.isSideEffectImport;
      }
    }), e.rewriteModuleStatementsAndPrepareHeader = w, Object.defineProperty(e, "rewriteThis", {
      enumerable: !0,
      get: function() {
        return s.default;
      }
    }), e.wrapInterop = I;
    var t = Af(), r = sn(), i = rn, n = f_, s = OEt(), a = DEt(), o = LEt(), l = QX(), u = MEt();
    const {
      booleanLiteral: c,
      callExpression: f,
      cloneNode: h,
      directive: m,
      directiveLiteral: g,
      expressionStatement: y,
      identifier: v,
      isIdentifier: T,
      memberExpression: S,
      stringLiteral: P,
      valueToNode: x,
      variableDeclaration: C,
      variableDeclarator: D
    } = r;
    e.getDynamicImportSource = QX().getDynamicImportSource;
    function w(V, {
      exportName: K,
      strict: z,
      allowTopLevelThis: W,
      strictMode: Y,
      noInterop: G,
      importInterop: le = G ? "none" : "babel",
      lazy: ne,
      esNamespaceOnly: ae,
      filename: be,
      constantReexports: ye = arguments[1].loose,
      enumerableModuleMeta: fe = arguments[1].loose,
      noIncompleteNsImportDetection: Z
    }) {
      (0, o.validateImportInteropOption)(le), t((0, n.isModule)(V), "Cannot process module statements in a script"), V.node.sourceType = "script";
      const ue = (0, o.default)(V, K, {
        importInterop: le,
        initializeReexports: ye,
        lazy: ne,
        esNamespaceOnly: ae,
        filename: be
      });
      W || (0, s.default)(V), (0, a.default)(V, ue), Y !== !1 && (V.node.directives.some((ve) => ve.value.value === "use strict") || V.unshiftContainer("directives", m(g("use strict"))));
      const me = [];
      (0, o.hasExports)(ue) && !z && me.push(q(ue, fe));
      const xe = N(V, ue);
      return xe && (ue.exportNameListName = xe.name, me.push(xe.statement)), me.push(...M(V, ue, ye, Z)), {
        meta: ue,
        headers: me
      };
    }
    function A(V) {
      V.forEach((K) => {
        K._blockHoist = 3;
      });
    }
    function I(V, K, z) {
      if (z === "none")
        return null;
      if (z === "node-namespace")
        return f(V.hub.addHelper("interopRequireWildcard"), [K, c(!0)]);
      if (z === "node-default")
        return null;
      let W;
      if (z === "default")
        W = "interopRequireDefault";
      else if (z === "namespace")
        W = "interopRequireWildcard";
      else
        throw new Error("Unknown interop: ".concat(z));
      return f(V.hub.addHelper(W), [K]);
    }
    function L(V, K, z = !1) {
      const W = [];
      let Y = v(K.name);
      K.lazy && (Y = f(Y, []));
      for (const G of K.importsNamespace)
        G !== K.name && W.push(i.default.statement(aae || (aae = at(["var NAME = SOURCE;"])))({
          NAME: G,
          SOURCE: h(Y)
        }));
      z && W.push(...F(V, K, !0));
      for (const G of K.reexportNamespace)
        W.push((K.lazy ? i.default.statement(oae || (oae = at(['\n            Object.defineProperty(EXPORTS, "NAME", {\n              enumerable: true,\n              get: function() {\n                return NAMESPACE;\n              }\n            });\n          ']))) : i.default.statement(lae || (lae = at(["EXPORTS.NAME = NAMESPACE;"]))))({
          EXPORTS: V.exportName,
          NAME: G,
          NAMESPACE: h(Y)
        }));
      if (K.reexportAll) {
        const G = j(V, h(Y), z);
        G.loc = K.reexportAll.loc, W.push(G);
      }
      return W;
    }
    const O = {
      constant: i.default.statement(uae || (uae = at(["EXPORTS.EXPORT_NAME = NAMESPACE_IMPORT;"]))),
      constantComputed: i.default.statement(cae || (cae = at(['EXPORTS["EXPORT_NAME"] = NAMESPACE_IMPORT;']))),
      spec: i.default.statement(pae || (pae = at(['\n    Object.defineProperty(EXPORTS, "EXPORT_NAME", {\n      enumerable: true,\n      get: function() {\n        return NAMESPACE_IMPORT;\n      },\n    });\n    '])))
    };
    function F(V, K, z) {
      const W = K.lazy ? f(v(K.name), []) : v(K.name), {
        stringSpecifiers: Y
      } = V;
      return Array.from(K.reexports, ([G, le]) => {
        let ne = h(W);
        le === "default" && K.interop === "node-default" || (Y.has(le) ? ne = S(ne, P(le), !0) : ne = S(ne, v(le)));
        const ae = {
          EXPORTS: V.exportName,
          EXPORT_NAME: G,
          NAMESPACE_IMPORT: ne
        };
        return z || T(ne) ? Y.has(G) ? O.constantComputed(ae) : O.constant(ae) : O.spec(ae);
      });
    }
    function q(V, K = !1) {
      return (K ? i.default.statement(fae || (fae = at(["\n        EXPORTS.__esModule = true;\n      "]))) : i.default.statement(hae || (hae = at(['\n        Object.defineProperty(EXPORTS, "__esModule", {\n          value: true,\n        });\n      ']))))({
        EXPORTS: V.exportName
      });
    }
    function j(V, K, z) {
      return (z ? i.default.statement(dae || (dae = at(['\n        Object.keys(NAMESPACE).forEach(function(key) {\n          if (key === "default" || key === "__esModule") return;\n          VERIFY_NAME_LIST;\n          if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return;\n\n          EXPORTS[key] = NAMESPACE[key];\n        });\n      ']))) : i.default.statement(mae || (mae = at(['\n        Object.keys(NAMESPACE).forEach(function(key) {\n          if (key === "default" || key === "__esModule") return;\n          VERIFY_NAME_LIST;\n          if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return;\n\n          Object.defineProperty(EXPORTS, key, {\n            enumerable: true,\n            get: function() {\n              return NAMESPACE[key];\n            },\n          });\n        });\n    ']))))({
        NAMESPACE: K,
        EXPORTS: V.exportName,
        VERIFY_NAME_LIST: V.exportNameListName ? (0, i.default)(yae || (yae = at(["\n            if (Object.prototype.hasOwnProperty.call(EXPORTS_LIST, key)) return;\n          "])))({
          EXPORTS_LIST: V.exportNameListName
        }) : null
      });
    }
    function N(V, K) {
      const z = /* @__PURE__ */ Object.create(null);
      for (const G of K.local.values())
        for (const le of G.names)
          z[le] = !0;
      let W = !1;
      for (const G of K.source.values()) {
        for (const le of G.reexports.keys())
          z[le] = !0;
        for (const le of G.reexportNamespace)
          z[le] = !0;
        W = W || !!G.reexportAll;
      }
      if (!W || Object.keys(z).length === 0)
        return null;
      const Y = V.scope.generateUidIdentifier("exportNames");
      return delete z.default, {
        name: Y.name,
        statement: C("var", [D(Y, x(z))])
      };
    }
    function M(V, K, z = !1, W = !1) {
      const Y = [];
      for (const [le, ne] of K.local)
        if (ne.kind !== "import") {
          if (ne.kind === "hoisted")
            Y.push([ne.names[0], $(K, ne.names, v(le))]);
          else if (!W)
            for (const ae of ne.names)
              Y.push([ae, null]);
        }
      for (const le of K.source.values()) {
        if (!z) {
          const ne = F(K, le, !1), ae = [...le.reexports.keys()];
          for (let be = 0; be < ne.length; be++)
            Y.push([ae[be], ne[be]]);
        }
        if (!W)
          for (const ne of le.reexportNamespace)
            Y.push([ne, null]);
      }
      Y.sort(([le], [ne]) => le < ne ? -1 : ne < le ? 1 : 0);
      const G = [];
      if (W)
        for (const [, le] of Y)
          G.push(le);
      else
        for (let ne = 0; ne < Y.length; ne += 100) {
          let ae = [];
          for (let be = 0; be < 100 && ne + be < Y.length; be++) {
            const [ye, fe] = Y[ne + be];
            fe !== null ? (ae.length > 0 && (G.push($(K, ae, V.scope.buildUndefinedNode())), ae = []), G.push(fe)) : ae.push(ye);
          }
          ae.length > 0 && G.push($(K, ae, V.scope.buildUndefinedNode()));
        }
      return G;
    }
    const R = {
      computed: i.default.expression(gae || (gae = at(['EXPORTS["NAME"] = VALUE']))),
      default: i.default.expression(bae || (bae = at(["EXPORTS.NAME = VALUE"])))
    };
    function $(V, K, z) {
      const {
        stringSpecifiers: W,
        exportName: Y
      } = V;
      return y(K.reduce((G, le) => {
        const ne = {
          EXPORTS: Y,
          NAME: le,
          VALUE: G
        };
        return W.has(le) ? R.computed(ne) : R.default(ne);
      }, z));
    }
  }(jR)), jR;
}
var p1 = { exports: {} }, tJ;
function Ide() {
  return tJ || (tJ = 1, function(e, t) {
    t = e.exports = S;
    var r;
    typeof process == "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? r = function() {
      var ge = Array.prototype.slice.call(arguments, 0);
      ge.unshift("SEMVER"), console.log.apply(console, ge);
    } : r = function() {
    }, t.SEMVER_SPEC_VERSION = "2.0.0";
    var i = 256, n = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */
    9007199254740991, s = 16, a = t.re = [], o = t.src = [], l = t.tokens = {}, u = 0;
    function c(ge) {
      l[ge] = u++;
    }
    c("NUMERICIDENTIFIER"), o[l.NUMERICIDENTIFIER] = "0|[1-9]\\d*", c("NUMERICIDENTIFIERLOOSE"), o[l.NUMERICIDENTIFIERLOOSE] = "[0-9]+", c("NONNUMERICIDENTIFIER"), o[l.NONNUMERICIDENTIFIER] = "\\d*[a-zA-Z-][a-zA-Z0-9-]*", c("MAINVERSION"), o[l.MAINVERSION] = "(" + o[l.NUMERICIDENTIFIER] + ")\\.(" + o[l.NUMERICIDENTIFIER] + ")\\.(" + o[l.NUMERICIDENTIFIER] + ")", c("MAINVERSIONLOOSE"), o[l.MAINVERSIONLOOSE] = "(" + o[l.NUMERICIDENTIFIERLOOSE] + ")\\.(" + o[l.NUMERICIDENTIFIERLOOSE] + ")\\.(" + o[l.NUMERICIDENTIFIERLOOSE] + ")", c("PRERELEASEIDENTIFIER"), o[l.PRERELEASEIDENTIFIER] = "(?:" + o[l.NUMERICIDENTIFIER] + "|" + o[l.NONNUMERICIDENTIFIER] + ")", c("PRERELEASEIDENTIFIERLOOSE"), o[l.PRERELEASEIDENTIFIERLOOSE] = "(?:" + o[l.NUMERICIDENTIFIERLOOSE] + "|" + o[l.NONNUMERICIDENTIFIER] + ")", c("PRERELEASE"), o[l.PRERELEASE] = "(?:-(" + o[l.PRERELEASEIDENTIFIER] + "(?:\\." + o[l.PRERELEASEIDENTIFIER] + ")*))", c("PRERELEASELOOSE"), o[l.PRERELEASELOOSE] = "(?:-?(" + o[l.PRERELEASEIDENTIFIERLOOSE] + "(?:\\." + o[l.PRERELEASEIDENTIFIERLOOSE] + ")*))", c("BUILDIDENTIFIER"), o[l.BUILDIDENTIFIER] = "[0-9A-Za-z-]+", c("BUILD"), o[l.BUILD] = "(?:\\+(" + o[l.BUILDIDENTIFIER] + "(?:\\." + o[l.BUILDIDENTIFIER] + ")*))", c("FULL"), c("FULLPLAIN"), o[l.FULLPLAIN] = "v?" + o[l.MAINVERSION] + o[l.PRERELEASE] + "?" + o[l.BUILD] + "?", o[l.FULL] = "^" + o[l.FULLPLAIN] + "$", c("LOOSEPLAIN"), o[l.LOOSEPLAIN] = "[v=\\s]*" + o[l.MAINVERSIONLOOSE] + o[l.PRERELEASELOOSE] + "?" + o[l.BUILD] + "?", c("LOOSE"), o[l.LOOSE] = "^" + o[l.LOOSEPLAIN] + "$", c("GTLT"), o[l.GTLT] = "((?:<|>)?=?)", c("XRANGEIDENTIFIERLOOSE"), o[l.XRANGEIDENTIFIERLOOSE] = o[l.NUMERICIDENTIFIERLOOSE] + "|x|X|\\*", c("XRANGEIDENTIFIER"), o[l.XRANGEIDENTIFIER] = o[l.NUMERICIDENTIFIER] + "|x|X|\\*", c("XRANGEPLAIN"), o[l.XRANGEPLAIN] = "[v=\\s]*(" + o[l.XRANGEIDENTIFIER] + ")(?:\\.(" + o[l.XRANGEIDENTIFIER] + ")(?:\\.(" + o[l.XRANGEIDENTIFIER] + ")(?:" + o[l.PRERELEASE] + ")?" + o[l.BUILD] + "?)?)?", c("XRANGEPLAINLOOSE"), o[l.XRANGEPLAINLOOSE] = "[v=\\s]*(" + o[l.XRANGEIDENTIFIERLOOSE] + ")(?:\\.(" + o[l.XRANGEIDENTIFIERLOOSE] + ")(?:\\.(" + o[l.XRANGEIDENTIFIERLOOSE] + ")(?:" + o[l.PRERELEASELOOSE] + ")?" + o[l.BUILD] + "?)?)?", c("XRANGE"), o[l.XRANGE] = "^" + o[l.GTLT] + "\\s*" + o[l.XRANGEPLAIN] + "$", c("XRANGELOOSE"), o[l.XRANGELOOSE] = "^" + o[l.GTLT] + "\\s*" + o[l.XRANGEPLAINLOOSE] + "$", c("COERCE"), o[l.COERCE] = "(^|[^\\d])(\\d{1," + s + "})(?:\\.(\\d{1," + s + "}))?(?:\\.(\\d{1," + s + "}))?(?:$|[^\\d])", c("COERCERTL"), a[l.COERCERTL] = new RegExp(o[l.COERCE], "g"), c("LONETILDE"), o[l.LONETILDE] = "(?:~>?)", c("TILDETRIM"), o[l.TILDETRIM] = "(\\s*)" + o[l.LONETILDE] + "\\s+", a[l.TILDETRIM] = new RegExp(o[l.TILDETRIM], "g");
    var f = "$1~";
    c("TILDE"), o[l.TILDE] = "^" + o[l.LONETILDE] + o[l.XRANGEPLAIN] + "$", c("TILDELOOSE"), o[l.TILDELOOSE] = "^" + o[l.LONETILDE] + o[l.XRANGEPLAINLOOSE] + "$", c("LONECARET"), o[l.LONECARET] = "(?:\\^)", c("CARETTRIM"), o[l.CARETTRIM] = "(\\s*)" + o[l.LONECARET] + "\\s+", a[l.CARETTRIM] = new RegExp(o[l.CARETTRIM], "g");
    var h = "$1^";
    c("CARET"), o[l.CARET] = "^" + o[l.LONECARET] + o[l.XRANGEPLAIN] + "$", c("CARETLOOSE"), o[l.CARETLOOSE] = "^" + o[l.LONECARET] + o[l.XRANGEPLAINLOOSE] + "$", c("COMPARATORLOOSE"), o[l.COMPARATORLOOSE] = "^" + o[l.GTLT] + "\\s*(" + o[l.LOOSEPLAIN] + ")$|^$", c("COMPARATOR"), o[l.COMPARATOR] = "^" + o[l.GTLT] + "\\s*(" + o[l.FULLPLAIN] + ")$|^$", c("COMPARATORTRIM"), o[l.COMPARATORTRIM] = "(\\s*)" + o[l.GTLT] + "\\s*(" + o[l.LOOSEPLAIN] + "|" + o[l.XRANGEPLAIN] + ")", a[l.COMPARATORTRIM] = new RegExp(o[l.COMPARATORTRIM], "g");
    var m = "$1$2$3";
    c("HYPHENRANGE"), o[l.HYPHENRANGE] = "^\\s*(" + o[l.XRANGEPLAIN] + ")\\s+-\\s+(" + o[l.XRANGEPLAIN] + ")\\s*$", c("HYPHENRANGELOOSE"), o[l.HYPHENRANGELOOSE] = "^\\s*(" + o[l.XRANGEPLAINLOOSE] + ")\\s+-\\s+(" + o[l.XRANGEPLAINLOOSE] + ")\\s*$", c("STAR"), o[l.STAR] = "(<|>)?=?\\s*\\*";
    for (var g = 0; g < u; g++)
      r(g, o[g]), a[g] || (a[g] = new RegExp(o[g]));
    t.parse = y;
    function y(ge, pe) {
      if ((!pe || typeof pe != "object") && (pe = {
        loose: !!pe,
        includePrerelease: !1
      }), ge instanceof S)
        return ge;
      if (typeof ge != "string" || ge.length > i)
        return null;
      var $e = pe.loose ? a[l.LOOSE] : a[l.FULL];
      if (!$e.test(ge))
        return null;
      try {
        return new S(ge, pe);
      } catch (ie) {
        return null;
      }
    }
    t.valid = v;
    function v(ge, pe) {
      var $e = y(ge, pe);
      return $e ? $e.version : null;
    }
    t.clean = T;
    function T(ge, pe) {
      var $e = y(ge.trim().replace(/^[=v]+/, ""), pe);
      return $e ? $e.version : null;
    }
    t.SemVer = S;
    function S(ge, pe) {
      if ((!pe || typeof pe != "object") && (pe = {
        loose: !!pe,
        includePrerelease: !1
      }), ge instanceof S) {
        if (ge.loose === pe.loose)
          return ge;
        ge = ge.version;
      } else if (typeof ge != "string")
        throw new TypeError("Invalid Version: " + ge);
      if (ge.length > i)
        throw new TypeError("version is longer than " + i + " characters");
      if (!(this instanceof S))
        return new S(ge, pe);
      r("SemVer", ge, pe), this.options = pe, this.loose = !!pe.loose;
      var $e = ge.trim().match(pe.loose ? a[l.LOOSE] : a[l.FULL]);
      if (!$e)
        throw new TypeError("Invalid Version: " + ge);
      if (this.raw = ge, this.major = +$e[1], this.minor = +$e[2], this.patch = +$e[3], this.major > n || this.major < 0)
        throw new TypeError("Invalid major version");
      if (this.minor > n || this.minor < 0)
        throw new TypeError("Invalid minor version");
      if (this.patch > n || this.patch < 0)
        throw new TypeError("Invalid patch version");
      $e[4] ? this.prerelease = $e[4].split(".").map(function(ie) {
        if (/^[0-9]+$/.test(ie)) {
          var Q = +ie;
          if (Q >= 0 && Q < n)
            return Q;
        }
        return ie;
      }) : this.prerelease = [], this.build = $e[5] ? $e[5].split(".") : [], this.format();
    }
    S.prototype.format = function() {
      return this.version = this.major + "." + this.minor + "." + this.patch, this.prerelease.length && (this.version += "-" + this.prerelease.join(".")), this.version;
    }, S.prototype.toString = function() {
      return this.version;
    }, S.prototype.compare = function(ge) {
      return r("SemVer.compare", this.version, this.options, ge), ge instanceof S || (ge = new S(ge, this.options)), this.compareMain(ge) || this.comparePre(ge);
    }, S.prototype.compareMain = function(ge) {
      return ge instanceof S || (ge = new S(ge, this.options)), D(this.major, ge.major) || D(this.minor, ge.minor) || D(this.patch, ge.patch);
    }, S.prototype.comparePre = function(ge) {
      if (ge instanceof S || (ge = new S(ge, this.options)), this.prerelease.length && !ge.prerelease.length)
        return -1;
      if (!this.prerelease.length && ge.prerelease.length)
        return 1;
      if (!this.prerelease.length && !ge.prerelease.length)
        return 0;
      var pe = 0;
      do {
        var $e = this.prerelease[pe], ie = ge.prerelease[pe];
        if (r("prerelease compare", pe, $e, ie), $e === void 0 && ie === void 0)
          return 0;
        if (ie === void 0)
          return 1;
        if ($e === void 0)
          return -1;
        if ($e === ie)
          continue;
        return D($e, ie);
      } while (++pe);
    }, S.prototype.compareBuild = function(ge) {
      ge instanceof S || (ge = new S(ge, this.options));
      var pe = 0;
      do {
        var $e = this.build[pe], ie = ge.build[pe];
        if (r("prerelease compare", pe, $e, ie), $e === void 0 && ie === void 0)
          return 0;
        if (ie === void 0)
          return 1;
        if ($e === void 0)
          return -1;
        if ($e === ie)
          continue;
        return D($e, ie);
      } while (++pe);
    }, S.prototype.inc = function(ge, pe) {
      switch (ge) {
        case "premajor":
          this.prerelease.length = 0, this.patch = 0, this.minor = 0, this.major++, this.inc("pre", pe);
          break;
        case "preminor":
          this.prerelease.length = 0, this.patch = 0, this.minor++, this.inc("pre", pe);
          break;
        case "prepatch":
          this.prerelease.length = 0, this.inc("patch", pe), this.inc("pre", pe);
          break;
        case "prerelease":
          this.prerelease.length === 0 && this.inc("patch", pe), this.inc("pre", pe);
          break;
        case "major":
          (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) && this.major++, this.minor = 0, this.patch = 0, this.prerelease = [];
          break;
        case "minor":
          (this.patch !== 0 || this.prerelease.length === 0) && this.minor++, this.patch = 0, this.prerelease = [];
          break;
        case "patch":
          this.prerelease.length === 0 && this.patch++, this.prerelease = [];
          break;
        case "pre":
          if (this.prerelease.length === 0)
            this.prerelease = [0];
          else {
            for (var $e = this.prerelease.length; --$e >= 0; )
              typeof this.prerelease[$e] == "number" && (this.prerelease[$e]++, $e = -2);
            $e === -1 && this.prerelease.push(0);
          }
          pe && (this.prerelease[0] === pe ? isNaN(this.prerelease[1]) && (this.prerelease = [pe, 0]) : this.prerelease = [pe, 0]);
          break;
        default:
          throw new Error("invalid increment argument: " + ge);
      }
      return this.format(), this.raw = this.version, this;
    }, t.inc = P;
    function P(ge, pe, $e, ie) {
      typeof $e == "string" && (ie = $e, $e = void 0);
      try {
        return new S(ge, $e).inc(pe, ie).version;
      } catch (Q) {
        return null;
      }
    }
    t.diff = x;
    function x(ge, pe) {
      if (V(ge, pe))
        return null;
      var $e = y(ge), ie = y(pe), Q = "";
      if ($e.prerelease.length || ie.prerelease.length) {
        Q = "pre";
        var X = "prerelease";
      }
      for (var ce in $e)
        if ((ce === "major" || ce === "minor" || ce === "patch") && $e[ce] !== ie[ce])
          return Q + ce;
      return X;
    }
    t.compareIdentifiers = D;
    var C = /^[0-9]+$/;
    function D(ge, pe) {
      var $e = C.test(ge), ie = C.test(pe);
      return $e && ie && (ge = +ge, pe = +pe), ge === pe ? 0 : $e && !ie ? -1 : ie && !$e ? 1 : ge < pe ? -1 : 1;
    }
    t.rcompareIdentifiers = w;
    function w(ge, pe) {
      return D(pe, ge);
    }
    t.major = A;
    function A(ge, pe) {
      return new S(ge, pe).major;
    }
    t.minor = I;
    function I(ge, pe) {
      return new S(ge, pe).minor;
    }
    t.patch = L;
    function L(ge, pe) {
      return new S(ge, pe).patch;
    }
    t.compare = O;
    function O(ge, pe, $e) {
      return new S(ge, $e).compare(new S(pe, $e));
    }
    t.compareLoose = F;
    function F(ge, pe) {
      return O(ge, pe, !0);
    }
    t.compareBuild = q;
    function q(ge, pe, $e) {
      var ie = new S(ge, $e), Q = new S(pe, $e);
      return ie.compare(Q) || ie.compareBuild(Q);
    }
    t.rcompare = j;
    function j(ge, pe, $e) {
      return O(pe, ge, $e);
    }
    t.sort = N;
    function N(ge, pe) {
      return ge.sort(function($e, ie) {
        return t.compareBuild($e, ie, pe);
      });
    }
    t.rsort = M;
    function M(ge, pe) {
      return ge.sort(function($e, ie) {
        return t.compareBuild(ie, $e, pe);
      });
    }
    t.gt = R;
    function R(ge, pe, $e) {
      return O(ge, pe, $e) > 0;
    }
    t.lt = $;
    function $(ge, pe, $e) {
      return O(ge, pe, $e) < 0;
    }
    t.eq = V;
    function V(ge, pe, $e) {
      return O(ge, pe, $e) === 0;
    }
    t.neq = K;
    function K(ge, pe, $e) {
      return O(ge, pe, $e) !== 0;
    }
    t.gte = z;
    function z(ge, pe, $e) {
      return O(ge, pe, $e) >= 0;
    }
    t.lte = W;
    function W(ge, pe, $e) {
      return O(ge, pe, $e) <= 0;
    }
    t.cmp = Y;
    function Y(ge, pe, $e, ie) {
      switch (pe) {
        case "===":
          return typeof ge == "object" && (ge = ge.version), typeof $e == "object" && ($e = $e.version), ge === $e;
        case "!==":
          return typeof ge == "object" && (ge = ge.version), typeof $e == "object" && ($e = $e.version), ge !== $e;
        case "":
        case "=":
        case "==":
          return V(ge, $e, ie);
        case "!=":
          return K(ge, $e, ie);
        case ">":
          return R(ge, $e, ie);
        case ">=":
          return z(ge, $e, ie);
        case "<":
          return $(ge, $e, ie);
        case "<=":
          return W(ge, $e, ie);
        default:
          throw new TypeError("Invalid operator: " + pe);
      }
    }
    t.Comparator = G;
    function G(ge, pe) {
      if ((!pe || typeof pe != "object") && (pe = {
        loose: !!pe,
        includePrerelease: !1
      }), ge instanceof G) {
        if (ge.loose === !!pe.loose)
          return ge;
        ge = ge.value;
      }
      if (!(this instanceof G))
        return new G(ge, pe);
      r("comparator", ge, pe), this.options = pe, this.loose = !!pe.loose, this.parse(ge), this.semver === le ? this.value = "" : this.value = this.operator + this.semver.version, r("comp", this);
    }
    var le = {};
    G.prototype.parse = function(ge) {
      var pe = this.options.loose ? a[l.COMPARATORLOOSE] : a[l.COMPARATOR], $e = ge.match(pe);
      if (!$e)
        throw new TypeError("Invalid comparator: " + ge);
      this.operator = $e[1] !== void 0 ? $e[1] : "", this.operator === "=" && (this.operator = ""), $e[2] ? this.semver = new S($e[2], this.options.loose) : this.semver = le;
    }, G.prototype.toString = function() {
      return this.value;
    }, G.prototype.test = function(ge) {
      if (r("Comparator.test", ge, this.options.loose), this.semver === le || ge === le)
        return !0;
      if (typeof ge == "string")
        try {
          ge = new S(ge, this.options);
        } catch (pe) {
          return !1;
        }
      return Y(ge, this.operator, this.semver, this.options);
    }, G.prototype.intersects = function(ge, pe) {
      if (!(ge instanceof G))
        throw new TypeError("a Comparator is required");
      (!pe || typeof pe != "object") && (pe = {
        loose: !!pe,
        includePrerelease: !1
      });
      var $e;
      if (this.operator === "")
        return this.value === "" ? !0 : ($e = new ne(ge.value, pe), oe(this.value, $e, pe));
      if (ge.operator === "")
        return ge.value === "" ? !0 : ($e = new ne(this.value, pe), oe(ge.semver, $e, pe));
      var ie = (this.operator === ">=" || this.operator === ">") && (ge.operator === ">=" || ge.operator === ">"), Q = (this.operator === "<=" || this.operator === "<") && (ge.operator === "<=" || ge.operator === "<"), X = this.semver.version === ge.semver.version, ce = (this.operator === ">=" || this.operator === "<=") && (ge.operator === ">=" || ge.operator === "<="), U = Y(this.semver, "<", ge.semver, pe) && (this.operator === ">=" || this.operator === ">") && (ge.operator === "<=" || ge.operator === "<"), Ee = Y(this.semver, ">", ge.semver, pe) && (this.operator === "<=" || this.operator === "<") && (ge.operator === ">=" || ge.operator === ">");
      return ie || Q || X && ce || U || Ee;
    }, t.Range = ne;
    function ne(ge, pe) {
      if ((!pe || typeof pe != "object") && (pe = {
        loose: !!pe,
        includePrerelease: !1
      }), ge instanceof ne)
        return ge.loose === !!pe.loose && ge.includePrerelease === !!pe.includePrerelease ? ge : new ne(ge.raw, pe);
      if (ge instanceof G)
        return new ne(ge.value, pe);
      if (!(this instanceof ne))
        return new ne(ge, pe);
      if (this.options = pe, this.loose = !!pe.loose, this.includePrerelease = !!pe.includePrerelease, this.raw = ge, this.set = ge.split(/\s*\|\|\s*/).map(function($e) {
        return this.parseRange($e.trim());
      }, this).filter(function($e) {
        return $e.length;
      }), !this.set.length)
        throw new TypeError("Invalid SemVer Range: " + ge);
      this.format();
    }
    ne.prototype.format = function() {
      return this.range = this.set.map(function(ge) {
        return ge.join(" ").trim();
      }).join("||").trim(), this.range;
    }, ne.prototype.toString = function() {
      return this.range;
    }, ne.prototype.parseRange = function(ge) {
      var pe = this.options.loose;
      ge = ge.trim();
      var $e = pe ? a[l.HYPHENRANGELOOSE] : a[l.HYPHENRANGE];
      ge = ge.replace($e, st), r("hyphen replace", ge), ge = ge.replace(a[l.COMPARATORTRIM], m), r("comparator trim", ge, a[l.COMPARATORTRIM]), ge = ge.replace(a[l.TILDETRIM], f), ge = ge.replace(a[l.CARETTRIM], h), ge = ge.split(/\s+/).join(" ");
      var ie = pe ? a[l.COMPARATORLOOSE] : a[l.COMPARATOR], Q = ge.split(" ").map(function(X) {
        return ye(X, this.options);
      }, this).join(" ").split(/\s+/);
      return this.options.loose && (Q = Q.filter(function(X) {
        return !!X.match(ie);
      })), Q = Q.map(function(X) {
        return new G(X, this.options);
      }, this), Q;
    }, ne.prototype.intersects = function(ge, pe) {
      if (!(ge instanceof ne))
        throw new TypeError("a Range is required");
      return this.set.some(function($e) {
        return ae($e, pe) && ge.set.some(function(ie) {
          return ae(ie, pe) && $e.every(function(Q) {
            return ie.every(function(X) {
              return Q.intersects(X, pe);
            });
          });
        });
      });
    };
    function ae(ge, pe) {
      for (var $e = !0, ie = ge.slice(), Q = ie.pop(); $e && ie.length; )
        $e = ie.every(function(X) {
          return Q.intersects(X, pe);
        }), Q = ie.pop();
      return $e;
    }
    t.toComparators = be;
    function be(ge, pe) {
      return new ne(ge, pe).set.map(function($e) {
        return $e.map(function(ie) {
          return ie.value;
        }).join(" ").trim().split(" ");
      });
    }
    function ye(ge, pe) {
      return r("comp", ge, pe), ge = me(ge, pe), r("caret", ge), ge = Z(ge, pe), r("tildes", ge), ge = Pe(ge, pe), r("xrange", ge), ge = Xe(ge, pe), r("stars", ge), ge;
    }
    function fe(ge) {
      return !ge || ge.toLowerCase() === "x" || ge === "*";
    }
    function Z(ge, pe) {
      return ge.trim().split(/\s+/).map(function($e) {
        return ue($e, pe);
      }).join(" ");
    }
    function ue(ge, pe) {
      var $e = pe.loose ? a[l.TILDELOOSE] : a[l.TILDE];
      return ge.replace($e, function(ie, Q, X, ce, U) {
        r("tilde", ge, ie, Q, X, ce, U);
        var Ee;
        return fe(Q) ? Ee = "" : fe(X) ? Ee = ">=" + Q + ".0.0 <" + (+Q + 1) + ".0.0" : fe(ce) ? Ee = ">=" + Q + "." + X + ".0 <" + Q + "." + (+X + 1) + ".0" : U ? (r("replaceTilde pr", U), Ee = ">=" + Q + "." + X + "." + ce + "-" + U + " <" + Q + "." + (+X + 1) + ".0") : Ee = ">=" + Q + "." + X + "." + ce + " <" + Q + "." + (+X + 1) + ".0", r("tilde return", Ee), Ee;
      });
    }
    function me(ge, pe) {
      return ge.trim().split(/\s+/).map(function($e) {
        return xe($e, pe);
      }).join(" ");
    }
    function xe(ge, pe) {
      r("caret", ge, pe);
      var $e = pe.loose ? a[l.CARETLOOSE] : a[l.CARET];
      return ge.replace($e, function(ie, Q, X, ce, U) {
        r("caret", ge, ie, Q, X, ce, U);
        var Ee;
        return fe(Q) ? Ee = "" : fe(X) ? Ee = ">=" + Q + ".0.0 <" + (+Q + 1) + ".0.0" : fe(ce) ? Q === "0" ? Ee = ">=" + Q + "." + X + ".0 <" + Q + "." + (+X + 1) + ".0" : Ee = ">=" + Q + "." + X + ".0 <" + (+Q + 1) + ".0.0" : U ? (r("replaceCaret pr", U), Q === "0" ? X === "0" ? Ee = ">=" + Q + "." + X + "." + ce + "-" + U + " <" + Q + "." + X + "." + (+ce + 1) : Ee = ">=" + Q + "." + X + "." + ce + "-" + U + " <" + Q + "." + (+X + 1) + ".0" : Ee = ">=" + Q + "." + X + "." + ce + "-" + U + " <" + (+Q + 1) + ".0.0") : (r("no pr"), Q === "0" ? X === "0" ? Ee = ">=" + Q + "." + X + "." + ce + " <" + Q + "." + X + "." + (+ce + 1) : Ee = ">=" + Q + "." + X + "." + ce + " <" + Q + "." + (+X + 1) + ".0" : Ee = ">=" + Q + "." + X + "." + ce + " <" + (+Q + 1) + ".0.0"), r("caret return", Ee), Ee;
      });
    }
    function Pe(ge, pe) {
      return r("replaceXRanges", ge, pe), ge.split(/\s+/).map(function($e) {
        return ve($e, pe);
      }).join(" ");
    }
    function ve(ge, pe) {
      ge = ge.trim();
      var $e = pe.loose ? a[l.XRANGELOOSE] : a[l.XRANGE];
      return ge.replace($e, function(ie, Q, X, ce, U, Ee) {
        r("xRange", ge, ie, Q, X, ce, U, Ee);
        var Qe = fe(X), ft = Qe || fe(ce), ht = ft || fe(U), Rt = ht;
        return Q === "=" && Rt && (Q = ""), Ee = pe.includePrerelease ? "-0" : "", Qe ? Q === ">" || Q === "<" ? ie = "<0.0.0-0" : ie = "*" : Q && Rt ? (ft && (ce = 0), U = 0, Q === ">" ? (Q = ">=", ft ? (X = +X + 1, ce = 0, U = 0) : (ce = +ce + 1, U = 0)) : Q === "<=" && (Q = "<", ft ? X = +X + 1 : ce = +ce + 1), ie = Q + X + "." + ce + "." + U + Ee) : ft ? ie = ">=" + X + ".0.0" + Ee + " <" + (+X + 1) + ".0.0" + Ee : ht && (ie = ">=" + X + "." + ce + ".0" + Ee + " <" + X + "." + (+ce + 1) + ".0" + Ee), r("xRange return", ie), ie;
      });
    }
    function Xe(ge, pe) {
      return r("replaceStars", ge, pe), ge.trim().replace(a[l.STAR], "");
    }
    function st(ge, pe, $e, ie, Q, X, ce, U, Ee, Qe, ft, ht, Rt) {
      return fe($e) ? pe = "" : fe(ie) ? pe = ">=" + $e + ".0.0" : fe(Q) ? pe = ">=" + $e + "." + ie + ".0" : pe = ">=" + pe, fe(Ee) ? U = "" : fe(Qe) ? U = "<" + (+Ee + 1) + ".0.0" : fe(ft) ? U = "<" + Ee + "." + (+Qe + 1) + ".0" : ht ? U = "<=" + Ee + "." + Qe + "." + ft + "-" + ht : U = "<=" + U, (pe + " " + U).trim();
    }
    ne.prototype.test = function(ge) {
      if (!ge)
        return !1;
      if (typeof ge == "string")
        try {
          ge = new S(ge, this.options);
        } catch ($e) {
          return !1;
        }
      for (var pe = 0; pe < this.set.length; pe++)
        if (Se(this.set[pe], ge, this.options))
          return !0;
      return !1;
    };
    function Se(ge, pe, $e) {
      for (var ie = 0; ie < ge.length; ie++)
        if (!ge[ie].test(pe))
          return !1;
      if (pe.prerelease.length && !$e.includePrerelease) {
        for (ie = 0; ie < ge.length; ie++)
          if (r(ge[ie].semver), ge[ie].semver !== le && ge[ie].semver.prerelease.length > 0) {
            var Q = ge[ie].semver;
            if (Q.major === pe.major && Q.minor === pe.minor && Q.patch === pe.patch)
              return !0;
          }
        return !1;
      }
      return !0;
    }
    t.satisfies = oe;
    function oe(ge, pe, $e) {
      try {
        pe = new ne(pe, $e);
      } catch (ie) {
        return !1;
      }
      return pe.test(ge);
    }
    t.maxSatisfying = te;
    function te(ge, pe, $e) {
      var ie = null, Q = null;
      try {
        var X = new ne(pe, $e);
      } catch (ce) {
        return null;
      }
      return ge.forEach(function(ce) {
        X.test(ce) && (!ie || Q.compare(ce) === -1) && (ie = ce, Q = new S(ie, $e));
      }), ie;
    }
    t.minSatisfying = se;
    function se(ge, pe, $e) {
      var ie = null, Q = null;
      try {
        var X = new ne(pe, $e);
      } catch (ce) {
        return null;
      }
      return ge.forEach(function(ce) {
        X.test(ce) && (!ie || Q.compare(ce) === 1) && (ie = ce, Q = new S(ie, $e));
      }), ie;
    }
    t.minVersion = re;
    function re(ge, pe) {
      ge = new ne(ge, pe);
      var $e = new S("0.0.0");
      if (ge.test($e) || ($e = new S("0.0.0-0"), ge.test($e)))
        return $e;
      $e = null;
      for (var ie = 0; ie < ge.set.length; ++ie) {
        var Q = ge.set[ie];
        Q.forEach(function(X) {
          var ce = new S(X.semver.version);
          switch (X.operator) {
            case ">":
              ce.prerelease.length === 0 ? ce.patch++ : ce.prerelease.push(0), ce.raw = ce.format();
            case "":
            case ">=":
              (!$e || R($e, ce)) && ($e = ce);
              break;
            case "<":
            case "<=":
              break;
            default:
              throw new Error("Unexpected operation: " + X.operator);
          }
        });
      }
      return $e && ge.test($e) ? $e : null;
    }
    t.validRange = Te;
    function Te(ge, pe) {
      try {
        return new ne(ge, pe).range || "*";
      } catch ($e) {
        return null;
      }
    }
    t.ltr = ze;
    function ze(ge, pe, $e) {
      return pt(ge, pe, "<", $e);
    }
    t.gtr = Ze;
    function Ze(ge, pe, $e) {
      return pt(ge, pe, ">", $e);
    }
    t.outside = pt;
    function pt(ge, pe, $e, ie) {
      ge = new S(ge, ie), pe = new ne(pe, ie);
      var Q, X, ce, U, Ee;
      switch ($e) {
        case ">":
          Q = R, X = W, ce = $, U = ">", Ee = ">=";
          break;
        case "<":
          Q = $, X = z, ce = R, U = "<", Ee = "<=";
          break;
        default:
          throw new TypeError('Must provide a hilo val of "<" or ">"');
      }
      if (oe(ge, pe, ie))
        return !1;
      for (var Qe = 0; Qe < pe.set.length; ++Qe) {
        var ft = pe.set[Qe], ht = null, Rt = null;
        if (ft.forEach(function(Ot) {
          Ot.semver === le && (Ot = new G(">=0.0.0")), ht = ht || Ot, Rt = Rt || Ot, Q(Ot.semver, ht.semver, ie) ? ht = Ot : ce(Ot.semver, Rt.semver, ie) && (Rt = Ot);
        }), ht.operator === U || ht.operator === Ee || (!Rt.operator || Rt.operator === U) && X(ge, Rt.semver))
          return !1;
        if (Rt.operator === Ee && ce(ge, Rt.semver))
          return !1;
      }
      return !0;
    }
    t.prerelease = ut;
    function ut(ge, pe) {
      var $e = y(ge, pe);
      return $e && $e.prerelease.length ? $e.prerelease : null;
    }
    t.intersects = bt;
    function bt(ge, pe, $e) {
      return ge = new ne(ge, $e), pe = new ne(pe, $e), ge.intersects(pe);
    }
    t.coerce = vt;
    function vt(ge, pe) {
      if (ge instanceof S)
        return ge;
      if (typeof ge == "number" && (ge = String(ge)), typeof ge != "string")
        return null;
      pe = pe || {};
      var $e = null;
      if (!pe.rtl)
        $e = ge.match(a[l.COERCE]);
      else {
        for (var ie; (ie = a[l.COERCERTL].exec(ge)) && (!$e || $e.index + $e[0].length !== ge.length); )
          (!$e || ie.index + ie[0].length !== $e.index + $e[0].length) && ($e = ie), a[l.COERCERTL].lastIndex = ie.index + ie[1].length + ie[2].length;
        a[l.COERCERTL].lastIndex = -1;
      }
      return $e === null ? null : y($e[2] + "." + ($e[3] || "0") + "." + ($e[4] || "0"), pe);
    }
  }(p1, p1.exports)), p1.exports;
}
Object.defineProperty(wg, "__esModule", {
  value: !0
});
wg.default = void 0;
function w0() {
  const e = Cde();
  return w0 = function() {
    return e;
  }, e;
}
function QF() {
  const e = yp();
  return QF = function() {
    return e;
  }, e;
}
function kde() {
  const e = _de();
  return kde = function() {
    return e;
  }, e;
}
function Ode() {
  const e = Ui();
  return Ode = function() {
    return e;
  }, e;
}
function Nde() {
  const e = REt();
  return Nde = function() {
    return e;
  }, e;
}
function EP() {
  const e = Ide();
  return EP = function() {
    return e;
  }, e;
}
const {
  cloneNode: BEt,
  interpreterDirective: FEt
} = Ode(), jEt = {
  enter(e, t) {
    const r = e.node.loc;
    r && (t.loc = r, e.stop());
  }
};
let $Et = class Dde {
  constructor(t, {
    code: r,
    ast: i,
    inputMap: n
  }) {
    this._map = /* @__PURE__ */ new Map(), this.opts = void 0, this.declarations = {}, this.path = void 0, this.ast = void 0, this.scope = void 0, this.metadata = {}, this.code = "", this.inputMap = void 0, this.hub = {
      file: this,
      getCode: () => this.code,
      getScope: () => this.scope,
      addHelper: this.addHelper.bind(this),
      buildError: this.buildCodeFrameError.bind(this)
    }, this.opts = t, this.code = r, this.ast = i, this.inputMap = n, this.path = QF().NodePath.get({
      hub: this.hub,
      parentPath: null,
      parent: this.ast,
      container: this.ast,
      key: "program"
    }).setContext(), this.scope = this.path.scope;
  }
  get shebang() {
    const {
      interpreter: t
    } = this.path.node;
    return t ? t.value : "";
  }
  set shebang(t) {
    t ? this.path.get("interpreter").replaceWith(FEt(t)) : this.path.get("interpreter").remove();
  }
  set(t, r) {
    if (t === "helpersNamespace")
      throw new Error("Babel 7.0.0-beta.56 has dropped support for the 'helpersNamespace' utility.If you are using @babel/plugin-external-helpers you will need to use a newer version than the one you currently have installed. If you have your own implementation, you'll want to explore using 'helperGenerator' alongside 'file.availableHelper()'.");
    this._map.set(t, r);
  }
  get(t) {
    return this._map.get(t);
  }
  has(t) {
    return this._map.has(t);
  }
  getModuleName() {
    return (0, Nde().getModuleName)(this.opts, this.opts);
  }
  addImport() {
    throw new Error("This API has been removed. If you're looking for this functionality in Babel 7, you should import the '@babel/helper-module-imports' module and use the functions exposed  from that module, such as 'addNamed' or 'addDefault'.");
  }
  availableHelper(t, r) {
    let i;
    try {
      i = w0().minVersion(t);
    } catch (n) {
      if (n.code !== "BABEL_HELPER_UNKNOWN")
        throw n;
      return !1;
    }
    return typeof r != "string" ? !0 : (EP().valid(r) && (r = "^".concat(r)), !EP().intersects("<".concat(i), r) && !EP().intersects(">=8.0.0", r));
  }
  addHelper(t) {
    const r = this.declarations[t];
    if (r)
      return BEt(r);
    const i = this.get("helperGenerator");
    if (i) {
      const l = i(t);
      if (l)
        return l;
    }
    w0().ensure(t, Dde);
    const n = this.declarations[t] = this.scope.generateUidIdentifier(t), s = {};
    for (const l of w0().getDependencies(t))
      s[l] = this.addHelper(l);
    const {
      nodes: a,
      globals: o
    } = w0().get(t, (l) => s[l], n, Object.keys(this.scope.getAllBindings()));
    return o.forEach((l) => {
      this.path.scope.hasBinding(l, !0) && this.path.scope.rename(l);
    }), a.forEach((l) => {
      l._compact = !0;
    }), this.path.unshiftContainer("body", a), this.path.get("body").forEach((l) => {
      a.indexOf(l.node) !== -1 && l.isVariableDeclaration() && this.scope.registerDeclaration(l);
    }), n;
  }
  addTemplateObject() {
    throw new Error("This function has been moved into the template literal transform itself.");
  }
  buildCodeFrameError(t, r, i = SyntaxError) {
    let n = t && (t.loc || t._loc);
    if (!n && t) {
      const s = {
        loc: null
      };
      (0, QF().default)(t, jEt, this.scope, s), n = s.loc;
      let a = "This is an error on an internal node. Probably an internal error.";
      n && (a += " Location has been estimated."), r += " (".concat(a, ")");
    }
    if (n) {
      const {
        highlightCode: s = !0
      } = this.opts;
      r += "\n" + (0, kde().codeFrameColumns)(this.code, {
        start: {
          line: n.start.line,
          column: n.start.column + 1
        },
        end: n.end && n.start.line === n.end.line ? {
          line: n.end.line,
          column: n.end.column + 1
        } : void 0
      }, {
        highlightCode: s
      });
    }
    return new i(r);
  }
};
wg.default = $Et;
var c5 = {};
Object.defineProperty(c5, "__esModule", {
  value: !0
});
c5.default = i1t;
function PP() {
  const e = Cde();
  return PP = function() {
    return e;
  }, e;
}
function Lde() {
  const e = C9();
  return Lde = function() {
    return e;
  }, e;
}
function Mde() {
  const e = rn;
  return Mde = function() {
    return e;
  }, e;
}
function Rde() {
  const e = Ui();
  return Rde = function() {
    return e;
  }, e;
}
var UEt = wg;
const {
  arrayExpression: qEt,
  assignmentExpression: Bde,
  binaryExpression: VEt,
  blockStatement: WEt,
  callExpression: HEt,
  cloneNode: KEt,
  conditionalExpression: zEt,
  exportNamedDeclaration: GEt,
  exportSpecifier: YEt,
  expressionStatement: Fde,
  functionExpression: XEt,
  identifier: Ms,
  memberExpression: p5,
  objectExpression: f5,
  program: X_,
  stringLiteral: jde,
  unaryExpression: JEt,
  variableDeclaration: h5,
  variableDeclarator: d5
} = Rde();
var vae;
const QEt = (e) => Mde().default.statement(vae || (vae = at(['\n    (function (root, factory) {\n      if (typeof define === "function" && define.amd) {\n        define(AMD_ARGUMENTS, factory);\n      } else if (typeof exports === "object") {\n        factory(COMMON_ARGUMENTS);\n      } else {\n        factory(BROWSER_ARGUMENTS);\n      }\n    })(UMD_ROOT, function (FACTORY_PARAMETERS) {\n      FACTORY_BODY\n    });\n  '])))(e);
function ZEt(e) {
  const t = Ms("babelHelpers"), r = [], i = XEt(null, [Ms("global")], WEt(r)), n = X_([Fde(HEt(i, [zEt(VEt("===", JEt("typeof", Ms("global")), jde("undefined")), Ms("self"), Ms("global"))]))]);
  return r.push(h5("var", [d5(t, Bde("=", p5(Ms("global"), t), f5([])))])), J_(r, t, e), n;
}
function e1t(e) {
  const t = [], r = J_(t, null, e);
  return t.unshift(GEt(null, Object.keys(r).map((i) => YEt(KEt(r[i]), Ms(i))))), X_(t, [], "module");
}
function t1t(e) {
  const t = Ms("babelHelpers"), r = [];
  return r.push(h5("var", [d5(t, Ms("global"))])), J_(r, t, e), X_([QEt({
    FACTORY_PARAMETERS: Ms("global"),
    BROWSER_ARGUMENTS: Bde("=", p5(Ms("root"), t), f5([])),
    COMMON_ARGUMENTS: Ms("exports"),
    AMD_ARGUMENTS: qEt([jde("exports")]),
    FACTORY_BODY: r,
    UMD_ROOT: Ms("this")
  })]);
}
function r1t(e) {
  const t = Ms("babelHelpers"), r = [];
  r.push(h5("var", [d5(t, f5([]))]));
  const i = X_(r);
  return J_(r, t, e), r.push(Fde(t)), i;
}
function J_(e, t, r) {
  const i = (s) => t ? p5(t, Ms(s)) : Ms("_".concat(s)), n = {};
  return PP().list.forEach(function(s) {
    if (r && r.indexOf(s) < 0)
      return;
    const a = n[s] = i(s);
    PP().ensure(s, UEt.default);
    const {
      nodes: o
    } = PP().get(s, i, a);
    e.push(...o);
  }), n;
}
function i1t(e, t = "global") {
  let r;
  const i = {
    global: ZEt,
    module: e1t,
    umd: t1t,
    var: r1t
  }[t];
  if (i)
    r = i(e);
  else
    throw new Error("Unsupported output type ".concat(t));
  return (0, Lde().default)(r).code;
}
var Ps = {};
Object.defineProperty(Ps, "__esModule", {
  value: !0
});
Ps.ROOT_CONFIG_FILENAMES = void 0;
Ps.findConfigUpwards = n1t;
Ps.findPackageData = s1t;
Ps.findRelativeConfig = a1t;
Ps.findRootConfig = o1t;
Ps.loadConfig = l1t;
Ps.loadPlugin = h1t;
Ps.loadPreset = d1t;
Ps.resolvePlugin = p1t;
Ps.resolvePreset = f1t;
Ps.resolveShowConfigPath = u1t;
function n1t(e) {
  return null;
}
function* s1t(e) {
  return {
    filepath: e,
    directories: [],
    pkg: null,
    isPackage: !1
  };
}
function* a1t(e, t, r) {
  return {
    config: null,
    ignore: null
  };
}
function* o1t(e, t, r) {
  return null;
}
function* l1t(e, t, r, i) {
  throw new Error("Cannot load ".concat(e, " relative to ").concat(t, " in a browser"));
}
function* u1t(e) {
  return null;
}
const c1t = [];
Ps.ROOT_CONFIG_FILENAMES = c1t;
function p1t(e, t) {
  return null;
}
function f1t(e, t) {
  return null;
}
function h1t(e, t) {
  throw new Error("Cannot load plugin ".concat(e, " relative to ").concat(t, " in a browser"));
}
function d1t(e, t) {
  throw new Error("Cannot load preset ".concat(e, " relative to ").concat(t, " in a browser"));
}
var Q_ = {};
Object.defineProperty(Q_, "__esModule", {
  value: !0
});
Q_.getEnv = m1t;
function m1t(e = "development") {
  return process.env.BABEL_ENV || process.env.NODE_ENV || e;
}
var $R = {}, UR, rJ;
function gp() {
  if (rJ)
    return UR;
  rJ = 1;
  const e = Symbol.for("gensync:v1:start"), t = Symbol.for("gensync:v1:suspend"), r = "GENSYNC_EXPECTED_START", i = "GENSYNC_EXPECTED_SUSPEND", n = "GENSYNC_OPTIONS_ERROR", s = "GENSYNC_RACE_NONEMPTY", a = "GENSYNC_ERRBACK_NO_CALLBACK";
  UR = Object.assign(
    function(x) {
      let C = x;
      return typeof x != "function" ? C = c(x) : C = f(x), Object.assign(C, o(C));
    },
    {
      all: h({
        name: "all",
        arity: 1,
        sync: function(P) {
          return Array.from(P[0]).map((C) => m(C));
        },
        async: function(P, x, C) {
          const D = Array.from(P[0]);
          if (D.length === 0) {
            Promise.resolve().then(() => x([]));
            return;
          }
          let w = 0;
          const A = D.map(() => {
          });
          D.forEach((I, L) => {
            g(
              I,
              (O) => {
                A[L] = O, w += 1, w === A.length && x(A);
              },
              C
            );
          });
        }
      }),
      race: h({
        name: "race",
        arity: 1,
        sync: function(P) {
          const x = Array.from(P[0]);
          if (x.length === 0)
            throw u("Must race at least 1 item", s);
          return m(x[0]);
        },
        async: function(P, x, C) {
          const D = Array.from(P[0]);
          if (D.length === 0)
            throw u("Must race at least 1 item", s);
          for (const w of D)
            g(w, x, C);
        }
      })
    }
  );
  function o(P) {
    return {
      sync: function(...C) {
        return m(P.apply(this, C));
      },
      async: function(...C) {
        return new Promise((D, w) => {
          g(P.apply(this, C), D, w);
        });
      },
      errback: function(...C) {
        const D = C.pop();
        if (typeof D != "function")
          throw u(
            "Asynchronous function called without callback",
            a
          );
        let w;
        try {
          w = P.apply(this, C);
        } catch (A) {
          D(A);
          return;
        }
        g(w, (A) => D(void 0, A), (A) => D(A));
      }
    };
  }
  function l(P, x, C, D) {
    if (typeof C === P || D && typeof C == "undefined")
      return;
    let w;
    throw D ? w = "Expected opts.".concat(x, " to be either a ").concat(P, ", or undefined.") : w = "Expected opts.".concat(x, " to be a ").concat(P, "."), u(w, n);
  }
  function u(P, x) {
    return Object.assign(new Error(P), { code: x });
  }
  function c({ name: P, arity: x, sync: C, async: D, errback: w }) {
    if (l(
      "string",
      "name",
      P,
      !0
      /* allowUndefined */
    ), l(
      "number",
      "arity",
      x,
      !0
      /* allowUndefined */
    ), l("function", "sync", C), l(
      "function",
      "async",
      D,
      !0
      /* allowUndefined */
    ), l(
      "function",
      "errback",
      w,
      !0
      /* allowUndefined */
    ), D && w)
      throw u(
        "Expected one of either opts.async or opts.errback, but got _both_.",
        n
      );
    if (typeof P != "string") {
      let A;
      w && w.name && w.name !== "errback" && (A = w.name), D && D.name && D.name !== "async" && (A = D.name.replace(/Async$/, "")), C && C.name && C.name !== "sync" && (A = C.name.replace(/Sync$/, "")), typeof A == "string" && (P = A);
    }
    return typeof x != "number" && (x = C.length), h({
      name: P,
      arity: x,
      sync: function(A) {
        return C.apply(this, A);
      },
      async: function(A, I, L) {
        D ? D.apply(this, A).then(I, L) : w ? w.call(this, ...A, (O, F) => {
          O == null ? I(F) : L(O);
        }) : I(C.apply(this, A));
      }
    });
  }
  function f(P) {
    return S(P.name, P.length, function(...x) {
      return P.apply(this, x);
    });
  }
  function h({ name: P, arity: x, sync: C, async: D }) {
    return S(P, x, function* (...w) {
      const A = yield e;
      if (!A)
        return C.call(this, w);
      let I;
      try {
        D.call(
          this,
          w,
          (L) => {
            I || (I = { value: L }, A());
          },
          (L) => {
            I || (I = { err: L }, A());
          }
        );
      } catch (L) {
        I = { err: L }, A();
      }
      if (yield t, I.hasOwnProperty("err"))
        throw I.err;
      return I.value;
    });
  }
  function m(P) {
    let x;
    for (; !({ value: x } = P.next()).done; )
      y(x, P);
    return x;
  }
  function g(P, x, C) {
    (function D() {
      try {
        let w;
        for (; !({ value: w } = P.next()).done; ) {
          y(w, P);
          let A = !0, I = !1;
          const L = P.next(() => {
            A ? I = !0 : D();
          });
          if (A = !1, v(L, P), !I)
            return;
        }
        return x(w);
      } catch (w) {
        return C(w);
      }
    })();
  }
  function y(P, x) {
    P !== e && T(
      x,
      u(
        "Got unexpected yielded value in gensync generator: ".concat(JSON.stringify(
          P
        ), ". Did you perhaps mean to use 'yield*' instead of 'yield'?"),
        r
      )
    );
  }
  function v({ value: P, done: x }, C) {
    !x && P === t || T(
      C,
      u(
        x ? "Unexpected generator completion. If you get this, it is probably a gensync bug." : "Expected GENSYNC_SUSPEND, got ".concat(JSON.stringify(
          P
        ), ". If you get this, it is probably a gensync bug."),
        i
      )
    );
  }
  function T(P, x) {
    throw P.throw && P.throw(x), x;
  }
  function S(P, x, C) {
    if (typeof P == "string") {
      const D = Object.getOwnPropertyDescriptor(C, "name");
      (!D || D.configurable) && Object.defineProperty(
        C,
        "name",
        Object.assign(D || {}, {
          configurable: !0,
          value: P
        })
      );
    }
    if (typeof x == "number") {
      const D = Object.getOwnPropertyDescriptor(C, "length");
      (!D || D.configurable) && Object.defineProperty(
        C,
        "length",
        Object.assign(D || {}, {
          configurable: !0,
          value: x
        })
      );
    }
    return C;
  }
  return UR;
}
var Yb = {}, Co = {};
Object.defineProperty(Co, "__esModule", {
  value: !0
});
Co.forwardAsync = v1t;
Co.isAsync = void 0;
Co.isThenable = Ude;
Co.maybeAsync = g1t;
Co.waitFor = Co.onFirstPause = void 0;
function zh() {
  const e = gp();
  return zh = function() {
    return e;
  }, e;
}
function iJ(e, t, r, i, n, s, a) {
  try {
    var o = e[s](a), l = o.value;
  } catch (u) {
    r(u);
    return;
  }
  o.done ? t(l) : Promise.resolve(l).then(i, n);
}
function $de(e) {
  return function() {
    var t = this, r = arguments;
    return new Promise(function(i, n) {
      var s = e.apply(t, r);
      function a(l) {
        iJ(s, i, n, a, o, "next", l);
      }
      function o(l) {
        iJ(s, i, n, a, o, "throw", l);
      }
      a(void 0);
    });
  };
}
const nJ = zh()(function* (e) {
  return yield* e;
}), y1t = zh()({
  sync: () => !1,
  errback: (e) => e(null, !0)
});
Co.isAsync = y1t;
function g1t(e, t) {
  return zh()({
    sync(...r) {
      const i = e.apply(this, r);
      if (Ude(i))
        throw new Error(t);
      return i;
    },
    async(...r) {
      return Promise.resolve(e.apply(this, r));
    }
  });
}
const b1t = zh()({
  sync: (e) => e("sync"),
  async: function() {
    var e = $de(function* (t) {
      return t("async");
    });
    return function(r) {
      return e.apply(this, arguments);
    };
  }()
});
function v1t(e, t) {
  const r = zh()(e);
  return b1t((i) => {
    const n = r[i];
    return t(n);
  });
}
const T1t = zh()({
  name: "onFirstPause",
  arity: 2,
  sync: function(e) {
    return nJ.sync(e);
  },
  errback: function(e, t, r) {
    let i = !1;
    nJ.errback(e, (n, s) => {
      i = !0, r(n, s);
    }), i || t();
  }
});
Co.onFirstPause = T1t;
const S1t = zh()({
  sync: (e) => e,
  async: function() {
    var e = $de(function* (t) {
      return t;
    });
    return function(r) {
      return e.apply(this, arguments);
    };
  }()
});
Co.waitFor = S1t;
function Ude(e) {
  return !!e && (typeof e == "object" || typeof e == "function") && !!e.then && typeof e.then == "function";
}
var Ig = {};
Object.defineProperty(Ig, "__esModule", {
  value: !0
});
Ig.isIterableIterator = P1t;
Ig.mergeOptions = x1t;
function x1t(e, t) {
  for (const r of Object.keys(t))
    if ((r === "parserOpts" || r === "generatorOpts" || r === "assumptions") && t[r]) {
      const i = t[r], n = e[r] || (e[r] = {});
      E1t(n, i);
    } else {
      const i = t[r];
      i !== void 0 && (e[r] = i);
    }
}
function E1t(e, t) {
  for (const r of Object.keys(t)) {
    const i = t[r];
    i !== void 0 && (e[r] = i);
  }
}
function P1t(e) {
  return !!e && typeof e.next == "function" && typeof e[Symbol.iterator] == "function";
}
var kg = {}, Og = {};
Object.defineProperty(Og, "__esModule", {
  value: !0
});
Og.finalize = w1t;
Og.flattenToSet = A1t;
function w1t(e) {
  return Object.freeze(e);
}
function A1t(e) {
  const t = /* @__PURE__ */ new Set(), r = [e];
  for (; r.length > 0; )
    for (const i of r.pop())
      Array.isArray(i) ? r.push(i) : t.add(i);
  return t;
}
Object.defineProperty(kg, "__esModule", {
  value: !0
});
kg.default = void 0;
var C1t = Og;
class _1t {
  constructor(t, r, i, n = (0, C1t.finalize)([])) {
    this.key = void 0, this.manipulateOptions = void 0, this.post = void 0, this.pre = void 0, this.visitor = void 0, this.parserOverride = void 0, this.generatorOverride = void 0, this.options = void 0, this.externalDependencies = void 0, this.key = t.name || i, this.manipulateOptions = t.manipulateOptions, this.post = t.post, this.pre = t.pre, this.visitor = t.visitor || {}, this.parserOverride = t.parserOverride, this.generatorOverride = t.generatorOverride, this.options = r, this.externalDependencies = n;
  }
}
kg.default = _1t;
var jm = {}, $m = {}, m5 = {};
Object.defineProperty(m5, "__esModule", {
  value: !0
});
m5.once = I1t;
var sJ = Co;
function I1t(e) {
  let t, r;
  return function* () {
    if (t)
      return t;
    if (!(yield* (0, sJ.isAsync)()))
      return t = yield* e();
    if (r)
      return yield* (0, sJ.waitFor)(r);
    let i, n;
    r = new Promise((s, a) => {
      i = s, n = a;
    });
    try {
      return t = yield* e(), r = null, i(t), t;
    } catch (s) {
      throw n(s), s;
    }
  };
}
var bp = {};
Object.defineProperty(bp, "__esModule", {
  value: !0
});
bp.assertSimpleType = wP;
bp.makeStrongCache = Hde;
bp.makeStrongCacheSync = D1t;
bp.makeWeakCache = Wde;
bp.makeWeakCacheSync = N1t;
function qde() {
  const e = gp();
  return qde = function() {
    return e;
  }, e;
}
var Zy = Co, k1t = Ig;
const Vde = (e) => qde()(e).sync;
function* O1t() {
  return !0;
}
function Wde(e) {
  return Kde(WeakMap, e);
}
function N1t(e) {
  return Vde(Wde(e));
}
function Hde(e) {
  return Kde(Map, e);
}
function D1t(e) {
  return Vde(Hde(e));
}
function Kde(e, t) {
  const r = new e(), i = new e(), n = new e();
  return function* (a, o) {
    const l = yield* (0, Zy.isAsync)(), u = l ? i : r, c = yield* L1t(l, u, n, a, o);
    if (c.valid)
      return c.value;
    const f = new R1t(o), h = t(a, f);
    let m, g;
    return (0, k1t.isIterableIterator)(h) ? g = yield* (0, Zy.onFirstPause)(h, () => {
      m = M1t(f, n, a);
    }) : g = h, zde(u, f, a, g), m && (n.delete(a), m.release(g)), g;
  };
}
function* aJ(e, t, r) {
  const i = e.get(t);
  if (i) {
    for (const {
      value: n,
      valid: s
    } of i)
      if (yield* s(r))
        return {
          valid: !0,
          value: n
        };
  }
  return {
    valid: !1,
    value: null
  };
}
function* L1t(e, t, r, i, n) {
  const s = yield* aJ(t, i, n);
  if (s.valid)
    return s;
  if (e) {
    const a = yield* aJ(r, i, n);
    if (a.valid)
      return {
        valid: !0,
        value: yield* (0, Zy.waitFor)(a.value.promise)
      };
  }
  return {
    valid: !1,
    value: null
  };
}
function M1t(e, t, r) {
  const i = new F1t();
  return zde(t, e, r, i), i;
}
function zde(e, t, r, i) {
  t.configured() || t.forever();
  let n = e.get(r);
  switch (t.deactivate(), t.mode()) {
    case "forever":
      n = [{
        value: i,
        valid: O1t
      }], e.set(r, n);
      break;
    case "invalidate":
      n = [{
        value: i,
        valid: t.validator()
      }], e.set(r, n);
      break;
    case "valid":
      n ? n.push({
        value: i,
        valid: t.validator()
      }) : (n = [{
        value: i,
        valid: t.validator()
      }], e.set(r, n));
  }
}
class R1t {
  constructor(t) {
    this._active = !0, this._never = !1, this._forever = !1, this._invalidate = !1, this._configured = !1, this._pairs = [], this._data = void 0, this._data = t;
  }
  simple() {
    return B1t(this);
  }
  mode() {
    return this._never ? "never" : this._forever ? "forever" : this._invalidate ? "invalidate" : "valid";
  }
  forever() {
    if (!this._active)
      throw new Error("Cannot change caching after evaluation has completed.");
    if (this._never)
      throw new Error("Caching has already been configured with .never()");
    this._forever = !0, this._configured = !0;
  }
  never() {
    if (!this._active)
      throw new Error("Cannot change caching after evaluation has completed.");
    if (this._forever)
      throw new Error("Caching has already been configured with .forever()");
    this._never = !0, this._configured = !0;
  }
  using(t) {
    if (!this._active)
      throw new Error("Cannot change caching after evaluation has completed.");
    if (this._never || this._forever)
      throw new Error("Caching has already been configured with .never or .forever()");
    this._configured = !0;
    const r = t(this._data), i = (0, Zy.maybeAsync)(t, "You appear to be using an async cache handler, but Babel has been called synchronously");
    return (0, Zy.isThenable)(r) ? r.then((n) => (this._pairs.push([n, i]), n)) : (this._pairs.push([r, i]), r);
  }
  invalidate(t) {
    return this._invalidate = !0, this.using(t);
  }
  validator() {
    const t = this._pairs;
    return function* (r) {
      for (const [i, n] of t)
        if (i !== (yield* n(r)))
          return !1;
      return !0;
    };
  }
  deactivate() {
    this._active = !1;
  }
  configured() {
    return this._configured;
  }
}
function B1t(e) {
  function t(r) {
    if (typeof r == "boolean") {
      r ? e.forever() : e.never();
      return;
    }
    return e.using(() => wP(r()));
  }
  return t.forever = () => e.forever(), t.never = () => e.never(), t.using = (r) => e.using(() => wP(r())), t.invalidate = (r) => e.invalidate(() => wP(r())), t;
}
function wP(e) {
  if ((0, Zy.isThenable)(e))
    throw new Error("You appear to be using an async cache handler, which your current version of Babel does not support. We may add support for this in the future, but if you're on the most recent version of @babel/core and still seeing this error, then you'll need to synchronously handle your caching logic.");
  if (e != null && typeof e != "string" && typeof e != "boolean" && typeof e != "number")
    throw new Error("Cache keys must be either string, boolean, number, null, or undefined.");
  return e;
}
class F1t {
  constructor() {
    this.released = !1, this.promise = void 0, this._resolve = void 0, this.promise = new Promise((t) => {
      this._resolve = t;
    });
  }
  release(t) {
    this.released = !0, this._resolve(t);
  }
}
var nS = {}, qR = {};
const j1t = [
  {
    name: "nodejs",
    version: "0.2.0",
    date: "2011-08-26",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "0.3.0",
    date: "2011-08-26",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "0.4.0",
    date: "2011-08-26",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "0.5.0",
    date: "2011-08-26",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "0.6.0",
    date: "2011-11-04",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "0.7.0",
    date: "2012-01-17",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "0.8.0",
    date: "2012-06-22",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "0.9.0",
    date: "2012-07-20",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "0.10.0",
    date: "2013-03-11",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "0.11.0",
    date: "2013-03-28",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "0.12.0",
    date: "2015-02-06",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "4.0.0",
    date: "2015-09-08",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "4.1.0",
    date: "2015-09-17",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "4.2.0",
    date: "2015-10-12",
    lts: "Argon",
    security: !1
  },
  {
    name: "nodejs",
    version: "4.3.0",
    date: "2016-02-09",
    lts: "Argon",
    security: !1
  },
  {
    name: "nodejs",
    version: "4.4.0",
    date: "2016-03-08",
    lts: "Argon",
    security: !1
  },
  {
    name: "nodejs",
    version: "4.5.0",
    date: "2016-08-16",
    lts: "Argon",
    security: !1
  },
  {
    name: "nodejs",
    version: "4.6.0",
    date: "2016-09-27",
    lts: "Argon",
    security: !0
  },
  {
    name: "nodejs",
    version: "4.7.0",
    date: "2016-12-06",
    lts: "Argon",
    security: !1
  },
  {
    name: "nodejs",
    version: "4.8.0",
    date: "2017-02-21",
    lts: "Argon",
    security: !1
  },
  {
    name: "nodejs",
    version: "4.9.0",
    date: "2018-03-28",
    lts: "Argon",
    security: !0
  },
  {
    name: "nodejs",
    version: "5.0.0",
    date: "2015-10-29",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "5.1.0",
    date: "2015-11-17",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "5.2.0",
    date: "2015-12-09",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "5.3.0",
    date: "2015-12-15",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "5.4.0",
    date: "2016-01-06",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "5.5.0",
    date: "2016-01-21",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "5.6.0",
    date: "2016-02-09",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "5.7.0",
    date: "2016-02-23",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "5.8.0",
    date: "2016-03-09",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "5.9.0",
    date: "2016-03-16",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "5.10.0",
    date: "2016-04-01",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "5.11.0",
    date: "2016-04-21",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "5.12.0",
    date: "2016-06-23",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "6.0.0",
    date: "2016-04-26",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "6.1.0",
    date: "2016-05-05",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "6.2.0",
    date: "2016-05-17",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "6.3.0",
    date: "2016-07-06",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "6.4.0",
    date: "2016-08-12",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "6.5.0",
    date: "2016-08-26",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "6.6.0",
    date: "2016-09-14",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "6.7.0",
    date: "2016-09-27",
    lts: !1,
    security: !0
  },
  {
    name: "nodejs",
    version: "6.8.0",
    date: "2016-10-12",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "6.9.0",
    date: "2016-10-18",
    lts: "Boron",
    security: !1
  },
  {
    name: "nodejs",
    version: "6.10.0",
    date: "2017-02-21",
    lts: "Boron",
    security: !1
  },
  {
    name: "nodejs",
    version: "6.11.0",
    date: "2017-06-06",
    lts: "Boron",
    security: !1
  },
  {
    name: "nodejs",
    version: "6.12.0",
    date: "2017-11-06",
    lts: "Boron",
    security: !1
  },
  {
    name: "nodejs",
    version: "6.13.0",
    date: "2018-02-10",
    lts: "Boron",
    security: !1
  },
  {
    name: "nodejs",
    version: "6.14.0",
    date: "2018-03-28",
    lts: "Boron",
    security: !0
  },
  {
    name: "nodejs",
    version: "6.15.0",
    date: "2018-11-27",
    lts: "Boron",
    security: !0
  },
  {
    name: "nodejs",
    version: "6.16.0",
    date: "2018-12-26",
    lts: "Boron",
    security: !1
  },
  {
    name: "nodejs",
    version: "6.17.0",
    date: "2019-02-28",
    lts: "Boron",
    security: !0
  },
  {
    name: "nodejs",
    version: "7.0.0",
    date: "2016-10-25",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "7.1.0",
    date: "2016-11-08",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "7.2.0",
    date: "2016-11-22",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "7.3.0",
    date: "2016-12-20",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "7.4.0",
    date: "2017-01-04",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "7.5.0",
    date: "2017-01-31",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "7.6.0",
    date: "2017-02-21",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "7.7.0",
    date: "2017-02-28",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "7.8.0",
    date: "2017-03-29",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "7.9.0",
    date: "2017-04-11",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "7.10.0",
    date: "2017-05-02",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "8.0.0",
    date: "2017-05-30",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "8.1.0",
    date: "2017-06-08",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "8.2.0",
    date: "2017-07-19",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "8.3.0",
    date: "2017-08-08",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "8.4.0",
    date: "2017-08-15",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "8.5.0",
    date: "2017-09-12",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "8.6.0",
    date: "2017-09-26",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "8.7.0",
    date: "2017-10-11",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "8.8.0",
    date: "2017-10-24",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "8.9.0",
    date: "2017-10-31",
    lts: "Carbon",
    security: !1
  },
  {
    name: "nodejs",
    version: "8.10.0",
    date: "2018-03-06",
    lts: "Carbon",
    security: !1
  },
  {
    name: "nodejs",
    version: "8.11.0",
    date: "2018-03-28",
    lts: "Carbon",
    security: !0
  },
  {
    name: "nodejs",
    version: "8.12.0",
    date: "2018-09-10",
    lts: "Carbon",
    security: !1
  },
  {
    name: "nodejs",
    version: "8.13.0",
    date: "2018-11-20",
    lts: "Carbon",
    security: !1
  },
  {
    name: "nodejs",
    version: "8.14.0",
    date: "2018-11-27",
    lts: "Carbon",
    security: !0
  },
  {
    name: "nodejs",
    version: "8.15.0",
    date: "2018-12-26",
    lts: "Carbon",
    security: !1
  },
  {
    name: "nodejs",
    version: "8.16.0",
    date: "2019-04-16",
    lts: "Carbon",
    security: !1
  },
  {
    name: "nodejs",
    version: "8.17.0",
    date: "2019-12-17",
    lts: "Carbon",
    security: !0
  },
  {
    name: "nodejs",
    version: "9.0.0",
    date: "2017-10-31",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "9.1.0",
    date: "2017-11-07",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "9.2.0",
    date: "2017-11-14",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "9.3.0",
    date: "2017-12-12",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "9.4.0",
    date: "2018-01-10",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "9.5.0",
    date: "2018-01-31",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "9.6.0",
    date: "2018-02-21",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "9.7.0",
    date: "2018-03-01",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "9.8.0",
    date: "2018-03-07",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "9.9.0",
    date: "2018-03-21",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "9.10.0",
    date: "2018-03-28",
    lts: !1,
    security: !0
  },
  {
    name: "nodejs",
    version: "9.11.0",
    date: "2018-04-04",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "10.0.0",
    date: "2018-04-24",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "10.1.0",
    date: "2018-05-08",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "10.2.0",
    date: "2018-05-23",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "10.3.0",
    date: "2018-05-29",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "10.4.0",
    date: "2018-06-06",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "10.5.0",
    date: "2018-06-20",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "10.6.0",
    date: "2018-07-04",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "10.7.0",
    date: "2018-07-18",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "10.8.0",
    date: "2018-08-01",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "10.9.0",
    date: "2018-08-15",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "10.10.0",
    date: "2018-09-06",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "10.11.0",
    date: "2018-09-19",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "10.12.0",
    date: "2018-10-10",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "10.13.0",
    date: "2018-10-30",
    lts: "Dubnium",
    security: !1
  },
  {
    name: "nodejs",
    version: "10.14.0",
    date: "2018-11-27",
    lts: "Dubnium",
    security: !0
  },
  {
    name: "nodejs",
    version: "10.15.0",
    date: "2018-12-26",
    lts: "Dubnium",
    security: !1
  },
  {
    name: "nodejs",
    version: "10.16.0",
    date: "2019-05-28",
    lts: "Dubnium",
    security: !1
  },
  {
    name: "nodejs",
    version: "10.17.0",
    date: "2019-10-22",
    lts: "Dubnium",
    security: !1
  },
  {
    name: "nodejs",
    version: "10.18.0",
    date: "2019-12-17",
    lts: "Dubnium",
    security: !0
  },
  {
    name: "nodejs",
    version: "10.19.0",
    date: "2020-02-05",
    lts: "Dubnium",
    security: !0
  },
  {
    name: "nodejs",
    version: "10.20.0",
    date: "2020-03-26",
    lts: "Dubnium",
    security: !1
  },
  {
    name: "nodejs",
    version: "10.21.0",
    date: "2020-06-02",
    lts: "Dubnium",
    security: !0
  },
  {
    name: "nodejs",
    version: "10.22.0",
    date: "2020-07-21",
    lts: "Dubnium",
    security: !1
  },
  {
    name: "nodejs",
    version: "10.23.0",
    date: "2020-10-27",
    lts: "Dubnium",
    security: !1
  },
  {
    name: "nodejs",
    version: "10.24.0",
    date: "2021-02-23",
    lts: "Dubnium",
    security: !0
  },
  {
    name: "nodejs",
    version: "11.0.0",
    date: "2018-10-23",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "11.1.0",
    date: "2018-10-30",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "11.2.0",
    date: "2018-11-15",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "11.3.0",
    date: "2018-11-27",
    lts: !1,
    security: !0
  },
  {
    name: "nodejs",
    version: "11.4.0",
    date: "2018-12-07",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "11.5.0",
    date: "2018-12-18",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "11.6.0",
    date: "2018-12-26",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "11.7.0",
    date: "2019-01-17",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "11.8.0",
    date: "2019-01-24",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "11.9.0",
    date: "2019-01-30",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "11.10.0",
    date: "2019-02-14",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "11.11.0",
    date: "2019-03-05",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "11.12.0",
    date: "2019-03-14",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "11.13.0",
    date: "2019-03-28",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "11.14.0",
    date: "2019-04-10",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "11.15.0",
    date: "2019-04-30",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "12.0.0",
    date: "2019-04-23",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "12.1.0",
    date: "2019-04-29",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "12.2.0",
    date: "2019-05-07",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "12.3.0",
    date: "2019-05-21",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "12.4.0",
    date: "2019-06-04",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "12.5.0",
    date: "2019-06-26",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "12.6.0",
    date: "2019-07-03",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "12.7.0",
    date: "2019-07-23",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "12.8.0",
    date: "2019-08-06",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "12.9.0",
    date: "2019-08-20",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "12.10.0",
    date: "2019-09-04",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "12.11.0",
    date: "2019-09-25",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "12.12.0",
    date: "2019-10-11",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "12.13.0",
    date: "2019-10-21",
    lts: "Erbium",
    security: !1
  },
  {
    name: "nodejs",
    version: "12.14.0",
    date: "2019-12-17",
    lts: "Erbium",
    security: !0
  },
  {
    name: "nodejs",
    version: "12.15.0",
    date: "2020-02-05",
    lts: "Erbium",
    security: !0
  },
  {
    name: "nodejs",
    version: "12.16.0",
    date: "2020-02-11",
    lts: "Erbium",
    security: !1
  },
  {
    name: "nodejs",
    version: "12.17.0",
    date: "2020-05-26",
    lts: "Erbium",
    security: !1
  },
  {
    name: "nodejs",
    version: "12.18.0",
    date: "2020-06-02",
    lts: "Erbium",
    security: !0
  },
  {
    name: "nodejs",
    version: "12.19.0",
    date: "2020-10-06",
    lts: "Erbium",
    security: !1
  },
  {
    name: "nodejs",
    version: "12.20.0",
    date: "2020-11-24",
    lts: "Erbium",
    security: !1
  },
  {
    name: "nodejs",
    version: "12.21.0",
    date: "2021-02-23",
    lts: "Erbium",
    security: !0
  },
  {
    name: "nodejs",
    version: "12.22.0",
    date: "2021-03-30",
    lts: "Erbium",
    security: !1
  },
  {
    name: "nodejs",
    version: "13.0.0",
    date: "2019-10-22",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "13.1.0",
    date: "2019-11-05",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "13.2.0",
    date: "2019-11-21",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "13.3.0",
    date: "2019-12-03",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "13.4.0",
    date: "2019-12-17",
    lts: !1,
    security: !0
  },
  {
    name: "nodejs",
    version: "13.5.0",
    date: "2019-12-18",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "13.6.0",
    date: "2020-01-07",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "13.7.0",
    date: "2020-01-21",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "13.8.0",
    date: "2020-02-05",
    lts: !1,
    security: !0
  },
  {
    name: "nodejs",
    version: "13.9.0",
    date: "2020-02-18",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "13.10.0",
    date: "2020-03-04",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "13.11.0",
    date: "2020-03-12",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "13.12.0",
    date: "2020-03-26",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "13.13.0",
    date: "2020-04-14",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "13.14.0",
    date: "2020-04-29",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "14.0.0",
    date: "2020-04-21",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "14.1.0",
    date: "2020-04-29",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "14.2.0",
    date: "2020-05-05",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "14.3.0",
    date: "2020-05-19",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "14.4.0",
    date: "2020-06-02",
    lts: !1,
    security: !0
  },
  {
    name: "nodejs",
    version: "14.5.0",
    date: "2020-06-30",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "14.6.0",
    date: "2020-07-20",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "14.7.0",
    date: "2020-07-29",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "14.8.0",
    date: "2020-08-11",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "14.9.0",
    date: "2020-08-27",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "14.10.0",
    date: "2020-09-08",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "14.11.0",
    date: "2020-09-15",
    lts: !1,
    security: !0
  },
  {
    name: "nodejs",
    version: "14.12.0",
    date: "2020-09-22",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "14.13.0",
    date: "2020-09-29",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "14.14.0",
    date: "2020-10-15",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "14.15.0",
    date: "2020-10-27",
    lts: "Fermium",
    security: !1
  },
  {
    name: "nodejs",
    version: "14.16.0",
    date: "2021-02-23",
    lts: "Fermium",
    security: !0
  },
  {
    name: "nodejs",
    version: "14.17.0",
    date: "2021-05-11",
    lts: "Fermium",
    security: !1
  },
  {
    name: "nodejs",
    version: "14.18.0",
    date: "2021-09-28",
    lts: "Fermium",
    security: !1
  },
  {
    name: "nodejs",
    version: "14.19.0",
    date: "2022-02-01",
    lts: "Fermium",
    security: !1
  },
  {
    name: "nodejs",
    version: "14.20.0",
    date: "2022-07-07",
    lts: "Fermium",
    security: !0
  },
  {
    name: "nodejs",
    version: "14.21.0",
    date: "2022-11-01",
    lts: "Fermium",
    security: !1
  },
  {
    name: "nodejs",
    version: "15.0.0",
    date: "2020-10-20",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "15.1.0",
    date: "2020-11-04",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "15.2.0",
    date: "2020-11-10",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "15.3.0",
    date: "2020-11-24",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "15.4.0",
    date: "2020-12-09",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "15.5.0",
    date: "2020-12-22",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "15.6.0",
    date: "2021-01-14",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "15.7.0",
    date: "2021-01-25",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "15.8.0",
    date: "2021-02-02",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "15.9.0",
    date: "2021-02-18",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "15.10.0",
    date: "2021-02-23",
    lts: !1,
    security: !0
  },
  {
    name: "nodejs",
    version: "15.11.0",
    date: "2021-03-03",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "15.12.0",
    date: "2021-03-17",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "15.13.0",
    date: "2021-03-31",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "15.14.0",
    date: "2021-04-06",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "16.0.0",
    date: "2021-04-20",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "16.1.0",
    date: "2021-05-04",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "16.2.0",
    date: "2021-05-19",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "16.3.0",
    date: "2021-06-03",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "16.4.0",
    date: "2021-06-23",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "16.5.0",
    date: "2021-07-14",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "16.6.0",
    date: "2021-07-29",
    lts: !1,
    security: !0
  },
  {
    name: "nodejs",
    version: "16.7.0",
    date: "2021-08-18",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "16.8.0",
    date: "2021-08-25",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "16.9.0",
    date: "2021-09-07",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "16.10.0",
    date: "2021-09-22",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "16.11.0",
    date: "2021-10-08",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "16.12.0",
    date: "2021-10-20",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "16.13.0",
    date: "2021-10-26",
    lts: "Gallium",
    security: !1
  },
  {
    name: "nodejs",
    version: "16.14.0",
    date: "2022-02-08",
    lts: "Gallium",
    security: !1
  },
  {
    name: "nodejs",
    version: "16.15.0",
    date: "2022-04-26",
    lts: "Gallium",
    security: !1
  },
  {
    name: "nodejs",
    version: "16.16.0",
    date: "2022-07-07",
    lts: "Gallium",
    security: !0
  },
  {
    name: "nodejs",
    version: "16.17.0",
    date: "2022-08-16",
    lts: "Gallium",
    security: !1
  },
  {
    name: "nodejs",
    version: "16.18.0",
    date: "2022-10-12",
    lts: "Gallium",
    security: !1
  },
  {
    name: "nodejs",
    version: "16.19.0",
    date: "2022-12-13",
    lts: "Gallium",
    security: !1
  },
  {
    name: "nodejs",
    version: "17.0.0",
    date: "2021-10-19",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "17.1.0",
    date: "2021-11-09",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "17.2.0",
    date: "2021-11-30",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "17.3.0",
    date: "2021-12-17",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "17.4.0",
    date: "2022-01-18",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "17.5.0",
    date: "2022-02-10",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "17.6.0",
    date: "2022-02-22",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "17.7.0",
    date: "2022-03-09",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "17.8.0",
    date: "2022-03-22",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "17.9.0",
    date: "2022-04-07",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "18.0.0",
    date: "2022-04-18",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "18.1.0",
    date: "2022-05-03",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "18.2.0",
    date: "2022-05-17",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "18.3.0",
    date: "2022-06-02",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "18.4.0",
    date: "2022-06-16",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "18.5.0",
    date: "2022-07-06",
    lts: !1,
    security: !0
  },
  {
    name: "nodejs",
    version: "18.6.0",
    date: "2022-07-13",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "18.7.0",
    date: "2022-07-26",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "18.8.0",
    date: "2022-08-24",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "18.9.0",
    date: "2022-09-07",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "18.10.0",
    date: "2022-09-28",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "18.11.0",
    date: "2022-10-13",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "18.12.0",
    date: "2022-10-25",
    lts: "Hydrogen",
    security: !1
  },
  {
    name: "nodejs",
    version: "18.13.0",
    date: "2023-01-05",
    lts: "Hydrogen",
    security: !1
  },
  {
    name: "nodejs",
    version: "18.14.0",
    date: "2023-02-01",
    lts: "Hydrogen",
    security: !1
  },
  {
    name: "nodejs",
    version: "19.0.0",
    date: "2022-10-17",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "19.1.0",
    date: "2022-11-14",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "19.2.0",
    date: "2022-11-29",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "19.3.0",
    date: "2022-12-14",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "19.4.0",
    date: "2023-01-05",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "19.5.0",
    date: "2023-01-24",
    lts: !1,
    security: !1
  },
  {
    name: "nodejs",
    version: "19.6.0",
    date: "2023-02-01",
    lts: !1,
    security: !1
  }
];
var VR = {}, WR = {}, HR, oJ;
function $1t() {
  return oJ || (oJ = 1, HR = { A: "ie", B: "edge", C: "firefox", D: "chrome", E: "safari", F: "opera", G: "ios_saf", H: "op_mini", I: "android", J: "bb", K: "op_mob", L: "and_chr", M: "and_ff", N: "ie_mob", O: "and_uc", P: "samsung", Q: "and_qq", R: "baidu", S: "kaios" }), HR;
}
var lJ;
function U1t() {
  return lJ || (lJ = 1, WR.browsers = $1t()), WR;
}
var KR = {}, zR, uJ;
function q1t() {
  return uJ || (uJ = 1, zR = { 0: "24", 1: "25", 2: "26", 3: "27", 4: "28", 5: "29", 6: "30", 7: "31", 8: "32", 9: "33", A: "10", B: "11", C: "12", D: "7", E: "8", F: "9", G: "15", H: "110", I: "4", J: "6", K: "13", L: "14", M: "16", N: "17", O: "18", P: "79", Q: "80", R: "81", S: "83", T: "84", U: "85", V: "86", W: "87", X: "88", Y: "89", Z: "90", a: "91", b: "92", c: "93", d: "94", e: "95", f: "109", g: "20", h: "73", i: "96", j: "97", k: "98", l: "99", m: "100", n: "101", o: "102", p: "103", q: "104", r: "105", s: "106", t: "107", u: "108", v: "5", w: "19", x: "21", y: "22", z: "23", AB: "34", BB: "35", CB: "36", DB: "37", EB: "38", FB: "39", GB: "40", HB: "41", IB: "42", JB: "43", KB: "44", LB: "45", MB: "46", NB: "47", OB: "48", PB: "49", QB: "50", RB: "51", SB: "52", TB: "53", UB: "54", VB: "55", WB: "56", XB: "57", YB: "58", ZB: "60", aB: "62", bB: "63", cB: "64", dB: "65", eB: "66", fB: "67", gB: "68", hB: "69", iB: "70", jB: "71", kB: "72", lB: "74", mB: "75", nB: "76", oB: "77", pB: "78", qB: "11.1", rB: "12.1", sB: "16.0", tB: "3", uB: "59", vB: "61", wB: "82", xB: "111", yB: "112", zB: "3.2", "0B": "10.1", "1B": "13.1", "2B": "15.2-15.3", "3B": "15.4", "4B": "15.5", "5B": "15.6", "6B": "16.1", "7B": "16.2", "8B": "16.3", "9B": "16.4", AC: "11.5", BC: "4.2-4.3", CC: "5.5", DC: "2", EC: "3.5", FC: "3.6", GC: "113", HC: "3.1", IC: "5.1", JC: "6.1", KC: "7.1", LC: "9.1", MC: "14.1", NC: "15.1", OC: "TP", PC: "9.5-9.6", QC: "10.0-10.1", RC: "10.5", SC: "10.6", TC: "11.6", UC: "4.0-4.1", VC: "5.0-5.1", WC: "6.0-6.1", XC: "7.0-7.1", YC: "8.1-8.4", ZC: "9.0-9.2", aC: "9.3", bC: "10.0-10.2", cC: "10.3", dC: "11.0-11.2", eC: "11.3-11.4", fC: "12.0-12.1", gC: "12.2-12.5", hC: "13.0-13.1", iC: "13.2", jC: "13.3", kC: "13.4-13.7", lC: "14.0-14.4", mC: "14.5-14.8", nC: "15.0-15.1", oC: "all", pC: "2.1", qC: "2.2", rC: "2.3", sC: "4.1", tC: "4.4", uC: "4.4.3-4.4.4", vC: "13.4", wC: "5.0-5.4", xC: "6.2-6.4", yC: "7.2-7.4", zC: "8.2", "0C": "9.2", "1C": "11.1-11.2", "2C": "12.0", "3C": "13.0", "4C": "14.0", "5C": "15.0", "6C": "17.0", "7C": "18.0", "8C": "19.0", "9C": "13.18", AD: "2.5", BD: "3.0-3.1" }), zR;
}
var cJ;
function V1t() {
  return cJ || (cJ = 1, KR.browserVersions = q1t()), KR;
}
var GR, pJ;
function W1t() {
  return pJ || (pJ = 1, GR = { A: { A: { J: 0.0131217, D: 621152e-8, E: 0.0478029, F: 0.0573634, A: 956057e-8, B: 0.487589, CC: 9298e-6 }, B: "ms", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "CC", "J", "D", "E", "F", "A", "B", "", "", ""], E: "IE", F: { CC: 962323200, J: 998870400, D: 1161129600, E: 1237420800, F: 1300060800, A: 1346716800, B: 1381968e3 } }, B: { A: { C: 3861e-6, K: 4267e-6, L: 4268e-6, G: 3861e-6, M: 3702e-6, N: 3861e-6, O: 0.015444, P: 0, Q: 4298e-6, R: 944e-5, S: 4043e-6, T: 7722e-6, U: 3861e-6, V: 3861e-6, W: 3861e-6, X: 3943e-6, Y: 7722e-6, Z: 3943e-6, a: 3943e-6, b: 7722e-6, c: 4118e-6, d: 3939e-6, e: 3943e-6, i: 3943e-6, j: 3943e-6, k: 3929e-6, l: 3901e-6, m: 0.011829, n: 7886e-6, o: 3943e-6, p: 7722e-6, q: 3861e-6, r: 7722e-6, s: 0.011583, t: 0.073359, u: 0.111969, f: 1.66023, H: 2.23552 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "C", "K", "L", "G", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "f", "H", "", "", ""], E: "Edge", F: { C: 1438128e3, K: 1447286400, L: 1470096e3, G: 1491868800, M: 1508198400, N: 1525046400, O: 1542067200, P: 1579046400, Q: 1581033600, R: 1586736e3, S: 1590019200, T: 1594857600, U: 1598486400, V: 1602201600, W: 1605830400, X: 161136e4, Y: 1614816e3, Z: 1618358400, a: 1622073600, b: 1626912e3, c: 1630627200, d: 1632441600, e: 1634774400, i: 1637539200, j: 1641427200, k: 1643932800, l: 1646265600, m: 1649635200, n: 1651190400, o: 1653955200, p: 1655942400, q: 1659657600, r: 1661990400, s: 1664755200, t: 1666915200, u: 1670198400, f: 1673481600, H: 1675900800 }, D: { C: "ms", K: "ms", L: "ms", G: "ms", M: "ms", N: "ms", O: "ms" } }, C: { A: { 0: 8786e-6, 1: 4118e-6, 2: 4317e-6, 3: 4393e-6, 4: 4418e-6, 5: 8834e-6, 6: 8322e-6, 7: 8928e-6, 8: 4471e-6, 9: 9284e-6, DC: 4118e-6, tB: 4271e-6, I: 0.011703, v: 4879e-6, J: 0.020136, D: 5725e-6, E: 4525e-6, F: 533e-5, A: 4283e-6, B: 7722e-6, C: 4471e-6, K: 4486e-6, L: 453e-5, G: 8322e-6, M: 4417e-6, N: 4425e-6, O: 4161e-6, w: 4443e-6, g: 4283e-6, x: 8322e-6, y: 0.013698, z: 4161e-6, AB: 4707e-6, BB: 9076e-6, CB: 3861e-6, DB: 4783e-6, EB: 3929e-6, FB: 4783e-6, GB: 487e-5, HB: 5029e-6, IB: 47e-4, JB: 0.019305, KB: 3861e-6, LB: 3867e-6, MB: 4525e-6, NB: 4293e-6, OB: 3861e-6, PB: 4538e-6, QB: 8282e-6, RB: 0.011601, SB: 0.046332, TB: 0.011601, UB: 3929e-6, VB: 3974e-6, WB: 3861e-6, XB: 0.011601, YB: 3939e-6, uB: 3861e-6, ZB: 3929e-6, vB: 4356e-6, aB: 4425e-6, bB: 8322e-6, cB: 415e-5, dB: 4267e-6, eB: 3801e-6, fB: 4267e-6, gB: 3861e-6, hB: 415e-5, iB: 4293e-6, jB: 4425e-6, kB: 3861e-6, h: 415e-5, lB: 415e-5, mB: 4318e-6, nB: 4356e-6, oB: 3974e-6, pB: 0.034749, P: 3861e-6, Q: 3861e-6, R: 3861e-6, wB: 3861e-6, S: 3861e-6, T: 3929e-6, U: 4268e-6, V: 3801e-6, W: 0.015444, X: 7722e-6, Y: 3943e-6, Z: 3943e-6, a: 0.011583, b: 3801e-6, c: 7722e-6, d: 0.011583, e: 3773e-6, i: 7886e-6, j: 3901e-6, k: 3901e-6, l: 3861e-6, m: 3861e-6, n: 3861e-6, o: 0.096525, p: 0.042471, q: 7722e-6, r: 0.011583, s: 0.015444, t: 0.019305, u: 0.069498, f: 1.22008, H: 0.814671, xB: 7722e-6, yB: 0, EC: 8786e-6, FC: 487e-5 }, B: "moz", C: ["DC", "tB", "EC", "FC", "I", "v", "J", "D", "E", "F", "A", "B", "C", "K", "L", "G", "M", "N", "O", "w", "g", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "AB", "BB", "CB", "DB", "EB", "FB", "GB", "HB", "IB", "JB", "KB", "LB", "MB", "NB", "OB", "PB", "QB", "RB", "SB", "TB", "UB", "VB", "WB", "XB", "YB", "uB", "ZB", "vB", "aB", "bB", "cB", "dB", "eB", "fB", "gB", "hB", "iB", "jB", "kB", "h", "lB", "mB", "nB", "oB", "pB", "P", "Q", "R", "wB", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "f", "H", "xB", "yB", ""], E: "Firefox", F: { 0: 1375747200, 1: 1379376e3, 2: 1386633600, 3: 1391472e3, 4: 1395100800, 5: 1398729600, 6: 1402358400, 7: 1405987200, 8: 1409616e3, 9: 1413244800, DC: 1161648e3, tB: 1213660800, EC: 124632e4, FC: 1264032e3, I: 1300752e3, v: 1308614400, J: 1313452800, D: 1317081600, E: 1317081600, F: 1320710400, A: 1324339200, B: 1327968e3, C: 1331596800, K: 1335225600, L: 1338854400, G: 1342483200, M: 1346112e3, N: 1349740800, O: 1353628800, w: 1357603200, g: 1361232e3, x: 1364860800, y: 1368489600, z: 1372118400, AB: 1417392e3, BB: 1421107200, CB: 1424736e3, DB: 1428278400, EB: 1431475200, FB: 1435881600, GB: 1439251200, HB: 144288e4, IB: 1446508800, JB: 1450137600, KB: 1453852800, LB: 1457395200, MB: 1461628800, NB: 1465257600, OB: 1470096e3, PB: 1474329600, QB: 1479168e3, RB: 1485216e3, SB: 1488844800, TB: 149256e4, UB: 1497312e3, VB: 1502150400, WB: 1506556800, XB: 1510617600, YB: 1516665600, uB: 1520985600, ZB: 1525824e3, vB: 1529971200, aB: 1536105600, bB: 1540252800, cB: 1544486400, dB: 154872e4, eB: 1552953600, fB: 1558396800, gB: 1562630400, hB: 1567468800, iB: 1571788800, jB: 1575331200, kB: 1578355200, h: 1581379200, lB: 1583798400, mB: 1586304e3, nB: 1588636800, oB: 1591056e3, pB: 1593475200, P: 1595894400, Q: 1598313600, R: 1600732800, wB: 1603152e3, S: 1605571200, T: 1607990400, U: 1611619200, V: 1614038400, W: 1616457600, X: 1618790400, Y: 1622505600, Z: 1626134400, a: 1628553600, b: 1630972800, c: 1633392e3, d: 1635811200, e: 1638835200, i: 1641859200, j: 1644364800, k: 1646697600, l: 1649116800, m: 1651536e3, n: 1653955200, o: 1656374400, p: 1658793600, q: 1661212800, r: 1663632e3, s: 1666051200, t: 1668470400, u: 1670889600, f: 1673913600, H: 1676332800, xB: null, yB: null } }, D: { A: { 0: 3939e-6, 1: 4461e-6, 2: 4141e-6, 3: 4326e-6, 4: 47e-4, 5: 4538e-6, 6: 8322e-6, 7: 8596e-6, 8: 4566e-6, 9: 4118e-6, I: 4706e-6, v: 4879e-6, J: 4879e-6, D: 5591e-6, E: 5591e-6, F: 5591e-6, A: 4534e-6, B: 4464e-6, C: 0.010424, K: 83e-4, L: 4706e-6, G: 0.015087, M: 4393e-6, N: 4393e-6, O: 8652e-6, w: 8322e-6, g: 4393e-6, x: 4317e-6, y: 3901e-6, z: 8786e-6, AB: 3861e-6, BB: 3861e-6, CB: 4335e-6, DB: 4464e-6, EB: 0.015444, FB: 3867e-6, GB: 0.015444, HB: 3773e-6, IB: 3974e-6, JB: 7722e-6, KB: 7948e-6, LB: 3974e-6, MB: 3867e-6, NB: 7722e-6, OB: 0.019305, PB: 0.03861, QB: 3867e-6, RB: 3929e-6, SB: 7722e-6, TB: 7722e-6, UB: 3867e-6, VB: 7722e-6, WB: 0.069498, XB: 3861e-6, YB: 0.015772, uB: 3773e-6, ZB: 0.015444, vB: 7722e-6, aB: 3773e-6, bB: 7722e-6, cB: 3943e-6, dB: 7722e-6, eB: 0.027027, fB: 7722e-6, gB: 0.011583, hB: 0.054054, iB: 0.019305, jB: 0.015444, kB: 0.023166, h: 0.011583, lB: 0.042471, mB: 0.046332, nB: 0.042471, oB: 0.015444, pB: 0.030888, P: 0.127413, Q: 0.03861, R: 0.042471, S: 0.073359, T: 0.042471, U: 0.088803, V: 0.07722, W: 0.081081, X: 0.027027, Y: 0.03861, Z: 0.046332, a: 0.084942, b: 0.050193, c: 0.065637, d: 0.046332, e: 0.019305, i: 0.03861, j: 0.050193, k: 0.092664, l: 0.050193, m: 0.057915, n: 0.061776, o: 0.084942, p: 0.235521, q: 0.084942, r: 0.131274, s: 0.100386, t: 0.19305, u: 0.984555, f: 12.4054, H: 7.25482, xB: 0.015444, yB: 0.019305, GC: 0 }, B: "webkit", C: ["", "", "", "", "", "I", "v", "J", "D", "E", "F", "A", "B", "C", "K", "L", "G", "M", "N", "O", "w", "g", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "AB", "BB", "CB", "DB", "EB", "FB", "GB", "HB", "IB", "JB", "KB", "LB", "MB", "NB", "OB", "PB", "QB", "RB", "SB", "TB", "UB", "VB", "WB", "XB", "YB", "uB", "ZB", "vB", "aB", "bB", "cB", "dB", "eB", "fB", "gB", "hB", "iB", "jB", "kB", "h", "lB", "mB", "nB", "oB", "pB", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "f", "H", "xB", "yB", "GC"], E: "Chrome", F: { 0: 1352246400, 1: 1357862400, 2: 1361404800, 3: 1364428800, 4: 1369094400, 5: 1374105600, 6: 1376956800, 7: 1384214400, 8: 1389657600, 9: 1392940800, I: 1264377600, v: 1274745600, J: 1283385600, D: 1287619200, E: 1291248e3, F: 1296777600, A: 1299542400, B: 1303862400, C: 1307404800, K: 1312243200, L: 1316131200, G: 1316131200, M: 1319500800, N: 1323734400, O: 1328659200, w: 1332892800, g: 133704e4, x: 1340668800, y: 1343692800, z: 1348531200, AB: 1397001600, BB: 1400544e3, CB: 1405468800, DB: 1409011200, EB: 141264e4, FB: 1416268800, GB: 1421798400, HB: 1425513600, IB: 1429401600, JB: 143208e4, KB: 1437523200, LB: 1441152e3, MB: 1444780800, NB: 1449014400, OB: 1453248e3, PB: 1456963200, QB: 1460592e3, RB: 1464134400, SB: 1469059200, TB: 1472601600, UB: 1476230400, VB: 1480550400, WB: 1485302400, XB: 1489017600, YB: 149256e4, uB: 1496707200, ZB: 1500940800, vB: 1504569600, aB: 1508198400, bB: 1512518400, cB: 1516752e3, dB: 1520294400, eB: 1523923200, fB: 1527552e3, gB: 1532390400, hB: 1536019200, iB: 1539648e3, jB: 1543968e3, kB: 154872e4, h: 1552348800, lB: 1555977600, mB: 1559606400, nB: 1564444800, oB: 1568073600, pB: 1571702400, P: 1575936e3, Q: 1580860800, R: 1586304e3, S: 1589846400, T: 1594684800, U: 1598313600, V: 1601942400, W: 1605571200, X: 1611014400, Y: 1614556800, Z: 1618272e3, a: 1621987200, b: 1626739200, c: 1630368e3, d: 1632268800, e: 1634601600, i: 1637020800, j: 1641340800, k: 1643673600, l: 1646092800, m: 1648512e3, n: 1650931200, o: 1653350400, p: 1655769600, q: 1659398400, r: 1661817600, s: 1664236800, t: 1666656e3, u: 166968e4, f: 1673308800, H: 1675728e3, xB: null, yB: null, GC: null } }, E: { A: { I: 0, v: 8322e-6, J: 4656e-6, D: 4465e-6, E: 3974e-6, F: 3929e-6, A: 4425e-6, B: 4318e-6, C: 3801e-6, K: 0.019305, L: 0.096525, G: 0.023166, HC: 0, zB: 8692e-6, IC: 7722e-6, JC: 456e-5, KC: 4283e-6, LC: 0.057915, "0B": 7802e-6, qB: 7722e-6, rB: 0.030888, "1B": 0.169884, MC: 0.258687, NC: 0.042471, "2B": 0.034749, "3B": 0.088803, "4B": 0.169884, "5B": 0.857142, sB: 0.088803, "6B": 0.293436, "7B": 0.922779, "8B": 0.621621, "9B": 0, OC: 0 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "HC", "zB", "I", "v", "IC", "J", "JC", "D", "KC", "E", "F", "LC", "A", "0B", "B", "qB", "C", "rB", "K", "1B", "L", "MC", "G", "NC", "2B", "3B", "4B", "5B", "sB", "6B", "7B", "8B", "9B", "OC", ""], E: "Safari", F: { HC: 1205798400, zB: 1226534400, I: 1244419200, v: 1275868800, IC: 131112e4, J: 1343174400, JC: 13824e5, D: 13824e5, KC: 1410998400, E: 1413417600, F: 1443657600, LC: 1458518400, A: 1474329600, "0B": 1490572800, B: 1505779200, qB: 1522281600, C: 1537142400, rB: 1553472e3, K: 1568851200, "1B": 1585008e3, L: 1600214400, MC: 1619395200, G: 1632096e3, NC: 1635292800, "2B": 1639353600, "3B": 1647216e3, "4B": 1652745600, "5B": 1658275200, sB: 1662940800, "6B": 1666569600, "7B": 1670889600, "8B": 1674432e3, "9B": null, OC: null } }, F: { A: { 0: 6702e-6, 1: 6015e-6, 2: 5595e-6, 3: 4393e-6, 4: 3861e-6, 5: 4879e-6, 6: 4879e-6, 7: 3861e-6, 8: 5152e-6, 9: 5014e-6, F: 82e-4, B: 0.016581, C: 4317e-6, G: 685e-5, M: 685e-5, N: 685e-5, O: 5014e-6, w: 6015e-6, g: 4879e-6, x: 6597e-6, y: 6597e-6, z: 0.013434, AB: 9758e-6, BB: 4879e-6, CB: 7722e-6, DB: 4283e-6, EB: 4367e-6, FB: 4534e-6, GB: 3861e-6, HB: 4227e-6, IB: 4418e-6, JB: 4161e-6, KB: 4227e-6, LB: 4725e-6, MB: 0.011583, NB: 8942e-6, OB: 4707e-6, PB: 4827e-6, QB: 4707e-6, RB: 4707e-6, SB: 4326e-6, TB: 8922e-6, UB: 0.014349, VB: 4425e-6, WB: 472e-5, XB: 4425e-6, YB: 4425e-6, ZB: 472e-5, aB: 4532e-6, bB: 4566e-6, cB: 0.02283, dB: 867e-5, eB: 4656e-6, fB: 4642e-6, gB: 3929e-6, hB: 944e-5, iB: 4293e-6, jB: 3929e-6, kB: 4298e-6, h: 0.096692, lB: 4201e-6, mB: 4141e-6, nB: 4257e-6, oB: 3939e-6, pB: 8236e-6, P: 3855e-6, Q: 3939e-6, R: 8514e-6, wB: 3939e-6, S: 3939e-6, T: 3702e-6, U: 7722e-6, V: 3855e-6, W: 3855e-6, X: 3929e-6, Y: 3861e-6, Z: 0.011703, a: 7546e-6, b: 0.011829, c: 0.069498, d: 0.648648, e: 0.370656, PC: 685e-5, QC: 0, RC: 8392e-6, SC: 4706e-6, qB: 6229e-6, AC: 4879e-6, TC: 8786e-6, rB: 472e-5 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "F", "PC", "QC", "RC", "SC", "B", "qB", "AC", "TC", "C", "rB", "G", "M", "N", "O", "w", "g", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "AB", "BB", "CB", "DB", "EB", "FB", "GB", "HB", "IB", "JB", "KB", "LB", "MB", "NB", "OB", "PB", "QB", "RB", "SB", "TB", "UB", "VB", "WB", "XB", "YB", "ZB", "aB", "bB", "cB", "dB", "eB", "fB", "gB", "hB", "iB", "jB", "kB", "h", "lB", "mB", "nB", "oB", "pB", "P", "Q", "R", "wB", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "", "", ""], E: "Opera", F: { 0: 1409616e3, 1: 1413331200, 2: 1417132800, 3: 1422316800, 4: 1425945600, 5: 1430179200, 6: 1433808e3, 7: 1438646400, 8: 1442448e3, 9: 1445904e3, F: 1150761600, PC: 1223424e3, QC: 1251763200, RC: 1267488e3, SC: 1277942400, B: 1292457600, qB: 1302566400, AC: 1309219200, TC: 1323129600, C: 1323129600, rB: 1352073600, G: 1372723200, M: 1377561600, N: 1381104e3, O: 1386288e3, w: 1390867200, g: 1393891200, x: 1399334400, y: 1401753600, z: 1405987200, AB: 1449100800, BB: 1454371200, CB: 1457308800, DB: 146232e4, EB: 1465344e3, FB: 1470096e3, GB: 1474329600, HB: 1477267200, IB: 1481587200, JB: 1486425600, KB: 1490054400, LB: 1494374400, MB: 1498003200, NB: 1502236800, OB: 1506470400, PB: 1510099200, QB: 1515024e3, RB: 1517961600, SB: 1521676800, TB: 1525910400, UB: 1530144e3, VB: 1534982400, WB: 1537833600, XB: 1543363200, YB: 1548201600, ZB: 1554768e3, aB: 1561593600, bB: 1566259200, cB: 1570406400, dB: 1573689600, eB: 1578441600, fB: 1583971200, gB: 1587513600, hB: 1592956800, iB: 1595894400, jB: 1600128e3, kB: 1603238400, h: 161352e4, lB: 1612224e3, mB: 1616544e3, nB: 1619568e3, oB: 1623715200, pB: 1627948800, P: 1631577600, Q: 1633392e3, R: 1635984e3, wB: 1638403200, S: 1642550400, T: 1644969600, U: 1647993600, V: 1650412800, W: 1652745600, X: 1654646400, Y: 1657152e3, Z: 1660780800, a: 1663113600, b: 1668816e3, c: 1668643200, d: 1671062400, e: 1675209600 }, D: { F: "o", B: "o", C: "o", PC: "o", QC: "o", RC: "o", SC: "o", qB: "o", AC: "o", TC: "o", rB: "o" } }, G: { A: { E: 0, zB: 0, UC: 0, BC: 156679e-8, VC: 313358e-8, WC: 313358e-8, XC: 0.0125343, YC: 626717e-8, ZC: 0.0172347, aC: 0.0564045, bC: 470038e-8, cC: 0.0987079, dC: 0.0250687, eC: 0.0235019, fC: 0.0219351, gC: 0.394832, hC: 0.0156679, iC: 0.0360362, jC: 0.0344694, kC: 0.108109, lC: 0.282023, mC: 0.532709, nC: 0.153546, "2B": 0.195849, "3B": 0.233452, "4B": 0.412066, "5B": 1.40071, sB: 1.43988, "6B": 3.51431, "7B": 3.62556, "8B": 2.04623, "9B": 940075e-8 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "zB", "UC", "BC", "VC", "WC", "XC", "E", "YC", "ZC", "aC", "bC", "cC", "dC", "eC", "fC", "gC", "hC", "iC", "jC", "kC", "lC", "mC", "nC", "2B", "3B", "4B", "5B", "sB", "6B", "7B", "8B", "9B", "", ""], E: "Safari on iOS", F: { zB: 1270252800, UC: 1283904e3, BC: 1299628800, VC: 1331078400, WC: 1359331200, XC: 1394409600, E: 1410912e3, YC: 1413763200, ZC: 1442361600, aC: 1458518400, bC: 1473724800, cC: 1490572800, dC: 1505779200, eC: 1522281600, fC: 1537142400, gC: 1553472e3, hC: 1568851200, iC: 1572220800, jC: 1580169600, kC: 1585008e3, lC: 1600214400, mC: 1619395200, nC: 1632096e3, "2B": 1639353600, "3B": 1647216e3, "4B": 1652659200, "5B": 1658275200, sB: 1662940800, "6B": 1666569600, "7B": 1670889600, "8B": 1674432e3, "9B": null } }, H: { A: { oC: 0.993853 }, B: "o", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "oC", "", "", ""], E: "Opera Mini", F: { oC: 1426464e3 } }, I: { A: { tB: 0, I: 0.019696, f: 0, pC: 0, qC: 0, rC: 0, sC: 0.0787838, BC: 0.0689359, tC: 0, uC: 0.305287 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "pC", "qC", "rC", "tB", "I", "sC", "BC", "tC", "uC", "f", "", "", ""], E: "Android Browser", F: { pC: 1256515200, qC: 1274313600, rC: 1291593600, tB: 1298332800, I: 1318896e3, sC: 1341792e3, BC: 1374624e3, tC: 1386547200, uC: 1401667200, f: 1673568e3 } }, J: { A: { D: 0, A: 0 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "D", "A", "", "", ""], E: "Blackberry Browser", F: { D: 1325376e3, A: 1359504e3 } }, K: { A: { A: 0, B: 0, C: 0, h: 0.0111391, qB: 0, AC: 0, rB: 0 }, B: "o", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "A", "B", "qB", "AC", "C", "rB", "h", "", "", ""], E: "Opera Mobile", F: { A: 1287100800, B: 1300752e3, qB: 1314835200, AC: 1318291200, C: 1330300800, rB: 1349740800, h: 1673827200 }, D: { h: "webkit" } }, L: { A: { H: 42.629 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "H", "", "", ""], E: "Chrome for Android", F: { H: 1675728e3 } }, M: { A: { H: 0.294672 }, B: "moz", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "H", "", "", ""], E: "Firefox for Android", F: { H: 1676332800 } }, N: { A: { A: 0.0115934, B: 0.022664 }, B: "ms", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "A", "B", "", "", ""], E: "IE Mobile", F: { A: 1340150400, B: 1353456e3 } }, O: { A: { vC: 0.896294 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "vC", "", "", ""], E: "UC Browser for Android", F: { vC: 1634688e3 }, D: { vC: "webkit" } }, P: { A: { I: 0.166372, g: 0, wC: 0.0103543, xC: 0.010304, yC: 0.0519911, zC: 0.0103584, "0C": 0.0104443, "0B": 0.0105043, "1C": 0.0311947, "2C": 0.0103982, "3C": 0.0311947, "4C": 0.0311947, "5C": 0.0207965, sB: 0.0727876, "6C": 0.0727876, "7C": 0.0935841, "8C": 1.32057 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "I", "wC", "xC", "yC", "zC", "0C", "0B", "1C", "2C", "3C", "4C", "5C", "sB", "6C", "7C", "8C", "g", "", "", ""], E: "Samsung Internet", F: { I: 1461024e3, wC: 1481846400, xC: 1509408e3, yC: 1528329600, zC: 1546128e3, "0C": 1554163200, "0B": 1567900800, "1C": 1582588800, "2C": 1593475200, "3C": 1605657600, "4C": 1618531200, "5C": 1629072e3, sB: 1640736e3, "6C": 1651708800, "7C": 1659657600, "8C": 1667260800, g: 1677369600 } }, Q: { A: { "1B": 0.12278 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "1B", "", "", ""], E: "QQ Browser", F: { "1B": 1663718400 } }, R: { A: { "9C": 0 }, B: "webkit", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "9C", "", "", ""], E: "Baidu Browser", F: { "9C": 1663027200 } }, S: { A: { AD: 0.079807, BD: 0 }, B: "moz", C: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "AD", "BD", "", "", ""], E: "KaiOS Browser", F: { AD: 1527811200, BD: 1631664e3 } } }), GR;
}
var fJ;
function H1t() {
  if (fJ)
    return VR;
  fJ = 1;
  const e = U1t().browsers, t = V1t().browserVersions, r = W1t();
  function i(n) {
    return Object.keys(n).reduce((s, a) => (s[t[a]] = n[a], s), {});
  }
  return VR.agents = Object.keys(r).reduce((n, s) => {
    let a = r[s];
    return n[e[s]] = Object.keys(a).reduce((o, l) => (l === "A" ? o.usage_global = i(a[l]) : l === "C" ? o.versions = a[l].reduce((u, c) => (c === "" ? u.push(null) : u.push(t[c]), u), []) : l === "D" ? o.prefix_exceptions = i(a[l]) : l === "E" ? o.browser = a[l] : l === "F" ? o.release_date = Object.keys(a[l]).reduce(
      (u, c) => (u[t[c]] = a[l][c], u),
      {}
    ) : o.prefix = a[l], o), {}), n;
  }, {}), VR;
}
const K1t = {
  start: "2015-09-08",
  lts: "2015-10-12",
  maintenance: "2017-04-01",
  end: "2018-04-30",
  codename: "Argon"
}, z1t = {
  start: "2015-10-29",
  maintenance: "2016-04-30",
  end: "2016-06-30"
}, G1t = {
  start: "2016-04-26",
  lts: "2016-10-18",
  maintenance: "2018-04-30",
  end: "2019-04-30",
  codename: "Boron"
}, Y1t = {
  start: "2016-10-25",
  maintenance: "2017-04-30",
  end: "2017-06-30"
}, X1t = {
  start: "2017-05-30",
  lts: "2017-10-31",
  maintenance: "2019-01-01",
  end: "2019-12-31",
  codename: "Carbon"
}, J1t = {
  start: "2017-10-01",
  maintenance: "2018-04-01",
  end: "2018-06-30"
}, Q1t = {
  start: "2018-04-24",
  lts: "2018-10-30",
  maintenance: "2020-05-19",
  end: "2021-04-30",
  codename: "Dubnium"
}, Z1t = {
  start: "2018-10-23",
  maintenance: "2019-04-22",
  end: "2019-06-01"
}, ePt = {
  start: "2019-04-23",
  lts: "2019-10-21",
  maintenance: "2020-11-30",
  end: "2022-04-30",
  codename: "Erbium"
}, tPt = {
  start: "2019-10-22",
  maintenance: "2020-04-01",
  end: "2020-06-01"
}, rPt = {
  start: "2020-04-21",
  lts: "2020-10-27",
  maintenance: "2021-10-19",
  end: "2023-04-30",
  codename: "Fermium"
}, iPt = {
  start: "2020-10-20",
  maintenance: "2021-04-01",
  end: "2021-06-01"
}, nPt = {
  start: "2021-04-20",
  lts: "2021-10-26",
  maintenance: "2022-10-18",
  end: "2023-09-11",
  codename: "Gallium"
}, sPt = {
  start: "2021-10-19",
  maintenance: "2022-04-01",
  end: "2022-06-01"
}, aPt = {
  start: "2022-04-19",
  lts: "2022-10-25",
  maintenance: "2023-10-18",
  end: "2025-04-30",
  codename: "Hydrogen"
}, oPt = {
  start: "2022-10-18",
  maintenance: "2023-04-01",
  end: "2023-06-01"
}, lPt = {
  start: "2023-04-18",
  lts: "2023-10-24",
  maintenance: "2024-10-22",
  end: "2026-04-30",
  codename: ""
}, uPt = {
  "v0.8": {
    start: "2012-06-25",
    end: "2014-07-31"
  },
  "v0.10": {
    start: "2013-03-11",
    end: "2016-10-31"
  },
  "v0.12": {
    start: "2015-02-06",
    end: "2016-12-31"
  },
  v4: K1t,
  v5: z1t,
  v6: G1t,
  v7: Y1t,
  v8: X1t,
  v9: J1t,
  v10: Q1t,
  v11: Z1t,
  v12: ePt,
  v13: tPt,
  v14: rPt,
  v15: iPt,
  v16: nPt,
  v17: sPt,
  v18: aPt,
  v19: oPt,
  v20: lPt
};
var YR, hJ;
function cPt() {
  return hJ || (hJ = 1, YR = {
    "0.20": "39",
    "0.21": "41",
    "0.22": "41",
    "0.23": "41",
    "0.24": "41",
    "0.25": "42",
    "0.26": "42",
    "0.27": "43",
    "0.28": "43",
    "0.29": "43",
    "0.30": "44",
    "0.31": "45",
    "0.32": "45",
    "0.33": "45",
    "0.34": "45",
    "0.35": "45",
    "0.36": "47",
    "0.37": "49",
    "1.0": "49",
    "1.1": "50",
    "1.2": "51",
    "1.3": "52",
    "1.4": "53",
    "1.5": "54",
    "1.6": "56",
    "1.7": "58",
    "1.8": "59",
    "2.0": "61",
    "2.1": "61",
    "3.0": "66",
    "3.1": "66",
    "4.0": "69",
    "4.1": "69",
    "4.2": "69",
    "5.0": "73",
    "6.0": "76",
    "6.1": "76",
    "7.0": "78",
    "7.1": "78",
    "7.2": "78",
    "7.3": "78",
    "8.0": "80",
    "8.1": "80",
    "8.2": "80",
    "8.3": "80",
    "8.4": "80",
    "8.5": "80",
    "9.0": "83",
    "9.1": "83",
    "9.2": "83",
    "9.3": "83",
    "9.4": "83",
    "10.0": "85",
    "10.1": "85",
    "10.2": "85",
    "10.3": "85",
    "10.4": "85",
    "11.0": "87",
    "11.1": "87",
    "11.2": "87",
    "11.3": "87",
    "11.4": "87",
    "11.5": "87",
    "12.0": "89",
    "12.1": "89",
    "12.2": "89",
    "13.0": "91",
    "13.1": "91",
    "13.2": "91",
    "13.3": "91",
    "13.4": "91",
    "13.5": "91",
    "13.6": "91",
    "14.0": "93",
    "14.1": "93",
    "14.2": "93",
    "15.0": "94",
    "15.1": "94",
    "15.2": "94",
    "15.3": "94",
    "15.4": "94",
    "15.5": "94",
    "16.0": "96",
    "16.1": "96",
    "16.2": "96",
    "17.0": "98",
    "17.1": "98",
    "17.2": "98",
    "17.3": "98",
    "17.4": "98",
    "18.0": "100",
    "18.1": "100",
    "18.2": "100",
    "18.3": "100",
    "19.0": "102",
    "19.1": "102",
    "20.0": "104",
    "20.1": "104",
    "20.2": "104",
    "20.3": "104",
    "21.0": "106",
    "21.1": "106",
    "21.2": "106",
    "21.3": "106",
    "21.4": "106",
    "22.0": "108",
    "22.1": "108",
    "22.2": "108",
    "22.3": "108",
    "23.0": "110",
    "23.1": "110",
    "24.0": "111"
  }), YR;
}
var XR, dJ;
function Gde() {
  if (dJ)
    return XR;
  dJ = 1;
  function e(t) {
    this.name = "BrowserslistError", this.message = t, this.browserslist = !0, Error.captureStackTrace && Error.captureStackTrace(this, e);
  }
  return e.prototype = Error.prototype, XR = e, XR;
}
var JR, mJ;
function pPt() {
  if (mJ)
    return JR;
  mJ = 1;
  var e = /^\s+and\s+(.*)/i, t = /^(?:,\s*|\s+or\s+)(.*)/i;
  function r(a) {
    return Array.isArray(a) ? a.reduce(function(o, l) {
      return o.concat(r(l));
    }, []) : [a];
  }
  function i(a, o) {
    for (var l = 1, u = a.length; l <= u; l++) {
      var c = a.substr(-l, l);
      if (o(c, l, u))
        return a.slice(0, -l);
    }
    return "";
  }
  function n(a, o) {
    var l = { query: o };
    o.indexOf("not ") === 0 && (l.not = !0, o = o.slice(4));
    for (var u in a) {
      var c = a[u], f = o.match(c.regexp);
      if (f) {
        l.type = u;
        for (var h = 0; h < c.matches.length; h++)
          l[c.matches[h]] = f[h + 1];
        return l;
      }
    }
    return l.type = "unknown", l;
  }
  function s(a, o, l) {
    var u;
    return i(o, function(c, f, h) {
      return e.test(c) ? (u = n(a, c.match(e)[1]), u.compose = "and", l.unshift(u), !0) : t.test(c) ? (u = n(a, c.match(t)[1]), u.compose = "or", l.unshift(u), !0) : f === h ? (u = n(a, c.trim()), u.compose = "or", l.unshift(u), !0) : !1;
    });
  }
  return JR = function(o, l) {
    return Array.isArray(l) || (l = [l]), r(
      l.map(function(u) {
        var c = [];
        do
          u = s(o, u, c);
        while (u);
        return c;
      })
    );
  }, JR;
}
var QR, yJ;
function fPt() {
  if (yJ)
    return QR;
  yJ = 1;
  var e = Gde();
  function t() {
  }
  return QR = {
    loadQueries: function() {
      throw new e(
        "Sharable configs are not supported in client-side build of Browserslist"
      );
    },
    getStat: function(i) {
      return i.stats;
    },
    loadConfig: function(i) {
      if (i.config)
        throw new e(
          "Browserslist config are not supported in client-side build"
        );
    },
    loadCountry: function() {
      throw new e(
        "Country statistics are not supported in client-side build of Browserslist"
      );
    },
    loadFeature: function() {
      throw new e(
        "Supports queries are not available in client-side build of Browserslist"
      );
    },
    currentNode: function(i, n) {
      return i(["maintained node versions"], n)[0];
    },
    parseConfig: t,
    readConfig: t,
    findConfig: t,
    clearCaches: t,
    oldDataWarning: t,
    env: {}
  }, QR;
}
var ZR, gJ;
function hPt() {
  if (gJ)
    return ZR;
  gJ = 1;
  var e = j1t, t = H1t().agents, r = uPt, i = xs, n = cPt(), s = Gde(), a = pPt(), o = fPt(), l = 365.259641 * 24 * 60 * 60 * 1e3, u = 37;
  function c(Z, ue) {
    return (Z + ".").indexOf(ue + ".") === 0;
  }
  function f(Z) {
    var ue = Z.slice(1);
    return ne.nodeVersions.some(function(me) {
      return c(me, ue);
    });
  }
  function h(Z) {
    return Z.filter(function(ue) {
      return typeof ue == "string";
    });
  }
  function m(Z) {
    var ue = Z;
    return Z.split(".").length === 3 && (ue = Z.split(".").slice(0, -1).join(".")), ue;
  }
  function g(Z) {
    return function(me) {
      return Z + " " + me;
    };
  }
  function y(Z) {
    return parseInt(Z.split(".")[0]);
  }
  function v(Z, ue) {
    if (Z.length === 0)
      return [];
    var me = T(Z.map(y)), xe = me[me.length - ue];
    if (!xe)
      return Z;
    for (var Pe = [], ve = Z.length - 1; ve >= 0 && !(xe > y(Z[ve])); ve--)
      Pe.unshift(Z[ve]);
    return Pe;
  }
  function T(Z) {
    for (var ue = [], me = 0; me < Z.length; me++)
      ue.indexOf(Z[me]) === -1 && ue.push(Z[me]);
    return ue;
  }
  function S(Z, ue, me) {
    for (var xe in me)
      Z[ue + " " + xe] = me[xe];
  }
  function P(Z, ue) {
    return ue = parseFloat(ue), Z === ">" ? function(me) {
      return parseFloat(me) > ue;
    } : Z === ">=" ? function(me) {
      return parseFloat(me) >= ue;
    } : Z === "<" ? function(me) {
      return parseFloat(me) < ue;
    } : function(me) {
      return parseFloat(me) <= ue;
    };
  }
  function x(Z, ue) {
    return ue = ue.split(".").map(C), ue[1] = ue[1] || 0, ue[2] = ue[2] || 0, Z === ">" ? function(me) {
      return me = me.split(".").map(C), w(me, ue) > 0;
    } : Z === ">=" ? function(me) {
      return me = me.split(".").map(C), w(me, ue) >= 0;
    } : Z === "<" ? function(me) {
      return me = me.split(".").map(C), w(ue, me) > 0;
    } : function(me) {
      return me = me.split(".").map(C), w(ue, me) >= 0;
    };
  }
  function C(Z) {
    return parseInt(Z);
  }
  function D(Z, ue) {
    return Z < ue ? -1 : Z > ue ? 1 : 0;
  }
  function w(Z, ue) {
    return D(parseInt(Z[0]), parseInt(ue[0])) || D(parseInt(Z[1] || "0"), parseInt(ue[1] || "0")) || D(parseInt(Z[2] || "0"), parseInt(ue[2] || "0"));
  }
  function A(Z, ue) {
    switch (ue = ue.split(".").map(C), typeof ue[1] == "undefined" && (ue[1] = "x"), Z) {
      case "<=":
        return function(me) {
          return me = me.split(".").map(C), I(me, ue) <= 0;
        };
      case ">=":
      default:
        return function(me) {
          return me = me.split(".").map(C), I(me, ue) >= 0;
        };
    }
  }
  function I(Z, ue) {
    return Z[0] !== ue[0] ? Z[0] < ue[0] ? -1 : 1 : ue[1] === "x" ? 0 : Z[1] !== ue[1] ? Z[1] < ue[1] ? -1 : 1 : 0;
  }
  function L(Z, ue) {
    return Z.versions.indexOf(ue) !== -1 ? ue : ne.versionAliases[Z.name][ue] ? ne.versionAliases[Z.name][ue] : !1;
  }
  function O(Z, ue) {
    var me = L(Z, ue);
    return me || (Z.versions.length === 1 ? Z.versions[0] : !1);
  }
  function F(Z, ue) {
    return Z = Z / 1e3, Object.keys(t).reduce(function(me, xe) {
      var Pe = N(xe, ue);
      if (!Pe)
        return me;
      var ve = Object.keys(Pe.releaseDate).filter(function(Xe) {
        var st = Pe.releaseDate[Xe];
        return st !== null && st >= Z;
      });
      return me.concat(ve.map(g(Pe.name)));
    }, []);
  }
  function q(Z) {
    return {
      name: Z.name,
      versions: Z.versions,
      released: Z.released,
      releaseDate: Z.releaseDate
    };
  }
  function j(Z, ue) {
    Z.versions = Z.versions.map(function(Pe) {
      return ue[Pe] || Pe;
    }), Z.released = Z.released.map(function(Pe) {
      return ue[Pe] || Pe;
    });
    var me = {};
    for (var xe in Z.releaseDate)
      me[ue[xe] || xe] = Z.releaseDate[xe];
    return Z.releaseDate = me, Z;
  }
  function N(Z, ue) {
    if (Z = Z.toLowerCase(), Z = ne.aliases[Z] || Z, ue.mobileToDesktop && ne.desktopNames[Z]) {
      var me = ne.data[ne.desktopNames[Z]];
      if (Z === "android")
        return R(q(ne.data[Z]), me);
      var xe = q(me);
      return xe.name = Z, Z === "op_mob" && (xe = j(xe, { "10.0-10.1": "10" })), xe;
    }
    return ne.data[Z];
  }
  function M(Z, ue) {
    var me = u, xe = ue[ue.length - 1];
    return Z.filter(function(Pe) {
      return /^(?:[2-4]\.|[34]$)/.test(Pe);
    }).concat(ue.slice(me - xe - 1));
  }
  function R(Z, ue) {
    return Z.released = M(Z.released, ue.released), Z.versions = M(Z.versions, ue.versions), Z;
  }
  function $(Z, ue) {
    var me = N(Z, ue);
    if (!me)
      throw new s("Unknown browser " + Z);
    return me;
  }
  function V(Z) {
    return new s(
      "Unknown browser query `" + Z + "`. Maybe you are using old Browserslist or made typo in query."
    );
  }
  function K(Z, ue, me) {
    if (me.mobileToDesktop)
      return Z;
    var xe = ne.data.android.released, Pe = xe[xe.length - 1], ve = Pe - u - ue;
    return ve > 0 ? Z.slice(-1) : Z.slice(ve - 1);
  }
  function z(Z, ue) {
    return a(fe, Z).reduce(function(me, xe, Pe) {
      if (xe.not && Pe === 0)
        throw new s(
          "Write any browsers query (for instance, `defaults`) before `" + xe.query + "`"
        );
      var ve = fe[xe.type], Xe = ve.select.call(ne, ue, xe).map(function(Se) {
        var oe = Se.split(" ");
        return oe[1] === "0" ? oe[0] + " " + N(oe[0], ue).versions[0] : Se;
      });
      if (xe.compose === "and")
        return xe.not ? me.filter(function(Se) {
          return Xe.indexOf(Se) === -1;
        }) : me.filter(function(Se) {
          return Xe.indexOf(Se) !== -1;
        });
      if (xe.not) {
        var st = {};
        return Xe.forEach(function(Se) {
          st[Se] = !0;
        }), me.filter(function(Se) {
          return !st[Se];
        });
      }
      return me.concat(Xe);
    }, []);
  }
  function W(Z) {
    return typeof Z == "undefined" && (Z = {}), typeof Z.path == "undefined" && (Z.path = i.resolve ? i.resolve(".") : "."), Z;
  }
  function Y(Z, ue) {
    if (typeof Z == "undefined" || Z === null) {
      var me = ne.loadConfig(ue);
      me ? Z = me : Z = ne.defaults;
    }
    return Z;
  }
  function G(Z) {
    if (!(typeof Z == "string" || Array.isArray(Z)))
      throw new s(
        "Browser queries must be an array or string. Got " + typeof Z + "."
      );
  }
  var le = {};
  function ne(Z, ue) {
    ue = W(ue), Z = Y(Z, ue), G(Z);
    var me = {
      ignoreUnknownVersions: ue.ignoreUnknownVersions,
      dangerousExtend: ue.dangerousExtend,
      mobileToDesktop: ue.mobileToDesktop,
      path: ue.path,
      env: ue.env
    };
    o.oldDataWarning(ne.data);
    var xe = o.getStat(ue, ne.data);
    if (xe) {
      me.customUsage = {};
      for (var Pe in xe)
        S(me.customUsage, Pe, xe[Pe]);
    }
    var ve = JSON.stringify([Z, me]);
    if (le[ve])
      return le[ve];
    var Xe = T(z(Z, me)).sort(function(st, Se) {
      if (st = st.split(" "), Se = Se.split(" "), st[0] === Se[0]) {
        var oe = st[1].split("-")[0], te = Se[1].split("-")[0];
        return w(te.split("."), oe.split("."));
      } else
        return D(st[0], Se[0]);
    });
    return o.env.BROWSERSLIST_DISABLE_CACHE || (le[ve] = Xe), Xe;
  }
  ne.parse = function(Z, ue) {
    return ue = W(ue), Z = Y(Z, ue), G(Z), a(fe, Z);
  }, ne.cache = {}, ne.data = {}, ne.usage = {
    global: {},
    custom: null
  }, ne.defaults = ["> 0.5%", "last 2 versions", "Firefox ESR", "not dead"], ne.aliases = {
    fx: "firefox",
    ff: "firefox",
    ios: "ios_saf",
    explorer: "ie",
    blackberry: "bb",
    explorermobile: "ie_mob",
    operamini: "op_mini",
    operamobile: "op_mob",
    chromeandroid: "and_chr",
    firefoxandroid: "and_ff",
    ucandroid: "and_uc",
    qqandroid: "and_qq"
  }, ne.desktopNames = {
    and_chr: "chrome",
    and_ff: "firefox",
    ie_mob: "ie",
    op_mob: "opera",
    android: "chrome"
    // has extra processing logic
  }, ne.versionAliases = {}, ne.clearCaches = o.clearCaches, ne.parseConfig = o.parseConfig, ne.readConfig = o.readConfig, ne.findConfig = o.findConfig, ne.loadConfig = o.loadConfig, ne.coverage = function(Z, ue) {
    var me;
    if (typeof ue == "undefined")
      me = ne.usage.global;
    else if (ue === "my stats") {
      var xe = {};
      xe.path = i.resolve ? i.resolve(".") : ".";
      var Pe = o.getStat(xe);
      if (!Pe)
        throw new s("Custom usage statistics was not provided");
      me = {};
      for (var ve in Pe)
        S(me, ve, Pe[ve]);
    } else if (typeof ue == "string")
      ue.length > 2 ? ue = ue.toLowerCase() : ue = ue.toUpperCase(), o.loadCountry(ne.usage, ue, ne.data), me = ne.usage[ue];
    else {
      "dataByBrowser" in ue && (ue = ue.dataByBrowser), me = {};
      for (var Xe in ue)
        for (var st in ue[Xe])
          me[Xe + " " + st] = ue[Xe][st];
    }
    return Z.reduce(function(Se, oe) {
      var te = me[oe];
      return te === void 0 && (te = me[oe.replace(/ \S+$/, " 0")]), Se + (te || 0);
    }, 0);
  };
  function ae(Z, ue) {
    var me = ne.nodeVersions.filter(function(xe) {
      return c(xe, ue.version);
    });
    if (me.length === 0) {
      if (Z.ignoreUnknownVersions)
        return [];
      throw new s(
        "Unknown version " + ue.version + " of Node.js"
      );
    }
    return ["node " + me[me.length - 1]];
  }
  function be(Z, ue) {
    var me = parseInt(ue.year), xe = parseInt(ue.month || "01") - 1, Pe = parseInt(ue.day || "01");
    return F(Date.UTC(me, xe, Pe, 0, 0, 0), Z);
  }
  function ye(Z, ue) {
    var me = parseFloat(ue.coverage), xe = ne.usage.global;
    if (ue.place)
      if (ue.place.match(/^my\s+stats$/i)) {
        if (!Z.customUsage)
          throw new s("Custom usage statistics was not provided");
        xe = Z.customUsage;
      } else {
        var Pe;
        ue.place.length === 2 ? Pe = ue.place.toUpperCase() : Pe = ue.place.toLowerCase(), o.loadCountry(ne.usage, Pe, ne.data), xe = ne.usage[Pe];
      }
    for (var ve = Object.keys(xe).sort(function(te, se) {
      return xe[se] - xe[te];
    }), Xe = 0, st = [], Se, oe = 0; oe < ve.length && (Se = ve[oe], !(xe[Se] === 0 || (Xe += xe[Se], st.push(Se), Xe >= me))); oe++)
      ;
    return st;
  }
  var fe = {
    last_major_versions: {
      matches: ["versions"],
      regexp: /^last\s+(\d+)\s+major\s+versions?$/i,
      select: function(Z, ue) {
        return Object.keys(t).reduce(function(me, xe) {
          var Pe = N(xe, Z);
          if (!Pe)
            return me;
          var ve = v(Pe.released, ue.versions);
          return ve = ve.map(g(Pe.name)), Pe.name === "android" && (ve = K(ve, ue.versions, Z)), me.concat(ve);
        }, []);
      }
    },
    last_versions: {
      matches: ["versions"],
      regexp: /^last\s+(\d+)\s+versions?$/i,
      select: function(Z, ue) {
        return Object.keys(t).reduce(function(me, xe) {
          var Pe = N(xe, Z);
          if (!Pe)
            return me;
          var ve = Pe.released.slice(-ue.versions);
          return ve = ve.map(g(Pe.name)), Pe.name === "android" && (ve = K(ve, ue.versions, Z)), me.concat(ve);
        }, []);
      }
    },
    last_electron_major_versions: {
      matches: ["versions"],
      regexp: /^last\s+(\d+)\s+electron\s+major\s+versions?$/i,
      select: function(Z, ue) {
        var me = v(Object.keys(n), ue.versions);
        return me.map(function(xe) {
          return "chrome " + n[xe];
        });
      }
    },
    last_node_major_versions: {
      matches: ["versions"],
      regexp: /^last\s+(\d+)\s+node\s+major\s+versions?$/i,
      select: function(Z, ue) {
        return v(ne.nodeVersions, ue.versions).map(
          function(me) {
            return "node " + me;
          }
        );
      }
    },
    last_browser_major_versions: {
      matches: ["versions", "browser"],
      regexp: /^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i,
      select: function(Z, ue) {
        var me = $(ue.browser, Z), xe = v(me.released, ue.versions), Pe = xe.map(g(me.name));
        return me.name === "android" && (Pe = K(Pe, ue.versions, Z)), Pe;
      }
    },
    last_electron_versions: {
      matches: ["versions"],
      regexp: /^last\s+(\d+)\s+electron\s+versions?$/i,
      select: function(Z, ue) {
        return Object.keys(n).slice(-ue.versions).map(function(me) {
          return "chrome " + n[me];
        });
      }
    },
    last_node_versions: {
      matches: ["versions"],
      regexp: /^last\s+(\d+)\s+node\s+versions?$/i,
      select: function(Z, ue) {
        return ne.nodeVersions.slice(-ue.versions).map(function(me) {
          return "node " + me;
        });
      }
    },
    last_browser_versions: {
      matches: ["versions", "browser"],
      regexp: /^last\s+(\d+)\s+(\w+)\s+versions?$/i,
      select: function(Z, ue) {
        var me = $(ue.browser, Z), xe = me.released.slice(-ue.versions).map(g(me.name));
        return me.name === "android" && (xe = K(xe, ue.versions, Z)), xe;
      }
    },
    unreleased_versions: {
      matches: [],
      regexp: /^unreleased\s+versions$/i,
      select: function(Z) {
        return Object.keys(t).reduce(function(ue, me) {
          var xe = N(me, Z);
          if (!xe)
            return ue;
          var Pe = xe.versions.filter(function(ve) {
            return xe.released.indexOf(ve) === -1;
          });
          return Pe = Pe.map(g(xe.name)), ue.concat(Pe);
        }, []);
      }
    },
    unreleased_electron_versions: {
      matches: [],
      regexp: /^unreleased\s+electron\s+versions?$/i,
      select: function() {
        return [];
      }
    },
    unreleased_browser_versions: {
      matches: ["browser"],
      regexp: /^unreleased\s+(\w+)\s+versions?$/i,
      select: function(Z, ue) {
        var me = $(ue.browser, Z);
        return me.versions.filter(function(xe) {
          return me.released.indexOf(xe) === -1;
        }).map(g(me.name));
      }
    },
    last_years: {
      matches: ["years"],
      regexp: /^last\s+(\d*.?\d+)\s+years?$/i,
      select: function(Z, ue) {
        return F(Date.now() - l * ue.years, Z);
      }
    },
    since_y: {
      matches: ["year"],
      regexp: /^since (\d+)$/i,
      select: be
    },
    since_y_m: {
      matches: ["year", "month"],
      regexp: /^since (\d+)-(\d+)$/i,
      select: be
    },
    since_y_m_d: {
      matches: ["year", "month", "day"],
      regexp: /^since (\d+)-(\d+)-(\d+)$/i,
      select: be
    },
    popularity: {
      matches: ["sign", "popularity"],
      regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/,
      select: function(Z, ue) {
        var me = parseFloat(ue.popularity), xe = ne.usage.global;
        return Object.keys(xe).reduce(function(Pe, ve) {
          return ue.sign === ">" ? xe[ve] > me && Pe.push(ve) : ue.sign === "<" ? xe[ve] < me && Pe.push(ve) : ue.sign === "<=" ? xe[ve] <= me && Pe.push(ve) : xe[ve] >= me && Pe.push(ve), Pe;
        }, []);
      }
    },
    popularity_in_my_stats: {
      matches: ["sign", "popularity"],
      regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/,
      select: function(Z, ue) {
        var me = parseFloat(ue.popularity);
        if (!Z.customUsage)
          throw new s("Custom usage statistics was not provided");
        var xe = Z.customUsage;
        return Object.keys(xe).reduce(function(Pe, ve) {
          var Xe = xe[ve];
          return Xe == null || (ue.sign === ">" ? Xe > me && Pe.push(ve) : ue.sign === "<" ? Xe < me && Pe.push(ve) : ue.sign === "<=" ? Xe <= me && Pe.push(ve) : Xe >= me && Pe.push(ve)), Pe;
        }, []);
      }
    },
    popularity_in_config_stats: {
      matches: ["sign", "popularity", "config"],
      regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/,
      select: function(Z, ue) {
        var me = parseFloat(ue.popularity), xe = o.loadStat(Z, ue.config, ne.data);
        if (xe) {
          Z.customUsage = {};
          for (var Pe in xe)
            S(Z.customUsage, Pe, xe[Pe]);
        }
        if (!Z.customUsage)
          throw new s("Custom usage statistics was not provided");
        var ve = Z.customUsage;
        return Object.keys(ve).reduce(function(Xe, st) {
          var Se = ve[st];
          return Se == null || (ue.sign === ">" ? Se > me && Xe.push(st) : ue.sign === "<" ? Se < me && Xe.push(st) : ue.sign === "<=" ? Se <= me && Xe.push(st) : Se >= me && Xe.push(st)), Xe;
        }, []);
      }
    },
    popularity_in_place: {
      matches: ["sign", "popularity", "place"],
      regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/,
      select: function(Z, ue) {
        var me = parseFloat(ue.popularity), xe = ue.place;
        xe.length === 2 ? xe = xe.toUpperCase() : xe = xe.toLowerCase(), o.loadCountry(ne.usage, xe, ne.data);
        var Pe = ne.usage[xe];
        return Object.keys(Pe).reduce(function(ve, Xe) {
          var st = Pe[Xe];
          return st == null || (ue.sign === ">" ? st > me && ve.push(Xe) : ue.sign === "<" ? st < me && ve.push(Xe) : ue.sign === "<=" ? st <= me && ve.push(Xe) : st >= me && ve.push(Xe)), ve;
        }, []);
      }
    },
    cover: {
      matches: ["coverage"],
      regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%$/i,
      select: ye
    },
    cover_in: {
      matches: ["coverage", "place"],
      regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/i,
      select: ye
    },
    supports: {
      matches: ["feature"],
      regexp: /^supports\s+([\w-]+)$/,
      select: function(Z, ue) {
        o.loadFeature(ne.cache, ue.feature);
        var me = ne.cache[ue.feature];
        return Object.keys(me).reduce(function(xe, Pe) {
          var ve = me[Pe];
          return (ve.indexOf("y") >= 0 || ve.indexOf("a") >= 0) && xe.push(Pe), xe;
        }, []);
      }
    },
    electron_range: {
      matches: ["from", "to"],
      regexp: /^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i,
      select: function(Z, ue) {
        var me = m(ue.from), xe = m(ue.to), Pe = parseFloat(ue.from), ve = parseFloat(ue.to);
        if (!n[me])
          throw new s("Unknown version " + Pe + " of electron");
        if (!n[xe])
          throw new s("Unknown version " + ve + " of electron");
        return Object.keys(n).filter(function(Xe) {
          var st = parseFloat(Xe);
          return st >= Pe && st <= ve;
        }).map(function(Xe) {
          return "chrome " + n[Xe];
        });
      }
    },
    node_range: {
      matches: ["from", "to"],
      regexp: /^node\s+([\d.]+)\s*-\s*([\d.]+)$/i,
      select: function(Z, ue) {
        return ne.nodeVersions.filter(A(">=", ue.from)).filter(A("<=", ue.to)).map(function(me) {
          return "node " + me;
        });
      }
    },
    browser_range: {
      matches: ["browser", "from", "to"],
      regexp: /^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i,
      select: function(Z, ue) {
        var me = $(ue.browser, Z), xe = parseFloat(O(me, ue.from) || ue.from), Pe = parseFloat(O(me, ue.to) || ue.to);
        function ve(Xe) {
          var st = parseFloat(Xe);
          return st >= xe && st <= Pe;
        }
        return me.released.filter(ve).map(g(me.name));
      }
    },
    electron_ray: {
      matches: ["sign", "version"],
      regexp: /^electron\s*(>=?|<=?)\s*([\d.]+)$/i,
      select: function(Z, ue) {
        var me = m(ue.version);
        return Object.keys(n).filter(P(ue.sign, me)).map(function(xe) {
          return "chrome " + n[xe];
        });
      }
    },
    node_ray: {
      matches: ["sign", "version"],
      regexp: /^node\s*(>=?|<=?)\s*([\d.]+)$/i,
      select: function(Z, ue) {
        return ne.nodeVersions.filter(x(ue.sign, ue.version)).map(function(me) {
          return "node " + me;
        });
      }
    },
    browser_ray: {
      matches: ["browser", "sign", "version"],
      regexp: /^(\w+)\s*(>=?|<=?)\s*([\d.]+)$/,
      select: function(Z, ue) {
        var me = ue.version, xe = $(ue.browser, Z), Pe = ne.versionAliases[xe.name][me];
        return Pe && (me = Pe), xe.released.filter(P(ue.sign, me)).map(function(ve) {
          return xe.name + " " + ve;
        });
      }
    },
    firefox_esr: {
      matches: [],
      regexp: /^(firefox|ff|fx)\s+esr$/i,
      select: function() {
        return ["firefox 102"];
      }
    },
    opera_mini_all: {
      matches: [],
      regexp: /(operamini|op_mini)\s+all/i,
      select: function() {
        return ["op_mini all"];
      }
    },
    electron_version: {
      matches: ["version"],
      regexp: /^electron\s+([\d.]+)$/i,
      select: function(Z, ue) {
        var me = m(ue.version), xe = n[me];
        if (!xe)
          throw new s(
            "Unknown version " + ue.version + " of electron"
          );
        return ["chrome " + xe];
      }
    },
    node_major_version: {
      matches: ["version"],
      regexp: /^node\s+(\d+)$/i,
      select: ae
    },
    node_minor_version: {
      matches: ["version"],
      regexp: /^node\s+(\d+\.\d+)$/i,
      select: ae
    },
    node_patch_version: {
      matches: ["version"],
      regexp: /^node\s+(\d+\.\d+\.\d+)$/i,
      select: ae
    },
    current_node: {
      matches: [],
      regexp: /^current\s+node$/i,
      select: function(Z) {
        return [o.currentNode(z, Z)];
      }
    },
    maintained_node: {
      matches: [],
      regexp: /^maintained\s+node\s+versions$/i,
      select: function(Z) {
        var ue = Date.now(), me = Object.keys(r).filter(function(xe) {
          return ue < Date.parse(r[xe].end) && ue > Date.parse(r[xe].start) && f(xe);
        }).map(function(xe) {
          return "node " + xe.slice(1);
        });
        return z(me, Z);
      }
    },
    phantomjs_1_9: {
      matches: [],
      regexp: /^phantomjs\s+1.9$/i,
      select: function() {
        return ["safari 5"];
      }
    },
    phantomjs_2_1: {
      matches: [],
      regexp: /^phantomjs\s+2.1$/i,
      select: function() {
        return ["safari 6"];
      }
    },
    browser_version: {
      matches: ["browser", "version"],
      regexp: /^(\w+)\s+(tp|[\d.]+)$/i,
      select: function(Z, ue) {
        var me = ue.version;
        /^tp$/i.test(me) && (me = "TP");
        var xe = $(ue.browser, Z), Pe = O(xe, me);
        if (Pe)
          me = Pe;
        else if (me.indexOf(".") === -1 ? Pe = me + ".0" : Pe = me.replace(/\.0$/, ""), Pe = O(xe, Pe), Pe)
          me = Pe;
        else {
          if (Z.ignoreUnknownVersions)
            return [];
          throw new s(
            "Unknown version " + me + " of " + ue.browser
          );
        }
        return [xe.name + " " + me];
      }
    },
    browserslist_config: {
      matches: [],
      regexp: /^browserslist config$/i,
      select: function(Z) {
        return ne(void 0, Z);
      }
    },
    extends: {
      matches: ["config"],
      regexp: /^extends (.+)$/i,
      select: function(Z, ue) {
        return z(o.loadQueries(Z, ue.config), Z);
      }
    },
    defaults: {
      matches: [],
      regexp: /^defaults$/i,
      select: function(Z) {
        return z(ne.defaults, Z);
      }
    },
    dead: {
      matches: [],
      regexp: /^dead$/i,
      select: function(Z) {
        var ue = [
          "Baidu >= 0",
          "ie <= 11",
          "ie_mob <= 11",
          "bb <= 10",
          "op_mob <= 12.1",
          "samsung 4"
        ];
        return z(ue, Z);
      }
    },
    unknown: {
      matches: [],
      regexp: /^(\w+)$/i,
      select: function(Z, ue) {
        throw N(ue.query, Z) ? new s(
          "Specify versions in Browserslist query for browser " + ue.query
        ) : V(ue.query);
      }
    }
  };
  return function() {
    for (var Z in t) {
      var ue = t[Z];
      ne.data[Z] = {
        name: Z,
        versions: h(t[Z].versions),
        released: h(t[Z].versions.slice(0, -3)),
        releaseDate: t[Z].release_date
      }, S(ne.usage.global, Z, ue.usage_global), ne.versionAliases[Z] = {};
      for (var me = 0; me < ue.versions.length; me++) {
        var xe = ue.versions[me];
        if (xe && xe.indexOf("-") !== -1)
          for (var Pe = xe.split("-"), ve = 0; ve < Pe.length; ve++)
            ne.versionAliases[Z][Pe[ve]] = xe;
      }
    }
    ne.versionAliases.op_mob[59] = "58", ne.nodeVersions = e.map(function(Xe) {
      return Xe.version;
    });
  }(), ZR = ne, ZR;
}
var e3 = {}, Xb = {}, f1 = {}, bJ;
function Yde() {
  if (bJ)
    return f1;
  bJ = 1, Object.defineProperty(f1, "__esModule", {
    value: !0
  }), f1.findSuggestion = r;
  const {
    min: e
  } = Math;
  function t(i, n) {
    let s = [], a = [], o, l;
    const u = i.length, c = n.length;
    if (!u)
      return c;
    if (!c)
      return u;
    for (l = 0; l <= c; l++)
      s[l] = l;
    for (o = 1; o <= u; o++) {
      for (a = [o], l = 1; l <= c; l++)
        a[l] = i[o - 1] === n[l - 1] ? s[l - 1] : e(s[l - 1], s[l], a[l - 1]) + 1;
      s = a;
    }
    return a[c];
  }
  function r(i, n) {
    const s = n.map((a) => t(a, i));
    return n[s.indexOf(e(...s))];
  }
  return f1;
}
var vJ;
function dPt() {
  if (vJ)
    return Xb;
  vJ = 1, Object.defineProperty(Xb, "__esModule", {
    value: !0
  }), Xb.OptionValidator = void 0;
  var e = Yde();
  class t {
    constructor(i) {
      this.descriptor = i;
    }
    validateTopLevelOptions(i, n) {
      const s = Object.keys(n);
      for (const a of Object.keys(i))
        if (!s.includes(a))
          throw new Error(this.formatMessage("'".concat(a, "' is not a valid top-level option.\n- Did you mean '").concat((0, e.findSuggestion)(a, s), "'?")));
    }
    validateBooleanOption(i, n, s) {
      return n === void 0 ? s : (this.invariant(typeof n == "boolean", "'".concat(i, "' option must be a boolean.")), n);
    }
    validateStringOption(i, n, s) {
      return n === void 0 ? s : (this.invariant(typeof n == "string", "'".concat(i, "' option must be a string.")), n);
    }
    invariant(i, n) {
      if (!i)
        throw new Error(this.formatMessage(n));
    }
    formatMessage(i) {
      return "".concat(this.descriptor, ": ").concat(i);
    }
  }
  return Xb.OptionValidator = t, Xb;
}
var TJ;
function Xde() {
  return TJ || (TJ = 1, function(e) {
    Object.defineProperty(e, "__esModule", {
      value: !0
    }), Object.defineProperty(e, "OptionValidator", {
      enumerable: !0,
      get: function() {
        return t.OptionValidator;
      }
    }), Object.defineProperty(e, "findSuggestion", {
      enumerable: !0,
      get: function() {
        return r.findSuggestion;
      }
    });
    var t = dPt(), r = Yde();
  }(e3)), e3;
}
const mPt = {
  "es6.module": {
    chrome: "61",
    and_chr: "61",
    edge: "16",
    firefox: "60",
    and_ff: "60",
    node: "13.2.0",
    opera: "48",
    op_mob: "48",
    safari: "10.1",
    ios: "10.3",
    samsung: "8.2",
    android: "61",
    electron: "2.0",
    ios_saf: "10.3"
  }
};
var t3, SJ;
function yPt() {
  return SJ || (SJ = 1, t3 = mPt), t3;
}
var r3, xJ;
function gPt() {
  return xJ || (xJ = 1, r3 = function(e) {
    e.prototype[Symbol.iterator] = function* () {
      for (let t = this.head; t; t = t.next)
        yield t.value;
    };
  }), r3;
}
var i3, EJ;
function bPt() {
  if (EJ)
    return i3;
  EJ = 1, i3 = e, e.Node = n, e.create = e;
  function e(s) {
    var a = this;
    if (a instanceof e || (a = new e()), a.tail = null, a.head = null, a.length = 0, s && typeof s.forEach == "function")
      s.forEach(function(u) {
        a.push(u);
      });
    else if (arguments.length > 0)
      for (var o = 0, l = arguments.length; o < l; o++)
        a.push(arguments[o]);
    return a;
  }
  e.prototype.removeNode = function(s) {
    if (s.list !== this)
      throw new Error("removing node which does not belong to this list");
    var a = s.next, o = s.prev;
    return a && (a.prev = o), o && (o.next = a), s === this.head && (this.head = a), s === this.tail && (this.tail = o), s.list.length--, s.next = null, s.prev = null, s.list = null, a;
  }, e.prototype.unshiftNode = function(s) {
    if (s !== this.head) {
      s.list && s.list.removeNode(s);
      var a = this.head;
      s.list = this, s.next = a, a && (a.prev = s), this.head = s, this.tail || (this.tail = s), this.length++;
    }
  }, e.prototype.pushNode = function(s) {
    if (s !== this.tail) {
      s.list && s.list.removeNode(s);
      var a = this.tail;
      s.list = this, s.prev = a, a && (a.next = s), this.tail = s, this.head || (this.head = s), this.length++;
    }
  }, e.prototype.push = function() {
    for (var s = 0, a = arguments.length; s < a; s++)
      r(this, arguments[s]);
    return this.length;
  }, e.prototype.unshift = function() {
    for (var s = 0, a = arguments.length; s < a; s++)
      i(this, arguments[s]);
    return this.length;
  }, e.prototype.pop = function() {
    if (this.tail) {
      var s = this.tail.value;
      return this.tail = this.tail.prev, this.tail ? this.tail.next = null : this.head = null, this.length--, s;
    }
  }, e.prototype.shift = function() {
    if (this.head) {
      var s = this.head.value;
      return this.head = this.head.next, this.head ? this.head.prev = null : this.tail = null, this.length--, s;
    }
  }, e.prototype.forEach = function(s, a) {
    a = a || this;
    for (var o = this.head, l = 0; o !== null; l++)
      s.call(a, o.value, l, this), o = o.next;
  }, e.prototype.forEachReverse = function(s, a) {
    a = a || this;
    for (var o = this.tail, l = this.length - 1; o !== null; l--)
      s.call(a, o.value, l, this), o = o.prev;
  }, e.prototype.get = function(s) {
    for (var a = 0, o = this.head; o !== null && a < s; a++)
      o = o.next;
    if (a === s && o !== null)
      return o.value;
  }, e.prototype.getReverse = function(s) {
    for (var a = 0, o = this.tail; o !== null && a < s; a++)
      o = o.prev;
    if (a === s && o !== null)
      return o.value;
  }, e.prototype.map = function(s, a) {
    a = a || this;
    for (var o = new e(), l = this.head; l !== null; )
      o.push(s.call(a, l.value, this)), l = l.next;
    return o;
  }, e.prototype.mapReverse = function(s, a) {
    a = a || this;
    for (var o = new e(), l = this.tail; l !== null; )
      o.push(s.call(a, l.value, this)), l = l.prev;
    return o;
  }, e.prototype.reduce = function(s, a) {
    var o, l = this.head;
    if (arguments.length > 1)
      o = a;
    else if (this.head)
      l = this.head.next, o = this.head.value;
    else
      throw new TypeError("Reduce of empty list with no initial value");
    for (var u = 0; l !== null; u++)
      o = s(o, l.value, u), l = l.next;
    return o;
  }, e.prototype.reduceReverse = function(s, a) {
    var o, l = this.tail;
    if (arguments.length > 1)
      o = a;
    else if (this.tail)
      l = this.tail.prev, o = this.tail.value;
    else
      throw new TypeError("Reduce of empty list with no initial value");
    for (var u = this.length - 1; l !== null; u--)
      o = s(o, l.value, u), l = l.prev;
    return o;
  }, e.prototype.toArray = function() {
    for (var s = new Array(this.length), a = 0, o = this.head; o !== null; a++)
      s[a] = o.value, o = o.next;
    return s;
  }, e.prototype.toArrayReverse = function() {
    for (var s = new Array(this.length), a = 0, o = this.tail; o !== null; a++)
      s[a] = o.value, o = o.prev;
    return s;
  }, e.prototype.slice = function(s, a) {
    a = a || this.length, a < 0 && (a += this.length), s = s || 0, s < 0 && (s += this.length);
    var o = new e();
    if (a < s || a < 0)
      return o;
    s < 0 && (s = 0), a > this.length && (a = this.length);
    for (var l = 0, u = this.head; u !== null && l < s; l++)
      u = u.next;
    for (; u !== null && l < a; l++, u = u.next)
      o.push(u.value);
    return o;
  }, e.prototype.sliceReverse = function(s, a) {
    a = a || this.length, a < 0 && (a += this.length), s = s || 0, s < 0 && (s += this.length);
    var o = new e();
    if (a < s || a < 0)
      return o;
    s < 0 && (s = 0), a > this.length && (a = this.length);
    for (var l = this.length, u = this.tail; u !== null && l > a; l--)
      u = u.prev;
    for (; u !== null && l > s; l--, u = u.prev)
      o.push(u.value);
    return o;
  }, e.prototype.splice = function(s, a) {
    s > this.length && (s = this.length - 1), s < 0 && (s = this.length + s);
    for (var o = 0, l = this.head; l !== null && o < s; o++)
      l = l.next;
    for (var u = [], o = 0; l && o < a; o++)
      u.push(l.value), l = this.removeNode(l);
    l === null && (l = this.tail), l !== this.head && l !== this.tail && (l = l.prev);
    for (var o = 2; o < arguments.length; o++)
      l = t(this, l, arguments[o]);
    return u;
  }, e.prototype.reverse = function() {
    for (var s = this.head, a = this.tail, o = s; o !== null; o = o.prev) {
      var l = o.prev;
      o.prev = o.next, o.next = l;
    }
    return this.head = a, this.tail = s, this;
  };
  function t(s, a, o) {
    var l = a === s.head ? new n(o, null, a, s) : new n(o, a, a.next, s);
    return l.next === null && (s.tail = l), l.prev === null && (s.head = l), s.length++, l;
  }
  function r(s, a) {
    s.tail = new n(a, s.tail, null, s), s.head || (s.head = s.tail), s.length++;
  }
  function i(s, a) {
    s.head = new n(a, null, s.head, s), s.tail || (s.tail = s.head), s.length++;
  }
  function n(s, a, o, l) {
    if (!(this instanceof n))
      return new n(s, a, o, l);
    this.list = l, this.value = s, a ? (a.next = this, this.prev = a) : this.prev = null, o ? (o.prev = this, this.next = o) : this.next = null;
  }
  try {
    gPt()(e);
  } catch (s) {
  }
  return i3;
}
var n3, PJ;
function vPt() {
  if (PJ)
    return n3;
  PJ = 1;
  const e = bPt(), t = Symbol("max"), r = Symbol("length"), i = Symbol("lengthCalculator"), n = Symbol("allowStale"), s = Symbol("maxAge"), a = Symbol("dispose"), o = Symbol("noDisposeOnSet"), l = Symbol("lruList"), u = Symbol("cache"), c = Symbol("updateAgeOnGet"), f = () => 1;
  class h {
    constructor(x) {
      if (typeof x == "number" && (x = { max: x }), x || (x = {}), x.max && (typeof x.max != "number" || x.max < 0))
        throw new TypeError("max must be a non-negative number");
      this[t] = x.max || 1 / 0;
      const C = x.length || f;
      if (this[i] = typeof C != "function" ? f : C, this[n] = x.stale || !1, x.maxAge && typeof x.maxAge != "number")
        throw new TypeError("maxAge must be a number");
      this[s] = x.maxAge || 0, this[a] = x.dispose, this[o] = x.noDisposeOnSet || !1, this[c] = x.updateAgeOnGet || !1, this.reset();
    }
    // resize the cache when the max changes.
    set max(x) {
      if (typeof x != "number" || x < 0)
        throw new TypeError("max must be a non-negative number");
      this[t] = x || 1 / 0, y(this);
    }
    get max() {
      return this[t];
    }
    set allowStale(x) {
      this[n] = !!x;
    }
    get allowStale() {
      return this[n];
    }
    set maxAge(x) {
      if (typeof x != "number")
        throw new TypeError("maxAge must be a non-negative number");
      this[s] = x, y(this);
    }
    get maxAge() {
      return this[s];
    }
    // resize the cache when the lengthCalculator changes.
    set lengthCalculator(x) {
      typeof x != "function" && (x = f), x !== this[i] && (this[i] = x, this[r] = 0, this[l].forEach((C) => {
        C.length = this[i](C.value, C.key), this[r] += C.length;
      })), y(this);
    }
    get lengthCalculator() {
      return this[i];
    }
    get length() {
      return this[r];
    }
    get itemCount() {
      return this[l].length;
    }
    rforEach(x, C) {
      C = C || this;
      for (let D = this[l].tail; D !== null; ) {
        const w = D.prev;
        S(this, x, D, C), D = w;
      }
    }
    forEach(x, C) {
      C = C || this;
      for (let D = this[l].head; D !== null; ) {
        const w = D.next;
        S(this, x, D, C), D = w;
      }
    }
    keys() {
      return this[l].toArray().map((x) => x.key);
    }
    values() {
      return this[l].toArray().map((x) => x.value);
    }
    reset() {
      this[a] && this[l] && this[l].length && this[l].forEach((x) => this[a](x.key, x.value)), this[u] = /* @__PURE__ */ new Map(), this[l] = new e(), this[r] = 0;
    }
    dump() {
      return this[l].map((x) => g(this, x) ? !1 : {
        k: x.key,
        v: x.value,
        e: x.now + (x.maxAge || 0)
      }).toArray().filter((x) => x);
    }
    dumpLru() {
      return this[l];
    }
    set(x, C, D) {
      if (D = D || this[s], D && typeof D != "number")
        throw new TypeError("maxAge must be a number");
      const w = D ? Date.now() : 0, A = this[i](C, x);
      if (this[u].has(x)) {
        if (A > this[t])
          return v(this, this[u].get(x)), !1;
        const O = this[u].get(x).value;
        return this[a] && (this[o] || this[a](x, O.value)), O.now = w, O.maxAge = D, O.value = C, this[r] += A - O.length, O.length = A, this.get(x), y(this), !0;
      }
      const I = new T(x, C, A, w, D);
      return I.length > this[t] ? (this[a] && this[a](x, C), !1) : (this[r] += I.length, this[l].unshift(I), this[u].set(x, this[l].head), y(this), !0);
    }
    has(x) {
      if (!this[u].has(x))
        return !1;
      const C = this[u].get(x).value;
      return !g(this, C);
    }
    get(x) {
      return m(this, x, !0);
    }
    peek(x) {
      return m(this, x, !1);
    }
    pop() {
      const x = this[l].tail;
      return x ? (v(this, x), x.value) : null;
    }
    del(x) {
      v(this, this[u].get(x));
    }
    load(x) {
      this.reset();
      const C = Date.now();
      for (let D = x.length - 1; D >= 0; D--) {
        const w = x[D], A = w.e || 0;
        if (A === 0)
          this.set(w.k, w.v);
        else {
          const I = A - C;
          I > 0 && this.set(w.k, w.v, I);
        }
      }
    }
    prune() {
      this[u].forEach((x, C) => m(this, C, !1));
    }
  }
  const m = (P, x, C) => {
    const D = P[u].get(x);
    if (D) {
      const w = D.value;
      if (g(P, w)) {
        if (v(P, D), !P[n])
          return;
      } else
        C && (P[c] && (D.value.now = Date.now()), P[l].unshiftNode(D));
      return w.value;
    }
  }, g = (P, x) => {
    if (!x || !x.maxAge && !P[s])
      return !1;
    const C = Date.now() - x.now;
    return x.maxAge ? C > x.maxAge : P[s] && C > P[s];
  }, y = (P) => {
    if (P[r] > P[t])
      for (let x = P[l].tail; P[r] > P[t] && x !== null; ) {
        const C = x.prev;
        v(P, x), x = C;
      }
  }, v = (P, x) => {
    if (x) {
      const C = x.value;
      P[a] && P[a](C.key, C.value), P[r] -= C.length, P[u].delete(C.key), P[l].removeNode(x);
    }
  };
  class T {
    constructor(x, C, D, w, A) {
      this.key = x, this.value = C, this.length = D, this.now = w, this.maxAge = A || 0;
    }
  }
  const S = (P, x, C, D) => {
    let w = C.value;
    g(P, w) && (v(P, C), P[n] || (w = void 0)), w && x.call(D, w.value, w.key, P);
  };
  return n3 = h, n3;
}
var jp = {}, h1 = { exports: {} }, wJ;
function Z_() {
  return wJ || (wJ = 1, function(e, t) {
    t = e.exports = w;
    var r;
    typeof process == "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? r = function() {
      var X = Array.prototype.slice.call(arguments, 0);
      X.unshift("SEMVER"), console.log.apply(console, X);
    } : r = function() {
    }, t.SEMVER_SPEC_VERSION = "2.0.0";
    var i = 256, n = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */
    9007199254740991, s = 16, a = i - 6, o = t.re = [], l = t.safeRe = [], u = t.src = [], c = t.tokens = {}, f = 0;
    function h(X) {
      c[X] = f++;
    }
    var m = "[a-zA-Z0-9-]", g = [
      ["\\s", 1],
      ["\\d", i],
      [m, a]
    ];
    function y(X) {
      for (var ce = 0; ce < g.length; ce++) {
        var U = g[ce][0], Ee = g[ce][1];
        X = X.split(U + "*").join(U + "{0," + Ee + "}").split(U + "+").join(U + "{1," + Ee + "}");
      }
      return X;
    }
    h("NUMERICIDENTIFIER"), u[c.NUMERICIDENTIFIER] = "0|[1-9]\\d*", h("NUMERICIDENTIFIERLOOSE"), u[c.NUMERICIDENTIFIERLOOSE] = "\\d+", h("NONNUMERICIDENTIFIER"), u[c.NONNUMERICIDENTIFIER] = "\\d*[a-zA-Z-]" + m + "*", h("MAINVERSION"), u[c.MAINVERSION] = "(" + u[c.NUMERICIDENTIFIER] + ")\\.(" + u[c.NUMERICIDENTIFIER] + ")\\.(" + u[c.NUMERICIDENTIFIER] + ")", h("MAINVERSIONLOOSE"), u[c.MAINVERSIONLOOSE] = "(" + u[c.NUMERICIDENTIFIERLOOSE] + ")\\.(" + u[c.NUMERICIDENTIFIERLOOSE] + ")\\.(" + u[c.NUMERICIDENTIFIERLOOSE] + ")", h("PRERELEASEIDENTIFIER"), u[c.PRERELEASEIDENTIFIER] = "(?:" + u[c.NUMERICIDENTIFIER] + "|" + u[c.NONNUMERICIDENTIFIER] + ")", h("PRERELEASEIDENTIFIERLOOSE"), u[c.PRERELEASEIDENTIFIERLOOSE] = "(?:" + u[c.NUMERICIDENTIFIERLOOSE] + "|" + u[c.NONNUMERICIDENTIFIER] + ")", h("PRERELEASE"), u[c.PRERELEASE] = "(?:-(" + u[c.PRERELEASEIDENTIFIER] + "(?:\\." + u[c.PRERELEASEIDENTIFIER] + ")*))", h("PRERELEASELOOSE"), u[c.PRERELEASELOOSE] = "(?:-?(" + u[c.PRERELEASEIDENTIFIERLOOSE] + "(?:\\." + u[c.PRERELEASEIDENTIFIERLOOSE] + ")*))", h("BUILDIDENTIFIER"), u[c.BUILDIDENTIFIER] = m + "+", h("BUILD"), u[c.BUILD] = "(?:\\+(" + u[c.BUILDIDENTIFIER] + "(?:\\." + u[c.BUILDIDENTIFIER] + ")*))", h("FULL"), h("FULLPLAIN"), u[c.FULLPLAIN] = "v?" + u[c.MAINVERSION] + u[c.PRERELEASE] + "?" + u[c.BUILD] + "?", u[c.FULL] = "^" + u[c.FULLPLAIN] + "$", h("LOOSEPLAIN"), u[c.LOOSEPLAIN] = "[v=\\s]*" + u[c.MAINVERSIONLOOSE] + u[c.PRERELEASELOOSE] + "?" + u[c.BUILD] + "?", h("LOOSE"), u[c.LOOSE] = "^" + u[c.LOOSEPLAIN] + "$", h("GTLT"), u[c.GTLT] = "((?:<|>)?=?)", h("XRANGEIDENTIFIERLOOSE"), u[c.XRANGEIDENTIFIERLOOSE] = u[c.NUMERICIDENTIFIERLOOSE] + "|x|X|\\*", h("XRANGEIDENTIFIER"), u[c.XRANGEIDENTIFIER] = u[c.NUMERICIDENTIFIER] + "|x|X|\\*", h("XRANGEPLAIN"), u[c.XRANGEPLAIN] = "[v=\\s]*(" + u[c.XRANGEIDENTIFIER] + ")(?:\\.(" + u[c.XRANGEIDENTIFIER] + ")(?:\\.(" + u[c.XRANGEIDENTIFIER] + ")(?:" + u[c.PRERELEASE] + ")?" + u[c.BUILD] + "?)?)?", h("XRANGEPLAINLOOSE"), u[c.XRANGEPLAINLOOSE] = "[v=\\s]*(" + u[c.XRANGEIDENTIFIERLOOSE] + ")(?:\\.(" + u[c.XRANGEIDENTIFIERLOOSE] + ")(?:\\.(" + u[c.XRANGEIDENTIFIERLOOSE] + ")(?:" + u[c.PRERELEASELOOSE] + ")?" + u[c.BUILD] + "?)?)?", h("XRANGE"), u[c.XRANGE] = "^" + u[c.GTLT] + "\\s*" + u[c.XRANGEPLAIN] + "$", h("XRANGELOOSE"), u[c.XRANGELOOSE] = "^" + u[c.GTLT] + "\\s*" + u[c.XRANGEPLAINLOOSE] + "$", h("COERCE"), u[c.COERCE] = "(^|[^\\d])(\\d{1," + s + "})(?:\\.(\\d{1," + s + "}))?(?:\\.(\\d{1," + s + "}))?(?:$|[^\\d])", h("COERCERTL"), o[c.COERCERTL] = new RegExp(u[c.COERCE], "g"), l[c.COERCERTL] = new RegExp(y(u[c.COERCE]), "g"), h("LONETILDE"), u[c.LONETILDE] = "(?:~>?)", h("TILDETRIM"), u[c.TILDETRIM] = "(\\s*)" + u[c.LONETILDE] + "\\s+", o[c.TILDETRIM] = new RegExp(u[c.TILDETRIM], "g"), l[c.TILDETRIM] = new RegExp(y(u[c.TILDETRIM]), "g");
    var v = "$1~";
    h("TILDE"), u[c.TILDE] = "^" + u[c.LONETILDE] + u[c.XRANGEPLAIN] + "$", h("TILDELOOSE"), u[c.TILDELOOSE] = "^" + u[c.LONETILDE] + u[c.XRANGEPLAINLOOSE] + "$", h("LONECARET"), u[c.LONECARET] = "(?:\\^)", h("CARETTRIM"), u[c.CARETTRIM] = "(\\s*)" + u[c.LONECARET] + "\\s+", o[c.CARETTRIM] = new RegExp(u[c.CARETTRIM], "g"), l[c.CARETTRIM] = new RegExp(y(u[c.CARETTRIM]), "g");
    var T = "$1^";
    h("CARET"), u[c.CARET] = "^" + u[c.LONECARET] + u[c.XRANGEPLAIN] + "$", h("CARETLOOSE"), u[c.CARETLOOSE] = "^" + u[c.LONECARET] + u[c.XRANGEPLAINLOOSE] + "$", h("COMPARATORLOOSE"), u[c.COMPARATORLOOSE] = "^" + u[c.GTLT] + "\\s*(" + u[c.LOOSEPLAIN] + ")$|^$", h("COMPARATOR"), u[c.COMPARATOR] = "^" + u[c.GTLT] + "\\s*(" + u[c.FULLPLAIN] + ")$|^$", h("COMPARATORTRIM"), u[c.COMPARATORTRIM] = "(\\s*)" + u[c.GTLT] + "\\s*(" + u[c.LOOSEPLAIN] + "|" + u[c.XRANGEPLAIN] + ")", o[c.COMPARATORTRIM] = new RegExp(u[c.COMPARATORTRIM], "g"), l[c.COMPARATORTRIM] = new RegExp(y(u[c.COMPARATORTRIM]), "g");
    var S = "$1$2$3";
    h("HYPHENRANGE"), u[c.HYPHENRANGE] = "^\\s*(" + u[c.XRANGEPLAIN] + ")\\s+-\\s+(" + u[c.XRANGEPLAIN] + ")\\s*$", h("HYPHENRANGELOOSE"), u[c.HYPHENRANGELOOSE] = "^\\s*(" + u[c.XRANGEPLAINLOOSE] + ")\\s+-\\s+(" + u[c.XRANGEPLAINLOOSE] + ")\\s*$", h("STAR"), u[c.STAR] = "(<|>)?=?\\s*\\*";
    for (var P = 0; P < f; P++)
      r(P, u[P]), o[P] || (o[P] = new RegExp(u[P]), l[P] = new RegExp(y(u[P])));
    t.parse = x;
    function x(X, ce) {
      if ((!ce || typeof ce != "object") && (ce = {
        loose: !!ce,
        includePrerelease: !1
      }), X instanceof w)
        return X;
      if (typeof X != "string" || X.length > i)
        return null;
      var U = ce.loose ? l[c.LOOSE] : l[c.FULL];
      if (!U.test(X))
        return null;
      try {
        return new w(X, ce);
      } catch (Ee) {
        return null;
      }
    }
    t.valid = C;
    function C(X, ce) {
      var U = x(X, ce);
      return U ? U.version : null;
    }
    t.clean = D;
    function D(X, ce) {
      var U = x(X.trim().replace(/^[=v]+/, ""), ce);
      return U ? U.version : null;
    }
    t.SemVer = w;
    function w(X, ce) {
      if ((!ce || typeof ce != "object") && (ce = {
        loose: !!ce,
        includePrerelease: !1
      }), X instanceof w) {
        if (X.loose === ce.loose)
          return X;
        X = X.version;
      } else if (typeof X != "string")
        throw new TypeError("Invalid Version: " + X);
      if (X.length > i)
        throw new TypeError("version is longer than " + i + " characters");
      if (!(this instanceof w))
        return new w(X, ce);
      r("SemVer", X, ce), this.options = ce, this.loose = !!ce.loose;
      var U = X.trim().match(ce.loose ? l[c.LOOSE] : l[c.FULL]);
      if (!U)
        throw new TypeError("Invalid Version: " + X);
      if (this.raw = X, this.major = +U[1], this.minor = +U[2], this.patch = +U[3], this.major > n || this.major < 0)
        throw new TypeError("Invalid major version");
      if (this.minor > n || this.minor < 0)
        throw new TypeError("Invalid minor version");
      if (this.patch > n || this.patch < 0)
        throw new TypeError("Invalid patch version");
      U[4] ? this.prerelease = U[4].split(".").map(function(Ee) {
        if (/^[0-9]+$/.test(Ee)) {
          var Qe = +Ee;
          if (Qe >= 0 && Qe < n)
            return Qe;
        }
        return Ee;
      }) : this.prerelease = [], this.build = U[5] ? U[5].split(".") : [], this.format();
    }
    w.prototype.format = function() {
      return this.version = this.major + "." + this.minor + "." + this.patch, this.prerelease.length && (this.version += "-" + this.prerelease.join(".")), this.version;
    }, w.prototype.toString = function() {
      return this.version;
    }, w.prototype.compare = function(X) {
      return r("SemVer.compare", this.version, this.options, X), X instanceof w || (X = new w(X, this.options)), this.compareMain(X) || this.comparePre(X);
    }, w.prototype.compareMain = function(X) {
      return X instanceof w || (X = new w(X, this.options)), O(this.major, X.major) || O(this.minor, X.minor) || O(this.patch, X.patch);
    }, w.prototype.comparePre = function(X) {
      if (X instanceof w || (X = new w(X, this.options)), this.prerelease.length && !X.prerelease.length)
        return -1;
      if (!this.prerelease.length && X.prerelease.length)
        return 1;
      if (!this.prerelease.length && !X.prerelease.length)
        return 0;
      var ce = 0;
      do {
        var U = this.prerelease[ce], Ee = X.prerelease[ce];
        if (r("prerelease compare", ce, U, Ee), U === void 0 && Ee === void 0)
          return 0;
        if (Ee === void 0)
          return 1;
        if (U === void 0)
          return -1;
        if (U === Ee)
          continue;
        return O(U, Ee);
      } while (++ce);
    }, w.prototype.compareBuild = function(X) {
      X instanceof w || (X = new w(X, this.options));
      var ce = 0;
      do {
        var U = this.build[ce], Ee = X.build[ce];
        if (r("prerelease compare", ce, U, Ee), U === void 0 && Ee === void 0)
          return 0;
        if (Ee === void 0)
          return 1;
        if (U === void 0)
          return -1;
        if (U === Ee)
          continue;
        return O(U, Ee);
      } while (++ce);
    }, w.prototype.inc = function(X, ce) {
      switch (X) {
        case "premajor":
          this.prerelease.length = 0, this.patch = 0, this.minor = 0, this.major++, this.inc("pre", ce);
          break;
        case "preminor":
          this.prerelease.length = 0, this.patch = 0, this.minor++, this.inc("pre", ce);
          break;
        case "prepatch":
          this.prerelease.length = 0, this.inc("patch", ce), this.inc("pre", ce);
          break;
        case "prerelease":
          this.prerelease.length === 0 && this.inc("patch", ce), this.inc("pre", ce);
          break;
        case "major":
          (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) && this.major++, this.minor = 0, this.patch = 0, this.prerelease = [];
          break;
        case "minor":
          (this.patch !== 0 || this.prerelease.length === 0) && this.minor++, this.patch = 0, this.prerelease = [];
          break;
        case "patch":
          this.prerelease.length === 0 && this.patch++, this.prerelease = [];
          break;
        case "pre":
          if (this.prerelease.length === 0)
            this.prerelease = [0];
          else {
            for (var U = this.prerelease.length; --U >= 0; )
              typeof this.prerelease[U] == "number" && (this.prerelease[U]++, U = -2);
            U === -1 && this.prerelease.push(0);
          }
          ce && (this.prerelease[0] === ce ? isNaN(this.prerelease[1]) && (this.prerelease = [ce, 0]) : this.prerelease = [ce, 0]);
          break;
        default:
          throw new Error("invalid increment argument: " + X);
      }
      return this.format(), this.raw = this.version, this;
    }, t.inc = A;
    function A(X, ce, U, Ee) {
      typeof U == "string" && (Ee = U, U = void 0);
      try {
        return new w(X, U).inc(ce, Ee).version;
      } catch (Qe) {
        return null;
      }
    }
    t.diff = I;
    function I(X, ce) {
      if (G(X, ce))
        return null;
      var U = x(X), Ee = x(ce), Qe = "";
      if (U.prerelease.length || Ee.prerelease.length) {
        Qe = "pre";
        var ft = "prerelease";
      }
      for (var ht in U)
        if ((ht === "major" || ht === "minor" || ht === "patch") && U[ht] !== Ee[ht])
          return Qe + ht;
      return ft;
    }
    t.compareIdentifiers = O;
    var L = /^[0-9]+$/;
    function O(X, ce) {
      var U = L.test(X), Ee = L.test(ce);
      return U && Ee && (X = +X, ce = +ce), X === ce ? 0 : U && !Ee ? -1 : Ee && !U ? 1 : X < ce ? -1 : 1;
    }
    t.rcompareIdentifiers = F;
    function F(X, ce) {
      return O(ce, X);
    }
    t.major = q;
    function q(X, ce) {
      return new w(X, ce).major;
    }
    t.minor = j;
    function j(X, ce) {
      return new w(X, ce).minor;
    }
    t.patch = N;
    function N(X, ce) {
      return new w(X, ce).patch;
    }
    t.compare = M;
    function M(X, ce, U) {
      return new w(X, U).compare(new w(ce, U));
    }
    t.compareLoose = R;
    function R(X, ce) {
      return M(X, ce, !0);
    }
    t.compareBuild = $;
    function $(X, ce, U) {
      var Ee = new w(X, U), Qe = new w(ce, U);
      return Ee.compare(Qe) || Ee.compareBuild(Qe);
    }
    t.rcompare = V;
    function V(X, ce, U) {
      return M(ce, X, U);
    }
    t.sort = K;
    function K(X, ce) {
      return X.sort(function(U, Ee) {
        return t.compareBuild(U, Ee, ce);
      });
    }
    t.rsort = z;
    function z(X, ce) {
      return X.sort(function(U, Ee) {
        return t.compareBuild(Ee, U, ce);
      });
    }
    t.gt = W;
    function W(X, ce, U) {
      return M(X, ce, U) > 0;
    }
    t.lt = Y;
    function Y(X, ce, U) {
      return M(X, ce, U) < 0;
    }
    t.eq = G;
    function G(X, ce, U) {
      return M(X, ce, U) === 0;
    }
    t.neq = le;
    function le(X, ce, U) {
      return M(X, ce, U) !== 0;
    }
    t.gte = ne;
    function ne(X, ce, U) {
      return M(X, ce, U) >= 0;
    }
    t.lte = ae;
    function ae(X, ce, U) {
      return M(X, ce, U) <= 0;
    }
    t.cmp = be;
    function be(X, ce, U, Ee) {
      switch (ce) {
        case "===":
          return typeof X == "object" && (X = X.version), typeof U == "object" && (U = U.version), X === U;
        case "!==":
          return typeof X == "object" && (X = X.version), typeof U == "object" && (U = U.version), X !== U;
        case "":
        case "=":
        case "==":
          return G(X, U, Ee);
        case "!=":
          return le(X, U, Ee);
        case ">":
          return W(X, U, Ee);
        case ">=":
          return ne(X, U, Ee);
        case "<":
          return Y(X, U, Ee);
        case "<=":
          return ae(X, U, Ee);
        default:
          throw new TypeError("Invalid operator: " + ce);
      }
    }
    t.Comparator = ye;
    function ye(X, ce) {
      if ((!ce || typeof ce != "object") && (ce = {
        loose: !!ce,
        includePrerelease: !1
      }), X instanceof ye) {
        if (X.loose === !!ce.loose)
          return X;
        X = X.value;
      }
      if (!(this instanceof ye))
        return new ye(X, ce);
      X = X.trim().split(/\s+/).join(" "), r("comparator", X, ce), this.options = ce, this.loose = !!ce.loose, this.parse(X), this.semver === fe ? this.value = "" : this.value = this.operator + this.semver.version, r("comp", this);
    }
    var fe = {};
    ye.prototype.parse = function(X) {
      var ce = this.options.loose ? l[c.COMPARATORLOOSE] : l[c.COMPARATOR], U = X.match(ce);
      if (!U)
        throw new TypeError("Invalid comparator: " + X);
      this.operator = U[1] !== void 0 ? U[1] : "", this.operator === "=" && (this.operator = ""), U[2] ? this.semver = new w(U[2], this.options.loose) : this.semver = fe;
    }, ye.prototype.toString = function() {
      return this.value;
    }, ye.prototype.test = function(X) {
      if (r("Comparator.test", X, this.options.loose), this.semver === fe || X === fe)
        return !0;
      if (typeof X == "string")
        try {
          X = new w(X, this.options);
        } catch (ce) {
          return !1;
        }
      return be(X, this.operator, this.semver, this.options);
    }, ye.prototype.intersects = function(X, ce) {
      if (!(X instanceof ye))
        throw new TypeError("a Comparator is required");
      (!ce || typeof ce != "object") && (ce = {
        loose: !!ce,
        includePrerelease: !1
      });
      var U;
      if (this.operator === "")
        return this.value === "" ? !0 : (U = new Z(X.value, ce), ze(this.value, U, ce));
      if (X.operator === "")
        return X.value === "" ? !0 : (U = new Z(this.value, ce), ze(X.semver, U, ce));
      var Ee = (this.operator === ">=" || this.operator === ">") && (X.operator === ">=" || X.operator === ">"), Qe = (this.operator === "<=" || this.operator === "<") && (X.operator === "<=" || X.operator === "<"), ft = this.semver.version === X.semver.version, ht = (this.operator === ">=" || this.operator === "<=") && (X.operator === ">=" || X.operator === "<="), Rt = be(this.semver, "<", X.semver, ce) && (this.operator === ">=" || this.operator === ">") && (X.operator === "<=" || X.operator === "<"), Ot = be(this.semver, ">", X.semver, ce) && (this.operator === "<=" || this.operator === "<") && (X.operator === ">=" || X.operator === ">");
      return Ee || Qe || ft && ht || Rt || Ot;
    }, t.Range = Z;
    function Z(X, ce) {
      if ((!ce || typeof ce != "object") && (ce = {
        loose: !!ce,
        includePrerelease: !1
      }), X instanceof Z)
        return X.loose === !!ce.loose && X.includePrerelease === !!ce.includePrerelease ? X : new Z(X.raw, ce);
      if (X instanceof ye)
        return new Z(X.value, ce);
      if (!(this instanceof Z))
        return new Z(X, ce);
      if (this.options = ce, this.loose = !!ce.loose, this.includePrerelease = !!ce.includePrerelease, this.raw = X.trim().split(/\s+/).join(" "), this.set = this.raw.split("||").map(function(U) {
        return this.parseRange(U.trim());
      }, this).filter(function(U) {
        return U.length;
      }), !this.set.length)
        throw new TypeError("Invalid SemVer Range: " + this.raw);
      this.format();
    }
    Z.prototype.format = function() {
      return this.range = this.set.map(function(X) {
        return X.join(" ").trim();
      }).join("||").trim(), this.range;
    }, Z.prototype.toString = function() {
      return this.range;
    }, Z.prototype.parseRange = function(X) {
      var ce = this.options.loose, U = ce ? l[c.HYPHENRANGELOOSE] : l[c.HYPHENRANGE];
      X = X.replace(U, re), r("hyphen replace", X), X = X.replace(l[c.COMPARATORTRIM], S), r("comparator trim", X, l[c.COMPARATORTRIM]), X = X.replace(l[c.TILDETRIM], v), X = X.replace(l[c.CARETTRIM], T), X = X.split(/\s+/).join(" ");
      var Ee = ce ? l[c.COMPARATORLOOSE] : l[c.COMPARATOR], Qe = X.split(" ").map(function(ft) {
        return xe(ft, this.options);
      }, this).join(" ").split(/\s+/);
      return this.options.loose && (Qe = Qe.filter(function(ft) {
        return !!ft.match(Ee);
      })), Qe = Qe.map(function(ft) {
        return new ye(ft, this.options);
      }, this), Qe;
    }, Z.prototype.intersects = function(X, ce) {
      if (!(X instanceof Z))
        throw new TypeError("a Range is required");
      return this.set.some(function(U) {
        return ue(U, ce) && X.set.some(function(Ee) {
          return ue(Ee, ce) && U.every(function(Qe) {
            return Ee.every(function(ft) {
              return Qe.intersects(ft, ce);
            });
          });
        });
      });
    };
    function ue(X, ce) {
      for (var U = !0, Ee = X.slice(), Qe = Ee.pop(); U && Ee.length; )
        U = Ee.every(function(ft) {
          return Qe.intersects(ft, ce);
        }), Qe = Ee.pop();
      return U;
    }
    t.toComparators = me;
    function me(X, ce) {
      return new Z(X, ce).set.map(function(U) {
        return U.map(function(Ee) {
          return Ee.value;
        }).join(" ").trim().split(" ");
      });
    }
    function xe(X, ce) {
      return r("comp", X, ce), X = st(X, ce), r("caret", X), X = ve(X, ce), r("tildes", X), X = oe(X, ce), r("xrange", X), X = se(X, ce), r("stars", X), X;
    }
    function Pe(X) {
      return !X || X.toLowerCase() === "x" || X === "*";
    }
    function ve(X, ce) {
      return X.trim().split(/\s+/).map(function(U) {
        return Xe(U, ce);
      }).join(" ");
    }
    function Xe(X, ce) {
      var U = ce.loose ? l[c.TILDELOOSE] : l[c.TILDE];
      return X.replace(U, function(Ee, Qe, ft, ht, Rt) {
        r("tilde", X, Ee, Qe, ft, ht, Rt);
        var Ot;
        return Pe(Qe) ? Ot = "" : Pe(ft) ? Ot = ">=" + Qe + ".0.0 <" + (+Qe + 1) + ".0.0" : Pe(ht) ? Ot = ">=" + Qe + "." + ft + ".0 <" + Qe + "." + (+ft + 1) + ".0" : Rt ? (r("replaceTilde pr", Rt), Ot = ">=" + Qe + "." + ft + "." + ht + "-" + Rt + " <" + Qe + "." + (+ft + 1) + ".0") : Ot = ">=" + Qe + "." + ft + "." + ht + " <" + Qe + "." + (+ft + 1) + ".0", r("tilde return", Ot), Ot;
      });
    }
    function st(X, ce) {
      return X.trim().split(/\s+/).map(function(U) {
        return Se(U, ce);
      }).join(" ");
    }
    function Se(X, ce) {
      r("caret", X, ce);
      var U = ce.loose ? l[c.CARETLOOSE] : l[c.CARET];
      return X.replace(U, function(Ee, Qe, ft, ht, Rt) {
        r("caret", X, Ee, Qe, ft, ht, Rt);
        var Ot;
        return Pe(Qe) ? Ot = "" : Pe(ft) ? Ot = ">=" + Qe + ".0.0 <" + (+Qe + 1) + ".0.0" : Pe(ht) ? Qe === "0" ? Ot = ">=" + Qe + "." + ft + ".0 <" + Qe + "." + (+ft + 1) + ".0" : Ot = ">=" + Qe + "." + ft + ".0 <" + (+Qe + 1) + ".0.0" : Rt ? (r("replaceCaret pr", Rt), Qe === "0" ? ft === "0" ? Ot = ">=" + Qe + "." + ft + "." + ht + "-" + Rt + " <" + Qe + "." + ft + "." + (+ht + 1) : Ot = ">=" + Qe + "." + ft + "." + ht + "-" + Rt + " <" + Qe + "." + (+ft + 1) + ".0" : Ot = ">=" + Qe + "." + ft + "." + ht + "-" + Rt + " <" + (+Qe + 1) + ".0.0") : (r("no pr"), Qe === "0" ? ft === "0" ? Ot = ">=" + Qe + "." + ft + "." + ht + " <" + Qe + "." + ft + "." + (+ht + 1) : Ot = ">=" + Qe + "." + ft + "." + ht + " <" + Qe + "." + (+ft + 1) + ".0" : Ot = ">=" + Qe + "." + ft + "." + ht + " <" + (+Qe + 1) + ".0.0"), r("caret return", Ot), Ot;
      });
    }
    function oe(X, ce) {
      return r("replaceXRanges", X, ce), X.split(/\s+/).map(function(U) {
        return te(U, ce);
      }).join(" ");
    }
    function te(X, ce) {
      X = X.trim();
      var U = ce.loose ? l[c.XRANGELOOSE] : l[c.XRANGE];
      return X.replace(U, function(Ee, Qe, ft, ht, Rt, Ot) {
        r("xRange", X, Ee, Qe, ft, ht, Rt, Ot);
        var Tt = Pe(ft), lt = Tt || Pe(ht), lr = lt || Pe(Rt), kr = lr;
        return Qe === "=" && kr && (Qe = ""), Ot = ce.includePrerelease ? "-0" : "", Tt ? Qe === ">" || Qe === "<" ? Ee = "<0.0.0-0" : Ee = "*" : Qe && kr ? (lt && (ht = 0), Rt = 0, Qe === ">" ? (Qe = ">=", lt ? (ft = +ft + 1, ht = 0, Rt = 0) : (ht = +ht + 1, Rt = 0)) : Qe === "<=" && (Qe = "<", lt ? ft = +ft + 1 : ht = +ht + 1), Ee = Qe + ft + "." + ht + "." + Rt + Ot) : lt ? Ee = ">=" + ft + ".0.0" + Ot + " <" + (+ft + 1) + ".0.0" + Ot : lr && (Ee = ">=" + ft + "." + ht + ".0" + Ot + " <" + ft + "." + (+ht + 1) + ".0" + Ot), r("xRange return", Ee), Ee;
      });
    }
    function se(X, ce) {
      return r("replaceStars", X, ce), X.trim().replace(l[c.STAR], "");
    }
    function re(X, ce, U, Ee, Qe, ft, ht, Rt, Ot, Tt, lt, lr, kr) {
      return Pe(U) ? ce = "" : Pe(Ee) ? ce = ">=" + U + ".0.0" : Pe(Qe) ? ce = ">=" + U + "." + Ee + ".0" : ce = ">=" + ce, Pe(Ot) ? Rt = "" : Pe(Tt) ? Rt = "<" + (+Ot + 1) + ".0.0" : Pe(lt) ? Rt = "<" + Ot + "." + (+Tt + 1) + ".0" : lr ? Rt = "<=" + Ot + "." + Tt + "." + lt + "-" + lr : Rt = "<=" + Rt, (ce + " " + Rt).trim();
    }
    Z.prototype.test = function(X) {
      if (!X)
        return !1;
      if (typeof X == "string")
        try {
          X = new w(X, this.options);
        } catch (U) {
          return !1;
        }
      for (var ce = 0; ce < this.set.length; ce++)
        if (Te(this.set[ce], X, this.options))
          return !0;
      return !1;
    };
    function Te(X, ce, U) {
      for (var Ee = 0; Ee < X.length; Ee++)
        if (!X[Ee].test(ce))
          return !1;
      if (ce.prerelease.length && !U.includePrerelease) {
        for (Ee = 0; Ee < X.length; Ee++)
          if (r(X[Ee].semver), X[Ee].semver !== fe && X[Ee].semver.prerelease.length > 0) {
            var Qe = X[Ee].semver;
            if (Qe.major === ce.major && Qe.minor === ce.minor && Qe.patch === ce.patch)
              return !0;
          }
        return !1;
      }
      return !0;
    }
    t.satisfies = ze;
    function ze(X, ce, U) {
      try {
        ce = new Z(ce, U);
      } catch (Ee) {
        return !1;
      }
      return ce.test(X);
    }
    t.maxSatisfying = Ze;
    function Ze(X, ce, U) {
      var Ee = null, Qe = null;
      try {
        var ft = new Z(ce, U);
      } catch (ht) {
        return null;
      }
      return X.forEach(function(ht) {
        ft.test(ht) && (!Ee || Qe.compare(ht) === -1) && (Ee = ht, Qe = new w(Ee, U));
      }), Ee;
    }
    t.minSatisfying = pt;
    function pt(X, ce, U) {
      var Ee = null, Qe = null;
      try {
        var ft = new Z(ce, U);
      } catch (ht) {
        return null;
      }
      return X.forEach(function(ht) {
        ft.test(ht) && (!Ee || Qe.compare(ht) === 1) && (Ee = ht, Qe = new w(Ee, U));
      }), Ee;
    }
    t.minVersion = ut;
    function ut(X, ce) {
      X = new Z(X, ce);
      var U = new w("0.0.0");
      if (X.test(U) || (U = new w("0.0.0-0"), X.test(U)))
        return U;
      U = null;
      for (var Ee = 0; Ee < X.set.length; ++Ee) {
        var Qe = X.set[Ee];
        Qe.forEach(function(ft) {
          var ht = new w(ft.semver.version);
          switch (ft.operator) {
            case ">":
              ht.prerelease.length === 0 ? ht.patch++ : ht.prerelease.push(0), ht.raw = ht.format();
            case "":
            case ">=":
              (!U || W(U, ht)) && (U = ht);
              break;
            case "<":
            case "<=":
              break;
            default:
              throw new Error("Unexpected operation: " + ft.operator);
          }
        });
      }
      return U && X.test(U) ? U : null;
    }
    t.validRange = bt;
    function bt(X, ce) {
      try {
        return new Z(X, ce).range || "*";
      } catch (U) {
        return null;
      }
    }
    t.ltr = vt;
    function vt(X, ce, U) {
      return pe(X, ce, "<", U);
    }
    t.gtr = ge;
    function ge(X, ce, U) {
      return pe(X, ce, ">", U);
    }
    t.outside = pe;
    function pe(X, ce, U, Ee) {
      X = new w(X, Ee), ce = new Z(ce, Ee);
      var Qe, ft, ht, Rt, Ot;
      switch (U) {
        case ">":
          Qe = W, ft = ae, ht = Y, Rt = ">", Ot = ">=";
          break;
        case "<":
          Qe = Y, ft = ne, ht = W, Rt = "<", Ot = "<=";
          break;
        default:
          throw new TypeError('Must provide a hilo val of "<" or ">"');
      }
      if (ze(X, ce, Ee))
        return !1;
      for (var Tt = 0; Tt < ce.set.length; ++Tt) {
        var lt = ce.set[Tt], lr = null, kr = null;
        if (lt.forEach(function(Ai) {
          Ai.semver === fe && (Ai = new ye(">=0.0.0")), lr = lr || Ai, kr = kr || Ai, Qe(Ai.semver, lr.semver, Ee) ? lr = Ai : ht(Ai.semver, kr.semver, Ee) && (kr = Ai);
        }), lr.operator === Rt || lr.operator === Ot || (!kr.operator || kr.operator === Rt) && ft(X, kr.semver))
          return !1;
        if (kr.operator === Ot && ht(X, kr.semver))
          return !1;
      }
      return !0;
    }
    t.prerelease = $e;
    function $e(X, ce) {
      var U = x(X, ce);
      return U && U.prerelease.length ? U.prerelease : null;
    }
    t.intersects = ie;
    function ie(X, ce, U) {
      return X = new Z(X, U), ce = new Z(ce, U), X.intersects(ce);
    }
    t.coerce = Q;
    function Q(X, ce) {
      if (X instanceof w)
        return X;
      if (typeof X == "number" && (X = String(X)), typeof X != "string")
        return null;
      ce = ce || {};
      var U = null;
      if (!ce.rtl)
        U = X.match(l[c.COERCE]);
      else {
        for (var Ee; (Ee = l[c.COERCERTL].exec(X)) && (!U || U.index + U[0].length !== X.length); )
          (!U || Ee.index + Ee[0].length !== U.index + U[0].length) && (U = Ee), l[c.COERCERTL].lastIndex = Ee.index + Ee[1].length + Ee[2].length;
        l[c.COERCERTL].lastIndex = -1;
      }
      return U === null ? null : x(U[2] + "." + (U[3] || "0") + "." + (U[4] || "0"), ce);
    }
  }(h1, h1.exports)), h1.exports;
}
var cd = {}, AJ;
function y5() {
  if (AJ)
    return cd;
  AJ = 1, Object.defineProperty(cd, "__esModule", {
    value: !0
  }), cd.unreleasedLabels = cd.browserNameMap = void 0;
  const e = {
    safari: "tp"
  };
  cd.unreleasedLabels = e;
  const t = {
    and_chr: "chrome",
    and_ff: "firefox",
    android: "android",
    chrome: "chrome",
    edge: "edge",
    firefox: "firefox",
    ie: "ie",
    ie_mob: "ie",
    ios_saf: "ios",
    node: "node",
    deno: "deno",
    op_mob: "opera",
    opera: "opera",
    safari: "safari",
    samsung: "samsung"
  };
  return cd.browserNameMap = t, cd;
}
var CJ;
function g5() {
  if (CJ)
    return jp;
  CJ = 1, Object.defineProperty(jp, "__esModule", {
    value: !0
  }), jp.getHighestUnreleased = u, jp.getLowestImplementedVersion = c, jp.getLowestUnreleased = l, jp.isUnreleasedVersion = o, jp.semverMin = s, jp.semverify = a;
  var e = Z_(), t = Xde(), r = y5();
  const i = /^(\d+|\d+.\d+)$/, n = new t.OptionValidator("@babel/helper-compilation-targets");
  function s(f, h) {
    return f && e.lt(f, h) ? f : h;
  }
  function a(f) {
    if (typeof f == "string" && e.valid(f))
      return f;
    n.invariant(typeof f == "number" || typeof f == "string" && i.test(f), "'".concat(f, "' is not a valid version")), f = f.toString();
    let h = 0, m = 0;
    for (; (h = f.indexOf(".", h + 1)) > 0; )
      m++;
    return f + ".0".repeat(2 - m);
  }
  function o(f, h) {
    const m = r.unreleasedLabels[h];
    return !!m && m === f.toString().toLowerCase();
  }
  function l(f, h, m) {
    const g = r.unreleasedLabels[m];
    return f === g ? h : h === g ? f : s(f, h);
  }
  function u(f, h, m) {
    return l(f, h, m) === f ? h : f;
  }
  function c(f, h) {
    const m = f[h];
    return !m && h === "android" ? f.chrome : m;
  }
  return jp;
}
var Jb = {}, _J;
function TPt() {
  if (_J)
    return Jb;
  _J = 1, Object.defineProperty(Jb, "__esModule", {
    value: !0
  }), Jb.TargetNames = void 0;
  const e = {
    node: "node",
    deno: "deno",
    chrome: "chrome",
    opera: "opera",
    edge: "edge",
    firefox: "firefox",
    safari: "safari",
    ie: "ie",
    ios: "ios",
    android: "android",
    electron: "electron",
    samsung: "samsung",
    rhino: "rhino"
  };
  return Jb.TargetNames = e, Jb;
}
var Qb = {}, IJ;
function Jde() {
  if (IJ)
    return Qb;
  IJ = 1, Object.defineProperty(Qb, "__esModule", {
    value: !0
  }), Qb.prettifyTargets = i, Qb.prettifyVersion = r;
  var e = Z_(), t = y5();
  function r(n) {
    if (typeof n != "string")
      return n;
    const {
      major: s,
      minor: a,
      patch: o
    } = e.parse(n), l = [s];
    return (a || o) && l.push(a), o && l.push(o), l.join(".");
  }
  function i(n) {
    return Object.keys(n).reduce((s, a) => {
      let o = n[a];
      const l = t.unreleasedLabels[a];
      return typeof o == "string" && l !== o && (o = r(o)), s[a] = o, s;
    }, {});
  }
  return Qb;
}
var d1 = {}, kJ;
function SPt() {
  if (kJ)
    return d1;
  kJ = 1, Object.defineProperty(d1, "__esModule", {
    value: !0
  }), d1.getInclusionReasons = i;
  var e = Z_(), t = Jde(), r = g5();
  function i(n, s, a) {
    const o = a[n] || {};
    return Object.keys(s).reduce((l, u) => {
      const c = (0, r.getLowestImplementedVersion)(o, u), f = s[u];
      if (!c)
        l[u] = (0, t.prettifyVersion)(f);
      else {
        const h = (0, r.isUnreleasedVersion)(c, u);
        !(0, r.isUnreleasedVersion)(f, u) && (h || e.lt(f.toString(), (0, r.semverify)(c))) && (l[u] = (0, t.prettifyVersion)(f));
      }
      return l;
    }, {});
  }
  return d1;
}
var Um = {};
const xPt = {
  "transform-unicode-sets-regex": {
    chrome: "112",
    opera: "98",
    edge: "112"
  },
  "transform-class-static-block": {
    chrome: "94",
    opera: "80",
    edge: "94",
    firefox: "93",
    node: "16.11",
    deno: "1.14",
    samsung: "17",
    electron: "15.0"
  },
  "proposal-class-static-block": {
    chrome: "94",
    opera: "80",
    edge: "94",
    firefox: "93",
    node: "16.11",
    deno: "1.14",
    samsung: "17",
    electron: "15.0"
  },
  "transform-private-property-in-object": {
    chrome: "91",
    opera: "77",
    edge: "91",
    firefox: "90",
    safari: "15",
    node: "16.9",
    deno: "1.9",
    ios: "15",
    samsung: "16",
    electron: "13.0"
  },
  "proposal-private-property-in-object": {
    chrome: "91",
    opera: "77",
    edge: "91",
    firefox: "90",
    safari: "15",
    node: "16.9",
    deno: "1.9",
    ios: "15",
    samsung: "16",
    electron: "13.0"
  },
  "transform-class-properties": {
    chrome: "74",
    opera: "62",
    edge: "79",
    firefox: "90",
    safari: "14.1",
    node: "12",
    deno: "1",
    ios: "15",
    samsung: "11",
    electron: "6.0"
  },
  "proposal-class-properties": {
    chrome: "74",
    opera: "62",
    edge: "79",
    firefox: "90",
    safari: "14.1",
    node: "12",
    deno: "1",
    ios: "15",
    samsung: "11",
    electron: "6.0"
  },
  "transform-private-methods": {
    chrome: "84",
    opera: "70",
    edge: "84",
    firefox: "90",
    safari: "15",
    node: "14.6",
    deno: "1",
    ios: "15",
    samsung: "14",
    electron: "10.0"
  },
  "proposal-private-methods": {
    chrome: "84",
    opera: "70",
    edge: "84",
    firefox: "90",
    safari: "15",
    node: "14.6",
    deno: "1",
    ios: "15",
    samsung: "14",
    electron: "10.0"
  },
  "transform-numeric-separator": {
    chrome: "75",
    opera: "62",
    edge: "79",
    firefox: "70",
    safari: "13",
    node: "12.5",
    deno: "1",
    ios: "13",
    samsung: "11",
    rhino: "1.7.14",
    electron: "6.0"
  },
  "proposal-numeric-separator": {
    chrome: "75",
    opera: "62",
    edge: "79",
    firefox: "70",
    safari: "13",
    node: "12.5",
    deno: "1",
    ios: "13",
    samsung: "11",
    rhino: "1.7.14",
    electron: "6.0"
  },
  "transform-logical-assignment-operators": {
    chrome: "85",
    opera: "71",
    edge: "85",
    firefox: "79",
    safari: "14",
    node: "15",
    deno: "1.2",
    ios: "14",
    samsung: "14",
    electron: "10.0"
  },
  "proposal-logical-assignment-operators": {
    chrome: "85",
    opera: "71",
    edge: "85",
    firefox: "79",
    safari: "14",
    node: "15",
    deno: "1.2",
    ios: "14",
    samsung: "14",
    electron: "10.0"
  },
  "transform-nullish-coalescing-operator": {
    chrome: "80",
    opera: "67",
    edge: "80",
    firefox: "72",
    safari: "13.1",
    node: "14",
    deno: "1",
    ios: "13.4",
    samsung: "13",
    electron: "8.0"
  },
  "proposal-nullish-coalescing-operator": {
    chrome: "80",
    opera: "67",
    edge: "80",
    firefox: "72",
    safari: "13.1",
    node: "14",
    deno: "1",
    ios: "13.4",
    samsung: "13",
    electron: "8.0"
  },
  "transform-optional-chaining": {
    chrome: "91",
    opera: "77",
    edge: "91",
    firefox: "74",
    safari: "13.1",
    node: "16.9",
    deno: "1.9",
    ios: "13.4",
    samsung: "16",
    electron: "13.0"
  },
  "proposal-optional-chaining": {
    chrome: "91",
    opera: "77",
    edge: "91",
    firefox: "74",
    safari: "13.1",
    node: "16.9",
    deno: "1.9",
    ios: "13.4",
    samsung: "16",
    electron: "13.0"
  },
  "transform-json-strings": {
    chrome: "66",
    opera: "53",
    edge: "79",
    firefox: "62",
    safari: "12",
    node: "10",
    deno: "1",
    ios: "12",
    samsung: "9",
    rhino: "1.7.14",
    electron: "3.0"
  },
  "proposal-json-strings": {
    chrome: "66",
    opera: "53",
    edge: "79",
    firefox: "62",
    safari: "12",
    node: "10",
    deno: "1",
    ios: "12",
    samsung: "9",
    rhino: "1.7.14",
    electron: "3.0"
  },
  "transform-optional-catch-binding": {
    chrome: "66",
    opera: "53",
    edge: "79",
    firefox: "58",
    safari: "11.1",
    node: "10",
    deno: "1",
    ios: "11.3",
    samsung: "9",
    electron: "3.0"
  },
  "proposal-optional-catch-binding": {
    chrome: "66",
    opera: "53",
    edge: "79",
    firefox: "58",
    safari: "11.1",
    node: "10",
    deno: "1",
    ios: "11.3",
    samsung: "9",
    electron: "3.0"
  },
  "transform-parameters": {
    chrome: "49",
    opera: "36",
    edge: "18",
    firefox: "53",
    node: "6",
    deno: "1",
    samsung: "5",
    electron: "0.37"
  },
  "transform-async-generator-functions": {
    chrome: "63",
    opera: "50",
    edge: "79",
    firefox: "57",
    safari: "12",
    node: "10",
    deno: "1",
    ios: "12",
    samsung: "8",
    electron: "3.0"
  },
  "proposal-async-generator-functions": {
    chrome: "63",
    opera: "50",
    edge: "79",
    firefox: "57",
    safari: "12",
    node: "10",
    deno: "1",
    ios: "12",
    samsung: "8",
    electron: "3.0"
  },
  "transform-object-rest-spread": {
    chrome: "60",
    opera: "47",
    edge: "79",
    firefox: "55",
    safari: "11.1",
    node: "8.3",
    deno: "1",
    ios: "11.3",
    samsung: "8",
    electron: "2.0"
  },
  "proposal-object-rest-spread": {
    chrome: "60",
    opera: "47",
    edge: "79",
    firefox: "55",
    safari: "11.1",
    node: "8.3",
    deno: "1",
    ios: "11.3",
    samsung: "8",
    electron: "2.0"
  },
  "transform-dotall-regex": {
    chrome: "62",
    opera: "49",
    edge: "79",
    firefox: "78",
    safari: "11.1",
    node: "8.10",
    deno: "1",
    ios: "11.3",
    samsung: "8",
    electron: "3.0"
  },
  "transform-unicode-property-regex": {
    chrome: "64",
    opera: "51",
    edge: "79",
    firefox: "78",
    safari: "11.1",
    node: "10",
    deno: "1",
    ios: "11.3",
    samsung: "9",
    electron: "3.0"
  },
  "proposal-unicode-property-regex": {
    chrome: "64",
    opera: "51",
    edge: "79",
    firefox: "78",
    safari: "11.1",
    node: "10",
    deno: "1",
    ios: "11.3",
    samsung: "9",
    electron: "3.0"
  },
  "transform-named-capturing-groups-regex": {
    chrome: "64",
    opera: "51",
    edge: "79",
    firefox: "78",
    safari: "11.1",
    node: "10",
    deno: "1",
    ios: "11.3",
    samsung: "9",
    electron: "3.0"
  },
  "transform-async-to-generator": {
    chrome: "55",
    opera: "42",
    edge: "15",
    firefox: "52",
    safari: "11",
    node: "7.6",
    deno: "1",
    ios: "11",
    samsung: "6",
    electron: "1.6"
  },
  "transform-exponentiation-operator": {
    chrome: "52",
    opera: "39",
    edge: "14",
    firefox: "52",
    safari: "10.1",
    node: "7",
    deno: "1",
    ios: "10.3",
    samsung: "6",
    rhino: "1.7.14",
    electron: "1.3"
  },
  "transform-template-literals": {
    chrome: "41",
    opera: "28",
    edge: "13",
    firefox: "34",
    safari: "13",
    node: "4",
    deno: "1",
    ios: "13",
    samsung: "3.4",
    electron: "0.21"
  },
  "transform-literals": {
    chrome: "44",
    opera: "31",
    edge: "12",
    firefox: "53",
    safari: "9",
    node: "4",
    deno: "1",
    ios: "9",
    samsung: "4",
    electron: "0.30"
  },
  "transform-function-name": {
    chrome: "51",
    opera: "38",
    edge: "79",
    firefox: "53",
    safari: "10",
    node: "6.5",
    deno: "1",
    ios: "10",
    samsung: "5",
    electron: "1.2"
  },
  "transform-arrow-functions": {
    chrome: "47",
    opera: "34",
    edge: "13",
    firefox: "43",
    safari: "10",
    node: "6",
    deno: "1",
    ios: "10",
    samsung: "5",
    rhino: "1.7.13",
    electron: "0.36"
  },
  "transform-block-scoped-functions": {
    chrome: "41",
    opera: "28",
    edge: "12",
    firefox: "46",
    safari: "10",
    node: "4",
    deno: "1",
    ie: "11",
    ios: "10",
    samsung: "3.4",
    electron: "0.21"
  },
  "transform-classes": {
    chrome: "46",
    opera: "33",
    edge: "13",
    firefox: "45",
    safari: "10",
    node: "5",
    deno: "1",
    ios: "10",
    samsung: "5",
    electron: "0.36"
  },
  "transform-object-super": {
    chrome: "46",
    opera: "33",
    edge: "13",
    firefox: "45",
    safari: "10",
    node: "5",
    deno: "1",
    ios: "10",
    samsung: "5",
    electron: "0.36"
  },
  "transform-shorthand-properties": {
    chrome: "43",
    opera: "30",
    edge: "12",
    firefox: "33",
    safari: "9",
    node: "4",
    deno: "1",
    ios: "9",
    samsung: "4",
    rhino: "1.7.14",
    electron: "0.27"
  },
  "transform-duplicate-keys": {
    chrome: "42",
    opera: "29",
    edge: "12",
    firefox: "34",
    safari: "9",
    node: "4",
    deno: "1",
    ios: "9",
    samsung: "3.4",
    electron: "0.25"
  },
  "transform-computed-properties": {
    chrome: "44",
    opera: "31",
    edge: "12",
    firefox: "34",
    safari: "7.1",
    node: "4",
    deno: "1",
    ios: "8",
    samsung: "4",
    electron: "0.30"
  },
  "transform-for-of": {
    chrome: "51",
    opera: "38",
    edge: "15",
    firefox: "53",
    safari: "10",
    node: "6.5",
    deno: "1",
    ios: "10",
    samsung: "5",
    electron: "1.2"
  },
  "transform-sticky-regex": {
    chrome: "49",
    opera: "36",
    edge: "13",
    firefox: "3",
    safari: "10",
    node: "6",
    deno: "1",
    ios: "10",
    samsung: "5",
    electron: "0.37"
  },
  "transform-unicode-escapes": {
    chrome: "44",
    opera: "31",
    edge: "12",
    firefox: "53",
    safari: "9",
    node: "4",
    deno: "1",
    ios: "9",
    samsung: "4",
    electron: "0.30"
  },
  "transform-unicode-regex": {
    chrome: "50",
    opera: "37",
    edge: "13",
    firefox: "46",
    safari: "12",
    node: "6",
    deno: "1",
    ios: "12",
    samsung: "5",
    electron: "1.1"
  },
  "transform-spread": {
    chrome: "46",
    opera: "33",
    edge: "13",
    firefox: "45",
    safari: "10",
    node: "5",
    deno: "1",
    ios: "10",
    samsung: "5",
    electron: "0.36"
  },
  "transform-destructuring": {
    chrome: "51",
    opera: "38",
    edge: "15",
    firefox: "53",
    safari: "10",
    node: "6.5",
    deno: "1",
    ios: "10",
    samsung: "5",
    electron: "1.2"
  },
  "transform-block-scoping": {
    chrome: "50",
    opera: "37",
    edge: "14",
    firefox: "53",
    safari: "11",
    node: "6",
    deno: "1",
    ios: "11",
    samsung: "5",
    electron: "1.1"
  },
  "transform-typeof-symbol": {
    chrome: "38",
    opera: "25",
    edge: "12",
    firefox: "36",
    safari: "9",
    node: "0.12",
    deno: "1",
    ios: "9",
    samsung: "3",
    rhino: "1.7.13",
    electron: "0.20"
  },
  "transform-new-target": {
    chrome: "46",
    opera: "33",
    edge: "14",
    firefox: "41",
    safari: "10",
    node: "5",
    deno: "1",
    ios: "10",
    samsung: "5",
    electron: "0.36"
  },
  "transform-regenerator": {
    chrome: "50",
    opera: "37",
    edge: "13",
    firefox: "53",
    safari: "10",
    node: "6",
    deno: "1",
    ios: "10",
    samsung: "5",
    electron: "1.1"
  },
  "transform-member-expression-literals": {
    chrome: "7",
    opera: "12",
    edge: "12",
    firefox: "2",
    safari: "5.1",
    node: "0.4",
    deno: "1",
    ie: "9",
    android: "4",
    ios: "6",
    phantom: "1.9",
    samsung: "1",
    rhino: "1.7.13",
    electron: "0.20"
  },
  "transform-property-literals": {
    chrome: "7",
    opera: "12",
    edge: "12",
    firefox: "2",
    safari: "5.1",
    node: "0.4",
    deno: "1",
    ie: "9",
    android: "4",
    ios: "6",
    phantom: "1.9",
    samsung: "1",
    rhino: "1.7.13",
    electron: "0.20"
  },
  "transform-reserved-words": {
    chrome: "13",
    opera: "10.50",
    edge: "12",
    firefox: "2",
    safari: "3.1",
    node: "0.6",
    deno: "1",
    ie: "9",
    android: "4.4",
    ios: "6",
    phantom: "1.9",
    samsung: "1",
    rhino: "1.7.13",
    electron: "0.20"
  },
  "transform-export-namespace-from": {
    chrome: "72",
    and_chr: "72",
    edge: "79",
    firefox: "80",
    and_ff: "80",
    node: "13.2",
    opera: "60",
    op_mob: "51",
    samsung: "11.0",
    android: "72",
    electron: "5.0"
  },
  "proposal-export-namespace-from": {
    chrome: "72",
    and_chr: "72",
    edge: "79",
    firefox: "80",
    and_ff: "80",
    node: "13.2",
    opera: "60",
    op_mob: "51",
    samsung: "11.0",
    android: "72",
    electron: "5.0"
  }
};
var s3, OJ;
function EPt() {
  return OJ || (OJ = 1, s3 = xPt), s3;
}
var NJ;
function PPt() {
  if (NJ)
    return Um;
  NJ = 1, Object.defineProperty(Um, "__esModule", {
    value: !0
  }), Um.default = s, Um.isRequired = n, Um.targetsSupported = i;
  var e = Z_(), t = EPt(), r = g5();
  function i(a, o) {
    const l = Object.keys(a);
    return l.length === 0 ? !1 : l.filter((c) => {
      const f = (0, r.getLowestImplementedVersion)(o, c);
      if (!f)
        return !0;
      const h = a[c];
      if ((0, r.isUnreleasedVersion)(h, c))
        return !1;
      if ((0, r.isUnreleasedVersion)(f, c))
        return !0;
      if (!e.valid(h.toString()))
        throw new Error('Invalid version passed for target "'.concat(c, '": "').concat(h, '". ') + "Versions must be in semver format (major.minor.patch)");
      return e.gt((0, r.semverify)(f), h.toString());
    }).length === 0;
  }
  function n(a, o, {
    compatData: l = t,
    includes: u,
    excludes: c
  } = {}) {
    return c != null && c.has(a) ? !1 : u != null && u.has(a) ? !0 : !i(o, l[a]);
  }
  function s(a, o, l, u, c, f, h) {
    const m = /* @__PURE__ */ new Set(), g = {
      compatData: a,
      includes: o,
      excludes: l
    };
    for (const y in a)
      if (n(y, u, g))
        m.add(y);
      else if (h) {
        const v = h.get(y);
        v && m.add(v);
      }
    return c && c.forEach((y) => !l.has(y) && m.add(y)), f && f.forEach((y) => !o.has(y) && m.delete(y)), m;
  }
  return Um;
}
var DJ;
function Qde() {
  return DJ || (DJ = 1, function(e) {
    Object.defineProperty(e, "__esModule", {
      value: !0
    }), Object.defineProperty(e, "TargetNames", {
      enumerable: !0,
      get: function() {
        return o.TargetNames;
      }
    }), e.default = I, Object.defineProperty(e, "filterItems", {
      enumerable: !0,
      get: function() {
        return c.default;
      }
    }), Object.defineProperty(e, "getInclusionReasons", {
      enumerable: !0,
      get: function() {
        return u.getInclusionReasons;
      }
    }), e.isBrowsersQueryValid = g, Object.defineProperty(e, "isRequired", {
      enumerable: !0,
      get: function() {
        return c.isRequired;
      }
    }), Object.defineProperty(e, "prettifyTargets", {
      enumerable: !0,
      get: function() {
        return l.prettifyTargets;
      }
    }), Object.defineProperty(e, "unreleasedLabels", {
      enumerable: !0,
      get: function() {
        return a.unreleasedLabels;
      }
    });
    var t = hPt(), r = Xde(), i = yPt(), n = vPt(), s = g5(), a = y5(), o = TPt(), l = Jde(), u = SPt(), c = PPt();
    const f = i["es6.module"], h = new r.OptionValidator("@babel/helper-compilation-targets");
    function m(L) {
      const O = Object.keys(o.TargetNames);
      for (const F of Object.keys(L))
        if (!(F in o.TargetNames))
          throw new Error(h.formatMessage("'".concat(F, "' is not a valid target\n- Did you mean '").concat((0, r.findSuggestion)(F, O), "'?")));
      return L;
    }
    function g(L) {
      return typeof L == "string" || Array.isArray(L) && L.every((O) => typeof O == "string");
    }
    function y(L) {
      return h.invariant(L === void 0 || g(L), "'".concat(String(L), "' is not a valid browserslist query")), L;
    }
    function v(L) {
      return L.reduce((O, F) => {
        const [q, j] = F.split(" "), N = a.browserNameMap[q];
        if (!N)
          return O;
        try {
          const M = j.split("-")[0].toLowerCase(), R = (0, s.isUnreleasedVersion)(M, N);
          if (!O[N])
            return O[N] = R ? M : (0, s.semverify)(M), O;
          const $ = O[N], V = (0, s.isUnreleasedVersion)($, N);
          if (V && R)
            O[N] = (0, s.getLowestUnreleased)($, M, N);
          else if (V)
            O[N] = (0, s.semverify)(M);
          else if (!V && !R) {
            const K = (0, s.semverify)(M);
            O[N] = (0, s.semverMin)($, K);
          }
        } catch (M) {
        }
        return O;
      }, {});
    }
    function T(L) {
      L.length && (console.warn("Warning, the following targets are using a decimal version:\n"), L.forEach(({
        target: O,
        value: F
      }) => console.warn("  ".concat(O, ": ").concat(F))), console.warn("\nWe recommend using a string for minor/patch versions to avoid numbers like 6.10\ngetting parsed as 6.1, which can lead to unexpected behavior.\n"));
    }
    function S(L, O) {
      try {
        return (0, s.semverify)(O);
      } catch (F) {
        throw new Error(h.formatMessage("'".concat(O, "' is not a valid value for 'targets.").concat(L, "'.")));
      }
    }
    function P(L) {
      return ["node", L === !0 || L === "current" ? process.versions.node : S("node", L)];
    }
    function x(L, O) {
      const F = (0, s.isUnreleasedVersion)(O, L) ? O.toLowerCase() : S(L, O);
      return [L, F];
    }
    function C(L) {
      const O = Object.assign({}, L);
      return delete O.esmodules, delete O.browsers, O;
    }
    function D(L, O) {
      const F = t(L, {
        mobileToDesktop: !0,
        env: O
      });
      return v(F);
    }
    const w = new n({
      max: 64
    });
    function A(L, O) {
      const F = typeof L == "string" ? L : L.join() + O;
      let q = w.get(F);
      return q || (q = D(L, O), w.set(F, q)), Object.assign({}, q);
    }
    function I(L = {}, O = {}) {
      var F, q;
      let {
        browsers: j,
        esmodules: N
      } = L;
      const {
        configPath: M = "."
      } = O;
      y(j);
      const R = C(L);
      let $ = m(R);
      const K = !!j || Object.keys($).length > 0, z = !O.ignoreBrowserslistConfig && !K;
      if (!j && z && (j = t.loadConfig({
        config: O.configFile,
        path: M,
        env: O.browserslistEnv
      }), j == null && (j = [])), N && (N !== "intersect" || !((F = j) != null && F.length)) && (j = Object.keys(f).map((G) => "".concat(G, " >= ").concat(f[G])).join(", "), N = !1), (q = j) != null && q.length) {
        const G = A(j, O.browserslistEnv);
        if (N === "intersect")
          for (const le of Object.keys(G)) {
            const ne = G[le], ae = f[le];
            ae ? G[le] = (0, s.getHighestUnreleased)(ne, (0, s.semverify)(ae), le) : delete G[le];
          }
        $ = Object.assign(G, $);
      }
      const W = {}, Y = [];
      for (const G of Object.keys($).sort()) {
        const le = $[G];
        typeof le == "number" && le % 1 !== 0 && Y.push({
          target: G,
          value: le
        });
        const [ne, ae] = G === "node" ? P(le) : x(G, le);
        ae && (W[ne] = ae);
      }
      return T(Y), W;
    }
  }(qR)), qR;
}
Object.defineProperty(nS, "__esModule", {
  value: !0
});
nS.resolveBrowserslistConfigFile = wPt;
nS.resolveTargets = APt;
function Zde() {
  const e = Qde();
  return Zde = function() {
    return e;
  }, e;
}
function wPt(e, t) {
}
function APt(e, t) {
  const r = e.targets;
  let i;
  return typeof r == "string" || Array.isArray(r) ? i = {
    browsers: r
  } : r && ("esmodules" in r ? i = Object.assign({}, r, {
    esmodules: "intersect"
  }) : i = r), (0, Zde().default)(i, {
    ignoreBrowserslistConfig: !0,
    browserslistEnv: e.browserslistEnv
  });
}
var LJ;
function eme() {
  if (LJ)
    return $m;
  LJ = 1, Object.defineProperty($m, "__esModule", {
    value: !0
  }), $m.createCachedDescriptors = u, $m.createDescriptor = x, $m.createUncachedDescriptors = c;
  function e() {
    const D = gp();
    return e = function() {
      return D;
    }, D;
  }
  var t = m5, r = Ps, i = eI(), n = bp, s = nS;
  function a(D, w) {
    return D.name === w.name && D.value === w.value && D.options === w.options && D.dirname === w.dirname && D.alias === w.alias && D.ownPass === w.ownPass && (D.file && D.file.request) === (w.file && w.file.request) && (D.file && D.file.resolved) === (w.file && w.file.resolved);
  }
  function* o(D) {
    return D;
  }
  function l(D, w) {
    return typeof D.browserslistConfigFile == "string" && (D.browserslistConfigFile = (0, s.resolveBrowserslistConfigFile)(D.browserslistConfigFile, w)), D;
  }
  function u(D, w, A) {
    const {
      plugins: I,
      presets: L,
      passPerPreset: O
    } = w;
    return {
      options: l(w, D),
      plugins: I ? () => g(I, D)(A) : () => o([]),
      presets: L ? () => h(L, D)(A)(!!O) : () => o([])
    };
  }
  function c(D, w, A) {
    return {
      options: l(w, D),
      plugins: (0, t.once)(() => S(w.plugins || [], D, A)),
      presets: (0, t.once)(() => T(w.presets || [], D, A, !!w.passPerPreset))
    };
  }
  const f = /* @__PURE__ */ new WeakMap(), h = (0, n.makeWeakCacheSync)((D, w) => {
    const A = w.using((I) => I);
    return (0, n.makeStrongCacheSync)((I) => (0, n.makeStrongCache)(function* (L) {
      return (yield* T(D, A, I, L)).map((F) => v(f, F));
    }));
  }), m = /* @__PURE__ */ new WeakMap(), g = (0, n.makeWeakCacheSync)((D, w) => {
    const A = w.using((I) => I);
    return (0, n.makeStrongCache)(function* (I) {
      return (yield* S(D, A, I)).map((O) => v(m, O));
    });
  }), y = {};
  function v(D, w) {
    const {
      value: A,
      options: I = y
    } = w;
    if (I === !1)
      return w;
    let L = D.get(A);
    L || (L = /* @__PURE__ */ new WeakMap(), D.set(A, L));
    let O = L.get(I);
    if (O || (O = [], L.set(I, O)), O.indexOf(w) === -1) {
      const F = O.filter((q) => a(q, w));
      if (F.length > 0)
        return F[0];
      O.push(w);
    }
    return w;
  }
  function* T(D, w, A, I) {
    return yield* P("preset", D, w, A, I);
  }
  function* S(D, w, A) {
    return yield* P("plugin", D, w, A);
  }
  function* P(D, w, A, I, L) {
    const O = yield* e().all(w.map((F, q) => x(F, A, {
      type: D,
      alias: "".concat(I, "$").concat(q),
      ownPass: !!L
    })));
    return C(O), O;
  }
  function* x(D, w, {
    type: A,
    alias: I,
    ownPass: L
  }) {
    const O = (0, i.getItemDescriptor)(D);
    if (O)
      return O;
    let F, q, j = D;
    Array.isArray(j) && (j.length === 3 ? [j, q, F] = j : [j, q] = j);
    let N, M = null;
    if (typeof j == "string") {
      if (typeof A != "string")
        throw new Error("To resolve a string-based item, the type of item must be given");
      const R = A === "plugin" ? r.loadPlugin : r.loadPreset, $ = j;
      ({
        filepath: M,
        value: j
      } = yield* R(j, w)), N = {
        request: $,
        resolved: M
      };
    }
    if (!j)
      throw new Error("Unexpected falsy value: ".concat(String(j)));
    if (typeof j == "object" && j.__esModule)
      if (j.default)
        j = j.default;
      else
        throw new Error("Must export a default export when using ES6 modules.");
    if (typeof j != "object" && typeof j != "function")
      throw new Error("Unsupported format: ".concat(typeof j, ". Expected an object or a function."));
    if (M !== null && typeof j == "object" && j)
      throw new Error("Plugin/Preset files are not allowed to export objects, only functions. In ".concat(M));
    return {
      name: F,
      alias: M || I,
      value: j,
      options: q,
      dirname: w,
      ownPass: L,
      file: N
    };
  }
  function C(D) {
    const w = /* @__PURE__ */ new Map();
    for (const A of D) {
      if (typeof A.value != "function")
        continue;
      let I = w.get(A.value);
      if (I || (I = /* @__PURE__ */ new Set(), w.set(A.value, I)), I.has(A.name)) {
        const L = D.filter((O) => O.value === A.value);
        throw new Error(["Duplicate plugin/preset detected.", "If you'd like to use two separate instances of a plugin,", "they need separate names, e.g.", "", "  plugins: [", "    ['some-plugin', {}],", "    ['some-plugin', {}, 'some unique name'],", "  ]", "", "Duplicates detected are:", "".concat(JSON.stringify(L, null, 2))].join("\n"));
      }
      I.add(A.name);
    }
  }
  return $m;
}
var MJ;
function eI() {
  if (MJ)
    return jm;
  MJ = 1, Object.defineProperty(jm, "__esModule", {
    value: !0
  }), jm.createConfigItem = i, jm.createItemFromDescriptor = r, jm.getItemDescriptor = s;
  function e() {
    const o = xs;
    return e = function() {
      return o;
    }, o;
  }
  var t = eme();
  function r(o) {
    return new a(o);
  }
  function* i(o, {
    dirname: l = ".",
    type: u
  } = {}) {
    const c = yield* (0, t.createDescriptor)(o, e().resolve(l), {
      type: u,
      alias: "programmatic item"
    });
    return r(c);
  }
  const n = Symbol.for("@babel/core@7 - ConfigItem");
  function s(o) {
    if (o != null && o[n])
      return o._descriptor;
  }
  class a {
    constructor(l) {
      this._descriptor = void 0, this[n] = !0, this.value = void 0, this.options = void 0, this.dirname = void 0, this.name = void 0, this.file = void 0, this._descriptor = l, Object.defineProperty(this, "_descriptor", {
        enumerable: !1
      }), Object.defineProperty(this, n, {
        enumerable: !1
      }), this.value = this._descriptor.value, this.options = this._descriptor.options, this.dirname = this._descriptor.dirname, this.name = this._descriptor.name, this.file = this._descriptor.file ? {
        request: this._descriptor.file.request,
        resolved: this._descriptor.file.resolved
      } : void 0, Object.freeze(this);
    }
  }
  return Object.freeze(a.prototype), jm;
}
var fm = {}, m1 = { exports: {} }, a3, RJ;
function CPt() {
  if (RJ)
    return a3;
  RJ = 1;
  var e = 1e3, t = e * 60, r = t * 60, i = r * 24, n = i * 7, s = i * 365.25;
  a3 = function(c, f) {
    f = f || {};
    var h = typeof c;
    if (h === "string" && c.length > 0)
      return a(c);
    if (h === "number" && isFinite(c))
      return f.long ? l(c) : o(c);
    throw new Error(
      "val is not a non-empty string or a valid number. val=" + JSON.stringify(c)
    );
  };
  function a(c) {
    if (c = String(c), !(c.length > 100)) {
      var f = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
        c
      );
      if (f) {
        var h = parseFloat(f[1]), m = (f[2] || "ms").toLowerCase();
        switch (m) {
          case "years":
          case "year":
          case "yrs":
          case "yr":
          case "y":
            return h * s;
          case "weeks":
          case "week":
          case "w":
            return h * n;
          case "days":
          case "day":
          case "d":
            return h * i;
          case "hours":
          case "hour":
          case "hrs":
          case "hr":
          case "h":
            return h * r;
          case "minutes":
          case "minute":
          case "mins":
          case "min":
          case "m":
            return h * t;
          case "seconds":
          case "second":
          case "secs":
          case "sec":
          case "s":
            return h * e;
          case "milliseconds":
          case "millisecond":
          case "msecs":
          case "msec":
          case "ms":
            return h;
          default:
            return;
        }
      }
    }
  }
  function o(c) {
    var f = Math.abs(c);
    return f >= i ? Math.round(c / i) + "d" : f >= r ? Math.round(c / r) + "h" : f >= t ? Math.round(c / t) + "m" : f >= e ? Math.round(c / e) + "s" : c + "ms";
  }
  function l(c) {
    var f = Math.abs(c);
    return f >= i ? u(c, f, i, "day") : f >= r ? u(c, f, r, "hour") : f >= t ? u(c, f, t, "minute") : f >= e ? u(c, f, e, "second") : c + " ms";
  }
  function u(c, f, h, m) {
    var g = f >= h * 1.5;
    return Math.round(c / h) + " " + m + (g ? "s" : "");
  }
  return a3;
}
var o3, BJ;
function _Pt() {
  if (BJ)
    return o3;
  BJ = 1;
  function e(t) {
    i.debug = i, i.default = i, i.coerce = u, i.disable = a, i.enable = s, i.enabled = o, i.humanize = CPt(), i.destroy = c, Object.keys(t).forEach((f) => {
      i[f] = t[f];
    }), i.names = [], i.skips = [], i.formatters = {};
    function r(f) {
      let h = 0;
      for (let m = 0; m < f.length; m++)
        h = (h << 5) - h + f.charCodeAt(m), h |= 0;
      return i.colors[Math.abs(h) % i.colors.length];
    }
    i.selectColor = r;
    function i(f) {
      let h, m = null, g, y;
      function v(...T) {
        if (!v.enabled)
          return;
        const S = v, P = Number(/* @__PURE__ */ new Date()), x = P - (h || P);
        S.diff = x, S.prev = h, S.curr = P, h = P, T[0] = i.coerce(T[0]), typeof T[0] != "string" && T.unshift("%O");
        let C = 0;
        T[0] = T[0].replace(/%([a-zA-Z%])/g, (w, A) => {
          if (w === "%%")
            return "%";
          C++;
          const I = i.formatters[A];
          if (typeof I == "function") {
            const L = T[C];
            w = I.call(S, L), T.splice(C, 1), C--;
          }
          return w;
        }), i.formatArgs.call(S, T), (S.log || i.log).apply(S, T);
      }
      return v.namespace = f, v.useColors = i.useColors(), v.color = i.selectColor(f), v.extend = n, v.destroy = i.destroy, Object.defineProperty(v, "enabled", {
        enumerable: !0,
        configurable: !1,
        get: () => m !== null ? m : (g !== i.namespaces && (g = i.namespaces, y = i.enabled(f)), y),
        set: (T) => {
          m = T;
        }
      }), typeof i.init == "function" && i.init(v), v;
    }
    function n(f, h) {
      const m = i(this.namespace + (typeof h == "undefined" ? ":" : h) + f);
      return m.log = this.log, m;
    }
    function s(f) {
      i.save(f), i.namespaces = f, i.names = [], i.skips = [];
      let h;
      const m = (typeof f == "string" ? f : "").split(/[\s,]+/), g = m.length;
      for (h = 0; h < g; h++)
        m[h] && (f = m[h].replace(/\*/g, ".*?"), f[0] === "-" ? i.skips.push(new RegExp("^" + f.slice(1) + "$")) : i.names.push(new RegExp("^" + f + "$")));
    }
    function a() {
      const f = [
        ...i.names.map(l),
        ...i.skips.map(l).map((h) => "-" + h)
      ].join(",");
      return i.enable(""), f;
    }
    function o(f) {
      if (f[f.length - 1] === "*")
        return !0;
      let h, m;
      for (h = 0, m = i.skips.length; h < m; h++)
        if (i.skips[h].test(f))
          return !1;
      for (h = 0, m = i.names.length; h < m; h++)
        if (i.names[h].test(f))
          return !0;
      return !1;
    }
    function l(f) {
      return f.toString().substring(2, f.toString().length - 2).replace(/\.\*\?$/, "*");
    }
    function u(f) {
      return f instanceof Error ? f.stack || f.message : f;
    }
    function c() {
      console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
    }
    return i.enable(i.load()), i;
  }
  return o3 = e, o3;
}
var FJ;
function tme() {
  return FJ || (FJ = 1, function(e, t) {
    t.formatArgs = i, t.save = n, t.load = s, t.useColors = r, t.storage = a(), t.destroy = (() => {
      let l = !1;
      return () => {
        l || (l = !0, console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."));
      };
    })(), t.colors = [
      "#0000CC",
      "#0000FF",
      "#0033CC",
      "#0033FF",
      "#0066CC",
      "#0066FF",
      "#0099CC",
      "#0099FF",
      "#00CC00",
      "#00CC33",
      "#00CC66",
      "#00CC99",
      "#00CCCC",
      "#00CCFF",
      "#3300CC",
      "#3300FF",
      "#3333CC",
      "#3333FF",
      "#3366CC",
      "#3366FF",
      "#3399CC",
      "#3399FF",
      "#33CC00",
      "#33CC33",
      "#33CC66",
      "#33CC99",
      "#33CCCC",
      "#33CCFF",
      "#6600CC",
      "#6600FF",
      "#6633CC",
      "#6633FF",
      "#66CC00",
      "#66CC33",
      "#9900CC",
      "#9900FF",
      "#9933CC",
      "#9933FF",
      "#99CC00",
      "#99CC33",
      "#CC0000",
      "#CC0033",
      "#CC0066",
      "#CC0099",
      "#CC00CC",
      "#CC00FF",
      "#CC3300",
      "#CC3333",
      "#CC3366",
      "#CC3399",
      "#CC33CC",
      "#CC33FF",
      "#CC6600",
      "#CC6633",
      "#CC9900",
      "#CC9933",
      "#CCCC00",
      "#CCCC33",
      "#FF0000",
      "#FF0033",
      "#FF0066",
      "#FF0099",
      "#FF00CC",
      "#FF00FF",
      "#FF3300",
      "#FF3333",
      "#FF3366",
      "#FF3399",
      "#FF33CC",
      "#FF33FF",
      "#FF6600",
      "#FF6633",
      "#FF9900",
      "#FF9933",
      "#FFCC00",
      "#FFCC33"
    ];
    function r() {
      return typeof window != "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs) ? !0 : typeof navigator != "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/) ? !1 : typeof document != "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773
      typeof window != "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?
      // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
      typeof navigator != "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker
      typeof navigator != "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
    }
    function i(l) {
      if (l[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + l[0] + (this.useColors ? "%c " : " ") + "+" + e.exports.humanize(this.diff), !this.useColors)
        return;
      const u = "color: " + this.color;
      l.splice(1, 0, u, "color: inherit");
      let c = 0, f = 0;
      l[0].replace(/%[a-zA-Z%]/g, (h) => {
        h !== "%%" && (c++, h === "%c" && (f = c));
      }), l.splice(f, 0, u);
    }
    t.log = console.debug || console.log || (() => {
    });
    function n(l) {
      try {
        l ? t.storage.setItem("debug", l) : t.storage.removeItem("debug");
      } catch (u) {
      }
    }
    function s() {
      let l;
      try {
        l = t.storage.getItem("debug");
      } catch (u) {
      }
      return !l && typeof process != "undefined" && "env" in process && (l = process.env.DEBUG), l;
    }
    function a() {
      try {
        return localStorage;
      } catch (l) {
      }
    }
    e.exports = _Pt()(t);
    const { formatters: o } = e.exports;
    o.j = function(l) {
      try {
        return JSON.stringify(l);
      } catch (u) {
        return "[UnexpectedJSONParseError]: " + u.message;
      }
    };
  }(m1, m1.exports)), m1.exports;
}
var pd = {}, tI = {};
Object.defineProperty(tI, "__esModule", {
  value: !0
});
tI.default = void 0;
var IPt = {
  auxiliaryComment: {
    message: "Use `auxiliaryCommentBefore` or `auxiliaryCommentAfter`"
  },
  blacklist: {
    message: "Put the specific transforms you want in the `plugins` option"
  },
  breakConfig: {
    message: "This is not a necessary option in Babel 6"
  },
  experimental: {
    message: "Put the specific transforms you want in the `plugins` option"
  },
  externalHelpers: {
    message: "Use the `external-helpers` plugin instead. Check out http://babeljs.io/docs/plugins/external-helpers/"
  },
  extra: {
    message: ""
  },
  jsxPragma: {
    message: "use the `pragma` option in the `react-jsx` plugin. Check out http://babeljs.io/docs/plugins/transform-react-jsx/"
  },
  loose: {
    message: "Specify the `loose` option for the relevant plugin you are using or use a preset that sets the option."
  },
  metadataUsedHelpers: {
    message: "Not required anymore as this is enabled by default"
  },
  modules: {
    message: "Use the corresponding module transform plugin in the `plugins` option. Check out http://babeljs.io/docs/plugins/#modules"
  },
  nonStandard: {
    message: "Use the `react-jsx` and `flow-strip-types` plugins to support JSX and Flow. Also check out the react preset http://babeljs.io/docs/plugins/preset-react/"
  },
  optional: {
    message: "Put the specific transforms you want in the `plugins` option"
  },
  sourceMapName: {
    message: "The `sourceMapName` option has been removed because it makes more sense for the tooling that calls Babel to assign `map.file` themselves."
  },
  stage: {
    message: "Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets"
  },
  whitelist: {
    message: "Put the specific transforms you want in the `plugins` option"
  },
  resolveModuleSource: {
    version: 6,
    message: "Use `babel-plugin-module-resolver@3`'s 'resolvePath' options"
  },
  metadata: {
    version: 6,
    message: "Generated plugin metadata is always included in the output result"
  },
  sourceMapTarget: {
    version: 6,
    message: "The `sourceMapTarget` option has been removed because it makes more sense for the tooling that calls Babel to assign `map.file` themselves."
  }
};
tI.default = IPt;
var xn = {}, jJ;
function rme() {
  if (jJ)
    return xn;
  jJ = 1, Object.defineProperty(xn, "__esModule", {
    value: !0
  }), xn.access = i, xn.assertArray = g, xn.assertAssumptions = O, xn.assertBabelrcSearch = x, xn.assertBoolean = h, xn.assertCallerMetadata = l, xn.assertCompact = a, xn.assertConfigApplicableTest = T, xn.assertConfigFileSearch = P, xn.assertFunction = f, xn.assertIgnoreList = y, xn.assertInputSourceMap = u, xn.assertObject = m, xn.assertPluginList = C, xn.assertRootMode = n, xn.assertSourceMaps = s, xn.assertSourceType = o, xn.assertString = c, xn.assertTargets = A, xn.msg = r;
  function e() {
    const F = Qde();
    return e = function() {
      return F;
    }, F;
  }
  var t = iI();
  function r(F) {
    switch (F.type) {
      case "root":
        return "";
      case "env":
        return "".concat(r(F.parent), '.env["').concat(F.name, '"]');
      case "overrides":
        return "".concat(r(F.parent), ".overrides[").concat(F.index, "]");
      case "option":
        return "".concat(r(F.parent), ".").concat(F.name);
      case "access":
        return "".concat(r(F.parent), "[").concat(JSON.stringify(F.name), "]");
      default:
        throw new Error("Assertion failure: Unknown type ".concat(F.type));
    }
  }
  function i(F, q) {
    return {
      type: "access",
      name: q,
      parent: F
    };
  }
  function n(F, q) {
    if (q !== void 0 && q !== "root" && q !== "upward" && q !== "upward-optional")
      throw new Error("".concat(r(F), ' must be a "root", "upward", "upward-optional" or undefined'));
    return q;
  }
  function s(F, q) {
    if (q !== void 0 && typeof q != "boolean" && q !== "inline" && q !== "both")
      throw new Error("".concat(r(F), ' must be a boolean, "inline", "both", or undefined'));
    return q;
  }
  function a(F, q) {
    if (q !== void 0 && typeof q != "boolean" && q !== "auto")
      throw new Error("".concat(r(F), ' must be a boolean, "auto", or undefined'));
    return q;
  }
  function o(F, q) {
    if (q !== void 0 && q !== "module" && q !== "script" && q !== "unambiguous")
      throw new Error("".concat(r(F), ' must be "module", "script", "unambiguous", or undefined'));
    return q;
  }
  function l(F, q) {
    const j = m(F, q);
    if (j) {
      if (typeof j.name != "string")
        throw new Error("".concat(r(F), ' set but does not contain "name" property string'));
      for (const N of Object.keys(j)) {
        const M = i(F, N), R = j[N];
        if (R != null && typeof R != "boolean" && typeof R != "string" && typeof R != "number")
          throw new Error("".concat(r(M), " must be null, undefined, a boolean, a string, or a number."));
      }
    }
    return q;
  }
  function u(F, q) {
    if (q !== void 0 && typeof q != "boolean" && (typeof q != "object" || !q))
      throw new Error("".concat(r(F), " must be a boolean, object, or undefined"));
    return q;
  }
  function c(F, q) {
    if (q !== void 0 && typeof q != "string")
      throw new Error("".concat(r(F), " must be a string, or undefined"));
    return q;
  }
  function f(F, q) {
    if (q !== void 0 && typeof q != "function")
      throw new Error("".concat(r(F), " must be a function, or undefined"));
    return q;
  }
  function h(F, q) {
    if (q !== void 0 && typeof q != "boolean")
      throw new Error("".concat(r(F), " must be a boolean, or undefined"));
    return q;
  }
  function m(F, q) {
    if (q !== void 0 && (typeof q != "object" || Array.isArray(q) || !q))
      throw new Error("".concat(r(F), " must be an object, or undefined"));
    return q;
  }
  function g(F, q) {
    if (q != null && !Array.isArray(q))
      throw new Error("".concat(r(F), " must be an array, or undefined"));
    return q;
  }
  function y(F, q) {
    const j = g(F, q);
    return j && j.forEach((N, M) => v(i(F, M), N)), j;
  }
  function v(F, q) {
    if (typeof q != "string" && typeof q != "function" && !(q instanceof RegExp))
      throw new Error("".concat(r(F), " must be an array of string/Function/RegExp values, or undefined"));
    return q;
  }
  function T(F, q) {
    if (q === void 0)
      return q;
    if (Array.isArray(q))
      q.forEach((j, N) => {
        if (!S(j))
          throw new Error("".concat(r(i(F, N)), " must be a string/Function/RegExp."));
      });
    else if (!S(q))
      throw new Error("".concat(r(F), " must be a string/Function/RegExp, or an array of those"));
    return q;
  }
  function S(F) {
    return typeof F == "string" || typeof F == "function" || F instanceof RegExp;
  }
  function P(F, q) {
    if (q !== void 0 && typeof q != "boolean" && typeof q != "string")
      throw new Error("".concat(r(F), " must be a undefined, a boolean, a string, ") + "got ".concat(JSON.stringify(q)));
    return q;
  }
  function x(F, q) {
    if (q === void 0 || typeof q == "boolean")
      return q;
    if (Array.isArray(q))
      q.forEach((j, N) => {
        if (!S(j))
          throw new Error("".concat(r(i(F, N)), " must be a string/Function/RegExp."));
      });
    else if (!S(q))
      throw new Error("".concat(r(F), " must be a undefined, a boolean, a string/Function/RegExp ") + "or an array of those, got ".concat(JSON.stringify(q)));
    return q;
  }
  function C(F, q) {
    const j = g(F, q);
    return j && j.forEach((N, M) => D(i(F, M), N)), j;
  }
  function D(F, q) {
    if (Array.isArray(q)) {
      if (q.length === 0)
        throw new Error("".concat(r(F), " must include an object"));
      if (q.length > 3)
        throw new Error("".concat(r(F), " may only be a two-tuple or three-tuple"));
      if (w(i(F, 0), q[0]), q.length > 1) {
        const j = q[1];
        if (j !== void 0 && j !== !1 && (typeof j != "object" || Array.isArray(j) || j === null))
          throw new Error("".concat(r(i(F, 1)), " must be an object, false, or undefined"));
      }
      if (q.length === 3) {
        const j = q[2];
        if (j !== void 0 && typeof j != "string")
          throw new Error("".concat(r(i(F, 2)), " must be a string, or undefined"));
      }
    } else
      w(F, q);
    return q;
  }
  function w(F, q) {
    if ((typeof q != "object" || !q) && typeof q != "string" && typeof q != "function")
      throw new Error("".concat(r(F), " must be a string, object, function"));
    return q;
  }
  function A(F, q) {
    if ((0, e().isBrowsersQueryValid)(q))
      return q;
    if (typeof q != "object" || !q || Array.isArray(q))
      throw new Error("".concat(r(F), " must be a string, an array of strings or an object"));
    const j = i(F, "browsers"), N = i(F, "esmodules");
    I(j, q.browsers), h(N, q.esmodules);
    for (const M of Object.keys(q)) {
      const R = q[M], $ = i(F, M);
      if (M === "esmodules")
        h($, R);
      else if (M === "browsers")
        I($, R);
      else if (Object.hasOwnProperty.call(e().TargetNames, M))
        L($, R);
      else {
        const V = Object.keys(e().TargetNames).join(", ");
        throw new Error("".concat(r($), " is not a valid target. Supported targets are ").concat(V));
      }
    }
    return q;
  }
  function I(F, q) {
    if (q !== void 0 && !(0, e().isBrowsersQueryValid)(q))
      throw new Error("".concat(r(F), " must be undefined, a string or an array of strings"));
  }
  function L(F, q) {
    if (!(typeof q == "number" && Math.round(q) === q) && typeof q != "string")
      throw new Error("".concat(r(F), " must be a string or an integer number"));
  }
  function O(F, q) {
    if (q === void 0)
      return;
    if (typeof q != "object" || q === null)
      throw new Error("".concat(r(F), " must be an object or undefined."));
    let j = F;
    do
      j = j.parent;
    while (j.type !== "root");
    const N = j.source === "preset";
    for (const M of Object.keys(q)) {
      const R = i(F, M);
      if (!t.assumptionsNames.has(M))
        throw new Error("".concat(r(R), " is not a supported assumption."));
      if (typeof q[M] != "boolean")
        throw new Error("".concat(r(R), " must be a boolean."));
      if (N && q[M] === !1)
        throw new Error("".concat(r(R), " cannot be set to 'false' inside presets."));
    }
    return q;
  }
  return xn;
}
var Ng = {}, vp = {};
Object.defineProperty(vp, "__esModule", {
  value: !0
});
vp.beginHiddenCallStack = DPt;
vp.endHiddenCallStack = LPt;
vp.expectedError = NPt;
vp.injectVirtualStackFrame = OPt;
const $J = Function.call.bind(Error.prototype.toString), rI = !!Error.captureStackTrace, ime = "startHiding - secret - don't use this - v1", nme = "stopHiding - secret - don't use this - v1", sme = /* @__PURE__ */ new WeakSet(), Uw = /* @__PURE__ */ new WeakMap();
function kPt(e) {
  return /* @__PURE__ */ Object.create({
    isNative: () => !1,
    isConstructor: () => !1,
    isToplevel: () => !0,
    getFileName: () => e,
    getLineNumber: () => {
    },
    getColumnNumber: () => {
    },
    getFunctionName: () => {
    },
    getMethodName: () => {
    },
    getTypeName: () => {
    },
    toString: () => e
  });
}
function OPt(e, t) {
  if (!rI)
    return;
  let r = Uw.get(e);
  return r || Uw.set(e, r = []), r.push(kPt(t)), e;
}
function NPt(e) {
  if (rI)
    return sme.add(e), e;
}
function DPt(e) {
  return rI ? Object.defineProperty(function(...t) {
    return ame(), e(...t);
  }, "name", {
    value: nme
  }) : e;
}
function LPt(e) {
  return rI ? Object.defineProperty(function(...t) {
    return e(...t);
  }, "name", {
    value: ime
  }) : e;
}
function ame() {
  ame = () => {
  };
  const {
    prepareStackTrace: e = MPt
  } = Error, t = 50;
  Error.stackTraceLimit && (Error.stackTraceLimit = Math.max(Error.stackTraceLimit, t)), Error.prepareStackTrace = function(i, n) {
    let s = [], o = sme.has(i) ? "hiding" : "unknown";
    for (let l = 0; l < n.length; l++) {
      const u = n[l].getFunctionName();
      if (u === ime)
        o = "hiding";
      else if (u === nme) {
        if (o === "hiding")
          o = "showing", Uw.has(i) && s.unshift(...Uw.get(i));
        else if (o === "unknown") {
          s = n;
          break;
        }
      } else
        o !== "hiding" && s.push(n[l]);
    }
    return e(i, s);
  };
}
function MPt(e, t) {
  return t.length === 0 ? $J(e) : "".concat($J(e), "\n    at ").concat(t.join("\n    at "));
}
Object.defineProperty(Ng, "__esModule", {
  value: !0
});
Ng.default = void 0;
var UJ = vp;
class RPt extends Error {
  constructor(t, r) {
    super(t), (0, UJ.expectedError)(this), r && (0, UJ.injectVirtualStackFrame)(this, r);
  }
}
Ng.default = RPt;
var qJ;
function iI() {
  if (qJ)
    return pd;
  qJ = 1, Object.defineProperty(pd, "__esModule", {
    value: !0
  }), pd.assumptionsNames = void 0, pd.checkNoUnwrappedItemOptionPairs = T, pd.validate = c;
  var e = tI, t = rme(), r = Ng;
  const i = {
    cwd: t.assertString,
    root: t.assertString,
    rootMode: t.assertRootMode,
    configFile: t.assertConfigFileSearch,
    caller: t.assertCallerMetadata,
    filename: t.assertString,
    filenameRelative: t.assertString,
    code: t.assertBoolean,
    ast: t.assertBoolean,
    cloneInputAst: t.assertBoolean,
    envName: t.assertString
  }, n = {
    babelrc: t.assertBoolean,
    babelrcRoots: t.assertBabelrcSearch
  }, s = {
    extends: t.assertString,
    ignore: t.assertIgnoreList,
    only: t.assertIgnoreList,
    targets: t.assertTargets,
    browserslistConfigFile: t.assertConfigFileSearch,
    browserslistEnv: t.assertString
  }, a = {
    inputSourceMap: t.assertInputSourceMap,
    presets: t.assertPluginList,
    plugins: t.assertPluginList,
    passPerPreset: t.assertBoolean,
    assumptions: t.assertAssumptions,
    env: y,
    overrides: v,
    test: t.assertConfigApplicableTest,
    include: t.assertConfigApplicableTest,
    exclude: t.assertConfigApplicableTest,
    retainLines: t.assertBoolean,
    comments: t.assertBoolean,
    shouldPrintComment: t.assertFunction,
    compact: t.assertCompact,
    minified: t.assertBoolean,
    auxiliaryCommentBefore: t.assertString,
    auxiliaryCommentAfter: t.assertString,
    sourceType: t.assertSourceType,
    wrapPluginVisitorMethod: t.assertFunction,
    highlightCode: t.assertBoolean,
    sourceMaps: t.assertSourceMaps,
    sourceMap: t.assertSourceMaps,
    sourceFileName: t.assertString,
    sourceRoot: t.assertString,
    parserOpts: t.assertObject,
    generatorOpts: t.assertObject
  };
  Object.assign(a, {
    getModuleId: t.assertFunction,
    moduleRoot: t.assertString,
    moduleIds: t.assertBoolean,
    moduleId: t.assertString
  });
  const o = ["arrayLikeIsIterable", "constantReexports", "constantSuper", "enumerableModuleMeta", "ignoreFunctionLength", "ignoreToPrimitiveHint", "iterableIsArray", "mutableTemplateObject", "noClassCalls", "noDocumentAll", "noIncompleteNsImportDetection", "noNewArrows", "objectRestNoSymbols", "privateFieldsAsSymbols", "privateFieldsAsProperties", "pureGetters", "setClassMethods", "setComputedProperties", "setPublicClassFields", "setSpreadProperties", "skipForOfIteratorClosing", "superIsCallableConstructor"], l = new Set(o);
  pd.assumptionsNames = l;
  function u(S) {
    return S.type === "root" ? S.source : u(S.parent);
  }
  function c(S, P, x) {
    try {
      return f({
        type: "root",
        source: S
      }, P);
    } catch (C) {
      const D = new r.default(C.message, x);
      throw C.code && (D.code = C.code), D;
    }
  }
  function f(S, P) {
    const x = u(S);
    return g(P), Object.keys(P).forEach((C) => {
      const D = {
        type: "option",
        name: C,
        parent: S
      };
      if (x === "preset" && s[C])
        throw new Error("".concat((0, t.msg)(D), " is not allowed in preset options"));
      if (x !== "arguments" && i[C])
        throw new Error("".concat((0, t.msg)(D), " is only allowed in root programmatic options"));
      if (x !== "arguments" && x !== "configfile" && n[C])
        throw x === "babelrcfile" || x === "extendsfile" ? new Error("".concat((0, t.msg)(D), ' is not allowed in .babelrc or "extends"ed files, only in root programmatic options, ') + "or babel.config.js/config file options") : new Error("".concat((0, t.msg)(D), " is only allowed in root programmatic options, or babel.config.js/config file options"));
      (a[C] || s[C] || n[C] || i[C] || h)(D, P[C]);
    }), P;
  }
  function h(S) {
    const P = S.name;
    if (e.default[P]) {
      const {
        message: x,
        version: C = 5
      } = e.default[P];
      throw new Error("Using removed Babel ".concat(C, " option: ").concat((0, t.msg)(S), " - ").concat(x));
    } else {
      const x = new Error("Unknown option: ".concat((0, t.msg)(S), ". Check out https://babeljs.io/docs/en/babel-core/#options for more information about options."));
      throw x.code = "BABEL_UNKNOWN_OPTION", x;
    }
  }
  function m(S, P) {
    return Object.prototype.hasOwnProperty.call(S, P);
  }
  function g(S) {
    if (m(S, "sourceMap") && m(S, "sourceMaps"))
      throw new Error(".sourceMap is an alias for .sourceMaps, cannot use both");
  }
  function y(S, P) {
    if (S.parent.type === "env")
      throw new Error("".concat((0, t.msg)(S), " is not allowed inside of another .env block"));
    const x = S.parent, C = (0, t.assertObject)(S, P);
    if (C)
      for (const D of Object.keys(C)) {
        const w = (0, t.assertObject)((0, t.access)(S, D), C[D]);
        if (!w)
          continue;
        f({
          type: "env",
          name: D,
          parent: x
        }, w);
      }
    return C;
  }
  function v(S, P) {
    if (S.parent.type === "env")
      throw new Error("".concat((0, t.msg)(S), " is not allowed inside an .env block"));
    if (S.parent.type === "overrides")
      throw new Error("".concat((0, t.msg)(S), " is not allowed inside an .overrides block"));
    const x = S.parent, C = (0, t.assertArray)(S, P);
    if (C)
      for (const [D, w] of C.entries()) {
        const A = (0, t.access)(S, D), I = (0, t.assertObject)(A, w);
        if (!I)
          throw new Error("".concat((0, t.msg)(A), " must be an object"));
        f({
          type: "overrides",
          index: D,
          parent: x
        }, I);
      }
    return C;
  }
  function T(S, P, x, C) {
    if (P === 0)
      return;
    const D = S[P - 1], w = S[P];
    D.file && D.options === void 0 && typeof w.value == "object" && (C.message += "\n- Maybe you meant to use\n" + '"'.concat(x, 's": [\n  ["').concat(D.file.request, '", ').concat(JSON.stringify(w.value, void 0, 2), "]\n]\n") + "To be a valid ".concat(x, ", its name and options should be wrapped in a pair of brackets"));
  }
  return pd;
}
var b5 = {};
Object.defineProperty(b5, "__esModule", {
  value: !0
});
b5.default = jPt;
function qw() {
  const e = xs;
  return qw = function() {
    return e;
  }, e;
}
const Qv = "\\".concat(qw().sep), ZF = "(?:".concat(Qv, "|$)"), v5 = "[^".concat(Qv, "]+"), T5 = "(?:".concat(v5).concat(Qv, ")"), ome = "(?:".concat(v5).concat(ZF, ")"), BPt = "".concat(T5, "*?"), FPt = "".concat(T5, "*?").concat(ome, "?");
function VJ(e) {
  return e.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&");
}
function jPt(e, t) {
  const r = qw().resolve(t, e).split(qw().sep);
  return new RegExp(["^", ...r.map((i, n) => {
    const s = n === r.length - 1;
    return i === "**" ? s ? FPt : BPt : i === "*" ? s ? ome : T5 : i.indexOf("*.") === 0 ? v5 + VJ(i.slice(1)) + (s ? ZF : Qv) : VJ(i) + (s ? ZF : Qv);
  })].join(""));
}
var eg = {};
Object.defineProperty(eg, "__esModule", {
  value: !0
});
eg.ConfigPrinter = eg.ChainFormatter = void 0;
function lme() {
  const e = gp();
  return lme = function() {
    return e;
  }, e;
}
const ume = {
  Programmatic: 0,
  Config: 1
};
eg.ChainFormatter = ume;
const l3 = {
  title(e, t, r) {
    let i = "";
    return e === ume.Programmatic ? (i = "programmatic options", t && (i += " from " + t)) : i = "config " + r, i;
  },
  loc(e, t) {
    let r = "";
    return e != null && (r += ".overrides[".concat(e, "]")), t != null && (r += '.env["'.concat(t, '"]')), r;
  },
  *optionsAndDescriptors(e) {
    const t = Object.assign({}, e.options);
    delete t.overrides, delete t.env;
    const r = [...yield* e.plugins()];
    r.length && (t.plugins = r.map((n) => WJ(n)));
    const i = [...yield* e.presets()];
    return i.length && (t.presets = [...i].map((n) => WJ(n))), JSON.stringify(t, void 0, 2);
  }
};
function WJ(e) {
  var t;
  let r = (t = e.file) == null ? void 0 : t.request;
  return r == null && (typeof e.value == "object" ? r = e.value : typeof e.value == "function" && (r = "[Function: ".concat(e.value.toString().slice(0, 50), " ... ]"))), r == null && (r = "[Unknown]"), e.options === void 0 ? r : e.name == null ? [r, e.options] : [r, e.options, e.name];
}
class S5 {
  constructor() {
    this._stack = [];
  }
  configure(t, r, {
    callerName: i,
    filepath: n
  }) {
    return t ? (s, a, o) => {
      this._stack.push({
        type: r,
        callerName: i,
        filepath: n,
        content: s,
        index: a,
        envName: o
      });
    } : () => {
    };
  }
  static *format(t) {
    let r = l3.title(t.type, t.callerName, t.filepath);
    const i = l3.loc(t.index, t.envName);
    i && (r += " ".concat(i));
    const n = yield* l3.optionsAndDescriptors(t.content);
    return "".concat(r, "\n").concat(n);
  }
  *output() {
    return this._stack.length === 0 ? "" : (yield* lme().all(this._stack.map((r) => S5.format(r)))).join("\n\n");
  }
}
eg.ConfigPrinter = S5;
Object.defineProperty(fm, "__esModule", {
  value: !0
});
fm.buildPresetChain = qPt;
fm.buildPresetChainWalker = void 0;
fm.buildRootChain = zPt;
function cme() {
  const e = xs;
  return cme = function() {
    return e;
  }, e;
}
function pme() {
  const e = tme();
  return pme = function() {
    return e;
  }, e;
}
var x5 = iI(), fme = b5, ev = eg, $Pt = vp, UPt = Ng, A0 = Ps, Jn = bp, Fl = eme();
const HJ = pme()("babel:config:config-chain");
function* qPt(e, t) {
  const r = yield* hme(e, t);
  return r ? {
    plugins: Vw(r.plugins),
    presets: Vw(r.presets),
    options: r.options.map((i) => dme(i)),
    files: /* @__PURE__ */ new Set()
  } : null;
}
const hme = C5({
  root: (e) => VPt(e),
  env: (e, t) => WPt(e)(t),
  overrides: (e, t) => HPt(e)(t),
  overridesEnv: (e, t, r) => KPt(e)(t)(r),
  createLogger: () => () => {
  }
});
fm.buildPresetChainWalker = hme;
const VPt = (0, Jn.makeWeakCacheSync)((e) => E5(e, e.alias, Fl.createUncachedDescriptors)), WPt = (0, Jn.makeWeakCacheSync)((e) => (0, Jn.makeStrongCacheSync)((t) => P5(e, e.alias, Fl.createUncachedDescriptors, t))), HPt = (0, Jn.makeWeakCacheSync)((e) => (0, Jn.makeStrongCacheSync)((t) => w5(e, e.alias, Fl.createUncachedDescriptors, t))), KPt = (0, Jn.makeWeakCacheSync)((e) => (0, Jn.makeStrongCacheSync)((t) => (0, Jn.makeStrongCacheSync)((r) => A5(e, e.alias, Fl.createUncachedDescriptors, t, r))));
function* zPt(e, t) {
  let r, i;
  const n = new ev.ConfigPrinter(), s = yield* QPt({
    options: e,
    dirname: t.cwd
  }, t, void 0, n);
  if (!s)
    return null;
  const a = yield* n.output();
  let o;
  typeof e.configFile == "string" ? o = yield* (0, A0.loadConfig)(e.configFile, t.cwd, t.envName, t.caller) : e.configFile !== !1 && (o = yield* (0, A0.findRootConfig)(t.root, t.envName, t.caller));
  let {
    babelrc: l,
    babelrcRoots: u
  } = e, c = t.cwd;
  const f = AP(), h = new ev.ConfigPrinter();
  if (o) {
    const S = YPt(o), P = yield* e8(S, t, void 0, h);
    if (!P)
      return null;
    r = yield* h.output(), l === void 0 && (l = S.options.babelrc), u === void 0 && (c = S.dirname, u = S.options.babelrcRoots), iy(f, P);
  }
  let m, g, y = !1;
  const v = AP();
  if ((l === !0 || l === void 0) && typeof t.filename == "string") {
    const S = yield* (0, A0.findPackageData)(t.filename);
    if (S && GPt(t, S, u, c)) {
      if ({
        ignore: m,
        config: g
      } = yield* (0, A0.findRelativeConfig)(S, t.envName, t.caller), m && v.files.add(m.filepath), m && mme(t, m.ignore, null, m.dirname) && (y = !0), g && !y) {
        const P = XPt(g), x = new ev.ConfigPrinter(), C = yield* e8(P, t, void 0, x);
        C ? (i = yield* x.output(), iy(v, C)) : y = !0;
      }
      g && y && v.files.add(g.filepath);
    }
  }
  t.showConfig && console.log('Babel configs on "'.concat(t.filename, '" (ascending priority):\n') + [r, i, a].filter((S) => !!S).join("\n\n") + "\n-----End Babel configs-----");
  const T = iy(iy(iy(AP(), f), v), s);
  return {
    plugins: y ? [] : Vw(T.plugins),
    presets: y ? [] : Vw(T.presets),
    options: y ? [] : T.options.map((S) => dme(S)),
    fileHandling: y ? "ignored" : "transpile",
    ignore: m || void 0,
    babelrc: g || void 0,
    config: o || void 0,
    files: T.files
  };
}
function GPt(e, t, r, i) {
  if (typeof r == "boolean")
    return r;
  const n = e.root;
  if (r === void 0)
    return t.directories.indexOf(n) !== -1;
  let s = r;
  return Array.isArray(s) || (s = [s]), s = s.map((a) => typeof a == "string" ? cme().resolve(i, a) : a), s.length === 1 && s[0] === n ? t.directories.indexOf(n) !== -1 : s.some((a) => (typeof a == "string" && (a = (0, fme.default)(a, i)), t.directories.some((o) => yme(a, i, o, e))));
}
const YPt = (0, Jn.makeWeakCacheSync)((e) => ({
  filepath: e.filepath,
  dirname: e.dirname,
  options: (0, x5.validate)("configfile", e.options, e.filepath)
})), XPt = (0, Jn.makeWeakCacheSync)((e) => ({
  filepath: e.filepath,
  dirname: e.dirname,
  options: (0, x5.validate)("babelrcfile", e.options, e.filepath)
})), JPt = (0, Jn.makeWeakCacheSync)((e) => ({
  filepath: e.filepath,
  dirname: e.dirname,
  options: (0, x5.validate)("extendsfile", e.options, e.filepath)
})), QPt = C5({
  root: (e) => E5(e, "base", Fl.createCachedDescriptors),
  env: (e, t) => P5(e, "base", Fl.createCachedDescriptors, t),
  overrides: (e, t) => w5(e, "base", Fl.createCachedDescriptors, t),
  overridesEnv: (e, t, r) => A5(e, "base", Fl.createCachedDescriptors, t, r),
  createLogger: (e, t, r) => swt(e, t, r)
}), ZPt = C5({
  root: (e) => ewt(e),
  env: (e, t) => twt(e)(t),
  overrides: (e, t) => rwt(e)(t),
  overridesEnv: (e, t, r) => iwt(e)(t)(r),
  createLogger: (e, t, r) => nwt(e.filepath, t, r)
});
function* e8(e, t, r, i) {
  const n = yield* ZPt(e, t, r, i);
  return n && n.files.add(e.filepath), n;
}
const ewt = (0, Jn.makeWeakCacheSync)((e) => E5(e, e.filepath, Fl.createUncachedDescriptors)), twt = (0, Jn.makeWeakCacheSync)((e) => (0, Jn.makeStrongCacheSync)((t) => P5(e, e.filepath, Fl.createUncachedDescriptors, t))), rwt = (0, Jn.makeWeakCacheSync)((e) => (0, Jn.makeStrongCacheSync)((t) => w5(e, e.filepath, Fl.createUncachedDescriptors, t))), iwt = (0, Jn.makeWeakCacheSync)((e) => (0, Jn.makeStrongCacheSync)((t) => (0, Jn.makeStrongCacheSync)((r) => A5(e, e.filepath, Fl.createUncachedDescriptors, t, r))));
function nwt(e, t, r) {
  return r ? r.configure(t.showConfig, ev.ChainFormatter.Config, {
    filepath: e
  }) : () => {
  };
}
function E5({
  dirname: e,
  options: t
}, r, i) {
  return i(e, t, r);
}
function swt(e, t, r) {
  var i;
  return r ? r.configure(t.showConfig, ev.ChainFormatter.Programmatic, {
    callerName: (i = t.caller) == null ? void 0 : i.name
  }) : () => {
  };
}
function P5({
  dirname: e,
  options: t
}, r, i, n) {
  const s = t.env && t.env[n];
  return s ? i(e, s, "".concat(r, '.env["').concat(n, '"]')) : null;
}
function w5({
  dirname: e,
  options: t
}, r, i, n) {
  const s = t.overrides && t.overrides[n];
  if (!s)
    throw new Error("Assertion failure - missing override");
  return i(e, s, "".concat(r, ".overrides[").concat(n, "]"));
}
function A5({
  dirname: e,
  options: t
}, r, i, n, s) {
  const a = t.overrides && t.overrides[n];
  if (!a)
    throw new Error("Assertion failure - missing override");
  const o = a.env && a.env[s];
  return o ? i(e, o, "".concat(r, ".overrides[").concat(n, '].env["').concat(s, '"]')) : null;
}
function C5({
  root: e,
  env: t,
  overrides: r,
  overridesEnv: i,
  createLogger: n
}) {
  return function* (a, o, l = /* @__PURE__ */ new Set(), u) {
    const {
      dirname: c
    } = a, f = [], h = e(a);
    if (y1(h, c, o, a.filepath)) {
      f.push({
        config: h,
        envName: void 0,
        index: void 0
      });
      const y = t(a, o.envName);
      y && y1(y, c, o, a.filepath) && f.push({
        config: y,
        envName: o.envName,
        index: void 0
      }), (h.options.overrides || []).forEach((v, T) => {
        const S = r(a, T);
        if (y1(S, c, o, a.filepath)) {
          f.push({
            config: S,
            index: T,
            envName: void 0
          });
          const P = i(a, T, o.envName);
          P && y1(P, c, o, a.filepath) && f.push({
            config: P,
            index: T,
            envName: o.envName
          });
        }
      });
    }
    if (f.some(({
      config: {
        options: {
          ignore: y,
          only: v
        }
      }
    }) => mme(o, y, v, c)))
      return null;
    const m = AP(), g = n(a, o, u);
    for (const {
      config: y,
      index: v,
      envName: T
    } of f) {
      if (!(yield* awt(m, y.options, c, o, l, u)))
        return null;
      g(y, v, T), yield* owt(m, y);
    }
    return m;
  };
}
function* awt(e, t, r, i, n, s) {
  if (t.extends === void 0)
    return !0;
  const a = yield* (0, A0.loadConfig)(t.extends, r, i.envName, i.caller);
  if (n.has(a))
    throw new Error("Configuration cycle detected loading ".concat(a.filepath, ".\n") + "File already loaded following the config chain:\n" + Array.from(n, (l) => " - ".concat(l.filepath)).join("\n"));
  n.add(a);
  const o = yield* e8(JPt(a), i, n, s);
  return n.delete(a), o ? (iy(e, o), !0) : !1;
}
function iy(e, t) {
  e.options.push(...t.options), e.plugins.push(...t.plugins), e.presets.push(...t.presets);
  for (const r of t.files)
    e.files.add(r);
  return e;
}
function* owt(e, {
  options: t,
  plugins: r,
  presets: i
}) {
  return e.options.push(t), e.plugins.push(...yield* r()), e.presets.push(...yield* i()), e;
}
function AP() {
  return {
    options: [],
    presets: [],
    plugins: [],
    files: /* @__PURE__ */ new Set()
  };
}
function dme(e) {
  const t = Object.assign({}, e);
  return delete t.extends, delete t.env, delete t.overrides, delete t.plugins, delete t.presets, delete t.passPerPreset, delete t.ignore, delete t.only, delete t.test, delete t.include, delete t.exclude, Object.prototype.hasOwnProperty.call(t, "sourceMap") && (t.sourceMaps = t.sourceMap, delete t.sourceMap), t;
}
function Vw(e) {
  const t = /* @__PURE__ */ new Map(), r = [];
  for (const i of e)
    if (typeof i.value == "function") {
      const n = i.value;
      let s = t.get(n);
      s || (s = /* @__PURE__ */ new Map(), t.set(n, s));
      let a = s.get(i.name);
      a ? a.value = i : (a = {
        value: i
      }, r.push(a), i.ownPass || s.set(i.name, a));
    } else
      r.push({
        value: i
      });
  return r.reduce((i, n) => (i.push(n.value), i), []);
}
function y1({
  options: e
}, t, r, i) {
  return (e.test === void 0 || u3(r, e.test, t, i)) && (e.include === void 0 || u3(r, e.include, t, i)) && (e.exclude === void 0 || !u3(r, e.exclude, t, i));
}
function u3(e, t, r, i) {
  const n = Array.isArray(t) ? t : [t];
  return t8(e, n, r, i);
}
function KJ(e, t) {
  return t instanceof RegExp ? String(t) : t;
}
function mme(e, t, r, i) {
  if (t && t8(e, t, i)) {
    var n;
    const a = 'No config is applied to "'.concat((n = e.filename) != null ? n : "(unknown)", '" because it matches one of `ignore: ').concat(JSON.stringify(t, KJ), '` from "').concat(i, '"');
    return HJ(a), e.showConfig && console.log(a), !0;
  }
  if (r && !t8(e, r, i)) {
    var s;
    const a = 'No config is applied to "'.concat((s = e.filename) != null ? s : "(unknown)", '" because it fails to match one of `only: ').concat(JSON.stringify(r, KJ), '` from "').concat(i, '"');
    return HJ(a), e.showConfig && console.log(a), !0;
  }
  return !1;
}
function t8(e, t, r, i) {
  return t.some((n) => yme(n, r, e.filename, e, i));
}
function yme(e, t, r, i, n) {
  if (typeof e == "function")
    return !!(0, $Pt.endHiddenCallStack)(e)(r, {
      dirname: t,
      envName: i.envName,
      caller: i.caller
    });
  if (typeof r != "string")
    throw new UPt.default("Configuration contains string/RegExp pattern, but no filename was passed to Babel", n);
  return typeof e == "string" && (e = (0, fme.default)(e, t)), e.test(r);
}
var _5 = {};
Object.defineProperty(_5, "__esModule", {
  value: !0
});
_5.validatePluginObject = pwt;
var Gp = rme();
const lwt = {
  name: Gp.assertString,
  manipulateOptions: Gp.assertFunction,
  pre: Gp.assertFunction,
  post: Gp.assertFunction,
  inherits: Gp.assertFunction,
  visitor: uwt,
  parserOverride: Gp.assertFunction,
  generatorOverride: Gp.assertFunction
};
function uwt(e, t) {
  const r = (0, Gp.assertObject)(e, t);
  if (r && (Object.keys(r).forEach((i) => cwt(i, r[i])), r.enter || r.exit))
    throw new Error("".concat((0, Gp.msg)(e), ' cannot contain catch-all "enter" or "exit" handlers. Please target individual nodes.'));
  return r;
}
function cwt(e, t) {
  if (t && typeof t == "object")
    Object.keys(t).forEach((r) => {
      if (r !== "enter" && r !== "exit")
        throw new Error('.visitor["'.concat(e, '"] may only have .enter and/or .exit handlers.'));
    });
  else if (typeof t != "function")
    throw new Error('.visitor["'.concat(e, '"] must be a function'));
  return t;
}
function pwt(e) {
  const t = {
    type: "root",
    source: "plugin"
  };
  return Object.keys(e).forEach((r) => {
    const i = lwt[r];
    if (i)
      i({
        type: "option",
        name: r,
        parent: t
      }, e[r]);
    else {
      const n = new Error(".".concat(r, " is not a valid Plugin property"));
      throw n.code = "BABEL_UNKNOWN_PLUGIN_PROPERTY", n;
    }
  }), e;
}
var qm = {}, zJ;
function fwt() {
  if (zJ)
    return qm;
  zJ = 1, Object.defineProperty(qm, "__esModule", {
    value: !0
  }), qm.makeConfigAPI = i, qm.makePluginAPI = s, qm.makePresetAPI = n;
  function e() {
    const o = Ide();
    return e = function() {
      return o;
    }, o;
  }
  var t = js(), r = bp;
  function i(o) {
    const l = (c) => o.using((f) => typeof c == "undefined" ? f.envName : typeof c == "function" ? (0, r.assertSimpleType)(c(f.envName)) : (Array.isArray(c) ? c : [c]).some((h) => {
      if (typeof h != "string")
        throw new Error("Unexpected non-string value");
      return h === f.envName;
    })), u = (c) => o.using((f) => (0, r.assertSimpleType)(c(f.caller)));
    return {
      version: t.version,
      cache: o.simple(),
      env: l,
      async: () => !1,
      caller: u,
      assertVersion: a
    };
  }
  function n(o, l) {
    const u = () => JSON.parse(o.using((f) => JSON.stringify(f.targets))), c = (f) => {
      l.push(f);
    };
    return Object.assign({}, i(o), {
      targets: u,
      addExternalDependency: c
    });
  }
  function s(o, l) {
    const u = (c) => o.using((f) => f.assumptions[c]);
    return Object.assign({}, n(o, l), {
      assumption: u
    });
  }
  function a(o) {
    if (typeof o == "number") {
      if (!Number.isInteger(o))
        throw new Error("Expected string or integer value.");
      o = "^".concat(o, ".0.0-0");
    }
    if (typeof o != "string")
      throw new Error("Expected string or integer value.");
    if (e().satisfies(t.version, o))
      return;
    const l = Error.stackTraceLimit;
    typeof l == "number" && l < 25 && (Error.stackTraceLimit = 25);
    const u = new Error('Requires Babel "'.concat(o, '", but was loaded with "').concat(t.version, '". ') + 'If you are sure you have a compatible version of @babel/core, it is likely that something in your build process is loading the wrong version. Inspect the stack trace of this error to look for the first entry that doesn\'t mention "@babel/core" or "babel-core" to see what is calling Babel.');
    throw typeof l == "number" && (Error.stackTraceLimit = l), Object.assign(u, {
      code: "BABEL_VERSION_UNSUPPORTED",
      version: t.version,
      range: o
    });
  }
  return qm;
}
var Dg = {};
Object.defineProperty(Dg, "__esModule", {
  value: !0
});
Dg.default = bme;
Dg.loadPartialConfig = void 0;
function CP() {
  const e = xs;
  return CP = function() {
    return e;
  }, e;
}
function gme() {
  const e = gp();
  return gme = function() {
    return e;
  }, e;
}
var hwt = kg, dwt = Ig, GJ = eI(), mwt = fm, ywt = Q_, gwt = iI(), _P = Ps, bwt = nS;
const vwt = ["showIgnoredFiles"];
function Twt(e, t) {
  if (e == null)
    return {};
  var r = {}, i = Object.keys(e), n, s;
  for (s = 0; s < i.length; s++)
    n = i[s], !(t.indexOf(n) >= 0) && (r[n] = e[n]);
  return r;
}
function Swt(e, t) {
  switch (t) {
    case "root":
      return e;
    case "upward-optional": {
      const r = (0, _P.findConfigUpwards)(e);
      return r === null ? e : r;
    }
    case "upward": {
      const r = (0, _P.findConfigUpwards)(e);
      if (r !== null)
        return r;
      throw Object.assign(new Error('Babel was run with rootMode:"upward" but a root could not ' + 'be found when searching upward from "'.concat(e, '".\n') + "One of the following config files must be in the directory tree: " + '"'.concat(_P.ROOT_CONFIG_FILENAMES.join(", "), '".')), {
        code: "BABEL_ROOT_NOT_FOUND",
        dirname: e
      });
    }
    default:
      throw new Error("Assertion failure - unknown rootMode value.");
  }
}
function* bme(e) {
  if (e != null && (typeof e != "object" || Array.isArray(e)))
    throw new Error("Babel options must be an object, null, or undefined");
  const t = e ? (0, gwt.validate)("arguments", e) : {}, {
    envName: r = (0, ywt.getEnv)(),
    cwd: i = ".",
    root: n = ".",
    rootMode: s = "root",
    caller: a,
    cloneInputAst: o = !0
  } = t, l = CP().resolve(i), u = Swt(CP().resolve(l, n), s), c = typeof t.filename == "string" ? CP().resolve(i, t.filename) : void 0, f = yield* (0, _P.resolveShowConfigPath)(l), h = {
    filename: c,
    cwd: l,
    root: u,
    envName: r,
    caller: a,
    showConfig: f === c
  }, m = yield* (0, mwt.buildRootChain)(t, h);
  if (!m)
    return null;
  const g = {
    assumptions: {}
  };
  return m.options.forEach((v) => {
    (0, dwt.mergeOptions)(g, v);
  }), {
    options: Object.assign({}, g, {
      targets: (0, bwt.resolveTargets)(g, u),
      cloneInputAst: o,
      babelrc: !1,
      configFile: !1,
      browserslistConfigFile: !1,
      passPerPreset: !1,
      envName: h.envName,
      cwd: h.cwd,
      root: h.root,
      rootMode: "root",
      filename: typeof h.filename == "string" ? h.filename : void 0,
      plugins: m.plugins.map((v) => (0, GJ.createItemFromDescriptor)(v)),
      presets: m.presets.map((v) => (0, GJ.createItemFromDescriptor)(v))
    }),
    context: h,
    fileHandling: m.fileHandling,
    ignore: m.ignore,
    babelrc: m.babelrc,
    config: m.config,
    files: m.files
  };
}
const xwt = gme()(function* (e) {
  let t = !1;
  if (typeof e == "object" && e !== null && !Array.isArray(e)) {
    var r = e;
    ({
      showIgnoredFiles: t
    } = r), e = Twt(r, vwt);
  }
  const i = yield* bme(e);
  if (!i)
    return null;
  const {
    options: n,
    babelrc: s,
    ignore: a,
    config: o,
    fileHandling: l,
    files: u
  } = i;
  return l === "ignored" && !t ? null : ((n.plugins || []).forEach((c) => {
    if (c.value instanceof hwt.default)
      throw new Error("Passing cached plugin instances is not supported in babel.loadPartialConfig()");
  }), new vme(n, s ? s.filepath : void 0, a ? a.filepath : void 0, o ? o.filepath : void 0, l, u));
});
Dg.loadPartialConfig = xwt;
class vme {
  constructor(t, r, i, n, s, a) {
    this.options = void 0, this.babelrc = void 0, this.babelignore = void 0, this.config = void 0, this.fileHandling = void 0, this.files = void 0, this.options = t, this.babelignore = i, this.babelrc = r, this.config = n, this.fileHandling = s, this.files = a, Object.freeze(this);
  }
  hasFilesystemConfig() {
    return this.babelrc !== void 0 || this.config !== void 0;
  }
}
Object.freeze(vme.prototype);
var YJ;
function Ewt() {
  if (YJ)
    return Yb;
  YJ = 1, Object.defineProperty(Yb, "__esModule", {
    value: !0
  }), Yb.default = void 0;
  function e() {
    const F = gp();
    return e = function() {
      return F;
    }, F;
  }
  var t = Co, r = Ig, i = js(), n = kg, s = eI(), a = fm, o = Og;
  function l() {
    const F = yp();
    return l = function() {
      return F;
    }, F;
  }
  var u = bp, c = iI(), f = _5, h = fwt(), m = Dg, g = Ng, y = e()(function* (q) {
    var j;
    const N = yield* (0, m.default)(q);
    if (!N)
      return null;
    const {
      options: M,
      context: R,
      fileHandling: $
    } = N;
    if ($ === "ignored")
      return null;
    const V = {}, {
      plugins: K,
      presets: z
    } = M;
    if (!K || !z)
      throw new Error("Assertion failure - plugins and presets exist");
    const W = Object.assign({}, R, {
      targets: M.targets
    }), Y = (ue) => {
      const me = (0, s.getItemDescriptor)(ue);
      if (!me)
        throw new Error("Assertion failure - must be config item");
      return me;
    }, G = z.map(Y), le = K.map(Y), ne = [[]], ae = [], be = [];
    if (yield* v(R, function* ue(me, xe) {
      const Pe = [];
      for (let Xe = 0; Xe < me.length; Xe++) {
        const st = me[Xe];
        if (st.options !== !1) {
          try {
            var ve = yield* L(st, W);
          } catch (Se) {
            throw Se.code === "BABEL_UNKNOWN_OPTION" && (0, c.checkNoUnwrappedItemOptionPairs)(me, Xe, "preset", Se), Se;
          }
          be.push(ve.externalDependencies), st.ownPass ? Pe.push({
            preset: ve.chain,
            pass: []
          }) : Pe.unshift({
            preset: ve.chain,
            pass: xe
          });
        }
      }
      if (Pe.length > 0) {
        ne.splice(1, 0, ...Pe.map((Xe) => Xe.pass).filter((Xe) => Xe !== xe));
        for (const {
          preset: Xe,
          pass: st
        } of Pe) {
          if (!Xe || (st.push(...Xe.plugins), yield* ue(Xe.presets, st)))
            return !0;
          Xe.options.forEach((oe) => {
            (0, r.mergeOptions)(V, oe);
          });
        }
      }
    })(G, ne[0]))
      return null;
    const fe = V;
    (0, r.mergeOptions)(fe, M);
    const Z = Object.assign({}, W, {
      assumptions: (j = fe.assumptions) != null ? j : {}
    });
    return yield* v(R, function* () {
      ne[0].unshift(...le);
      for (const xe of ne) {
        const Pe = [];
        ae.push(Pe);
        for (let ve = 0; ve < xe.length; ve++) {
          const Xe = xe[ve];
          if (Xe.options !== !1) {
            try {
              var me = yield* C(Xe, Z);
            } catch (st) {
              throw st.code === "BABEL_UNKNOWN_PLUGIN_PROPERTY" && (0, c.checkNoUnwrappedItemOptionPairs)(xe, ve, "plugin", st), st;
            }
            Pe.push(me), be.push(me.externalDependencies);
          }
        }
      }
    })(), fe.plugins = ae[0], fe.presets = ae.slice(1).filter((ue) => ue.length > 0).map((ue) => ({
      plugins: ue
    })), fe.passPerPreset = fe.presets.length > 0, {
      options: fe,
      passes: ae,
      externalDependencies: (0, o.finalize)(be)
    };
  });
  Yb.default = y;
  function v(F, q) {
    return function* (j, N) {
      try {
        return yield* q(j, N);
      } catch (R) {
        if (!/^\[BABEL\]/.test(R.message)) {
          var M;
          R.message = "[BABEL] ".concat((M = F.filename) != null ? M : "unknown file", ": ").concat(R.message);
        }
        throw R;
      }
    };
  }
  const T = (F) => (0, u.makeWeakCache)(function* ({
    value: q,
    options: j,
    dirname: N,
    alias: M
  }, R) {
    if (j === !1)
      throw new Error("Assertion failure");
    j = j || {};
    const $ = [];
    let V = q;
    if (typeof q == "function") {
      const K = (0, t.maybeAsync)(q, "You appear to be using an async plugin/preset, but Babel has been called synchronously"), z = Object.assign({}, i, F(R, $));
      try {
        V = yield* K(z, j, N);
      } catch (W) {
        throw M && (W.message += " (While processing: ".concat(JSON.stringify(M), ")")), W;
      }
    }
    if (!V || typeof V != "object")
      throw new Error("Plugin/Preset did not return an object.");
    if ((0, t.isThenable)(V))
      throw yield* [], new Error('You appear to be using a promise as a plugin, which your current version of Babel does not support. If you\'re using a published plugin, you may need to upgrade your @babel/core version. As an alternative, you can prefix the promise with "await". ' + "(While processing: ".concat(JSON.stringify(M), ")"));
    if ($.length > 0 && (!R.configured() || R.mode() === "forever")) {
      let K = "A plugin/preset has external untracked dependencies " + "(".concat($[0], "), but the cache ");
      throw R.configured() ? K += " has been configured to never be invalidated. " : K += "has not been configured to be invalidated when the external dependencies change. ", K += "Plugins/presets should configure their cache to be invalidated when the external dependencies change, for example using `api.cache.invalidate(() => statSync(filepath).mtimeMs)` or `api.cache.never()`\n" + "(While processing: ".concat(JSON.stringify(M), ")"), new Error(K);
    }
    return {
      value: V,
      options: j,
      dirname: N,
      alias: M,
      externalDependencies: (0, o.finalize)($)
    };
  }), S = T(h.makePluginAPI), P = T(h.makePresetAPI), x = (0, u.makeWeakCache)(function* ({
    value: F,
    options: q,
    dirname: j,
    alias: N,
    externalDependencies: M
  }, R) {
    const $ = (0, f.validatePluginObject)(F), V = Object.assign({}, $);
    if (V.visitor && (V.visitor = l().default.explode(Object.assign({}, V.visitor))), V.inherits) {
      const K = {
        name: void 0,
        alias: "".concat(N, "$inherits"),
        value: V.inherits,
        options: q,
        dirname: j
      }, z = yield* (0, t.forwardAsync)(C, (W) => R.invalidate((Y) => W(K, Y)));
      V.pre = O(z.pre, V.pre), V.post = O(z.post, V.post), V.manipulateOptions = O(z.manipulateOptions, V.manipulateOptions), V.visitor = l().default.visitors.merge([z.visitor || {}, V.visitor || {}]), z.externalDependencies.length > 0 && (M.length === 0 ? M = z.externalDependencies : M = (0, o.finalize)([M, z.externalDependencies]));
    }
    return new n.default(V, q, N, M);
  });
  function* C(F, q) {
    if (F.value instanceof n.default) {
      if (F.options)
        throw new Error("Passed options to an existing Plugin instance will not work.");
      return F.value;
    }
    return yield* x(yield* S(F, q), q);
  }
  const D = (F) => F && typeof F != "function", w = (F, q) => {
    if (D(F.test) || D(F.include) || D(F.exclude)) {
      const j = q.name ? '"'.concat(q.name, '"') : "/* your preset */";
      throw new g.default(["Preset ".concat(j, " requires a filename to be set when babel is called directly,"), "```", "babel.transformSync(code, { filename: 'file.ts', presets: [".concat(j, "] });"), "```", "See https://babeljs.io/docs/en/options#filename for more information."].join("\n"));
    }
  }, A = (F, q, j) => {
    if (!q.filename) {
      const {
        options: N
      } = F;
      w(N, j), N.overrides && N.overrides.forEach((M) => w(M, j));
    }
  }, I = (0, u.makeWeakCacheSync)(({
    value: F,
    dirname: q,
    alias: j,
    externalDependencies: N
  }) => ({
    options: (0, c.validate)("preset", F),
    alias: j,
    dirname: q,
    externalDependencies: N
  }));
  function* L(F, q) {
    const j = I(yield* P(F, q));
    return A(j, q, F), {
      chain: yield* (0, a.buildPresetChain)(j, q),
      externalDependencies: j.externalDependencies
    };
  }
  function O(F, q) {
    const j = [F, q].filter(Boolean);
    return j.length <= 1 ? j[0] : function(...N) {
      for (const M of j)
        M.apply(this, N);
    };
  }
  return Yb;
}
var XJ;
function nI() {
  return XJ || (XJ = 1, function(e) {
    Object.defineProperty(e, "__esModule", {
      value: !0
    }), e.createConfigItem = v, e.createConfigItemSync = e.createConfigItemAsync = void 0, Object.defineProperty(e, "default", {
      enumerable: !0,
      get: function() {
        return r.default;
      }
    }), e.loadPartialConfigSync = e.loadPartialConfigAsync = e.loadPartialConfig = e.loadOptionsSync = e.loadOptionsAsync = e.loadOptions = void 0;
    function t() {
      const T = gp();
      return t = function() {
        return T;
      }, T;
    }
    var r = Ewt(), i = Dg, n = eI();
    const s = t()(function* (T) {
      var S;
      const P = yield* (0, r.default)(T);
      return (S = P == null ? void 0 : P.options) != null ? S : null;
    }), a = t()(n.createConfigItem), o = (T) => (S, P) => {
      let x, C;
      if (P === void 0 && typeof S == "function" ? (C = S, x = void 0) : (C = P, x = S), !C)
        return T.sync(x);
      T.errback(x, C);
    }, l = o(i.loadPartialConfig);
    e.loadPartialConfig = l;
    const u = i.loadPartialConfig.sync;
    e.loadPartialConfigSync = u;
    const c = i.loadPartialConfig.async;
    e.loadPartialConfigAsync = c;
    const f = o(s);
    e.loadOptions = f;
    const h = s.sync;
    e.loadOptionsSync = h;
    const m = s.async;
    e.loadOptionsAsync = m;
    const g = a.sync;
    e.createConfigItemSync = g;
    const y = a.async;
    e.createConfigItemAsync = y;
    function v(T, S, P) {
      if (P !== void 0)
        a.errback(T, S, P);
      else if (typeof S == "function")
        a.errback(T, void 0, P);
      else
        return a.sync(T, S);
    }
  }($R)), $R;
}
var fd = {}, sI = {}, aI = {};
Object.defineProperty(aI, "__esModule", {
  value: !0
});
aI.default = void 0;
class Tme {
  constructor(t, r, i) {
    this._map = /* @__PURE__ */ new Map(), this.key = void 0, this.file = void 0, this.opts = void 0, this.cwd = void 0, this.filename = void 0, this.key = r, this.file = t, this.opts = i || {}, this.cwd = t.opts.cwd, this.filename = t.opts.filename;
  }
  set(t, r) {
    this._map.set(t, r);
  }
  get(t) {
    return this._map.get(t);
  }
  availableHelper(t, r) {
    return this.file.availableHelper(t, r);
  }
  addHelper(t) {
    return this.file.addHelper(t);
  }
  addImport() {
    this.file.addImport();
  }
  buildCodeFrameError(t, r, i) {
    return this.file.buildCodeFrameError(t, r, i);
  }
}
aI.default = Tme;
Tme.prototype.getModuleName = function() {
  return this.file.getModuleName();
};
var I5 = {};
Object.defineProperty(I5, "__esModule", {
  value: !0
});
I5.default = wwt;
function Sme() {
  const e = yp();
  return Sme = function() {
    return e;
  }, e;
}
var Pwt = kg;
let c3;
const JJ = {
  name: "internal.blockHoist",
  visitor: {
    Block: {
      exit({
        node: e
      }) {
        const {
          body: t
        } = e;
        let r = Math.pow(2, 30) - 1, i = !1;
        for (let n = 0; n < t.length; n++) {
          const s = t[n], a = xme(s);
          if (a > r) {
            i = !0;
            break;
          }
          r = a;
        }
        i && (e.body = Awt(t.slice()));
      }
    }
  }
};
function wwt() {
  return c3 || (c3 = new Pwt.default(Object.assign({}, JJ, {
    visitor: Sme().default.explode(JJ.visitor)
  }), {})), c3;
}
function xme(e) {
  const t = e == null ? void 0 : e._blockHoist;
  return t == null ? 1 : t === !0 ? 2 : t;
}
function Awt(e) {
  const t = /* @__PURE__ */ Object.create(null);
  for (let n = 0; n < e.length; n++) {
    const s = e[n], a = xme(s);
    (t[a] || (t[a] = [])).push(s);
  }
  const r = Object.keys(t).map((n) => +n).sort((n, s) => s - n);
  let i = 0;
  for (const n of r) {
    const s = t[n];
    for (const a of s)
      e[i++] = a;
  }
  return e;
}
var oI = {};
Object.defineProperty(oI, "__esModule", {
  value: !0
});
oI.default = Cwt;
function IP() {
  const e = xs;
  return IP = function() {
    return e;
  }, e;
}
function Cwt(e) {
  const {
    filename: t,
    cwd: r,
    filenameRelative: i = typeof t == "string" ? IP().relative(r, t) : "unknown",
    sourceType: n = "module",
    inputSourceMap: s,
    sourceMaps: a = !!s,
    sourceRoot: o = e.options.moduleRoot,
    sourceFileName: l = IP().basename(i),
    comments: u = !0,
    compact: c = "auto"
  } = e.options, f = e.options, h = Object.assign({}, f, {
    parserOpts: Object.assign({
      sourceType: IP().extname(i) === ".mjs" ? "module" : n,
      sourceFileName: t,
      plugins: []
    }, f.parserOpts),
    generatorOpts: Object.assign({
      filename: t,
      auxiliaryCommentBefore: f.auxiliaryCommentBefore,
      auxiliaryCommentAfter: f.auxiliaryCommentAfter,
      retainLines: f.retainLines,
      comments: u,
      shouldPrintComment: f.shouldPrintComment,
      compact: c,
      minified: f.minified,
      sourceMaps: a,
      sourceRoot: o,
      sourceFileName: l
    }, f.generatorOpts)
  });
  for (const m of e.passes)
    for (const g of m)
      g.manipulateOptions && g.manipulateOptions(h, h.parserOpts);
  return h;
}
var k5 = {}, p3 = {}, QJ;
function Eme() {
  return QJ || (QJ = 1, function(e) {
    var t = $l, r = xs;
    Object.defineProperty(e, "commentRegex", {
      get: function() {
        return /^\s*\/(?:\/|\*)[@#]\s+sourceMappingURL=data:(?:application|text)\/json;(?:charset[:=]\S+?;)?base64,(?:.*)$/mg;
      }
    }), Object.defineProperty(e, "mapFileCommentRegex", {
      get: function() {
        return /(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"`]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^\*]+?)[ \t]*(?:\*\/){1}[ \t]*$)/mg;
      }
    });
    var i;
    typeof Buffer != "undefined" ? typeof Buffer.from == "function" ? i = n : i = s : i = a;
    function n(m) {
      return Buffer.from(m, "base64").toString();
    }
    function s(m) {
      if (typeof value == "number")
        throw new TypeError("The value to decode must not be of type number.");
      return new Buffer(m, "base64").toString();
    }
    function a(m) {
      return decodeURIComponent(escape(atob(m)));
    }
    function o(m) {
      return m.split(",").pop();
    }
    function l(m, g) {
      var y = e.mapFileCommentRegex.exec(m), v = y[1] || y[2], T = r.resolve(g, v);
      try {
        return t.readFileSync(T, "utf8");
      } catch (S) {
        throw new Error("An error occurred while trying to read the map file at " + T + "\n" + S);
      }
    }
    function u(m, g) {
      g = g || {}, g.isFileComment && (m = l(m, g.commentFileDir)), g.hasComment && (m = o(m)), g.isEncoded && (m = i(m)), (g.isJSON || g.isEncoded) && (m = JSON.parse(m)), this.sourcemap = m;
    }
    u.prototype.toJSON = function(m) {
      return JSON.stringify(this.sourcemap, null, m);
    }, typeof Buffer != "undefined" ? typeof Buffer.from == "function" ? u.prototype.toBase64 = c : u.prototype.toBase64 = f : u.prototype.toBase64 = h;
    function c() {
      var m = this.toJSON();
      return Buffer.from(m, "utf8").toString("base64");
    }
    function f() {
      var m = this.toJSON();
      if (typeof m == "number")
        throw new TypeError("The json to encode must not be of type number.");
      return new Buffer(m, "utf8").toString("base64");
    }
    function h() {
      var m = this.toJSON();
      return btoa(unescape(encodeURIComponent(m)));
    }
    u.prototype.toComment = function(m) {
      var g = this.toBase64(), y = "sourceMappingURL=data:application/json;charset=utf-8;base64," + g;
      return m && m.multiline ? "/*# " + y + " */" : "//# " + y;
    }, u.prototype.toObject = function() {
      return JSON.parse(this.toJSON());
    }, u.prototype.addProperty = function(m, g) {
      if (this.sourcemap.hasOwnProperty(m))
        throw new Error('property "' + m + '" already exists on the sourcemap, use set property instead');
      return this.setProperty(m, g);
    }, u.prototype.setProperty = function(m, g) {
      return this.sourcemap[m] = g, this;
    }, u.prototype.getProperty = function(m) {
      return this.sourcemap[m];
    }, e.fromObject = function(m) {
      return new u(m);
    }, e.fromJSON = function(m) {
      return new u(m, { isJSON: !0 });
    }, e.fromBase64 = function(m) {
      return new u(m, { isEncoded: !0 });
    }, e.fromComment = function(m) {
      return m = m.replace(/^\/\*/g, "//").replace(/\*\/$/g, ""), new u(m, { isEncoded: !0, hasComment: !0 });
    }, e.fromMapFileComment = function(m, g) {
      return new u(m, { commentFileDir: g, isFileComment: !0, isJSON: !0 });
    }, e.fromSource = function(m) {
      var g = m.match(e.commentRegex);
      return g ? e.fromComment(g.pop()) : null;
    }, e.fromMapFileSource = function(m, g) {
      var y = m.match(e.mapFileCommentRegex);
      return y ? e.fromMapFileComment(y.pop(), g) : null;
    }, e.removeComments = function(m) {
      return m.replace(e.commentRegex, "");
    }, e.removeMapFileComments = function(m) {
      return m.replace(e.mapFileCommentRegex, "");
    }, e.generateMapFileComment = function(m, g) {
      var y = "sourceMappingURL=" + m;
      return g && g.multiline ? "/*# " + y + " */" : "//# " + y;
    };
  }(p3)), p3;
}
var lI = {}, O5 = {};
Object.defineProperty(O5, "__esModule", {
  value: !0
});
O5.default = _wt;
const r8 = {
  asyncDoExpressions: {
    syntax: {
      name: "@babel/plugin-syntax-async-do-expressions",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-do-expressions"
    }
  },
  decimal: {
    syntax: {
      name: "@babel/plugin-syntax-decimal",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decimal"
    }
  },
  decorators: {
    syntax: {
      name: "@babel/plugin-syntax-decorators",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decorators"
    },
    transform: {
      name: "@babel/plugin-proposal-decorators",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-decorators"
    }
  },
  doExpressions: {
    syntax: {
      name: "@babel/plugin-syntax-do-expressions",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-do-expressions"
    },
    transform: {
      name: "@babel/plugin-proposal-do-expressions",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-do-expressions"
    }
  },
  exportDefaultFrom: {
    syntax: {
      name: "@babel/plugin-syntax-export-default-from",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-default-from"
    },
    transform: {
      name: "@babel/plugin-proposal-export-default-from",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-export-default-from"
    }
  },
  flow: {
    syntax: {
      name: "@babel/plugin-syntax-flow",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-flow"
    },
    transform: {
      name: "@babel/preset-flow",
      url: "https://github.com/babel/babel/tree/main/packages/babel-preset-flow"
    }
  },
  functionBind: {
    syntax: {
      name: "@babel/plugin-syntax-function-bind",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-bind"
    },
    transform: {
      name: "@babel/plugin-proposal-function-bind",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-bind"
    }
  },
  functionSent: {
    syntax: {
      name: "@babel/plugin-syntax-function-sent",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-sent"
    },
    transform: {
      name: "@babel/plugin-proposal-function-sent",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-sent"
    }
  },
  jsx: {
    syntax: {
      name: "@babel/plugin-syntax-jsx",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-jsx"
    },
    transform: {
      name: "@babel/preset-react",
      url: "https://github.com/babel/babel/tree/main/packages/babel-preset-react"
    }
  },
  importAssertions: {
    syntax: {
      name: "@babel/plugin-syntax-import-assertions",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-assertions"
    }
  },
  pipelineOperator: {
    syntax: {
      name: "@babel/plugin-syntax-pipeline-operator",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-pipeline-operator"
    },
    transform: {
      name: "@babel/plugin-proposal-pipeline-operator",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-pipeline-operator"
    }
  },
  recordAndTuple: {
    syntax: {
      name: "@babel/plugin-syntax-record-and-tuple",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-record-and-tuple"
    }
  },
  regexpUnicodeSets: {
    syntax: {
      name: "@babel/plugin-syntax-unicode-sets-regex",
      url: "https://github.com/babel/babel/blob/main/packages/babel-plugin-syntax-unicode-sets-regex/README.md"
    },
    transform: {
      name: "@babel/plugin-proposal-unicode-sets-regex",
      url: "https://github.com/babel/babel/blob/main/packages/babel-plugin-proposalunicode-sets-regex/README.md"
    }
  },
  throwExpressions: {
    syntax: {
      name: "@babel/plugin-syntax-throw-expressions",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-throw-expressions"
    },
    transform: {
      name: "@babel/plugin-proposal-throw-expressions",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-throw-expressions"
    }
  },
  typescript: {
    syntax: {
      name: "@babel/plugin-syntax-typescript",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-typescript"
    },
    transform: {
      name: "@babel/preset-typescript",
      url: "https://github.com/babel/babel/tree/main/packages/babel-preset-typescript"
    }
  },
  asyncGenerators: {
    syntax: {
      name: "@babel/plugin-syntax-async-generators",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-generators"
    },
    transform: {
      name: "@babel/plugin-proposal-async-generator-functions",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-async-generator-functions"
    }
  },
  classProperties: {
    syntax: {
      name: "@babel/plugin-syntax-class-properties",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties"
    },
    transform: {
      name: "@babel/plugin-proposal-class-properties",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-class-properties"
    }
  },
  classPrivateProperties: {
    syntax: {
      name: "@babel/plugin-syntax-class-properties",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties"
    },
    transform: {
      name: "@babel/plugin-proposal-class-properties",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-class-properties"
    }
  },
  classPrivateMethods: {
    syntax: {
      name: "@babel/plugin-syntax-class-properties",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties"
    },
    transform: {
      name: "@babel/plugin-proposal-private-methods",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-private-methods"
    }
  },
  classStaticBlock: {
    syntax: {
      name: "@babel/plugin-syntax-class-static-block",
      url: "https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-syntax-class-static-block"
    },
    transform: {
      name: "@babel/plugin-proposal-class-static-block",
      url: "https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-class-static-block"
    }
  },
  dynamicImport: {
    syntax: {
      name: "@babel/plugin-syntax-dynamic-import",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-dynamic-import"
    }
  },
  exportNamespaceFrom: {
    syntax: {
      name: "@babel/plugin-syntax-export-namespace-from",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-namespace-from"
    },
    transform: {
      name: "@babel/plugin-proposal-export-namespace-from",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-export-namespace-from"
    }
  },
  importMeta: {
    syntax: {
      name: "@babel/plugin-syntax-import-meta",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-meta"
    }
  },
  logicalAssignment: {
    syntax: {
      name: "@babel/plugin-syntax-logical-assignment-operators",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-logical-assignment-operators"
    },
    transform: {
      name: "@babel/plugin-proposal-logical-assignment-operators",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-logical-assignment-operators"
    }
  },
  moduleStringNames: {
    syntax: {
      name: "@babel/plugin-syntax-module-string-names",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-module-string-names"
    }
  },
  numericSeparator: {
    syntax: {
      name: "@babel/plugin-syntax-numeric-separator",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-numeric-separator"
    },
    transform: {
      name: "@babel/plugin-proposal-numeric-separator",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-numeric-separator"
    }
  },
  nullishCoalescingOperator: {
    syntax: {
      name: "@babel/plugin-syntax-nullish-coalescing-operator",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-nullish-coalescing-operator"
    },
    transform: {
      name: "@babel/plugin-proposal-nullish-coalescing-operator",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-nullish-coalescing-opearator"
    }
  },
  objectRestSpread: {
    syntax: {
      name: "@babel/plugin-syntax-object-rest-spread",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-object-rest-spread"
    },
    transform: {
      name: "@babel/plugin-proposal-object-rest-spread",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-object-rest-spread"
    }
  },
  optionalCatchBinding: {
    syntax: {
      name: "@babel/plugin-syntax-optional-catch-binding",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-catch-binding"
    },
    transform: {
      name: "@babel/plugin-proposal-optional-catch-binding",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-optional-catch-binding"
    }
  },
  optionalChaining: {
    syntax: {
      name: "@babel/plugin-syntax-optional-chaining",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-chaining"
    },
    transform: {
      name: "@babel/plugin-proposal-optional-chaining",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-optional-chaining"
    }
  },
  privateIn: {
    syntax: {
      name: "@babel/plugin-syntax-private-property-in-object",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-private-property-in-object"
    },
    transform: {
      name: "@babel/plugin-proposal-private-property-in-object",
      url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-private-property-in-object"
    }
  }
};
r8.privateIn.syntax = r8.privateIn.transform;
const ZJ = ({
  name: e,
  url: t
}) => "".concat(e, " (").concat(t, ")");
function _wt(e, t, r) {
  let i = "Support for the experimental syntax '".concat(e, "' isn't currently enabled ") + "(".concat(t.line, ":").concat(t.column + 1, "):\n\n") + r;
  const n = r8[e];
  if (n) {
    const {
      syntax: s,
      transform: a
    } = n;
    if (s) {
      const o = ZJ(s);
      if (a) {
        const l = ZJ(a), u = a.name.startsWith("@babel/plugin") ? "plugins" : "presets";
        i += "\n\nAdd ".concat(l, " to the '").concat(u, "' section of your Babel config to enable transformation.\nIf you want to leave it as-is, add ").concat(o, " to the 'plugins' section to enable parsing.");
      } else
        i += "\n\nAdd ".concat(o, " to the 'plugins' section of your Babel config ") + "to enable parsing.";
    }
  }
  return i;
}
Object.defineProperty(lI, "__esModule", {
  value: !0
});
lI.default = kwt;
function i8() {
  const e = _9();
  return i8 = function() {
    return e;
  }, e;
}
function Pme() {
  const e = _de();
  return Pme = function() {
    return e;
  }, e;
}
var Iwt = O5;
function* kwt(e, {
  parserOpts: t,
  highlightCode: r = !0,
  filename: i = "unknown"
}, n) {
  try {
    const s = [];
    for (const a of e)
      for (const o of a) {
        const {
          parserOverride: l
        } = o;
        if (l) {
          const u = l(n, t, i8().parse);
          u !== void 0 && s.push(u);
        }
      }
    if (s.length === 0)
      return (0, i8().parse)(n, t);
    if (s.length === 1) {
      if (yield* [], typeof s[0].then == "function")
        throw new Error("You appear to be using an async parser plugin, which your current version of Babel does not support. If you're using a published plugin, you may need to upgrade your @babel/core version.");
      return s[0];
    }
    throw new Error("More than one plugin attempted to override parsing.");
  } catch (s) {
    s.code === "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED" && (s.message += "\nConsider renaming the file to '.mjs', or setting sourceType:module or sourceType:unambiguous in your Babel config for this file.");
    const {
      loc: a,
      missingPlugin: o
    } = s;
    if (a) {
      const l = (0, Pme().codeFrameColumns)(n, {
        start: {
          line: a.line,
          column: a.column + 1
        }
      }, {
        highlightCode: r
      });
      o ? s.message = "".concat(i, ": ") + (0, Iwt.default)(o[0], a, l) : s.message = "".concat(i, ": ").concat(s.message, "\n\n") + l, s.code = "BABEL_PARSE_ERROR";
    }
    throw s;
  }
}
var N5 = {};
Object.defineProperty(N5, "__esModule", {
  value: !0
});
N5.default = Owt;
function n8(e, t) {
  if (e !== null) {
    if (t.has(e))
      return t.get(e);
    let r;
    if (Array.isArray(e)) {
      r = new Array(e.length), t.set(e, r);
      for (let i = 0; i < e.length; i++)
        r[i] = typeof e[i] != "object" ? e[i] : n8(e[i], t);
    } else {
      r = {}, t.set(e, r);
      const i = Object.keys(e);
      for (let n = 0; n < i.length; n++) {
        const s = i[n];
        r[s] = typeof e[s] != "object" ? e[s] : n8(e[s], t);
      }
    }
    return r;
  }
  return e;
}
function Owt(e) {
  return typeof e != "object" ? e : n8(e, /* @__PURE__ */ new Map());
}
Object.defineProperty(k5, "__esModule", {
  value: !0
});
k5.default = Fwt;
function wme() {
  const e = $l;
  return wme = function() {
    return e;
  }, e;
}
function s8() {
  const e = xs;
  return s8 = function() {
    return e;
  }, e;
}
function Ame() {
  const e = tme();
  return Ame = function() {
    return e;
  }, e;
}
function Cme() {
  const e = Ui();
  return Cme = function() {
    return e;
  }, e;
}
function kP() {
  const e = Eme();
  return kP = function() {
    return e;
  }, e;
}
var Nwt = wg, Dwt = lI, Lwt = N5;
const {
  file: Mwt,
  traverseFast: Rwt
} = Cme(), f3 = Ame()("babel:transform:file"), Bwt = /^[@#]\s+sourceMappingURL=data:(?:application|text)\/json;(?:charset[:=]\S+?;)?base64,(?:.*)$/, eQ = /^[@#][ \t]+sourceMappingURL=([^\s'"`]+)[ \t]*$/;
function* Fwt(e, t, r, i) {
  if (r = "".concat(r || ""), i) {
    if (i.type === "Program")
      i = Mwt(i, [], []);
    else if (i.type !== "File")
      throw new Error("AST root must be a Program or File node");
    t.cloneInputAst && (i = (0, Lwt.default)(i));
  } else
    i = yield* (0, Dwt.default)(e, t, r);
  let n = null;
  if (t.inputSourceMap !== !1) {
    if (typeof t.inputSourceMap == "object" && (n = kP().fromObject(t.inputSourceMap)), !n) {
      const s = tQ(Bwt, i);
      if (s)
        try {
          n = kP().fromComment(s);
        } catch (a) {
          f3("discarding unknown inline input sourcemap", a);
        }
    }
    if (!n) {
      const s = tQ(eQ, i);
      if (typeof t.filename == "string" && s)
        try {
          const a = eQ.exec(s), o = wme().readFileSync(s8().resolve(s8().dirname(t.filename), a[1]), "utf8");
          n = kP().fromJSON(o);
        } catch (a) {
          f3("discarding unknown file input sourcemap", a);
        }
      else
        s && f3("discarding un-loadable file input sourcemap");
    }
  }
  return new Nwt.default(t, {
    code: r,
    ast: i,
    inputMap: n
  });
}
function h3(e, t, r) {
  return t && (t = t.filter(({
    value: i
  }) => e.test(i) ? (r = i, !1) : !0)), [t, r];
}
function tQ(e, t) {
  let r = null;
  return Rwt(t, (i) => {
    [i.leadingComments, r] = h3(e, i.leadingComments, r), [i.innerComments, r] = h3(e, i.innerComments, r), [i.trailingComments, r] = h3(e, i.trailingComments, r);
  }), r;
}
var D5 = {}, L5 = {}, uI = XT(), a8 = { exports: {} }, g1 = { exports: {} }, rQ;
function jwt() {
  return rQ || (rQ = 1, function(e, t) {
    (function(r, i) {
      i(t);
    })(jt, function(r) {
      r.get = void 0, r.put = void 0, r.pop = void 0;
      class i {
        constructor() {
          this._indexes = { __proto__: null }, this.array = [];
        }
      }
      r.get = (n, s) => n._indexes[s], r.put = (n, s) => {
        const a = r.get(n, s);
        if (a !== void 0)
          return a;
        const { array: o, _indexes: l } = n;
        return l[s] = o.push(s) - 1;
      }, r.pop = (n) => {
        const { array: s, _indexes: a } = n;
        if (s.length === 0)
          return;
        const o = s.pop();
        a[o] = void 0;
      }, r.SetArray = i, Object.defineProperty(r, "__esModule", { value: !0 });
    });
  }(g1, g1.exports)), g1.exports;
}
(function(e, t) {
  (function(r, i) {
    i(t, jwt(), Zhe);
  })(jt, function(r, i, n) {
    r.addSegment = void 0, r.addMapping = void 0, r.setSourceContent = void 0, r.decodedMap = void 0, r.encodedMap = void 0, r.allMappings = void 0;
    class s {
      constructor({ file: h, sourceRoot: m } = {}) {
        this._names = new i.SetArray(), this._sources = new i.SetArray(), this._sourcesContent = [], this._mappings = [], this.file = h, this.sourceRoot = m;
      }
    }
    r.addSegment = (f, h, m, g, y, v, T) => {
      const { _mappings: S, _sources: P, _sourcesContent: x, _names: C } = f, D = a(S, h);
      if (g == null) {
        const L = [m], O = o(D, m, L);
        return c(D, O, L);
      }
      const w = i.put(P, g), A = T ? [m, w, y, v, i.put(C, T)] : [m, w, y, v], I = o(D, m, A);
      w === x.length && (x[w] = null), c(D, I, A);
    }, r.addMapping = (f, h) => {
      const { generated: m, source: g, original: y, name: v } = h;
      return r.addSegment(f, m.line - 1, m.column, g, y == null ? void 0 : y.line - 1, y == null ? void 0 : y.column, v);
    }, r.setSourceContent = (f, h, m) => {
      const { _sources: g, _sourcesContent: y } = f;
      y[i.put(g, h)] = m;
    }, r.decodedMap = (f) => {
      const { file: h, sourceRoot: m, _mappings: g, _sources: y, _sourcesContent: v, _names: T } = f;
      return {
        version: 3,
        file: h,
        names: T.array,
        sourceRoot: m || void 0,
        sources: y.array,
        sourcesContent: v,
        mappings: g
      };
    }, r.encodedMap = (f) => {
      const h = r.decodedMap(f);
      return Object.assign(Object.assign({}, h), { mappings: n.encode(h.mappings) });
    }, r.allMappings = (f) => {
      const h = [], { _mappings: m, _sources: g, _names: y } = f;
      for (let v = 0; v < m.length; v++) {
        const T = m[v];
        for (let S = 0; S < T.length; S++) {
          const P = T[S], x = { line: v + 1, column: P[0] };
          let C, D, w;
          P.length !== 1 && (C = g.array[P[1]], D = { line: P[2] + 1, column: P[3] }, P.length === 5 && (w = y.array[P[4]])), h.push({ generated: x, source: C, original: D, name: w });
        }
      }
      return h;
    };
    function a(f, h) {
      for (let m = f.length; m <= h; m++)
        f[m] = [];
      return f[h];
    }
    function o(f, h, m) {
      let g = f.length;
      for (let y = g - 1; y >= 0; y--, g--) {
        const v = f[y], T = v[0];
        if (T > h)
          continue;
        if (T < h)
          break;
        const S = l(v, m);
        if (S === 0)
          return g;
        if (S < 0)
          break;
      }
      return g;
    }
    function l(f, h) {
      let m = u(f.length, h.length);
      return m !== 0 ? m : f.length === 1 ? 0 : (m = u(f[1], h[1]), m !== 0 || (m = u(f[2], h[2]), m !== 0) || (m = u(f[3], h[3]), m !== 0) ? m : f.length === 4 ? 0 : u(f[4], h[4]));
    }
    function u(f, h) {
      return f - h;
    }
    function c(f, h, m) {
      if (h !== -1) {
        for (let g = f.length; g > h; g--)
          f[g] = f[g - 1];
        f[h] = m;
      }
    }
    r.GenMapping = s, Object.defineProperty(r, "__esModule", { value: !0 });
  });
})(a8, a8.exports);
var tv = a8.exports;
const _me = {
  source: null,
  column: null,
  line: null,
  name: null,
  content: null
}, $wt = [];
function Ime(e, t, r, i) {
  return {
    map: e,
    sources: t,
    source: r,
    content: i
  };
}
function kme(e, t) {
  return Ime(e, t, "", null);
}
function Uwt(e, t) {
  return Ime(null, $wt, e, t);
}
function qwt(e) {
  const t = new tv.GenMapping({ file: e.map.file }), { sources: r, map: i } = e, n = i.names, s = uI.decodedMappings(i);
  for (let a = 0; a < s.length; a++) {
    const o = s[a];
    let l = null, u = null, c = null;
    for (let f = 0; f < o.length; f++) {
      const h = o[f], m = h[0];
      let g = _me;
      if (h.length !== 1) {
        const x = r[h[1]];
        if (g = Ome(x, h[2], h[3], h.length === 5 ? n[h[4]] : ""), g == null)
          continue;
      }
      const { column: y, line: v, name: T, content: S, source: P } = g;
      v === u && y === c && P === l || (u = v, c = y, l = P, tv.addSegment(t, a, m, P, v, y, T), S != null && tv.setSourceContent(t, P, S));
    }
  }
  return t;
}
function Ome(e, t, r, i) {
  if (!e.map)
    return { column: r, line: t, name: i, source: e.source, content: e.content };
  const n = uI.traceSegment(e.map, t, r);
  return n == null ? null : n.length === 1 ? _me : Ome(e.sources[n[1]], n[2], n[3], n.length === 5 ? e.map.names[n[4]] : i);
}
function Vwt(e) {
  return Array.isArray(e) ? e : [e];
}
function Wwt(e, t) {
  const r = Vwt(e).map((s) => new uI.TraceMap(s, "")), i = r.pop();
  for (let s = 0; s < r.length; s++)
    if (r[s].sources.length > 1)
      throw new Error("Transformation map ".concat(s, " must have exactly one source file.\n") + "Did you specify these with the most recent transformation maps first?");
  let n = Nme(i, t, "", 0);
  for (let s = r.length - 1; s >= 0; s--)
    n = kme(r[s], [n]);
  return n;
}
function Nme(e, t, r, i) {
  const { resolvedSources: n, sourcesContent: s } = e, a = i + 1, o = n.map((l, u) => {
    const c = {
      importer: r,
      depth: a,
      source: l || "",
      content: void 0
    }, f = t(c.source, c), { source: h, content: m } = c;
    if (f)
      return Nme(new uI.TraceMap(f, h), t, h, a);
    const g = m !== void 0 ? m : s ? s[u] : null;
    return Uwt(h, g);
  });
  return kme(e, o);
}
let Hwt = class {
  constructor(t, r) {
    const i = r.decodedMappings ? tv.decodedMap(t) : tv.encodedMap(t);
    this.version = i.version, this.file = i.file, this.mappings = i.mappings, this.names = i.names, this.sourceRoot = i.sourceRoot, this.sources = i.sources, r.excludeContent || (this.sourcesContent = i.sourcesContent);
  }
  toString() {
    return JSON.stringify(this);
  }
};
function Kwt(e, t, r) {
  const i = typeof r == "object" ? r : { excludeContent: !!r, decodedMappings: !1 }, n = Wwt(e, t);
  return new Hwt(qwt(n), i);
}
const zwt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  default: Kwt
}, Symbol.toStringTag, { value: "Module" })), Gwt = /* @__PURE__ */ EC(zwt);
Object.defineProperty(L5, "__esModule", {
  value: !0
});
L5.default = Ywt;
function Dme() {
  const e = Gwt;
  return Dme = function() {
    return e;
  }, e;
}
function Ywt(e, t, r) {
  const i = r.replace(/\\/g, "/");
  let n = !1;
  const s = Dme()(iQ(t), (a, o) => a === i && !n ? (n = !0, o.source = "", iQ(e)) : null);
  return typeof e.sourceRoot == "string" && (s.sourceRoot = e.sourceRoot), Object.assign({}, s);
}
function iQ(e) {
  return Object.assign({}, e, {
    sourceRoot: null
  });
}
Object.defineProperty(D5, "__esModule", {
  value: !0
});
D5.default = Jwt;
function Lme() {
  const e = Eme();
  return Lme = function() {
    return e;
  }, e;
}
function o8() {
  const e = C9();
  return o8 = function() {
    return e;
  }, e;
}
var Xwt = L5;
function Jwt(e, t) {
  const {
    opts: r,
    ast: i,
    code: n,
    inputMap: s
  } = t, {
    generatorOpts: a
  } = r;
  a.inputSourceMap = s == null ? void 0 : s.toObject();
  const o = [];
  for (const f of e)
    for (const h of f) {
      const {
        generatorOverride: m
      } = h;
      if (m) {
        const g = m(i, a, n, o8().default);
        g !== void 0 && o.push(g);
      }
    }
  let l;
  if (o.length === 0)
    l = (0, o8().default)(i, a, n);
  else if (o.length === 1) {
    if (l = o[0], typeof l.then == "function")
      throw new Error("You appear to be using an async codegen plugin, which your current version of Babel does not support. If you're using a published plugin, you may need to upgrade your @babel/core version.");
  } else
    throw new Error("More than one plugin attempted to override codegen.");
  let {
    code: u,
    decodedMap: c = l.map
  } = l;
  return l.__mergedMap ? c = Object.assign({}, l.map) : c && (s ? c = (0, Xwt.default)(s.toObject(), c, a.sourceFileName) : c = l.map), (r.sourceMaps === "inline" || r.sourceMaps === "both") && (u += "\n" + Lme().fromObject(c).toComment()), r.sourceMaps === "inline" && (c = null), {
    outputCode: u,
    outputMap: c
  };
}
Object.defineProperty(sI, "__esModule", {
  value: !0
});
sI.run = nAt;
function l8() {
  const e = yp();
  return l8 = function() {
    return e;
  }, e;
}
var Qwt = aI, Zwt = I5, eAt = oI, tAt = k5, rAt = D5, iAt = Og;
function* nAt(e, t, r) {
  const i = yield* (0, tAt.default)(e.passes, (0, eAt.default)(e), t, r), n = i.opts;
  try {
    yield* sAt(i, e.passes);
  } catch (u) {
    var s;
    throw u.message = "".concat((s = n.filename) != null ? s : "unknown file", ": ").concat(u.message), u.code || (u.code = "BABEL_TRANSFORM_ERROR"), u;
  }
  let a, o;
  try {
    n.code !== !1 && ({
      outputCode: a,
      outputMap: o
    } = (0, rAt.default)(e.passes, i));
  } catch (u) {
    var l;
    throw u.message = "".concat((l = n.filename) != null ? l : "unknown file", ": ").concat(u.message), u.code || (u.code = "BABEL_GENERATE_ERROR"), u;
  }
  return {
    metadata: i.metadata,
    options: n,
    ast: n.ast === !0 ? i.ast : null,
    code: a === void 0 ? null : a,
    map: o === void 0 ? null : o,
    sourceType: i.ast.program.sourceType,
    externalDependencies: (0, iAt.flattenToSet)(e.externalDependencies)
  };
}
function* sAt(e, t) {
  for (const r of t) {
    const i = [], n = [], s = [];
    for (const o of r.concat([(0, Zwt.default)()])) {
      const l = new Qwt.default(e, o.key, o.options);
      i.push([o, l]), n.push(l), s.push(o.visitor);
    }
    for (const [o, l] of i) {
      const u = o.pre;
      if (u) {
        const c = u.call(l, e);
        if (yield* [], nQ(c))
          throw new Error("You appear to be using an plugin with an async .pre, which your current version of Babel does not support. If you're using a published plugin, you may need to upgrade your @babel/core version.");
      }
    }
    const a = l8().default.visitors.merge(s, n, e.opts.wrapPluginVisitorMethod);
    (0, l8().default)(e.ast, a, e.scope);
    for (const [o, l] of i) {
      const u = o.post;
      if (u) {
        const c = u.call(l, e);
        if (yield* [], nQ(c))
          throw new Error("You appear to be using an plugin with an async .post, which your current version of Babel does not support. If you're using a published plugin, you may need to upgrade your @babel/core version.");
      }
    }
  }
}
function nQ(e) {
  return !!e && (typeof e == "object" || typeof e == "function") && !!e.then && typeof e.then == "function";
}
var sQ;
function aAt() {
  if (sQ)
    return fd;
  sQ = 1, Object.defineProperty(fd, "__esModule", {
    value: !0
  }), fd.transform = void 0, fd.transformAsync = o, fd.transformSync = a;
  function e() {
    const l = gp();
    return e = function() {
      return l;
    }, l;
  }
  var t = nI(), r = sI, i = vp;
  const n = e()(function* (u, c) {
    const f = yield* (0, t.default)(c);
    return f === null ? null : yield* (0, r.run)(f, u);
  }), s = function(u, c, f) {
    let h, m;
    if (typeof c == "function" ? (m = c, h = void 0) : (h = c, m = f), m === void 0)
      return (0, i.beginHiddenCallStack)(n.sync)(u, h);
    (0, i.beginHiddenCallStack)(n.errback)(u, h, m);
  };
  fd.transform = s;
  function a(...l) {
    return (0, i.beginHiddenCallStack)(n.sync)(...l);
  }
  function o(...l) {
    return (0, i.beginHiddenCallStack)(n.async)(...l);
  }
  return fd;
}
var Lg = {};
Object.defineProperty(Lg, "__esModule", {
  value: !0
});
Lg.transformFile = void 0;
Lg.transformFileAsync = uAt;
Lg.transformFileSync = lAt;
const oAt = function(t, r, i) {
  typeof r == "function" && (i = r), i(new Error("Transforming files is not supported in browsers"), null);
};
Lg.transformFile = oAt;
function lAt() {
  throw new Error("Transforming files is not supported in browsers");
}
function uAt() {
  return Promise.reject(new Error("Transforming files is not supported in browsers"));
}
var hd = {}, aQ;
function cAt() {
  if (aQ)
    return hd;
  aQ = 1, Object.defineProperty(hd, "__esModule", {
    value: !0
  }), hd.transformFromAst = void 0, hd.transformFromAstAsync = o, hd.transformFromAstSync = a;
  function e() {
    const l = gp();
    return e = function() {
      return l;
    }, l;
  }
  var t = nI(), r = sI, i = vp;
  const n = e()(function* (l, u, c) {
    const f = yield* (0, t.default)(c);
    if (f === null)
      return null;
    if (!l)
      throw new Error("No AST given");
    return yield* (0, r.run)(f, u, l);
  }), s = function(u, c, f, h) {
    let m, g;
    if (typeof f == "function" ? (g = f, m = void 0) : (m = f, g = h), g === void 0)
      return (0, i.beginHiddenCallStack)(n.sync)(u, c, m);
    (0, i.beginHiddenCallStack)(n.errback)(u, c, m, g);
  };
  hd.transformFromAst = s;
  function a(...l) {
    return (0, i.beginHiddenCallStack)(n.sync)(...l);
  }
  function o(...l) {
    return (0, i.beginHiddenCallStack)(n.async)(...l);
  }
  return hd;
}
var dd = {}, oQ;
function pAt() {
  if (oQ)
    return dd;
  oQ = 1, Object.defineProperty(dd, "__esModule", {
    value: !0
  }), dd.parse = void 0, dd.parseAsync = l, dd.parseSync = o;
  function e() {
    const u = gp();
    return e = function() {
      return u;
    }, u;
  }
  var t = nI(), r = lI, i = oI, n = vp;
  const s = e()(function* (c, f) {
    const h = yield* (0, t.default)(f);
    return h === null ? null : yield* (0, r.default)(h.passes, (0, i.default)(h), c);
  }), a = function(c, f, h) {
    if (typeof f == "function" && (h = f, f = void 0), h === void 0)
      return (0, n.beginHiddenCallStack)(s.sync)(c, f);
    (0, n.beginHiddenCallStack)(s.errback)(c, f, h);
  };
  dd.parse = a;
  function o(...u) {
    return (0, n.beginHiddenCallStack)(s.sync)(...u);
  }
  function l(...u) {
    return (0, n.beginHiddenCallStack)(s.async)(...u);
  }
  return dd;
}
var lQ;
function js() {
  return lQ || (lQ = 1, function(e) {
    Object.defineProperty(e, "__esModule", {
      value: !0
    }), e.DEFAULT_EXTENSIONS = void 0, Object.defineProperty(e, "File", {
      enumerable: !0,
      get: function() {
        return t.default;
      }
    }), e.OptionManager = void 0, e.Plugin = T, Object.defineProperty(e, "buildExternalHelpers", {
      enumerable: !0,
      get: function() {
        return r.default;
      }
    }), Object.defineProperty(e, "createConfigItem", {
      enumerable: !0,
      get: function() {
        return u.createConfigItem;
      }
    }), Object.defineProperty(e, "createConfigItemAsync", {
      enumerable: !0,
      get: function() {
        return u.createConfigItemAsync;
      }
    }), Object.defineProperty(e, "createConfigItemSync", {
      enumerable: !0,
      get: function() {
        return u.createConfigItemSync;
      }
    }), Object.defineProperty(e, "getEnv", {
      enumerable: !0,
      get: function() {
        return n.getEnv;
      }
    }), Object.defineProperty(e, "loadOptions", {
      enumerable: !0,
      get: function() {
        return u.loadOptions;
      }
    }), Object.defineProperty(e, "loadOptionsAsync", {
      enumerable: !0,
      get: function() {
        return u.loadOptionsAsync;
      }
    }), Object.defineProperty(e, "loadOptionsSync", {
      enumerable: !0,
      get: function() {
        return u.loadOptionsSync;
      }
    }), Object.defineProperty(e, "loadPartialConfig", {
      enumerable: !0,
      get: function() {
        return u.loadPartialConfig;
      }
    }), Object.defineProperty(e, "loadPartialConfigAsync", {
      enumerable: !0,
      get: function() {
        return u.loadPartialConfigAsync;
      }
    }), Object.defineProperty(e, "loadPartialConfigSync", {
      enumerable: !0,
      get: function() {
        return u.loadPartialConfigSync;
      }
    }), Object.defineProperty(e, "parse", {
      enumerable: !0,
      get: function() {
        return m.parse;
      }
    }), Object.defineProperty(e, "parseAsync", {
      enumerable: !0,
      get: function() {
        return m.parseAsync;
      }
    }), Object.defineProperty(e, "parseSync", {
      enumerable: !0,
      get: function() {
        return m.parseSync;
      }
    }), Object.defineProperty(e, "resolvePlugin", {
      enumerable: !0,
      get: function() {
        return i.resolvePlugin;
      }
    }), Object.defineProperty(e, "resolvePreset", {
      enumerable: !0,
      get: function() {
        return i.resolvePreset;
      }
    }), Object.defineProperty(e, "template", {
      enumerable: !0,
      get: function() {
        return l().default;
      }
    }), Object.defineProperty(e, "tokTypes", {
      enumerable: !0,
      get: function() {
        return a().tokTypes;
      }
    }), Object.defineProperty(e, "transform", {
      enumerable: !0,
      get: function() {
        return c.transform;
      }
    }), Object.defineProperty(e, "transformAsync", {
      enumerable: !0,
      get: function() {
        return c.transformAsync;
      }
    }), Object.defineProperty(e, "transformFile", {
      enumerable: !0,
      get: function() {
        return f.transformFile;
      }
    }), Object.defineProperty(e, "transformFileAsync", {
      enumerable: !0,
      get: function() {
        return f.transformFileAsync;
      }
    }), Object.defineProperty(e, "transformFileSync", {
      enumerable: !0,
      get: function() {
        return f.transformFileSync;
      }
    }), Object.defineProperty(e, "transformFromAst", {
      enumerable: !0,
      get: function() {
        return h.transformFromAst;
      }
    }), Object.defineProperty(e, "transformFromAstAsync", {
      enumerable: !0,
      get: function() {
        return h.transformFromAstAsync;
      }
    }), Object.defineProperty(e, "transformFromAstSync", {
      enumerable: !0,
      get: function() {
        return h.transformFromAstSync;
      }
    }), Object.defineProperty(e, "transformSync", {
      enumerable: !0,
      get: function() {
        return c.transformSync;
      }
    }), Object.defineProperty(e, "traverse", {
      enumerable: !0,
      get: function() {
        return o().default;
      }
    }), e.version = e.types = void 0;
    var t = wg, r = c5, i = Ps, n = Q_;
    function s() {
      const S = Ui();
      return s = function() {
        return S;
      }, S;
    }
    Object.defineProperty(e, "types", {
      enumerable: !0,
      get: function() {
        return s();
      }
    });
    function a() {
      const S = _9();
      return a = function() {
        return S;
      }, S;
    }
    function o() {
      const S = yp();
      return o = function() {
        return S;
      }, S;
    }
    function l() {
      const S = rn;
      return l = function() {
        return S;
      }, S;
    }
    var u = nI(), c = aAt(), f = Lg, h = cAt(), m = pAt();
    js();
    const g = "7.21.3";
    e.version = g;
    const y = Object.freeze([".js", ".jsx", ".es6", ".es", ".mjs", ".cjs"]);
    e.DEFAULT_EXTENSIONS = y;
    class v {
      init(P) {
        return (0, u.loadOptionsSync)(P);
      }
    }
    e.OptionManager = v;
    function T(S) {
      throw new Error("The (".concat(S, ") Babel 5 plugin is being run with an unsupported Babel version."));
    }
  }(TR)), TR;
}
var uQ = js(), M5 = {}, Mg = {};
Object.defineProperty(Mg, "__esModule", {
  value: !0
});
Mg.declare = Mme;
Mg.declarePreset = void 0;
const cQ = {
  assertVersion: (e) => (t) => {
    dAt(t, e.version);
  },
  targets: () => () => ({}),
  assumption: () => () => {
  }
};
function Mme(e) {
  return (t, r, i) => {
    var n;
    let s;
    for (const o of Object.keys(cQ)) {
      var a;
      t[o] || (s = (a = s) != null ? a : hAt(t), s[o] = cQ[o](s));
    }
    return e((n = s) != null ? n : t, r || {}, i);
  };
}
const fAt = Mme;
Mg.declarePreset = fAt;
function hAt(e) {
  let t = null;
  return typeof e.version == "string" && /^7\./.test(e.version) && (t = Object.getPrototypeOf(e), t && (!b1(t, "version") || !b1(t, "transform") || !b1(t, "template") || !b1(t, "types")) && (t = null)), Object.assign({}, t, e);
}
function b1(e, t) {
  return Object.prototype.hasOwnProperty.call(e, t);
}
function dAt(e, t) {
  if (typeof e == "number") {
    if (!Number.isInteger(e))
      throw new Error("Expected string or integer value.");
    e = "^".concat(e, ".0.0-0");
  }
  if (typeof e != "string")
    throw new Error("Expected string or integer value.");
  const r = Error.stackTraceLimit;
  typeof r == "number" && r < 25 && (Error.stackTraceLimit = 25);
  let i;
  throw t.slice(0, 2) === "7." ? i = new Error('Requires Babel "^7.0.0-beta.41", but was loaded with "'.concat(t, '". ') + "You'll need to update your @babel/core version.") : i = new Error('Requires Babel "'.concat(e, '", but was loaded with "').concat(t, '". ') + 'If you are sure you have a compatible version of @babel/core, it is likely that something in your build process is loading the wrong version. Inspect the stack trace of this error to look for the first entry that doesn\'t mention "@babel/core" or "babel-core" to see what is calling Babel.'), typeof r == "number" && (Error.stackTraceLimit = r), Object.assign(i, {
    code: "BABEL_VERSION_UNSUPPORTED",
    version: t,
    range: e
  });
}
var cI = {};
Object.defineProperty(cI, "__esModule", {
  value: !0
});
cI.default = void 0;
var mAt = Mg;
function pQ(e, t) {
  const r = [];
  e.forEach((i, n) => {
    (Array.isArray(i) ? i[0] : i) === t && r.unshift(n);
  });
  for (const i of r)
    e.splice(i, 1);
}
var yAt = (0, mAt.declare)((e, {
  disallowAmbiguousJSXLike: t,
  dts: r,
  isTSX: i
}) => (e.assertVersion(7), {
  name: "syntax-typescript",
  manipulateOptions(n, s) {
    const {
      plugins: a
    } = s;
    pQ(a, "flow"), pQ(a, "jsx"), a.push(["typescript", {
      disallowAmbiguousJSXLike: t,
      dts: r
    }], "classProperties"), a.push("objectRestSpread"), i && a.push("jsx");
  }
}));
cI.default = yAt;
var Rme = {}, pI = {};
Object.defineProperty(pI, "__esModule", {
  value: !0
});
pI.default = BAt;
var Bme = rn, gAt = Qn();
const {
  NOT_LOCAL_BINDING: fQ,
  cloneNode: bAt,
  identifier: vAt,
  isAssignmentExpression: TAt,
  isAssignmentPattern: SAt,
  isFunction: Fme,
  isIdentifier: hQ,
  isLiteral: dQ,
  isNullLiteral: xAt,
  isObjectMethod: EAt,
  isObjectProperty: PAt,
  isRegExpLiteral: wAt,
  isRestElement: AAt,
  isTemplateLiteral: CAt,
  isVariableDeclarator: _At,
  toBindingIdentifierName: IAt
} = gAt;
function kAt(e) {
  const t = e.params.findIndex((r) => SAt(r) || AAt(r));
  return t === -1 ? e.params.length : t;
}
const OAt = Bme.default.statement("\n  (function (FUNCTION_KEY) {\n    function FUNCTION_ID() {\n      return FUNCTION_KEY.apply(this, arguments);\n    }\n\n    FUNCTION_ID.toString = function () {\n      return FUNCTION_KEY.toString();\n    }\n\n    return FUNCTION_ID;\n  })(FUNCTION)\n"), NAt = Bme.default.statement("\n  (function (FUNCTION_KEY) {\n    function* FUNCTION_ID() {\n      return yield* FUNCTION_KEY.apply(this, arguments);\n    }\n\n    FUNCTION_ID.toString = function () {\n      return FUNCTION_KEY.toString();\n    };\n\n    return FUNCTION_ID;\n  })(FUNCTION)\n"), DAt = {
  "ReferencedIdentifier|BindingIdentifier"(e, t) {
    e.node.name !== t.name || e.scope.getBindingIdentifier(t.name) !== t.outerDeclar || (t.selfReference = !0, e.stop());
  }
};
function LAt(e) {
  return xAt(e) ? "null" : wAt(e) ? "_".concat(e.pattern, "_").concat(e.flags) : CAt(e) ? e.quasis.map((t) => t.value.raw).join("") : e.value !== void 0 ? e.value + "" : "";
}
function MAt(e, t, r, i) {
  if (e.selfReference)
    if (i.hasBinding(r.name) && !i.hasGlobal(r.name))
      i.rename(r.name);
    else {
      if (!Fme(t))
        return;
      let n = OAt;
      t.generator && (n = NAt);
      const s = n({
        FUNCTION: t,
        FUNCTION_ID: r,
        FUNCTION_KEY: i.generateUidIdentifier(r.name)
      }).expression, a = s.callee.body.body[0].params;
      for (let o = 0, l = kAt(t); o < l; o++)
        a.push(i.generateUidIdentifier("x"));
      return s;
    }
  t.id = r, i.getProgramParent().references[r.name] = !0;
}
function RAt(e, t, r) {
  const i = {
    selfAssignment: !1,
    selfReference: !1,
    outerDeclar: r.getBindingIdentifier(t),
    name: t
  }, n = r.getOwnBinding(t);
  return n ? n.kind === "param" && (i.selfReference = !0) : (i.outerDeclar || r.hasGlobal(t)) && r.traverse(e, DAt, i), i;
}
function BAt({
  node: e,
  parent: t,
  scope: r,
  id: i
}, n = !1, s = !1) {
  if (e.id)
    return;
  if ((PAt(t) || EAt(t, {
    kind: "method"
  })) && (!t.computed || dQ(t.key)))
    i = t.key;
  else if (_At(t)) {
    if (i = t.id, hQ(i) && !n) {
      const u = r.parent.getBinding(i.name);
      if (u && u.constant && r.getBinding(i.name) === u) {
        e.id = bAt(i), e.id[fQ] = !0;
        return;
      }
    }
  } else if (TAt(t, {
    operator: "="
  }))
    i = t.left;
  else if (!i)
    return;
  let a;
  if (i && dQ(i) ? a = LAt(i) : i && hQ(i) && (a = i.name), a === void 0 || !s && Fme(e) && /[\uD800-\uDFFF]/.test(a))
    return;
  a = IAt(a);
  const o = vAt(a);
  o[fQ] = !0;
  const l = RAt(e, a, r);
  return MAt(l, e, o, r) || e;
}
var R5 = {};
Object.defineProperty(R5, "__esModule", {
  value: !0
});
R5.default = UAt;
var FAt = Qn();
const {
  cloneNode: d3,
  exportNamedDeclaration: mQ,
  exportSpecifier: yQ,
  identifier: m3,
  variableDeclaration: jAt,
  variableDeclarator: $At
} = FAt;
function UAt(e) {
  if (!e.isExportDeclaration() || e.isExportAllDeclaration())
    throw new Error("Only default and named export declarations can be split.");
  if (e.isExportDefaultDeclaration()) {
    const s = e.get("declaration"), a = s.isFunctionDeclaration() || s.isClassDeclaration(), o = s.isScope() ? s.scope.parent : s.scope;
    let l = s.node.id, u = !1;
    l || (u = !0, l = o.generateUidIdentifier("default"), (a || s.isFunctionExpression() || s.isClassExpression()) && (s.node.id = d3(l)));
    const c = a ? s.node : jAt("var", [$At(d3(l), s.node)]), f = mQ(null, [yQ(d3(l), m3("default"))]);
    return e.insertAfter(f), e.replaceWith(c), u && o.registerDeclaration(e), e;
  } else if (e.get("specifiers").length > 0)
    throw new Error("It doesn't make sense to split exported specifiers.");
  const t = e.get("declaration"), r = t.getOuterBindingIdentifiers(), i = Object.keys(r).map((s) => yQ(m3(s), m3(s))), n = mQ(null, i);
  return e.insertAfter(n), e.replaceWith(t.node), e;
}
var hm = {}, B5 = {}, fI = {};
(function(e) {
  Object.defineProperty(e, "__esModule", { value: !0 });
  var t = Qn();
  function r(j) {
    if (j && j.__esModule)
      return j;
    var N = /* @__PURE__ */ Object.create(null);
    return j && Object.keys(j).forEach(function(M) {
      if (M !== "default") {
        var R = Object.getOwnPropertyDescriptor(j, M);
        Object.defineProperty(N, M, R.get ? R : {
          enumerable: !0,
          get: function() {
            return j[M];
          }
        });
      }
    }), N.default = j, Object.freeze(N);
  }
  var i = /* @__PURE__ */ r(t);
  function n(j) {
    const N = j, {
      node: M,
      parentPath: R
    } = N;
    if (R.isLogicalExpression()) {
      const {
        operator: $,
        right: V
      } = R.node;
      if ($ === "&&" || $ === "||" || $ === "??" && M === V)
        return n(R);
    }
    if (R.isSequenceExpression()) {
      const {
        expressions: $
      } = R.node;
      return $[$.length - 1] === M ? n(R) : !0;
    }
    return R.isConditional({
      test: M
    }) || R.isUnaryExpression({
      operator: "!"
    }) || R.isLoop({
      test: M
    });
  }
  const {
    LOGICAL_OPERATORS: s,
    arrowFunctionExpression: a,
    assignmentExpression: o,
    binaryExpression: l,
    booleanLiteral: u,
    callExpression: c,
    cloneNode: f,
    conditionalExpression: h,
    identifier: m,
    isMemberExpression: g,
    isOptionalCallExpression: y,
    isOptionalMemberExpression: v,
    isUpdateExpression: T,
    logicalExpression: S,
    memberExpression: P,
    nullLiteral: x,
    optionalCallExpression: C,
    optionalMemberExpression: D,
    sequenceExpression: w,
    updateExpression: A
  } = i;
  class I {
    constructor() {
      this._map = void 0, this._map = /* @__PURE__ */ new WeakMap();
    }
    has(N) {
      return this._map.has(N);
    }
    get(N) {
      if (!this.has(N))
        return;
      const M = this._map.get(N), {
        value: R
      } = M;
      return M.count--, M.count === 0 ? o("=", R, N) : R;
    }
    set(N, M, R) {
      return this._map.set(N, {
        count: R,
        value: M
      });
    }
  }
  function L(j, N) {
    const {
      node: M
    } = j;
    if (v(M))
      return P(N, M.property, M.computed);
    if (j.isOptionalCallExpression()) {
      const R = j.get("callee");
      if (j.node.optional && R.isOptionalMemberExpression()) {
        const $ = R.node.object, V = j.scope.maybeGenerateMemoised($);
        return R.get("object").replaceWith(o("=", V, $)), c(P(N, m("call")), [V, ...j.node.arguments]);
      }
      return c(N, j.node.arguments);
    }
    return j.node;
  }
  function O(j) {
    for (; j && !j.isProgram(); ) {
      const {
        parentPath: N,
        container: M,
        listKey: R
      } = j, $ = N.node;
      if (R) {
        if (M !== $[R])
          return !0;
      } else if (M !== $)
        return !0;
      j = N;
    }
    return !1;
  }
  const F = {
    memoise() {
    },
    handle(j, N) {
      const {
        node: M,
        parent: R,
        parentPath: $,
        scope: V
      } = j;
      if (j.isOptionalMemberExpression()) {
        if (O(j))
          return;
        const K = j.find(({
          node: ve,
          parent: Xe
        }) => v(Xe) ? Xe.optional || Xe.object !== ve : y(Xe) ? ve !== j.node && Xe.optional || Xe.callee !== ve : !0);
        if (V.path.isPattern()) {
          K.replaceWith(c(a([], K.node), []));
          return;
        }
        const z = n(K), W = K.parentPath;
        if (W.isUpdateExpression({
          argument: M
        }) || W.isAssignmentExpression({
          left: M
        }))
          throw j.buildCodeFrameError("can't handle assignment");
        const Y = W.isUnaryExpression({
          operator: "delete"
        });
        if (Y && K.isOptionalMemberExpression() && K.get("property").isPrivateName())
          throw j.buildCodeFrameError("can't delete a private class element");
        let G = j;
        for (; ; ) {
          if (G.isOptionalMemberExpression()) {
            if (G.node.optional)
              break;
            G = G.get("object");
            continue;
          } else if (G.isOptionalCallExpression()) {
            if (G.node.optional)
              break;
            G = G.get("callee");
            continue;
          }
          throw new Error("Internal error: unexpected ".concat(G.node.type));
        }
        const le = G.isOptionalMemberExpression() ? G.node.object : G.node.callee, ne = V.maybeGenerateMemoised(le), ae = ne != null ? ne : le, be = $.isOptionalCallExpression({
          callee: M
        }), ye = (ve) => be, fe = $.isCallExpression({
          callee: M
        });
        G.replaceWith(L(G, ae)), ye() ? R.optional ? $.replaceWith(this.optionalCall(j, R.arguments)) : $.replaceWith(this.call(j, R.arguments)) : fe ? j.replaceWith(this.boundGet(j)) : this.delete && $.isUnaryExpression({
          operator: "delete"
        }) ? $.replaceWith(this.delete(j)) : j.replaceWith(this.get(j));
        let Z = j.node;
        for (let ve = j; ve !== K; ) {
          const Xe = ve.parentPath;
          if (Xe === K && ye() && R.optional) {
            Z = Xe.node;
            break;
          }
          Z = L(Xe, Z), ve = Xe;
        }
        let ue;
        const me = K.parentPath;
        if (g(Z) && me.isOptionalCallExpression({
          callee: K.node,
          optional: !0
        })) {
          const {
            object: ve
          } = Z;
          ue = j.scope.maybeGenerateMemoised(ve), ue && (Z.object = o("=", ue, ve));
        }
        let xe = K;
        Y && (xe = me, Z = me.node);
        const Pe = ne ? o("=", f(ae), f(le)) : f(ae);
        if (z) {
          let ve;
          N ? ve = l("!=", Pe, x()) : ve = S("&&", l("!==", Pe, x()), l("!==", f(ae), V.buildUndefinedNode())), xe.replaceWith(S("&&", ve, Z));
        } else {
          let ve;
          N ? ve = l("==", Pe, x()) : ve = S("||", l("===", Pe, x()), l("===", f(ae), V.buildUndefinedNode())), xe.replaceWith(h(ve, Y ? u(!0) : V.buildUndefinedNode(), Z));
        }
        if (ue) {
          const ve = me.node;
          me.replaceWith(C(D(ve.callee, m("call"), !1, !0), [f(ue), ...ve.arguments], !1));
        }
        return;
      }
      if (T(R, {
        argument: M
      })) {
        if (this.simpleSet) {
          j.replaceWith(this.simpleSet(j));
          return;
        }
        const {
          operator: K,
          prefix: z
        } = R;
        this.memoise(j, 2);
        const W = V.generateUidIdentifierBasedOnNode(M);
        V.push({
          id: W
        });
        const Y = [o("=", f(W), this.get(j))];
        if (z) {
          Y.push(A(K, f(W), z));
          const G = w(Y);
          $.replaceWith(this.set(j, G));
          return;
        } else {
          const G = V.generateUidIdentifierBasedOnNode(M);
          V.push({
            id: G
          }), Y.push(o("=", f(G), A(K, f(W), z)), f(W));
          const le = w(Y);
          $.replaceWith(w([this.set(j, le), f(G)]));
          return;
        }
      }
      if ($.isAssignmentExpression({
        left: M
      })) {
        if (this.simpleSet) {
          j.replaceWith(this.simpleSet(j));
          return;
        }
        const {
          operator: K,
          right: z
        } = $.node;
        if (K === "=")
          $.replaceWith(this.set(j, z));
        else {
          const W = K.slice(0, -1);
          s.includes(W) ? (this.memoise(j, 1), $.replaceWith(S(W, this.get(j), this.set(j, z)))) : (this.memoise(j, 2), $.replaceWith(this.set(j, l(W, this.get(j), z))));
        }
        return;
      }
      if ($.isCallExpression({
        callee: M
      })) {
        $.replaceWith(this.call(j, $.node.arguments));
        return;
      }
      if ($.isOptionalCallExpression({
        callee: M
      })) {
        if (V.path.isPattern()) {
          $.replaceWith(c(a([], $.node), []));
          return;
        }
        $.replaceWith(this.optionalCall(j, $.node.arguments));
        return;
      }
      if (this.delete && $.isUnaryExpression({
        operator: "delete"
      })) {
        $.replaceWith(this.delete(j));
        return;
      }
      if ($.isForXStatement({
        left: M
      }) || $.isObjectProperty({
        value: M
      }) && $.parentPath.isObjectPattern() || $.isAssignmentPattern({
        left: M
      }) && $.parentPath.isObjectProperty({
        value: R
      }) && $.parentPath.parentPath.isObjectPattern() || $.isArrayPattern() || $.isAssignmentPattern({
        left: M
      }) && $.parentPath.isArrayPattern() || $.isRestElement()) {
        j.replaceWith(this.destructureSet(j));
        return;
      }
      $.isTaggedTemplateExpression() ? j.replaceWith(this.boundGet(j)) : j.replaceWith(this.get(j));
    }
  };
  function q(j, N, M) {
    j.traverse(N, Object.assign({}, F, M, {
      memoiser: new I()
    }));
  }
  e.default = q;
})(fI);
var sS = {};
Object.defineProperty(sS, "__esModule", {
  value: !0
});
sS.default = HAt;
var qAt = Qn();
const {
  callExpression: gQ,
  identifier: v1,
  isIdentifier: VAt,
  isSpreadElement: WAt,
  memberExpression: bQ,
  optionalCallExpression: vQ,
  optionalMemberExpression: TQ
} = qAt;
function HAt(e, t, r, i) {
  return r.length === 1 && WAt(r[0]) && VAt(r[0].argument, {
    name: "arguments"
  }) ? i ? vQ(TQ(e, v1("apply"), !1, !0), [t, r[0].argument], !1) : gQ(bQ(e, v1("apply")), [t, r[0].argument]) : i ? vQ(TQ(e, v1("call"), !1, !0), [t, ...r], !1) : gQ(bQ(e, v1("call")), [t, ...r]);
}
var y3 = {}, Ff = {}, qr = {};
Object.defineProperty(qr, "__esModule", {
  value: !0
});
qr.Var = qr.User = qr.Statement = qr.SpreadProperty = qr.Scope = qr.RestProperty = qr.ReferencedMemberExpression = qr.ReferencedIdentifier = qr.Referenced = qr.Pure = qr.NumericLiteralTypeAnnotation = qr.Generated = qr.ForAwaitStatement = qr.Flow = qr.Expression = qr.ExistentialTypeParam = qr.BlockScoped = qr.BindingIdentifier = void 0;
qr.ReferencedIdentifier = ["Identifier", "JSXIdentifier"];
qr.ReferencedMemberExpression = ["MemberExpression"];
qr.BindingIdentifier = ["Identifier"];
qr.Statement = ["Statement"];
qr.Expression = ["Expression"];
qr.Scope = ["Scopable", "Pattern"];
qr.Referenced = null;
qr.BlockScoped = null;
qr.Var = ["VariableDeclaration"];
qr.User = null;
qr.Generated = null;
qr.Pure = null;
qr.Flow = ["Flow", "ImportDeclaration", "ExportDeclaration", "ImportSpecifier"];
qr.RestProperty = ["RestElement"];
qr.SpreadProperty = ["RestElement"];
qr.ExistentialTypeParam = ["ExistsTypeAnnotation"];
qr.NumericLiteralTypeAnnotation = ["NumberLiteralTypeAnnotation"];
qr.ForAwaitStatement = ["ForOfStatement"];
var Mn = {};
Object.defineProperty(Mn, "__esModule", {
  value: !0
});
Mn.isBindingIdentifier = dCt;
Mn.isBlockScoped = vCt;
Mn.isExpression = yCt;
Mn.isFlow = PCt;
Mn.isForAwaitStatement = CCt;
Mn.isGenerated = xCt;
Mn.isPure = ECt;
Mn.isReferenced = bCt;
Mn.isReferencedIdentifier = fCt;
Mn.isReferencedMemberExpression = hCt;
Mn.isRestProperty = wCt;
Mn.isScope = gCt;
Mn.isSpreadProperty = ACt;
Mn.isStatement = mCt;
Mn.isUser = SCt;
Mn.isVar = TCt;
var KAt = Nr();
const {
  isBinding: zAt,
  isBlockScoped: GAt,
  isExportDeclaration: YAt,
  isExpression: XAt,
  isFlow: JAt,
  isForStatement: QAt,
  isForXStatement: ZAt,
  isIdentifier: jme,
  isImportDeclaration: eCt,
  isImportSpecifier: tCt,
  isJSXIdentifier: rCt,
  isJSXMemberExpression: iCt,
  isMemberExpression: nCt,
  isRestElement: $me,
  isReferenced: F5,
  isScope: sCt,
  isStatement: aCt,
  isVar: oCt,
  isVariableDeclaration: lCt,
  react: uCt,
  isForOfStatement: cCt
} = KAt, {
  isCompatTag: pCt
} = uCt;
function fCt(e) {
  const {
    node: t,
    parent: r
  } = this;
  if (!jme(t, e) && !iCt(r, e))
    if (rCt(t, e)) {
      if (pCt(t.name))
        return !1;
    } else
      return !1;
  return F5(t, r, this.parentPath.parent);
}
function hCt() {
  const {
    node: e,
    parent: t
  } = this;
  return nCt(e) && F5(e, t);
}
function dCt() {
  const {
    node: e,
    parent: t
  } = this, r = this.parentPath.parent;
  return jme(e) && zAt(e, t, r);
}
function mCt() {
  const {
    node: e,
    parent: t
  } = this;
  return aCt(e) ? !(lCt(e) && (ZAt(t, {
    left: e
  }) || QAt(t, {
    init: e
  }))) : !1;
}
function yCt() {
  return this.isIdentifier() ? this.isReferencedIdentifier() : XAt(this.node);
}
function gCt() {
  return sCt(this.node, this.parent);
}
function bCt() {
  return F5(this.node, this.parent);
}
function vCt() {
  return GAt(this.node);
}
function TCt() {
  return oCt(this.node);
}
function SCt() {
  return this.node && !!this.node.loc;
}
function xCt() {
  return !this.isUser();
}
function ECt(e) {
  return this.scope.isPure(this.node, e);
}
function PCt() {
  const {
    node: e
  } = this;
  return JAt(e) ? !0 : eCt(e) ? e.importKind === "type" || e.importKind === "typeof" : YAt(e) ? e.exportKind === "type" : tCt(e) ? e.importKind === "type" || e.importKind === "typeof" : !1;
}
function wCt() {
  return $me(this.node) && this.parentPath && this.parentPath.isObjectPattern();
}
function ACt() {
  return $me(this.node) && this.parentPath && this.parentPath.isObjectExpression();
}
function CCt() {
  return cCt(this.node, {
    await: !0
  });
}
Mn.isExistentialTypeParam = function() {
  throw new Error("`path.isExistentialTypeParam` has been renamed to `path.isExistsTypeAnnotation()` in Babel 7.");
}, Mn.isNumericLiteralTypeAnnotation = function() {
  throw new Error("`path.isNumericLiteralTypeAnnotation()` has been renamed to `path.isNumberLiteralTypeAnnotation()` in Babel 7.");
};
Object.defineProperty(Ff, "__esModule", {
  value: !0
});
Ff.explode = Vme;
Ff.isExplodedVisitor = qme;
Ff.merge = NCt;
Ff.verify = Wme;
var Ume = qr, _Ct = Mn, ICt = Nr();
const {
  DEPRECATED_KEYS: SQ,
  DEPRECATED_ALIASES: xQ,
  FLIPPED_ALIAS_KEYS: EQ,
  TYPES: kCt,
  __internal__deprecationWarning: PQ
} = ICt;
function OCt(e) {
  return e in Ume;
}
function qme(e) {
  return e == null ? void 0 : e._exploded;
}
function Vme(e) {
  if (qme(e))
    return e;
  e._exploded = !0;
  for (const t of Object.keys(e)) {
    if (kd(t))
      continue;
    const r = t.split("|");
    if (r.length === 1)
      continue;
    const i = e[t];
    delete e[t];
    for (const n of r)
      e[n] = i;
  }
  Wme(e), delete e.__esModule, DCt(e), CQ(e);
  for (const t of Object.keys(e)) {
    if (kd(t) || !OCt(t))
      continue;
    const r = e[t];
    for (const n of Object.keys(r))
      r[n] = LCt(t, r[n]);
    delete e[t];
    const i = Ume[t];
    if (i !== null)
      for (const n of i)
        e[n] ? rv(e[n], r) : e[n] = r;
    else
      rv(e, r);
  }
  for (const t of Object.keys(e)) {
    if (kd(t))
      continue;
    let r = EQ[t];
    if (t in SQ) {
      const n = SQ[t];
      PQ(t, n, "Visitor "), r = [n];
    } else if (t in xQ) {
      const n = xQ[t];
      PQ(t, n, "Visitor "), r = EQ[n];
    }
    if (!r)
      continue;
    const i = e[t];
    delete e[t];
    for (const n of r) {
      const s = e[n];
      s ? rv(s, i) : e[n] = Object.assign({}, i);
    }
  }
  for (const t of Object.keys(e))
    kd(t) || CQ(e[t]);
  return e;
}
function Wme(e) {
  if (!e._verified) {
    if (typeof e == "function")
      throw new Error("You passed `traverse()` a function when it expected a visitor object, are you sure you didn't mean `{ enter: Function }`?");
    for (const t of Object.keys(e)) {
      if ((t === "enter" || t === "exit") && wQ(t, e[t]), kd(t))
        continue;
      if (kCt.indexOf(t) < 0)
        throw new Error("You gave us a visitor for the node type ".concat(t, " but it's not a valid type"));
      const r = e[t];
      if (typeof r == "object")
        for (const i of Object.keys(r))
          if (i === "enter" || i === "exit")
            wQ("".concat(t, ".").concat(i), r[i]);
          else
            throw new Error("You passed `traverse()` a visitor object with the property " + "".concat(t, " that has the invalid property ").concat(i));
    }
    e._verified = !0;
  }
}
function wQ(e, t) {
  const r = [].concat(t);
  for (const i of r)
    if (typeof i != "function")
      throw new TypeError("Non-function found defined in ".concat(e, " with type ").concat(typeof i));
}
function NCt(e, t = [], r) {
  const i = {};
  for (let n = 0; n < e.length; n++) {
    const s = Vme(e[n]), a = t[n];
    let o = s;
    (a || r) && (o = AQ(o, a, r)), rv(i, o);
    for (const l of Object.keys(s)) {
      if (kd(l))
        continue;
      let u = s[l];
      (a || r) && (u = AQ(u, a, r));
      const c = i[l] || (i[l] = {});
      rv(c, u);
    }
  }
  return i;
}
function AQ(e, t, r) {
  const i = {};
  for (const n of ["enter", "exit"]) {
    let s = e[n];
    Array.isArray(s) && (s = s.map(function(a) {
      let o = a;
      return t && (o = function(l) {
        a.call(t, l, t);
      }), r && (o = r(t == null ? void 0 : t.key, n, o)), o !== a && (o.toString = () => a.toString()), o;
    }), i[n] = s);
  }
  return i;
}
function DCt(e) {
  for (const t of Object.keys(e)) {
    if (kd(t))
      continue;
    const r = e[t];
    typeof r == "function" && (e[t] = {
      enter: r
    });
  }
}
function CQ(e) {
  e.enter && !Array.isArray(e.enter) && (e.enter = [e.enter]), e.exit && !Array.isArray(e.exit) && (e.exit = [e.exit]);
}
function LCt(e, t) {
  const r = "is".concat(e), i = _Ct[r], n = function(s) {
    if (i.call(s))
      return t.apply(this, arguments);
  };
  return n.toString = () => t.toString(), n;
}
function kd(e) {
  return e[0] === "_" || e === "enter" || e === "exit" || e === "shouldSkip" || e === "denylist" || e === "noScope" || e === "skipKeys" || e === "blacklist";
}
function rv(e, t) {
  for (const r of ["enter", "exit"])
    t[r] && (e[r] = [].concat(e[r] || [], t[r]));
}
var as = {};
Object.defineProperty(as, "__esModule", {
  value: !0
});
as.clear = MCt;
as.clearPath = Hme;
as.clearScope = Kme;
as.getCachedPaths = RCt;
as.getOrCreateCachedPaths = BCt;
as.scope = as.path = void 0;
let Ww = as.path = /* @__PURE__ */ new WeakMap();
as.scope = /* @__PURE__ */ new WeakMap();
function MCt() {
  Hme(), Kme();
}
function Hme() {
  as.path = Ww = /* @__PURE__ */ new WeakMap();
}
function Kme() {
  as.scope = /* @__PURE__ */ new WeakMap();
}
const u8 = Object.freeze({});
function RCt(e, t) {
  var r, i;
  return e = null, (r = Ww.get((i = e) != null ? i : u8)) == null ? void 0 : r.get(t);
}
function BCt(e, t) {
  var r, i;
  e = null;
  let n = Ww.get((r = e) != null ? r : u8);
  n || Ww.set((i = e) != null ? i : u8, n = /* @__PURE__ */ new WeakMap());
  let s = n.get(t);
  return s || n.set(t, s = /* @__PURE__ */ new Map()), s;
}
var T1 = {}, Zb = {}, Ec = {}, e0 = {}, t0 = {}, dm = {};
Object.defineProperty(dm, "__esModule", {
  value: !0
});
dm.default = void 0;
dm.requeueComputedKeyAndDecorators = c8;
dm.skipAllButComputedKey = function(t) {
  t.skip(), t.node.computed && t.context.maybeQueue(t.get("key"));
};
function c8(e) {
  const {
    context: t,
    node: r
  } = e;
  if (r.computed && t.maybeQueue(e.get("key")), r.decorators)
    for (const i of e.get("decorators"))
      t.maybeQueue(i);
}
const FCt = {
  FunctionParent(e) {
    e.isArrowFunctionExpression() || (e.skip(), e.isMethod() && c8(e));
  },
  Property(e) {
    e.isObjectProperty() || (e.skip(), c8(e));
  }
};
var jCt = FCt;
dm.default = jCt;
var _Q;
function $Ct() {
  if (_Q)
    return t0;
  _Q = 1, Object.defineProperty(t0, "__esModule", {
    value: !0
  }), t0.default = void 0;
  var e = um, t = Nr(), r = dm, i = w7(), n = Ff;
  const s = {
    ReferencedIdentifier({
      node: o
    }, l) {
      o.name === l.oldName && (o.name = l.newName);
    },
    Scope(o, l) {
      o.scope.bindingIdentifierEquals(l.oldName, l.binding.identifier) || (o.skip(), o.isMethod() && (0, r.requeueComputedKeyAndDecorators)(o));
    },
    ObjectProperty({
      node: o,
      scope: l
    }, u) {
      const {
        name: c
      } = o.key;
      if (o.shorthand && (c === u.oldName || c === u.newName) && l.getBindingIdentifier(c) === u.binding.identifier) {
        var f;
        o.shorthand = !1, (f = o.extra) != null && f.shorthand && (o.extra.shorthand = !1);
      }
    },
    "AssignmentExpression|Declaration|VariableDeclarator"(o, l) {
      if (o.isVariableDeclaration())
        return;
      const u = o.getOuterBindingIdentifiers();
      for (const c in u)
        c === l.oldName && (u[c].name = l.newName);
    }
  };
  class a {
    constructor(l, u, c) {
      this.newName = c, this.oldName = u, this.binding = l;
    }
    maybeConvertFromExportDeclaration(l) {
      const u = l.parentPath;
      if (u.isExportDeclaration()) {
        if (u.isExportDefaultDeclaration()) {
          const {
            declaration: c
          } = u.node;
          if (t.isDeclaration(c) && !c.id)
            return;
        }
        u.isExportAllDeclaration() || (0, e.default)(u);
      }
    }
    maybeConvertFromClassFunctionDeclaration(l) {
      return l;
    }
    maybeConvertFromClassFunctionExpression(l) {
      return l;
    }
    rename() {
      const {
        binding: l,
        oldName: u,
        newName: c
      } = this, {
        scope: f,
        path: h
      } = l, m = h.find((y) => y.isDeclaration() || y.isFunctionExpression() || y.isClassExpression());
      m && m.getOuterBindingIdentifiers()[u] === l.identifier && this.maybeConvertFromExportDeclaration(m);
      const g = arguments[0] || f.block;
      (0, i.traverseNode)(g, (0, n.explode)(s), f, this, f.path, {
        discriminant: !0
      }), arguments[0] || (f.removeOwnBinding(u), f.bindings[c] = l, this.binding.identifier.name = c), m && (this.maybeConvertFromClassFunctionDeclaration(h), this.maybeConvertFromClassFunctionExpression(h));
    }
  }
  return t0.default = a, t0;
}
var hI = {};
Object.defineProperty(hI, "__esModule", {
  value: !0
});
hI.default = void 0;
class UCt {
  constructor({
    identifier: t,
    scope: r,
    path: i,
    kind: n
  }) {
    this.identifier = void 0, this.scope = void 0, this.path = void 0, this.kind = void 0, this.constantViolations = [], this.constant = !0, this.referencePaths = [], this.referenced = !1, this.references = 0, this.identifier = t, this.scope = r, this.path = i, this.kind = n, (n === "var" || n === "hoisted") && qCt(i) && this.reassign(i), this.clearValue();
  }
  deoptValue() {
    this.clearValue(), this.hasDeoptedValue = !0;
  }
  setValue(t) {
    this.hasDeoptedValue || (this.hasValue = !0, this.value = t);
  }
  clearValue() {
    this.hasDeoptedValue = !1, this.hasValue = !1, this.value = null;
  }
  reassign(t) {
    this.constant = !1, this.constantViolations.indexOf(t) === -1 && this.constantViolations.push(t);
  }
  reference(t) {
    this.referencePaths.indexOf(t) === -1 && (this.referenced = !0, this.references++, this.referencePaths.push(t));
  }
  dereference() {
    this.references--, this.referenced = !!this.references;
  }
}
hI.default = UCt;
function qCt(e) {
  for (let {
    parentPath: t,
    key: r
  } = e; t; {
    parentPath: t,
    key: r
  } = t) {
    if (t.isFunctionParent())
      return !1;
    if (t.isWhile() || t.isForXStatement() || t.isForStatement() && r === "body")
      return !0;
  }
  return !1;
}
var IQ;
function zme() {
  if (IQ)
    return e0;
  IQ = 1, Object.defineProperty(e0, "__esModule", {
    value: !0
  }), e0.default = void 0;
  var e = $Ct(), t = dS(), r = hI, i = Xhe(), n = Nr(), s = n, a = as, o = Ff;
  const {
    NOT_LOCAL_BINDING: l,
    callExpression: u,
    cloneNode: c,
    getBindingIdentifiers: f,
    identifier: h,
    isArrayExpression: m,
    isBinary: g,
    isClass: y,
    isClassBody: v,
    isClassDeclaration: T,
    isExportAllDeclaration: S,
    isExportDefaultDeclaration: P,
    isExportNamedDeclaration: x,
    isFunctionDeclaration: C,
    isIdentifier: D,
    isImportDeclaration: w,
    isLiteral: A,
    isMethod: I,
    isModuleSpecifier: L,
    isNullLiteral: O,
    isObjectExpression: F,
    isProperty: q,
    isPureish: j,
    isRegExpLiteral: N,
    isSuper: M,
    isTaggedTemplateExpression: R,
    isTemplateLiteral: $,
    isThisExpression: V,
    isUnaryExpression: K,
    isVariableDeclaration: z,
    matchesPattern: W,
    memberExpression: Y,
    numericLiteral: G,
    toIdentifier: le,
    variableDeclaration: ne,
    variableDeclarator: ae,
    isRecordExpression: be,
    isTupleExpression: ye,
    isObjectProperty: fe,
    isTopicReference: Z,
    isMetaProperty: ue,
    isPrivateName: me,
    isExportDeclaration: xe,
    buildUndefinedNode: Pe
  } = n;
  function ve(oe, te) {
    switch (oe == null ? void 0 : oe.type) {
      default:
        if (w(oe) || xe(oe)) {
          var se;
          if ((S(oe) || x(oe) || w(oe)) && oe.source)
            ve(oe.source, te);
          else if ((x(oe) || w(oe)) && (se = oe.specifiers) != null && se.length)
            for (const re of oe.specifiers)
              ve(re, te);
          else
            (P(oe) || x(oe)) && oe.declaration && ve(oe.declaration, te);
        } else
          L(oe) ? ve(oe.local, te) : A(oe) && !O(oe) && !N(oe) && !$(oe) && te.push(oe.value);
        break;
      case "MemberExpression":
      case "OptionalMemberExpression":
      case "JSXMemberExpression":
        ve(oe.object, te), ve(oe.property, te);
        break;
      case "Identifier":
      case "JSXIdentifier":
        te.push(oe.name);
        break;
      case "CallExpression":
      case "OptionalCallExpression":
      case "NewExpression":
        ve(oe.callee, te);
        break;
      case "ObjectExpression":
      case "ObjectPattern":
        for (const re of oe.properties)
          ve(re, te);
        break;
      case "SpreadElement":
      case "RestElement":
        ve(oe.argument, te);
        break;
      case "ObjectProperty":
      case "ObjectMethod":
      case "ClassProperty":
      case "ClassMethod":
      case "ClassPrivateProperty":
      case "ClassPrivateMethod":
        ve(oe.key, te);
        break;
      case "ThisExpression":
        te.push("this");
        break;
      case "Super":
        te.push("super");
        break;
      case "Import":
        te.push("import");
        break;
      case "DoExpression":
        te.push("do");
        break;
      case "YieldExpression":
        te.push("yield"), ve(oe.argument, te);
        break;
      case "AwaitExpression":
        te.push("await"), ve(oe.argument, te);
        break;
      case "AssignmentExpression":
        ve(oe.left, te);
        break;
      case "VariableDeclarator":
        ve(oe.id, te);
        break;
      case "FunctionExpression":
      case "FunctionDeclaration":
      case "ClassExpression":
      case "ClassDeclaration":
        ve(oe.id, te);
        break;
      case "PrivateName":
        ve(oe.id, te);
        break;
      case "ParenthesizedExpression":
        ve(oe.expression, te);
        break;
      case "UnaryExpression":
      case "UpdateExpression":
        ve(oe.argument, te);
        break;
      case "MetaProperty":
        ve(oe.meta, te), ve(oe.property, te);
        break;
      case "JSXElement":
        ve(oe.openingElement, te);
        break;
      case "JSXOpeningElement":
        ve(oe.name, te);
        break;
      case "JSXFragment":
        ve(oe.openingFragment, te);
        break;
      case "JSXOpeningFragment":
        te.push("Fragment");
        break;
      case "JSXNamespacedName":
        ve(oe.namespace, te), ve(oe.name, te);
        break;
    }
  }
  const Xe = {
    ForStatement(oe) {
      const te = oe.get("init");
      if (te.isVar()) {
        const {
          scope: se
        } = oe;
        (se.getFunctionParent() || se.getProgramParent()).registerBinding("var", te);
      }
    },
    Declaration(oe) {
      if (oe.isBlockScoped() || oe.isImportDeclaration() || oe.isExportDeclaration())
        return;
      (oe.scope.getFunctionParent() || oe.scope.getProgramParent()).registerDeclaration(oe);
    },
    ImportDeclaration(oe) {
      oe.scope.getBlockParent().registerDeclaration(oe);
    },
    ReferencedIdentifier(oe, te) {
      te.references.push(oe);
    },
    ForXStatement(oe, te) {
      const se = oe.get("left");
      if (se.isPattern() || se.isIdentifier())
        te.constantViolations.push(oe);
      else if (se.isVar()) {
        const {
          scope: re
        } = oe;
        (re.getFunctionParent() || re.getProgramParent()).registerBinding("var", se);
      }
    },
    ExportDeclaration: {
      exit(oe) {
        const {
          node: te,
          scope: se
        } = oe;
        if (S(te))
          return;
        const re = te.declaration;
        if (T(re) || C(re)) {
          const Te = re.id;
          if (!Te)
            return;
          const ze = se.getBinding(Te.name);
          ze == null || ze.reference(oe);
        } else if (z(re))
          for (const Te of re.declarations)
            for (const ze of Object.keys(f(Te))) {
              const Ze = se.getBinding(ze);
              Ze == null || Ze.reference(oe);
            }
      }
    },
    LabeledStatement(oe) {
      oe.scope.getBlockParent().registerDeclaration(oe);
    },
    AssignmentExpression(oe, te) {
      te.assignments.push(oe);
    },
    UpdateExpression(oe, te) {
      te.constantViolations.push(oe);
    },
    UnaryExpression(oe, te) {
      oe.node.operator === "delete" && te.constantViolations.push(oe);
    },
    BlockScoped(oe) {
      let te = oe.scope;
      if (te.path === oe && (te = te.parent), te.getBlockParent().registerDeclaration(oe), oe.isClassDeclaration() && oe.node.id) {
        const Te = oe.node.id.name;
        oe.scope.bindings[Te] = oe.scope.parent.getBinding(Te);
      }
    },
    CatchClause(oe) {
      oe.scope.registerBinding("let", oe);
    },
    Function(oe) {
      const te = oe.get("params");
      for (const se of te)
        oe.scope.registerBinding("param", se);
      oe.isFunctionExpression() && oe.has("id") && !oe.get("id").node[l] && oe.scope.registerBinding("local", oe.get("id"), oe);
    },
    ClassExpression(oe) {
      oe.has("id") && !oe.get("id").node[l] && oe.scope.registerBinding("local", oe);
    }
  };
  let st = 0;
  class Se {
    constructor(te) {
      this.uid = void 0, this.path = void 0, this.block = void 0, this.labels = void 0, this.inited = void 0, this.bindings = void 0, this.references = void 0, this.globals = void 0, this.uids = void 0, this.data = void 0, this.crawling = void 0;
      const {
        node: se
      } = te, re = a.scope.get(se);
      if ((re == null ? void 0 : re.path) === te)
        return re;
      a.scope.set(se, this), this.uid = st++, this.block = se, this.path = te, this.labels = /* @__PURE__ */ new Map(), this.inited = !1;
    }
    get parent() {
      var te;
      let se, re = this.path;
      do {
        const Te = re.key === "key" || re.listKey === "decorators";
        re = re.parentPath, Te && re.isMethod() && (re = re.parentPath), re && re.isScope() && (se = re);
      } while (re && !se);
      return (te = se) == null ? void 0 : te.scope;
    }
    get parentBlock() {
      return this.path.parent;
    }
    get hub() {
      return this.path.hub;
    }
    traverse(te, se, re) {
      (0, t.default)(te, se, this, re, this.path);
    }
    generateDeclaredUidIdentifier(te) {
      const se = this.generateUidIdentifier(te);
      return this.push({
        id: se
      }), c(se);
    }
    generateUidIdentifier(te) {
      return h(this.generateUid(te));
    }
    generateUid(te = "temp") {
      te = le(te).replace(/^_+/, "").replace(/[0-9]+$/g, "");
      let se, re = 1;
      do
        se = this._generateUid(te, re), re++;
      while (this.hasLabel(se) || this.hasBinding(se) || this.hasGlobal(se) || this.hasReference(se));
      const Te = this.getProgramParent();
      return Te.references[se] = !0, Te.uids[se] = !0, se;
    }
    _generateUid(te, se) {
      let re = te;
      return se > 1 && (re += se), "_".concat(re);
    }
    generateUidBasedOnNode(te, se) {
      const re = [];
      ve(te, re);
      let Te = re.join("$");
      return Te = Te.replace(/^_/, "") || se || "ref", this.generateUid(Te.slice(0, 20));
    }
    generateUidIdentifierBasedOnNode(te, se) {
      return h(this.generateUidBasedOnNode(te, se));
    }
    isStatic(te) {
      if (V(te) || M(te) || Z(te))
        return !0;
      if (D(te)) {
        const se = this.getBinding(te.name);
        return se ? se.constant : this.hasBinding(te.name);
      }
      return !1;
    }
    maybeGenerateMemoised(te, se) {
      if (this.isStatic(te))
        return null;
      {
        const re = this.generateUidIdentifierBasedOnNode(te);
        return se ? re : (this.push({
          id: re
        }), c(re));
      }
    }
    checkBlockScopedCollisions(te, se, re, Te) {
      if (se === "param" || te.kind === "local")
        return;
      if (se === "let" || te.kind === "let" || te.kind === "const" || te.kind === "module" || te.kind === "param" && se === "const")
        throw this.hub.buildError(Te, 'Duplicate declaration "'.concat(re, '"'), TypeError);
    }
    rename(te, se) {
      const re = this.getBinding(te);
      re && (se || (se = this.generateUidIdentifier(te).name), new e.default(re, te, se).rename(arguments[2]));
    }
    _renameFromMap(te, se, re, Te) {
      te[se] && (te[re] = Te, te[se] = null);
    }
    dump() {
      const te = "-".repeat(60);
      console.log(te);
      let se = this;
      do {
        console.log("#", se.block.type);
        for (const re of Object.keys(se.bindings)) {
          const Te = se.bindings[re];
          console.log(" -", re, {
            constant: Te.constant,
            references: Te.references,
            violations: Te.constantViolations.length,
            kind: Te.kind
          });
        }
      } while (se = se.parent);
      console.log(te);
    }
    toArray(te, se, re) {
      if (D(te)) {
        const Ze = this.getBinding(te.name);
        if (Ze != null && Ze.constant && Ze.path.isGenericType("Array"))
          return te;
      }
      if (m(te))
        return te;
      if (D(te, {
        name: "arguments"
      }))
        return u(Y(Y(Y(h("Array"), h("prototype")), h("slice")), h("call")), [te]);
      let Te;
      const ze = [te];
      return se === !0 ? Te = "toConsumableArray" : typeof se == "number" ? (ze.push(G(se)), Te = "slicedToArray") : Te = "toArray", re && (ze.unshift(this.hub.addHelper(Te)), Te = "maybeArrayLike"), u(this.hub.addHelper(Te), ze);
    }
    hasLabel(te) {
      return !!this.getLabel(te);
    }
    getLabel(te) {
      return this.labels.get(te);
    }
    registerLabel(te) {
      this.labels.set(te.node.label.name, te);
    }
    registerDeclaration(te) {
      if (te.isLabeledStatement())
        this.registerLabel(te);
      else if (te.isFunctionDeclaration())
        this.registerBinding("hoisted", te.get("id"), te);
      else if (te.isVariableDeclaration()) {
        const se = te.get("declarations"), {
          kind: re
        } = te.node;
        for (const Te of se)
          this.registerBinding(re === "using" || re === "await using" ? "const" : re, Te);
      } else if (te.isClassDeclaration()) {
        if (te.node.declare)
          return;
        this.registerBinding("let", te);
      } else if (te.isImportDeclaration()) {
        const se = te.node.importKind === "type" || te.node.importKind === "typeof", re = te.get("specifiers");
        for (const Te of re) {
          const ze = se || Te.isImportSpecifier() && (Te.node.importKind === "type" || Te.node.importKind === "typeof");
          this.registerBinding(ze ? "unknown" : "module", Te);
        }
      } else if (te.isExportDeclaration()) {
        const se = te.get("declaration");
        (se.isClassDeclaration() || se.isFunctionDeclaration() || se.isVariableDeclaration()) && this.registerDeclaration(se);
      } else
        this.registerBinding("unknown", te);
    }
    buildUndefinedNode() {
      return Pe();
    }
    registerConstantViolation(te) {
      const se = te.getBindingIdentifiers();
      for (const Te of Object.keys(se)) {
        var re;
        (re = this.getBinding(Te)) == null || re.reassign(te);
      }
    }
    registerBinding(te, se, re = se) {
      if (!te)
        throw new ReferenceError("no `kind`");
      if (se.isVariableDeclaration()) {
        const Ze = se.get("declarations");
        for (const pt of Ze)
          this.registerBinding(te, pt);
        return;
      }
      const Te = this.getProgramParent(), ze = se.getOuterBindingIdentifiers(!0);
      for (const Ze of Object.keys(ze)) {
        Te.references[Ze] = !0;
        for (const pt of ze[Ze]) {
          const ut = this.getOwnBinding(Ze);
          if (ut) {
            if (ut.identifier === pt)
              continue;
            this.checkBlockScopedCollisions(ut, te, Ze, pt);
          }
          ut ? this.registerConstantViolation(re) : this.bindings[Ze] = new r.default({
            identifier: pt,
            scope: this,
            path: re,
            kind: te
          });
        }
      }
    }
    addGlobal(te) {
      this.globals[te.name] = te;
    }
    hasUid(te) {
      let se = this;
      do
        if (se.uids[te])
          return !0;
      while (se = se.parent);
      return !1;
    }
    hasGlobal(te) {
      let se = this;
      do
        if (se.globals[te])
          return !0;
      while (se = se.parent);
      return !1;
    }
    hasReference(te) {
      return !!this.getProgramParent().references[te];
    }
    isPure(te, se) {
      if (D(te)) {
        const Ze = this.getBinding(te.name);
        return Ze ? se ? Ze.constant : !0 : !1;
      } else {
        if (V(te) || ue(te) || Z(te) || me(te))
          return !0;
        if (y(te)) {
          var re;
          return te.superClass && !this.isPure(te.superClass, se) || ((re = te.decorators) == null ? void 0 : re.length) > 0 ? !1 : this.isPure(te.body, se);
        } else if (v(te)) {
          for (const Ze of te.body)
            if (!this.isPure(Ze, se))
              return !1;
          return !0;
        } else {
          if (g(te))
            return this.isPure(te.left, se) && this.isPure(te.right, se);
          if (m(te) || ye(te)) {
            for (const Ze of te.elements)
              if (Ze !== null && !this.isPure(Ze, se))
                return !1;
            return !0;
          } else if (F(te) || be(te)) {
            for (const Ze of te.properties)
              if (!this.isPure(Ze, se))
                return !1;
            return !0;
          } else if (I(te)) {
            var Te;
            return !(te.computed && !this.isPure(te.key, se) || ((Te = te.decorators) == null ? void 0 : Te.length) > 0);
          } else if (q(te)) {
            var ze;
            return !(te.computed && !this.isPure(te.key, se) || ((ze = te.decorators) == null ? void 0 : ze.length) > 0 || (fe(te) || te.static) && te.value !== null && !this.isPure(te.value, se));
          } else {
            if (K(te))
              return this.isPure(te.argument, se);
            if (R(te))
              return W(te.tag, "String.raw") && !this.hasBinding("String", !0) && this.isPure(te.quasi, se);
            if ($(te)) {
              for (const Ze of te.expressions)
                if (!this.isPure(Ze, se))
                  return !1;
              return !0;
            } else
              return j(te);
          }
        }
      }
    }
    setData(te, se) {
      return this.data[te] = se;
    }
    getData(te) {
      let se = this;
      do {
        const re = se.data[te];
        if (re != null)
          return re;
      } while (se = se.parent);
    }
    removeData(te) {
      let se = this;
      do
        se.data[te] != null && (se.data[te] = null);
      while (se = se.parent);
    }
    init() {
      this.inited || (this.inited = !0, this.crawl());
    }
    crawl() {
      const te = this.path;
      this.references = /* @__PURE__ */ Object.create(null), this.bindings = /* @__PURE__ */ Object.create(null), this.globals = /* @__PURE__ */ Object.create(null), this.uids = /* @__PURE__ */ Object.create(null), this.data = /* @__PURE__ */ Object.create(null);
      const se = this.getProgramParent();
      if (se.crawling)
        return;
      const re = {
        references: [],
        constantViolations: [],
        assignments: []
      };
      if (this.crawling = !0, te.type !== "Program" && (0, o.isExplodedVisitor)(Xe)) {
        for (const ze of Xe.enter)
          ze.call(re, te, re);
        const Te = Xe[te.type];
        if (Te)
          for (const ze of Te.enter)
            ze.call(re, te, re);
      }
      te.traverse(Xe, re), this.crawling = !1;
      for (const Te of re.assignments) {
        const ze = Te.getBindingIdentifiers();
        for (const Ze of Object.keys(ze))
          Te.scope.getBinding(Ze) || se.addGlobal(ze[Ze]);
        Te.scope.registerConstantViolation(Te);
      }
      for (const Te of re.references) {
        const ze = Te.scope.getBinding(Te.node.name);
        ze ? ze.reference(Te) : se.addGlobal(Te.node);
      }
      for (const Te of re.constantViolations)
        Te.scope.registerConstantViolation(Te);
    }
    push(te) {
      let se = this.path;
      se.isPattern() ? se = this.getPatternParent().path : !se.isBlockStatement() && !se.isProgram() && (se = this.getBlockParent().path), se.isSwitchStatement() && (se = (this.getFunctionParent() || this.getProgramParent()).path);
      const {
        init: re,
        unique: Te,
        kind: ze = "var",
        id: Ze
      } = te;
      if (!re && !Te && (ze === "var" || ze === "let") && se.isFunction() && !se.node.name && s.isCallExpression(se.parent, {
        callee: se.node
      }) && se.parent.arguments.length <= se.node.params.length && s.isIdentifier(Ze)) {
        se.pushContainer("params", Ze), se.scope.registerBinding("param", se.get("params")[se.node.params.length - 1]);
        return;
      }
      (se.isLoop() || se.isCatchClause() || se.isFunction()) && (se.ensureBlock(), se = se.get("body"));
      const pt = te._blockHoist == null ? 2 : te._blockHoist, ut = "declaration:".concat(ze, ":").concat(pt);
      let bt = !Te && se.getData(ut);
      if (!bt) {
        const pe = ne(ze, []);
        pe._blockHoist = pt, [bt] = se.unshiftContainer("body", [pe]), Te || se.setData(ut, bt);
      }
      const vt = ae(Ze, re), ge = bt.node.declarations.push(vt);
      se.scope.registerBinding(ze, bt.get("declarations")[ge - 1]);
    }
    getProgramParent() {
      let te = this;
      do
        if (te.path.isProgram())
          return te;
      while (te = te.parent);
      throw new Error("Couldn't find a Program");
    }
    getFunctionParent() {
      let te = this;
      do
        if (te.path.isFunctionParent())
          return te;
      while (te = te.parent);
      return null;
    }
    getBlockParent() {
      let te = this;
      do
        if (te.path.isBlockParent())
          return te;
      while (te = te.parent);
      throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...");
    }
    getPatternParent() {
      let te = this;
      do
        if (!te.path.isPattern())
          return te.getBlockParent();
      while (te = te.parent.parent);
      throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...");
    }
    getAllBindings() {
      const te = /* @__PURE__ */ Object.create(null);
      let se = this;
      do {
        for (const re of Object.keys(se.bindings))
          re in te || (te[re] = se.bindings[re]);
        se = se.parent;
      } while (se);
      return te;
    }
    getAllBindingsOfKind(...te) {
      const se = /* @__PURE__ */ Object.create(null);
      for (const re of te) {
        let Te = this;
        do {
          for (const ze of Object.keys(Te.bindings)) {
            const Ze = Te.bindings[ze];
            Ze.kind === re && (se[ze] = Ze);
          }
          Te = Te.parent;
        } while (Te);
      }
      return se;
    }
    bindingIdentifierEquals(te, se) {
      return this.getBindingIdentifier(te) === se;
    }
    getBinding(te) {
      let se = this, re;
      do {
        const ze = se.getOwnBinding(te);
        if (ze) {
          var Te;
          if (!((Te = re) != null && Te.isPattern() && ze.kind !== "param" && ze.kind !== "local"))
            return ze;
        } else if (!ze && te === "arguments" && se.path.isFunction() && !se.path.isArrowFunctionExpression())
          break;
        re = se.path;
      } while (se = se.parent);
    }
    getOwnBinding(te) {
      return this.bindings[te];
    }
    getBindingIdentifier(te) {
      var se;
      return (se = this.getBinding(te)) == null ? void 0 : se.identifier;
    }
    getOwnBindingIdentifier(te) {
      const se = this.bindings[te];
      return se == null ? void 0 : se.identifier;
    }
    hasOwnBinding(te) {
      return !!this.getOwnBinding(te);
    }
    hasBinding(te, se) {
      var re, Te, ze;
      return te ? !!(this.hasOwnBinding(te) || (typeof se == "boolean" && (se = {
        noGlobals: se
      }), this.parentHasBinding(te, se)) || !((re = se) != null && re.noUids) && this.hasUid(te) || !((Te = se) != null && Te.noGlobals) && Se.globals.includes(te) || !((ze = se) != null && ze.noGlobals) && Se.contextVariables.includes(te)) : !1;
    }
    parentHasBinding(te, se) {
      var re;
      return (re = this.parent) == null ? void 0 : re.hasBinding(te, se);
    }
    moveBindingTo(te, se) {
      const re = this.getBinding(te);
      re && (re.scope.removeOwnBinding(te), re.scope = se, se.bindings[te] = re);
    }
    removeOwnBinding(te) {
      delete this.bindings[te];
    }
    removeBinding(te) {
      var se;
      (se = this.getBinding(te)) == null || se.scope.removeOwnBinding(te);
      let re = this;
      do
        re.uids[te] && (re.uids[te] = !1);
      while (re = re.parent);
    }
  }
  return e0.default = Se, Se.globals = Object.keys(i.builtin), Se.contextVariables = ["arguments", "undefined", "Infinity", "NaN"], e0;
}
var dI = {}, mI = {}, p8 = { exports: {} };
(function(e, t) {
  (function(r, i) {
    i(t, Qhe(), A9(), XT());
  })(jt, function(r, i, n, s) {
    r.addSegment = void 0, r.addMapping = void 0, r.maybeAddSegment = void 0, r.maybeAddMapping = void 0, r.setSourceContent = void 0, r.toDecodedMap = void 0, r.toEncodedMap = void 0, r.fromMap = void 0, r.allMappings = void 0;
    let h;
    class m {
      constructor({ file: w, sourceRoot: A } = {}) {
        this._names = new i.SetArray(), this._sources = new i.SetArray(), this._sourcesContent = [], this._mappings = [], this.file = w, this.sourceRoot = A;
      }
    }
    r.addSegment = (D, w, A, I, L, O, F, q) => h(!1, D, w, A, I, L, O, F, q), r.maybeAddSegment = (D, w, A, I, L, O, F, q) => h(!0, D, w, A, I, L, O, F, q), r.addMapping = (D, w) => C(!1, D, w), r.maybeAddMapping = (D, w) => C(!0, D, w), r.setSourceContent = (D, w, A) => {
      const { _sources: I, _sourcesContent: L } = D;
      L[i.put(I, w)] = A;
    }, r.toDecodedMap = (D) => {
      const { file: w, sourceRoot: A, _mappings: I, _sources: L, _sourcesContent: O, _names: F } = D;
      return T(I), {
        version: 3,
        file: w || void 0,
        names: F.array,
        sourceRoot: A || void 0,
        sources: L.array,
        sourcesContent: O,
        mappings: I
      };
    }, r.toEncodedMap = (D) => {
      const w = r.toDecodedMap(D);
      return Object.assign(Object.assign({}, w), { mappings: n.encode(w.mappings) });
    }, r.allMappings = (D) => {
      const w = [], { _mappings: A, _sources: I, _names: L } = D;
      for (let O = 0; O < A.length; O++) {
        const F = A[O];
        for (let q = 0; q < F.length; q++) {
          const j = F[q], N = { line: O + 1, column: j[0] };
          let M, R, $;
          j.length !== 1 && (M = I.array[j[1]], R = { line: j[2] + 1, column: j[3] }, j.length === 5 && ($ = L.array[j[4]])), w.push({ generated: N, source: M, original: R, name: $ });
        }
      }
      return w;
    }, r.fromMap = (D) => {
      const w = new s.TraceMap(D), A = new m({ file: w.file, sourceRoot: w.sourceRoot });
      return S(A._names, w.names), S(A._sources, w.sources), A._sourcesContent = w.sourcesContent || w.sources.map(() => null), A._mappings = s.decodedMappings(w), A;
    }, h = (D, w, A, I, L, O, F, q, j) => {
      const { _mappings: N, _sources: M, _sourcesContent: R, _names: $ } = w, V = g(N, A), K = y(V, I);
      if (!L)
        return D && P(V, K) ? void 0 : v(V, K, [I]);
      const z = i.put(M, L), W = q ? i.put($, q) : -1;
      if (z === R.length && (R[z] = j != null ? j : null), !(D && x(V, K, z, O, F, W)))
        return v(V, K, q ? [I, z, O, F, W] : [I, z, O, F]);
    };
    function g(D, w) {
      for (let A = D.length; A <= w; A++)
        D[A] = [];
      return D[w];
    }
    function y(D, w) {
      let A = D.length;
      for (let I = A - 1; I >= 0; A = I--) {
        const L = D[I];
        if (w >= L[0])
          break;
      }
      return A;
    }
    function v(D, w, A) {
      for (let I = D.length; I > w; I--)
        D[I] = D[I - 1];
      D[w] = A;
    }
    function T(D) {
      const { length: w } = D;
      let A = w;
      for (let I = A - 1; I >= 0 && !(D[I].length > 0); A = I, I--)
        ;
      A < w && (D.length = A);
    }
    function S(D, w) {
      for (let A = 0; A < w.length; A++)
        i.put(D, w[A]);
    }
    function P(D, w) {
      return w === 0 ? !0 : D[w - 1].length === 1;
    }
    function x(D, w, A, I, L, O) {
      if (w === 0)
        return !1;
      const F = D[w - 1];
      return F.length === 1 ? !1 : A === F[1] && I === F[2] && L === F[3] && O === (F.length === 5 ? F[4] : -1);
    }
    function C(D, w, A) {
      const { generated: I, source: L, original: O, name: F, content: q } = A;
      if (!L)
        return h(D, w, I.line - 1, I.column, null, null, null, null, null);
      const j = L;
      return h(D, w, I.line - 1, I.column, j, O.line - 1, O.column, F, q);
    }
    r.GenMapping = m, Object.defineProperty(r, "__esModule", { value: !0 });
  });
})(p8, p8.exports);
var VCt = p8.exports, f8 = { exports: {} };
(function(e, t) {
  (function(r, i) {
    i(t, A9(), ede());
  })(jt, function(r, i, n) {
    function s(ae, be) {
      return be && !be.endsWith("/") && (be += "/"), n(ae, be);
    }
    function a(ae) {
      if (!ae)
        return "";
      const be = ae.lastIndexOf("/");
      return ae.slice(0, be + 1);
    }
    const o = 0, l = 1, u = 2, c = 3, f = 4, h = 1, m = 2;
    function g(ae, be) {
      const ye = y(ae, 0);
      if (ye === ae.length)
        return ae;
      be || (ae = ae.slice());
      for (let fe = ye; fe < ae.length; fe = y(ae, fe + 1))
        ae[fe] = T(ae[fe], be);
      return ae;
    }
    function y(ae, be) {
      for (let ye = be; ye < ae.length; ye++)
        if (!v(ae[ye]))
          return ye;
      return ae.length;
    }
    function v(ae) {
      for (let be = 1; be < ae.length; be++)
        if (ae[be][o] < ae[be - 1][o])
          return !1;
      return !0;
    }
    function T(ae, be) {
      return be || (ae = ae.slice()), ae.sort(S);
    }
    function S(ae, be) {
      return ae[o] - be[o];
    }
    let P = !1;
    function x(ae, be, ye, fe) {
      for (; ye <= fe; ) {
        const Z = ye + (fe - ye >> 1), ue = ae[Z][o] - be;
        if (ue === 0)
          return P = !0, Z;
        ue < 0 ? ye = Z + 1 : fe = Z - 1;
      }
      return P = !1, ye - 1;
    }
    function C(ae, be, ye) {
      for (let fe = ye + 1; fe < ae.length && ae[fe][o] === be; ye = fe++)
        ;
      return ye;
    }
    function D(ae, be, ye) {
      for (let fe = ye - 1; fe >= 0 && ae[fe][o] === be; ye = fe--)
        ;
      return ye;
    }
    function w() {
      return {
        lastKey: -1,
        lastNeedle: -1,
        lastIndex: -1
      };
    }
    function A(ae, be, ye, fe) {
      const { lastKey: Z, lastNeedle: ue, lastIndex: me } = ye;
      let xe = 0, Pe = ae.length - 1;
      if (fe === Z) {
        if (be === ue)
          return P = me !== -1 && ae[me][o] === be, me;
        be >= ue ? xe = me === -1 ? 0 : me : Pe = me;
      }
      return ye.lastKey = fe, ye.lastNeedle = be, ye.lastIndex = x(ae, be, xe, Pe);
    }
    function I(ae, be) {
      const ye = be.map(O);
      for (let fe = 0; fe < ae.length; fe++) {
        const Z = ae[fe];
        for (let ue = 0; ue < Z.length; ue++) {
          const me = Z[ue];
          if (me.length === 1)
            continue;
          const xe = me[l], Pe = me[u], ve = me[c], Xe = ye[xe], st = Xe[Pe] || (Xe[Pe] = []), Se = be[xe], oe = C(st, ve, A(st, ve, Se, Pe));
          L(st, Se.lastIndex = oe + 1, [ve, fe, me[o]]);
        }
      }
      return ye;
    }
    function L(ae, be, ye) {
      for (let fe = ae.length; fe > be; fe--)
        ae[fe] = ae[fe - 1];
      ae[be] = ye;
    }
    function O() {
      return { __proto__: null };
    }
    const F = function(ae, be) {
      const ye = typeof ae == "string" ? JSON.parse(ae) : ae;
      if (!("sections" in ye))
        return new z(ye, be);
      const fe = [], Z = [], ue = [], me = [];
      q(ye, be, fe, Z, ue, me, 0, 0, 1 / 0, 1 / 0);
      const xe = {
        version: 3,
        file: ye.file,
        names: me,
        sources: Z,
        sourcesContent: ue,
        mappings: fe
      };
      return r.presortedDecodedMap(xe);
    };
    function q(ae, be, ye, fe, Z, ue, me, xe, Pe, ve) {
      const { sections: Xe } = ae;
      for (let st = 0; st < Xe.length; st++) {
        const { map: Se, offset: oe } = Xe[st];
        let te = Pe, se = ve;
        if (st + 1 < Xe.length) {
          const re = Xe[st + 1].offset;
          te = Math.min(Pe, me + re.line), te === Pe ? se = Math.min(ve, xe + re.column) : te < Pe && (se = xe + re.column);
        }
        j(Se, be, ye, fe, Z, ue, me + oe.line, xe + oe.column, te, se);
      }
    }
    function j(ae, be, ye, fe, Z, ue, me, xe, Pe, ve) {
      if ("sections" in ae)
        return q(...arguments);
      const Xe = new z(ae, be), st = fe.length, Se = ue.length, oe = r.decodedMappings(Xe), { resolvedSources: te, sourcesContent: se } = Xe;
      if (N(fe, te), N(ue, Xe.names), se)
        N(Z, se);
      else
        for (let re = 0; re < te.length; re++)
          Z.push(null);
      for (let re = 0; re < oe.length; re++) {
        const Te = me + re;
        if (Te > Pe)
          return;
        const ze = M(ye, Te), Ze = re === 0 ? xe : 0, pt = oe[re];
        for (let ut = 0; ut < pt.length; ut++) {
          const bt = pt[ut], vt = Ze + bt[o];
          if (Te === Pe && vt >= ve)
            return;
          if (bt.length === 1) {
            ze.push([vt]);
            continue;
          }
          const ge = st + bt[l], pe = bt[u], $e = bt[c];
          ze.push(bt.length === 4 ? [vt, ge, pe, $e] : [vt, ge, pe, $e, Se + bt[f]]);
        }
      }
    }
    function N(ae, be) {
      for (let ye = 0; ye < be.length; ye++)
        ae.push(be[ye]);
    }
    function M(ae, be) {
      for (let ye = ae.length; ye <= be; ye++)
        ae[ye] = [];
      return ae[be];
    }
    const R = "`line` must be greater than 0 (lines start at line 1)", $ = "`column` must be greater than or equal to 0 (columns start at column 0)", V = -1, K = 1;
    r.encodedMappings = void 0, r.decodedMappings = void 0, r.traceSegment = void 0, r.originalPositionFor = void 0, r.generatedPositionFor = void 0, r.allGeneratedPositionsFor = void 0, r.eachMapping = void 0, r.sourceContentFor = void 0, r.presortedDecodedMap = void 0, r.decodedMap = void 0, r.encodedMap = void 0;
    class z {
      constructor(be, ye) {
        const fe = typeof be == "string";
        if (!fe && be._decodedMemo)
          return be;
        const Z = fe ? JSON.parse(be) : be, { version: ue, file: me, names: xe, sourceRoot: Pe, sources: ve, sourcesContent: Xe } = Z;
        this.version = ue, this.file = me, this.names = xe || [], this.sourceRoot = Pe, this.sources = ve, this.sourcesContent = Xe;
        const st = s(Pe || "", a(ye));
        this.resolvedSources = ve.map((oe) => s(oe || "", st));
        const { mappings: Se } = Z;
        typeof Se == "string" ? (this._encoded = Se, this._decoded = void 0) : (this._encoded = void 0, this._decoded = g(Se, fe)), this._decodedMemo = w(), this._bySources = void 0, this._bySourceMemos = void 0;
      }
    }
    (() => {
      r.encodedMappings = (be) => {
        var ye;
        return (ye = be._encoded) !== null && ye !== void 0 ? ye : be._encoded = i.encode(be._decoded);
      }, r.decodedMappings = (be) => be._decoded || (be._decoded = i.decode(be._encoded)), r.traceSegment = (be, ye, fe) => {
        const Z = r.decodedMappings(be);
        if (ye >= Z.length)
          return null;
        const ue = Z[ye], me = le(ue, be._decodedMemo, ye, fe, K);
        return me === -1 ? null : ue[me];
      }, r.originalPositionFor = (be, { line: ye, column: fe, bias: Z }) => {
        if (ye--, ye < 0)
          throw new Error(R);
        if (fe < 0)
          throw new Error($);
        const ue = r.decodedMappings(be);
        if (ye >= ue.length)
          return Y(null, null, null, null);
        const me = ue[ye], xe = le(me, be._decodedMemo, ye, fe, Z || K);
        if (xe === -1)
          return Y(null, null, null, null);
        const Pe = me[xe];
        if (Pe.length === 1)
          return Y(null, null, null, null);
        const { names: ve, resolvedSources: Xe } = be;
        return Y(Xe[Pe[l]], Pe[u] + 1, Pe[c], Pe.length === 5 ? ve[Pe[f]] : null);
      }, r.allGeneratedPositionsFor = (be, { source: ye, line: fe, column: Z, bias: ue }) => ae(be, ye, fe, Z, ue || V, !0), r.generatedPositionFor = (be, { source: ye, line: fe, column: Z, bias: ue }) => ae(be, ye, fe, Z, ue || K, !1), r.eachMapping = (be, ye) => {
        const fe = r.decodedMappings(be), { names: Z, resolvedSources: ue } = be;
        for (let me = 0; me < fe.length; me++) {
          const xe = fe[me];
          for (let Pe = 0; Pe < xe.length; Pe++) {
            const ve = xe[Pe], Xe = me + 1, st = ve[0];
            let Se = null, oe = null, te = null, se = null;
            ve.length !== 1 && (Se = ue[ve[1]], oe = ve[2] + 1, te = ve[3]), ve.length === 5 && (se = Z[ve[4]]), ye({
              generatedLine: Xe,
              generatedColumn: st,
              source: Se,
              originalLine: oe,
              originalColumn: te,
              name: se
            });
          }
        }
      }, r.sourceContentFor = (be, ye) => {
        const { sources: fe, resolvedSources: Z, sourcesContent: ue } = be;
        if (ue == null)
          return null;
        let me = fe.indexOf(ye);
        return me === -1 && (me = Z.indexOf(ye)), me === -1 ? null : ue[me];
      }, r.presortedDecodedMap = (be, ye) => {
        const fe = new z(W(be, []), ye);
        return fe._decoded = be.mappings, fe;
      }, r.decodedMap = (be) => W(be, r.decodedMappings(be)), r.encodedMap = (be) => W(be, r.encodedMappings(be));
      function ae(be, ye, fe, Z, ue, me) {
        if (fe--, fe < 0)
          throw new Error(R);
        if (Z < 0)
          throw new Error($);
        const { sources: xe, resolvedSources: Pe } = be;
        let ve = xe.indexOf(ye);
        if (ve === -1 && (ve = Pe.indexOf(ye)), ve === -1)
          return me ? [] : G(null, null);
        const st = (be._bySources || (be._bySources = I(r.decodedMappings(be), be._bySourceMemos = xe.map(w))))[ve][fe];
        if (st == null)
          return me ? [] : G(null, null);
        const Se = be._bySourceMemos[ve];
        if (me)
          return ne(st, Se, fe, Z, ue);
        const oe = le(st, Se, fe, Z, ue);
        if (oe === -1)
          return G(null, null);
        const te = st[oe];
        return G(te[h] + 1, te[m]);
      }
    })();
    function W(ae, be) {
      return {
        version: ae.version,
        file: ae.file,
        names: ae.names,
        sourceRoot: ae.sourceRoot,
        sources: ae.sources,
        sourcesContent: ae.sourcesContent,
        mappings: be
      };
    }
    function Y(ae, be, ye, fe) {
      return { source: ae, line: be, column: ye, name: fe };
    }
    function G(ae, be) {
      return { line: ae, column: be };
    }
    function le(ae, be, ye, fe, Z) {
      let ue = A(ae, fe, be, ye);
      return P ? ue = (Z === V ? C : D)(ae, fe, ue) : Z === V && ue++, ue === -1 || ue === ae.length ? -1 : ue;
    }
    function ne(ae, be, ye, fe, Z) {
      let ue = le(ae, be, ye, fe, K);
      if (!P && Z === V && ue++, ue === -1 || ue === ae.length)
        return [];
      const me = P ? fe : ae[ue][o];
      P || (ue = D(ae, me, ue));
      const xe = C(ae, me, ue), Pe = [];
      for (; ue <= xe; ue++) {
        const ve = ae[ue];
        Pe.push(G(ve[h] + 1, ve[m]));
      }
      return Pe;
    }
    r.AnyMap = F, r.GREATEST_LOWER_BOUND = K, r.LEAST_UPPER_BOUND = V, r.TraceMap = z;
  });
})(f8, f8.exports);
var WCt = f8.exports;
Object.defineProperty(mI, "__esModule", {
  value: !0
});
mI.default = void 0;
var th = VCt, g3 = WCt;
let HCt = class {
  constructor(t, r) {
    var i;
    this._map = void 0, this._rawMappings = void 0, this._sourceFileName = void 0, this._lastGenLine = 0, this._lastSourceLine = 0, this._lastSourceColumn = 0, this._inputMap = void 0;
    const n = this._map = new th.GenMapping({
      sourceRoot: t.sourceRoot
    });
    if (this._sourceFileName = (i = t.sourceFileName) == null ? void 0 : i.replace(/\\/g, "/"), this._rawMappings = void 0, t.inputSourceMap) {
      this._inputMap = new g3.TraceMap(t.inputSourceMap);
      const a = this._inputMap.resolvedSources;
      if (a.length)
        for (let o = 0; o < a.length; o++) {
          var s;
          (0, th.setSourceContent)(n, a[o], (s = this._inputMap.sourcesContent) == null ? void 0 : s[o]);
        }
    }
    if (typeof r == "string" && !t.inputSourceMap)
      (0, th.setSourceContent)(n, this._sourceFileName, r);
    else if (typeof r == "object")
      for (const a of Object.keys(r))
        (0, th.setSourceContent)(n, a.replace(/\\/g, "/"), r[a]);
  }
  get() {
    return (0, th.toEncodedMap)(this._map);
  }
  getDecoded() {
    return (0, th.toDecodedMap)(this._map);
  }
  getRawMappings() {
    return this._rawMappings || (this._rawMappings = (0, th.allMappings)(this._map));
  }
  mark(t, r, i, n, s, a) {
    var o;
    this._rawMappings = void 0;
    let l;
    if (r != null)
      if (this._inputMap) {
        if (l = (0, g3.originalPositionFor)(this._inputMap, {
          line: r,
          column: i
        }), !l.name && s) {
          const u = (0, g3.originalPositionFor)(this._inputMap, s);
          u.name && (n = u.name);
        }
      } else
        l = {
          source: (a == null ? void 0 : a.replace(/\\/g, "/")) || this._sourceFileName,
          line: r,
          column: i
        };
    (0, th.maybeAddMapping)(this._map, {
      name: n,
      generated: t,
      source: (o = l) == null ? void 0 : o.source,
      original: l
    });
  }
};
mI.default = HCt;
var yI = {}, gI = {};
Object.defineProperty(gI, "__esModule", {
  value: !0
});
gI.default = void 0;
let KCt = class {
  constructor(t, r) {
    this._map = null, this._buf = "", this._str = "", this._appendCount = 0, this._last = 0, this._queue = [], this._queueCursor = 0, this._canMarkIdName = !0, this._indentChar = "", this._fastIndentations = [], this._position = {
      line: 1,
      column: 0
    }, this._sourcePosition = {
      identifierName: void 0,
      identifierNamePos: void 0,
      line: void 0,
      column: void 0,
      filename: void 0
    }, this._map = t, this._indentChar = r;
    for (let i = 0; i < 64; i++)
      this._fastIndentations.push(r.repeat(i));
    this._allocQueue();
  }
  _allocQueue() {
    const t = this._queue;
    for (let r = 0; r < 16; r++)
      t.push({
        char: 0,
        repeat: 1,
        line: void 0,
        column: void 0,
        identifierName: void 0,
        identifierNamePos: void 0,
        filename: ""
      });
  }
  _pushQueue(t, r, i, n, s) {
    const a = this._queueCursor;
    a === this._queue.length && this._allocQueue();
    const o = this._queue[a];
    o.char = t, o.repeat = r, o.line = i, o.column = n, o.filename = s, this._queueCursor++;
  }
  _popQueue() {
    if (this._queueCursor === 0)
      throw new Error("Cannot pop from empty queue");
    return this._queue[--this._queueCursor];
  }
  get() {
    this._flush();
    const t = this._map, r = {
      code: (this._buf + this._str).trimRight(),
      decodedMap: t == null ? void 0 : t.getDecoded(),
      get __mergedMap() {
        return this.map;
      },
      get map() {
        const i = t ? t.get() : null;
        return r.map = i, i;
      },
      set map(i) {
        Object.defineProperty(r, "map", {
          value: i,
          writable: !0
        });
      },
      get rawMappings() {
        const i = t == null ? void 0 : t.getRawMappings();
        return r.rawMappings = i, i;
      },
      set rawMappings(i) {
        Object.defineProperty(r, "rawMappings", {
          value: i,
          writable: !0
        });
      }
    };
    return r;
  }
  append(t, r) {
    this._flush(), this._append(t, this._sourcePosition, r);
  }
  appendChar(t) {
    this._flush(), this._appendChar(t, 1, this._sourcePosition);
  }
  queue(t) {
    if (t === 10)
      for (; this._queueCursor !== 0; ) {
        const i = this._queue[this._queueCursor - 1].char;
        if (i !== 32 && i !== 9)
          break;
        this._queueCursor--;
      }
    const r = this._sourcePosition;
    this._pushQueue(t, 1, r.line, r.column, r.filename);
  }
  queueIndentation(t) {
    t !== 0 && this._pushQueue(-1, t, void 0, void 0, void 0);
  }
  _flush() {
    const t = this._queueCursor, r = this._queue;
    for (let i = 0; i < t; i++) {
      const n = r[i];
      this._appendChar(n.char, n.repeat, n);
    }
    this._queueCursor = 0;
  }
  _appendChar(t, r, i) {
    if (this._last = t, t === -1) {
      const n = this._fastIndentations[r];
      n !== void 0 ? this._str += n : this._str += r > 1 ? this._indentChar.repeat(r) : this._indentChar;
    } else
      this._str += r > 1 ? String.fromCharCode(t).repeat(r) : String.fromCharCode(t);
    t !== 10 ? (this._mark(i.line, i.column, i.identifierName, i.identifierNamePos, i.filename), this._position.column += r) : (this._position.line++, this._position.column = 0), this._canMarkIdName && (i.identifierName = void 0, i.identifierNamePos = void 0);
  }
  _append(t, r, i) {
    const n = t.length, s = this._position;
    if (this._last = t.charCodeAt(n - 1), ++this._appendCount > 4096 ? (+this._str, this._buf += this._str, this._str = t, this._appendCount = 0) : this._str += t, !i && !this._map) {
      s.column += n;
      return;
    }
    const {
      column: a,
      identifierName: o,
      identifierNamePos: l,
      filename: u
    } = r;
    let c = r.line;
    (o != null || l != null) && this._canMarkIdName && (r.identifierName = void 0, r.identifierNamePos = void 0);
    let f = t.indexOf("\n"), h = 0;
    for (f !== 0 && this._mark(c, a, o, l, u); f !== -1; )
      s.line++, s.column = 0, h = f + 1, h < n && c !== void 0 && this._mark(++c, 0, null, null, u), f = t.indexOf("\n", h);
    s.column += n - h;
  }
  _mark(t, r, i, n, s) {
    var a;
    (a = this._map) == null || a.mark(this._position, t, r, i, n, s);
  }
  removeTrailingNewline() {
    const t = this._queueCursor;
    t !== 0 && this._queue[t - 1].char === 10 && this._queueCursor--;
  }
  removeLastSemicolon() {
    const t = this._queueCursor;
    t !== 0 && this._queue[t - 1].char === 59 && this._queueCursor--;
  }
  getLastChar() {
    const t = this._queueCursor;
    return t !== 0 ? this._queue[t - 1].char : this._last;
  }
  getNewlineCount() {
    const t = this._queueCursor;
    let r = 0;
    if (t === 0)
      return this._last === 10 ? 1 : 0;
    for (let i = t - 1; i >= 0 && this._queue[i].char === 10; i--)
      r++;
    return r === t && this._last === 10 ? r + 1 : r;
  }
  endsWithCharAndNewline() {
    const t = this._queue, r = this._queueCursor;
    if (r !== 0)
      return t[r - 1].char !== 10 ? void 0 : r > 1 ? t[r - 2].char : this._last;
  }
  hasContent() {
    return this._queueCursor !== 0 || !!this._last;
  }
  exactSource(t, r) {
    if (!this._map) {
      r();
      return;
    }
    this.source("start", t);
    const i = t.identifierName, n = this._sourcePosition;
    i && (this._canMarkIdName = !1, n.identifierName = i), r(), i && (this._canMarkIdName = !0, n.identifierName = void 0, n.identifierNamePos = void 0), this.source("end", t);
  }
  source(t, r) {
    this._map && this._normalizePosition(t, r, 0);
  }
  sourceWithOffset(t, r, i) {
    this._map && this._normalizePosition(t, r, i);
  }
  withSource(t, r, i) {
    this._map && this.source(t, r), i();
  }
  _normalizePosition(t, r, i) {
    const n = r[t], s = this._sourcePosition;
    n && (s.line = n.line, s.column = Math.max(n.column + i, 0), s.filename = r.filename);
  }
  getCurrentColumn() {
    const t = this._queue, r = this._queueCursor;
    let i = -1, n = 0;
    for (let s = 0; s < r; s++) {
      const a = t[s];
      a.char === 10 && (i = n), n += a.repeat;
    }
    return i === -1 ? this._position.column + n : n - 1 - i;
  }
  getCurrentLine() {
    let t = 0;
    const r = this._queue;
    for (let i = 0; i < this._queueCursor; i++)
      r[i].char === 10 && t++;
    return this._position.line + t;
  }
};
gI.default = KCt;
var mm = {}, bI = {};
Object.defineProperty(bI, "__esModule", {
  value: !0
});
bI.nodes = void 0;
var zCt = Nr();
const {
  FLIPPED_ALIAS_KEYS: GCt,
  isArrayExpression: YCt,
  isAssignmentExpression: Gme,
  isBinary: Yme,
  isBlockStatement: XCt,
  isCallExpression: Xme,
  isFunction: C0,
  isIdentifier: Hw,
  isLiteral: JCt,
  isMemberExpression: j5,
  isObjectExpression: QCt,
  isOptionalCallExpression: ZCt,
  isOptionalMemberExpression: e_t,
  isStringLiteral: t_t
} = zCt;
function ny(e, t) {
  return e && (j5(e) || e_t(e) ? (ny(e.object, t), e.computed && ny(e.property, t)) : Yme(e) || Gme(e) ? (ny(e.left, t), ny(e.right, t)) : Xme(e) || ZCt(e) ? (t.hasCall = !0, ny(e.callee, t)) : C0(e) ? t.hasFunction = !0 : Hw(e) && (t.hasHelper = t.hasHelper || e.callee && sf(e.callee))), t;
}
function kQ(e) {
  return ny(e, {
    hasCall: !1,
    hasFunction: !1,
    hasHelper: !1
  });
}
function sf(e) {
  return e ? j5(e) ? sf(e.object) || sf(e.property) : Hw(e) ? e.name === "require" || e.name.charCodeAt(0) === 95 : Xme(e) ? sf(e.callee) : Yme(e) || Gme(e) ? Hw(e.left) && sf(e.left) || sf(e.right) : !1 : !1;
}
function r_t(e) {
  return JCt(e) || QCt(e) || YCt(e) || Hw(e) || j5(e);
}
const Ud = bI.nodes = {
  AssignmentExpression(e) {
    const t = kQ(e.right);
    if (t.hasCall && t.hasHelper || t.hasFunction)
      return t.hasFunction ? 3 : 2;
  },
  SwitchCase(e, t) {
    return (e.consequent.length || t.cases[0] === e ? 1 : 0) | (!e.consequent.length && t.cases[t.cases.length - 1] === e ? 2 : 0);
  },
  LogicalExpression(e) {
    if (C0(e.left) || C0(e.right))
      return 2;
  },
  Literal(e) {
    if (t_t(e) && e.value === "use strict")
      return 2;
  },
  CallExpression(e) {
    if (C0(e.callee) || sf(e))
      return 3;
  },
  OptionalCallExpression(e) {
    if (C0(e.callee))
      return 3;
  },
  VariableDeclaration(e) {
    for (let t = 0; t < e.declarations.length; t++) {
      const r = e.declarations[t];
      let i = sf(r.id) && !r_t(r.init);
      if (!i && r.init) {
        const n = kQ(r.init);
        i = sf(r.init) && n.hasCall || n.hasFunction;
      }
      if (i)
        return 3;
    }
  },
  IfStatement(e) {
    if (XCt(e.consequent))
      return 3;
  }
};
Ud.ObjectProperty = Ud.ObjectTypeProperty = Ud.ObjectMethod = function(e, t) {
  if (t.properties[0] === e)
    return 1;
};
Ud.ObjectTypeCallProperty = function(e, t) {
  var r;
  if (t.callProperties[0] === e && !((r = t.properties) != null && r.length))
    return 1;
};
Ud.ObjectTypeIndexer = function(e, t) {
  var r, i;
  if (t.indexers[0] === e && !((r = t.properties) != null && r.length) && !((i = t.callProperties) != null && i.length))
    return 1;
};
Ud.ObjectTypeInternalSlot = function(e, t) {
  var r, i, n;
  if (t.internalSlots[0] === e && !((r = t.properties) != null && r.length) && !((i = t.callProperties) != null && i.length) && !((n = t.indexers) != null && n.length))
    return 1;
};
[["Function", !0], ["Class", !0], ["Loop", !0], ["LabeledStatement", !0], ["SwitchStatement", !0], ["TryStatement", !0]].forEach(function([e, t]) {
  [e].concat(GCt[e] || []).forEach(function(r) {
    const i = t ? 3 : 0;
    Ud[r] = () => i;
  });
});
var Pi = {};
Object.defineProperty(Pi, "__esModule", {
  value: !0
});
Pi.ArrowFunctionExpression = O_t;
Pi.AssignmentExpression = D_t;
Pi.Binary = v_t;
Pi.BinaryExpression = A_t;
Pi.ClassExpression = I_t;
Pi.ConditionalExpression = $5;
Pi.DoExpression = b_t;
Pi.FunctionExpression = k_t;
Pi.FunctionTypeAnnotation = m_t;
Pi.Identifier = M_t;
Pi.LogicalExpression = L_t;
Pi.NullableTypeAnnotation = d_t;
Pi.ObjectExpression = g_t;
Pi.OptionalIndexedAccessType = S_t;
Pi.OptionalCallExpression = Pi.OptionalMemberExpression = N_t;
Pi.SequenceExpression = C_t;
Pi.TSTypeAssertion = Pi.TSSatisfiesExpression = Pi.TSAsExpression = x_t;
Pi.TSInferType = P_t;
Pi.TSInstantiationExpression = w_t;
Pi.TSIntersectionType = Pi.TSUnionType = E_t;
Pi.UnaryLike = Zme;
Pi.IntersectionTypeAnnotation = Pi.UnionTypeAnnotation = T_t;
Pi.UpdateExpression = y_t;
Pi.AwaitExpression = Pi.YieldExpression = __t;
var i_t = Nr();
const {
  isArrayTypeAnnotation: n_t,
  isArrowFunctionExpression: s_t,
  isBinaryExpression: a_t,
  isCallExpression: o_t,
  isExportDeclaration: l_t,
  isForOfStatement: u_t,
  isIndexedAccessType: c_t,
  isMemberExpression: Jme,
  isObjectPattern: p_t,
  isOptionalMemberExpression: f_t,
  isYieldExpression: h_t
} = i_t, OQ = /* @__PURE__ */ new Map([["||", 0], ["??", 0], ["|>", 0], ["&&", 1], ["|", 2], ["^", 3], ["&", 4], ["==", 5], ["===", 5], ["!=", 5], ["!==", 5], ["<", 6], [">", 6], ["<=", 6], [">=", 6], ["in", 6], ["instanceof", 6], [">>", 7], ["<<", 7], [">>>", 7], ["+", 8], ["-", 8], ["*", 9], ["/", 9], ["%", 9], ["**", 10]]);
function Qme(e) {
  return e === "TSAsExpression" || e === "TSSatisfiesExpression" || e === "TSTypeAssertion";
}
const vI = (e, t) => {
  const r = t.type;
  return (r === "ClassDeclaration" || r === "ClassExpression") && t.superClass === e;
}, aS = (e, t) => {
  const r = t.type;
  return (r === "MemberExpression" || r === "OptionalMemberExpression") && t.object === e || (r === "CallExpression" || r === "OptionalCallExpression" || r === "NewExpression") && t.callee === e || r === "TaggedTemplateExpression" && t.tag === e || r === "TSNonNullExpression";
};
function d_t(e, t) {
  return n_t(t);
}
function m_t(e, t, r) {
  if (r.length < 3)
    return;
  const i = t.type;
  return i === "UnionTypeAnnotation" || i === "IntersectionTypeAnnotation" || i === "ArrayTypeAnnotation" || i === "TypeAnnotation" && s_t(r[r.length - 3]);
}
function y_t(e, t) {
  return aS(e, t) || vI(e, t);
}
function g_t(e, t, r) {
  return oS(r, 3);
}
function b_t(e, t, r) {
  return !e.async && oS(r, 1);
}
function v_t(e, t) {
  const r = t.type;
  if (e.operator === "**" && r === "BinaryExpression" && t.operator === "**")
    return t.left === e;
  if (vI(e, t) || aS(e, t) || r === "UnaryExpression" || r === "SpreadElement" || r === "AwaitExpression")
    return !0;
  if (r === "BinaryExpression" || r === "LogicalExpression") {
    const i = OQ.get(t.operator), n = OQ.get(e.operator);
    if (i === n && t.right === e && r !== "LogicalExpression" || i > n)
      return !0;
  }
}
function T_t(e, t) {
  const r = t.type;
  return r === "ArrayTypeAnnotation" || r === "NullableTypeAnnotation" || r === "IntersectionTypeAnnotation" || r === "UnionTypeAnnotation";
}
function S_t(e, t) {
  return c_t(t) && t.objectType === e;
}
function x_t() {
  return !0;
}
function E_t(e, t) {
  const r = t.type;
  return r === "TSArrayType" || r === "TSOptionalType" || r === "TSIntersectionType" || r === "TSUnionType" || r === "TSRestType";
}
function P_t(e, t) {
  const r = t.type;
  return r === "TSArrayType" || r === "TSOptionalType";
}
function w_t(e, t) {
  const r = t.type;
  return (r === "CallExpression" || r === "OptionalCallExpression" || r === "NewExpression" || r === "TSInstantiationExpression") && !!t.typeParameters;
}
function A_t(e, t) {
  if (e.operator === "in") {
    const r = t.type;
    return r === "VariableDeclarator" || r === "ForStatement" || r === "ForInStatement" || r === "ForOfStatement";
  }
  return !1;
}
function C_t(e, t) {
  const r = t.type;
  return !(r === "ForStatement" || r === "ThrowStatement" || r === "ReturnStatement" || r === "IfStatement" && t.test === e || r === "WhileStatement" && t.test === e || r === "ForInStatement" && t.right === e || r === "SwitchStatement" && t.discriminant === e || r === "ExpressionStatement" && t.expression === e);
}
function __t(e, t) {
  const r = t.type;
  return r === "BinaryExpression" || r === "LogicalExpression" || r === "UnaryExpression" || r === "SpreadElement" || aS(e, t) || r === "AwaitExpression" && h_t(e) || r === "ConditionalExpression" && e === t.test || vI(e, t);
}
function I_t(e, t, r) {
  return oS(r, 5);
}
function Zme(e, t) {
  return aS(e, t) || a_t(t) && t.operator === "**" && t.left === e || vI(e, t);
}
function k_t(e, t, r) {
  return oS(r, 5);
}
function O_t(e, t) {
  return l_t(t) || $5(e, t);
}
function $5(e, t) {
  const r = t.type;
  return r === "UnaryExpression" || r === "SpreadElement" || r === "BinaryExpression" || r === "LogicalExpression" || r === "ConditionalExpression" && t.test === e || r === "AwaitExpression" || Qme(r) ? !0 : Zme(e, t);
}
function N_t(e, t) {
  return o_t(t) && t.callee === e || Jme(t) && t.object === e;
}
function D_t(e, t) {
  return p_t(e.left) ? !0 : $5(e, t);
}
function L_t(e, t) {
  const r = t.type;
  if (Qme(r))
    return !0;
  if (r !== "LogicalExpression")
    return !1;
  switch (e.operator) {
    case "||":
      return t.operator === "??" || t.operator === "&&";
    case "&&":
      return t.operator === "??";
    case "??":
      return t.operator !== "??";
  }
}
function M_t(e, t, r) {
  var i;
  const n = t.type;
  if ((i = e.extra) != null && i.parenthesized && n === "AssignmentExpression" && t.left === e) {
    const s = t.right.type;
    if ((s === "FunctionExpression" || s === "ClassExpression") && t.right.id == null)
      return !0;
  }
  if (e.name === "let") {
    const s = Jme(t, {
      object: e,
      computed: !0
    }) || f_t(t, {
      object: e,
      computed: !0,
      optional: !1
    });
    return oS(r, s ? 57 : 32);
  }
  return e.name === "async" && u_t(t) && e === t.left;
}
function oS(e, t) {
  const r = t & 1, i = t & 2, n = t & 4, s = t & 8, a = t & 16, o = t & 32;
  let l = e.length - 1;
  if (l <= 0)
    return;
  let u = e[l];
  l--;
  let c = e[l];
  for (; l >= 0; ) {
    const f = c.type;
    if (r && f === "ExpressionStatement" && c.expression === u || n && f === "ExportDefaultDeclaration" && u === c.declaration || i && f === "ArrowFunctionExpression" && c.body === u || s && f === "ForStatement" && c.init === u || a && f === "ForInStatement" && c.left === u || o && f === "ForOfStatement" && c.left === u)
      return !0;
    if (l > 0 && (aS(u, c) && f !== "NewExpression" || f === "SequenceExpression" && c.expressions[0] === u || f === "UpdateExpression" && !c.prefix || f === "ConditionalExpression" && c.test === u || (f === "BinaryExpression" || f === "LogicalExpression") && c.left === u || f === "AssignmentExpression" && c.left === u))
      u = c, l--, c = e[l];
    else
      return !1;
  }
  return !1;
}
Object.defineProperty(mm, "__esModule", {
  value: !0
});
mm.needsParens = G_t;
mm.needsWhitespace = U5;
mm.needsWhitespaceAfter = z_t;
mm.needsWhitespaceBefore = K_t;
var R_t = bI, B_t = Pi, F_t = Nr();
const {
  FLIPPED_ALIAS_KEYS: j_t,
  isCallExpression: $_t,
  isExpressionStatement: U_t,
  isMemberExpression: q_t,
  isNewExpression: V_t
} = F_t;
function eye(e) {
  const t = /* @__PURE__ */ new Map();
  function r(i, n) {
    const s = t.get(i);
    t.set(i, s ? function(a, o, l) {
      var u;
      return (u = s(a, o, l)) != null ? u : n(a, o, l);
    } : n);
  }
  for (const i of Object.keys(e)) {
    const n = j_t[i];
    if (n)
      for (const s of n)
        r(s, e[i]);
    else
      r(i, e[i]);
  }
  return t;
}
const W_t = eye(B_t), H_t = eye(R_t.nodes);
function tye(e) {
  return $_t(e) ? !0 : q_t(e) && tye(e.object);
}
function U5(e, t, r) {
  var i;
  if (!e)
    return !1;
  U_t(e) && (e = e.expression);
  const n = (i = H_t.get(e.type)) == null ? void 0 : i(e, t);
  return typeof n == "number" ? (n & r) !== 0 : !1;
}
function K_t(e, t) {
  return U5(e, t, 1);
}
function z_t(e, t) {
  return U5(e, t, 2);
}
function G_t(e, t, r) {
  var i;
  return t ? V_t(t) && t.callee === e && tye(e) ? !0 : (i = W_t.get(e.type)) == null ? void 0 : i(e, t, r) : !1;
}
var rye = {}, lS = {};
Object.defineProperty(lS, "__esModule", {
  value: !0
});
lS.TaggedTemplateExpression = Y_t;
lS.TemplateElement = X_t;
lS.TemplateLiteral = J_t;
function Y_t(e) {
  this.print(e.tag, e), this.print(e.typeParameters, e), this.print(e.quasi, e);
}
function X_t(e, t) {
  const r = t.quasis[0] === e, i = t.quasis[t.quasis.length - 1] === e, n = (r ? "`" : "}") + e.value.raw + (i ? "`" : "${");
  this.token(n, !0);
}
function J_t(e) {
  const t = e.quasis;
  for (let r = 0; r < t.length; r++)
    this.print(t[r], e), r + 1 < t.length && this.print(e.expressions[r], e);
}
var ki = {};
Object.defineProperty(ki, "__esModule", {
  value: !0
});
ki.LogicalExpression = ki.BinaryExpression = ki.AssignmentExpression = EIt;
ki.AssignmentPattern = xIt;
ki.AwaitExpression = bIt;
ki.BindExpression = PIt;
ki.CallExpression = yIt;
ki.ConditionalExpression = aIt;
ki.Decorator = hIt;
ki.DoExpression = iIt;
ki.EmptyStatement = TIt;
ki.ExpressionStatement = SIt;
ki.Import = gIt;
ki.MemberExpression = wIt;
ki.MetaProperty = AIt;
ki.ModuleExpression = IIt;
ki.NewExpression = oIt;
ki.OptionalCallExpression = mIt;
ki.OptionalMemberExpression = dIt;
ki.ParenthesizedExpression = nIt;
ki.PrivateName = CIt;
ki.SequenceExpression = lIt;
ki.Super = cIt;
ki.ThisExpression = uIt;
ki.UnaryExpression = rIt;
ki.UpdateExpression = sIt;
ki.V8IntrinsicIdentifier = _It;
ki.YieldExpression = vIt;
ki._shouldPrintDecoratorsBeforeExport = fIt;
var Q_t = Nr(), Z_t = mm;
const {
  isCallExpression: eIt,
  isLiteral: iye,
  isMemberExpression: q5,
  isNewExpression: tIt
} = Q_t;
function rIt(e) {
  const {
    operator: t
  } = e;
  t === "void" || t === "delete" || t === "typeof" || t === "throw" ? (this.word(t), this.space()) : this.token(t), this.print(e.argument, e);
}
function iIt(e) {
  e.async && (this.word("async", !0), this.space()), this.word("do"), this.space(), this.print(e.body, e);
}
function nIt(e) {
  this.tokenChar(40), this.print(e.expression, e), this.rightParens(e);
}
function sIt(e) {
  e.prefix ? (this.token(e.operator), this.print(e.argument, e)) : (this.printTerminatorless(e.argument, e, !0), this.token(e.operator));
}
function aIt(e) {
  this.print(e.test, e), this.space(), this.tokenChar(63), this.space(), this.print(e.consequent, e), this.space(), this.tokenChar(58), this.space(), this.print(e.alternate, e);
}
function oIt(e, t) {
  this.word("new"), this.space(), this.print(e.callee, e), !(this.format.minified && e.arguments.length === 0 && !e.optional && !eIt(t, {
    callee: e
  }) && !q5(t) && !tIt(t)) && (this.print(e.typeArguments, e), this.print(e.typeParameters, e), e.optional && this.token("?."), this.tokenChar(40), this.printList(e.arguments, e), this.rightParens(e));
}
function lIt(e) {
  this.printList(e.expressions, e);
}
function uIt() {
  this.word("this");
}
function cIt() {
  this.word("super");
}
function nye(e) {
  switch (e.type) {
    case "Identifier":
      return !0;
    case "MemberExpression":
      return !e.computed && e.property.type === "Identifier" && nye(e.object);
    default:
      return !1;
  }
}
function pIt(e) {
  return e.type === "ParenthesizedExpression" ? !1 : !nye(e.type === "CallExpression" ? e.callee : e);
}
function fIt(e) {
  return typeof this.format.decoratorsBeforeExport == "boolean" ? this.format.decoratorsBeforeExport : typeof e.start == "number" && e.start === e.declaration.start;
}
function hIt(e) {
  this.tokenChar(64);
  const {
    expression: t
  } = e;
  pIt(t) ? (this.tokenChar(40), this.print(t, e), this.tokenChar(41)) : this.print(t, e), this.newline();
}
function dIt(e) {
  let {
    computed: t
  } = e;
  const {
    optional: r,
    property: i
  } = e;
  if (this.print(e.object, e), !t && q5(i))
    throw new TypeError("Got a MemberExpression for MemberExpression property");
  iye(i) && typeof i.value == "number" && (t = !0), r && this.token("?."), t ? (this.tokenChar(91), this.print(i, e), this.tokenChar(93)) : (r || this.tokenChar(46), this.print(i, e));
}
function mIt(e) {
  this.print(e.callee, e), this.print(e.typeParameters, e), e.optional && this.token("?."), this.print(e.typeArguments, e), this.tokenChar(40), this.printList(e.arguments, e), this.rightParens(e);
}
function yIt(e) {
  this.print(e.callee, e), this.print(e.typeArguments, e), this.print(e.typeParameters, e), this.tokenChar(40), this.printList(e.arguments, e), this.rightParens(e);
}
function gIt() {
  this.word("import");
}
function bIt(e) {
  this.word("await"), e.argument && (this.space(), this.printTerminatorless(e.argument, e, !1));
}
function vIt(e) {
  this.word("yield", !0), e.delegate ? (this.tokenChar(42), e.argument && (this.space(), this.print(e.argument, e))) : e.argument && (this.space(), this.printTerminatorless(e.argument, e, !1));
}
function TIt() {
  this.semicolon(!0);
}
function SIt(e) {
  this.print(e.expression, e), this.semicolon();
}
function xIt(e) {
  this.print(e.left, e), e.left.optional && this.tokenChar(63), this.print(e.left.typeAnnotation, e), this.space(), this.tokenChar(61), this.space(), this.print(e.right, e);
}
function EIt(e, t) {
  const r = this.inForStatementInitCounter && e.operator === "in" && !Z_t.needsParens(e, t);
  r && this.tokenChar(40), this.print(e.left, e), this.space(), e.operator === "in" || e.operator === "instanceof" ? this.word(e.operator) : this.token(e.operator), this.space(), this.print(e.right, e), r && this.tokenChar(41);
}
function PIt(e) {
  this.print(e.object, e), this.token("::"), this.print(e.callee, e);
}
function wIt(e) {
  if (this.print(e.object, e), !e.computed && q5(e.property))
    throw new TypeError("Got a MemberExpression for MemberExpression property");
  let t = e.computed;
  iye(e.property) && typeof e.property.value == "number" && (t = !0), t ? (this.tokenChar(91), this.print(e.property, e), this.tokenChar(93)) : (this.tokenChar(46), this.print(e.property, e));
}
function AIt(e) {
  this.print(e.meta, e), this.tokenChar(46), this.print(e.property, e);
}
function CIt(e) {
  this.tokenChar(35), this.print(e.id, e);
}
function _It(e) {
  this.tokenChar(37), this.word(e.name);
}
function IIt(e) {
  this.word("module", !0), this.space(), this.tokenChar(123), this.indent();
  const {
    body: t
  } = e;
  (t.body.length || t.directives.length) && this.newline(), this.print(t, e), this.dedent(), this.rightBrace(e);
}
var An = {};
Object.defineProperty(An, "__esModule", {
  value: !0
});
An.BreakStatement = jIt;
An.CatchClause = HIt;
An.ContinueStatement = $It;
An.DebuggerStatement = GIt;
An.DoWhileStatement = FIt;
An.ForOfStatement = An.ForInStatement = void 0;
An.ForStatement = RIt;
An.IfStatement = MIt;
An.LabeledStatement = VIt;
An.ReturnStatement = UIt;
An.SwitchCase = zIt;
An.SwitchStatement = KIt;
An.ThrowStatement = qIt;
An.TryStatement = WIt;
An.VariableDeclaration = YIt;
An.VariableDeclarator = XIt;
An.WhileStatement = BIt;
An.WithStatement = LIt;
var kIt = Nr();
const {
  isFor: NQ,
  isForStatement: OIt,
  isIfStatement: NIt,
  isStatement: DIt
} = kIt;
function LIt(e) {
  this.word("with"), this.space(), this.tokenChar(40), this.print(e.object, e), this.tokenChar(41), this.printBlock(e);
}
function MIt(e) {
  this.word("if"), this.space(), this.tokenChar(40), this.print(e.test, e), this.tokenChar(41), this.space();
  const t = e.alternate && NIt(sye(e.consequent));
  t && (this.tokenChar(123), this.newline(), this.indent()), this.printAndIndentOnComments(e.consequent, e), t && (this.dedent(), this.newline(), this.tokenChar(125)), e.alternate && (this.endsWith(125) && this.space(), this.word("else"), this.space(), this.printAndIndentOnComments(e.alternate, e));
}
function sye(e) {
  const {
    body: t
  } = e;
  return DIt(t) === !1 ? e : sye(t);
}
function RIt(e) {
  this.word("for"), this.space(), this.tokenChar(40), this.inForStatementInitCounter++, this.print(e.init, e), this.inForStatementInitCounter--, this.tokenChar(59), e.test && (this.space(), this.print(e.test, e)), this.tokenChar(59), e.update && (this.space(), this.print(e.update, e)), this.tokenChar(41), this.printBlock(e);
}
function BIt(e) {
  this.word("while"), this.space(), this.tokenChar(40), this.print(e.test, e), this.tokenChar(41), this.printBlock(e);
}
function aye(e) {
  this.word("for"), this.space();
  const t = e.type === "ForOfStatement";
  t && e.await && (this.word("await"), this.space()), this.noIndentInnerCommentsHere(), this.tokenChar(40), this.print(e.left, e), this.space(), this.word(t ? "of" : "in"), this.space(), this.print(e.right, e), this.tokenChar(41), this.printBlock(e);
}
An.ForInStatement = aye;
An.ForOfStatement = aye;
function FIt(e) {
  this.word("do"), this.space(), this.print(e.body, e), this.space(), this.word("while"), this.space(), this.tokenChar(40), this.print(e.test, e), this.tokenChar(41), this.semicolon();
}
function TI(e, t, r, i) {
  t && (e.space(), e.printTerminatorless(t, r, i)), e.semicolon();
}
function jIt(e) {
  this.word("break"), TI(this, e.label, e, !0);
}
function $It(e) {
  this.word("continue"), TI(this, e.label, e, !0);
}
function UIt(e) {
  this.word("return"), TI(this, e.argument, e, !1);
}
function qIt(e) {
  this.word("throw"), TI(this, e.argument, e, !1);
}
function VIt(e) {
  this.print(e.label, e), this.tokenChar(58), this.space(), this.print(e.body, e);
}
function WIt(e) {
  this.word("try"), this.space(), this.print(e.block, e), this.space(), e.handlers ? this.print(e.handlers[0], e) : this.print(e.handler, e), e.finalizer && (this.space(), this.word("finally"), this.space(), this.print(e.finalizer, e));
}
function HIt(e) {
  this.word("catch"), this.space(), e.param && (this.tokenChar(40), this.print(e.param, e), this.print(e.param.typeAnnotation, e), this.tokenChar(41), this.space()), this.print(e.body, e);
}
function KIt(e) {
  this.word("switch"), this.space(), this.tokenChar(40), this.print(e.discriminant, e), this.tokenChar(41), this.space(), this.tokenChar(123), this.printSequence(e.cases, e, {
    indent: !0,
    addNewlines(t, r) {
      if (!t && e.cases[e.cases.length - 1] === r)
        return -1;
    }
  }), this.rightBrace(e);
}
function zIt(e) {
  e.test ? (this.word("case"), this.space(), this.print(e.test, e), this.tokenChar(58)) : (this.word("default"), this.tokenChar(58)), e.consequent.length && (this.newline(), this.printSequence(e.consequent, e, {
    indent: !0
  }));
}
function GIt() {
  this.word("debugger"), this.semicolon();
}
function YIt(e, t) {
  e.declare && (this.word("declare"), this.space());
  const {
    kind: r
  } = e;
  this.word(r, r === "using" || r === "await using"), this.space();
  let i = !1;
  if (!NQ(t))
    for (const n of e.declarations)
      n.init && (i = !0);
  if (this.printList(e.declarations, e, {
    separator: i ? function() {
      this.tokenChar(44), this.newline();
    } : void 0,
    indent: e.declarations.length > 1
  }), NQ(t)) {
    if (OIt(t)) {
      if (t.init === e)
        return;
    } else if (t.left === e)
      return;
  }
  this.semicolon();
}
function XIt(e) {
  this.print(e.id, e), e.definite && this.tokenChar(33), this.print(e.id.typeAnnotation, e), e.init && (this.space(), this.tokenChar(61), this.space(), this.print(e.init, e));
}
var Wl = {};
Object.defineProperty(Wl, "__esModule", {
  value: !0
});
Wl.ClassAccessorProperty = i2t;
Wl.ClassBody = t2t;
Wl.ClassExpression = Wl.ClassDeclaration = e2t;
Wl.ClassMethod = s2t;
Wl.ClassPrivateMethod = a2t;
Wl.ClassPrivateProperty = n2t;
Wl.ClassProperty = r2t;
Wl.StaticBlock = l2t;
Wl._classMethodHead = o2t;
var JIt = Nr();
const {
  isExportDefaultDeclaration: QIt,
  isExportNamedDeclaration: ZIt
} = JIt;
function e2t(e, t) {
  (!(QIt(t) || ZIt(t)) || !this._shouldPrintDecoratorsBeforeExport(t)) && this.printJoin(e.decorators, e), e.declare && (this.word("declare"), this.space()), e.abstract && (this.word("abstract"), this.space()), this.word("class"), e.id && (this.space(), this.print(e.id, e)), this.print(e.typeParameters, e), e.superClass && (this.space(), this.word("extends"), this.space(), this.print(e.superClass, e), this.print(e.superTypeParameters, e)), e.implements && (this.space(), this.word("implements"), this.space(), this.printList(e.implements, e)), this.space(), this.print(e.body, e);
}
function t2t(e) {
  this.tokenChar(123), e.body.length === 0 ? this.tokenChar(125) : (this.newline(), this.printSequence(e.body, e, {
    indent: !0
  }), this.endsWith(10) || this.newline(), this.rightBrace(e));
}
function r2t(e) {
  var t;
  this.printJoin(e.decorators, e);
  const r = (t = e.key.loc) == null || (t = t.end) == null ? void 0 : t.line;
  r && this.catchUp(r), this.tsPrintClassMemberModifiers(e), e.computed ? (this.tokenChar(91), this.print(e.key, e), this.tokenChar(93)) : (this._variance(e), this.print(e.key, e)), e.optional && this.tokenChar(63), e.definite && this.tokenChar(33), this.print(e.typeAnnotation, e), e.value && (this.space(), this.tokenChar(61), this.space(), this.print(e.value, e)), this.semicolon();
}
function i2t(e) {
  var t;
  this.printJoin(e.decorators, e);
  const r = (t = e.key.loc) == null || (t = t.end) == null ? void 0 : t.line;
  r && this.catchUp(r), this.tsPrintClassMemberModifiers(e), this.word("accessor", !0), this.space(), e.computed ? (this.tokenChar(91), this.print(e.key, e), this.tokenChar(93)) : (this._variance(e), this.print(e.key, e)), e.optional && this.tokenChar(63), e.definite && this.tokenChar(33), this.print(e.typeAnnotation, e), e.value && (this.space(), this.tokenChar(61), this.space(), this.print(e.value, e)), this.semicolon();
}
function n2t(e) {
  this.printJoin(e.decorators, e), e.static && (this.word("static"), this.space()), this.print(e.key, e), this.print(e.typeAnnotation, e), e.value && (this.space(), this.tokenChar(61), this.space(), this.print(e.value, e)), this.semicolon();
}
function s2t(e) {
  this._classMethodHead(e), this.space(), this.print(e.body, e);
}
function a2t(e) {
  this._classMethodHead(e), this.space(), this.print(e.body, e);
}
function o2t(e) {
  var t;
  this.printJoin(e.decorators, e);
  const r = (t = e.key.loc) == null || (t = t.end) == null ? void 0 : t.line;
  r && this.catchUp(r), this.tsPrintClassMemberModifiers(e), this._methodHead(e);
}
function l2t(e) {
  this.word("static"), this.space(), this.tokenChar(123), e.body.length === 0 ? this.tokenChar(125) : (this.newline(), this.printSequence(e.body, e, {
    indent: !0
  }), this.rightBrace(e));
}
var Bc = {};
Object.defineProperty(Bc, "__esModule", {
  value: !0
});
Bc.ArrowFunctionExpression = b2t;
Bc.FunctionDeclaration = Bc.FunctionExpression = g2t;
Bc._functionHead = y2t;
Bc._methodHead = d2t;
Bc._param = h2t;
Bc._parameters = f2t;
Bc._params = p2t;
Bc._predicate = m2t;
var u2t = Nr();
const {
  isIdentifier: c2t
} = u2t;
function p2t(e, t, r) {
  this.print(e.typeParameters, e);
  const i = T2t.call(this, t, r);
  i && this.sourceIdentifierName(i.name, i.pos), this.tokenChar(40), this._parameters(e.params, e), this.tokenChar(41);
  const n = e.type === "ArrowFunctionExpression";
  this.print(e.returnType, e, n), this._noLineTerminator = n;
}
function f2t(e, t) {
  const r = e.length;
  for (let i = 0; i < r; i++)
    this._param(e[i], t), i < e.length - 1 && (this.tokenChar(44), this.space());
}
function h2t(e, t) {
  this.printJoin(e.decorators, e), this.print(e, t), e.optional && this.tokenChar(63), this.print(e.typeAnnotation, e);
}
function d2t(e) {
  const t = e.kind, r = e.key;
  (t === "get" || t === "set") && (this.word(t), this.space()), e.async && (this.word("async", !0), this.space()), (t === "method" || t === "init") && e.generator && this.tokenChar(42), e.computed ? (this.tokenChar(91), this.print(r, e), this.tokenChar(93)) : this.print(r, e), e.optional && this.tokenChar(63), this._params(e, e.computed && e.key.type !== "StringLiteral" ? void 0 : e.key, void 0);
}
function m2t(e, t) {
  e.predicate && (e.returnType || this.tokenChar(58), this.space(), this.print(e.predicate, e, t));
}
function y2t(e, t) {
  e.async && (this.word("async"), this._endsWithInnerRaw = !1, this.space()), this.word("function"), e.generator && (this._endsWithInnerRaw = !1, this.tokenChar(42)), this.space(), e.id && this.print(e.id, e), this._params(e, e.id, t), e.type !== "TSDeclareFunction" && this._predicate(e);
}
function g2t(e, t) {
  this._functionHead(e, t), this.space(), this.print(e.body, e);
}
function b2t(e, t) {
  e.async && (this.word("async", !0), this.space());
  let r;
  !this.format.retainLines && e.params.length === 1 && c2t(r = e.params[0]) && !v2t(e, r) ? this.print(r, e, !0) : this._params(e, void 0, t), this._predicate(e, !0), this.space(), this.printInnerComments(), this.token("=>"), this.space(), this.print(e.body, e);
}
function v2t(e, t) {
  var r, i;
  return !!(e.typeParameters || e.returnType || e.predicate || t.typeAnnotation || t.optional || (r = t.leadingComments) != null && r.length || (i = t.trailingComments) != null && i.length);
}
function T2t(e, t) {
  let r = e;
  if (!r && t) {
    const l = t.type;
    l === "VariableDeclarator" ? r = t.id : l === "AssignmentExpression" || l === "AssignmentPattern" ? r = t.left : l === "ObjectProperty" || l === "ClassProperty" ? (!t.computed || t.key.type === "StringLiteral") && (r = t.key) : (l === "ClassPrivateProperty" || l === "ClassAccessorProperty") && (r = t.key);
  }
  if (!r)
    return;
  let i;
  if (r.type === "Identifier") {
    var n, s;
    i = {
      pos: (n = r.loc) == null ? void 0 : n.start,
      name: ((s = r.loc) == null ? void 0 : s.identifierName) || r.name
    };
  } else if (r.type === "PrivateName") {
    var a;
    i = {
      pos: (a = r.loc) == null ? void 0 : a.start,
      name: "#" + r.id.name
    };
  } else if (r.type === "StringLiteral") {
    var o;
    i = {
      pos: (o = r.loc) == null ? void 0 : o.start,
      name: r.value
    };
  }
  return i;
}
var $s = {};
Object.defineProperty($s, "__esModule", {
  value: !0
});
$s.ExportAllDeclaration = D2t;
$s.ExportDefaultDeclaration = M2t;
$s.ExportDefaultSpecifier = I2t;
$s.ExportNamedDeclaration = L2t;
$s.ExportNamespaceSpecifier = O2t;
$s.ExportSpecifier = k2t;
$s.ImportAttribute = B2t;
$s.ImportDeclaration = R2t;
$s.ImportDefaultSpecifier = _2t;
$s.ImportExpression = j2t;
$s.ImportNamespaceSpecifier = F2t;
$s.ImportSpecifier = C2t;
$s._printAttributes = N2t;
var S2t = Nr();
const {
  isClassDeclaration: x2t,
  isExportDefaultSpecifier: E2t,
  isExportNamespaceSpecifier: P2t,
  isImportDefaultSpecifier: w2t,
  isImportNamespaceSpecifier: A2t,
  isStatement: oye
} = S2t;
function C2t(e) {
  (e.importKind === "type" || e.importKind === "typeof") && (this.word(e.importKind), this.space()), this.print(e.imported, e), e.local && e.local.name !== e.imported.name && (this.space(), this.word("as"), this.space(), this.print(e.local, e));
}
function _2t(e) {
  this.print(e.local, e);
}
function I2t(e) {
  this.print(e.exported, e);
}
function k2t(e) {
  e.exportKind === "type" && (this.word("type"), this.space()), this.print(e.local, e), e.exported && e.local.name !== e.exported.name && (this.space(), this.word("as"), this.space(), this.print(e.exported, e));
}
function O2t(e) {
  this.tokenChar(42), this.space(), this.word("as"), this.space(), this.print(e.exported, e);
}
let DQ = !1;
function N2t(e) {
  const {
    importAttributesKeyword: t
  } = this.format, {
    attributes: r,
    assertions: i
  } = e;
  r && !t && !DQ && (DQ = !0, console.warn('You are using import attributes, without specifying the desired output syntax.\nPlease specify the "importAttributesKeyword" generator option, whose value can be one of:\n - "with"        : `import { a } from "b" with { type: "json" };`\n - "assert"      : `import { a } from "b" assert { type: "json" };`\n - "with-legacy" : `import { a } from "b" with type: "json";`\n'));
  const n = t === "assert" || !t && i;
  if (this.word(n ? "assert" : "with"), this.space(), !n && t !== "with") {
    this.printList(r || i, e);
    return;
  }
  this.tokenChar(123), this.space(), this.printList(r || i, e), this.space(), this.tokenChar(125);
}
function D2t(e) {
  var t, r;
  this.word("export"), this.space(), e.exportKind === "type" && (this.word("type"), this.space()), this.tokenChar(42), this.space(), this.word("from"), this.space(), (t = e.attributes) != null && t.length || (r = e.assertions) != null && r.length ? (this.print(e.source, e, !0), this.space(), this._printAttributes(e)) : this.print(e.source, e), this.semicolon();
}
function lye(e, t) {
  x2t(t.declaration) && e._shouldPrintDecoratorsBeforeExport(t) && e.printJoin(t.declaration.decorators, t);
}
function L2t(e) {
  if (lye(this, e), this.word("export"), this.space(), e.declaration) {
    const i = e.declaration;
    this.print(i, e), oye(i) || this.semicolon();
  } else {
    e.exportKind === "type" && (this.word("type"), this.space());
    const i = e.specifiers.slice(0);
    let n = !1;
    for (; ; ) {
      const s = i[0];
      if (E2t(s) || P2t(s))
        n = !0, this.print(i.shift(), e), i.length && (this.tokenChar(44), this.space());
      else
        break;
    }
    if ((i.length || !i.length && !n) && (this.tokenChar(123), i.length && (this.space(), this.printList(i, e), this.space()), this.tokenChar(125)), e.source) {
      var t, r;
      this.space(), this.word("from"), this.space(), (t = e.attributes) != null && t.length || (r = e.assertions) != null && r.length ? (this.print(e.source, e, !0), this.space(), this._printAttributes(e)) : this.print(e.source, e);
    }
    this.semicolon();
  }
}
function M2t(e) {
  lye(this, e), this.word("export"), this.noIndentInnerCommentsHere(), this.space(), this.word("default"), this.space();
  const t = e.declaration;
  this.print(t, e), oye(t) || this.semicolon();
}
function R2t(e) {
  var t, r;
  this.word("import"), this.space();
  const i = e.importKind === "type" || e.importKind === "typeof";
  i ? (this.noIndentInnerCommentsHere(), this.word(e.importKind), this.space()) : e.module ? (this.noIndentInnerCommentsHere(), this.word("module"), this.space()) : e.phase && (this.noIndentInnerCommentsHere(), this.word(e.phase), this.space());
  const n = e.specifiers.slice(0), s = !!n.length;
  for (; s; ) {
    const a = n[0];
    if (w2t(a) || A2t(a))
      this.print(n.shift(), e), n.length && (this.tokenChar(44), this.space());
    else
      break;
  }
  n.length ? (this.tokenChar(123), this.space(), this.printList(n, e), this.space(), this.tokenChar(125)) : i && !s && (this.tokenChar(123), this.tokenChar(125)), (s || i) && (this.space(), this.word("from"), this.space()), (t = e.attributes) != null && t.length || (r = e.assertions) != null && r.length ? (this.print(e.source, e, !0), this.space(), this._printAttributes(e)) : this.print(e.source, e), this.semicolon();
}
function B2t(e) {
  this.print(e.key), this.tokenChar(58), this.space(), this.print(e.value);
}
function F2t(e) {
  this.tokenChar(42), this.space(), this.word("as"), this.space(), this.print(e.local, e);
}
function j2t(e) {
  this.word("import"), e.phase && (this.tokenChar(46), this.word(e.phase)), this.tokenChar(40), this.print(e.source, e), e.options != null && (this.tokenChar(44), this.space(), this.print(e.options, e)), this.tokenChar(41);
}
var Qi = {};
Object.defineProperty(Qi, "__esModule", {
  value: !0
});
Qi.ArgumentPlaceholder = V2t;
Qi.ArrayPattern = Qi.ArrayExpression = G2t;
Qi.BigIntLiteral = rkt;
Qi.BooleanLiteral = Q2t;
Qi.DecimalLiteral = ikt;
Qi.Identifier = q2t;
Qi.NullLiteral = Z2t;
Qi.NumericLiteral = ekt;
Qi.ObjectPattern = Qi.ObjectExpression = H2t;
Qi.ObjectMethod = K2t;
Qi.ObjectProperty = z2t;
Qi.PipelineBareFunction = akt;
Qi.PipelinePrimaryTopicReference = okt;
Qi.PipelineTopicExpression = skt;
Qi.RecordExpression = Y2t;
Qi.RegExpLiteral = J2t;
Qi.SpreadElement = Qi.RestElement = W2t;
Qi.StringLiteral = tkt;
Qi.TopicReference = nkt;
Qi.TupleExpression = X2t;
var $2t = Nr(), uye = nde();
const {
  isAssignmentPattern: U2t,
  isIdentifier: b3
} = $2t;
function q2t(e) {
  var t;
  this.sourceIdentifierName(((t = e.loc) == null ? void 0 : t.identifierName) || e.name), this.word(e.name);
}
function V2t() {
  this.tokenChar(63);
}
function W2t(e) {
  this.token("..."), this.print(e.argument, e);
}
function H2t(e) {
  const t = e.properties;
  this.tokenChar(123), t.length && (this.space(), this.printList(t, e, {
    indent: !0,
    statement: !0
  }), this.space()), this.sourceWithOffset("end", e.loc, -1), this.tokenChar(125);
}
function K2t(e) {
  this.printJoin(e.decorators, e), this._methodHead(e), this.space(), this.print(e.body, e);
}
function z2t(e) {
  if (this.printJoin(e.decorators, e), e.computed)
    this.tokenChar(91), this.print(e.key, e), this.tokenChar(93);
  else {
    if (U2t(e.value) && b3(e.key) && e.key.name === e.value.left.name) {
      this.print(e.value, e);
      return;
    }
    if (this.print(e.key, e), e.shorthand && b3(e.key) && b3(e.value) && e.key.name === e.value.name)
      return;
  }
  this.tokenChar(58), this.space(), this.print(e.value, e);
}
function G2t(e) {
  const t = e.elements, r = t.length;
  this.tokenChar(91);
  for (let i = 0; i < t.length; i++) {
    const n = t[i];
    n ? (i > 0 && this.space(), this.print(n, e), i < r - 1 && this.tokenChar(44)) : this.tokenChar(44);
  }
  this.tokenChar(93);
}
function Y2t(e) {
  const t = e.properties;
  let r, i;
  if (this.format.recordAndTupleSyntaxType === "bar")
    r = "{|", i = "|}";
  else {
    if (this.format.recordAndTupleSyntaxType !== "hash" && this.format.recordAndTupleSyntaxType != null)
      throw new Error('The "recordAndTupleSyntaxType" generator option must be "bar" or "hash" ('.concat(JSON.stringify(this.format.recordAndTupleSyntaxType), " received)."));
    r = "#{", i = "}";
  }
  this.token(r), t.length && (this.space(), this.printList(t, e, {
    indent: !0,
    statement: !0
  }), this.space()), this.token(i);
}
function X2t(e) {
  const t = e.elements, r = t.length;
  let i, n;
  if (this.format.recordAndTupleSyntaxType === "bar")
    i = "[|", n = "|]";
  else if (this.format.recordAndTupleSyntaxType === "hash")
    i = "#[", n = "]";
  else
    throw new Error("".concat(this.format.recordAndTupleSyntaxType, " is not a valid recordAndTuple syntax type"));
  this.token(i);
  for (let s = 0; s < t.length; s++) {
    const a = t[s];
    a && (s > 0 && this.space(), this.print(a, e), s < r - 1 && this.tokenChar(44));
  }
  this.token(n);
}
function J2t(e) {
  this.word("/".concat(e.pattern, "/").concat(e.flags));
}
function Q2t(e) {
  this.word(e.value ? "true" : "false");
}
function Z2t() {
  this.word("null");
}
function ekt(e) {
  const t = this.getPossibleRaw(e), r = this.format.jsescOption, i = e.value, n = i + "";
  r.numbers ? this.number(uye(i, r), i) : t == null ? this.number(n, i) : this.format.minified ? this.number(t.length < n.length ? t : n, i) : this.number(t, i);
}
function tkt(e) {
  const t = this.getPossibleRaw(e);
  if (!this.format.minified && t !== void 0) {
    this.token(t);
    return;
  }
  const r = uye(e.value, this.format.jsescOption);
  this.token(r);
}
function rkt(e) {
  const t = this.getPossibleRaw(e);
  if (!this.format.minified && t !== void 0) {
    this.word(t);
    return;
  }
  this.word(e.value + "n");
}
function ikt(e) {
  const t = this.getPossibleRaw(e);
  if (!this.format.minified && t !== void 0) {
    this.word(t);
    return;
  }
  this.word(e.value + "m");
}
const LQ = /* @__PURE__ */ new Set(["^^", "@@", "^", "%", "#"]);
function nkt() {
  const {
    topicToken: e
  } = this.format;
  if (LQ.has(e))
    this.token(e);
  else {
    const t = JSON.stringify(e), r = Array.from(LQ, (i) => JSON.stringify(i));
    throw new Error('The "topicToken" generator option must be one of ' + "".concat(r.join(", "), " (").concat(t, " received instead)."));
  }
}
function skt(e) {
  this.print(e.expression, e);
}
function akt(e) {
  this.print(e.callee, e);
}
function okt() {
  this.tokenChar(35);
}
var cye = {};
(function(e) {
  Object.defineProperty(e, "__esModule", {
    value: !0
  }), e.AnyTypeAnnotation = a, e.ArrayTypeAnnotation = o, e.BooleanLiteralTypeAnnotation = u, e.BooleanTypeAnnotation = l, e.DeclareClass = f, e.DeclareExportAllDeclaration = D, e.DeclareExportDeclaration = C, e.DeclareFunction = h, e.DeclareInterface = y, e.DeclareModule = v, e.DeclareModuleExports = T, e.DeclareOpaqueType = P, e.DeclareTypeAlias = S, e.DeclareVariable = x, e.DeclaredPredicate = g, e.EmptyTypeAnnotation = Z, e.EnumBooleanBody = L, e.EnumBooleanMember = M, e.EnumDeclaration = w, e.EnumDefaultedMember = j, e.EnumNumberBody = O, e.EnumNumberMember = R, e.EnumStringBody = F, e.EnumStringMember = $, e.EnumSymbolBody = q, e.ExistsTypeAnnotation = K, e.FunctionTypeAnnotation = z, e.FunctionTypeParam = W, e.IndexedAccessType = X, e.InferredPredicate = m, e.InterfaceDeclaration = ne, e.GenericTypeAnnotation = e.ClassImplements = e.InterfaceExtends = Y, e.InterfaceTypeAnnotation = be, e.IntersectionTypeAnnotation = ye, e.MixedTypeAnnotation = fe, e.NullLiteralTypeAnnotation = c, e.NullableTypeAnnotation = ue, Object.defineProperty(e, "NumberLiteralTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return i.NumericLiteral;
    }
  }), e.NumberTypeAnnotation = me, e.ObjectTypeAnnotation = re, e.ObjectTypeCallProperty = ze, e.ObjectTypeIndexer = Ze, e.ObjectTypeInternalSlot = Te, e.ObjectTypeProperty = pt, e.ObjectTypeSpreadProperty = ut, e.OpaqueType = se, e.OptionalIndexedAccessType = ce, e.QualifiedTypeIdentifier = bt, Object.defineProperty(e, "StringLiteralTypeAnnotation", {
    enumerable: !0,
    get: function() {
      return i.StringLiteral;
    }
  }), e.StringTypeAnnotation = xe, e.SymbolTypeAnnotation = vt, e.ThisTypeAnnotation = Pe, e.TupleTypeAnnotation = ve, e.TypeAlias = st, e.TypeAnnotation = Se, e.TypeCastExpression = $e, e.TypeParameter = te, e.TypeParameterDeclaration = e.TypeParameterInstantiation = oe, e.TypeofTypeAnnotation = Xe, e.UnionTypeAnnotation = pe, e.Variance = ie, e.VoidTypeAnnotation = Q, e._interfaceish = G, e._variance = le;
  var t = Nr(), r = $s, i = Qi;
  const {
    isDeclareExportDeclaration: n,
    isStatement: s
  } = t;
  function a() {
    this.word("any");
  }
  function o(U) {
    this.print(U.elementType, U, !0), this.tokenChar(91), this.tokenChar(93);
  }
  function l() {
    this.word("boolean");
  }
  function u(U) {
    this.word(U.value ? "true" : "false");
  }
  function c() {
    this.word("null");
  }
  function f(U, Ee) {
    n(Ee) || (this.word("declare"), this.space()), this.word("class"), this.space(), this._interfaceish(U);
  }
  function h(U, Ee) {
    n(Ee) || (this.word("declare"), this.space()), this.word("function"), this.space(), this.print(U.id, U), this.print(U.id.typeAnnotation.typeAnnotation, U), U.predicate && (this.space(), this.print(U.predicate, U)), this.semicolon();
  }
  function m() {
    this.tokenChar(37), this.word("checks");
  }
  function g(U) {
    this.tokenChar(37), this.word("checks"), this.tokenChar(40), this.print(U.value, U), this.tokenChar(41);
  }
  function y(U) {
    this.word("declare"), this.space(), this.InterfaceDeclaration(U);
  }
  function v(U) {
    this.word("declare"), this.space(), this.word("module"), this.space(), this.print(U.id, U), this.space(), this.print(U.body, U);
  }
  function T(U) {
    this.word("declare"), this.space(), this.word("module"), this.tokenChar(46), this.word("exports"), this.print(U.typeAnnotation, U);
  }
  function S(U) {
    this.word("declare"), this.space(), this.TypeAlias(U);
  }
  function P(U, Ee) {
    n(Ee) || (this.word("declare"), this.space()), this.OpaqueType(U);
  }
  function x(U, Ee) {
    n(Ee) || (this.word("declare"), this.space()), this.word("var"), this.space(), this.print(U.id, U), this.print(U.id.typeAnnotation, U), this.semicolon();
  }
  function C(U) {
    this.word("declare"), this.space(), this.word("export"), this.space(), U.default && (this.word("default"), this.space()), V.call(this, U);
  }
  function D(U) {
    this.word("declare"), this.space(), r.ExportAllDeclaration.call(this, U);
  }
  function w(U) {
    const {
      id: Ee,
      body: Qe
    } = U;
    this.word("enum"), this.space(), this.print(Ee, U), this.print(Qe, U);
  }
  function A(U, Ee, Qe) {
    Qe && (U.space(), U.word("of"), U.space(), U.word(Ee)), U.space();
  }
  function I(U, Ee) {
    const {
      members: Qe
    } = Ee;
    U.token("{"), U.indent(), U.newline();
    for (const ft of Qe)
      U.print(ft, Ee), U.newline();
    Ee.hasUnknownMembers && (U.token("..."), U.newline()), U.dedent(), U.token("}");
  }
  function L(U) {
    const {
      explicitType: Ee
    } = U;
    A(this, "boolean", Ee), I(this, U);
  }
  function O(U) {
    const {
      explicitType: Ee
    } = U;
    A(this, "number", Ee), I(this, U);
  }
  function F(U) {
    const {
      explicitType: Ee
    } = U;
    A(this, "string", Ee), I(this, U);
  }
  function q(U) {
    A(this, "symbol", !0), I(this, U);
  }
  function j(U) {
    const {
      id: Ee
    } = U;
    this.print(Ee, U), this.tokenChar(44);
  }
  function N(U, Ee) {
    const {
      id: Qe,
      init: ft
    } = Ee;
    U.print(Qe, Ee), U.space(), U.token("="), U.space(), U.print(ft, Ee), U.token(",");
  }
  function M(U) {
    N(this, U);
  }
  function R(U) {
    N(this, U);
  }
  function $(U) {
    N(this, U);
  }
  function V(U) {
    if (U.declaration) {
      const Ee = U.declaration;
      this.print(Ee, U), s(Ee) || this.semicolon();
    } else
      this.tokenChar(123), U.specifiers.length && (this.space(), this.printList(U.specifiers, U), this.space()), this.tokenChar(125), U.source && (this.space(), this.word("from"), this.space(), this.print(U.source, U)), this.semicolon();
  }
  function K() {
    this.tokenChar(42);
  }
  function z(U, Ee) {
    this.print(U.typeParameters, U), this.tokenChar(40), U.this && (this.word("this"), this.tokenChar(58), this.space(), this.print(U.this.typeAnnotation, U), (U.params.length || U.rest) && (this.tokenChar(44), this.space())), this.printList(U.params, U), U.rest && (U.params.length && (this.tokenChar(44), this.space()), this.token("..."), this.print(U.rest, U)), this.tokenChar(41);
    const Qe = Ee == null ? void 0 : Ee.type;
    Qe != null && (Qe === "ObjectTypeCallProperty" || Qe === "ObjectTypeInternalSlot" || Qe === "DeclareFunction" || Qe === "ObjectTypeProperty" && Ee.method) ? this.tokenChar(58) : (this.space(), this.token("=>")), this.space(), this.print(U.returnType, U);
  }
  function W(U) {
    this.print(U.name, U), U.optional && this.tokenChar(63), U.name && (this.tokenChar(58), this.space()), this.print(U.typeAnnotation, U);
  }
  function Y(U) {
    this.print(U.id, U), this.print(U.typeParameters, U, !0);
  }
  function G(U) {
    var Ee;
    if (this.print(U.id, U), this.print(U.typeParameters, U), (Ee = U.extends) != null && Ee.length && (this.space(), this.word("extends"), this.space(), this.printList(U.extends, U)), U.type === "DeclareClass") {
      var Qe, ft;
      (Qe = U.mixins) != null && Qe.length && (this.space(), this.word("mixins"), this.space(), this.printList(U.mixins, U)), (ft = U.implements) != null && ft.length && (this.space(), this.word("implements"), this.space(), this.printList(U.implements, U));
    }
    this.space(), this.print(U.body, U);
  }
  function le(U) {
    var Ee;
    const Qe = (Ee = U.variance) == null ? void 0 : Ee.kind;
    Qe != null && (Qe === "plus" ? this.tokenChar(43) : Qe === "minus" && this.tokenChar(45));
  }
  function ne(U) {
    this.word("interface"), this.space(), this._interfaceish(U);
  }
  function ae() {
    this.space(), this.tokenChar(38), this.space();
  }
  function be(U) {
    var Ee;
    this.word("interface"), (Ee = U.extends) != null && Ee.length && (this.space(), this.word("extends"), this.space(), this.printList(U.extends, U)), this.space(), this.print(U.body, U);
  }
  function ye(U) {
    this.printJoin(U.types, U, {
      separator: ae
    });
  }
  function fe() {
    this.word("mixed");
  }
  function Z() {
    this.word("empty");
  }
  function ue(U) {
    this.tokenChar(63), this.print(U.typeAnnotation, U);
  }
  function me() {
    this.word("number");
  }
  function xe() {
    this.word("string");
  }
  function Pe() {
    this.word("this");
  }
  function ve(U) {
    this.tokenChar(91), this.printList(U.types, U), this.tokenChar(93);
  }
  function Xe(U) {
    this.word("typeof"), this.space(), this.print(U.argument, U);
  }
  function st(U) {
    this.word("type"), this.space(), this.print(U.id, U), this.print(U.typeParameters, U), this.space(), this.tokenChar(61), this.space(), this.print(U.right, U), this.semicolon();
  }
  function Se(U) {
    this.tokenChar(58), this.space(), U.optional && this.tokenChar(63), this.print(U.typeAnnotation, U);
  }
  function oe(U) {
    this.tokenChar(60), this.printList(U.params, U, {}), this.tokenChar(62);
  }
  function te(U) {
    this._variance(U), this.word(U.name), U.bound && this.print(U.bound, U), U.default && (this.space(), this.tokenChar(61), this.space(), this.print(U.default, U));
  }
  function se(U) {
    this.word("opaque"), this.space(), this.word("type"), this.space(), this.print(U.id, U), this.print(U.typeParameters, U), U.supertype && (this.tokenChar(58), this.space(), this.print(U.supertype, U)), U.impltype && (this.space(), this.tokenChar(61), this.space(), this.print(U.impltype, U)), this.semicolon();
  }
  function re(U) {
    U.exact ? this.token("{|") : this.tokenChar(123);
    const Ee = [...U.properties, ...U.callProperties || [], ...U.indexers || [], ...U.internalSlots || []];
    Ee.length && (this.newline(), this.space(), this.printJoin(Ee, U, {
      addNewlines(Qe) {
        if (Qe && !Ee[0])
          return 1;
      },
      indent: !0,
      statement: !0,
      iterator: () => {
        (Ee.length !== 1 || U.inexact) && (this.tokenChar(44), this.space());
      }
    }), this.space()), U.inexact && (this.indent(), this.token("..."), Ee.length && this.newline(), this.dedent()), U.exact ? this.token("|}") : this.tokenChar(125);
  }
  function Te(U) {
    U.static && (this.word("static"), this.space()), this.tokenChar(91), this.tokenChar(91), this.print(U.id, U), this.tokenChar(93), this.tokenChar(93), U.optional && this.tokenChar(63), U.method || (this.tokenChar(58), this.space()), this.print(U.value, U);
  }
  function ze(U) {
    U.static && (this.word("static"), this.space()), this.print(U.value, U);
  }
  function Ze(U) {
    U.static && (this.word("static"), this.space()), this._variance(U), this.tokenChar(91), U.id && (this.print(U.id, U), this.tokenChar(58), this.space()), this.print(U.key, U), this.tokenChar(93), this.tokenChar(58), this.space(), this.print(U.value, U);
  }
  function pt(U) {
    U.proto && (this.word("proto"), this.space()), U.static && (this.word("static"), this.space()), (U.kind === "get" || U.kind === "set") && (this.word(U.kind), this.space()), this._variance(U), this.print(U.key, U), U.optional && this.tokenChar(63), U.method || (this.tokenChar(58), this.space()), this.print(U.value, U);
  }
  function ut(U) {
    this.token("..."), this.print(U.argument, U);
  }
  function bt(U) {
    this.print(U.qualification, U), this.tokenChar(46), this.print(U.id, U);
  }
  function vt() {
    this.word("symbol");
  }
  function ge() {
    this.space(), this.tokenChar(124), this.space();
  }
  function pe(U) {
    this.printJoin(U.types, U, {
      separator: ge
    });
  }
  function $e(U) {
    this.tokenChar(40), this.print(U.expression, U), this.print(U.typeAnnotation, U), this.tokenChar(41);
  }
  function ie(U) {
    U.kind === "plus" ? this.tokenChar(43) : this.tokenChar(45);
  }
  function Q() {
    this.word("void");
  }
  function X(U) {
    this.print(U.objectType, U, !0), this.tokenChar(91), this.print(U.indexType, U), this.tokenChar(93);
  }
  function ce(U) {
    this.print(U.objectType, U), U.optional && this.token("?."), this.tokenChar(91), this.print(U.indexType, U), this.tokenChar(93);
  }
})(cye);
var jf = {};
Object.defineProperty(jf, "__esModule", {
  value: !0
});
jf.BlockStatement = ckt;
jf.Directive = pkt;
jf.DirectiveLiteral = dkt;
jf.File = lkt;
jf.InterpreterDirective = mkt;
jf.Placeholder = ykt;
jf.Program = ukt;
function lkt(e) {
  e.program && this.print(e.program.interpreter, e), this.print(e.program, e);
}
function ukt(e) {
  var t;
  this.noIndentInnerCommentsHere(), this.printInnerComments();
  const r = (t = e.directives) == null ? void 0 : t.length;
  if (r) {
    var i;
    const n = e.body.length ? 2 : 1;
    this.printSequence(e.directives, e, {
      trailingCommentsLineOffset: n
    }), (i = e.directives[r - 1].trailingComments) != null && i.length || this.newline(n);
  }
  this.printSequence(e.body, e);
}
function ckt(e) {
  var t;
  this.tokenChar(123);
  const r = (t = e.directives) == null ? void 0 : t.length;
  if (r) {
    var i;
    const n = e.body.length ? 2 : 1;
    this.printSequence(e.directives, e, {
      indent: !0,
      trailingCommentsLineOffset: n
    }), (i = e.directives[r - 1].trailingComments) != null && i.length || this.newline(n);
  }
  this.printSequence(e.body, e, {
    indent: !0
  }), this.rightBrace(e);
}
function pkt(e) {
  this.print(e.value, e), this.semicolon();
}
const fkt = /(?:^|[^\\])(?:\\\\)*'/, hkt = /(?:^|[^\\])(?:\\\\)*"/;
function dkt(e) {
  const t = this.getPossibleRaw(e);
  if (!this.format.minified && t !== void 0) {
    this.token(t);
    return;
  }
  const {
    value: r
  } = e;
  if (!hkt.test(r))
    this.token('"'.concat(r, '"'));
  else if (!fkt.test(r))
    this.token("'".concat(r, "'"));
  else
    throw new Error("Malformed AST: it is not possible to print a directive containing both unescaped single and double quotes.");
}
function mkt(e) {
  this.token("#!".concat(e.value)), this.newline(1, !0);
}
function ykt(e) {
  this.token("%%"), this.print(e.name), this.token("%%"), e.expectedNode === "Statement" && this.semicolon();
}
var ws = {};
Object.defineProperty(ws, "__esModule", {
  value: !0
});
ws.JSXAttribute = gkt;
ws.JSXClosingElement = _kt;
ws.JSXClosingFragment = Nkt;
ws.JSXElement = wkt;
ws.JSXEmptyExpression = Ikt;
ws.JSXExpressionContainer = xkt;
ws.JSXFragment = kkt;
ws.JSXIdentifier = bkt;
ws.JSXMemberExpression = Tkt;
ws.JSXNamespacedName = vkt;
ws.JSXOpeningElement = Ckt;
ws.JSXOpeningFragment = Okt;
ws.JSXSpreadAttribute = Skt;
ws.JSXSpreadChild = Ekt;
ws.JSXText = Pkt;
function gkt(e) {
  this.print(e.name, e), e.value && (this.tokenChar(61), this.print(e.value, e));
}
function bkt(e) {
  this.word(e.name);
}
function vkt(e) {
  this.print(e.namespace, e), this.tokenChar(58), this.print(e.name, e);
}
function Tkt(e) {
  this.print(e.object, e), this.tokenChar(46), this.print(e.property, e);
}
function Skt(e) {
  this.tokenChar(123), this.token("..."), this.print(e.argument, e), this.tokenChar(125);
}
function xkt(e) {
  this.tokenChar(123), this.print(e.expression, e), this.tokenChar(125);
}
function Ekt(e) {
  this.tokenChar(123), this.token("..."), this.print(e.expression, e), this.tokenChar(125);
}
function Pkt(e) {
  const t = this.getPossibleRaw(e);
  t !== void 0 ? this.token(t, !0) : this.token(e.value, !0);
}
function wkt(e) {
  const t = e.openingElement;
  if (this.print(t, e), !t.selfClosing) {
    this.indent();
    for (const r of e.children)
      this.print(r, e);
    this.dedent(), this.print(e.closingElement, e);
  }
}
function Akt() {
  this.space();
}
function Ckt(e) {
  this.tokenChar(60), this.print(e.name, e), this.print(e.typeParameters, e), e.attributes.length > 0 && (this.space(), this.printJoin(e.attributes, e, {
    separator: Akt
  })), e.selfClosing ? (this.space(), this.token("/>")) : this.tokenChar(62);
}
function _kt(e) {
  this.token("</"), this.print(e.name, e), this.tokenChar(62);
}
function Ikt() {
  this.printInnerComments();
}
function kkt(e) {
  this.print(e.openingFragment, e), this.indent();
  for (const t of e.children)
    this.print(t, e);
  this.dedent(), this.print(e.closingFragment, e);
}
function Okt() {
  this.tokenChar(60), this.tokenChar(62);
}
function Nkt() {
  this.token("</"), this.tokenChar(62);
}
var Vt = {};
Object.defineProperty(Vt, "__esModule", {
  value: !0
});
Vt.TSAnyKeyword = Kkt;
Vt.TSArrayType = dOt;
Vt.TSSatisfiesExpression = Vt.TSAsExpression = NOt;
Vt.TSBigIntKeyword = zkt;
Vt.TSBooleanKeyword = Jkt;
Vt.TSCallSignatureDeclaration = $kt;
Vt.TSConditionalType = SOt;
Vt.TSConstructSignatureDeclaration = Ukt;
Vt.TSConstructorType = oOt;
Vt.TSDeclareFunction = Bkt;
Vt.TSDeclareMethod = Fkt;
Vt.TSEnumDeclaration = MOt;
Vt.TSEnumMember = ROt;
Vt.TSExportAssignment = VOt;
Vt.TSExpressionWithTypeArguments = _Ot;
Vt.TSExternalModuleReference = UOt;
Vt.TSFunctionType = aOt;
Vt.TSImportEqualsDeclaration = $Ot;
Vt.TSImportType = jOt;
Vt.TSIndexSignature = Hkt;
Vt.TSIndexedAccessType = wOt;
Vt.TSInferType = xOt;
Vt.TSInstantiationExpression = LOt;
Vt.TSInterfaceBody = kOt;
Vt.TSInterfaceDeclaration = IOt;
Vt.TSIntersectionType = TOt;
Vt.TSIntrinsicKeyword = nOt;
Vt.TSLiteralType = COt;
Vt.TSMappedType = AOt;
Vt.TSMethodSignature = Wkt;
Vt.TSModuleBlock = FOt;
Vt.TSModuleDeclaration = BOt;
Vt.TSNamedTupleMember = bOt;
Vt.TSNamespaceExportDeclaration = WOt;
Vt.TSNeverKeyword = iOt;
Vt.TSNonNullExpression = qOt;
Vt.TSNullKeyword = rOt;
Vt.TSNumberKeyword = Ykt;
Vt.TSObjectKeyword = Xkt;
Vt.TSOptionalType = yOt;
Vt.TSParameterProperty = Rkt;
Vt.TSParenthesizedType = EOt;
Vt.TSPropertySignature = qkt;
Vt.TSQualifiedName = jkt;
Vt.TSRestType = gOt;
Vt.TSStringKeyword = Qkt;
Vt.TSSymbolKeyword = Zkt;
Vt.TSThisType = sOt;
Vt.TSTupleType = mOt;
Vt.TSTypeAliasDeclaration = OOt;
Vt.TSTypeAnnotation = Dkt;
Vt.TSTypeAssertion = DOt;
Vt.TSTypeLiteral = fOt;
Vt.TSTypeOperator = POt;
Vt.TSTypeParameter = Mkt;
Vt.TSTypeParameterDeclaration = Vt.TSTypeParameterInstantiation = Lkt;
Vt.TSTypePredicate = cOt;
Vt.TSTypeQuery = pOt;
Vt.TSTypeReference = uOt;
Vt.TSUndefinedKeyword = tOt;
Vt.TSUnionType = vOt;
Vt.TSUnknownKeyword = Gkt;
Vt.TSVoidKeyword = eOt;
Vt.tsPrintClassMemberModifiers = KOt;
Vt.tsPrintFunctionOrConstructorType = lOt;
Vt.tsPrintPropertyOrMethodName = Vkt;
Vt.tsPrintSignatureDeclarationBase = HOt;
Vt.tsPrintTypeLiteralOrInterfaceBody = hOt;
function Dkt(e) {
  this.tokenChar(58), this.space(), e.optional && this.tokenChar(63), this.print(e.typeAnnotation, e);
}
function Lkt(e, t) {
  this.tokenChar(60), this.printList(e.params, e, {}), t.type === "ArrowFunctionExpression" && e.params.length === 1 && this.tokenChar(44), this.tokenChar(62);
}
function Mkt(e) {
  e.in && (this.word("in"), this.space()), e.out && (this.word("out"), this.space()), this.word(e.name), e.constraint && (this.space(), this.word("extends"), this.space(), this.print(e.constraint, e)), e.default && (this.space(), this.tokenChar(61), this.space(), this.print(e.default, e));
}
function Rkt(e) {
  e.accessibility && (this.word(e.accessibility), this.space()), e.readonly && (this.word("readonly"), this.space()), this._param(e.parameter);
}
function Bkt(e, t) {
  e.declare && (this.word("declare"), this.space()), this._functionHead(e, t), this.tokenChar(59);
}
function Fkt(e) {
  this._classMethodHead(e), this.tokenChar(59);
}
function jkt(e) {
  this.print(e.left, e), this.tokenChar(46), this.print(e.right, e);
}
function $kt(e) {
  this.tsPrintSignatureDeclarationBase(e), this.tokenChar(59);
}
function Ukt(e) {
  this.word("new"), this.space(), this.tsPrintSignatureDeclarationBase(e), this.tokenChar(59);
}
function qkt(e) {
  const {
    readonly: t
  } = e;
  t && (this.word("readonly"), this.space()), this.tsPrintPropertyOrMethodName(e), this.print(e.typeAnnotation, e), this.tokenChar(59);
}
function Vkt(e) {
  e.computed && this.tokenChar(91), this.print(e.key, e), e.computed && this.tokenChar(93), e.optional && this.tokenChar(63);
}
function Wkt(e) {
  const {
    kind: t
  } = e;
  (t === "set" || t === "get") && (this.word(t), this.space()), this.tsPrintPropertyOrMethodName(e), this.tsPrintSignatureDeclarationBase(e), this.tokenChar(59);
}
function Hkt(e) {
  const {
    readonly: t,
    static: r
  } = e;
  r && (this.word("static"), this.space()), t && (this.word("readonly"), this.space()), this.tokenChar(91), this._parameters(e.parameters, e), this.tokenChar(93), this.print(e.typeAnnotation, e), this.tokenChar(59);
}
function Kkt() {
  this.word("any");
}
function zkt() {
  this.word("bigint");
}
function Gkt() {
  this.word("unknown");
}
function Ykt() {
  this.word("number");
}
function Xkt() {
  this.word("object");
}
function Jkt() {
  this.word("boolean");
}
function Qkt() {
  this.word("string");
}
function Zkt() {
  this.word("symbol");
}
function eOt() {
  this.word("void");
}
function tOt() {
  this.word("undefined");
}
function rOt() {
  this.word("null");
}
function iOt() {
  this.word("never");
}
function nOt() {
  this.word("intrinsic");
}
function sOt() {
  this.word("this");
}
function aOt(e) {
  this.tsPrintFunctionOrConstructorType(e);
}
function oOt(e) {
  e.abstract && (this.word("abstract"), this.space()), this.word("new"), this.space(), this.tsPrintFunctionOrConstructorType(e);
}
function lOt(e) {
  const {
    typeParameters: t
  } = e, r = e.parameters;
  this.print(t, e), this.tokenChar(40), this._parameters(r, e), this.tokenChar(41), this.space(), this.token("=>"), this.space();
  const i = e.typeAnnotation;
  this.print(i.typeAnnotation, e);
}
function uOt(e) {
  this.print(e.typeName, e, !0), this.print(e.typeParameters, e, !0);
}
function cOt(e) {
  e.asserts && (this.word("asserts"), this.space()), this.print(e.parameterName), e.typeAnnotation && (this.space(), this.word("is"), this.space(), this.print(e.typeAnnotation.typeAnnotation));
}
function pOt(e) {
  this.word("typeof"), this.space(), this.print(e.exprName), e.typeParameters && this.print(e.typeParameters, e);
}
function fOt(e) {
  this.tsPrintTypeLiteralOrInterfaceBody(e.members, e);
}
function hOt(e, t) {
  V5(this, e, t);
}
function V5(e, t, r) {
  if (e.token("{"), t.length) {
    e.indent(), e.newline();
    for (const i of t)
      e.print(i, r), e.newline();
    e.dedent();
  }
  e.rightBrace(r);
}
function dOt(e) {
  this.print(e.elementType, e, !0), this.token("[]");
}
function mOt(e) {
  this.tokenChar(91), this.printList(e.elementTypes, e), this.tokenChar(93);
}
function yOt(e) {
  this.print(e.typeAnnotation, e), this.tokenChar(63);
}
function gOt(e) {
  this.token("..."), this.print(e.typeAnnotation, e);
}
function bOt(e) {
  this.print(e.label, e), e.optional && this.tokenChar(63), this.tokenChar(58), this.space(), this.print(e.elementType, e);
}
function vOt(e) {
  pye(this, e, "|");
}
function TOt(e) {
  pye(this, e, "&");
}
function pye(e, t, r) {
  e.printJoin(t.types, t, {
    separator() {
      this.space(), this.token(r), this.space();
    }
  });
}
function SOt(e) {
  this.print(e.checkType), this.space(), this.word("extends"), this.space(), this.print(e.extendsType), this.space(), this.tokenChar(63), this.space(), this.print(e.trueType), this.space(), this.tokenChar(58), this.space(), this.print(e.falseType);
}
function xOt(e) {
  this.token("infer"), this.space(), this.print(e.typeParameter);
}
function EOt(e) {
  this.tokenChar(40), this.print(e.typeAnnotation, e), this.tokenChar(41);
}
function POt(e) {
  this.word(e.operator), this.space(), this.print(e.typeAnnotation, e);
}
function wOt(e) {
  this.print(e.objectType, e, !0), this.tokenChar(91), this.print(e.indexType, e), this.tokenChar(93);
}
function AOt(e) {
  const {
    nameType: t,
    optional: r,
    readonly: i,
    typeParameter: n
  } = e;
  this.tokenChar(123), this.space(), i && (MQ(this, i), this.word("readonly"), this.space()), this.tokenChar(91), this.word(n.name), this.space(), this.word("in"), this.space(), this.print(n.constraint, n), t && (this.space(), this.word("as"), this.space(), this.print(t, e)), this.tokenChar(93), r && (MQ(this, r), this.tokenChar(63)), this.tokenChar(58), this.space(), this.print(e.typeAnnotation, e), this.space(), this.tokenChar(125);
}
function MQ(e, t) {
  t !== !0 && e.token(t);
}
function COt(e) {
  this.print(e.literal, e);
}
function _Ot(e) {
  this.print(e.expression, e), this.print(e.typeParameters, e);
}
function IOt(e) {
  const {
    declare: t,
    id: r,
    typeParameters: i,
    extends: n,
    body: s
  } = e;
  t && (this.word("declare"), this.space()), this.word("interface"), this.space(), this.print(r, e), this.print(i, e), n != null && n.length && (this.space(), this.word("extends"), this.space(), this.printList(n, e)), this.space(), this.print(s, e);
}
function kOt(e) {
  this.tsPrintTypeLiteralOrInterfaceBody(e.body, e);
}
function OOt(e) {
  const {
    declare: t,
    id: r,
    typeParameters: i,
    typeAnnotation: n
  } = e;
  t && (this.word("declare"), this.space()), this.word("type"), this.space(), this.print(r, e), this.print(i, e), this.space(), this.tokenChar(61), this.space(), this.print(n, e), this.tokenChar(59);
}
function NOt(e) {
  var t;
  const {
    type: r,
    expression: i,
    typeAnnotation: n
  } = e, s = !!((t = i.trailingComments) != null && t.length);
  this.print(i, e, !0, void 0, s), this.space(), this.word(r === "TSAsExpression" ? "as" : "satisfies"), this.space(), this.print(n, e);
}
function DOt(e) {
  const {
    typeAnnotation: t,
    expression: r
  } = e;
  this.tokenChar(60), this.print(t, e), this.tokenChar(62), this.space(), this.print(r, e);
}
function LOt(e) {
  this.print(e.expression, e), this.print(e.typeParameters, e);
}
function MOt(e) {
  const {
    declare: t,
    const: r,
    id: i,
    members: n
  } = e;
  t && (this.word("declare"), this.space()), r && (this.word("const"), this.space()), this.word("enum"), this.space(), this.print(i, e), this.space(), V5(this, n, e);
}
function ROt(e) {
  const {
    id: t,
    initializer: r
  } = e;
  this.print(t, e), r && (this.space(), this.tokenChar(61), this.space(), this.print(r, e)), this.tokenChar(44);
}
function BOt(e) {
  const {
    declare: t,
    id: r
  } = e;
  if (t && (this.word("declare"), this.space()), e.global || (this.word(r.type === "Identifier" ? "namespace" : "module"), this.space()), this.print(r, e), !e.body) {
    this.tokenChar(59);
    return;
  }
  let i = e.body;
  for (; i.type === "TSModuleDeclaration"; )
    this.tokenChar(46), this.print(i.id, i), i = i.body;
  this.space(), this.print(i, e);
}
function FOt(e) {
  V5(this, e.body, e);
}
function jOt(e) {
  const {
    argument: t,
    qualifier: r,
    typeParameters: i
  } = e;
  this.word("import"), this.tokenChar(40), this.print(t, e), this.tokenChar(41), r && (this.tokenChar(46), this.print(r, e)), i && this.print(i, e);
}
function $Ot(e) {
  const {
    isExport: t,
    id: r,
    moduleReference: i
  } = e;
  t && (this.word("export"), this.space()), this.word("import"), this.space(), this.print(r, e), this.space(), this.tokenChar(61), this.space(), this.print(i, e), this.tokenChar(59);
}
function UOt(e) {
  this.token("require("), this.print(e.expression, e), this.tokenChar(41);
}
function qOt(e) {
  this.print(e.expression, e), this.tokenChar(33);
}
function VOt(e) {
  this.word("export"), this.space(), this.tokenChar(61), this.space(), this.print(e.expression, e), this.tokenChar(59);
}
function WOt(e) {
  this.word("export"), this.space(), this.word("as"), this.space(), this.word("namespace"), this.space(), this.print(e.id, e);
}
function HOt(e) {
  const {
    typeParameters: t
  } = e, r = e.parameters;
  this.print(t, e), this.tokenChar(40), this._parameters(r, e), this.tokenChar(41);
  const i = e.typeAnnotation;
  this.print(i, e);
}
function KOt(e) {
  const t = e.type === "ClassAccessorProperty" || e.type === "ClassProperty";
  t && e.declare && (this.word("declare"), this.space()), e.accessibility && (this.word(e.accessibility), this.space()), e.static && (this.word("static"), this.space()), e.override && (this.word("override"), this.space()), e.abstract && (this.word("abstract"), this.space()), t && e.readonly && (this.word("readonly"), this.space());
}
(function(e) {
  Object.defineProperty(e, "__esModule", {
    value: !0
  });
  var t = lS;
  Object.keys(t).forEach(function(h) {
    h === "default" || h === "__esModule" || h in e && e[h] === t[h] || Object.defineProperty(e, h, {
      enumerable: !0,
      get: function() {
        return t[h];
      }
    });
  });
  var r = ki;
  Object.keys(r).forEach(function(h) {
    h === "default" || h === "__esModule" || h in e && e[h] === r[h] || Object.defineProperty(e, h, {
      enumerable: !0,
      get: function() {
        return r[h];
      }
    });
  });
  var i = An;
  Object.keys(i).forEach(function(h) {
    h === "default" || h === "__esModule" || h in e && e[h] === i[h] || Object.defineProperty(e, h, {
      enumerable: !0,
      get: function() {
        return i[h];
      }
    });
  });
  var n = Wl;
  Object.keys(n).forEach(function(h) {
    h === "default" || h === "__esModule" || h in e && e[h] === n[h] || Object.defineProperty(e, h, {
      enumerable: !0,
      get: function() {
        return n[h];
      }
    });
  });
  var s = Bc;
  Object.keys(s).forEach(function(h) {
    h === "default" || h === "__esModule" || h in e && e[h] === s[h] || Object.defineProperty(e, h, {
      enumerable: !0,
      get: function() {
        return s[h];
      }
    });
  });
  var a = $s;
  Object.keys(a).forEach(function(h) {
    h === "default" || h === "__esModule" || h in e && e[h] === a[h] || Object.defineProperty(e, h, {
      enumerable: !0,
      get: function() {
        return a[h];
      }
    });
  });
  var o = Qi;
  Object.keys(o).forEach(function(h) {
    h === "default" || h === "__esModule" || h in e && e[h] === o[h] || Object.defineProperty(e, h, {
      enumerable: !0,
      get: function() {
        return o[h];
      }
    });
  });
  var l = cye;
  Object.keys(l).forEach(function(h) {
    h === "default" || h === "__esModule" || h in e && e[h] === l[h] || Object.defineProperty(e, h, {
      enumerable: !0,
      get: function() {
        return l[h];
      }
    });
  });
  var u = jf;
  Object.keys(u).forEach(function(h) {
    h === "default" || h === "__esModule" || h in e && e[h] === u[h] || Object.defineProperty(e, h, {
      enumerable: !0,
      get: function() {
        return u[h];
      }
    });
  });
  var c = ws;
  Object.keys(c).forEach(function(h) {
    h === "default" || h === "__esModule" || h in e && e[h] === c[h] || Object.defineProperty(e, h, {
      enumerable: !0,
      get: function() {
        return c[h];
      }
    });
  });
  var f = Vt;
  Object.keys(f).forEach(function(h) {
    h === "default" || h === "__esModule" || h in e && e[h] === f[h] || Object.defineProperty(e, h, {
      enumerable: !0,
      get: function() {
        return f[h];
      }
    });
  });
})(rye);
Object.defineProperty(yI, "__esModule", {
  value: !0
});
yI.default = void 0;
var zOt = gI, GOt = mm, YOt = Nr(), XOt = rye;
const {
  isFunction: JOt,
  isStatement: QOt,
  isClassBody: ZOt,
  isTSInterfaceBody: eNt,
  isTSEnumDeclaration: tNt
} = YOt, rNt = /e/i, iNt = /\.0+$/, RQ = /[\n\r\u2028\u2029]/, nNt = /[\n\r\u2028\u2029]|\*\//, {
  needsParens: sNt
} = GOt;
class W5 {
  constructor(t, r) {
    this.inForStatementInitCounter = 0, this._printStack = [], this._indent = 0, this._indentRepeat = 0, this._insideAux = !1, this._parenPushNewlineState = null, this._noLineTerminator = !1, this._printAuxAfterOnNextUserNode = !1, this._printedComments = /* @__PURE__ */ new Set(), this._endsWithInteger = !1, this._endsWithWord = !1, this._lastCommentLine = 0, this._endsWithInnerRaw = !1, this._indentInnerComments = !0, this.format = t, this._indentRepeat = t.indent.style.length, this._inputMap = r == null ? void 0 : r._inputMap, this._buf = new zOt.default(r, t.indent.style[0]);
  }
  generate(t) {
    return this.print(t), this._maybeAddAuxComment(), this._buf.get();
  }
  indent() {
    this.format.compact || this.format.concise || this._indent++;
  }
  dedent() {
    this.format.compact || this.format.concise || this._indent--;
  }
  semicolon(t = !1) {
    this._maybeAddAuxComment(), t ? this._appendChar(59) : this._queue(59), this._noLineTerminator = !1;
  }
  rightBrace(t) {
    this.format.minified && this._buf.removeLastSemicolon(), this.sourceWithOffset("end", t.loc, -1), this.tokenChar(125);
  }
  rightParens(t) {
    this.sourceWithOffset("end", t.loc, -1), this.tokenChar(41);
  }
  space(t = !1) {
    if (!this.format.compact) {
      if (t)
        this._space();
      else if (this._buf.hasContent()) {
        const r = this.getLastChar();
        r !== 32 && r !== 10 && this._space();
      }
    }
  }
  word(t, r = !1) {
    this._maybePrintInnerComments(), (this._endsWithWord || t.charCodeAt(0) === 47 && this.endsWith(47)) && this._space(), this._maybeAddAuxComment(), this._append(t, !1), this._endsWithWord = !0, this._noLineTerminator = r;
  }
  number(t, r) {
    function i(n) {
      if (n.length > 2 && n.charCodeAt(0) === 48) {
        const s = n.charCodeAt(1);
        return s === 98 || s === 111 || s === 120;
      }
      return !1;
    }
    this.word(t), this._endsWithInteger = Number.isInteger(r) && !i(t) && !rNt.test(t) && !iNt.test(t) && t.charCodeAt(t.length - 1) !== 46;
  }
  token(t, r = !1) {
    this._maybePrintInnerComments();
    const i = this.getLastChar(), n = t.charCodeAt(0);
    (i === 33 && (t === "--" || n === 61) || n === 43 && i === 43 || n === 45 && i === 45 || n === 46 && this._endsWithInteger) && this._space(), this._maybeAddAuxComment(), this._append(t, r), this._noLineTerminator = !1;
  }
  tokenChar(t) {
    this._maybePrintInnerComments();
    const r = this.getLastChar();
    (t === 43 && r === 43 || t === 45 && r === 45 || t === 46 && this._endsWithInteger) && this._space(), this._maybeAddAuxComment(), this._appendChar(t), this._noLineTerminator = !1;
  }
  newline(t = 1, r) {
    if (!(t <= 0)) {
      if (!r) {
        if (this.format.retainLines || this.format.compact)
          return;
        if (this.format.concise) {
          this.space();
          return;
        }
      }
      t > 2 && (t = 2), t -= this._buf.getNewlineCount();
      for (let i = 0; i < t; i++)
        this._newline();
    }
  }
  endsWith(t) {
    return this.getLastChar() === t;
  }
  getLastChar() {
    return this._buf.getLastChar();
  }
  endsWithCharAndNewline() {
    return this._buf.endsWithCharAndNewline();
  }
  removeTrailingNewline() {
    this._buf.removeTrailingNewline();
  }
  exactSource(t, r) {
    if (!t) {
      r();
      return;
    }
    this._catchUp("start", t), this._buf.exactSource(t, r);
  }
  source(t, r) {
    r && (this._catchUp(t, r), this._buf.source(t, r));
  }
  sourceWithOffset(t, r, i) {
    r && (this._catchUp(t, r), this._buf.sourceWithOffset(t, r, i));
  }
  withSource(t, r, i) {
    if (!r) {
      i();
      return;
    }
    this._catchUp(t, r), this._buf.withSource(t, r, i);
  }
  sourceIdentifierName(t, r) {
    if (!this._buf._canMarkIdName)
      return;
    const i = this._buf._sourcePosition;
    i.identifierNamePos = r, i.identifierName = t;
  }
  _space() {
    this._queue(32);
  }
  _newline() {
    this._queue(10);
  }
  _append(t, r) {
    this._maybeAddParen(t), this._maybeIndent(t.charCodeAt(0)), this._buf.append(t, r), this._endsWithWord = !1, this._endsWithInteger = !1;
  }
  _appendChar(t) {
    this._maybeAddParenChar(t), this._maybeIndent(t), this._buf.appendChar(t), this._endsWithWord = !1, this._endsWithInteger = !1;
  }
  _queue(t) {
    this._maybeAddParenChar(t), this._maybeIndent(t), this._buf.queue(t), this._endsWithWord = !1, this._endsWithInteger = !1;
  }
  _maybeIndent(t) {
    this._indent && t !== 10 && this.endsWith(10) && this._buf.queueIndentation(this._getIndent());
  }
  _shouldIndent(t) {
    if (this._indent && t !== 10 && this.endsWith(10))
      return !0;
  }
  _maybeAddParenChar(t) {
    const r = this._parenPushNewlineState;
    if (r && t !== 32) {
      if (t !== 10) {
        this._parenPushNewlineState = null;
        return;
      }
      this.tokenChar(40), this.indent(), r.printed = !0;
    }
  }
  _maybeAddParen(t) {
    const r = this._parenPushNewlineState;
    if (!r)
      return;
    const i = t.length;
    let n;
    for (n = 0; n < i && t.charCodeAt(n) === 32; n++)
      ;
    if (n === i)
      return;
    const s = t.charCodeAt(n);
    if (s !== 10) {
      if (s !== 47 || n + 1 === i) {
        this._parenPushNewlineState = null;
        return;
      }
      const a = t.charCodeAt(n + 1);
      if (a === 42)
        return;
      if (a !== 47) {
        this._parenPushNewlineState = null;
        return;
      }
    }
    this.tokenChar(40), this.indent(), r.printed = !0;
  }
  catchUp(t) {
    if (!this.format.retainLines)
      return;
    const r = t - this._buf.getCurrentLine();
    for (let i = 0; i < r; i++)
      this._newline();
  }
  _catchUp(t, r) {
    var i;
    if (!this.format.retainLines)
      return;
    const n = r == null || (i = r[t]) == null ? void 0 : i.line;
    if (n != null) {
      const s = n - this._buf.getCurrentLine();
      for (let a = 0; a < s; a++)
        this._newline();
    }
  }
  _getIndent() {
    return this._indentRepeat * this._indent;
  }
  printTerminatorless(t, r, i) {
    if (i)
      this._noLineTerminator = !0, this.print(t, r);
    else {
      const n = {
        printed: !1
      };
      this._parenPushNewlineState = n, this.print(t, r), n.printed && (this.dedent(), this.newline(), this.tokenChar(41));
    }
  }
  print(t, r, i, n, s) {
    var a, o;
    if (!t)
      return;
    this._endsWithInnerRaw = !1;
    const l = t.type, u = this.format, c = u.concise;
    t._compact && (u.concise = !0);
    const f = this[l];
    if (f === void 0)
      throw new ReferenceError("unknown node of type ".concat(JSON.stringify(l), " with constructor ").concat(JSON.stringify(t.constructor.name)));
    this._printStack.push(t);
    const h = this._insideAux;
    this._insideAux = t.loc == null, this._maybeAddAuxComment(this._insideAux && !h);
    const m = (a = t.extra) == null ? void 0 : a.parenthesized;
    let g = s || m && u.retainFunctionParens && l === "FunctionExpression" || sNt(t, r, this._printStack);
    if (!g && m && (o = t.leadingComments) != null && o.length && t.leadingComments[0].type === "CommentBlock")
      switch (r == null ? void 0 : r.type) {
        case "ExpressionStatement":
        case "VariableDeclarator":
        case "AssignmentExpression":
        case "ReturnStatement":
          break;
        case "CallExpression":
        case "OptionalCallExpression":
        case "NewExpression":
          if (r.callee !== t)
            break;
        default:
          g = !0;
      }
    g && (this.tokenChar(40), this._endsWithInnerRaw = !1), this._lastCommentLine = 0, this._printLeadingComments(t, r);
    const y = l === "Program" || l === "File" ? null : t.loc;
    this.exactSource(y, f.bind(this, t, r)), g ? (this._printTrailingComments(t, r), this.tokenChar(41), this._noLineTerminator = i) : i && !this._noLineTerminator ? (this._noLineTerminator = !0, this._printTrailingComments(t, r)) : this._printTrailingComments(t, r, n), this._printStack.pop(), u.concise = c, this._insideAux = h, this._endsWithInnerRaw = !1;
  }
  _maybeAddAuxComment(t) {
    t && this._printAuxBeforeComment(), this._insideAux || this._printAuxAfterComment();
  }
  _printAuxBeforeComment() {
    if (this._printAuxAfterOnNextUserNode)
      return;
    this._printAuxAfterOnNextUserNode = !0;
    const t = this.format.auxiliaryCommentBefore;
    t && this._printComment({
      type: "CommentBlock",
      value: t
    }, 0);
  }
  _printAuxAfterComment() {
    if (!this._printAuxAfterOnNextUserNode)
      return;
    this._printAuxAfterOnNextUserNode = !1;
    const t = this.format.auxiliaryCommentAfter;
    t && this._printComment({
      type: "CommentBlock",
      value: t
    }, 0);
  }
  getPossibleRaw(t) {
    const r = t.extra;
    if ((r == null ? void 0 : r.raw) != null && r.rawValue != null && t.value === r.rawValue)
      return r.raw;
  }
  printJoin(t, r, i = {}) {
    if (!(t != null && t.length))
      return;
    let {
      indent: n
    } = i;
    if (n == null && this.format.retainLines) {
      var s;
      const f = (s = t[0].loc) == null ? void 0 : s.start.line;
      f != null && f !== this._buf.getCurrentLine() && (n = !0);
    }
    n && this.indent();
    const a = {
      addNewlines: i.addNewlines,
      nextNodeStartLine: 0
    }, o = i.separator ? i.separator.bind(this) : null, l = t.length;
    for (let f = 0; f < l; f++) {
      const h = t[f];
      if (h && (i.statement && this._printNewline(f === 0, a), this.print(h, r, void 0, i.trailingCommentsLineOffset || 0), i.iterator == null || i.iterator(h, f), f < l - 1 && (o == null || o()), i.statement)) {
        var u;
        if ((u = h.trailingComments) != null && u.length || (this._lastCommentLine = 0), f + 1 === l)
          this.newline(1);
        else {
          var c;
          const m = t[f + 1];
          a.nextNodeStartLine = ((c = m.loc) == null ? void 0 : c.start.line) || 0, this._printNewline(!0, a);
        }
      }
    }
    n && this.dedent();
  }
  printAndIndentOnComments(t, r) {
    const i = t.leadingComments && t.leadingComments.length > 0;
    i && this.indent(), this.print(t, r), i && this.dedent();
  }
  printBlock(t) {
    const r = t.body;
    r.type !== "EmptyStatement" && this.space(), this.print(r, t);
  }
  _printTrailingComments(t, r, i) {
    const {
      innerComments: n,
      trailingComments: s
    } = t;
    n != null && n.length && this._printComments(2, n, t, r, i), s != null && s.length && this._printComments(2, s, t, r, i);
  }
  _printLeadingComments(t, r) {
    const i = t.leadingComments;
    i != null && i.length && this._printComments(0, i, t, r);
  }
  _maybePrintInnerComments() {
    this._endsWithInnerRaw && this.printInnerComments(), this._endsWithInnerRaw = !0, this._indentInnerComments = !0;
  }
  printInnerComments() {
    const t = this._printStack[this._printStack.length - 1], r = t.innerComments;
    if (!(r != null && r.length))
      return;
    const i = this.endsWith(32), n = this._indentInnerComments, s = this._printedComments.size;
    n && this.indent(), this._printComments(1, r, t), i && s !== this._printedComments.size && this.space(), n && this.dedent();
  }
  noIndentInnerCommentsHere() {
    this._indentInnerComments = !1;
  }
  printSequence(t, r, i = {}) {
    var n;
    i.statement = !0, (n = i.indent) != null || (i.indent = !1), this.printJoin(t, r, i);
  }
  printList(t, r, i = {}) {
    i.separator == null && (i.separator = aNt), this.printJoin(t, r, i);
  }
  _printNewline(t, r) {
    const i = this.format;
    if (i.retainLines || i.compact)
      return;
    if (i.concise) {
      this.space();
      return;
    }
    if (!t)
      return;
    const n = r.nextNodeStartLine, s = this._lastCommentLine;
    if (n > 0 && s > 0) {
      const a = n - s;
      if (a >= 0) {
        this.newline(a || 1);
        return;
      }
    }
    this._buf.hasContent() && this.newline(1);
  }
  _shouldPrintComment(t) {
    return t.ignore || this._printedComments.has(t) ? 0 : this._noLineTerminator && nNt.test(t.value) ? 2 : (this._printedComments.add(t), this.format.shouldPrintComment(t.value) ? 1 : 0);
  }
  _printComment(t, r) {
    const i = this._noLineTerminator, n = t.type === "CommentBlock", s = n && r !== 1 && !this._noLineTerminator;
    s && this._buf.hasContent() && r !== 2 && this.newline(1);
    const a = this.getLastChar();
    a !== 91 && a !== 123 && this.space();
    let o;
    if (n) {
      const {
        _parenPushNewlineState: u
      } = this;
      if ((u == null ? void 0 : u.printed) === !1 && RQ.test(t.value) && (this.tokenChar(40), this.indent(), u.printed = !0), o = "/*".concat(t.value, "*/"), this.format.indent.adjustMultilineComment) {
        var l;
        const c = (l = t.loc) == null ? void 0 : l.start.column;
        if (c) {
          const f = new RegExp("\\n\\s{1," + c + "}", "g");
          o = o.replace(f, "\n");
        }
        if (this.format.concise)
          o = o.replace(/\n(?!$)/g, "\n");
        else {
          let f = this.format.retainLines ? 0 : this._buf.getCurrentColumn();
          (this._shouldIndent(47) || this.format.retainLines) && (f += this._getIndent()), o = o.replace(/\n(?!$)/g, "\n".concat(" ".repeat(f)));
        }
      }
    } else
      i ? o = "/*".concat(t.value, "*/") : o = "//".concat(t.value);
    this.endsWith(47) && this._space(), this.source("start", t.loc), this._append(o, n), !n && !i && this.newline(1, !0), s && r !== 3 && this.newline(1);
  }
  _printComments(t, r, i, n, s = 0) {
    const a = i.loc, o = r.length;
    let l = !!a;
    const u = l ? a.start.line : 0, c = l ? a.end.line : 0;
    let f = 0, h = 0;
    const m = this._noLineTerminator ? function() {
    } : this.newline.bind(this);
    for (let g = 0; g < o; g++) {
      const y = r[g], v = this._shouldPrintComment(y);
      if (v === 2) {
        l = !1;
        break;
      }
      if (l && y.loc && v === 1) {
        const T = y.loc.start.line, S = y.loc.end.line;
        if (t === 0) {
          let P = 0;
          g === 0 ? this._buf.hasContent() && (y.type === "CommentLine" || T != S) && (P = h = 1) : P = T - f, f = S, m(P), this._printComment(y, 1), g + 1 === o && (m(Math.max(u - f, h)), f = u);
        } else if (t === 1) {
          const P = T - (g === 0 ? u : f);
          f = S, m(P), this._printComment(y, 1), g + 1 === o && (m(Math.min(1, c - f)), f = c);
        } else {
          const P = T - (g === 0 ? c - s : f);
          f = S, m(P), this._printComment(y, 1);
        }
      } else {
        if (l = !1, v !== 1)
          continue;
        if (o === 1) {
          const T = y.loc ? y.loc.start.line === y.loc.end.line : !RQ.test(y.value), S = T && !QOt(i) && !ZOt(n) && !eNt(n) && !tNt(n);
          t === 0 ? this._printComment(y, S && i.type !== "ObjectExpression" || T && JOt(n, {
            body: i
          }) ? 1 : 0) : S && t === 2 ? this._printComment(y, 1) : this._printComment(y, 0);
        } else
          t === 1 && !(i.type === "ObjectExpression" && i.properties.length > 1) && i.type !== "ClassBody" && i.type !== "TSInterfaceBody" ? this._printComment(y, g === 0 ? 2 : g === o - 1 ? 3 : 0) : this._printComment(y, 0);
      }
    }
    t === 2 && l && f && (this._lastCommentLine = f);
  }
}
Object.assign(W5.prototype, XOt);
W5.prototype.Noop = function() {
};
yI.default = W5;
function aNt() {
  this.tokenChar(44), this.space();
}
Object.defineProperty(dI, "__esModule", {
  value: !0
});
dI.default = oNt;
var fye = mI, hye = yI;
function dye(e, t) {
  var r;
  const i = {
    auxiliaryCommentBefore: t.auxiliaryCommentBefore,
    auxiliaryCommentAfter: t.auxiliaryCommentAfter,
    shouldPrintComment: t.shouldPrintComment,
    retainLines: t.retainLines,
    retainFunctionParens: t.retainFunctionParens,
    comments: t.comments == null || t.comments,
    compact: t.compact,
    minified: t.minified,
    concise: t.concise,
    indent: {
      adjustMultilineComment: !0,
      style: "  "
    },
    jsescOption: Object.assign({
      quotes: "double",
      wrap: !0,
      minimal: !1
    }, t.jsescOption),
    recordAndTupleSyntaxType: (r = t.recordAndTupleSyntaxType) != null ? r : "hash",
    topicToken: t.topicToken,
    importAttributesKeyword: t.importAttributesKeyword
  };
  i.decoratorsBeforeExport = t.decoratorsBeforeExport, i.jsescOption.json = t.jsonCompatibleStrings, i.minified ? (i.compact = !0, i.shouldPrintComment = i.shouldPrintComment || (() => i.comments)) : i.shouldPrintComment = i.shouldPrintComment || ((o) => i.comments || o.includes("@license") || o.includes("@preserve")), i.compact === "auto" && (i.compact = typeof e == "string" && e.length > 5e5, i.compact && console.error("[BABEL] Note: The code generator has deoptimised the styling of " + "".concat(t.filename, " as it exceeds the max of 500KB."))), i.compact && (i.indent.adjustMultilineComment = !1);
  const {
    auxiliaryCommentBefore: n,
    auxiliaryCommentAfter: s,
    shouldPrintComment: a
  } = i;
  return n && !a(n) && (i.auxiliaryCommentBefore = void 0), s && !a(s) && (i.auxiliaryCommentAfter = void 0), i;
}
dI.CodeGenerator = class {
  constructor(t, r = {}, i) {
    this._ast = void 0, this._format = void 0, this._map = void 0, this._ast = t, this._format = dye(i, r), this._map = r.sourceMaps ? new fye.default(r, i) : null;
  }
  generate() {
    return new hye.default(this._format, this._map).generate(this._ast);
  }
};
function oNt(e, t = {}, r) {
  const i = dye(r, t), n = t.sourceMaps ? new fye.default(t, r) : null;
  return new hye.default(i, n).generate(e);
}
var Yl = {};
Object.defineProperty(Yl, "__esModule", {
  value: !0
});
Yl.find = pNt;
Yl.findParent = cNt;
Yl.getAncestry = yNt;
Yl.getDeepestCommonAncestorFrom = mNt;
Yl.getEarliestCommonAncestorFrom = dNt;
Yl.getFunctionParent = fNt;
Yl.getStatementParent = hNt;
Yl.inType = vNt;
Yl.isAncestor = gNt;
Yl.isDescendant = bNt;
var lNt = Nr();
const {
  VISITOR_KEYS: uNt
} = lNt;
function cNt(e) {
  let t = this;
  for (; t = t.parentPath; )
    if (e(t))
      return t;
  return null;
}
function pNt(e) {
  let t = this;
  do
    if (e(t))
      return t;
  while (t = t.parentPath);
  return null;
}
function fNt() {
  return this.findParent((e) => e.isFunction());
}
function hNt() {
  let e = this;
  do {
    if (!e.parentPath || Array.isArray(e.container) && e.isStatement())
      break;
    e = e.parentPath;
  } while (e);
  if (e && (e.isProgram() || e.isFile()))
    throw new Error("File/Program node, we can't possibly find a statement parent to this");
  return e;
}
function dNt(e) {
  return this.getDeepestCommonAncestorFrom(e, function(t, r, i) {
    let n;
    const s = uNt[t.type];
    for (const a of i) {
      const o = a[r + 1];
      if (!n) {
        n = o;
        continue;
      }
      if (o.listKey && n.listKey === o.listKey && o.key < n.key) {
        n = o;
        continue;
      }
      const l = s.indexOf(n.parentKey), u = s.indexOf(o.parentKey);
      l > u && (n = o);
    }
    return n;
  });
}
function mNt(e, t) {
  if (!e.length)
    return this;
  if (e.length === 1)
    return e[0];
  let r = 1 / 0, i, n;
  const s = e.map((o) => {
    const l = [];
    do
      l.unshift(o);
    while ((o = o.parentPath) && o !== this);
    return l.length < r && (r = l.length), l;
  }), a = s[0];
  e:
    for (let o = 0; o < r; o++) {
      const l = a[o];
      for (const u of s)
        if (u[o] !== l)
          break e;
      i = o, n = l;
    }
  if (n)
    return t ? t(n, i, s) : n;
  throw new Error("Couldn't find intersection");
}
function yNt() {
  let e = this;
  const t = [];
  do
    t.push(e);
  while (e = e.parentPath);
  return t;
}
function gNt(e) {
  return e.isDescendant(this);
}
function bNt(e) {
  return !!this.findParent((t) => t === e);
}
function vNt(...e) {
  let t = this;
  for (; t; ) {
    for (const r of e)
      if (t.node.type === r)
        return !0;
    t = t.parentPath;
  }
  return !1;
}
var Gh = {}, mye = {}, H5 = {}, SI = {};
Object.defineProperty(SI, "__esModule", {
  value: !0
});
SI.createUnionType = ENt;
var TNt = Nr();
const {
  createFlowUnionType: BQ,
  createTSUnionType: FQ,
  createUnionTypeAnnotation: SNt,
  isFlowType: xNt,
  isTSType: _gr
} = TNt;
function ENt(e) {
  {
    if (xNt(e[0]))
      return BQ ? BQ(e) : SNt(e);
    if (FQ)
      return FQ(e);
  }
}
Object.defineProperty(H5, "__esModule", {
  value: !0
});
H5.default = _Nt;
var PNt = Nr(), yye = SI;
const {
  BOOLEAN_NUMBER_BINARY_OPERATORS: wNt,
  createTypeAnnotationBasedOnTypeof: ANt,
  numberTypeAnnotation: gye,
  voidTypeAnnotation: CNt
} = PNt;
function _Nt(e) {
  if (!this.isReferenced())
    return;
  const t = this.scope.getBinding(e.name);
  if (t)
    return t.identifier.typeAnnotation ? t.identifier.typeAnnotation : INt(t, this, e.name);
  if (e.name === "undefined")
    return CNt();
  if (e.name === "NaN" || e.name === "Infinity")
    return gye();
  e.name;
}
function INt(e, t, r) {
  const i = [], n = [];
  let s = jQ(e, t, n);
  const a = bye(e, t, r);
  if (a) {
    const o = jQ(e, a.ifStatement);
    s = s.filter((l) => o.indexOf(l) < 0), i.push(a.typeAnnotation);
  }
  if (s.length) {
    s.push(...n);
    for (const o of s)
      i.push(o.getTypeAnnotation());
  }
  if (i.length)
    return (0, yye.createUnionType)(i);
}
function jQ(e, t, r) {
  const i = e.constantViolations.slice();
  return i.unshift(e.path), i.filter((n) => {
    n = n.resolve();
    const s = n._guessExecutionStatusRelativeTo(t);
    return r && s === "unknown" && r.push(n), s === "before";
  });
}
function kNt(e, t) {
  const r = t.node.operator, i = t.get("right").resolve(), n = t.get("left").resolve();
  let s;
  if (n.isIdentifier({
    name: e
  }) ? s = i : i.isIdentifier({
    name: e
  }) && (s = n), s)
    return r === "===" ? s.getTypeAnnotation() : wNt.indexOf(r) >= 0 ? gye() : void 0;
  if (r !== "===" && r !== "==")
    return;
  let a, o;
  if (n.isUnaryExpression({
    operator: "typeof"
  }) ? (a = n, o = i) : i.isUnaryExpression({
    operator: "typeof"
  }) && (a = i, o = n), !a || !a.get("argument").isIdentifier({
    name: e
  }) || (o = o.resolve(), !o.isLiteral()))
    return;
  const l = o.node.value;
  if (typeof l == "string")
    return ANt(l);
}
function ONt(e, t, r) {
  let i;
  for (; i = t.parentPath; ) {
    if (i.isIfStatement() || i.isConditionalExpression())
      return t.key === "test" ? void 0 : i;
    if (i.isFunction() && i.parentPath.scope.getBinding(r) !== e)
      return;
    t = i;
  }
}
function bye(e, t, r) {
  const i = ONt(e, t, r);
  if (!i)
    return;
  const s = [i.get("test")], a = [];
  for (let o = 0; o < s.length; o++) {
    const l = s[o];
    if (l.isLogicalExpression())
      l.node.operator === "&&" && (s.push(l.get("left")), s.push(l.get("right")));
    else if (l.isBinaryExpression()) {
      const u = kNt(r, l);
      u && a.push(u);
    }
  }
  return a.length ? {
    typeAnnotation: (0, yye.createUnionType)(a),
    ifStatement: i
  } : bye(e, i, r);
}
(function(e) {
  Object.defineProperty(e, "__esModule", {
    value: !0
  }), e.ArrayExpression = ne, e.AssignmentExpression = $, e.BinaryExpression = q, e.BooleanLiteral = W, e.CallExpression = me, e.ConditionalExpression = N, e.ClassDeclaration = e.ClassExpression = e.FunctionDeclaration = e.ArrowFunctionExpression = e.FunctionExpression = be, Object.defineProperty(e, "Identifier", {
    enumerable: !0,
    get: function() {
      return r.default;
    }
  }), e.LogicalExpression = j, e.NewExpression = L, e.NullLiteral = Y, e.NumericLiteral = z, e.ObjectExpression = le, e.ParenthesizedExpression = R, e.RegExpLiteral = G, e.RestElement = ae, e.SequenceExpression = M, e.StringLiteral = K, e.TSAsExpression = A, e.TSNonNullExpression = I, e.TaggedTemplateExpression = xe, e.TemplateLiteral = O, e.TypeCastExpression = w, e.UnaryExpression = F, e.UpdateExpression = V, e.VariableDeclarator = D;
  var t = Nr(), r = H5, i = SI;
  const {
    BOOLEAN_BINARY_OPERATORS: n,
    BOOLEAN_UNARY_OPERATORS: s,
    NUMBER_BINARY_OPERATORS: a,
    NUMBER_UNARY_OPERATORS: o,
    STRING_UNARY_OPERATORS: l,
    anyTypeAnnotation: u,
    arrayTypeAnnotation: c,
    booleanTypeAnnotation: f,
    buildMatchMemberExpression: h,
    genericTypeAnnotation: m,
    identifier: g,
    nullLiteralTypeAnnotation: y,
    numberTypeAnnotation: v,
    stringTypeAnnotation: T,
    tupleTypeAnnotation: S,
    unionTypeAnnotation: P,
    voidTypeAnnotation: x,
    isIdentifier: C
  } = t;
  function D() {
    if (this.get("id").isIdentifier())
      return this.get("init").getTypeAnnotation();
  }
  function w(ve) {
    return ve.typeAnnotation;
  }
  w.validParent = !0;
  function A(ve) {
    return ve.typeAnnotation;
  }
  A.validParent = !0;
  function I() {
    return this.get("expression").getTypeAnnotation();
  }
  function L(ve) {
    if (ve.callee.type === "Identifier")
      return m(ve.callee);
  }
  function O() {
    return T();
  }
  function F(ve) {
    const Xe = ve.operator;
    if (Xe === "void")
      return x();
    if (o.indexOf(Xe) >= 0)
      return v();
    if (l.indexOf(Xe) >= 0)
      return T();
    if (s.indexOf(Xe) >= 0)
      return f();
  }
  function q(ve) {
    const Xe = ve.operator;
    if (a.indexOf(Xe) >= 0)
      return v();
    if (n.indexOf(Xe) >= 0)
      return f();
    if (Xe === "+") {
      const st = this.get("right"), Se = this.get("left");
      return Se.isBaseType("number") && st.isBaseType("number") ? v() : Se.isBaseType("string") || st.isBaseType("string") ? T() : P([T(), v()]);
    }
  }
  function j() {
    const ve = [this.get("left").getTypeAnnotation(), this.get("right").getTypeAnnotation()];
    return (0, i.createUnionType)(ve);
  }
  function N() {
    const ve = [this.get("consequent").getTypeAnnotation(), this.get("alternate").getTypeAnnotation()];
    return (0, i.createUnionType)(ve);
  }
  function M() {
    return this.get("expressions").pop().getTypeAnnotation();
  }
  function R() {
    return this.get("expression").getTypeAnnotation();
  }
  function $() {
    return this.get("right").getTypeAnnotation();
  }
  function V(ve) {
    const Xe = ve.operator;
    if (Xe === "++" || Xe === "--")
      return v();
  }
  function K() {
    return T();
  }
  function z() {
    return v();
  }
  function W() {
    return f();
  }
  function Y() {
    return y();
  }
  function G() {
    return m(g("RegExp"));
  }
  function le() {
    return m(g("Object"));
  }
  function ne() {
    return m(g("Array"));
  }
  function ae() {
    return ne();
  }
  ae.validParent = !0;
  function be() {
    return m(g("Function"));
  }
  const ye = h("Array.from"), fe = h("Object.keys"), Z = h("Object.values"), ue = h("Object.entries");
  function me() {
    const {
      callee: ve
    } = this.node;
    return fe(ve) ? c(T()) : ye(ve) || Z(ve) || C(ve, {
      name: "Array"
    }) ? c(u()) : ue(ve) ? c(S([T(), u()])) : Pe(this.get("callee"));
  }
  function xe() {
    return Pe(this.get("tag"));
  }
  function Pe(ve) {
    if (ve = ve.resolve(), ve.isFunction()) {
      const {
        node: Xe
      } = ve;
      if (Xe.async)
        return Xe.generator ? m(g("AsyncIterator")) : m(g("Promise"));
      if (Xe.generator)
        return m(g("Iterator"));
      if (ve.node.returnType)
        return ve.node.returnType;
    }
  }
})(mye);
Object.defineProperty(Gh, "__esModule", {
  value: !0
});
Gh._getTypeAnnotation = JNt;
Gh.baseTypeStrictlyMatches = eDt;
Gh.couldBeBaseType = ZNt;
Gh.getTypeAnnotation = XNt;
Gh.isBaseType = QNt;
Gh.isGenericType = tDt;
var $Q = mye, NNt = Nr();
const {
  anyTypeAnnotation: vye,
  isAnyTypeAnnotation: Kw,
  isArrayTypeAnnotation: DNt,
  isBooleanTypeAnnotation: LNt,
  isEmptyTypeAnnotation: MNt,
  isFlowBaseAnnotation: RNt,
  isGenericTypeAnnotation: BNt,
  isIdentifier: UQ,
  isMixedTypeAnnotation: FNt,
  isNumberTypeAnnotation: jNt,
  isStringTypeAnnotation: $Nt,
  isTSArrayType: UNt,
  isTSTypeAnnotation: qNt,
  isTSTypeReference: VNt,
  isTupleTypeAnnotation: WNt,
  isTypeAnnotation: HNt,
  isUnionTypeAnnotation: KNt,
  isVoidTypeAnnotation: zNt,
  stringTypeAnnotation: GNt,
  voidTypeAnnotation: YNt
} = NNt;
function XNt() {
  let e = this.getData("typeAnnotation");
  return e != null || (e = this._getTypeAnnotation() || vye(), (HNt(e) || qNt(e)) && (e = e.typeAnnotation), this.setData("typeAnnotation", e)), e;
}
const v3 = /* @__PURE__ */ new WeakSet();
function JNt() {
  const e = this.node;
  if (!e)
    if (this.key === "init" && this.parentPath.isVariableDeclarator()) {
      const r = this.parentPath.parentPath, i = r.parentPath;
      return r.key === "left" && i.isForInStatement() ? GNt() : r.key === "left" && i.isForOfStatement() ? vye() : YNt();
    } else
      return;
  if (e.typeAnnotation)
    return e.typeAnnotation;
  if (!v3.has(e)) {
    v3.add(e);
    try {
      var t;
      let r = $Q[e.type];
      if (r)
        return r.call(this, e);
      if (r = $Q[this.parentPath.type], (t = r) != null && t.validParent)
        return this.parentPath.getTypeAnnotation();
    } finally {
      v3.delete(e);
    }
  }
}
function QNt(e, t) {
  return h8(e, this.getTypeAnnotation(), t);
}
function h8(e, t, r) {
  if (e === "string")
    return $Nt(t);
  if (e === "number")
    return jNt(t);
  if (e === "boolean")
    return LNt(t);
  if (e === "any")
    return Kw(t);
  if (e === "mixed")
    return FNt(t);
  if (e === "empty")
    return MNt(t);
  if (e === "void")
    return zNt(t);
  if (r)
    return !1;
  throw new Error("Unknown base type ".concat(e));
}
function ZNt(e) {
  const t = this.getTypeAnnotation();
  if (Kw(t))
    return !0;
  if (KNt(t)) {
    for (const r of t.types)
      if (Kw(r) || h8(e, r, !0))
        return !0;
    return !1;
  } else
    return h8(e, t, !0);
}
function eDt(e) {
  const t = this.getTypeAnnotation(), r = e.getTypeAnnotation();
  return !Kw(t) && RNt(t) ? r.type === t.type : !1;
}
function tDt(e) {
  const t = this.getTypeAnnotation();
  return e === "Array" && (UNt(t) || DNt(t) || WNt(t)) ? !0 : BNt(t) && UQ(t.id, {
    name: e
  }) || VNt(t) && UQ(t.typeName, {
    name: e
  });
}
var $p = {}, uS = {};
Object.defineProperty(uS, "__esModule", {
  value: !0
});
function Tye(e, t) {
  if (e == null)
    return {};
  var r = {}, i = Object.keys(e), n, s;
  for (s = 0; s < i.length; s++)
    n = i[s], !(t.indexOf(n) >= 0) && (r[n] = e[n]);
  return r;
}
let Oh = class {
  constructor(t, r, i) {
    this.line = void 0, this.column = void 0, this.index = void 0, this.line = t, this.column = r, this.index = i;
  }
}, zw = class {
  constructor(t, r) {
    this.start = void 0, this.end = void 0, this.filename = void 0, this.identifierName = void 0, this.start = t, this.end = r;
  }
};
function ua(e, t) {
  const {
    line: r,
    column: i,
    index: n
  } = e;
  return new Oh(r, i + t, n + t);
}
const qQ = "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED";
var rDt = {
  ImportMetaOutsideModule: {
    message: "import.meta may appear only with 'sourceType: \"module\"'",
    code: qQ
  },
  ImportOutsideModule: {
    message: "'import' and 'export' may appear only with 'sourceType: \"module\"'",
    code: qQ
  }
};
const VQ = {
  ArrayPattern: "array destructuring pattern",
  AssignmentExpression: "assignment expression",
  AssignmentPattern: "assignment expression",
  ArrowFunctionExpression: "arrow function expression",
  ConditionalExpression: "conditional expression",
  CatchClause: "catch clause",
  ForOfStatement: "for-of statement",
  ForInStatement: "for-in statement",
  ForStatement: "for-loop",
  FormalParameters: "function parameter list",
  Identifier: "identifier",
  ImportSpecifier: "import specifier",
  ImportDefaultSpecifier: "import default specifier",
  ImportNamespaceSpecifier: "import namespace specifier",
  ObjectPattern: "object destructuring pattern",
  ParenthesizedExpression: "parenthesized expression",
  RestElement: "rest element",
  UpdateExpression: {
    true: "prefix operation",
    false: "postfix operation"
  },
  VariableDeclarator: "variable declaration",
  YieldExpression: "yield expression"
}, OP = ({
  type: e,
  prefix: t
}) => e === "UpdateExpression" ? VQ.UpdateExpression[String(t)] : VQ[e];
var iDt = {
  AccessorIsGenerator: ({
    kind: e
  }) => "A ".concat(e, "ter cannot be a generator."),
  ArgumentsInClass: "'arguments' is only allowed in functions and class methods.",
  AsyncFunctionInSingleStatementContext: "Async functions can only be declared at the top level or inside a block.",
  AwaitBindingIdentifier: "Can not use 'await' as identifier inside an async function.",
  AwaitBindingIdentifierInStaticBlock: "Can not use 'await' as identifier inside a static block.",
  AwaitExpressionFormalParameter: "'await' is not allowed in async function parameters.",
  AwaitUsingNotInAsyncContext: "'await using' is only allowed within async functions and at the top levels of modules.",
  AwaitNotInAsyncContext: "'await' is only allowed within async functions and at the top levels of modules.",
  AwaitNotInAsyncFunction: "'await' is only allowed within async functions.",
  BadGetterArity: "A 'get' accessor must not have any formal parameters.",
  BadSetterArity: "A 'set' accessor must have exactly one formal parameter.",
  BadSetterRestParameter: "A 'set' accessor function argument must not be a rest parameter.",
  ConstructorClassField: "Classes may not have a field named 'constructor'.",
  ConstructorClassPrivateField: "Classes may not have a private field named '#constructor'.",
  ConstructorIsAccessor: "Class constructor may not be an accessor.",
  ConstructorIsAsync: "Constructor can't be an async function.",
  ConstructorIsGenerator: "Constructor can't be a generator.",
  DeclarationMissingInitializer: ({
    kind: e
  }) => "Missing initializer in ".concat(e, " declaration."),
  DecoratorArgumentsOutsideParentheses: "Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.",
  DecoratorBeforeExport: "Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.",
  DecoratorsBeforeAfterExport: "Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.",
  DecoratorConstructor: "Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?",
  DecoratorExportClass: "Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.",
  DecoratorSemicolon: "Decorators must not be followed by a semicolon.",
  DecoratorStaticBlock: "Decorators can't be used with a static block.",
  DeferImportRequiresNamespace: 'Only `import defer * as x from "./module"` is valid.',
  DeletePrivateField: "Deleting a private field is not allowed.",
  DestructureNamedImport: "ES2015 named imports do not destructure. Use another statement for destructuring after the import.",
  DuplicateConstructor: "Duplicate constructor in the same class.",
  DuplicateDefaultExport: "Only one default export allowed per module.",
  DuplicateExport: ({
    exportName: e
  }) => "`".concat(e, "` has already been exported. Exported identifiers must be unique."),
  DuplicateProto: "Redefinition of __proto__ property.",
  DuplicateRegExpFlags: "Duplicate regular expression flag.",
  DynamicImportPhaseRequiresImportExpressions: ({
    phase: e
  }) => "'import.".concat(e, "(...)' can only be parsed when using the 'createImportExpressions' option."),
  ElementAfterRest: "Rest element must be last element.",
  EscapedCharNotAnIdentifier: "Invalid Unicode escape.",
  ExportBindingIsString: ({
    localName: e,
    exportName: t
  }) => "A string literal cannot be used as an exported binding without `from`.\n- Did you mean `export { '".concat(e, "' as '").concat(t, "' } from 'some-module'`?"),
  ExportDefaultFromAsIdentifier: "'from' is not allowed as an identifier after 'export default'.",
  ForInOfLoopInitializer: ({
    type: e
  }) => "'".concat(e === "ForInStatement" ? "for-in" : "for-of", "' loop variable declaration may not have an initializer."),
  ForInUsing: "For-in loop may not start with 'using' declaration.",
  ForOfAsync: "The left-hand side of a for-of loop may not be 'async'.",
  ForOfLet: "The left-hand side of a for-of loop may not start with 'let'.",
  GeneratorInSingleStatementContext: "Generators can only be declared at the top level or inside a block.",
  IllegalBreakContinue: ({
    type: e
  }) => "Unsyntactic ".concat(e === "BreakStatement" ? "break" : "continue", "."),
  IllegalLanguageModeDirective: "Illegal 'use strict' directive in function with non-simple parameter list.",
  IllegalReturn: "'return' outside of function.",
  ImportAttributesUseAssert: "The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedAssertSyntax: true` option in the import attributes plugin to suppress this error.",
  ImportBindingIsString: ({
    importName: e
  }) => 'A string literal cannot be used as an imported binding.\n- Did you mean `import { "'.concat(e, '" as foo }`?'),
  ImportCallArgumentTrailingComma: "Trailing comma is disallowed inside import(...) arguments.",
  ImportCallArity: ({
    maxArgumentCount: e
  }) => "`import()` requires exactly ".concat(e === 1 ? "one argument" : "one or two arguments", "."),
  ImportCallNotNewExpression: "Cannot use new with import(...).",
  ImportCallSpreadArgument: "`...` is not allowed in `import()`.",
  ImportJSONBindingNotDefault: "A JSON module can only be imported with `default`.",
  ImportReflectionHasAssertion: "`import module x` cannot have assertions.",
  ImportReflectionNotBinding: 'Only `import module x from "./module"` is valid.',
  IncompatibleRegExpUVFlags: "The 'u' and 'v' regular expression flags cannot be enabled at the same time.",
  InvalidBigIntLiteral: "Invalid BigIntLiteral.",
  InvalidCodePoint: "Code point out of bounds.",
  InvalidCoverInitializedName: "Invalid shorthand property initializer.",
  InvalidDecimal: "Invalid decimal.",
  InvalidDigit: ({
    radix: e
  }) => "Expected number in radix ".concat(e, "."),
  InvalidEscapeSequence: "Bad character escape sequence.",
  InvalidEscapeSequenceTemplate: "Invalid escape sequence in template.",
  InvalidEscapedReservedWord: ({
    reservedWord: e
  }) => "Escape sequence in keyword ".concat(e, "."),
  InvalidIdentifier: ({
    identifierName: e
  }) => "Invalid identifier ".concat(e, "."),
  InvalidLhs: ({
    ancestor: e
  }) => "Invalid left-hand side in ".concat(OP(e), "."),
  InvalidLhsBinding: ({
    ancestor: e
  }) => "Binding invalid left-hand side in ".concat(OP(e), "."),
  InvalidLhsOptionalChaining: ({
    ancestor: e
  }) => "Invalid optional chaining in the left-hand side of ".concat(OP(e), "."),
  InvalidNumber: "Invalid number.",
  InvalidOrMissingExponent: "Floating-point numbers require a valid exponent after the 'e'.",
  InvalidOrUnexpectedToken: ({
    unexpected: e
  }) => "Unexpected character '".concat(e, "'."),
  InvalidParenthesizedAssignment: "Invalid parenthesized assignment pattern.",
  InvalidPrivateFieldResolution: ({
    identifierName: e
  }) => "Private name #".concat(e, " is not defined."),
  InvalidPropertyBindingPattern: "Binding member expression.",
  InvalidRecordProperty: "Only properties and spread elements are allowed in record definitions.",
  InvalidRestAssignmentPattern: "Invalid rest operator's argument.",
  LabelRedeclaration: ({
    labelName: e
  }) => "Label '".concat(e, "' is already declared."),
  LetInLexicalBinding: "'let' is disallowed as a lexically bound name.",
  LineTerminatorBeforeArrow: "No line break is allowed before '=>'.",
  MalformedRegExpFlags: "Invalid regular expression flag.",
  MissingClassName: "A class name is required.",
  MissingEqInAssignment: "Only '=' operator can be used for specifying default value.",
  MissingSemicolon: "Missing semicolon.",
  MissingPlugin: ({
    missingPlugin: e
  }) => "This experimental syntax requires enabling the parser plugin: ".concat(e.map((t) => JSON.stringify(t)).join(", "), "."),
  MissingOneOfPlugins: ({
    missingPlugin: e
  }) => "This experimental syntax requires enabling one of the following parser plugin(s): ".concat(e.map((t) => JSON.stringify(t)).join(", "), "."),
  MissingUnicodeEscape: "Expecting Unicode escape sequence \\uXXXX.",
  MixingCoalesceWithLogical: "Nullish coalescing operator(??) requires parens when mixing with logical operators.",
  ModuleAttributeDifferentFromType: "The only accepted module attribute is `type`.",
  ModuleAttributeInvalidValue: "Only string literals are allowed as module attribute values.",
  ModuleAttributesWithDuplicateKeys: ({
    key: e
  }) => 'Duplicate key "'.concat(e, '" is not allowed in module attributes.'),
  ModuleExportNameHasLoneSurrogate: ({
    surrogateCharCode: e
  }) => "An export name cannot include a lone surrogate, found '\\u".concat(e.toString(16), "'."),
  ModuleExportUndefined: ({
    localName: e
  }) => "Export '".concat(e, "' is not defined."),
  MultipleDefaultsInSwitch: "Multiple default clauses.",
  NewlineAfterThrow: "Illegal newline after throw.",
  NoCatchOrFinally: "Missing catch or finally clause.",
  NumberIdentifier: "Identifier directly after number.",
  NumericSeparatorInEscapeSequence: "Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.",
  ObsoleteAwaitStar: "'await*' has been removed from the async functions proposal. Use Promise.all() instead.",
  OptionalChainingNoNew: "Constructors in/after an Optional Chain are not allowed.",
  OptionalChainingNoTemplate: "Tagged Template Literals are not allowed in optionalChain.",
  OverrideOnConstructor: "'override' modifier cannot appear on a constructor declaration.",
  ParamDupe: "Argument name clash.",
  PatternHasAccessor: "Object pattern can't contain getter or setter.",
  PatternHasMethod: "Object pattern can't contain methods.",
  PrivateInExpectedIn: ({
    identifierName: e
  }) => "Private names are only allowed in property accesses (`obj.#".concat(e, "`) or in `in` expressions (`#").concat(e, " in obj`)."),
  PrivateNameRedeclaration: ({
    identifierName: e
  }) => "Duplicate private name #".concat(e, "."),
  RecordExpressionBarIncorrectEndSyntaxType: "Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
  RecordExpressionBarIncorrectStartSyntaxType: "Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
  RecordExpressionHashIncorrectStartSyntaxType: "Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",
  RecordNoProto: "'__proto__' is not allowed in Record expressions.",
  RestTrailingComma: "Unexpected trailing comma after rest element.",
  SloppyFunction: "In non-strict mode code, functions can only be declared at top level or inside a block.",
  SloppyFunctionAnnexB: "In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.",
  SourcePhaseImportRequiresDefault: 'Only `import source x from "./module"` is valid.',
  StaticPrototype: "Classes may not have static property named prototype.",
  SuperNotAllowed: "`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?",
  SuperPrivateField: "Private fields can't be accessed on super.",
  TrailingDecorator: "Decorators must be attached to a class element.",
  TupleExpressionBarIncorrectEndSyntaxType: "Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
  TupleExpressionBarIncorrectStartSyntaxType: "Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
  TupleExpressionHashIncorrectStartSyntaxType: "Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",
  UnexpectedArgumentPlaceholder: "Unexpected argument placeholder.",
  UnexpectedAwaitAfterPipelineBody: 'Unexpected "await" after pipeline body; await must have parentheses in minimal proposal.',
  UnexpectedDigitAfterHash: "Unexpected digit after hash token.",
  UnexpectedImportExport: "'import' and 'export' may only appear at the top level.",
  UnexpectedKeyword: ({
    keyword: e
  }) => "Unexpected keyword '".concat(e, "'."),
  UnexpectedLeadingDecorator: "Leading decorators must be attached to a class declaration.",
  UnexpectedLexicalDeclaration: "Lexical declaration cannot appear in a single-statement context.",
  UnexpectedNewTarget: "`new.target` can only be used in functions or class properties.",
  UnexpectedNumericSeparator: "A numeric separator is only allowed between two digits.",
  UnexpectedPrivateField: "Unexpected private name.",
  UnexpectedReservedWord: ({
    reservedWord: e
  }) => "Unexpected reserved word '".concat(e, "'."),
  UnexpectedSuper: "'super' is only allowed in object methods and classes.",
  UnexpectedToken: ({
    expected: e,
    unexpected: t
  }) => "Unexpected token".concat(t ? " '".concat(t, "'.") : "").concat(e ? ', expected "'.concat(e, '"') : ""),
  UnexpectedTokenUnaryExponentiation: "Illegal expression. Wrap left hand side or entire exponentiation in parentheses.",
  UnexpectedUsingDeclaration: "Using declaration cannot appear in the top level when source type is `script`.",
  UnsupportedBind: "Binding should be performed on object property.",
  UnsupportedDecoratorExport: "A decorated export must export a class declaration.",
  UnsupportedDefaultExport: "Only expressions, functions or classes are allowed as the `default` export.",
  UnsupportedImport: "`import` can only be used in `import()` or `import.meta`.",
  UnsupportedMetaProperty: ({
    target: e,
    onlyValidPropertyName: t
  }) => "The only valid meta property for ".concat(e, " is ").concat(e, ".").concat(t, "."),
  UnsupportedParameterDecorator: "Decorators cannot be used to decorate parameters.",
  UnsupportedPropertyDecorator: "Decorators cannot be used to decorate object literal properties.",
  UnsupportedSuper: "'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).",
  UnterminatedComment: "Unterminated comment.",
  UnterminatedRegExp: "Unterminated regular expression.",
  UnterminatedString: "Unterminated string constant.",
  UnterminatedTemplate: "Unterminated template.",
  UsingDeclarationHasBindingPattern: "Using declaration cannot have destructuring patterns.",
  VarRedeclaration: ({
    identifierName: e
  }) => "Identifier '".concat(e, "' has already been declared."),
  YieldBindingIdentifier: "Can not use 'yield' as identifier inside a generator.",
  YieldInParameter: "Yield expression is not allowed in formal parameters.",
  ZeroDigitNumericSeparator: "Numeric separator can not be used after leading 0."
}, nDt = {
  StrictDelete: "Deleting local variable in strict mode.",
  StrictEvalArguments: ({
    referenceName: e
  }) => "Assigning to '".concat(e, "' in strict mode."),
  StrictEvalArgumentsBinding: ({
    bindingName: e
  }) => "Binding '".concat(e, "' in strict mode."),
  StrictFunction: "In strict mode code, functions can only be declared at top level or inside a block.",
  StrictNumericEscape: "The only valid numeric escape in strict mode is '\\0'.",
  StrictOctalLiteral: "Legacy octal literals are not allowed in strict mode.",
  StrictWith: "'with' in strict mode."
};
const sDt = /* @__PURE__ */ new Set(["ArrowFunctionExpression", "AssignmentExpression", "ConditionalExpression", "YieldExpression"]);
var aDt = {
  PipeBodyIsTighter: "Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.",
  PipeTopicRequiresHackPipes: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.',
  PipeTopicUnbound: "Topic reference is unbound; it must be inside a pipe body.",
  PipeTopicUnconfiguredToken: ({
    token: e
  }) => "Invalid topic token ".concat(e, ". In order to use ").concat(e, ' as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "').concat(e, '" }.'),
  PipeTopicUnused: "Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.",
  PipeUnparenthesizedBody: ({
    type: e
  }) => "Hack-style pipe body cannot be an unparenthesized ".concat(OP({
    type: e
  }), "; please wrap it in parentheses."),
  PipelineBodyNoArrow: 'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.',
  PipelineBodySequenceExpression: "Pipeline body may not be a comma-separated sequence expression.",
  PipelineHeadSequenceExpression: "Pipeline head should not be a comma-separated sequence expression.",
  PipelineTopicUnused: "Pipeline is in topic style but does not use topic reference.",
  PrimaryTopicNotAllowed: "Topic reference was used in a lexical context without topic binding.",
  PrimaryTopicRequiresSmartPipeline: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.'
};
const oDt = ["toMessage"], lDt = ["message"];
function WQ(e, t, r) {
  Object.defineProperty(e, t, {
    enumerable: !1,
    configurable: !0,
    value: r
  });
}
function uDt(e) {
  let {
    toMessage: t
  } = e, r = Tye(e, oDt);
  return function i(n, s) {
    const a = new SyntaxError();
    return Object.assign(a, r, {
      loc: n,
      pos: n.index
    }), "missingPlugin" in s && Object.assign(a, {
      missingPlugin: s.missingPlugin
    }), WQ(a, "clone", function(l = {}) {
      var u;
      const {
        line: c,
        column: f,
        index: h
      } = (u = l.loc) != null ? u : n;
      return i(new Oh(c, f, h), Object.assign({}, s, l.details));
    }), WQ(a, "details", s), Object.defineProperty(a, "message", {
      configurable: !0,
      get() {
        const o = "".concat(t(s), " (").concat(n.line, ":").concat(n.column, ")");
        return this.message = o, o;
      },
      set(o) {
        Object.defineProperty(this, "message", {
          value: o,
          writable: !0
        });
      }
    }), a;
  };
}
function df(e, t) {
  if (Array.isArray(e))
    return (i) => df(i, e[0]);
  const r = {};
  for (const i of Object.keys(e)) {
    const n = e[i], s = typeof n == "string" ? {
      message: () => n
    } : typeof n == "function" ? {
      message: n
    } : n, {
      message: a
    } = s, o = Tye(s, lDt), l = typeof a == "string" ? () => a : a;
    r[i] = uDt(Object.assign({
      code: "BABEL_PARSER_SYNTAX_ERROR",
      reasonCode: i,
      toMessage: l
    }, t ? {
      syntaxPlugin: t
    } : {}, o));
  }
  return r;
}
var Tae;
const rt = Object.assign({}, df(rDt), df(iDt), df(nDt), df(Tae || (Tae = at(["pipelineOperator"])))(aDt)), {
  defineProperty: cDt
} = Object, HQ = (e, t) => cDt(e, t, {
  enumerable: !1,
  value: e[t]
});
function r0(e) {
  return e.loc.start && HQ(e.loc.start, "index"), e.loc.end && HQ(e.loc.end, "index"), e;
}
var pDt = (e) => class extends e {
  parse() {
    const r = r0(super.parse());
    return this.options.tokens && (r.tokens = r.tokens.map(r0)), r;
  }
  parseRegExpLiteral({
    pattern: r,
    flags: i
  }) {
    let n = null;
    try {
      n = new RegExp(r, i);
    } catch (a) {
    }
    const s = this.estreeParseLiteral(n);
    return s.regex = {
      pattern: r,
      flags: i
    }, s;
  }
  parseBigIntLiteral(r) {
    let i;
    try {
      i = BigInt(r);
    } catch (s) {
      i = null;
    }
    const n = this.estreeParseLiteral(i);
    return n.bigint = String(n.value || r), n;
  }
  parseDecimalLiteral(r) {
    const n = this.estreeParseLiteral(null);
    return n.decimal = String(n.value || r), n;
  }
  estreeParseLiteral(r) {
    return this.parseLiteral(r, "Literal");
  }
  parseStringLiteral(r) {
    return this.estreeParseLiteral(r);
  }
  parseNumericLiteral(r) {
    return this.estreeParseLiteral(r);
  }
  parseNullLiteral() {
    return this.estreeParseLiteral(null);
  }
  parseBooleanLiteral(r) {
    return this.estreeParseLiteral(r);
  }
  directiveToStmt(r) {
    const i = r.value;
    delete r.value, i.type = "Literal", i.raw = i.extra.raw, i.value = i.extra.expressionValue;
    const n = r;
    return n.type = "ExpressionStatement", n.expression = i, n.directive = i.extra.rawValue, delete i.extra, n;
  }
  initFunction(r, i) {
    super.initFunction(r, i), r.expression = !1;
  }
  checkDeclaration(r) {
    r != null && this.isObjectProperty(r) ? this.checkDeclaration(r.value) : super.checkDeclaration(r);
  }
  getObjectOrClassMethodParams(r) {
    return r.value.params;
  }
  isValidDirective(r) {
    var i;
    return r.type === "ExpressionStatement" && r.expression.type === "Literal" && typeof r.expression.value == "string" && !((i = r.expression.extra) != null && i.parenthesized);
  }
  parseBlockBody(r, i, n, s, a) {
    super.parseBlockBody(r, i, n, s, a);
    const o = r.directives.map((l) => this.directiveToStmt(l));
    r.body = o.concat(r.body), delete r.directives;
  }
  pushClassMethod(r, i, n, s, a, o) {
    this.parseMethod(i, n, s, a, o, "ClassMethod", !0), i.typeParameters && (i.value.typeParameters = i.typeParameters, delete i.typeParameters), r.body.push(i);
  }
  parsePrivateName() {
    const r = super.parsePrivateName();
    return this.getPluginOption("estree", "classFeatures") ? this.convertPrivateNameToPrivateIdentifier(r) : r;
  }
  convertPrivateNameToPrivateIdentifier(r) {
    const i = super.getPrivateNameSV(r);
    return r = r, delete r.id, r.name = i, r.type = "PrivateIdentifier", r;
  }
  isPrivateName(r) {
    return this.getPluginOption("estree", "classFeatures") ? r.type === "PrivateIdentifier" : super.isPrivateName(r);
  }
  getPrivateNameSV(r) {
    return this.getPluginOption("estree", "classFeatures") ? r.name : super.getPrivateNameSV(r);
  }
  parseLiteral(r, i) {
    const n = super.parseLiteral(r, i);
    return n.raw = n.extra.raw, delete n.extra, n;
  }
  parseFunctionBody(r, i, n = !1) {
    super.parseFunctionBody(r, i, n), r.expression = r.body.type !== "BlockStatement";
  }
  parseMethod(r, i, n, s, a, o, l = !1) {
    let u = this.startNode();
    return u.kind = r.kind, u = super.parseMethod(u, i, n, s, a, o, l), u.type = "FunctionExpression", delete u.kind, r.value = u, o === "ClassPrivateMethod" && (r.computed = !1), this.finishNode(r, "MethodDefinition");
  }
  parseClassProperty(...r) {
    const i = super.parseClassProperty(...r);
    return this.getPluginOption("estree", "classFeatures") && (i.type = "PropertyDefinition"), i;
  }
  parseClassPrivateProperty(...r) {
    const i = super.parseClassPrivateProperty(...r);
    return this.getPluginOption("estree", "classFeatures") && (i.type = "PropertyDefinition", i.computed = !1), i;
  }
  parseObjectMethod(r, i, n, s, a) {
    const o = super.parseObjectMethod(r, i, n, s, a);
    return o && (o.type = "Property", o.kind === "method" && (o.kind = "init"), o.shorthand = !1), o;
  }
  parseObjectProperty(r, i, n, s) {
    const a = super.parseObjectProperty(r, i, n, s);
    return a && (a.kind = "init", a.type = "Property"), a;
  }
  isValidLVal(r, i, n) {
    return r === "Property" ? "value" : super.isValidLVal(r, i, n);
  }
  isAssignable(r, i) {
    return r != null && this.isObjectProperty(r) ? this.isAssignable(r.value, i) : super.isAssignable(r, i);
  }
  toAssignable(r, i = !1) {
    if (r != null && this.isObjectProperty(r)) {
      const {
        key: n,
        value: s
      } = r;
      this.isPrivateName(n) && this.classScope.usePrivateName(this.getPrivateNameSV(n), n.loc.start), this.toAssignable(s, i);
    } else
      super.toAssignable(r, i);
  }
  toAssignableObjectExpressionProp(r, i, n) {
    r.kind === "get" || r.kind === "set" ? this.raise(rt.PatternHasAccessor, r.key) : r.method ? this.raise(rt.PatternHasMethod, r.key) : super.toAssignableObjectExpressionProp(r, i, n);
  }
  finishCallExpression(r, i) {
    const n = super.finishCallExpression(r, i);
    if (n.callee.type === "Import") {
      if (n.type = "ImportExpression", n.source = n.arguments[0], this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions")) {
        var s, a;
        n.options = (s = n.arguments[1]) != null ? s : null, n.attributes = (a = n.arguments[1]) != null ? a : null;
      }
      delete n.arguments, delete n.callee;
    }
    return n;
  }
  toReferencedArguments(r) {
    r.type !== "ImportExpression" && super.toReferencedArguments(r);
  }
  parseExport(r, i) {
    const n = this.state.lastTokStartLoc, s = super.parseExport(r, i);
    switch (s.type) {
      case "ExportAllDeclaration":
        s.exported = null;
        break;
      case "ExportNamedDeclaration":
        s.specifiers.length === 1 && s.specifiers[0].type === "ExportNamespaceSpecifier" && (s.type = "ExportAllDeclaration", s.exported = s.specifiers[0].exported, delete s.specifiers);
      case "ExportDefaultDeclaration":
        {
          var a;
          const {
            declaration: o
          } = s;
          (o == null ? void 0 : o.type) === "ClassDeclaration" && ((a = o.decorators) == null ? void 0 : a.length) > 0 && o.start === s.start && this.resetStartLocation(s, n);
        }
        break;
    }
    return s;
  }
  parseSubscript(r, i, n, s) {
    const a = super.parseSubscript(r, i, n, s);
    if (s.optionalChainMember) {
      if ((a.type === "OptionalMemberExpression" || a.type === "OptionalCallExpression") && (a.type = a.type.substring(8)), s.stop) {
        const o = this.startNodeAtNode(a);
        return o.expression = a, this.finishNode(o, "ChainExpression");
      }
    } else
      (a.type === "MemberExpression" || a.type === "CallExpression") && (a.optional = !1);
    return a;
  }
  isOptionalMemberExpression(r) {
    return r.type === "ChainExpression" ? r.expression.type === "MemberExpression" : super.isOptionalMemberExpression(r);
  }
  hasPropertyAsPrivateName(r) {
    return r.type === "ChainExpression" && (r = r.expression), super.hasPropertyAsPrivateName(r);
  }
  isObjectProperty(r) {
    return r.type === "Property" && r.kind === "init" && !r.method;
  }
  isObjectMethod(r) {
    return r.method || r.kind === "get" || r.kind === "set";
  }
  finishNodeAt(r, i, n) {
    return r0(super.finishNodeAt(r, i, n));
  }
  resetStartLocation(r, i) {
    super.resetStartLocation(r, i), r0(r);
  }
  resetEndLocation(r, i = this.state.lastTokEndLoc) {
    super.resetEndLocation(r, i), r0(r);
  }
};
let _0 = class {
  constructor(t, r) {
    this.token = void 0, this.preserveSpace = void 0, this.token = t, this.preserveSpace = !!r;
  }
};
const Bi = {
  brace: new _0("{"),
  j_oTag: new _0("<tag"),
  j_cTag: new _0("</tag"),
  j_expr: new _0("<tag>...</tag>", !0)
};
Bi.template = new _0("`", !0);
const $r = !0, Lt = !0, T3 = !0, i0 = !0, rh = !0, fDt = !0;
let Sye = class {
  constructor(t, r = {}) {
    this.label = void 0, this.keyword = void 0, this.beforeExpr = void 0, this.startsExpr = void 0, this.rightAssociative = void 0, this.isLoop = void 0, this.isAssign = void 0, this.prefix = void 0, this.postfix = void 0, this.binop = void 0, this.label = t, this.keyword = r.keyword, this.beforeExpr = !!r.beforeExpr, this.startsExpr = !!r.startsExpr, this.rightAssociative = !!r.rightAssociative, this.isLoop = !!r.isLoop, this.isAssign = !!r.isAssign, this.prefix = !!r.prefix, this.postfix = !!r.postfix, this.binop = r.binop != null ? r.binop : null, this.updateContext = null;
  }
};
const K5 = /* @__PURE__ */ new Map();
function oi(e, t = {}) {
  t.keyword = e;
  const r = nr(e, t);
  return K5.set(e, r), r;
}
function ea(e, t) {
  return nr(e, {
    beforeExpr: $r,
    binop: t
  });
}
let iv = -1;
const Qp = [], z5 = [], G5 = [], Y5 = [], X5 = [], J5 = [];
function nr(e, t = {}) {
  var r, i, n, s;
  return ++iv, z5.push(e), G5.push((r = t.binop) != null ? r : -1), Y5.push((i = t.beforeExpr) != null ? i : !1), X5.push((n = t.startsExpr) != null ? n : !1), J5.push((s = t.prefix) != null ? s : !1), Qp.push(new Sye(e, t)), iv;
}
function Rr(e, t = {}) {
  var r, i, n, s;
  return ++iv, K5.set(e, iv), z5.push(e), G5.push((r = t.binop) != null ? r : -1), Y5.push((i = t.beforeExpr) != null ? i : !1), X5.push((n = t.startsExpr) != null ? n : !1), J5.push((s = t.prefix) != null ? s : !1), Qp.push(new Sye("name", t)), iv;
}
const hDt = {
  bracketL: nr("[", {
    beforeExpr: $r,
    startsExpr: Lt
  }),
  bracketHashL: nr("#[", {
    beforeExpr: $r,
    startsExpr: Lt
  }),
  bracketBarL: nr("[|", {
    beforeExpr: $r,
    startsExpr: Lt
  }),
  bracketR: nr("]"),
  bracketBarR: nr("|]"),
  braceL: nr("{", {
    beforeExpr: $r,
    startsExpr: Lt
  }),
  braceBarL: nr("{|", {
    beforeExpr: $r,
    startsExpr: Lt
  }),
  braceHashL: nr("#{", {
    beforeExpr: $r,
    startsExpr: Lt
  }),
  braceR: nr("}"),
  braceBarR: nr("|}"),
  parenL: nr("(", {
    beforeExpr: $r,
    startsExpr: Lt
  }),
  parenR: nr(")"),
  comma: nr(",", {
    beforeExpr: $r
  }),
  semi: nr(";", {
    beforeExpr: $r
  }),
  colon: nr(":", {
    beforeExpr: $r
  }),
  doubleColon: nr("::", {
    beforeExpr: $r
  }),
  dot: nr("."),
  question: nr("?", {
    beforeExpr: $r
  }),
  questionDot: nr("?."),
  arrow: nr("=>", {
    beforeExpr: $r
  }),
  template: nr("template"),
  ellipsis: nr("...", {
    beforeExpr: $r
  }),
  backQuote: nr("`", {
    startsExpr: Lt
  }),
  dollarBraceL: nr("${", {
    beforeExpr: $r,
    startsExpr: Lt
  }),
  templateTail: nr("...`", {
    startsExpr: Lt
  }),
  templateNonTail: nr("...${", {
    beforeExpr: $r,
    startsExpr: Lt
  }),
  at: nr("@"),
  hash: nr("#", {
    startsExpr: Lt
  }),
  interpreterDirective: nr("#!..."),
  eq: nr("=", {
    beforeExpr: $r,
    isAssign: i0
  }),
  assign: nr("_=", {
    beforeExpr: $r,
    isAssign: i0
  }),
  slashAssign: nr("_=", {
    beforeExpr: $r,
    isAssign: i0
  }),
  xorAssign: nr("_=", {
    beforeExpr: $r,
    isAssign: i0
  }),
  moduloAssign: nr("_=", {
    beforeExpr: $r,
    isAssign: i0
  }),
  incDec: nr("++/--", {
    prefix: rh,
    postfix: fDt,
    startsExpr: Lt
  }),
  bang: nr("!", {
    beforeExpr: $r,
    prefix: rh,
    startsExpr: Lt
  }),
  tilde: nr("~", {
    beforeExpr: $r,
    prefix: rh,
    startsExpr: Lt
  }),
  doubleCaret: nr("^^", {
    startsExpr: Lt
  }),
  doubleAt: nr("@@", {
    startsExpr: Lt
  }),
  pipeline: ea("|>", 0),
  nullishCoalescing: ea("??", 1),
  logicalOR: ea("||", 1),
  logicalAND: ea("&&", 2),
  bitwiseOR: ea("|", 3),
  bitwiseXOR: ea("^", 4),
  bitwiseAND: ea("&", 5),
  equality: ea("==/!=/===/!==", 6),
  lt: ea("</>/<=/>=", 7),
  gt: ea("</>/<=/>=", 7),
  relational: ea("</>/<=/>=", 7),
  bitShift: ea("<</>>/>>>", 8),
  bitShiftL: ea("<</>>/>>>", 8),
  bitShiftR: ea("<</>>/>>>", 8),
  plusMin: nr("+/-", {
    beforeExpr: $r,
    binop: 9,
    prefix: rh,
    startsExpr: Lt
  }),
  modulo: nr("%", {
    binop: 10,
    startsExpr: Lt
  }),
  star: nr("*", {
    binop: 10
  }),
  slash: ea("/", 10),
  exponent: nr("**", {
    beforeExpr: $r,
    binop: 11,
    rightAssociative: !0
  }),
  _in: oi("in", {
    beforeExpr: $r,
    binop: 7
  }),
  _instanceof: oi("instanceof", {
    beforeExpr: $r,
    binop: 7
  }),
  _break: oi("break"),
  _case: oi("case", {
    beforeExpr: $r
  }),
  _catch: oi("catch"),
  _continue: oi("continue"),
  _debugger: oi("debugger"),
  _default: oi("default", {
    beforeExpr: $r
  }),
  _else: oi("else", {
    beforeExpr: $r
  }),
  _finally: oi("finally"),
  _function: oi("function", {
    startsExpr: Lt
  }),
  _if: oi("if"),
  _return: oi("return", {
    beforeExpr: $r
  }),
  _switch: oi("switch"),
  _throw: oi("throw", {
    beforeExpr: $r,
    prefix: rh,
    startsExpr: Lt
  }),
  _try: oi("try"),
  _var: oi("var"),
  _const: oi("const"),
  _with: oi("with"),
  _new: oi("new", {
    beforeExpr: $r,
    startsExpr: Lt
  }),
  _this: oi("this", {
    startsExpr: Lt
  }),
  _super: oi("super", {
    startsExpr: Lt
  }),
  _class: oi("class", {
    startsExpr: Lt
  }),
  _extends: oi("extends", {
    beforeExpr: $r
  }),
  _export: oi("export"),
  _import: oi("import", {
    startsExpr: Lt
  }),
  _null: oi("null", {
    startsExpr: Lt
  }),
  _true: oi("true", {
    startsExpr: Lt
  }),
  _false: oi("false", {
    startsExpr: Lt
  }),
  _typeof: oi("typeof", {
    beforeExpr: $r,
    prefix: rh,
    startsExpr: Lt
  }),
  _void: oi("void", {
    beforeExpr: $r,
    prefix: rh,
    startsExpr: Lt
  }),
  _delete: oi("delete", {
    beforeExpr: $r,
    prefix: rh,
    startsExpr: Lt
  }),
  _do: oi("do", {
    isLoop: T3,
    beforeExpr: $r
  }),
  _for: oi("for", {
    isLoop: T3
  }),
  _while: oi("while", {
    isLoop: T3
  }),
  _as: Rr("as", {
    startsExpr: Lt
  }),
  _assert: Rr("assert", {
    startsExpr: Lt
  }),
  _async: Rr("async", {
    startsExpr: Lt
  }),
  _await: Rr("await", {
    startsExpr: Lt
  }),
  _defer: Rr("defer", {
    startsExpr: Lt
  }),
  _from: Rr("from", {
    startsExpr: Lt
  }),
  _get: Rr("get", {
    startsExpr: Lt
  }),
  _let: Rr("let", {
    startsExpr: Lt
  }),
  _meta: Rr("meta", {
    startsExpr: Lt
  }),
  _of: Rr("of", {
    startsExpr: Lt
  }),
  _sent: Rr("sent", {
    startsExpr: Lt
  }),
  _set: Rr("set", {
    startsExpr: Lt
  }),
  _source: Rr("source", {
    startsExpr: Lt
  }),
  _static: Rr("static", {
    startsExpr: Lt
  }),
  _using: Rr("using", {
    startsExpr: Lt
  }),
  _yield: Rr("yield", {
    startsExpr: Lt
  }),
  _asserts: Rr("asserts", {
    startsExpr: Lt
  }),
  _checks: Rr("checks", {
    startsExpr: Lt
  }),
  _exports: Rr("exports", {
    startsExpr: Lt
  }),
  _global: Rr("global", {
    startsExpr: Lt
  }),
  _implements: Rr("implements", {
    startsExpr: Lt
  }),
  _intrinsic: Rr("intrinsic", {
    startsExpr: Lt
  }),
  _infer: Rr("infer", {
    startsExpr: Lt
  }),
  _is: Rr("is", {
    startsExpr: Lt
  }),
  _mixins: Rr("mixins", {
    startsExpr: Lt
  }),
  _proto: Rr("proto", {
    startsExpr: Lt
  }),
  _require: Rr("require", {
    startsExpr: Lt
  }),
  _satisfies: Rr("satisfies", {
    startsExpr: Lt
  }),
  _keyof: Rr("keyof", {
    startsExpr: Lt
  }),
  _readonly: Rr("readonly", {
    startsExpr: Lt
  }),
  _unique: Rr("unique", {
    startsExpr: Lt
  }),
  _abstract: Rr("abstract", {
    startsExpr: Lt
  }),
  _declare: Rr("declare", {
    startsExpr: Lt
  }),
  _enum: Rr("enum", {
    startsExpr: Lt
  }),
  _module: Rr("module", {
    startsExpr: Lt
  }),
  _namespace: Rr("namespace", {
    startsExpr: Lt
  }),
  _interface: Rr("interface", {
    startsExpr: Lt
  }),
  _type: Rr("type", {
    startsExpr: Lt
  }),
  _opaque: Rr("opaque", {
    startsExpr: Lt
  }),
  name: nr("name", {
    startsExpr: Lt
  }),
  string: nr("string", {
    startsExpr: Lt
  }),
  num: nr("num", {
    startsExpr: Lt
  }),
  bigint: nr("bigint", {
    startsExpr: Lt
  }),
  decimal: nr("decimal", {
    startsExpr: Lt
  }),
  regexp: nr("regexp", {
    startsExpr: Lt
  }),
  privateName: nr("#name", {
    startsExpr: Lt
  }),
  eof: nr("eof"),
  jsxName: nr("jsxName"),
  jsxText: nr("jsxText", {
    beforeExpr: !0
  }),
  jsxTagStart: nr("jsxTagStart", {
    startsExpr: !0
  }),
  jsxTagEnd: nr("jsxTagEnd"),
  placeholder: nr("%%", {
    startsExpr: !0
  })
};
function xi(e) {
  return e >= 93 && e <= 132;
}
function dDt(e) {
  return e <= 92;
}
function Oc(e) {
  return e >= 58 && e <= 132;
}
function xye(e) {
  return e >= 58 && e <= 136;
}
function mDt(e) {
  return Y5[e];
}
function d8(e) {
  return X5[e];
}
function yDt(e) {
  return e >= 29 && e <= 33;
}
function KQ(e) {
  return e >= 129 && e <= 131;
}
function gDt(e) {
  return e >= 90 && e <= 92;
}
function Q5(e) {
  return e >= 58 && e <= 92;
}
function bDt(e) {
  return e >= 39 && e <= 59;
}
function vDt(e) {
  return e === 34;
}
function TDt(e) {
  return J5[e];
}
function SDt(e) {
  return e >= 121 && e <= 123;
}
function xDt(e) {
  return e >= 124 && e <= 130;
}
function Nh(e) {
  return z5[e];
}
function NP(e) {
  return G5[e];
}
function EDt(e) {
  return e === 57;
}
function Gw(e) {
  return e >= 24 && e <= 25;
}
function Hp(e) {
  return Qp[e];
}
Qp[8].updateContext = (e) => {
  e.pop();
}, Qp[5].updateContext = Qp[7].updateContext = Qp[23].updateContext = (e) => {
  e.push(Bi.brace);
}, Qp[22].updateContext = (e) => {
  e[e.length - 1] === Bi.template ? e.pop() : e.push(Bi.template);
}, Qp[142].updateContext = (e) => {
  e.push(Bi.j_expr, Bi.j_oTag);
};
let Z5 = "ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢎࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೝೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꟊꟐꟑꟓꟕ-ꟙꟲ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ﬀ-ﬆﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼＡ-Ｚａ-ｚｦ-ﾾￂ-ￇￊ-ￏￒ-ￗￚ-ￜ", Eye = "‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࢘-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-ᫎᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‌‍‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯・꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏０-９＿･";
const PDt = new RegExp("[" + Z5 + "]"), wDt = new RegExp("[" + Z5 + Eye + "]");
Z5 = Eye = null;
const Pye = [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, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 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, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 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, 16, 0, 30, 2, 3, 0, 15, 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, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 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, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191], ADt = [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, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 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, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 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, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
function m8(e, t) {
  let r = 65536;
  for (let i = 0, n = t.length; i < n; i += 2) {
    if (r += t[i], r > e)
      return !1;
    if (r += t[i + 1], r >= e)
      return !0;
  }
  return !1;
}
function af(e) {
  return e < 65 ? e === 36 : e <= 90 ? !0 : e < 97 ? e === 95 : e <= 122 ? !0 : e <= 65535 ? e >= 170 && PDt.test(String.fromCharCode(e)) : m8(e, Pye);
}
function Oy(e) {
  return e < 48 ? e === 36 : e < 58 ? !0 : e < 65 ? !1 : e <= 90 ? !0 : e < 97 ? e === 95 : e <= 122 ? !0 : e <= 65535 ? e >= 170 && wDt.test(String.fromCharCode(e)) : m8(e, Pye) || m8(e, ADt);
}
const e7 = {
  keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"],
  strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"],
  strictBind: ["eval", "arguments"]
}, CDt = new Set(e7.keyword), _Dt = new Set(e7.strict), IDt = new Set(e7.strictBind);
function wye(e, t) {
  return t && e === "await" || e === "enum";
}
function Aye(e, t) {
  return wye(e, t) || _Dt.has(e);
}
function Cye(e) {
  return IDt.has(e);
}
function _ye(e, t) {
  return Aye(e, t) || Cye(e);
}
function kDt(e) {
  return CDt.has(e);
}
function ODt(e, t, r) {
  return e === 64 && t === 64 && af(r);
}
const NDt = /* @__PURE__ */ new Set(["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete", "implements", "interface", "let", "package", "private", "protected", "public", "static", "yield", "eval", "arguments", "enum", "await"]);
function DDt(e) {
  return NDt.has(e);
}
let t7 = class {
  constructor(t) {
    this.flags = 0, this.names = /* @__PURE__ */ new Map(), this.firstLexicalName = "", this.flags = t;
  }
}, r7 = class {
  constructor(t, r) {
    this.parser = void 0, this.scopeStack = [], this.inModule = void 0, this.undefinedExports = /* @__PURE__ */ new Map(), this.parser = t, this.inModule = r;
  }
  get inTopLevel() {
    return (this.currentScope().flags & 1) > 0;
  }
  get inFunction() {
    return (this.currentVarScopeFlags() & 2) > 0;
  }
  get allowSuper() {
    return (this.currentThisScopeFlags() & 16) > 0;
  }
  get allowDirectSuper() {
    return (this.currentThisScopeFlags() & 32) > 0;
  }
  get inClass() {
    return (this.currentThisScopeFlags() & 64) > 0;
  }
  get inClassAndNotInNonArrowFunction() {
    const t = this.currentThisScopeFlags();
    return (t & 64) > 0 && (t & 2) === 0;
  }
  get inStaticBlock() {
    for (let t = this.scopeStack.length - 1; ; t--) {
      const {
        flags: r
      } = this.scopeStack[t];
      if (r & 128)
        return !0;
      if (r & 451)
        return !1;
    }
  }
  get inNonArrowFunction() {
    return (this.currentThisScopeFlags() & 2) > 0;
  }
  get treatFunctionsAsVar() {
    return this.treatFunctionsAsVarInScope(this.currentScope());
  }
  createScope(t) {
    return new t7(t);
  }
  enter(t) {
    this.scopeStack.push(this.createScope(t));
  }
  exit() {
    return this.scopeStack.pop().flags;
  }
  treatFunctionsAsVarInScope(t) {
    return !!(t.flags & 130 || !this.parser.inModule && t.flags & 1);
  }
  declareName(t, r, i) {
    let n = this.currentScope();
    if (r & 8 || r & 16) {
      this.checkRedeclarationInScope(n, t, r, i);
      let s = n.names.get(t) || 0;
      r & 16 ? s = s | 4 : (n.firstLexicalName || (n.firstLexicalName = t), s = s | 2), n.names.set(t, s), r & 8 && this.maybeExportDefined(n, t);
    } else if (r & 4)
      for (let s = this.scopeStack.length - 1; s >= 0 && (n = this.scopeStack[s], this.checkRedeclarationInScope(n, t, r, i), n.names.set(t, (n.names.get(t) || 0) | 1), this.maybeExportDefined(n, t), !(n.flags & 387)); --s)
        ;
    this.parser.inModule && n.flags & 1 && this.undefinedExports.delete(t);
  }
  maybeExportDefined(t, r) {
    this.parser.inModule && t.flags & 1 && this.undefinedExports.delete(r);
  }
  checkRedeclarationInScope(t, r, i, n) {
    this.isRedeclaredInScope(t, r, i) && this.parser.raise(rt.VarRedeclaration, n, {
      identifierName: r
    });
  }
  isRedeclaredInScope(t, r, i) {
    if (!(i & 1))
      return !1;
    if (i & 8)
      return t.names.has(r);
    const n = t.names.get(r);
    return i & 16 ? (n & 2) > 0 || !this.treatFunctionsAsVarInScope(t) && (n & 1) > 0 : (n & 2) > 0 && !(t.flags & 8 && t.firstLexicalName === r) || !this.treatFunctionsAsVarInScope(t) && (n & 4) > 0;
  }
  checkLocalExport(t) {
    const {
      name: r
    } = t;
    this.scopeStack[0].names.has(r) || this.undefinedExports.set(r, t.loc.start);
  }
  currentScope() {
    return this.scopeStack[this.scopeStack.length - 1];
  }
  currentVarScopeFlags() {
    for (let t = this.scopeStack.length - 1; ; t--) {
      const {
        flags: r
      } = this.scopeStack[t];
      if (r & 387)
        return r;
    }
  }
  currentThisScopeFlags() {
    for (let t = this.scopeStack.length - 1; ; t--) {
      const {
        flags: r
      } = this.scopeStack[t];
      if (r & 451 && !(r & 4))
        return r;
    }
  }
}, LDt = class extends t7 {
  constructor(...t) {
    super(...t), this.declareFunctions = /* @__PURE__ */ new Set();
  }
}, MDt = class extends r7 {
  createScope(t) {
    return new LDt(t);
  }
  declareName(t, r, i) {
    const n = this.currentScope();
    if (r & 2048) {
      this.checkRedeclarationInScope(n, t, r, i), this.maybeExportDefined(n, t), n.declareFunctions.add(t);
      return;
    }
    super.declareName(t, r, i);
  }
  isRedeclaredInScope(t, r, i) {
    if (super.isRedeclaredInScope(t, r, i))
      return !0;
    if (i & 2048 && !t.declareFunctions.has(r)) {
      const n = t.names.get(r);
      return (n & 4) > 0 || (n & 2) > 0;
    }
    return !1;
  }
  checkLocalExport(t) {
    this.scopeStack[0].declareFunctions.has(t.name) || super.checkLocalExport(t);
  }
}, RDt = class {
  constructor() {
    this.sawUnambiguousESM = !1, this.ambiguousScriptDifferentAst = !1;
  }
  hasPlugin(t) {
    if (typeof t == "string")
      return this.plugins.has(t);
    {
      const [r, i] = t;
      if (!this.hasPlugin(r))
        return !1;
      const n = this.plugins.get(r);
      for (const s of Object.keys(i))
        if ((n == null ? void 0 : n[s]) !== i[s])
          return !1;
      return !0;
    }
  }
  getPluginOption(t, r) {
    var i;
    return (i = this.plugins.get(t)) == null ? void 0 : i[r];
  }
};
function Iye(e, t) {
  e.trailingComments === void 0 ? e.trailingComments = t : e.trailingComments.unshift(...t);
}
function BDt(e, t) {
  e.leadingComments === void 0 ? e.leadingComments = t : e.leadingComments.unshift(...t);
}
function Zv(e, t) {
  e.innerComments === void 0 ? e.innerComments = t : e.innerComments.unshift(...t);
}
function n0(e, t, r) {
  let i = null, n = t.length;
  for (; i === null && n > 0; )
    i = t[--n];
  i === null || i.start > r.start ? Zv(e, r.comments) : Iye(i, r.comments);
}
let FDt = class extends RDt {
  addComment(t) {
    this.filename && (t.loc.filename = this.filename);
    const {
      commentsLen: r
    } = this.state;
    this.comments.length != r && (this.comments.length = r), this.comments.push(t), this.state.commentsLen++;
  }
  processComment(t) {
    const {
      commentStack: r
    } = this.state, i = r.length;
    if (i === 0)
      return;
    let n = i - 1;
    const s = r[n];
    s.start === t.end && (s.leadingNode = t, n--);
    const {
      start: a
    } = t;
    for (; n >= 0; n--) {
      const o = r[n], l = o.end;
      if (l > a)
        o.containingNode = t, this.finalizeComment(o), r.splice(n, 1);
      else {
        l === a && (o.trailingNode = t);
        break;
      }
    }
  }
  finalizeComment(t) {
    const {
      comments: r
    } = t;
    if (t.leadingNode !== null || t.trailingNode !== null)
      t.leadingNode !== null && Iye(t.leadingNode, r), t.trailingNode !== null && BDt(t.trailingNode, r);
    else {
      const {
        containingNode: i,
        start: n
      } = t;
      if (this.input.charCodeAt(n - 1) === 44)
        switch (i.type) {
          case "ObjectExpression":
          case "ObjectPattern":
          case "RecordExpression":
            n0(i, i.properties, t);
            break;
          case "CallExpression":
          case "OptionalCallExpression":
            n0(i, i.arguments, t);
            break;
          case "FunctionDeclaration":
          case "FunctionExpression":
          case "ArrowFunctionExpression":
          case "ObjectMethod":
          case "ClassMethod":
          case "ClassPrivateMethod":
            n0(i, i.params, t);
            break;
          case "ArrayExpression":
          case "ArrayPattern":
          case "TupleExpression":
            n0(i, i.elements, t);
            break;
          case "ExportNamedDeclaration":
          case "ImportDeclaration":
            n0(i, i.specifiers, t);
            break;
          default:
            Zv(i, r);
        }
      else
        Zv(i, r);
    }
  }
  finalizeRemainingComments() {
    const {
      commentStack: t
    } = this.state;
    for (let r = t.length - 1; r >= 0; r--)
      this.finalizeComment(t[r]);
    this.state.commentStack = [];
  }
  resetPreviousNodeTrailingComments(t) {
    const {
      commentStack: r
    } = this.state, {
      length: i
    } = r;
    if (i === 0)
      return;
    const n = r[i - 1];
    n.leadingNode === t && (n.leadingNode = null);
  }
  resetPreviousIdentifierLeadingComments(t) {
    const {
      commentStack: r
    } = this.state, {
      length: i
    } = r;
    i !== 0 && (r[i - 1].trailingNode === t ? r[i - 1].trailingNode = null : i >= 2 && r[i - 2].trailingNode === t && (r[i - 2].trailingNode = null));
  }
  takeSurroundingComments(t, r, i) {
    const {
      commentStack: n
    } = this.state, s = n.length;
    if (s === 0)
      return;
    let a = s - 1;
    for (; a >= 0; a--) {
      const o = n[a], l = o.end;
      if (o.start === i)
        o.leadingNode = t;
      else if (l === r)
        o.trailingNode = t;
      else if (l < r)
        break;
    }
  }
};
const kye = /\r\n?|[\n\u2028\u2029]/, S1 = new RegExp(kye.source, "g");
function nv(e) {
  switch (e) {
    case 10:
    case 13:
    case 8232:
    case 8233:
      return !0;
    default:
      return !1;
  }
}
const S3 = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g, DP = /(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g, zQ = new RegExp("(?=(" + DP.source + "))\\1" + /(?=[\n\r\u2028\u2029]|\/\*(?!.*?\*\/)|$)/.source, "y");
function jDt(e) {
  switch (e) {
    case 9:
    case 11:
    case 12:
    case 32:
    case 160:
    case 5760:
    case 8192:
    case 8193:
    case 8194:
    case 8195:
    case 8196:
    case 8197:
    case 8198:
    case 8199:
    case 8200:
    case 8201:
    case 8202:
    case 8239:
    case 8287:
    case 12288:
    case 65279:
      return !0;
    default:
      return !1;
  }
}
let $Dt = class Oye {
  constructor() {
    this.flags = 1024, this.curLine = void 0, this.lineStart = void 0, this.startLoc = void 0, this.endLoc = void 0, this.errors = [], this.potentialArrowAt = -1, this.noArrowAt = [], this.noArrowParamsConversionAt = [], this.topicContext = {
      maxNumOfResolvableTopics: 0,
      maxTopicIndex: null
    }, this.labels = [], this.commentsLen = 0, this.commentStack = [], this.pos = 0, this.type = 139, this.value = null, this.start = 0, this.end = 0, this.lastTokEndLoc = null, this.lastTokStartLoc = null, this.context = [Bi.brace], this.firstInvalidTemplateEscapePos = null, this.strictErrors = /* @__PURE__ */ new Map(), this.tokensLength = 0;
  }
  get strict() {
    return (this.flags & 1) > 0;
  }
  set strict(t) {
    t ? this.flags |= 1 : this.flags &= -2;
  }
  init({
    strictMode: t,
    sourceType: r,
    startLine: i,
    startColumn: n
  }) {
    this.strict = t === !1 ? !1 : t === !0 ? !0 : r === "module", this.curLine = i, this.lineStart = -n, this.startLoc = this.endLoc = new Oh(i, n, 0);
  }
  get maybeInArrowParameters() {
    return (this.flags & 2) > 0;
  }
  set maybeInArrowParameters(t) {
    t ? this.flags |= 2 : this.flags &= -3;
  }
  get inType() {
    return (this.flags & 4) > 0;
  }
  set inType(t) {
    t ? this.flags |= 4 : this.flags &= -5;
  }
  get noAnonFunctionType() {
    return (this.flags & 8) > 0;
  }
  set noAnonFunctionType(t) {
    t ? this.flags |= 8 : this.flags &= -9;
  }
  get hasFlowComment() {
    return (this.flags & 16) > 0;
  }
  set hasFlowComment(t) {
    t ? this.flags |= 16 : this.flags &= -17;
  }
  get isAmbientContext() {
    return (this.flags & 32) > 0;
  }
  set isAmbientContext(t) {
    t ? this.flags |= 32 : this.flags &= -33;
  }
  get inAbstractClass() {
    return (this.flags & 64) > 0;
  }
  set inAbstractClass(t) {
    t ? this.flags |= 64 : this.flags &= -65;
  }
  get inDisallowConditionalTypesContext() {
    return (this.flags & 128) > 0;
  }
  set inDisallowConditionalTypesContext(t) {
    t ? this.flags |= 128 : this.flags &= -129;
  }
  get soloAwait() {
    return (this.flags & 256) > 0;
  }
  set soloAwait(t) {
    t ? this.flags |= 256 : this.flags &= -257;
  }
  get inFSharpPipelineDirectBody() {
    return (this.flags & 512) > 0;
  }
  set inFSharpPipelineDirectBody(t) {
    t ? this.flags |= 512 : this.flags &= -513;
  }
  get canStartJSXElement() {
    return (this.flags & 1024) > 0;
  }
  set canStartJSXElement(t) {
    t ? this.flags |= 1024 : this.flags &= -1025;
  }
  get containsEsc() {
    return (this.flags & 2048) > 0;
  }
  set containsEsc(t) {
    t ? this.flags |= 2048 : this.flags &= -2049;
  }
  curPosition() {
    return new Oh(this.curLine, this.pos - this.lineStart, this.pos);
  }
  clone() {
    const t = new Oye();
    return t.flags = this.flags, t.curLine = this.curLine, t.lineStart = this.lineStart, t.startLoc = this.startLoc, t.endLoc = this.endLoc, t.errors = this.errors.slice(), t.potentialArrowAt = this.potentialArrowAt, t.noArrowAt = this.noArrowAt.slice(), t.noArrowParamsConversionAt = this.noArrowParamsConversionAt.slice(), t.topicContext = this.topicContext, t.labels = this.labels.slice(), t.commentsLen = this.commentsLen, t.commentStack = this.commentStack.slice(), t.pos = this.pos, t.type = this.type, t.value = this.value, t.start = this.start, t.end = this.end, t.lastTokEndLoc = this.lastTokEndLoc, t.lastTokStartLoc = this.lastTokStartLoc, t.context = this.context.slice(), t.firstInvalidTemplateEscapePos = this.firstInvalidTemplateEscapePos, t.strictErrors = this.strictErrors, t.tokensLength = this.tokensLength, t;
  }
};
var UDt = function(t) {
  return t >= 48 && t <= 57;
};
const GQ = {
  decBinOct: /* @__PURE__ */ new Set([46, 66, 69, 79, 95, 98, 101, 111]),
  hex: /* @__PURE__ */ new Set([46, 88, 95, 120])
}, x1 = {
  bin: (e) => e === 48 || e === 49,
  oct: (e) => e >= 48 && e <= 55,
  dec: (e) => e >= 48 && e <= 57,
  hex: (e) => e >= 48 && e <= 57 || e >= 65 && e <= 70 || e >= 97 && e <= 102
};
function YQ(e, t, r, i, n, s) {
  const a = r, o = i, l = n;
  let u = "", c = null, f = r;
  const {
    length: h
  } = t;
  for (; ; ) {
    if (r >= h) {
      s.unterminated(a, o, l), u += t.slice(f, r);
      break;
    }
    const m = t.charCodeAt(r);
    if (qDt(e, m, t, r)) {
      u += t.slice(f, r);
      break;
    }
    if (m === 92) {
      u += t.slice(f, r);
      const g = VDt(t, r, i, n, e === "template", s);
      g.ch === null && !c ? c = {
        pos: r,
        lineStart: i,
        curLine: n
      } : u += g.ch, {
        pos: r,
        lineStart: i,
        curLine: n
      } = g, f = r;
    } else
      m === 8232 || m === 8233 ? (++r, ++n, i = r) : m === 10 || m === 13 ? e === "template" ? (u += t.slice(f, r) + "\n", ++r, m === 13 && t.charCodeAt(r) === 10 && ++r, ++n, f = i = r) : s.unterminated(a, o, l) : ++r;
  }
  return {
    pos: r,
    str: u,
    firstInvalidLoc: c,
    lineStart: i,
    curLine: n,
    containsInvalid: !!c
  };
}
function qDt(e, t, r, i) {
  return e === "template" ? t === 96 || t === 36 && r.charCodeAt(i + 1) === 123 : t === (e === "double" ? 34 : 39);
}
function VDt(e, t, r, i, n, s) {
  const a = !n;
  t++;
  const o = (u) => ({
    pos: t,
    ch: u,
    lineStart: r,
    curLine: i
  }), l = e.charCodeAt(t++);
  switch (l) {
    case 110:
      return o("\n");
    case 114:
      return o("\r");
    case 120: {
      let u;
      return {
        code: u,
        pos: t
      } = y8(e, t, r, i, 2, !1, a, s), o(u === null ? null : String.fromCharCode(u));
    }
    case 117: {
      let u;
      return {
        code: u,
        pos: t
      } = Dye(e, t, r, i, a, s), o(u === null ? null : String.fromCodePoint(u));
    }
    case 116:
      return o("	");
    case 98:
      return o("\b");
    case 118:
      return o("\v");
    case 102:
      return o("\f");
    case 13:
      e.charCodeAt(t) === 10 && ++t;
    case 10:
      r = t, ++i;
    case 8232:
    case 8233:
      return o("");
    case 56:
    case 57:
      if (n)
        return o(null);
      s.strictNumericEscape(t - 1, r, i);
    default:
      if (l >= 48 && l <= 55) {
        const u = t - 1;
        let f = e.slice(u, t + 2).match(/^[0-7]+/)[0], h = parseInt(f, 8);
        h > 255 && (f = f.slice(0, -1), h = parseInt(f, 8)), t += f.length - 1;
        const m = e.charCodeAt(t);
        if (f !== "0" || m === 56 || m === 57) {
          if (n)
            return o(null);
          s.strictNumericEscape(u, r, i);
        }
        return o(String.fromCharCode(h));
      }
      return o(String.fromCharCode(l));
  }
}
function y8(e, t, r, i, n, s, a, o) {
  const l = t;
  let u;
  return {
    n: u,
    pos: t
  } = Nye(e, t, r, i, 16, n, s, !1, o, !a), u === null && (a ? o.invalidEscapeSequence(l, r, i) : t = l - 1), {
    code: u,
    pos: t
  };
}
function Nye(e, t, r, i, n, s, a, o, l, u) {
  const c = t, f = n === 16 ? GQ.hex : GQ.decBinOct, h = n === 16 ? x1.hex : n === 10 ? x1.dec : n === 8 ? x1.oct : x1.bin;
  let m = !1, g = 0;
  for (let y = 0, v = s == null ? 1 / 0 : s; y < v; ++y) {
    const T = e.charCodeAt(t);
    let S;
    if (T === 95 && o !== "bail") {
      const P = e.charCodeAt(t - 1), x = e.charCodeAt(t + 1);
      if (o) {
        if (Number.isNaN(x) || !h(x) || f.has(P) || f.has(x)) {
          if (u)
            return {
              n: null,
              pos: t
            };
          l.unexpectedNumericSeparator(t, r, i);
        }
      } else {
        if (u)
          return {
            n: null,
            pos: t
          };
        l.numericSeparatorInEscapeSequence(t, r, i);
      }
      ++t;
      continue;
    }
    if (T >= 97 ? S = T - 97 + 10 : T >= 65 ? S = T - 65 + 10 : UDt(T) ? S = T - 48 : S = 1 / 0, S >= n) {
      if (S <= 9 && u)
        return {
          n: null,
          pos: t
        };
      if (S <= 9 && l.invalidDigit(t, r, i, n))
        S = 0;
      else if (a)
        S = 0, m = !0;
      else
        break;
    }
    ++t, g = g * n + S;
  }
  return t === c || s != null && t - c !== s || m ? {
    n: null,
    pos: t
  } : {
    n: g,
    pos: t
  };
}
function Dye(e, t, r, i, n, s) {
  const a = e.charCodeAt(t);
  let o;
  if (a === 123) {
    if (++t, {
      code: o,
      pos: t
    } = y8(e, t, r, i, e.indexOf("}", t) - t, !0, n, s), ++t, o !== null && o > 1114111)
      if (n)
        s.invalidCodePoint(t, r, i);
      else
        return {
          code: null,
          pos: t
        };
  } else
    ({
      code: o,
      pos: t
    } = y8(e, t, r, i, 4, !1, n, s));
  return {
    code: o,
    pos: t
  };
}
function s0(e, t, r) {
  return new Oh(r, e - t, e);
}
const WDt = /* @__PURE__ */ new Set([103, 109, 115, 105, 121, 117, 100, 118]);
let hh = class {
  constructor(t) {
    this.type = t.type, this.value = t.value, this.start = t.start, this.end = t.end, this.loc = new zw(t.startLoc, t.endLoc);
  }
}, HDt = class extends FDt {
  constructor(t, r) {
    super(), this.isLookahead = void 0, this.tokens = [], this.errorHandlers_readInt = {
      invalidDigit: (i, n, s, a) => this.options.errorRecovery ? (this.raise(rt.InvalidDigit, s0(i, n, s), {
        radix: a
      }), !0) : !1,
      numericSeparatorInEscapeSequence: this.errorBuilder(rt.NumericSeparatorInEscapeSequence),
      unexpectedNumericSeparator: this.errorBuilder(rt.UnexpectedNumericSeparator)
    }, this.errorHandlers_readCodePoint = Object.assign({}, this.errorHandlers_readInt, {
      invalidEscapeSequence: this.errorBuilder(rt.InvalidEscapeSequence),
      invalidCodePoint: this.errorBuilder(rt.InvalidCodePoint)
    }), this.errorHandlers_readStringContents_string = Object.assign({}, this.errorHandlers_readCodePoint, {
      strictNumericEscape: (i, n, s) => {
        this.recordStrictModeErrors(rt.StrictNumericEscape, s0(i, n, s));
      },
      unterminated: (i, n, s) => {
        throw this.raise(rt.UnterminatedString, s0(i - 1, n, s));
      }
    }), this.errorHandlers_readStringContents_template = Object.assign({}, this.errorHandlers_readCodePoint, {
      strictNumericEscape: this.errorBuilder(rt.StrictNumericEscape),
      unterminated: (i, n, s) => {
        throw this.raise(rt.UnterminatedTemplate, s0(i, n, s));
      }
    }), this.state = new $Dt(), this.state.init(t), this.input = r, this.length = r.length, this.comments = [], this.isLookahead = !1;
  }
  pushToken(t) {
    this.tokens.length = this.state.tokensLength, this.tokens.push(t), ++this.state.tokensLength;
  }
  next() {
    this.checkKeywordEscapes(), this.options.tokens && this.pushToken(new hh(this.state)), this.state.lastTokEndLoc = this.state.endLoc, this.state.lastTokStartLoc = this.state.startLoc, this.nextToken();
  }
  eat(t) {
    return this.match(t) ? (this.next(), !0) : !1;
  }
  match(t) {
    return this.state.type === t;
  }
  createLookaheadState(t) {
    return {
      pos: t.pos,
      value: null,
      type: t.type,
      start: t.start,
      end: t.end,
      context: [this.curContext()],
      inType: t.inType,
      startLoc: t.startLoc,
      lastTokEndLoc: t.lastTokEndLoc,
      curLine: t.curLine,
      lineStart: t.lineStart,
      curPosition: t.curPosition
    };
  }
  lookahead() {
    const t = this.state;
    this.state = this.createLookaheadState(t), this.isLookahead = !0, this.nextToken(), this.isLookahead = !1;
    const r = this.state;
    return this.state = t, r;
  }
  nextTokenStart() {
    return this.nextTokenStartSince(this.state.pos);
  }
  nextTokenStartSince(t) {
    return S3.lastIndex = t, S3.test(this.input) ? S3.lastIndex : t;
  }
  lookaheadCharCode() {
    return this.input.charCodeAt(this.nextTokenStart());
  }
  nextTokenInLineStart() {
    return this.nextTokenInLineStartSince(this.state.pos);
  }
  nextTokenInLineStartSince(t) {
    return DP.lastIndex = t, DP.test(this.input) ? DP.lastIndex : t;
  }
  lookaheadInLineCharCode() {
    return this.input.charCodeAt(this.nextTokenInLineStart());
  }
  codePointAtPos(t) {
    let r = this.input.charCodeAt(t);
    if ((r & 64512) === 55296 && ++t < this.input.length) {
      const i = this.input.charCodeAt(t);
      (i & 64512) === 56320 && (r = 65536 + ((r & 1023) << 10) + (i & 1023));
    }
    return r;
  }
  setStrict(t) {
    this.state.strict = t, t && (this.state.strictErrors.forEach(([r, i]) => this.raise(r, i)), this.state.strictErrors.clear());
  }
  curContext() {
    return this.state.context[this.state.context.length - 1];
  }
  nextToken() {
    if (this.skipSpace(), this.state.start = this.state.pos, this.isLookahead || (this.state.startLoc = this.state.curPosition()), this.state.pos >= this.length) {
      this.finishToken(139);
      return;
    }
    this.getTokenFromCode(this.codePointAtPos(this.state.pos));
  }
  skipBlockComment(t) {
    let r;
    this.isLookahead || (r = this.state.curPosition());
    const i = this.state.pos, n = this.input.indexOf(t, i + 2);
    if (n === -1)
      throw this.raise(rt.UnterminatedComment, this.state.curPosition());
    for (this.state.pos = n + t.length, S1.lastIndex = i + 2; S1.test(this.input) && S1.lastIndex <= n; )
      ++this.state.curLine, this.state.lineStart = S1.lastIndex;
    if (this.isLookahead)
      return;
    const s = {
      type: "CommentBlock",
      value: this.input.slice(i + 2, n),
      start: i,
      end: n + t.length,
      loc: new zw(r, this.state.curPosition())
    };
    return this.options.tokens && this.pushToken(s), s;
  }
  skipLineComment(t) {
    const r = this.state.pos;
    let i;
    this.isLookahead || (i = this.state.curPosition());
    let n = this.input.charCodeAt(this.state.pos += t);
    if (this.state.pos < this.length)
      for (; !nv(n) && ++this.state.pos < this.length; )
        n = this.input.charCodeAt(this.state.pos);
    if (this.isLookahead)
      return;
    const s = this.state.pos, o = {
      type: "CommentLine",
      value: this.input.slice(r + t, s),
      start: r,
      end: s,
      loc: new zw(i, this.state.curPosition())
    };
    return this.options.tokens && this.pushToken(o), o;
  }
  skipSpace() {
    const t = this.state.pos, r = [];
    e:
      for (; this.state.pos < this.length; ) {
        const i = this.input.charCodeAt(this.state.pos);
        switch (i) {
          case 32:
          case 160:
          case 9:
            ++this.state.pos;
            break;
          case 13:
            this.input.charCodeAt(this.state.pos + 1) === 10 && ++this.state.pos;
          case 10:
          case 8232:
          case 8233:
            ++this.state.pos, ++this.state.curLine, this.state.lineStart = this.state.pos;
            break;
          case 47:
            switch (this.input.charCodeAt(this.state.pos + 1)) {
              case 42: {
                const n = this.skipBlockComment("*/");
                n !== void 0 && (this.addComment(n), this.options.attachComment && r.push(n));
                break;
              }
              case 47: {
                const n = this.skipLineComment(2);
                n !== void 0 && (this.addComment(n), this.options.attachComment && r.push(n));
                break;
              }
              default:
                break e;
            }
            break;
          default:
            if (jDt(i))
              ++this.state.pos;
            else if (i === 45 && !this.inModule && this.options.annexB) {
              const n = this.state.pos;
              if (this.input.charCodeAt(n + 1) === 45 && this.input.charCodeAt(n + 2) === 62 && (t === 0 || this.state.lineStart > t)) {
                const s = this.skipLineComment(3);
                s !== void 0 && (this.addComment(s), this.options.attachComment && r.push(s));
              } else
                break e;
            } else if (i === 60 && !this.inModule && this.options.annexB) {
              const n = this.state.pos;
              if (this.input.charCodeAt(n + 1) === 33 && this.input.charCodeAt(n + 2) === 45 && this.input.charCodeAt(n + 3) === 45) {
                const s = this.skipLineComment(4);
                s !== void 0 && (this.addComment(s), this.options.attachComment && r.push(s));
              } else
                break e;
            } else
              break e;
        }
      }
    if (r.length > 0) {
      const i = this.state.pos, n = {
        start: t,
        end: i,
        comments: r,
        leadingNode: null,
        trailingNode: null,
        containingNode: null
      };
      this.state.commentStack.push(n);
    }
  }
  finishToken(t, r) {
    this.state.end = this.state.pos, this.state.endLoc = this.state.curPosition();
    const i = this.state.type;
    this.state.type = t, this.state.value = r, this.isLookahead || this.updateContext(i);
  }
  replaceToken(t) {
    this.state.type = t, this.updateContext();
  }
  readToken_numberSign() {
    if (this.state.pos === 0 && this.readToken_interpreter())
      return;
    const t = this.state.pos + 1, r = this.codePointAtPos(t);
    if (r >= 48 && r <= 57)
      throw this.raise(rt.UnexpectedDigitAfterHash, this.state.curPosition());
    if (r === 123 || r === 91 && this.hasPlugin("recordAndTuple")) {
      if (this.expectPlugin("recordAndTuple"), this.getPluginOption("recordAndTuple", "syntaxType") === "bar")
        throw this.raise(r === 123 ? rt.RecordExpressionHashIncorrectStartSyntaxType : rt.TupleExpressionHashIncorrectStartSyntaxType, this.state.curPosition());
      this.state.pos += 2, r === 123 ? this.finishToken(7) : this.finishToken(1);
    } else
      af(r) ? (++this.state.pos, this.finishToken(138, this.readWord1(r))) : r === 92 ? (++this.state.pos, this.finishToken(138, this.readWord1())) : this.finishOp(27, 1);
  }
  readToken_dot() {
    const t = this.input.charCodeAt(this.state.pos + 1);
    if (t >= 48 && t <= 57) {
      this.readNumber(!0);
      return;
    }
    t === 46 && this.input.charCodeAt(this.state.pos + 2) === 46 ? (this.state.pos += 3, this.finishToken(21)) : (++this.state.pos, this.finishToken(16));
  }
  readToken_slash() {
    this.input.charCodeAt(this.state.pos + 1) === 61 ? this.finishOp(31, 2) : this.finishOp(56, 1);
  }
  readToken_interpreter() {
    if (this.state.pos !== 0 || this.length < 2)
      return !1;
    let t = this.input.charCodeAt(this.state.pos + 1);
    if (t !== 33)
      return !1;
    const r = this.state.pos;
    for (this.state.pos += 1; !nv(t) && ++this.state.pos < this.length; )
      t = this.input.charCodeAt(this.state.pos);
    const i = this.input.slice(r + 2, this.state.pos);
    return this.finishToken(28, i), !0;
  }
  readToken_mult_modulo(t) {
    let r = t === 42 ? 55 : 54, i = 1, n = this.input.charCodeAt(this.state.pos + 1);
    t === 42 && n === 42 && (i++, n = this.input.charCodeAt(this.state.pos + 2), r = 57), n === 61 && !this.state.inType && (i++, r = t === 37 ? 33 : 30), this.finishOp(r, i);
  }
  readToken_pipe_amp(t) {
    const r = this.input.charCodeAt(this.state.pos + 1);
    if (r === t) {
      this.input.charCodeAt(this.state.pos + 2) === 61 ? this.finishOp(30, 3) : this.finishOp(t === 124 ? 41 : 42, 2);
      return;
    }
    if (t === 124) {
      if (r === 62) {
        this.finishOp(39, 2);
        return;
      }
      if (this.hasPlugin("recordAndTuple") && r === 125) {
        if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
          throw this.raise(rt.RecordExpressionBarIncorrectEndSyntaxType, this.state.curPosition());
        this.state.pos += 2, this.finishToken(9);
        return;
      }
      if (this.hasPlugin("recordAndTuple") && r === 93) {
        if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
          throw this.raise(rt.TupleExpressionBarIncorrectEndSyntaxType, this.state.curPosition());
        this.state.pos += 2, this.finishToken(4);
        return;
      }
    }
    if (r === 61) {
      this.finishOp(30, 2);
      return;
    }
    this.finishOp(t === 124 ? 43 : 45, 1);
  }
  readToken_caret() {
    const t = this.input.charCodeAt(this.state.pos + 1);
    t === 61 && !this.state.inType ? this.finishOp(32, 2) : t === 94 && this.hasPlugin(["pipelineOperator", {
      proposal: "hack",
      topicToken: "^^"
    }]) ? (this.finishOp(37, 2), this.input.codePointAt(this.state.pos) === 94 && this.unexpected()) : this.finishOp(44, 1);
  }
  readToken_atSign() {
    this.input.charCodeAt(this.state.pos + 1) === 64 && this.hasPlugin(["pipelineOperator", {
      proposal: "hack",
      topicToken: "@@"
    }]) ? this.finishOp(38, 2) : this.finishOp(26, 1);
  }
  readToken_plus_min(t) {
    const r = this.input.charCodeAt(this.state.pos + 1);
    if (r === t) {
      this.finishOp(34, 2);
      return;
    }
    r === 61 ? this.finishOp(30, 2) : this.finishOp(53, 1);
  }
  readToken_lt() {
    const {
      pos: t
    } = this.state, r = this.input.charCodeAt(t + 1);
    if (r === 60) {
      if (this.input.charCodeAt(t + 2) === 61) {
        this.finishOp(30, 3);
        return;
      }
      this.finishOp(51, 2);
      return;
    }
    if (r === 61) {
      this.finishOp(49, 2);
      return;
    }
    this.finishOp(47, 1);
  }
  readToken_gt() {
    const {
      pos: t
    } = this.state, r = this.input.charCodeAt(t + 1);
    if (r === 62) {
      const i = this.input.charCodeAt(t + 2) === 62 ? 3 : 2;
      if (this.input.charCodeAt(t + i) === 61) {
        this.finishOp(30, i + 1);
        return;
      }
      this.finishOp(52, i);
      return;
    }
    if (r === 61) {
      this.finishOp(49, 2);
      return;
    }
    this.finishOp(48, 1);
  }
  readToken_eq_excl(t) {
    const r = this.input.charCodeAt(this.state.pos + 1);
    if (r === 61) {
      this.finishOp(46, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2);
      return;
    }
    if (t === 61 && r === 62) {
      this.state.pos += 2, this.finishToken(19);
      return;
    }
    this.finishOp(t === 61 ? 29 : 35, 1);
  }
  readToken_question() {
    const t = this.input.charCodeAt(this.state.pos + 1), r = this.input.charCodeAt(this.state.pos + 2);
    t === 63 ? r === 61 ? this.finishOp(30, 3) : this.finishOp(40, 2) : t === 46 && !(r >= 48 && r <= 57) ? (this.state.pos += 2, this.finishToken(18)) : (++this.state.pos, this.finishToken(17));
  }
  getTokenFromCode(t) {
    switch (t) {
      case 46:
        this.readToken_dot();
        return;
      case 40:
        ++this.state.pos, this.finishToken(10);
        return;
      case 41:
        ++this.state.pos, this.finishToken(11);
        return;
      case 59:
        ++this.state.pos, this.finishToken(13);
        return;
      case 44:
        ++this.state.pos, this.finishToken(12);
        return;
      case 91:
        if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) {
          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
            throw this.raise(rt.TupleExpressionBarIncorrectStartSyntaxType, this.state.curPosition());
          this.state.pos += 2, this.finishToken(2);
        } else
          ++this.state.pos, this.finishToken(0);
        return;
      case 93:
        ++this.state.pos, this.finishToken(3);
        return;
      case 123:
        if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) {
          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
            throw this.raise(rt.RecordExpressionBarIncorrectStartSyntaxType, this.state.curPosition());
          this.state.pos += 2, this.finishToken(6);
        } else
          ++this.state.pos, this.finishToken(5);
        return;
      case 125:
        ++this.state.pos, this.finishToken(8);
        return;
      case 58:
        this.hasPlugin("functionBind") && this.input.charCodeAt(this.state.pos + 1) === 58 ? this.finishOp(15, 2) : (++this.state.pos, this.finishToken(14));
        return;
      case 63:
        this.readToken_question();
        return;
      case 96:
        this.readTemplateToken();
        return;
      case 48: {
        const r = this.input.charCodeAt(this.state.pos + 1);
        if (r === 120 || r === 88) {
          this.readRadixNumber(16);
          return;
        }
        if (r === 111 || r === 79) {
          this.readRadixNumber(8);
          return;
        }
        if (r === 98 || r === 66) {
          this.readRadixNumber(2);
          return;
        }
      }
      case 49:
      case 50:
      case 51:
      case 52:
      case 53:
      case 54:
      case 55:
      case 56:
      case 57:
        this.readNumber(!1);
        return;
      case 34:
      case 39:
        this.readString(t);
        return;
      case 47:
        this.readToken_slash();
        return;
      case 37:
      case 42:
        this.readToken_mult_modulo(t);
        return;
      case 124:
      case 38:
        this.readToken_pipe_amp(t);
        return;
      case 94:
        this.readToken_caret();
        return;
      case 43:
      case 45:
        this.readToken_plus_min(t);
        return;
      case 60:
        this.readToken_lt();
        return;
      case 62:
        this.readToken_gt();
        return;
      case 61:
      case 33:
        this.readToken_eq_excl(t);
        return;
      case 126:
        this.finishOp(36, 1);
        return;
      case 64:
        this.readToken_atSign();
        return;
      case 35:
        this.readToken_numberSign();
        return;
      case 92:
        this.readWord();
        return;
      default:
        if (af(t)) {
          this.readWord(t);
          return;
        }
    }
    throw this.raise(rt.InvalidOrUnexpectedToken, this.state.curPosition(), {
      unexpected: String.fromCodePoint(t)
    });
  }
  finishOp(t, r) {
    const i = this.input.slice(this.state.pos, this.state.pos + r);
    this.state.pos += r, this.finishToken(t, i);
  }
  readRegexp() {
    const t = this.state.startLoc, r = this.state.start + 1;
    let i, n, {
      pos: s
    } = this.state;
    for (; ; ++s) {
      if (s >= this.length)
        throw this.raise(rt.UnterminatedRegExp, ua(t, 1));
      const u = this.input.charCodeAt(s);
      if (nv(u))
        throw this.raise(rt.UnterminatedRegExp, ua(t, 1));
      if (i)
        i = !1;
      else {
        if (u === 91)
          n = !0;
        else if (u === 93 && n)
          n = !1;
        else if (u === 47 && !n)
          break;
        i = u === 92;
      }
    }
    const a = this.input.slice(r, s);
    ++s;
    let o = "";
    const l = () => ua(t, s + 2 - r);
    for (; s < this.length; ) {
      const u = this.codePointAtPos(s), c = String.fromCharCode(u);
      if (WDt.has(u))
        u === 118 ? o.includes("u") && this.raise(rt.IncompatibleRegExpUVFlags, l()) : u === 117 && o.includes("v") && this.raise(rt.IncompatibleRegExpUVFlags, l()), o.includes(c) && this.raise(rt.DuplicateRegExpFlags, l());
      else if (Oy(u) || u === 92)
        this.raise(rt.MalformedRegExpFlags, l());
      else
        break;
      ++s, o += c;
    }
    this.state.pos = s, this.finishToken(137, {
      pattern: a,
      flags: o
    });
  }
  readInt(t, r, i = !1, n = !0) {
    const {
      n: s,
      pos: a
    } = Nye(this.input, this.state.pos, this.state.lineStart, this.state.curLine, t, r, i, n, this.errorHandlers_readInt, !1);
    return this.state.pos = a, s;
  }
  readRadixNumber(t) {
    const r = this.state.curPosition();
    let i = !1;
    this.state.pos += 2;
    const n = this.readInt(t);
    n == null && this.raise(rt.InvalidDigit, ua(r, 2), {
      radix: t
    });
    const s = this.input.charCodeAt(this.state.pos);
    if (s === 110)
      ++this.state.pos, i = !0;
    else if (s === 109)
      throw this.raise(rt.InvalidDecimal, r);
    if (af(this.codePointAtPos(this.state.pos)))
      throw this.raise(rt.NumberIdentifier, this.state.curPosition());
    if (i) {
      const a = this.input.slice(r.index, this.state.pos).replace(/[_n]/g, "");
      this.finishToken(135, a);
      return;
    }
    this.finishToken(134, n);
  }
  readNumber(t) {
    const r = this.state.pos, i = this.state.curPosition();
    let n = !1, s = !1, a = !1, o = !1, l = !1;
    !t && this.readInt(10) === null && this.raise(rt.InvalidNumber, this.state.curPosition());
    const u = this.state.pos - r >= 2 && this.input.charCodeAt(r) === 48;
    if (u) {
      const m = this.input.slice(r, this.state.pos);
      if (this.recordStrictModeErrors(rt.StrictOctalLiteral, i), !this.state.strict) {
        const g = m.indexOf("_");
        g > 0 && this.raise(rt.ZeroDigitNumericSeparator, ua(i, g));
      }
      l = u && !/[89]/.test(m);
    }
    let c = this.input.charCodeAt(this.state.pos);
    if (c === 46 && !l && (++this.state.pos, this.readInt(10), n = !0, c = this.input.charCodeAt(this.state.pos)), (c === 69 || c === 101) && !l && (c = this.input.charCodeAt(++this.state.pos), (c === 43 || c === 45) && ++this.state.pos, this.readInt(10) === null && this.raise(rt.InvalidOrMissingExponent, i), n = !0, o = !0, c = this.input.charCodeAt(this.state.pos)), c === 110 && ((n || u) && this.raise(rt.InvalidBigIntLiteral, i), ++this.state.pos, s = !0), c === 109 && (this.expectPlugin("decimal", this.state.curPosition()), (o || u) && this.raise(rt.InvalidDecimal, i), ++this.state.pos, a = !0), af(this.codePointAtPos(this.state.pos)))
      throw this.raise(rt.NumberIdentifier, this.state.curPosition());
    const f = this.input.slice(r, this.state.pos).replace(/[_mn]/g, "");
    if (s) {
      this.finishToken(135, f);
      return;
    }
    if (a) {
      this.finishToken(136, f);
      return;
    }
    const h = l ? parseInt(f, 8) : parseFloat(f);
    this.finishToken(134, h);
  }
  readCodePoint(t) {
    const {
      code: r,
      pos: i
    } = Dye(this.input, this.state.pos, this.state.lineStart, this.state.curLine, t, this.errorHandlers_readCodePoint);
    return this.state.pos = i, r;
  }
  readString(t) {
    const {
      str: r,
      pos: i,
      curLine: n,
      lineStart: s
    } = YQ(t === 34 ? "double" : "single", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_string);
    this.state.pos = i + 1, this.state.lineStart = s, this.state.curLine = n, this.finishToken(133, r);
  }
  readTemplateContinuation() {
    this.match(8) || this.unexpected(null, 8), this.state.pos--, this.readTemplateToken();
  }
  readTemplateToken() {
    const t = this.input[this.state.pos], {
      str: r,
      firstInvalidLoc: i,
      pos: n,
      curLine: s,
      lineStart: a
    } = YQ("template", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_template);
    this.state.pos = n + 1, this.state.lineStart = a, this.state.curLine = s, i && (this.state.firstInvalidTemplateEscapePos = new Oh(i.curLine, i.pos - i.lineStart, i.pos)), this.input.codePointAt(n) === 96 ? this.finishToken(24, i ? null : t + r + "`") : (this.state.pos++, this.finishToken(25, i ? null : t + r + "${"));
  }
  recordStrictModeErrors(t, r) {
    const i = r.index;
    this.state.strict && !this.state.strictErrors.has(i) ? this.raise(t, r) : this.state.strictErrors.set(i, [t, r]);
  }
  readWord1(t) {
    this.state.containsEsc = !1;
    let r = "";
    const i = this.state.pos;
    let n = this.state.pos;
    for (t !== void 0 && (this.state.pos += t <= 65535 ? 1 : 2); this.state.pos < this.length; ) {
      const s = this.codePointAtPos(this.state.pos);
      if (Oy(s))
        this.state.pos += s <= 65535 ? 1 : 2;
      else if (s === 92) {
        this.state.containsEsc = !0, r += this.input.slice(n, this.state.pos);
        const a = this.state.curPosition(), o = this.state.pos === i ? af : Oy;
        if (this.input.charCodeAt(++this.state.pos) !== 117) {
          this.raise(rt.MissingUnicodeEscape, this.state.curPosition()), n = this.state.pos - 1;
          continue;
        }
        ++this.state.pos;
        const l = this.readCodePoint(!0);
        l !== null && (o(l) || this.raise(rt.EscapedCharNotAnIdentifier, a), r += String.fromCodePoint(l)), n = this.state.pos;
      } else
        break;
    }
    return r + this.input.slice(n, this.state.pos);
  }
  readWord(t) {
    const r = this.readWord1(t), i = K5.get(r);
    i !== void 0 ? this.finishToken(i, Nh(i)) : this.finishToken(132, r);
  }
  checkKeywordEscapes() {
    const {
      type: t
    } = this.state;
    Q5(t) && this.state.containsEsc && this.raise(rt.InvalidEscapedReservedWord, this.state.startLoc, {
      reservedWord: Nh(t)
    });
  }
  raise(t, r, i = {}) {
    const n = r instanceof Oh ? r : r.loc.start, s = t(n, i);
    if (!this.options.errorRecovery)
      throw s;
    return this.isLookahead || this.state.errors.push(s), s;
  }
  raiseOverwrite(t, r, i = {}) {
    const n = r instanceof Oh ? r : r.loc.start, s = n.index, a = this.state.errors;
    for (let o = a.length - 1; o >= 0; o--) {
      const l = a[o];
      if (l.loc.index === s)
        return a[o] = t(n, i);
      if (l.loc.index < s)
        break;
    }
    return this.raise(t, r, i);
  }
  updateContext(t) {
  }
  unexpected(t, r) {
    throw this.raise(rt.UnexpectedToken, t != null ? t : this.state.startLoc, {
      expected: r ? Nh(r) : null
    });
  }
  expectPlugin(t, r) {
    if (this.hasPlugin(t))
      return !0;
    throw this.raise(rt.MissingPlugin, r != null ? r : this.state.startLoc, {
      missingPlugin: [t]
    });
  }
  expectOnePlugin(t) {
    if (!t.some((r) => this.hasPlugin(r)))
      throw this.raise(rt.MissingOneOfPlugins, this.state.startLoc, {
        missingPlugin: t
      });
  }
  errorBuilder(t) {
    return (r, i, n) => {
      this.raise(t, s0(r, i, n));
    };
  }
}, KDt = class {
  constructor() {
    this.privateNames = /* @__PURE__ */ new Set(), this.loneAccessors = /* @__PURE__ */ new Map(), this.undefinedPrivateNames = /* @__PURE__ */ new Map();
  }
}, zDt = class {
  constructor(t) {
    this.parser = void 0, this.stack = [], this.undefinedPrivateNames = /* @__PURE__ */ new Map(), this.parser = t;
  }
  current() {
    return this.stack[this.stack.length - 1];
  }
  enter() {
    this.stack.push(new KDt());
  }
  exit() {
    const t = this.stack.pop(), r = this.current();
    for (const [i, n] of Array.from(t.undefinedPrivateNames))
      r ? r.undefinedPrivateNames.has(i) || r.undefinedPrivateNames.set(i, n) : this.parser.raise(rt.InvalidPrivateFieldResolution, n, {
        identifierName: i
      });
  }
  declarePrivateName(t, r, i) {
    const {
      privateNames: n,
      loneAccessors: s,
      undefinedPrivateNames: a
    } = this.current();
    let o = n.has(t);
    if (r & 3) {
      const l = o && s.get(t);
      if (l) {
        const u = l & 4, c = r & 4, f = l & 3, h = r & 3;
        o = f === h || u !== c, o || s.delete(t);
      } else
        o || s.set(t, r);
    }
    o && this.parser.raise(rt.PrivateNameRedeclaration, i, {
      identifierName: t
    }), n.add(t), a.delete(t);
  }
  usePrivateName(t, r) {
    let i;
    for (i of this.stack)
      if (i.privateNames.has(t))
        return;
    i ? i.undefinedPrivateNames.set(t, r) : this.parser.raise(rt.InvalidPrivateFieldResolution, r, {
      identifierName: t
    });
  }
}, xI = class {
  constructor(t = 0) {
    this.type = t;
  }
  canBeArrowParameterDeclaration() {
    return this.type === 2 || this.type === 1;
  }
  isCertainlyParameterDeclaration() {
    return this.type === 3;
  }
}, Lye = class extends xI {
  constructor(t) {
    super(t), this.declarationErrors = /* @__PURE__ */ new Map();
  }
  recordDeclarationError(t, r) {
    const i = r.index;
    this.declarationErrors.set(i, [t, r]);
  }
  clearDeclarationError(t) {
    this.declarationErrors.delete(t);
  }
  iterateErrors(t) {
    this.declarationErrors.forEach(t);
  }
}, GDt = class {
  constructor(t) {
    this.parser = void 0, this.stack = [new xI()], this.parser = t;
  }
  enter(t) {
    this.stack.push(t);
  }
  exit() {
    this.stack.pop();
  }
  recordParameterInitializerError(t, r) {
    const i = r.loc.start, {
      stack: n
    } = this;
    let s = n.length - 1, a = n[s];
    for (; !a.isCertainlyParameterDeclaration(); ) {
      if (a.canBeArrowParameterDeclaration())
        a.recordDeclarationError(t, i);
      else
        return;
      a = n[--s];
    }
    this.parser.raise(t, i);
  }
  recordArrowParameterBindingError(t, r) {
    const {
      stack: i
    } = this, n = i[i.length - 1], s = r.loc.start;
    if (n.isCertainlyParameterDeclaration())
      this.parser.raise(t, s);
    else if (n.canBeArrowParameterDeclaration())
      n.recordDeclarationError(t, s);
    else
      return;
  }
  recordAsyncArrowParametersError(t) {
    const {
      stack: r
    } = this;
    let i = r.length - 1, n = r[i];
    for (; n.canBeArrowParameterDeclaration(); )
      n.type === 2 && n.recordDeclarationError(rt.AwaitBindingIdentifier, t), n = r[--i];
  }
  validateAsPattern() {
    const {
      stack: t
    } = this, r = t[t.length - 1];
    r.canBeArrowParameterDeclaration() && r.iterateErrors(([i, n]) => {
      this.parser.raise(i, n);
      let s = t.length - 2, a = t[s];
      for (; a.canBeArrowParameterDeclaration(); )
        a.clearDeclarationError(n.index), a = t[--s];
    });
  }
};
function YDt() {
  return new xI(3);
}
function XDt() {
  return new Lye(1);
}
function JDt() {
  return new Lye(2);
}
function Mye() {
  return new xI();
}
let QDt = class {
  constructor() {
    this.stacks = [];
  }
  enter(t) {
    this.stacks.push(t);
  }
  exit() {
    this.stacks.pop();
  }
  currentFlags() {
    return this.stacks[this.stacks.length - 1];
  }
  get hasAwait() {
    return (this.currentFlags() & 2) > 0;
  }
  get hasYield() {
    return (this.currentFlags() & 1) > 0;
  }
  get hasReturn() {
    return (this.currentFlags() & 4) > 0;
  }
  get hasIn() {
    return (this.currentFlags() & 8) > 0;
  }
};
function LP(e, t) {
  return (e ? 2 : 0) | (t ? 1 : 0);
}
let ZDt = class extends HDt {
  addExtra(t, r, i, n = !0) {
    if (!t)
      return;
    const s = t.extra = t.extra || {};
    n ? s[r] = i : Object.defineProperty(s, r, {
      enumerable: n,
      value: i
    });
  }
  isContextual(t) {
    return this.state.type === t && !this.state.containsEsc;
  }
  isUnparsedContextual(t, r) {
    const i = t + r.length;
    if (this.input.slice(t, i) === r) {
      const n = this.input.charCodeAt(i);
      return !(Oy(n) || (n & 64512) === 55296);
    }
    return !1;
  }
  isLookaheadContextual(t) {
    const r = this.nextTokenStart();
    return this.isUnparsedContextual(r, t);
  }
  eatContextual(t) {
    return this.isContextual(t) ? (this.next(), !0) : !1;
  }
  expectContextual(t, r) {
    if (!this.eatContextual(t)) {
      if (r != null)
        throw this.raise(r, this.state.startLoc);
      this.unexpected(null, t);
    }
  }
  canInsertSemicolon() {
    return this.match(139) || this.match(8) || this.hasPrecedingLineBreak();
  }
  hasPrecedingLineBreak() {
    return kye.test(this.input.slice(this.state.lastTokEndLoc.index, this.state.start));
  }
  hasFollowingLineBreak() {
    return zQ.lastIndex = this.state.end, zQ.test(this.input);
  }
  isLineTerminator() {
    return this.eat(13) || this.canInsertSemicolon();
  }
  semicolon(t = !0) {
    (t ? this.isLineTerminator() : this.eat(13)) || this.raise(rt.MissingSemicolon, this.state.lastTokEndLoc);
  }
  expect(t, r) {
    this.eat(t) || this.unexpected(r, t);
  }
  tryParse(t, r = this.state.clone()) {
    const i = {
      node: null
    };
    try {
      const n = t((s = null) => {
        throw i.node = s, i;
      });
      if (this.state.errors.length > r.errors.length) {
        const s = this.state;
        return this.state = r, this.state.tokensLength = s.tokensLength, {
          node: n,
          error: s.errors[r.errors.length],
          thrown: !1,
          aborted: !1,
          failState: s
        };
      }
      return {
        node: n,
        error: null,
        thrown: !1,
        aborted: !1,
        failState: null
      };
    } catch (n) {
      const s = this.state;
      if (this.state = r, n instanceof SyntaxError)
        return {
          node: null,
          error: n,
          thrown: !0,
          aborted: !1,
          failState: s
        };
      if (n === i)
        return {
          node: i.node,
          error: null,
          thrown: !1,
          aborted: !0,
          failState: s
        };
      throw n;
    }
  }
  checkExpressionErrors(t, r) {
    if (!t)
      return !1;
    const {
      shorthandAssignLoc: i,
      doubleProtoLoc: n,
      privateKeyLoc: s,
      optionalParametersLoc: a
    } = t, o = !!i || !!n || !!a || !!s;
    if (!r)
      return o;
    i != null && this.raise(rt.InvalidCoverInitializedName, i), n != null && this.raise(rt.DuplicateProto, n), s != null && this.raise(rt.UnexpectedPrivateField, s), a != null && this.unexpected(a);
  }
  isLiteralPropertyName() {
    return xye(this.state.type);
  }
  isPrivateName(t) {
    return t.type === "PrivateName";
  }
  getPrivateNameSV(t) {
    return t.id.name;
  }
  hasPropertyAsPrivateName(t) {
    return (t.type === "MemberExpression" || t.type === "OptionalMemberExpression") && this.isPrivateName(t.property);
  }
  isObjectProperty(t) {
    return t.type === "ObjectProperty";
  }
  isObjectMethod(t) {
    return t.type === "ObjectMethod";
  }
  initializeScopes(t = this.options.sourceType === "module") {
    const r = this.state.labels;
    this.state.labels = [];
    const i = this.exportedIdentifiers;
    this.exportedIdentifiers = /* @__PURE__ */ new Set();
    const n = this.inModule;
    this.inModule = t;
    const s = this.scope, a = this.getScopeHandler();
    this.scope = new a(this, t);
    const o = this.prodParam;
    this.prodParam = new QDt();
    const l = this.classScope;
    this.classScope = new zDt(this);
    const u = this.expressionScope;
    return this.expressionScope = new GDt(this), () => {
      this.state.labels = r, this.exportedIdentifiers = i, this.inModule = n, this.scope = s, this.prodParam = o, this.classScope = l, this.expressionScope = u;
    };
  }
  enterInitialScopes() {
    let t = 0;
    this.inModule && (t |= 2), this.scope.enter(1), this.prodParam.enter(t);
  }
  checkDestructuringPrivate(t) {
    const {
      privateKeyLoc: r
    } = t;
    r !== null && this.expectPlugin("destructuringPrivate", r);
  }
}, MP = class {
  constructor() {
    this.shorthandAssignLoc = null, this.doubleProtoLoc = null, this.privateKeyLoc = null, this.optionalParametersLoc = null;
  }
}, Yw = class {
  constructor(t, r, i) {
    this.type = "", this.start = r, this.end = 0, this.loc = new zw(i), t != null && t.options.ranges && (this.range = [r, 0]), t != null && t.filename && (this.loc.filename = t.filename);
  }
};
const i7 = Yw.prototype;
i7.__clone = function() {
  const e = new Yw(void 0, this.start, this.loc.start), t = Object.keys(this);
  for (let r = 0, i = t.length; r < i; r++) {
    const n = t[r];
    n !== "leadingComments" && n !== "trailingComments" && n !== "innerComments" && (e[n] = this[n]);
  }
  return e;
};
function eLt(e) {
  return Tf(e);
}
function Tf(e) {
  const {
    type: t,
    start: r,
    end: i,
    loc: n,
    range: s,
    extra: a,
    name: o
  } = e, l = Object.create(i7);
  return l.type = t, l.start = r, l.end = i, l.loc = n, l.range = s, l.extra = a, l.name = o, t === "Placeholder" && (l.expectedNode = e.expectedNode), l;
}
function tLt(e) {
  const {
    type: t,
    start: r,
    end: i,
    loc: n,
    range: s,
    extra: a
  } = e;
  if (t === "Placeholder")
    return eLt(e);
  const o = Object.create(i7);
  return o.type = t, o.start = r, o.end = i, o.loc = n, o.range = s, e.raw !== void 0 ? o.raw = e.raw : o.extra = a, o.value = e.value, o;
}
let rLt = class extends ZDt {
  startNode() {
    const t = this.state.startLoc;
    return new Yw(this, t.index, t);
  }
  startNodeAt(t) {
    return new Yw(this, t.index, t);
  }
  startNodeAtNode(t) {
    return this.startNodeAt(t.loc.start);
  }
  finishNode(t, r) {
    return this.finishNodeAt(t, r, this.state.lastTokEndLoc);
  }
  finishNodeAt(t, r, i) {
    return t.type = r, t.end = i.index, t.loc.end = i, this.options.ranges && (t.range[1] = i.index), this.options.attachComment && this.processComment(t), t;
  }
  resetStartLocation(t, r) {
    t.start = r.index, t.loc.start = r, this.options.ranges && (t.range[0] = r.index);
  }
  resetEndLocation(t, r = this.state.lastTokEndLoc) {
    t.end = r.index, t.loc.end = r, this.options.ranges && (t.range[1] = r.index);
  }
  resetStartLocationFromNode(t, r) {
    this.resetStartLocation(t, r.loc.start);
  }
};
const iLt = /* @__PURE__ */ new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "static", "string", "true", "typeof", "void"]);
var Sae;
const pr = df(Sae || (Sae = at(["flow"])))({
  AmbiguousConditionalArrow: "Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.",
  AmbiguousDeclareModuleKind: "Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.",
  AssignReservedType: ({
    reservedType: e
  }) => "Cannot overwrite reserved type ".concat(e, "."),
  DeclareClassElement: "The `declare` modifier can only appear on class fields.",
  DeclareClassFieldInitializer: "Initializers are not allowed in fields with the `declare` modifier.",
  DuplicateDeclareModuleExports: "Duplicate `declare module.exports` statement.",
  EnumBooleanMemberNotInitialized: ({
    memberName: e,
    enumName: t
  }) => "Boolean enum members need to be initialized. Use either `".concat(e, " = true,` or `").concat(e, " = false,` in enum `").concat(t, "`."),
  EnumDuplicateMemberName: ({
    memberName: e,
    enumName: t
  }) => "Enum member names need to be unique, but the name `".concat(e, "` has already been used before in enum `").concat(t, "`."),
  EnumInconsistentMemberValues: ({
    enumName: e
  }) => "Enum `".concat(e, "` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers."),
  EnumInvalidExplicitType: ({
    invalidEnumType: e,
    enumName: t
  }) => "Enum type `".concat(e, "` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `").concat(t, "`."),
  EnumInvalidExplicitTypeUnknownSupplied: ({
    enumName: e
  }) => "Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `".concat(e, "`."),
  EnumInvalidMemberInitializerPrimaryType: ({
    enumName: e,
    memberName: t,
    explicitType: r
  }) => "Enum `".concat(e, "` has type `").concat(r, "`, so the initializer of `").concat(t, "` needs to be a ").concat(r, " literal."),
  EnumInvalidMemberInitializerSymbolType: ({
    enumName: e,
    memberName: t
  }) => "Symbol enum members cannot be initialized. Use `".concat(t, ",` in enum `").concat(e, "`."),
  EnumInvalidMemberInitializerUnknownType: ({
    enumName: e,
    memberName: t
  }) => "The enum member initializer for `".concat(t, "` needs to be a literal (either a boolean, number, or string) in enum `").concat(e, "`."),
  EnumInvalidMemberName: ({
    enumName: e,
    memberName: t,
    suggestion: r
  }) => "Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `".concat(t, "`, consider using `").concat(r, "`, in enum `").concat(e, "`."),
  EnumNumberMemberNotInitialized: ({
    enumName: e,
    memberName: t
  }) => "Number enum members need to be initialized, e.g. `".concat(t, " = 1` in enum `").concat(e, "`."),
  EnumStringMemberInconsistentlyInitialized: ({
    enumName: e
  }) => "String enum members need to consistently either all use initializers, or use no initializers, in enum `".concat(e, "`."),
  GetterMayNotHaveThisParam: "A getter cannot have a `this` parameter.",
  ImportReflectionHasImportType: "An `import module` declaration can not use `type` or `typeof` keyword.",
  ImportTypeShorthandOnlyInPureImport: "The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.",
  InexactInsideExact: "Explicit inexact syntax cannot appear inside an explicit exact object type.",
  InexactInsideNonObject: "Explicit inexact syntax cannot appear in class or interface definitions.",
  InexactVariance: "Explicit inexact syntax cannot have variance.",
  InvalidNonTypeImportInDeclareModule: "Imports within a `declare module` body must always be `import type` or `import typeof`.",
  MissingTypeParamDefault: "Type parameter declaration needs a default, since a preceding type parameter declaration has a default.",
  NestedDeclareModule: "`declare module` cannot be used inside another `declare module`.",
  NestedFlowComment: "Cannot have a flow comment inside another flow comment.",
  PatternIsOptional: Object.assign({
    message: "A binding pattern parameter cannot be optional in an implementation signature."
  }, {
    reasonCode: "OptionalBindingPattern"
  }),
  SetterMayNotHaveThisParam: "A setter cannot have a `this` parameter.",
  SpreadVariance: "Spread properties cannot have variance.",
  ThisParamAnnotationRequired: "A type annotation is required for the `this` parameter.",
  ThisParamBannedInConstructor: "Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.",
  ThisParamMayNotBeOptional: "The `this` parameter cannot be optional.",
  ThisParamMustBeFirst: "The `this` parameter must be the first function parameter.",
  ThisParamNoDefault: "The `this` parameter may not have a default value.",
  TypeBeforeInitializer: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",
  TypeCastInPattern: "The type cast expression is expected to be wrapped with parenthesis.",
  UnexpectedExplicitInexactInObject: "Explicit inexact syntax must appear at the end of an inexact object.",
  UnexpectedReservedType: ({
    reservedType: e
  }) => "Unexpected reserved type ".concat(e, "."),
  UnexpectedReservedUnderscore: "`_` is only allowed as a type argument to call or new.",
  UnexpectedSpaceBetweenModuloChecks: "Spaces between `%` and `checks` are not allowed here.",
  UnexpectedSpreadType: "Spread operator cannot appear in class or interface definitions.",
  UnexpectedSubtractionOperand: 'Unexpected token, expected "number" or "bigint".',
  UnexpectedTokenAfterTypeParameter: "Expected an arrow function after this type parameter declaration.",
  UnexpectedTypeParameterBeforeAsyncArrowFunction: "Type parameters must come after the async keyword, e.g. instead of `<T> async () => {}`, use `async <T>() => {}`.",
  UnsupportedDeclareExportKind: ({
    unsupportedExportKind: e,
    suggestion: t
  }) => "`declare export ".concat(e, "` is not supported. Use `").concat(t, "` instead."),
  UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.",
  UnterminatedFlowComment: "Unterminated flow-comment."
});
function nLt(e) {
  return e.type === "DeclareExportAllDeclaration" || e.type === "DeclareExportDeclaration" && (!e.declaration || e.declaration.type !== "TypeAlias" && e.declaration.type !== "InterfaceDeclaration");
}
function XQ(e) {
  return e.importKind === "type" || e.importKind === "typeof";
}
const sLt = {
  const: "declare export var",
  let: "declare export var",
  type: "export type",
  interface: "export interface"
};
function aLt(e, t) {
  const r = [], i = [];
  for (let n = 0; n < e.length; n++)
    (t(e[n], n, e) ? r : i).push(e[n]);
  return [r, i];
}
const oLt = /\*?\s*@((?:no)?flow)\b/;
var lLt = (e) => class extends e {
  constructor(...r) {
    super(...r), this.flowPragma = void 0;
  }
  getScopeHandler() {
    return MDt;
  }
  shouldParseTypes() {
    return this.getPluginOption("flow", "all") || this.flowPragma === "flow";
  }
  shouldParseEnums() {
    return !!this.getPluginOption("flow", "enums");
  }
  finishToken(r, i) {
    r !== 133 && r !== 13 && r !== 28 && this.flowPragma === void 0 && (this.flowPragma = null), super.finishToken(r, i);
  }
  addComment(r) {
    if (this.flowPragma === void 0) {
      const i = oLt.exec(r.value);
      if (i)
        if (i[1] === "flow")
          this.flowPragma = "flow";
        else if (i[1] === "noflow")
          this.flowPragma = "noflow";
        else
          throw new Error("Unexpected flow pragma");
    }
    super.addComment(r);
  }
  flowParseTypeInitialiser(r) {
    const i = this.state.inType;
    this.state.inType = !0, this.expect(r || 14);
    const n = this.flowParseType();
    return this.state.inType = i, n;
  }
  flowParsePredicate() {
    const r = this.startNode(), i = this.state.startLoc;
    return this.next(), this.expectContextual(110), this.state.lastTokStartLoc.index > i.index + 1 && this.raise(pr.UnexpectedSpaceBetweenModuloChecks, i), this.eat(10) ? (r.value = super.parseExpression(), this.expect(11), this.finishNode(r, "DeclaredPredicate")) : this.finishNode(r, "InferredPredicate");
  }
  flowParseTypeAndPredicateInitialiser() {
    const r = this.state.inType;
    this.state.inType = !0, this.expect(14);
    let i = null, n = null;
    return this.match(54) ? (this.state.inType = r, n = this.flowParsePredicate()) : (i = this.flowParseType(), this.state.inType = r, this.match(54) && (n = this.flowParsePredicate())), [i, n];
  }
  flowParseDeclareClass(r) {
    return this.next(), this.flowParseInterfaceish(r, !0), this.finishNode(r, "DeclareClass");
  }
  flowParseDeclareFunction(r) {
    this.next();
    const i = r.id = this.parseIdentifier(), n = this.startNode(), s = this.startNode();
    this.match(47) ? n.typeParameters = this.flowParseTypeParameterDeclaration() : n.typeParameters = null, this.expect(10);
    const a = this.flowParseFunctionTypeParams();
    return n.params = a.params, n.rest = a.rest, n.this = a._this, this.expect(11), [n.returnType, r.predicate] = this.flowParseTypeAndPredicateInitialiser(), s.typeAnnotation = this.finishNode(n, "FunctionTypeAnnotation"), i.typeAnnotation = this.finishNode(s, "TypeAnnotation"), this.resetEndLocation(i), this.semicolon(), this.scope.declareName(r.id.name, 2048, r.id.loc.start), this.finishNode(r, "DeclareFunction");
  }
  flowParseDeclare(r, i) {
    if (this.match(80))
      return this.flowParseDeclareClass(r);
    if (this.match(68))
      return this.flowParseDeclareFunction(r);
    if (this.match(74))
      return this.flowParseDeclareVariable(r);
    if (this.eatContextual(127))
      return this.match(16) ? this.flowParseDeclareModuleExports(r) : (i && this.raise(pr.NestedDeclareModule, this.state.lastTokStartLoc), this.flowParseDeclareModule(r));
    if (this.isContextual(130))
      return this.flowParseDeclareTypeAlias(r);
    if (this.isContextual(131))
      return this.flowParseDeclareOpaqueType(r);
    if (this.isContextual(129))
      return this.flowParseDeclareInterface(r);
    if (this.match(82))
      return this.flowParseDeclareExportDeclaration(r, i);
    this.unexpected();
  }
  flowParseDeclareVariable(r) {
    return this.next(), r.id = this.flowParseTypeAnnotatableIdentifier(!0), this.scope.declareName(r.id.name, 5, r.id.loc.start), this.semicolon(), this.finishNode(r, "DeclareVariable");
  }
  flowParseDeclareModule(r) {
    this.scope.enter(0), this.match(133) ? r.id = super.parseExprAtom() : r.id = this.parseIdentifier();
    const i = r.body = this.startNode(), n = i.body = [];
    for (this.expect(5); !this.match(8); ) {
      let o = this.startNode();
      this.match(83) ? (this.next(), !this.isContextual(130) && !this.match(87) && this.raise(pr.InvalidNonTypeImportInDeclareModule, this.state.lastTokStartLoc), super.parseImport(o)) : (this.expectContextual(125, pr.UnsupportedStatementInDeclareModule), o = this.flowParseDeclare(o, !0)), n.push(o);
    }
    this.scope.exit(), this.expect(8), this.finishNode(i, "BlockStatement");
    let s = null, a = !1;
    return n.forEach((o) => {
      nLt(o) ? (s === "CommonJS" && this.raise(pr.AmbiguousDeclareModuleKind, o), s = "ES") : o.type === "DeclareModuleExports" && (a && this.raise(pr.DuplicateDeclareModuleExports, o), s === "ES" && this.raise(pr.AmbiguousDeclareModuleKind, o), s = "CommonJS", a = !0);
    }), r.kind = s || "CommonJS", this.finishNode(r, "DeclareModule");
  }
  flowParseDeclareExportDeclaration(r, i) {
    if (this.expect(82), this.eat(65))
      return this.match(68) || this.match(80) ? r.declaration = this.flowParseDeclare(this.startNode()) : (r.declaration = this.flowParseType(), this.semicolon()), r.default = !0, this.finishNode(r, "DeclareExportDeclaration");
    if (this.match(75) || this.isLet() || (this.isContextual(130) || this.isContextual(129)) && !i) {
      const n = this.state.value;
      throw this.raise(pr.UnsupportedDeclareExportKind, this.state.startLoc, {
        unsupportedExportKind: n,
        suggestion: sLt[n]
      });
    }
    if (this.match(74) || this.match(68) || this.match(80) || this.isContextual(131))
      return r.declaration = this.flowParseDeclare(this.startNode()), r.default = !1, this.finishNode(r, "DeclareExportDeclaration");
    if (this.match(55) || this.match(5) || this.isContextual(129) || this.isContextual(130) || this.isContextual(131))
      return r = this.parseExport(r, null), r.type === "ExportNamedDeclaration" && (r.type = "ExportDeclaration", r.default = !1, delete r.exportKind), r.type = "Declare" + r.type, r;
    this.unexpected();
  }
  flowParseDeclareModuleExports(r) {
    return this.next(), this.expectContextual(111), r.typeAnnotation = this.flowParseTypeAnnotation(), this.semicolon(), this.finishNode(r, "DeclareModuleExports");
  }
  flowParseDeclareTypeAlias(r) {
    this.next();
    const i = this.flowParseTypeAlias(r);
    return i.type = "DeclareTypeAlias", i;
  }
  flowParseDeclareOpaqueType(r) {
    this.next();
    const i = this.flowParseOpaqueType(r, !0);
    return i.type = "DeclareOpaqueType", i;
  }
  flowParseDeclareInterface(r) {
    return this.next(), this.flowParseInterfaceish(r, !1), this.finishNode(r, "DeclareInterface");
  }
  flowParseInterfaceish(r, i) {
    if (r.id = this.flowParseRestrictedIdentifier(!i, !0), this.scope.declareName(r.id.name, i ? 17 : 8201, r.id.loc.start), this.match(47) ? r.typeParameters = this.flowParseTypeParameterDeclaration() : r.typeParameters = null, r.extends = [], this.eat(81))
      do
        r.extends.push(this.flowParseInterfaceExtends());
      while (!i && this.eat(12));
    if (i) {
      if (r.implements = [], r.mixins = [], this.eatContextual(117))
        do
          r.mixins.push(this.flowParseInterfaceExtends());
        while (this.eat(12));
      if (this.eatContextual(113))
        do
          r.implements.push(this.flowParseInterfaceExtends());
        while (this.eat(12));
    }
    r.body = this.flowParseObjectType({
      allowStatic: i,
      allowExact: !1,
      allowSpread: !1,
      allowProto: i,
      allowInexact: !1
    });
  }
  flowParseInterfaceExtends() {
    const r = this.startNode();
    return r.id = this.flowParseQualifiedTypeIdentifier(), this.match(47) ? r.typeParameters = this.flowParseTypeParameterInstantiation() : r.typeParameters = null, this.finishNode(r, "InterfaceExtends");
  }
  flowParseInterface(r) {
    return this.flowParseInterfaceish(r, !1), this.finishNode(r, "InterfaceDeclaration");
  }
  checkNotUnderscore(r) {
    r === "_" && this.raise(pr.UnexpectedReservedUnderscore, this.state.startLoc);
  }
  checkReservedType(r, i, n) {
    iLt.has(r) && this.raise(n ? pr.AssignReservedType : pr.UnexpectedReservedType, i, {
      reservedType: r
    });
  }
  flowParseRestrictedIdentifier(r, i) {
    return this.checkReservedType(this.state.value, this.state.startLoc, i), this.parseIdentifier(r);
  }
  flowParseTypeAlias(r) {
    return r.id = this.flowParseRestrictedIdentifier(!1, !0), this.scope.declareName(r.id.name, 8201, r.id.loc.start), this.match(47) ? r.typeParameters = this.flowParseTypeParameterDeclaration() : r.typeParameters = null, r.right = this.flowParseTypeInitialiser(29), this.semicolon(), this.finishNode(r, "TypeAlias");
  }
  flowParseOpaqueType(r, i) {
    return this.expectContextual(130), r.id = this.flowParseRestrictedIdentifier(!0, !0), this.scope.declareName(r.id.name, 8201, r.id.loc.start), this.match(47) ? r.typeParameters = this.flowParseTypeParameterDeclaration() : r.typeParameters = null, r.supertype = null, this.match(14) && (r.supertype = this.flowParseTypeInitialiser(14)), r.impltype = null, i || (r.impltype = this.flowParseTypeInitialiser(29)), this.semicolon(), this.finishNode(r, "OpaqueType");
  }
  flowParseTypeParameter(r = !1) {
    const i = this.state.startLoc, n = this.startNode(), s = this.flowParseVariance(), a = this.flowParseTypeAnnotatableIdentifier();
    return n.name = a.name, n.variance = s, n.bound = a.typeAnnotation, this.match(29) ? (this.eat(29), n.default = this.flowParseType()) : r && this.raise(pr.MissingTypeParamDefault, i), this.finishNode(n, "TypeParameter");
  }
  flowParseTypeParameterDeclaration() {
    const r = this.state.inType, i = this.startNode();
    i.params = [], this.state.inType = !0, this.match(47) || this.match(142) ? this.next() : this.unexpected();
    let n = !1;
    do {
      const s = this.flowParseTypeParameter(n);
      i.params.push(s), s.default && (n = !0), this.match(48) || this.expect(12);
    } while (!this.match(48));
    return this.expect(48), this.state.inType = r, this.finishNode(i, "TypeParameterDeclaration");
  }
  flowParseTypeParameterInstantiation() {
    const r = this.startNode(), i = this.state.inType;
    r.params = [], this.state.inType = !0, this.expect(47);
    const n = this.state.noAnonFunctionType;
    for (this.state.noAnonFunctionType = !1; !this.match(48); )
      r.params.push(this.flowParseType()), this.match(48) || this.expect(12);
    return this.state.noAnonFunctionType = n, this.expect(48), this.state.inType = i, this.finishNode(r, "TypeParameterInstantiation");
  }
  flowParseTypeParameterInstantiationCallOrNew() {
    const r = this.startNode(), i = this.state.inType;
    for (r.params = [], this.state.inType = !0, this.expect(47); !this.match(48); )
      r.params.push(this.flowParseTypeOrImplicitInstantiation()), this.match(48) || this.expect(12);
    return this.expect(48), this.state.inType = i, this.finishNode(r, "TypeParameterInstantiation");
  }
  flowParseInterfaceType() {
    const r = this.startNode();
    if (this.expectContextual(129), r.extends = [], this.eat(81))
      do
        r.extends.push(this.flowParseInterfaceExtends());
      while (this.eat(12));
    return r.body = this.flowParseObjectType({
      allowStatic: !1,
      allowExact: !1,
      allowSpread: !1,
      allowProto: !1,
      allowInexact: !1
    }), this.finishNode(r, "InterfaceTypeAnnotation");
  }
  flowParseObjectPropertyKey() {
    return this.match(134) || this.match(133) ? super.parseExprAtom() : this.parseIdentifier(!0);
  }
  flowParseObjectTypeIndexer(r, i, n) {
    return r.static = i, this.lookahead().type === 14 ? (r.id = this.flowParseObjectPropertyKey(), r.key = this.flowParseTypeInitialiser()) : (r.id = null, r.key = this.flowParseType()), this.expect(3), r.value = this.flowParseTypeInitialiser(), r.variance = n, this.finishNode(r, "ObjectTypeIndexer");
  }
  flowParseObjectTypeInternalSlot(r, i) {
    return r.static = i, r.id = this.flowParseObjectPropertyKey(), this.expect(3), this.expect(3), this.match(47) || this.match(10) ? (r.method = !0, r.optional = !1, r.value = this.flowParseObjectTypeMethodish(this.startNodeAt(r.loc.start))) : (r.method = !1, this.eat(17) && (r.optional = !0), r.value = this.flowParseTypeInitialiser()), this.finishNode(r, "ObjectTypeInternalSlot");
  }
  flowParseObjectTypeMethodish(r) {
    for (r.params = [], r.rest = null, r.typeParameters = null, r.this = null, this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration()), this.expect(10), this.match(78) && (r.this = this.flowParseFunctionTypeParam(!0), r.this.name = null, this.match(11) || this.expect(12)); !this.match(11) && !this.match(21); )
      r.params.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
    return this.eat(21) && (r.rest = this.flowParseFunctionTypeParam(!1)), this.expect(11), r.returnType = this.flowParseTypeInitialiser(), this.finishNode(r, "FunctionTypeAnnotation");
  }
  flowParseObjectTypeCallProperty(r, i) {
    const n = this.startNode();
    return r.static = i, r.value = this.flowParseObjectTypeMethodish(n), this.finishNode(r, "ObjectTypeCallProperty");
  }
  flowParseObjectType({
    allowStatic: r,
    allowExact: i,
    allowSpread: n,
    allowProto: s,
    allowInexact: a
  }) {
    const o = this.state.inType;
    this.state.inType = !0;
    const l = this.startNode();
    l.callProperties = [], l.properties = [], l.indexers = [], l.internalSlots = [];
    let u, c, f = !1;
    for (i && this.match(6) ? (this.expect(6), u = 9, c = !0) : (this.expect(5), u = 8, c = !1), l.exact = c; !this.match(u); ) {
      let m = !1, g = null, y = null;
      const v = this.startNode();
      if (s && this.isContextual(118)) {
        const S = this.lookahead();
        S.type !== 14 && S.type !== 17 && (this.next(), g = this.state.startLoc, r = !1);
      }
      if (r && this.isContextual(106)) {
        const S = this.lookahead();
        S.type !== 14 && S.type !== 17 && (this.next(), m = !0);
      }
      const T = this.flowParseVariance();
      if (this.eat(0))
        g != null && this.unexpected(g), this.eat(0) ? (T && this.unexpected(T.loc.start), l.internalSlots.push(this.flowParseObjectTypeInternalSlot(v, m))) : l.indexers.push(this.flowParseObjectTypeIndexer(v, m, T));
      else if (this.match(10) || this.match(47))
        g != null && this.unexpected(g), T && this.unexpected(T.loc.start), l.callProperties.push(this.flowParseObjectTypeCallProperty(v, m));
      else {
        let S = "init";
        if (this.isContextual(99) || this.isContextual(104)) {
          const x = this.lookahead();
          xye(x.type) && (S = this.state.value, this.next());
        }
        const P = this.flowParseObjectTypeProperty(v, m, g, T, S, n, a != null ? a : !c);
        P === null ? (f = !0, y = this.state.lastTokStartLoc) : l.properties.push(P);
      }
      this.flowObjectTypeSemicolon(), y && !this.match(8) && !this.match(9) && this.raise(pr.UnexpectedExplicitInexactInObject, y);
    }
    this.expect(u), n && (l.inexact = f);
    const h = this.finishNode(l, "ObjectTypeAnnotation");
    return this.state.inType = o, h;
  }
  flowParseObjectTypeProperty(r, i, n, s, a, o, l) {
    if (this.eat(21))
      return this.match(12) || this.match(13) || this.match(8) || this.match(9) ? (o ? l || this.raise(pr.InexactInsideExact, this.state.lastTokStartLoc) : this.raise(pr.InexactInsideNonObject, this.state.lastTokStartLoc), s && this.raise(pr.InexactVariance, s), null) : (o || this.raise(pr.UnexpectedSpreadType, this.state.lastTokStartLoc), n != null && this.unexpected(n), s && this.raise(pr.SpreadVariance, s), r.argument = this.flowParseType(), this.finishNode(r, "ObjectTypeSpreadProperty"));
    {
      r.key = this.flowParseObjectPropertyKey(), r.static = i, r.proto = n != null, r.kind = a;
      let u = !1;
      return this.match(47) || this.match(10) ? (r.method = !0, n != null && this.unexpected(n), s && this.unexpected(s.loc.start), r.value = this.flowParseObjectTypeMethodish(this.startNodeAt(r.loc.start)), (a === "get" || a === "set") && this.flowCheckGetterSetterParams(r), !o && r.key.name === "constructor" && r.value.this && this.raise(pr.ThisParamBannedInConstructor, r.value.this)) : (a !== "init" && this.unexpected(), r.method = !1, this.eat(17) && (u = !0), r.value = this.flowParseTypeInitialiser(), r.variance = s), r.optional = u, this.finishNode(r, "ObjectTypeProperty");
    }
  }
  flowCheckGetterSetterParams(r) {
    const i = r.kind === "get" ? 0 : 1, n = r.value.params.length + (r.value.rest ? 1 : 0);
    r.value.this && this.raise(r.kind === "get" ? pr.GetterMayNotHaveThisParam : pr.SetterMayNotHaveThisParam, r.value.this), n !== i && this.raise(r.kind === "get" ? rt.BadGetterArity : rt.BadSetterArity, r), r.kind === "set" && r.value.rest && this.raise(rt.BadSetterRestParameter, r);
  }
  flowObjectTypeSemicolon() {
    !this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9) && this.unexpected();
  }
  flowParseQualifiedTypeIdentifier(r, i) {
    var n;
    (n = r) != null || (r = this.state.startLoc);
    let s = i || this.flowParseRestrictedIdentifier(!0);
    for (; this.eat(16); ) {
      const a = this.startNodeAt(r);
      a.qualification = s, a.id = this.flowParseRestrictedIdentifier(!0), s = this.finishNode(a, "QualifiedTypeIdentifier");
    }
    return s;
  }
  flowParseGenericType(r, i) {
    const n = this.startNodeAt(r);
    return n.typeParameters = null, n.id = this.flowParseQualifiedTypeIdentifier(r, i), this.match(47) && (n.typeParameters = this.flowParseTypeParameterInstantiation()), this.finishNode(n, "GenericTypeAnnotation");
  }
  flowParseTypeofType() {
    const r = this.startNode();
    return this.expect(87), r.argument = this.flowParsePrimaryType(), this.finishNode(r, "TypeofTypeAnnotation");
  }
  flowParseTupleType() {
    const r = this.startNode();
    for (r.types = [], this.expect(0); this.state.pos < this.length && !this.match(3) && (r.types.push(this.flowParseType()), !this.match(3)); )
      this.expect(12);
    return this.expect(3), this.finishNode(r, "TupleTypeAnnotation");
  }
  flowParseFunctionTypeParam(r) {
    let i = null, n = !1, s = null;
    const a = this.startNode(), o = this.lookahead(), l = this.state.type === 78;
    return o.type === 14 || o.type === 17 ? (l && !r && this.raise(pr.ThisParamMustBeFirst, a), i = this.parseIdentifier(l), this.eat(17) && (n = !0, l && this.raise(pr.ThisParamMayNotBeOptional, a)), s = this.flowParseTypeInitialiser()) : s = this.flowParseType(), a.name = i, a.optional = n, a.typeAnnotation = s, this.finishNode(a, "FunctionTypeParam");
  }
  reinterpretTypeAsFunctionTypeParam(r) {
    const i = this.startNodeAt(r.loc.start);
    return i.name = null, i.optional = !1, i.typeAnnotation = r, this.finishNode(i, "FunctionTypeParam");
  }
  flowParseFunctionTypeParams(r = []) {
    let i = null, n = null;
    for (this.match(78) && (n = this.flowParseFunctionTypeParam(!0), n.name = null, this.match(11) || this.expect(12)); !this.match(11) && !this.match(21); )
      r.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
    return this.eat(21) && (i = this.flowParseFunctionTypeParam(!1)), {
      params: r,
      rest: i,
      _this: n
    };
  }
  flowIdentToTypeAnnotation(r, i, n) {
    switch (n.name) {
      case "any":
        return this.finishNode(i, "AnyTypeAnnotation");
      case "bool":
      case "boolean":
        return this.finishNode(i, "BooleanTypeAnnotation");
      case "mixed":
        return this.finishNode(i, "MixedTypeAnnotation");
      case "empty":
        return this.finishNode(i, "EmptyTypeAnnotation");
      case "number":
        return this.finishNode(i, "NumberTypeAnnotation");
      case "string":
        return this.finishNode(i, "StringTypeAnnotation");
      case "symbol":
        return this.finishNode(i, "SymbolTypeAnnotation");
      default:
        return this.checkNotUnderscore(n.name), this.flowParseGenericType(r, n);
    }
  }
  flowParsePrimaryType() {
    const r = this.state.startLoc, i = this.startNode();
    let n, s, a = !1;
    const o = this.state.noAnonFunctionType;
    switch (this.state.type) {
      case 5:
        return this.flowParseObjectType({
          allowStatic: !1,
          allowExact: !1,
          allowSpread: !0,
          allowProto: !1,
          allowInexact: !0
        });
      case 6:
        return this.flowParseObjectType({
          allowStatic: !1,
          allowExact: !0,
          allowSpread: !0,
          allowProto: !1,
          allowInexact: !1
        });
      case 0:
        return this.state.noAnonFunctionType = !1, s = this.flowParseTupleType(), this.state.noAnonFunctionType = o, s;
      case 47:
        return i.typeParameters = this.flowParseTypeParameterDeclaration(), this.expect(10), n = this.flowParseFunctionTypeParams(), i.params = n.params, i.rest = n.rest, i.this = n._this, this.expect(11), this.expect(19), i.returnType = this.flowParseType(), this.finishNode(i, "FunctionTypeAnnotation");
      case 10:
        if (this.next(), !this.match(11) && !this.match(21))
          if (xi(this.state.type) || this.match(78)) {
            const l = this.lookahead().type;
            a = l !== 17 && l !== 14;
          } else
            a = !0;
        if (a) {
          if (this.state.noAnonFunctionType = !1, s = this.flowParseType(), this.state.noAnonFunctionType = o, this.state.noAnonFunctionType || !(this.match(12) || this.match(11) && this.lookahead().type === 19))
            return this.expect(11), s;
          this.eat(12);
        }
        return s ? n = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(s)]) : n = this.flowParseFunctionTypeParams(), i.params = n.params, i.rest = n.rest, i.this = n._this, this.expect(11), this.expect(19), i.returnType = this.flowParseType(), i.typeParameters = null, this.finishNode(i, "FunctionTypeAnnotation");
      case 133:
        return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation");
      case 85:
      case 86:
        return i.value = this.match(85), this.next(), this.finishNode(i, "BooleanLiteralTypeAnnotation");
      case 53:
        if (this.state.value === "-") {
          if (this.next(), this.match(134))
            return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", i);
          if (this.match(135))
            return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", i);
          throw this.raise(pr.UnexpectedSubtractionOperand, this.state.startLoc);
        }
        this.unexpected();
        return;
      case 134:
        return this.parseLiteral(this.state.value, "NumberLiteralTypeAnnotation");
      case 135:
        return this.parseLiteral(this.state.value, "BigIntLiteralTypeAnnotation");
      case 88:
        return this.next(), this.finishNode(i, "VoidTypeAnnotation");
      case 84:
        return this.next(), this.finishNode(i, "NullLiteralTypeAnnotation");
      case 78:
        return this.next(), this.finishNode(i, "ThisTypeAnnotation");
      case 55:
        return this.next(), this.finishNode(i, "ExistsTypeAnnotation");
      case 87:
        return this.flowParseTypeofType();
      default:
        if (Q5(this.state.type)) {
          const l = Nh(this.state.type);
          return this.next(), super.createIdentifier(i, l);
        } else if (xi(this.state.type))
          return this.isContextual(129) ? this.flowParseInterfaceType() : this.flowIdentToTypeAnnotation(r, i, this.parseIdentifier());
    }
    this.unexpected();
  }
  flowParsePostfixType() {
    const r = this.state.startLoc;
    let i = this.flowParsePrimaryType(), n = !1;
    for (; (this.match(0) || this.match(18)) && !this.canInsertSemicolon(); ) {
      const s = this.startNodeAt(r), a = this.eat(18);
      n = n || a, this.expect(0), !a && this.match(3) ? (s.elementType = i, this.next(), i = this.finishNode(s, "ArrayTypeAnnotation")) : (s.objectType = i, s.indexType = this.flowParseType(), this.expect(3), n ? (s.optional = a, i = this.finishNode(s, "OptionalIndexedAccessType")) : i = this.finishNode(s, "IndexedAccessType"));
    }
    return i;
  }
  flowParsePrefixType() {
    const r = this.startNode();
    return this.eat(17) ? (r.typeAnnotation = this.flowParsePrefixType(), this.finishNode(r, "NullableTypeAnnotation")) : this.flowParsePostfixType();
  }
  flowParseAnonFunctionWithoutParens() {
    const r = this.flowParsePrefixType();
    if (!this.state.noAnonFunctionType && this.eat(19)) {
      const i = this.startNodeAt(r.loc.start);
      return i.params = [this.reinterpretTypeAsFunctionTypeParam(r)], i.rest = null, i.this = null, i.returnType = this.flowParseType(), i.typeParameters = null, this.finishNode(i, "FunctionTypeAnnotation");
    }
    return r;
  }
  flowParseIntersectionType() {
    const r = this.startNode();
    this.eat(45);
    const i = this.flowParseAnonFunctionWithoutParens();
    for (r.types = [i]; this.eat(45); )
      r.types.push(this.flowParseAnonFunctionWithoutParens());
    return r.types.length === 1 ? i : this.finishNode(r, "IntersectionTypeAnnotation");
  }
  flowParseUnionType() {
    const r = this.startNode();
    this.eat(43);
    const i = this.flowParseIntersectionType();
    for (r.types = [i]; this.eat(43); )
      r.types.push(this.flowParseIntersectionType());
    return r.types.length === 1 ? i : this.finishNode(r, "UnionTypeAnnotation");
  }
  flowParseType() {
    const r = this.state.inType;
    this.state.inType = !0;
    const i = this.flowParseUnionType();
    return this.state.inType = r, i;
  }
  flowParseTypeOrImplicitInstantiation() {
    if (this.state.type === 132 && this.state.value === "_") {
      const r = this.state.startLoc, i = this.parseIdentifier();
      return this.flowParseGenericType(r, i);
    } else
      return this.flowParseType();
  }
  flowParseTypeAnnotation() {
    const r = this.startNode();
    return r.typeAnnotation = this.flowParseTypeInitialiser(), this.finishNode(r, "TypeAnnotation");
  }
  flowParseTypeAnnotatableIdentifier(r) {
    const i = r ? this.parseIdentifier() : this.flowParseRestrictedIdentifier();
    return this.match(14) && (i.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(i)), i;
  }
  typeCastToParameter(r) {
    return r.expression.typeAnnotation = r.typeAnnotation, this.resetEndLocation(r.expression, r.typeAnnotation.loc.end), r.expression;
  }
  flowParseVariance() {
    let r = null;
    return this.match(53) ? (r = this.startNode(), this.state.value === "+" ? r.kind = "plus" : r.kind = "minus", this.next(), this.finishNode(r, "Variance")) : r;
  }
  parseFunctionBody(r, i, n = !1) {
    if (i) {
      this.forwardNoArrowParamsConversionAt(r, () => super.parseFunctionBody(r, !0, n));
      return;
    }
    super.parseFunctionBody(r, !1, n);
  }
  parseFunctionBodyAndFinish(r, i, n = !1) {
    if (this.match(14)) {
      const s = this.startNode();
      [s.typeAnnotation, r.predicate] = this.flowParseTypeAndPredicateInitialiser(), r.returnType = s.typeAnnotation ? this.finishNode(s, "TypeAnnotation") : null;
    }
    return super.parseFunctionBodyAndFinish(r, i, n);
  }
  parseStatementLike(r) {
    if (this.state.strict && this.isContextual(129)) {
      const n = this.lookahead();
      if (Oc(n.type)) {
        const s = this.startNode();
        return this.next(), this.flowParseInterface(s);
      }
    } else if (this.shouldParseEnums() && this.isContextual(126)) {
      const n = this.startNode();
      return this.next(), this.flowParseEnumDeclaration(n);
    }
    const i = super.parseStatementLike(r);
    return this.flowPragma === void 0 && !this.isValidDirective(i) && (this.flowPragma = null), i;
  }
  parseExpressionStatement(r, i, n) {
    if (i.type === "Identifier") {
      if (i.name === "declare") {
        if (this.match(80) || xi(this.state.type) || this.match(68) || this.match(74) || this.match(82))
          return this.flowParseDeclare(r);
      } else if (xi(this.state.type)) {
        if (i.name === "interface")
          return this.flowParseInterface(r);
        if (i.name === "type")
          return this.flowParseTypeAlias(r);
        if (i.name === "opaque")
          return this.flowParseOpaqueType(r, !1);
      }
    }
    return super.parseExpressionStatement(r, i, n);
  }
  shouldParseExportDeclaration() {
    const {
      type: r
    } = this.state;
    return KQ(r) || this.shouldParseEnums() && r === 126 ? !this.state.containsEsc : super.shouldParseExportDeclaration();
  }
  isExportDefaultSpecifier() {
    const {
      type: r
    } = this.state;
    return KQ(r) || this.shouldParseEnums() && r === 126 ? this.state.containsEsc : super.isExportDefaultSpecifier();
  }
  parseExportDefaultExpression() {
    if (this.shouldParseEnums() && this.isContextual(126)) {
      const r = this.startNode();
      return this.next(), this.flowParseEnumDeclaration(r);
    }
    return super.parseExportDefaultExpression();
  }
  parseConditional(r, i, n) {
    if (!this.match(17))
      return r;
    if (this.state.maybeInArrowParameters) {
      const h = this.lookaheadCharCode();
      if (h === 44 || h === 61 || h === 58 || h === 41)
        return this.setOptionalParametersError(n), r;
    }
    this.expect(17);
    const s = this.state.clone(), a = this.state.noArrowAt, o = this.startNodeAt(i);
    let {
      consequent: l,
      failed: u
    } = this.tryParseConditionalConsequent(), [c, f] = this.getArrowLikeExpressions(l);
    if (u || f.length > 0) {
      const h = [...a];
      if (f.length > 0) {
        this.state = s, this.state.noArrowAt = h;
        for (let m = 0; m < f.length; m++)
          h.push(f[m].start);
        ({
          consequent: l,
          failed: u
        } = this.tryParseConditionalConsequent()), [c, f] = this.getArrowLikeExpressions(l);
      }
      u && c.length > 1 && this.raise(pr.AmbiguousConditionalArrow, s.startLoc), u && c.length === 1 && (this.state = s, h.push(c[0].start), this.state.noArrowAt = h, {
        consequent: l,
        failed: u
      } = this.tryParseConditionalConsequent());
    }
    return this.getArrowLikeExpressions(l, !0), this.state.noArrowAt = a, this.expect(14), o.test = r, o.consequent = l, o.alternate = this.forwardNoArrowParamsConversionAt(o, () => this.parseMaybeAssign(void 0, void 0)), this.finishNode(o, "ConditionalExpression");
  }
  tryParseConditionalConsequent() {
    this.state.noArrowParamsConversionAt.push(this.state.start);
    const r = this.parseMaybeAssignAllowIn(), i = !this.match(14);
    return this.state.noArrowParamsConversionAt.pop(), {
      consequent: r,
      failed: i
    };
  }
  getArrowLikeExpressions(r, i) {
    const n = [r], s = [];
    for (; n.length !== 0; ) {
      const a = n.pop();
      a.type === "ArrowFunctionExpression" ? (a.typeParameters || !a.returnType ? this.finishArrowValidation(a) : s.push(a), n.push(a.body)) : a.type === "ConditionalExpression" && (n.push(a.consequent), n.push(a.alternate));
    }
    return i ? (s.forEach((a) => this.finishArrowValidation(a)), [s, []]) : aLt(s, (a) => a.params.every((o) => this.isAssignable(o, !0)));
  }
  finishArrowValidation(r) {
    var i;
    this.toAssignableList(r.params, (i = r.extra) == null ? void 0 : i.trailingCommaLoc, !1), this.scope.enter(6), super.checkParams(r, !1, !0), this.scope.exit();
  }
  forwardNoArrowParamsConversionAt(r, i) {
    let n;
    return this.state.noArrowParamsConversionAt.indexOf(r.start) !== -1 ? (this.state.noArrowParamsConversionAt.push(this.state.start), n = i(), this.state.noArrowParamsConversionAt.pop()) : n = i(), n;
  }
  parseParenItem(r, i) {
    if (r = super.parseParenItem(r, i), this.eat(17) && (r.optional = !0, this.resetEndLocation(r)), this.match(14)) {
      const n = this.startNodeAt(i);
      return n.expression = r, n.typeAnnotation = this.flowParseTypeAnnotation(), this.finishNode(n, "TypeCastExpression");
    }
    return r;
  }
  assertModuleNodeAllowed(r) {
    r.type === "ImportDeclaration" && (r.importKind === "type" || r.importKind === "typeof") || r.type === "ExportNamedDeclaration" && r.exportKind === "type" || r.type === "ExportAllDeclaration" && r.exportKind === "type" || super.assertModuleNodeAllowed(r);
  }
  parseExportDeclaration(r) {
    if (this.isContextual(130)) {
      r.exportKind = "type";
      const i = this.startNode();
      return this.next(), this.match(5) ? (r.specifiers = this.parseExportSpecifiers(!0), super.parseExportFrom(r), null) : this.flowParseTypeAlias(i);
    } else if (this.isContextual(131)) {
      r.exportKind = "type";
      const i = this.startNode();
      return this.next(), this.flowParseOpaqueType(i, !1);
    } else if (this.isContextual(129)) {
      r.exportKind = "type";
      const i = this.startNode();
      return this.next(), this.flowParseInterface(i);
    } else if (this.shouldParseEnums() && this.isContextual(126)) {
      r.exportKind = "value";
      const i = this.startNode();
      return this.next(), this.flowParseEnumDeclaration(i);
    } else
      return super.parseExportDeclaration(r);
  }
  eatExportStar(r) {
    return super.eatExportStar(r) ? !0 : this.isContextual(130) && this.lookahead().type === 55 ? (r.exportKind = "type", this.next(), this.next(), !0) : !1;
  }
  maybeParseExportNamespaceSpecifier(r) {
    const {
      startLoc: i
    } = this.state, n = super.maybeParseExportNamespaceSpecifier(r);
    return n && r.exportKind === "type" && this.unexpected(i), n;
  }
  parseClassId(r, i, n) {
    super.parseClassId(r, i, n), this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration());
  }
  parseClassMember(r, i, n) {
    const {
      startLoc: s
    } = this.state;
    if (this.isContextual(125)) {
      if (super.parseClassMemberFromModifier(r, i))
        return;
      i.declare = !0;
    }
    super.parseClassMember(r, i, n), i.declare && (i.type !== "ClassProperty" && i.type !== "ClassPrivateProperty" && i.type !== "PropertyDefinition" ? this.raise(pr.DeclareClassElement, s) : i.value && this.raise(pr.DeclareClassFieldInitializer, i.value));
  }
  isIterator(r) {
    return r === "iterator" || r === "asyncIterator";
  }
  readIterator() {
    const r = super.readWord1(), i = "@@" + r;
    (!this.isIterator(r) || !this.state.inType) && this.raise(rt.InvalidIdentifier, this.state.curPosition(), {
      identifierName: i
    }), this.finishToken(132, i);
  }
  getTokenFromCode(r) {
    const i = this.input.charCodeAt(this.state.pos + 1);
    r === 123 && i === 124 ? this.finishOp(6, 2) : this.state.inType && (r === 62 || r === 60) ? this.finishOp(r === 62 ? 48 : 47, 1) : this.state.inType && r === 63 ? i === 46 ? this.finishOp(18, 2) : this.finishOp(17, 1) : ODt(r, i, this.input.charCodeAt(this.state.pos + 2)) ? (this.state.pos += 2, this.readIterator()) : super.getTokenFromCode(r);
  }
  isAssignable(r, i) {
    return r.type === "TypeCastExpression" ? this.isAssignable(r.expression, i) : super.isAssignable(r, i);
  }
  toAssignable(r, i = !1) {
    !i && r.type === "AssignmentExpression" && r.left.type === "TypeCastExpression" && (r.left = this.typeCastToParameter(r.left)), super.toAssignable(r, i);
  }
  toAssignableList(r, i, n) {
    for (let s = 0; s < r.length; s++) {
      const a = r[s];
      (a == null ? void 0 : a.type) === "TypeCastExpression" && (r[s] = this.typeCastToParameter(a));
    }
    super.toAssignableList(r, i, n);
  }
  toReferencedList(r, i) {
    for (let s = 0; s < r.length; s++) {
      var n;
      const a = r[s];
      a && a.type === "TypeCastExpression" && !((n = a.extra) != null && n.parenthesized) && (r.length > 1 || !i) && this.raise(pr.TypeCastInPattern, a.typeAnnotation);
    }
    return r;
  }
  parseArrayLike(r, i, n, s) {
    const a = super.parseArrayLike(r, i, n, s);
    return i && !this.state.maybeInArrowParameters && this.toReferencedList(a.elements), a;
  }
  isValidLVal(r, i, n) {
    return r === "TypeCastExpression" || super.isValidLVal(r, i, n);
  }
  parseClassProperty(r) {
    return this.match(14) && (r.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassProperty(r);
  }
  parseClassPrivateProperty(r) {
    return this.match(14) && (r.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassPrivateProperty(r);
  }
  isClassMethod() {
    return this.match(47) || super.isClassMethod();
  }
  isClassProperty() {
    return this.match(14) || super.isClassProperty();
  }
  isNonstaticConstructor(r) {
    return !this.match(14) && super.isNonstaticConstructor(r);
  }
  pushClassMethod(r, i, n, s, a, o) {
    if (i.variance && this.unexpected(i.variance.loc.start), delete i.variance, this.match(47) && (i.typeParameters = this.flowParseTypeParameterDeclaration()), super.pushClassMethod(r, i, n, s, a, o), i.params && a) {
      const l = i.params;
      l.length > 0 && this.isThisParam(l[0]) && this.raise(pr.ThisParamBannedInConstructor, i);
    } else if (i.type === "MethodDefinition" && a && i.value.params) {
      const l = i.value.params;
      l.length > 0 && this.isThisParam(l[0]) && this.raise(pr.ThisParamBannedInConstructor, i);
    }
  }
  pushClassPrivateMethod(r, i, n, s) {
    i.variance && this.unexpected(i.variance.loc.start), delete i.variance, this.match(47) && (i.typeParameters = this.flowParseTypeParameterDeclaration()), super.pushClassPrivateMethod(r, i, n, s);
  }
  parseClassSuper(r) {
    if (super.parseClassSuper(r), r.superClass && this.match(47) && (r.superTypeParameters = this.flowParseTypeParameterInstantiation()), this.isContextual(113)) {
      this.next();
      const i = r.implements = [];
      do {
        const n = this.startNode();
        n.id = this.flowParseRestrictedIdentifier(!0), this.match(47) ? n.typeParameters = this.flowParseTypeParameterInstantiation() : n.typeParameters = null, i.push(this.finishNode(n, "ClassImplements"));
      } while (this.eat(12));
    }
  }
  checkGetterSetterParams(r) {
    super.checkGetterSetterParams(r);
    const i = this.getObjectOrClassMethodParams(r);
    if (i.length > 0) {
      const n = i[0];
      this.isThisParam(n) && r.kind === "get" ? this.raise(pr.GetterMayNotHaveThisParam, n) : this.isThisParam(n) && this.raise(pr.SetterMayNotHaveThisParam, n);
    }
  }
  parsePropertyNamePrefixOperator(r) {
    r.variance = this.flowParseVariance();
  }
  parseObjPropValue(r, i, n, s, a, o, l) {
    r.variance && this.unexpected(r.variance.loc.start), delete r.variance;
    let u;
    this.match(47) && !o && (u = this.flowParseTypeParameterDeclaration(), this.match(10) || this.unexpected());
    const c = super.parseObjPropValue(r, i, n, s, a, o, l);
    return u && ((c.value || c).typeParameters = u), c;
  }
  parseAssignableListItemTypes(r) {
    return this.eat(17) && (r.type !== "Identifier" && this.raise(pr.PatternIsOptional, r), this.isThisParam(r) && this.raise(pr.ThisParamMayNotBeOptional, r), r.optional = !0), this.match(14) ? r.typeAnnotation = this.flowParseTypeAnnotation() : this.isThisParam(r) && this.raise(pr.ThisParamAnnotationRequired, r), this.match(29) && this.isThisParam(r) && this.raise(pr.ThisParamNoDefault, r), this.resetEndLocation(r), r;
  }
  parseMaybeDefault(r, i) {
    const n = super.parseMaybeDefault(r, i);
    return n.type === "AssignmentPattern" && n.typeAnnotation && n.right.start < n.typeAnnotation.start && this.raise(pr.TypeBeforeInitializer, n.typeAnnotation), n;
  }
  checkImportReflection(r) {
    super.checkImportReflection(r), r.module && r.importKind !== "value" && this.raise(pr.ImportReflectionHasImportType, r.specifiers[0].loc.start);
  }
  parseImportSpecifierLocal(r, i, n) {
    i.local = XQ(r) ? this.flowParseRestrictedIdentifier(!0, !0) : this.parseIdentifier(), r.specifiers.push(this.finishImportSpecifier(i, n));
  }
  isPotentialImportPhase(r) {
    if (super.isPotentialImportPhase(r))
      return !0;
    if (this.isContextual(130)) {
      if (!r)
        return !0;
      const i = this.lookaheadCharCode();
      return i === 123 || i === 42;
    }
    return !r && this.isContextual(87);
  }
  applyImportPhase(r, i, n, s) {
    if (super.applyImportPhase(r, i, n, s), i) {
      if (!n && this.match(65))
        return;
      r.exportKind = n === "type" ? n : "value";
    } else
      n === "type" && this.match(55) && this.unexpected(), r.importKind = n === "type" || n === "typeof" ? n : "value";
  }
  parseImportSpecifier(r, i, n, s, a) {
    const o = r.imported;
    let l = null;
    o.type === "Identifier" && (o.name === "type" ? l = "type" : o.name === "typeof" && (l = "typeof"));
    let u = !1;
    if (this.isContextual(93) && !this.isLookaheadContextual("as")) {
      const f = this.parseIdentifier(!0);
      l !== null && !Oc(this.state.type) ? (r.imported = f, r.importKind = l, r.local = Tf(f)) : (r.imported = o, r.importKind = null, r.local = this.parseIdentifier());
    } else {
      if (l !== null && Oc(this.state.type))
        r.imported = this.parseIdentifier(!0), r.importKind = l;
      else {
        if (i)
          throw this.raise(rt.ImportBindingIsString, r, {
            importName: o.value
          });
        r.imported = o, r.importKind = null;
      }
      this.eatContextual(93) ? r.local = this.parseIdentifier() : (u = !0, r.local = Tf(r.imported));
    }
    const c = XQ(r);
    return n && c && this.raise(pr.ImportTypeShorthandOnlyInPureImport, r), (n || c) && this.checkReservedType(r.local.name, r.local.loc.start, !0), u && !n && !c && this.checkReservedWord(r.local.name, r.loc.start, !0, !0), this.finishImportSpecifier(r, "ImportSpecifier");
  }
  parseBindingAtom() {
    switch (this.state.type) {
      case 78:
        return this.parseIdentifier(!0);
      default:
        return super.parseBindingAtom();
    }
  }
  parseFunctionParams(r, i) {
    const n = r.kind;
    n !== "get" && n !== "set" && this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration()), super.parseFunctionParams(r, i);
  }
  parseVarId(r, i) {
    super.parseVarId(r, i), this.match(14) && (r.id.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(r.id));
  }
  parseAsyncArrowFromCallExpression(r, i) {
    if (this.match(14)) {
      const n = this.state.noAnonFunctionType;
      this.state.noAnonFunctionType = !0, r.returnType = this.flowParseTypeAnnotation(), this.state.noAnonFunctionType = n;
    }
    return super.parseAsyncArrowFromCallExpression(r, i);
  }
  shouldParseAsyncArrow() {
    return this.match(14) || super.shouldParseAsyncArrow();
  }
  parseMaybeAssign(r, i) {
    var n;
    let s = null, a;
    if (this.hasPlugin("jsx") && (this.match(142) || this.match(47))) {
      if (s = this.state.clone(), a = this.tryParse(() => super.parseMaybeAssign(r, i), s), !a.error)
        return a.node;
      const {
        context: u
      } = this.state, c = u[u.length - 1];
      (c === Bi.j_oTag || c === Bi.j_expr) && u.pop();
    }
    if ((n = a) != null && n.error || this.match(47)) {
      var o, l;
      s = s || this.state.clone();
      let u;
      const c = this.tryParse((h) => {
        var m;
        u = this.flowParseTypeParameterDeclaration();
        const g = this.forwardNoArrowParamsConversionAt(u, () => {
          const v = super.parseMaybeAssign(r, i);
          return this.resetStartLocationFromNode(v, u), v;
        });
        (m = g.extra) != null && m.parenthesized && h();
        const y = this.maybeUnwrapTypeCastExpression(g);
        return y.type !== "ArrowFunctionExpression" && h(), y.typeParameters = u, this.resetStartLocationFromNode(y, u), g;
      }, s);
      let f = null;
      if (c.node && this.maybeUnwrapTypeCastExpression(c.node).type === "ArrowFunctionExpression") {
        if (!c.error && !c.aborted)
          return c.node.async && this.raise(pr.UnexpectedTypeParameterBeforeAsyncArrowFunction, u), c.node;
        f = c.node;
      }
      if ((o = a) != null && o.node)
        return this.state = a.failState, a.node;
      if (f)
        return this.state = c.failState, f;
      throw (l = a) != null && l.thrown ? a.error : c.thrown ? c.error : this.raise(pr.UnexpectedTokenAfterTypeParameter, u);
    }
    return super.parseMaybeAssign(r, i);
  }
  parseArrow(r) {
    if (this.match(14)) {
      const i = this.tryParse(() => {
        const n = this.state.noAnonFunctionType;
        this.state.noAnonFunctionType = !0;
        const s = this.startNode();
        return [s.typeAnnotation, r.predicate] = this.flowParseTypeAndPredicateInitialiser(), this.state.noAnonFunctionType = n, this.canInsertSemicolon() && this.unexpected(), this.match(19) || this.unexpected(), s;
      });
      if (i.thrown)
        return null;
      i.error && (this.state = i.failState), r.returnType = i.node.typeAnnotation ? this.finishNode(i.node, "TypeAnnotation") : null;
    }
    return super.parseArrow(r);
  }
  shouldParseArrow(r) {
    return this.match(14) || super.shouldParseArrow(r);
  }
  setArrowFunctionParameters(r, i) {
    this.state.noArrowParamsConversionAt.indexOf(r.start) !== -1 ? r.params = i : super.setArrowFunctionParameters(r, i);
  }
  checkParams(r, i, n, s = !0) {
    if (!(n && this.state.noArrowParamsConversionAt.indexOf(r.start) !== -1)) {
      for (let a = 0; a < r.params.length; a++)
        this.isThisParam(r.params[a]) && a > 0 && this.raise(pr.ThisParamMustBeFirst, r.params[a]);
      super.checkParams(r, i, n, s);
    }
  }
  parseParenAndDistinguishExpression(r) {
    return super.parseParenAndDistinguishExpression(r && this.state.noArrowAt.indexOf(this.state.start) === -1);
  }
  parseSubscripts(r, i, n) {
    if (r.type === "Identifier" && r.name === "async" && this.state.noArrowAt.indexOf(i.index) !== -1) {
      this.next();
      const s = this.startNodeAt(i);
      s.callee = r, s.arguments = super.parseCallExpressionArguments(11, !1), r = this.finishNode(s, "CallExpression");
    } else if (r.type === "Identifier" && r.name === "async" && this.match(47)) {
      const s = this.state.clone(), a = this.tryParse((l) => this.parseAsyncArrowWithTypeParameters(i) || l(), s);
      if (!a.error && !a.aborted)
        return a.node;
      const o = this.tryParse(() => super.parseSubscripts(r, i, n), s);
      if (o.node && !o.error)
        return o.node;
      if (a.node)
        return this.state = a.failState, a.node;
      if (o.node)
        return this.state = o.failState, o.node;
      throw a.error || o.error;
    }
    return super.parseSubscripts(r, i, n);
  }
  parseSubscript(r, i, n, s) {
    if (this.match(18) && this.isLookaheadToken_lt()) {
      if (s.optionalChainMember = !0, n)
        return s.stop = !0, r;
      this.next();
      const a = this.startNodeAt(i);
      return a.callee = r, a.typeArguments = this.flowParseTypeParameterInstantiation(), this.expect(10), a.arguments = this.parseCallExpressionArguments(11, !1), a.optional = !0, this.finishCallExpression(a, !0);
    } else if (!n && this.shouldParseTypes() && this.match(47)) {
      const a = this.startNodeAt(i);
      a.callee = r;
      const o = this.tryParse(() => (a.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(), this.expect(10), a.arguments = super.parseCallExpressionArguments(11, !1), s.optionalChainMember && (a.optional = !1), this.finishCallExpression(a, s.optionalChainMember)));
      if (o.node)
        return o.error && (this.state = o.failState), o.node;
    }
    return super.parseSubscript(r, i, n, s);
  }
  parseNewCallee(r) {
    super.parseNewCallee(r);
    let i = null;
    this.shouldParseTypes() && this.match(47) && (i = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node), r.typeArguments = i;
  }
  parseAsyncArrowWithTypeParameters(r) {
    const i = this.startNodeAt(r);
    if (this.parseFunctionParams(i, !1), !!this.parseArrow(i))
      return super.parseArrowExpression(i, void 0, !0);
  }
  readToken_mult_modulo(r) {
    const i = this.input.charCodeAt(this.state.pos + 1);
    if (r === 42 && i === 47 && this.state.hasFlowComment) {
      this.state.hasFlowComment = !1, this.state.pos += 2, this.nextToken();
      return;
    }
    super.readToken_mult_modulo(r);
  }
  readToken_pipe_amp(r) {
    const i = this.input.charCodeAt(this.state.pos + 1);
    if (r === 124 && i === 125) {
      this.finishOp(9, 2);
      return;
    }
    super.readToken_pipe_amp(r);
  }
  parseTopLevel(r, i) {
    const n = super.parseTopLevel(r, i);
    return this.state.hasFlowComment && this.raise(pr.UnterminatedFlowComment, this.state.curPosition()), n;
  }
  skipBlockComment() {
    if (this.hasPlugin("flowComments") && this.skipFlowComment()) {
      if (this.state.hasFlowComment)
        throw this.raise(pr.NestedFlowComment, this.state.startLoc);
      this.hasFlowCommentCompletion();
      const r = this.skipFlowComment();
      r && (this.state.pos += r, this.state.hasFlowComment = !0);
      return;
    }
    return super.skipBlockComment(this.state.hasFlowComment ? "*-/" : "*/");
  }
  skipFlowComment() {
    const {
      pos: r
    } = this.state;
    let i = 2;
    for (; [32, 9].includes(this.input.charCodeAt(r + i)); )
      i++;
    const n = this.input.charCodeAt(i + r), s = this.input.charCodeAt(i + r + 1);
    return n === 58 && s === 58 ? i + 2 : this.input.slice(i + r, i + r + 12) === "flow-include" ? i + 12 : n === 58 && s !== 58 ? i : !1;
  }
  hasFlowCommentCompletion() {
    if (this.input.indexOf("*/", this.state.pos) === -1)
      throw this.raise(rt.UnterminatedComment, this.state.curPosition());
  }
  flowEnumErrorBooleanMemberNotInitialized(r, {
    enumName: i,
    memberName: n
  }) {
    this.raise(pr.EnumBooleanMemberNotInitialized, r, {
      memberName: n,
      enumName: i
    });
  }
  flowEnumErrorInvalidMemberInitializer(r, i) {
    return this.raise(i.explicitType ? i.explicitType === "symbol" ? pr.EnumInvalidMemberInitializerSymbolType : pr.EnumInvalidMemberInitializerPrimaryType : pr.EnumInvalidMemberInitializerUnknownType, r, i);
  }
  flowEnumErrorNumberMemberNotInitialized(r, i) {
    this.raise(pr.EnumNumberMemberNotInitialized, r, i);
  }
  flowEnumErrorStringMemberInconsistentlyInitialized(r, i) {
    this.raise(pr.EnumStringMemberInconsistentlyInitialized, r, i);
  }
  flowEnumMemberInit() {
    const r = this.state.startLoc, i = () => this.match(12) || this.match(8);
    switch (this.state.type) {
      case 134: {
        const n = this.parseNumericLiteral(this.state.value);
        return i() ? {
          type: "number",
          loc: n.loc.start,
          value: n
        } : {
          type: "invalid",
          loc: r
        };
      }
      case 133: {
        const n = this.parseStringLiteral(this.state.value);
        return i() ? {
          type: "string",
          loc: n.loc.start,
          value: n
        } : {
          type: "invalid",
          loc: r
        };
      }
      case 85:
      case 86: {
        const n = this.parseBooleanLiteral(this.match(85));
        return i() ? {
          type: "boolean",
          loc: n.loc.start,
          value: n
        } : {
          type: "invalid",
          loc: r
        };
      }
      default:
        return {
          type: "invalid",
          loc: r
        };
    }
  }
  flowEnumMemberRaw() {
    const r = this.state.startLoc, i = this.parseIdentifier(!0), n = this.eat(29) ? this.flowEnumMemberInit() : {
      type: "none",
      loc: r
    };
    return {
      id: i,
      init: n
    };
  }
  flowEnumCheckExplicitTypeMismatch(r, i, n) {
    const {
      explicitType: s
    } = i;
    s !== null && s !== n && this.flowEnumErrorInvalidMemberInitializer(r, i);
  }
  flowEnumMembers({
    enumName: r,
    explicitType: i
  }) {
    const n = /* @__PURE__ */ new Set(), s = {
      booleanMembers: [],
      numberMembers: [],
      stringMembers: [],
      defaultedMembers: []
    };
    let a = !1;
    for (; !this.match(8); ) {
      if (this.eat(21)) {
        a = !0;
        break;
      }
      const o = this.startNode(), {
        id: l,
        init: u
      } = this.flowEnumMemberRaw(), c = l.name;
      if (c === "")
        continue;
      /^[a-z]/.test(c) && this.raise(pr.EnumInvalidMemberName, l, {
        memberName: c,
        suggestion: c[0].toUpperCase() + c.slice(1),
        enumName: r
      }), n.has(c) && this.raise(pr.EnumDuplicateMemberName, l, {
        memberName: c,
        enumName: r
      }), n.add(c);
      const f = {
        enumName: r,
        explicitType: i,
        memberName: c
      };
      switch (o.id = l, u.type) {
        case "boolean": {
          this.flowEnumCheckExplicitTypeMismatch(u.loc, f, "boolean"), o.init = u.value, s.booleanMembers.push(this.finishNode(o, "EnumBooleanMember"));
          break;
        }
        case "number": {
          this.flowEnumCheckExplicitTypeMismatch(u.loc, f, "number"), o.init = u.value, s.numberMembers.push(this.finishNode(o, "EnumNumberMember"));
          break;
        }
        case "string": {
          this.flowEnumCheckExplicitTypeMismatch(u.loc, f, "string"), o.init = u.value, s.stringMembers.push(this.finishNode(o, "EnumStringMember"));
          break;
        }
        case "invalid":
          throw this.flowEnumErrorInvalidMemberInitializer(u.loc, f);
        case "none":
          switch (i) {
            case "boolean":
              this.flowEnumErrorBooleanMemberNotInitialized(u.loc, f);
              break;
            case "number":
              this.flowEnumErrorNumberMemberNotInitialized(u.loc, f);
              break;
            default:
              s.defaultedMembers.push(this.finishNode(o, "EnumDefaultedMember"));
          }
      }
      this.match(8) || this.expect(12);
    }
    return {
      members: s,
      hasUnknownMembers: a
    };
  }
  flowEnumStringMembers(r, i, {
    enumName: n
  }) {
    if (r.length === 0)
      return i;
    if (i.length === 0)
      return r;
    if (i.length > r.length) {
      for (const s of r)
        this.flowEnumErrorStringMemberInconsistentlyInitialized(s, {
          enumName: n
        });
      return i;
    } else {
      for (const s of i)
        this.flowEnumErrorStringMemberInconsistentlyInitialized(s, {
          enumName: n
        });
      return r;
    }
  }
  flowEnumParseExplicitType({
    enumName: r
  }) {
    if (!this.eatContextual(102))
      return null;
    if (!xi(this.state.type))
      throw this.raise(pr.EnumInvalidExplicitTypeUnknownSupplied, this.state.startLoc, {
        enumName: r
      });
    const {
      value: i
    } = this.state;
    return this.next(), i !== "boolean" && i !== "number" && i !== "string" && i !== "symbol" && this.raise(pr.EnumInvalidExplicitType, this.state.startLoc, {
      enumName: r,
      invalidEnumType: i
    }), i;
  }
  flowEnumBody(r, i) {
    const n = i.name, s = i.loc.start, a = this.flowEnumParseExplicitType({
      enumName: n
    });
    this.expect(5);
    const {
      members: o,
      hasUnknownMembers: l
    } = this.flowEnumMembers({
      enumName: n,
      explicitType: a
    });
    switch (r.hasUnknownMembers = l, a) {
      case "boolean":
        return r.explicitType = !0, r.members = o.booleanMembers, this.expect(8), this.finishNode(r, "EnumBooleanBody");
      case "number":
        return r.explicitType = !0, r.members = o.numberMembers, this.expect(8), this.finishNode(r, "EnumNumberBody");
      case "string":
        return r.explicitType = !0, r.members = this.flowEnumStringMembers(o.stringMembers, o.defaultedMembers, {
          enumName: n
        }), this.expect(8), this.finishNode(r, "EnumStringBody");
      case "symbol":
        return r.members = o.defaultedMembers, this.expect(8), this.finishNode(r, "EnumSymbolBody");
      default: {
        const u = () => (r.members = [], this.expect(8), this.finishNode(r, "EnumStringBody"));
        r.explicitType = !1;
        const c = o.booleanMembers.length, f = o.numberMembers.length, h = o.stringMembers.length, m = o.defaultedMembers.length;
        if (!c && !f && !h && !m)
          return u();
        if (!c && !f)
          return r.members = this.flowEnumStringMembers(o.stringMembers, o.defaultedMembers, {
            enumName: n
          }), this.expect(8), this.finishNode(r, "EnumStringBody");
        if (!f && !h && c >= m) {
          for (const g of o.defaultedMembers)
            this.flowEnumErrorBooleanMemberNotInitialized(g.loc.start, {
              enumName: n,
              memberName: g.id.name
            });
          return r.members = o.booleanMembers, this.expect(8), this.finishNode(r, "EnumBooleanBody");
        } else if (!c && !h && f >= m) {
          for (const g of o.defaultedMembers)
            this.flowEnumErrorNumberMemberNotInitialized(g.loc.start, {
              enumName: n,
              memberName: g.id.name
            });
          return r.members = o.numberMembers, this.expect(8), this.finishNode(r, "EnumNumberBody");
        } else
          return this.raise(pr.EnumInconsistentMemberValues, s, {
            enumName: n
          }), u();
      }
    }
  }
  flowParseEnumDeclaration(r) {
    const i = this.parseIdentifier();
    return r.id = i, r.body = this.flowEnumBody(this.startNode(), i), this.finishNode(r, "EnumDeclaration");
  }
  isLookaheadToken_lt() {
    const r = this.nextTokenStart();
    if (this.input.charCodeAt(r) === 60) {
      const i = this.input.charCodeAt(r + 1);
      return i !== 60 && i !== 61;
    }
    return !1;
  }
  maybeUnwrapTypeCastExpression(r) {
    return r.type === "TypeCastExpression" ? r.expression : r;
  }
};
const uLt = {
  __proto__: null,
  quot: '"',
  amp: "&",
  apos: "'",
  lt: "<",
  gt: ">",
  nbsp: " ",
  iexcl: "¡",
  cent: "¢",
  pound: "£",
  curren: "¤",
  yen: "¥",
  brvbar: "¦",
  sect: "§",
  uml: "¨",
  copy: "©",
  ordf: "ª",
  laquo: "«",
  not: "¬",
  shy: "­",
  reg: "®",
  macr: "¯",
  deg: "°",
  plusmn: "±",
  sup2: "²",
  sup3: "³",
  acute: "´",
  micro: "µ",
  para: "¶",
  middot: "·",
  cedil: "¸",
  sup1: "¹",
  ordm: "º",
  raquo: "»",
  frac14: "¼",
  frac12: "½",
  frac34: "¾",
  iquest: "¿",
  Agrave: "À",
  Aacute: "Á",
  Acirc: "Â",
  Atilde: "Ã",
  Auml: "Ä",
  Aring: "Å",
  AElig: "Æ",
  Ccedil: "Ç",
  Egrave: "È",
  Eacute: "É",
  Ecirc: "Ê",
  Euml: "Ë",
  Igrave: "Ì",
  Iacute: "Í",
  Icirc: "Î",
  Iuml: "Ï",
  ETH: "Ð",
  Ntilde: "Ñ",
  Ograve: "Ò",
  Oacute: "Ó",
  Ocirc: "Ô",
  Otilde: "Õ",
  Ouml: "Ö",
  times: "×",
  Oslash: "Ø",
  Ugrave: "Ù",
  Uacute: "Ú",
  Ucirc: "Û",
  Uuml: "Ü",
  Yacute: "Ý",
  THORN: "Þ",
  szlig: "ß",
  agrave: "à",
  aacute: "á",
  acirc: "â",
  atilde: "ã",
  auml: "ä",
  aring: "å",
  aelig: "æ",
  ccedil: "ç",
  egrave: "è",
  eacute: "é",
  ecirc: "ê",
  euml: "ë",
  igrave: "ì",
  iacute: "í",
  icirc: "î",
  iuml: "ï",
  eth: "ð",
  ntilde: "ñ",
  ograve: "ò",
  oacute: "ó",
  ocirc: "ô",
  otilde: "õ",
  ouml: "ö",
  divide: "÷",
  oslash: "ø",
  ugrave: "ù",
  uacute: "ú",
  ucirc: "û",
  uuml: "ü",
  yacute: "ý",
  thorn: "þ",
  yuml: "ÿ",
  OElig: "Œ",
  oelig: "œ",
  Scaron: "Š",
  scaron: "š",
  Yuml: "Ÿ",
  fnof: "ƒ",
  circ: "ˆ",
  tilde: "˜",
  Alpha: "Α",
  Beta: "Β",
  Gamma: "Γ",
  Delta: "Δ",
  Epsilon: "Ε",
  Zeta: "Ζ",
  Eta: "Η",
  Theta: "Θ",
  Iota: "Ι",
  Kappa: "Κ",
  Lambda: "Λ",
  Mu: "Μ",
  Nu: "Ν",
  Xi: "Ξ",
  Omicron: "Ο",
  Pi: "Π",
  Rho: "Ρ",
  Sigma: "Σ",
  Tau: "Τ",
  Upsilon: "Υ",
  Phi: "Φ",
  Chi: "Χ",
  Psi: "Ψ",
  Omega: "Ω",
  alpha: "α",
  beta: "β",
  gamma: "γ",
  delta: "δ",
  epsilon: "ε",
  zeta: "ζ",
  eta: "η",
  theta: "θ",
  iota: "ι",
  kappa: "κ",
  lambda: "λ",
  mu: "μ",
  nu: "ν",
  xi: "ξ",
  omicron: "ο",
  pi: "π",
  rho: "ρ",
  sigmaf: "ς",
  sigma: "σ",
  tau: "τ",
  upsilon: "υ",
  phi: "φ",
  chi: "χ",
  psi: "ψ",
  omega: "ω",
  thetasym: "ϑ",
  upsih: "ϒ",
  piv: "ϖ",
  ensp: " ",
  emsp: " ",
  thinsp: " ",
  zwnj: "‌",
  zwj: "‍",
  lrm: "‎",
  rlm: "‏",
  ndash: "–",
  mdash: "—",
  lsquo: "‘",
  rsquo: "’",
  sbquo: "‚",
  ldquo: "“",
  rdquo: "”",
  bdquo: "„",
  dagger: "†",
  Dagger: "‡",
  bull: "•",
  hellip: "…",
  permil: "‰",
  prime: "′",
  Prime: "″",
  lsaquo: "‹",
  rsaquo: "›",
  oline: "‾",
  frasl: "⁄",
  euro: "€",
  image: "ℑ",
  weierp: "℘",
  real: "ℜ",
  trade: "™",
  alefsym: "ℵ",
  larr: "←",
  uarr: "↑",
  rarr: "→",
  darr: "↓",
  harr: "↔",
  crarr: "↵",
  lArr: "⇐",
  uArr: "⇑",
  rArr: "⇒",
  dArr: "⇓",
  hArr: "⇔",
  forall: "∀",
  part: "∂",
  exist: "∃",
  empty: "∅",
  nabla: "∇",
  isin: "∈",
  notin: "∉",
  ni: "∋",
  prod: "∏",
  sum: "∑",
  minus: "−",
  lowast: "∗",
  radic: "√",
  prop: "∝",
  infin: "∞",
  ang: "∠",
  and: "∧",
  or: "∨",
  cap: "∩",
  cup: "∪",
  int: "∫",
  there4: "∴",
  sim: "∼",
  cong: "≅",
  asymp: "≈",
  ne: "≠",
  equiv: "≡",
  le: "≤",
  ge: "≥",
  sub: "⊂",
  sup: "⊃",
  nsub: "⊄",
  sube: "⊆",
  supe: "⊇",
  oplus: "⊕",
  otimes: "⊗",
  perp: "⊥",
  sdot: "⋅",
  lceil: "⌈",
  rceil: "⌉",
  lfloor: "⌊",
  rfloor: "⌋",
  lang: "〈",
  rang: "〉",
  loz: "◊",
  spades: "♠",
  clubs: "♣",
  hearts: "♥",
  diams: "♦"
};
var xae;
const md = df(xae || (xae = at(["jsx"])))({
  AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.",
  MissingClosingTagElement: ({
    openingTagName: e
  }) => "Expected corresponding JSX closing tag for <".concat(e, ">."),
  MissingClosingTagFragment: "Expected corresponding JSX closing tag for <>.",
  UnexpectedSequenceExpression: "Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?",
  UnexpectedToken: ({
    unexpected: e,
    HTMLEntity: t
  }) => "Unexpected token `".concat(e, "`. Did you mean `").concat(t, "` or `{'").concat(e, "'}`?"),
  UnsupportedJsxValue: "JSX value should be either an expression or a quoted JSX text.",
  UnterminatedJsxContent: "Unterminated JSX contents.",
  UnwrappedAdjacentJSXElements: "Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?"
});
function ih(e) {
  return e ? e.type === "JSXOpeningFragment" || e.type === "JSXClosingFragment" : !1;
}
function yy(e) {
  if (e.type === "JSXIdentifier")
    return e.name;
  if (e.type === "JSXNamespacedName")
    return e.namespace.name + ":" + e.name.name;
  if (e.type === "JSXMemberExpression")
    return yy(e.object) + "." + yy(e.property);
  throw new Error("Node had unexpected type: " + e.type);
}
var cLt = (e) => class extends e {
  jsxReadToken() {
    let r = "", i = this.state.pos;
    for (; ; ) {
      if (this.state.pos >= this.length)
        throw this.raise(md.UnterminatedJsxContent, this.state.startLoc);
      const n = this.input.charCodeAt(this.state.pos);
      switch (n) {
        case 60:
        case 123:
          if (this.state.pos === this.state.start) {
            n === 60 && this.state.canStartJSXElement ? (++this.state.pos, this.finishToken(142)) : super.getTokenFromCode(n);
            return;
          }
          r += this.input.slice(i, this.state.pos), this.finishToken(141, r);
          return;
        case 38:
          r += this.input.slice(i, this.state.pos), r += this.jsxReadEntity(), i = this.state.pos;
          break;
        case 62:
        case 125:
        default:
          nv(n) ? (r += this.input.slice(i, this.state.pos), r += this.jsxReadNewLine(!0), i = this.state.pos) : ++this.state.pos;
      }
    }
  }
  jsxReadNewLine(r) {
    const i = this.input.charCodeAt(this.state.pos);
    let n;
    return ++this.state.pos, i === 13 && this.input.charCodeAt(this.state.pos) === 10 ? (++this.state.pos, n = r ? "\n" : "\r\n") : n = String.fromCharCode(i), ++this.state.curLine, this.state.lineStart = this.state.pos, n;
  }
  jsxReadString(r) {
    let i = "", n = ++this.state.pos;
    for (; ; ) {
      if (this.state.pos >= this.length)
        throw this.raise(rt.UnterminatedString, this.state.startLoc);
      const s = this.input.charCodeAt(this.state.pos);
      if (s === r)
        break;
      s === 38 ? (i += this.input.slice(n, this.state.pos), i += this.jsxReadEntity(), n = this.state.pos) : nv(s) ? (i += this.input.slice(n, this.state.pos), i += this.jsxReadNewLine(!1), n = this.state.pos) : ++this.state.pos;
    }
    i += this.input.slice(n, this.state.pos++), this.finishToken(133, i);
  }
  jsxReadEntity() {
    const r = ++this.state.pos;
    if (this.codePointAtPos(this.state.pos) === 35) {
      ++this.state.pos;
      let i = 10;
      this.codePointAtPos(this.state.pos) === 120 && (i = 16, ++this.state.pos);
      const n = this.readInt(i, void 0, !1, "bail");
      if (n !== null && this.codePointAtPos(this.state.pos) === 59)
        return ++this.state.pos, String.fromCodePoint(n);
    } else {
      let i = 0, n = !1;
      for (; i++ < 10 && this.state.pos < this.length && !(n = this.codePointAtPos(this.state.pos) == 59); )
        ++this.state.pos;
      if (n) {
        const s = this.input.slice(r, this.state.pos), a = uLt[s];
        if (++this.state.pos, a)
          return a;
      }
    }
    return this.state.pos = r, "&";
  }
  jsxReadWord() {
    let r;
    const i = this.state.pos;
    do
      r = this.input.charCodeAt(++this.state.pos);
    while (Oy(r) || r === 45);
    this.finishToken(140, this.input.slice(i, this.state.pos));
  }
  jsxParseIdentifier() {
    const r = this.startNode();
    return this.match(140) ? r.name = this.state.value : Q5(this.state.type) ? r.name = Nh(this.state.type) : this.unexpected(), this.next(), this.finishNode(r, "JSXIdentifier");
  }
  jsxParseNamespacedName() {
    const r = this.state.startLoc, i = this.jsxParseIdentifier();
    if (!this.eat(14))
      return i;
    const n = this.startNodeAt(r);
    return n.namespace = i, n.name = this.jsxParseIdentifier(), this.finishNode(n, "JSXNamespacedName");
  }
  jsxParseElementName() {
    const r = this.state.startLoc;
    let i = this.jsxParseNamespacedName();
    if (i.type === "JSXNamespacedName")
      return i;
    for (; this.eat(16); ) {
      const n = this.startNodeAt(r);
      n.object = i, n.property = this.jsxParseIdentifier(), i = this.finishNode(n, "JSXMemberExpression");
    }
    return i;
  }
  jsxParseAttributeValue() {
    let r;
    switch (this.state.type) {
      case 5:
        return r = this.startNode(), this.setContext(Bi.brace), this.next(), r = this.jsxParseExpressionContainer(r, Bi.j_oTag), r.expression.type === "JSXEmptyExpression" && this.raise(md.AttributeIsEmpty, r), r;
      case 142:
      case 133:
        return this.parseExprAtom();
      default:
        throw this.raise(md.UnsupportedJsxValue, this.state.startLoc);
    }
  }
  jsxParseEmptyExpression() {
    const r = this.startNodeAt(this.state.lastTokEndLoc);
    return this.finishNodeAt(r, "JSXEmptyExpression", this.state.startLoc);
  }
  jsxParseSpreadChild(r) {
    return this.next(), r.expression = this.parseExpression(), this.setContext(Bi.j_expr), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(r, "JSXSpreadChild");
  }
  jsxParseExpressionContainer(r, i) {
    if (this.match(8))
      r.expression = this.jsxParseEmptyExpression();
    else {
      const n = this.parseExpression();
      r.expression = n;
    }
    return this.setContext(i), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(r, "JSXExpressionContainer");
  }
  jsxParseAttribute() {
    const r = this.startNode();
    return this.match(5) ? (this.setContext(Bi.brace), this.next(), this.expect(21), r.argument = this.parseMaybeAssignAllowIn(), this.setContext(Bi.j_oTag), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(r, "JSXSpreadAttribute")) : (r.name = this.jsxParseNamespacedName(), r.value = this.eat(29) ? this.jsxParseAttributeValue() : null, this.finishNode(r, "JSXAttribute"));
  }
  jsxParseOpeningElementAt(r) {
    const i = this.startNodeAt(r);
    return this.eat(143) ? this.finishNode(i, "JSXOpeningFragment") : (i.name = this.jsxParseElementName(), this.jsxParseOpeningElementAfterName(i));
  }
  jsxParseOpeningElementAfterName(r) {
    const i = [];
    for (; !this.match(56) && !this.match(143); )
      i.push(this.jsxParseAttribute());
    return r.attributes = i, r.selfClosing = this.eat(56), this.expect(143), this.finishNode(r, "JSXOpeningElement");
  }
  jsxParseClosingElementAt(r) {
    const i = this.startNodeAt(r);
    return this.eat(143) ? this.finishNode(i, "JSXClosingFragment") : (i.name = this.jsxParseElementName(), this.expect(143), this.finishNode(i, "JSXClosingElement"));
  }
  jsxParseElementAt(r) {
    const i = this.startNodeAt(r), n = [], s = this.jsxParseOpeningElementAt(r);
    let a = null;
    if (!s.selfClosing) {
      e:
        for (; ; )
          switch (this.state.type) {
            case 142:
              if (r = this.state.startLoc, this.next(), this.eat(56)) {
                a = this.jsxParseClosingElementAt(r);
                break e;
              }
              n.push(this.jsxParseElementAt(r));
              break;
            case 141:
              n.push(this.parseExprAtom());
              break;
            case 5: {
              const o = this.startNode();
              this.setContext(Bi.brace), this.next(), this.match(21) ? n.push(this.jsxParseSpreadChild(o)) : n.push(this.jsxParseExpressionContainer(o, Bi.j_expr));
              break;
            }
            default:
              this.unexpected();
          }
      ih(s) && !ih(a) && a !== null ? this.raise(md.MissingClosingTagFragment, a) : !ih(s) && ih(a) ? this.raise(md.MissingClosingTagElement, a, {
        openingTagName: yy(s.name)
      }) : !ih(s) && !ih(a) && yy(a.name) !== yy(s.name) && this.raise(md.MissingClosingTagElement, a, {
        openingTagName: yy(s.name)
      });
    }
    if (ih(s) ? (i.openingFragment = s, i.closingFragment = a) : (i.openingElement = s, i.closingElement = a), i.children = n, this.match(47))
      throw this.raise(md.UnwrappedAdjacentJSXElements, this.state.startLoc);
    return ih(s) ? this.finishNode(i, "JSXFragment") : this.finishNode(i, "JSXElement");
  }
  jsxParseElement() {
    const r = this.state.startLoc;
    return this.next(), this.jsxParseElementAt(r);
  }
  setContext(r) {
    const {
      context: i
    } = this.state;
    i[i.length - 1] = r;
  }
  parseExprAtom(r) {
    return this.match(141) ? this.parseLiteral(this.state.value, "JSXText") : this.match(142) ? this.jsxParseElement() : this.match(47) && this.input.charCodeAt(this.state.pos) !== 33 ? (this.replaceToken(142), this.jsxParseElement()) : super.parseExprAtom(r);
  }
  skipSpace() {
    this.curContext().preserveSpace || super.skipSpace();
  }
  getTokenFromCode(r) {
    const i = this.curContext();
    if (i === Bi.j_expr) {
      this.jsxReadToken();
      return;
    }
    if (i === Bi.j_oTag || i === Bi.j_cTag) {
      if (af(r)) {
        this.jsxReadWord();
        return;
      }
      if (r === 62) {
        ++this.state.pos, this.finishToken(143);
        return;
      }
      if ((r === 34 || r === 39) && i === Bi.j_oTag) {
        this.jsxReadString(r);
        return;
      }
    }
    if (r === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) {
      ++this.state.pos, this.finishToken(142);
      return;
    }
    super.getTokenFromCode(r);
  }
  updateContext(r) {
    const {
      context: i,
      type: n
    } = this.state;
    if (n === 56 && r === 142)
      i.splice(-2, 2, Bi.j_cTag), this.state.canStartJSXElement = !1;
    else if (n === 142)
      i.push(Bi.j_oTag);
    else if (n === 143) {
      const s = i[i.length - 1];
      s === Bi.j_oTag && r === 56 || s === Bi.j_cTag ? (i.pop(), this.state.canStartJSXElement = i[i.length - 1] === Bi.j_expr) : (this.setContext(Bi.j_expr), this.state.canStartJSXElement = !0);
    } else
      this.state.canStartJSXElement = mDt(n);
  }
};
let pLt = class extends t7 {
  constructor(...t) {
    super(...t), this.tsNames = /* @__PURE__ */ new Map();
  }
}, fLt = class extends r7 {
  constructor(...t) {
    super(...t), this.importsStack = [];
  }
  createScope(t) {
    return this.importsStack.push(/* @__PURE__ */ new Set()), new pLt(t);
  }
  enter(t) {
    t == 256 && this.importsStack.push(/* @__PURE__ */ new Set()), super.enter(t);
  }
  exit() {
    const t = super.exit();
    return t == 256 && this.importsStack.pop(), t;
  }
  hasImport(t, r) {
    const i = this.importsStack.length;
    if (this.importsStack[i - 1].has(t))
      return !0;
    if (!r && i > 1) {
      for (let n = 0; n < i - 1; n++)
        if (this.importsStack[n].has(t))
          return !0;
    }
    return !1;
  }
  declareName(t, r, i) {
    if (r & 4096) {
      this.hasImport(t, !0) && this.parser.raise(rt.VarRedeclaration, i, {
        identifierName: t
      }), this.importsStack[this.importsStack.length - 1].add(t);
      return;
    }
    const n = this.currentScope();
    let s = n.tsNames.get(t) || 0;
    if (r & 1024) {
      this.maybeExportDefined(n, t), n.tsNames.set(t, s | 16);
      return;
    }
    super.declareName(t, r, i), r & 2 && (r & 1 || (this.checkRedeclarationInScope(n, t, r, i), this.maybeExportDefined(n, t)), s = s | 1), r & 256 && (s = s | 2), r & 512 && (s = s | 4), r & 128 && (s = s | 8), s && n.tsNames.set(t, s);
  }
  isRedeclaredInScope(t, r, i) {
    const n = t.tsNames.get(r);
    if ((n & 2) > 0) {
      if (i & 256) {
        const s = !!(i & 512), a = (n & 4) > 0;
        return s !== a;
      }
      return !0;
    }
    return i & 128 && (n & 8) > 0 ? t.names.get(r) & 2 ? !!(i & 1) : !1 : i & 2 && (n & 1) > 0 ? !0 : super.isRedeclaredInScope(t, r, i);
  }
  checkLocalExport(t) {
    const {
      name: r
    } = t;
    if (this.hasImport(r))
      return;
    const i = this.scopeStack.length;
    for (let n = i - 1; n >= 0; n--) {
      const a = this.scopeStack[n].tsNames.get(r);
      if ((a & 1) > 0 || (a & 16) > 0)
        return;
    }
    super.checkLocalExport(t);
  }
};
const hLt = (e, t) => hasOwnProperty.call(e, t) && e[t], Rye = (e) => e.type === "ParenthesizedExpression" ? Rye(e.expression) : e;
let dLt = class extends rLt {
  toAssignable(t, r = !1) {
    var i, n;
    let s;
    switch ((t.type === "ParenthesizedExpression" || (i = t.extra) != null && i.parenthesized) && (s = Rye(t), r ? s.type === "Identifier" ? this.expressionScope.recordArrowParameterBindingError(rt.InvalidParenthesizedAssignment, t) : s.type !== "MemberExpression" && !this.isOptionalMemberExpression(s) && this.raise(rt.InvalidParenthesizedAssignment, t) : this.raise(rt.InvalidParenthesizedAssignment, t)), t.type) {
      case "Identifier":
      case "ObjectPattern":
      case "ArrayPattern":
      case "AssignmentPattern":
      case "RestElement":
        break;
      case "ObjectExpression":
        t.type = "ObjectPattern";
        for (let o = 0, l = t.properties.length, u = l - 1; o < l; o++) {
          var a;
          const c = t.properties[o], f = o === u;
          this.toAssignableObjectExpressionProp(c, f, r), f && c.type === "RestElement" && (a = t.extra) != null && a.trailingCommaLoc && this.raise(rt.RestTrailingComma, t.extra.trailingCommaLoc);
        }
        break;
      case "ObjectProperty": {
        const {
          key: o,
          value: l
        } = t;
        this.isPrivateName(o) && this.classScope.usePrivateName(this.getPrivateNameSV(o), o.loc.start), this.toAssignable(l, r);
        break;
      }
      case "SpreadElement":
        throw new Error("Internal @babel/parser error (this is a bug, please report it). SpreadElement should be converted by .toAssignable's caller.");
      case "ArrayExpression":
        t.type = "ArrayPattern", this.toAssignableList(t.elements, (n = t.extra) == null ? void 0 : n.trailingCommaLoc, r);
        break;
      case "AssignmentExpression":
        t.operator !== "=" && this.raise(rt.MissingEqInAssignment, t.left.loc.end), t.type = "AssignmentPattern", delete t.operator, this.toAssignable(t.left, r);
        break;
      case "ParenthesizedExpression":
        this.toAssignable(s, r);
        break;
    }
  }
  toAssignableObjectExpressionProp(t, r, i) {
    if (t.type === "ObjectMethod")
      this.raise(t.kind === "get" || t.kind === "set" ? rt.PatternHasAccessor : rt.PatternHasMethod, t.key);
    else if (t.type === "SpreadElement") {
      t.type = "RestElement";
      const n = t.argument;
      this.checkToRestConversion(n, !1), this.toAssignable(n, i), r || this.raise(rt.RestTrailingComma, t);
    } else
      this.toAssignable(t, i);
  }
  toAssignableList(t, r, i) {
    const n = t.length - 1;
    for (let s = 0; s <= n; s++) {
      const a = t[s];
      if (a) {
        if (a.type === "SpreadElement") {
          a.type = "RestElement";
          const o = a.argument;
          this.checkToRestConversion(o, !0), this.toAssignable(o, i);
        } else
          this.toAssignable(a, i);
        a.type === "RestElement" && (s < n ? this.raise(rt.RestTrailingComma, a) : r && this.raise(rt.RestTrailingComma, r));
      }
    }
  }
  isAssignable(t, r) {
    switch (t.type) {
      case "Identifier":
      case "ObjectPattern":
      case "ArrayPattern":
      case "AssignmentPattern":
      case "RestElement":
        return !0;
      case "ObjectExpression": {
        const i = t.properties.length - 1;
        return t.properties.every((n, s) => n.type !== "ObjectMethod" && (s === i || n.type !== "SpreadElement") && this.isAssignable(n));
      }
      case "ObjectProperty":
        return this.isAssignable(t.value);
      case "SpreadElement":
        return this.isAssignable(t.argument);
      case "ArrayExpression":
        return t.elements.every((i) => i === null || this.isAssignable(i));
      case "AssignmentExpression":
        return t.operator === "=";
      case "ParenthesizedExpression":
        return this.isAssignable(t.expression);
      case "MemberExpression":
      case "OptionalMemberExpression":
        return !r;
      default:
        return !1;
    }
  }
  toReferencedList(t, r) {
    return t;
  }
  toReferencedListDeep(t, r) {
    this.toReferencedList(t, r);
    for (const i of t)
      (i == null ? void 0 : i.type) === "ArrayExpression" && this.toReferencedListDeep(i.elements);
  }
  parseSpread(t) {
    const r = this.startNode();
    return this.next(), r.argument = this.parseMaybeAssignAllowIn(t, void 0), this.finishNode(r, "SpreadElement");
  }
  parseRestBinding() {
    const t = this.startNode();
    return this.next(), t.argument = this.parseBindingAtom(), this.finishNode(t, "RestElement");
  }
  parseBindingAtom() {
    switch (this.state.type) {
      case 0: {
        const t = this.startNode();
        return this.next(), t.elements = this.parseBindingList(3, 93, 1), this.finishNode(t, "ArrayPattern");
      }
      case 5:
        return this.parseObjectLike(8, !0);
    }
    return this.parseIdentifier();
  }
  parseBindingList(t, r, i) {
    const n = i & 1, s = [];
    let a = !0;
    for (; !this.eat(t); )
      if (a ? a = !1 : this.expect(12), n && this.match(12))
        s.push(null);
      else {
        if (this.eat(t))
          break;
        if (this.match(21)) {
          if (s.push(this.parseAssignableListItemTypes(this.parseRestBinding(), i)), !this.checkCommaAfterRest(r)) {
            this.expect(t);
            break;
          }
        } else {
          const o = [];
          for (this.match(26) && this.hasPlugin("decorators") && this.raise(rt.UnsupportedParameterDecorator, this.state.startLoc); this.match(26); )
            o.push(this.parseDecorator());
          s.push(this.parseAssignableListItem(i, o));
        }
      }
    return s;
  }
  parseBindingRestProperty(t) {
    return this.next(), t.argument = this.parseIdentifier(), this.checkCommaAfterRest(125), this.finishNode(t, "RestElement");
  }
  parseBindingProperty() {
    const t = this.startNode(), {
      type: r,
      startLoc: i
    } = this.state;
    return r === 21 ? this.parseBindingRestProperty(t) : (r === 138 ? (this.expectPlugin("destructuringPrivate", i), this.classScope.usePrivateName(this.state.value, i), t.key = this.parsePrivateName()) : this.parsePropertyName(t), t.method = !1, this.parseObjPropValue(t, i, !1, !1, !0, !1));
  }
  parseAssignableListItem(t, r) {
    const i = this.parseMaybeDefault();
    this.parseAssignableListItemTypes(i, t);
    const n = this.parseMaybeDefault(i.loc.start, i);
    return r.length && (i.decorators = r), n;
  }
  parseAssignableListItemTypes(t, r) {
    return t;
  }
  parseMaybeDefault(t, r) {
    var i, n;
    if ((i = t) != null || (t = this.state.startLoc), r = (n = r) != null ? n : this.parseBindingAtom(), !this.eat(29))
      return r;
    const s = this.startNodeAt(t);
    return s.left = r, s.right = this.parseMaybeAssignAllowIn(), this.finishNode(s, "AssignmentPattern");
  }
  isValidLVal(t, r, i) {
    return hLt({
      AssignmentPattern: "left",
      RestElement: "argument",
      ObjectProperty: "value",
      ParenthesizedExpression: "expression",
      ArrayPattern: "elements",
      ObjectPattern: "properties"
    }, t);
  }
  isOptionalMemberExpression(t) {
    return t.type === "OptionalMemberExpression";
  }
  checkLVal(t, {
    in: r,
    binding: i = 64,
    checkClashes: n = !1,
    strictModeChanged: s = !1,
    hasParenthesizedAncestor: a = !1
  }) {
    var o;
    const l = t.type;
    if (this.isObjectMethod(t))
      return;
    const u = this.isOptionalMemberExpression(t);
    if (u || l === "MemberExpression") {
      u && (this.expectPlugin("optionalChainingAssign", t.loc.start), r.type !== "AssignmentExpression" && this.raise(rt.InvalidLhsOptionalChaining, t, {
        ancestor: r
      })), i !== 64 && this.raise(rt.InvalidPropertyBindingPattern, t);
      return;
    }
    if (l === "Identifier") {
      this.checkIdentifier(t, i, s);
      const {
        name: g
      } = t;
      n && (n.has(g) ? this.raise(rt.ParamDupe, t) : n.add(g));
      return;
    }
    const c = this.isValidLVal(l, !(a || (o = t.extra) != null && o.parenthesized) && r.type === "AssignmentExpression", i);
    if (c === !0)
      return;
    if (c === !1) {
      const g = i === 64 ? rt.InvalidLhs : rt.InvalidLhsBinding;
      this.raise(g, t, {
        ancestor: r
      });
      return;
    }
    const [f, h] = Array.isArray(c) ? c : [c, l === "ParenthesizedExpression"], m = l === "ArrayPattern" || l === "ObjectPattern" ? {
      type: l
    } : r;
    for (const g of [].concat(t[f]))
      g && this.checkLVal(g, {
        in: m,
        binding: i,
        checkClashes: n,
        strictModeChanged: s,
        hasParenthesizedAncestor: h
      });
  }
  checkIdentifier(t, r, i = !1) {
    this.state.strict && (i ? _ye(t.name, this.inModule) : Cye(t.name)) && (r === 64 ? this.raise(rt.StrictEvalArguments, t, {
      referenceName: t.name
    }) : this.raise(rt.StrictEvalArgumentsBinding, t, {
      bindingName: t.name
    })), r & 8192 && t.name === "let" && this.raise(rt.LetInLexicalBinding, t), r & 64 || this.declareNameFromIdentifier(t, r);
  }
  declareNameFromIdentifier(t, r) {
    this.scope.declareName(t.name, r, t.loc.start);
  }
  checkToRestConversion(t, r) {
    switch (t.type) {
      case "ParenthesizedExpression":
        this.checkToRestConversion(t.expression, r);
        break;
      case "Identifier":
      case "MemberExpression":
        break;
      case "ArrayExpression":
      case "ObjectExpression":
        if (r)
          break;
      default:
        this.raise(rt.InvalidRestAssignmentPattern, t);
    }
  }
  checkCommaAfterRest(t) {
    return this.match(12) ? (this.raise(this.lookaheadCharCode() === t ? rt.RestTrailingComma : rt.ElementAfterRest, this.state.startLoc), !0) : !1;
  }
};
const mLt = (e, t) => hasOwnProperty.call(e, t) && e[t];
function yLt(e) {
  if (e == null)
    throw new Error("Unexpected ".concat(e, " value."));
  return e;
}
function JQ(e) {
  if (!e)
    throw new Error("Assert fail");
}
var Eae;
const Yt = df(Eae || (Eae = at(["typescript"])))({
  AbstractMethodHasImplementation: ({
    methodName: e
  }) => "Method '".concat(e, "' cannot have an implementation because it is marked abstract."),
  AbstractPropertyHasInitializer: ({
    propertyName: e
  }) => "Property '".concat(e, "' cannot have an initializer because it is marked abstract."),
  AccesorCannotDeclareThisParameter: "'get' and 'set' accessors cannot declare 'this' parameters.",
  AccesorCannotHaveTypeParameters: "An accessor cannot have type parameters.",
  AccessorCannotBeOptional: "An 'accessor' property cannot be declared optional.",
  ClassMethodHasDeclare: "Class methods cannot have the 'declare' modifier.",
  ClassMethodHasReadonly: "Class methods cannot have the 'readonly' modifier.",
  ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference: "A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.",
  ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.",
  DeclareAccessor: ({
    kind: e
  }) => "'declare' is not allowed in ".concat(e, "ters."),
  DeclareClassFieldHasInitializer: "Initializers are not allowed in ambient contexts.",
  DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.",
  DuplicateAccessibilityModifier: ({
    modifier: e
  }) => "Accessibility modifier already seen.",
  DuplicateModifier: ({
    modifier: e
  }) => "Duplicate modifier: '".concat(e, "'."),
  EmptyHeritageClauseType: ({
    token: e
  }) => "'".concat(e, "' list cannot be empty."),
  EmptyTypeArguments: "Type argument list cannot be empty.",
  EmptyTypeParameters: "Type parameter list cannot be empty.",
  ExpectedAmbientAfterExportDeclare: "'export declare' must be followed by an ambient declaration.",
  ImportAliasHasImportType: "An import alias can not use 'import type'.",
  ImportReflectionHasImportType: "An `import module` declaration can not use `type` modifier",
  IncompatibleModifiers: ({
    modifiers: e
  }) => "'".concat(e[0], "' modifier cannot be used with '").concat(e[1], "' modifier."),
  IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier.",
  IndexSignatureHasAccessibility: ({
    modifier: e
  }) => "Index signatures cannot have an accessibility modifier ('".concat(e, "')."),
  IndexSignatureHasDeclare: "Index signatures cannot have the 'declare' modifier.",
  IndexSignatureHasOverride: "'override' modifier cannot appear on an index signature.",
  IndexSignatureHasStatic: "Index signatures cannot have the 'static' modifier.",
  InitializerNotAllowedInAmbientContext: "Initializers are not allowed in ambient contexts.",
  InvalidModifierOnTypeMember: ({
    modifier: e
  }) => "'".concat(e, "' modifier cannot appear on a type member."),
  InvalidModifierOnTypeParameter: ({
    modifier: e
  }) => "'".concat(e, "' modifier cannot appear on a type parameter."),
  InvalidModifierOnTypeParameterPositions: ({
    modifier: e
  }) => "'".concat(e, "' modifier can only appear on a type parameter of a class, interface or type alias."),
  InvalidModifiersOrder: ({
    orderedModifiers: e
  }) => "'".concat(e[0], "' modifier must precede '").concat(e[1], "' modifier."),
  InvalidPropertyAccessAfterInstantiationExpression: "Invalid property access after an instantiation expression. You can either wrap the instantiation expression in parentheses, or delete the type arguments.",
  InvalidTupleMemberLabel: "Tuple members must be labeled with a simple identifier.",
  MissingInterfaceName: "'interface' declarations must be followed by an identifier.",
  NonAbstractClassHasAbstractMethod: "Abstract methods can only appear within an abstract class.",
  NonClassMethodPropertyHasAbstractModifer: "'abstract' modifier can only appear on a class, method, or property declaration.",
  OptionalTypeBeforeRequired: "A required element cannot follow an optional element.",
  OverrideNotInSubClass: "This member cannot have an 'override' modifier because its containing class does not extend another class.",
  PatternIsOptional: "A binding pattern parameter cannot be optional in an implementation signature.",
  PrivateElementHasAbstract: "Private elements cannot have the 'abstract' modifier.",
  PrivateElementHasAccessibility: ({
    modifier: e
  }) => "Private elements cannot have an accessibility modifier ('".concat(e, "')."),
  ReadonlyForMethodSignature: "'readonly' modifier can only appear on a property declaration or index signature.",
  ReservedArrowTypeParam: "This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `<T,>() => ...`.",
  ReservedTypeAssertion: "This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.",
  SetAccesorCannotHaveOptionalParameter: "A 'set' accessor cannot have an optional parameter.",
  SetAccesorCannotHaveRestParameter: "A 'set' accessor cannot have rest parameter.",
  SetAccesorCannotHaveReturnType: "A 'set' accessor cannot have a return type annotation.",
  SingleTypeParameterWithoutTrailingComma: ({
    typeParameterName: e
  }) => "Single type parameter ".concat(e, " should have a trailing comma. Example usage: <").concat(e, ",>."),
  StaticBlockCannotHaveModifier: "Static class blocks cannot have any modifier.",
  TupleOptionalAfterType: "A labeled tuple optional element must be declared using a question mark after the name and before the colon (`name?: type`), rather than after the type (`name: type?`).",
  TypeAnnotationAfterAssign: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",
  TypeImportCannotSpecifyDefaultAndNamed: "A type-only import can specify a default import or named bindings, but not both.",
  TypeModifierIsUsedInTypeExports: "The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.",
  TypeModifierIsUsedInTypeImports: "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.",
  UnexpectedParameterModifier: "A parameter property is only allowed in a constructor implementation.",
  UnexpectedReadonly: "'readonly' type modifier is only permitted on array and tuple literal types.",
  UnexpectedTypeAnnotation: "Did not expect a type annotation here.",
  UnexpectedTypeCastInParameter: "Unexpected type cast in parameter position.",
  UnsupportedImportTypeArgument: "Argument in a type import must be a string literal.",
  UnsupportedParameterPropertyKind: "A parameter property may not be declared using a binding pattern.",
  UnsupportedSignatureParameterKind: ({
    type: e
  }) => "Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ".concat(e, ".")
});
function gLt(e) {
  switch (e) {
    case "any":
      return "TSAnyKeyword";
    case "boolean":
      return "TSBooleanKeyword";
    case "bigint":
      return "TSBigIntKeyword";
    case "never":
      return "TSNeverKeyword";
    case "number":
      return "TSNumberKeyword";
    case "object":
      return "TSObjectKeyword";
    case "string":
      return "TSStringKeyword";
    case "symbol":
      return "TSSymbolKeyword";
    case "undefined":
      return "TSUndefinedKeyword";
    case "unknown":
      return "TSUnknownKeyword";
    default:
      return;
  }
}
function QQ(e) {
  return e === "private" || e === "public" || e === "protected";
}
function bLt(e) {
  return e === "in" || e === "out";
}
var vLt = (e) => class extends e {
  constructor(...r) {
    super(...r), this.tsParseInOutModifiers = this.tsParseModifiers.bind(this, {
      allowedModifiers: ["in", "out"],
      disallowedModifiers: ["const", "public", "private", "protected", "readonly", "declare", "abstract", "override"],
      errorTemplate: Yt.InvalidModifierOnTypeParameter
    }), this.tsParseConstModifier = this.tsParseModifiers.bind(this, {
      allowedModifiers: ["const"],
      disallowedModifiers: ["in", "out"],
      errorTemplate: Yt.InvalidModifierOnTypeParameterPositions
    }), this.tsParseInOutConstModifiers = this.tsParseModifiers.bind(this, {
      allowedModifiers: ["in", "out", "const"],
      disallowedModifiers: ["public", "private", "protected", "readonly", "declare", "abstract", "override"],
      errorTemplate: Yt.InvalidModifierOnTypeParameter
    });
  }
  getScopeHandler() {
    return fLt;
  }
  tsIsIdentifier() {
    return xi(this.state.type);
  }
  tsTokenCanFollowModifier() {
    return (this.match(0) || this.match(5) || this.match(55) || this.match(21) || this.match(138) || this.isLiteralPropertyName()) && !this.hasPrecedingLineBreak();
  }
  tsNextTokenCanFollowModifier() {
    return this.next(), this.tsTokenCanFollowModifier();
  }
  tsParseModifier(r, i) {
    if (!xi(this.state.type) && this.state.type !== 58 && this.state.type !== 75)
      return;
    const n = this.state.value;
    if (r.indexOf(n) !== -1) {
      if (i && this.tsIsStartOfStaticBlocks())
        return;
      if (this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))
        return n;
    }
  }
  tsParseModifiers({
    allowedModifiers: r,
    disallowedModifiers: i,
    stopOnStartOfClassStaticBlock: n,
    errorTemplate: s = Yt.InvalidModifierOnTypeMember
  }, a) {
    const o = (u, c, f, h) => {
      c === f && a[h] && this.raise(Yt.InvalidModifiersOrder, u, {
        orderedModifiers: [f, h]
      });
    }, l = (u, c, f, h) => {
      (a[f] && c === h || a[h] && c === f) && this.raise(Yt.IncompatibleModifiers, u, {
        modifiers: [f, h]
      });
    };
    for (; ; ) {
      const {
        startLoc: u
      } = this.state, c = this.tsParseModifier(r.concat(i != null ? i : []), n);
      if (!c)
        break;
      QQ(c) ? a.accessibility ? this.raise(Yt.DuplicateAccessibilityModifier, u, {
        modifier: c
      }) : (o(u, c, c, "override"), o(u, c, c, "static"), o(u, c, c, "readonly"), a.accessibility = c) : bLt(c) ? (a[c] && this.raise(Yt.DuplicateModifier, u, {
        modifier: c
      }), a[c] = !0, o(u, c, "in", "out")) : (hasOwnProperty.call(a, c) ? this.raise(Yt.DuplicateModifier, u, {
        modifier: c
      }) : (o(u, c, "static", "readonly"), o(u, c, "static", "override"), o(u, c, "override", "readonly"), o(u, c, "abstract", "override"), l(u, c, "declare", "override"), l(u, c, "static", "abstract")), a[c] = !0), i != null && i.includes(c) && this.raise(s, u, {
        modifier: c
      });
    }
  }
  tsIsListTerminator(r) {
    switch (r) {
      case "EnumMembers":
      case "TypeMembers":
        return this.match(8);
      case "HeritageClauseElement":
        return this.match(5);
      case "TupleElementTypes":
        return this.match(3);
      case "TypeParametersOrArguments":
        return this.match(48);
    }
  }
  tsParseList(r, i) {
    const n = [];
    for (; !this.tsIsListTerminator(r); )
      n.push(i());
    return n;
  }
  tsParseDelimitedList(r, i, n) {
    return yLt(this.tsParseDelimitedListWorker(r, i, !0, n));
  }
  tsParseDelimitedListWorker(r, i, n, s) {
    const a = [];
    let o = -1;
    for (; !this.tsIsListTerminator(r); ) {
      o = -1;
      const l = i();
      if (l == null)
        return;
      if (a.push(l), this.eat(12)) {
        o = this.state.lastTokStartLoc.index;
        continue;
      }
      if (this.tsIsListTerminator(r))
        break;
      n && this.expect(12);
      return;
    }
    return s && (s.value = o), a;
  }
  tsParseBracketedList(r, i, n, s, a) {
    s || (n ? this.expect(0) : this.expect(47));
    const o = this.tsParseDelimitedList(r, i, a);
    return n ? this.expect(3) : this.expect(48), o;
  }
  tsParseImportType() {
    const r = this.startNode();
    return this.expect(83), this.expect(10), this.match(133) || this.raise(Yt.UnsupportedImportTypeArgument, this.state.startLoc), r.argument = super.parseExprAtom(), (this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions")) && (r.options = null), this.eat(12) && (this.expectImportAttributesPlugin(), this.match(11) || (r.options = super.parseMaybeAssignAllowIn(), this.eat(12))), this.expect(11), this.eat(16) && (r.qualifier = this.tsParseEntityName()), this.match(47) && (r.typeParameters = this.tsParseTypeArguments()), this.finishNode(r, "TSImportType");
  }
  tsParseEntityName(r = !0) {
    let i = this.parseIdentifier(r);
    for (; this.eat(16); ) {
      const n = this.startNodeAtNode(i);
      n.left = i, n.right = this.parseIdentifier(r), i = this.finishNode(n, "TSQualifiedName");
    }
    return i;
  }
  tsParseTypeReference() {
    const r = this.startNode();
    return r.typeName = this.tsParseEntityName(), !this.hasPrecedingLineBreak() && this.match(47) && (r.typeParameters = this.tsParseTypeArguments()), this.finishNode(r, "TSTypeReference");
  }
  tsParseThisTypePredicate(r) {
    this.next();
    const i = this.startNodeAtNode(r);
    return i.parameterName = r, i.typeAnnotation = this.tsParseTypeAnnotation(!1), i.asserts = !1, this.finishNode(i, "TSTypePredicate");
  }
  tsParseThisTypeNode() {
    const r = this.startNode();
    return this.next(), this.finishNode(r, "TSThisType");
  }
  tsParseTypeQuery() {
    const r = this.startNode();
    return this.expect(87), this.match(83) ? r.exprName = this.tsParseImportType() : r.exprName = this.tsParseEntityName(), !this.hasPrecedingLineBreak() && this.match(47) && (r.typeParameters = this.tsParseTypeArguments()), this.finishNode(r, "TSTypeQuery");
  }
  tsParseTypeParameter(r) {
    const i = this.startNode();
    return r(i), i.name = this.tsParseTypeParameterName(), i.constraint = this.tsEatThenParseType(81), i.default = this.tsEatThenParseType(29), this.finishNode(i, "TSTypeParameter");
  }
  tsTryParseTypeParameters(r) {
    if (this.match(47))
      return this.tsParseTypeParameters(r);
  }
  tsParseTypeParameters(r) {
    const i = this.startNode();
    this.match(47) || this.match(142) ? this.next() : this.unexpected();
    const n = {
      value: -1
    };
    return i.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this, r), !1, !0, n), i.params.length === 0 && this.raise(Yt.EmptyTypeParameters, i), n.value !== -1 && this.addExtra(i, "trailingComma", n.value), this.finishNode(i, "TSTypeParameterDeclaration");
  }
  tsFillSignature(r, i) {
    const n = r === 19, s = "parameters", a = "typeAnnotation";
    i.typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier), this.expect(10), i[s] = this.tsParseBindingListForSignature(), n ? i[a] = this.tsParseTypeOrTypePredicateAnnotation(r) : this.match(r) && (i[a] = this.tsParseTypeOrTypePredicateAnnotation(r));
  }
  tsParseBindingListForSignature() {
    const r = super.parseBindingList(11, 41, 2);
    for (const i of r) {
      const {
        type: n
      } = i;
      (n === "AssignmentPattern" || n === "TSParameterProperty") && this.raise(Yt.UnsupportedSignatureParameterKind, i, {
        type: n
      });
    }
    return r;
  }
  tsParseTypeMemberSemicolon() {
    !this.eat(12) && !this.isLineTerminator() && this.expect(13);
  }
  tsParseSignatureMember(r, i) {
    return this.tsFillSignature(14, i), this.tsParseTypeMemberSemicolon(), this.finishNode(i, r);
  }
  tsIsUnambiguouslyIndexSignature() {
    return this.next(), xi(this.state.type) ? (this.next(), this.match(14)) : !1;
  }
  tsTryParseIndexSignature(r) {
    if (!(this.match(0) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))))
      return;
    this.expect(0);
    const i = this.parseIdentifier();
    i.typeAnnotation = this.tsParseTypeAnnotation(), this.resetEndLocation(i), this.expect(3), r.parameters = [i];
    const n = this.tsTryParseTypeAnnotation();
    return n && (r.typeAnnotation = n), this.tsParseTypeMemberSemicolon(), this.finishNode(r, "TSIndexSignature");
  }
  tsParsePropertyOrMethodSignature(r, i) {
    this.eat(17) && (r.optional = !0);
    const n = r;
    if (this.match(10) || this.match(47)) {
      i && this.raise(Yt.ReadonlyForMethodSignature, r);
      const s = n;
      s.kind && this.match(47) && this.raise(Yt.AccesorCannotHaveTypeParameters, this.state.curPosition()), this.tsFillSignature(14, s), this.tsParseTypeMemberSemicolon();
      const a = "parameters", o = "typeAnnotation";
      if (s.kind === "get")
        s[a].length > 0 && (this.raise(rt.BadGetterArity, this.state.curPosition()), this.isThisParam(s[a][0]) && this.raise(Yt.AccesorCannotDeclareThisParameter, this.state.curPosition()));
      else if (s.kind === "set") {
        if (s[a].length !== 1)
          this.raise(rt.BadSetterArity, this.state.curPosition());
        else {
          const l = s[a][0];
          this.isThisParam(l) && this.raise(Yt.AccesorCannotDeclareThisParameter, this.state.curPosition()), l.type === "Identifier" && l.optional && this.raise(Yt.SetAccesorCannotHaveOptionalParameter, this.state.curPosition()), l.type === "RestElement" && this.raise(Yt.SetAccesorCannotHaveRestParameter, this.state.curPosition());
        }
        s[o] && this.raise(Yt.SetAccesorCannotHaveReturnType, s[o]);
      } else
        s.kind = "method";
      return this.finishNode(s, "TSMethodSignature");
    } else {
      const s = n;
      i && (s.readonly = !0);
      const a = this.tsTryParseTypeAnnotation();
      return a && (s.typeAnnotation = a), this.tsParseTypeMemberSemicolon(), this.finishNode(s, "TSPropertySignature");
    }
  }
  tsParseTypeMember() {
    const r = this.startNode();
    if (this.match(10) || this.match(47))
      return this.tsParseSignatureMember("TSCallSignatureDeclaration", r);
    if (this.match(77)) {
      const n = this.startNode();
      return this.next(), this.match(10) || this.match(47) ? this.tsParseSignatureMember("TSConstructSignatureDeclaration", r) : (r.key = this.createIdentifier(n, "new"), this.tsParsePropertyOrMethodSignature(r, !1));
    }
    this.tsParseModifiers({
      allowedModifiers: ["readonly"],
      disallowedModifiers: ["declare", "abstract", "private", "protected", "public", "static", "override"]
    }, r);
    const i = this.tsTryParseIndexSignature(r);
    return i || (super.parsePropertyName(r), !r.computed && r.key.type === "Identifier" && (r.key.name === "get" || r.key.name === "set") && this.tsTokenCanFollowModifier() && (r.kind = r.key.name, super.parsePropertyName(r)), this.tsParsePropertyOrMethodSignature(r, !!r.readonly));
  }
  tsParseTypeLiteral() {
    const r = this.startNode();
    return r.members = this.tsParseObjectTypeMembers(), this.finishNode(r, "TSTypeLiteral");
  }
  tsParseObjectTypeMembers() {
    this.expect(5);
    const r = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this));
    return this.expect(8), r;
  }
  tsIsStartOfMappedType() {
    return this.next(), this.eat(53) ? this.isContextual(122) : (this.isContextual(122) && this.next(), !this.match(0) || (this.next(), !this.tsIsIdentifier()) ? !1 : (this.next(), this.match(58)));
  }
  tsParseMappedTypeParameter() {
    const r = this.startNode();
    return r.name = this.tsParseTypeParameterName(), r.constraint = this.tsExpectThenParseType(58), this.finishNode(r, "TSTypeParameter");
  }
  tsParseMappedType() {
    const r = this.startNode();
    return this.expect(5), this.match(53) ? (r.readonly = this.state.value, this.next(), this.expectContextual(122)) : this.eatContextual(122) && (r.readonly = !0), this.expect(0), r.typeParameter = this.tsParseMappedTypeParameter(), r.nameType = this.eatContextual(93) ? this.tsParseType() : null, this.expect(3), this.match(53) ? (r.optional = this.state.value, this.next(), this.expect(17)) : this.eat(17) && (r.optional = !0), r.typeAnnotation = this.tsTryParseType(), this.semicolon(), this.expect(8), this.finishNode(r, "TSMappedType");
  }
  tsParseTupleType() {
    const r = this.startNode();
    r.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), !0, !1);
    let i = !1;
    return r.elementTypes.forEach((n) => {
      const {
        type: s
      } = n;
      i && s !== "TSRestType" && s !== "TSOptionalType" && !(s === "TSNamedTupleMember" && n.optional) && this.raise(Yt.OptionalTypeBeforeRequired, n), i || (i = s === "TSNamedTupleMember" && n.optional || s === "TSOptionalType");
    }), this.finishNode(r, "TSTupleType");
  }
  tsParseTupleElementType() {
    const {
      startLoc: r
    } = this.state, i = this.eat(21);
    let n, s, a, o;
    const u = Oc(this.state.type) ? this.lookaheadCharCode() : null;
    if (u === 58)
      n = !0, a = !1, s = this.parseIdentifier(!0), this.expect(14), o = this.tsParseType();
    else if (u === 63) {
      a = !0;
      const c = this.state.startLoc, f = this.state.value, h = this.tsParseNonArrayType();
      this.lookaheadCharCode() === 58 ? (n = !0, s = this.createIdentifier(this.startNodeAt(c), f), this.expect(17), this.expect(14), o = this.tsParseType()) : (n = !1, o = h, this.expect(17));
    } else
      o = this.tsParseType(), a = this.eat(17), n = this.eat(14);
    if (n) {
      let c;
      s ? (c = this.startNodeAtNode(s), c.optional = a, c.label = s, c.elementType = o, this.eat(17) && (c.optional = !0, this.raise(Yt.TupleOptionalAfterType, this.state.lastTokStartLoc))) : (c = this.startNodeAtNode(o), c.optional = a, this.raise(Yt.InvalidTupleMemberLabel, o), c.label = o, c.elementType = this.tsParseType()), o = this.finishNode(c, "TSNamedTupleMember");
    } else if (a) {
      const c = this.startNodeAtNode(o);
      c.typeAnnotation = o, o = this.finishNode(c, "TSOptionalType");
    }
    if (i) {
      const c = this.startNodeAt(r);
      c.typeAnnotation = o, o = this.finishNode(c, "TSRestType");
    }
    return o;
  }
  tsParseParenthesizedType() {
    const r = this.startNode();
    return this.expect(10), r.typeAnnotation = this.tsParseType(), this.expect(11), this.finishNode(r, "TSParenthesizedType");
  }
  tsParseFunctionOrConstructorType(r, i) {
    const n = this.startNode();
    return r === "TSConstructorType" && (n.abstract = !!i, i && this.next(), this.next()), this.tsInAllowConditionalTypesContext(() => this.tsFillSignature(19, n)), this.finishNode(n, r);
  }
  tsParseLiteralTypeNode() {
    const r = this.startNode();
    switch (this.state.type) {
      case 134:
      case 135:
      case 133:
      case 85:
      case 86:
        r.literal = super.parseExprAtom();
        break;
      default:
        this.unexpected();
    }
    return this.finishNode(r, "TSLiteralType");
  }
  tsParseTemplateLiteralType() {
    const r = this.startNode();
    return r.literal = super.parseTemplate(!1), this.finishNode(r, "TSLiteralType");
  }
  parseTemplateSubstitution() {
    return this.state.inType ? this.tsParseType() : super.parseTemplateSubstitution();
  }
  tsParseThisTypeOrThisTypePredicate() {
    const r = this.tsParseThisTypeNode();
    return this.isContextual(116) && !this.hasPrecedingLineBreak() ? this.tsParseThisTypePredicate(r) : r;
  }
  tsParseNonArrayType() {
    switch (this.state.type) {
      case 133:
      case 134:
      case 135:
      case 85:
      case 86:
        return this.tsParseLiteralTypeNode();
      case 53:
        if (this.state.value === "-") {
          const r = this.startNode(), i = this.lookahead();
          return i.type !== 134 && i.type !== 135 && this.unexpected(), r.literal = this.parseMaybeUnary(), this.finishNode(r, "TSLiteralType");
        }
        break;
      case 78:
        return this.tsParseThisTypeOrThisTypePredicate();
      case 87:
        return this.tsParseTypeQuery();
      case 83:
        return this.tsParseImportType();
      case 5:
        return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this)) ? this.tsParseMappedType() : this.tsParseTypeLiteral();
      case 0:
        return this.tsParseTupleType();
      case 10:
        return this.tsParseParenthesizedType();
      case 25:
      case 24:
        return this.tsParseTemplateLiteralType();
      default: {
        const {
          type: r
        } = this.state;
        if (xi(r) || r === 88 || r === 84) {
          const i = r === 88 ? "TSVoidKeyword" : r === 84 ? "TSNullKeyword" : gLt(this.state.value);
          if (i !== void 0 && this.lookaheadCharCode() !== 46) {
            const n = this.startNode();
            return this.next(), this.finishNode(n, i);
          }
          return this.tsParseTypeReference();
        }
      }
    }
    this.unexpected();
  }
  tsParseArrayTypeOrHigher() {
    let r = this.tsParseNonArrayType();
    for (; !this.hasPrecedingLineBreak() && this.eat(0); )
      if (this.match(3)) {
        const i = this.startNodeAtNode(r);
        i.elementType = r, this.expect(3), r = this.finishNode(i, "TSArrayType");
      } else {
        const i = this.startNodeAtNode(r);
        i.objectType = r, i.indexType = this.tsParseType(), this.expect(3), r = this.finishNode(i, "TSIndexedAccessType");
      }
    return r;
  }
  tsParseTypeOperator() {
    const r = this.startNode(), i = this.state.value;
    return this.next(), r.operator = i, r.typeAnnotation = this.tsParseTypeOperatorOrHigher(), i === "readonly" && this.tsCheckTypeAnnotationForReadOnly(r), this.finishNode(r, "TSTypeOperator");
  }
  tsCheckTypeAnnotationForReadOnly(r) {
    switch (r.typeAnnotation.type) {
      case "TSTupleType":
      case "TSArrayType":
        return;
      default:
        this.raise(Yt.UnexpectedReadonly, r);
    }
  }
  tsParseInferType() {
    const r = this.startNode();
    this.expectContextual(115);
    const i = this.startNode();
    return i.name = this.tsParseTypeParameterName(), i.constraint = this.tsTryParse(() => this.tsParseConstraintForInferType()), r.typeParameter = this.finishNode(i, "TSTypeParameter"), this.finishNode(r, "TSInferType");
  }
  tsParseConstraintForInferType() {
    if (this.eat(81)) {
      const r = this.tsInDisallowConditionalTypesContext(() => this.tsParseType());
      if (this.state.inDisallowConditionalTypesContext || !this.match(17))
        return r;
    }
  }
  tsParseTypeOperatorOrHigher() {
    return SDt(this.state.type) && !this.state.containsEsc ? this.tsParseTypeOperator() : this.isContextual(115) ? this.tsParseInferType() : this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher());
  }
  tsParseUnionOrIntersectionType(r, i, n) {
    const s = this.startNode(), a = this.eat(n), o = [];
    do
      o.push(i());
    while (this.eat(n));
    return o.length === 1 && !a ? o[0] : (s.types = o, this.finishNode(s, r));
  }
  tsParseIntersectionTypeOrHigher() {
    return this.tsParseUnionOrIntersectionType("TSIntersectionType", this.tsParseTypeOperatorOrHigher.bind(this), 45);
  }
  tsParseUnionTypeOrHigher() {
    return this.tsParseUnionOrIntersectionType("TSUnionType", this.tsParseIntersectionTypeOrHigher.bind(this), 43);
  }
  tsIsStartOfFunctionType() {
    return this.match(47) ? !0 : this.match(10) && this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this));
  }
  tsSkipParameterStart() {
    if (xi(this.state.type) || this.match(78))
      return this.next(), !0;
    if (this.match(5)) {
      const {
        errors: r
      } = this.state, i = r.length;
      try {
        return this.parseObjectLike(8, !0), r.length === i;
      } catch (n) {
        return !1;
      }
    }
    if (this.match(0)) {
      this.next();
      const {
        errors: r
      } = this.state, i = r.length;
      try {
        return super.parseBindingList(3, 93, 1), r.length === i;
      } catch (n) {
        return !1;
      }
    }
    return !1;
  }
  tsIsUnambiguouslyStartOfFunctionType() {
    return this.next(), !!(this.match(11) || this.match(21) || this.tsSkipParameterStart() && (this.match(14) || this.match(12) || this.match(17) || this.match(29) || this.match(11) && (this.next(), this.match(19))));
  }
  tsParseTypeOrTypePredicateAnnotation(r) {
    return this.tsInType(() => {
      const i = this.startNode();
      this.expect(r);
      const n = this.startNode(), s = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));
      if (s && this.match(78)) {
        let l = this.tsParseThisTypeOrThisTypePredicate();
        return l.type === "TSThisType" ? (n.parameterName = l, n.asserts = !0, n.typeAnnotation = null, l = this.finishNode(n, "TSTypePredicate")) : (this.resetStartLocationFromNode(l, n), l.asserts = !0), i.typeAnnotation = l, this.finishNode(i, "TSTypeAnnotation");
      }
      const a = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));
      if (!a)
        return s ? (n.parameterName = this.parseIdentifier(), n.asserts = s, n.typeAnnotation = null, i.typeAnnotation = this.finishNode(n, "TSTypePredicate"), this.finishNode(i, "TSTypeAnnotation")) : this.tsParseTypeAnnotation(!1, i);
      const o = this.tsParseTypeAnnotation(!1);
      return n.parameterName = a, n.typeAnnotation = o, n.asserts = s, i.typeAnnotation = this.finishNode(n, "TSTypePredicate"), this.finishNode(i, "TSTypeAnnotation");
    });
  }
  tsTryParseTypeOrTypePredicateAnnotation() {
    if (this.match(14))
      return this.tsParseTypeOrTypePredicateAnnotation(14);
  }
  tsTryParseTypeAnnotation() {
    if (this.match(14))
      return this.tsParseTypeAnnotation();
  }
  tsTryParseType() {
    return this.tsEatThenParseType(14);
  }
  tsParseTypePredicatePrefix() {
    const r = this.parseIdentifier();
    if (this.isContextual(116) && !this.hasPrecedingLineBreak())
      return this.next(), r;
  }
  tsParseTypePredicateAsserts() {
    if (this.state.type !== 109)
      return !1;
    const r = this.state.containsEsc;
    return this.next(), !xi(this.state.type) && !this.match(78) ? !1 : (r && this.raise(rt.InvalidEscapedReservedWord, this.state.lastTokStartLoc, {
      reservedWord: "asserts"
    }), !0);
  }
  tsParseTypeAnnotation(r = !0, i = this.startNode()) {
    return this.tsInType(() => {
      r && this.expect(14), i.typeAnnotation = this.tsParseType();
    }), this.finishNode(i, "TSTypeAnnotation");
  }
  tsParseType() {
    JQ(this.state.inType);
    const r = this.tsParseNonConditionalType();
    if (this.state.inDisallowConditionalTypesContext || this.hasPrecedingLineBreak() || !this.eat(81))
      return r;
    const i = this.startNodeAtNode(r);
    return i.checkType = r, i.extendsType = this.tsInDisallowConditionalTypesContext(() => this.tsParseNonConditionalType()), this.expect(17), i.trueType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()), this.expect(14), i.falseType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()), this.finishNode(i, "TSConditionalType");
  }
  isAbstractConstructorSignature() {
    return this.isContextual(124) && this.lookahead().type === 77;
  }
  tsParseNonConditionalType() {
    return this.tsIsStartOfFunctionType() ? this.tsParseFunctionOrConstructorType("TSFunctionType") : this.match(77) ? this.tsParseFunctionOrConstructorType("TSConstructorType") : this.isAbstractConstructorSignature() ? this.tsParseFunctionOrConstructorType("TSConstructorType", !0) : this.tsParseUnionTypeOrHigher();
  }
  tsParseTypeAssertion() {
    this.getPluginOption("typescript", "disallowAmbiguousJSXLike") && this.raise(Yt.ReservedTypeAssertion, this.state.startLoc);
    const r = this.startNode();
    return r.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? this.tsParseTypeReference() : this.tsParseType())), this.expect(48), r.expression = this.parseMaybeUnary(), this.finishNode(r, "TSTypeAssertion");
  }
  tsParseHeritageClause(r) {
    const i = this.state.startLoc, n = this.tsParseDelimitedList("HeritageClauseElement", () => {
      const s = this.startNode();
      return s.expression = this.tsParseEntityName(), this.match(47) && (s.typeParameters = this.tsParseTypeArguments()), this.finishNode(s, "TSExpressionWithTypeArguments");
    });
    return n.length || this.raise(Yt.EmptyHeritageClauseType, i, {
      token: r
    }), n;
  }
  tsParseInterfaceDeclaration(r, i = {}) {
    if (this.hasFollowingLineBreak())
      return null;
    this.expectContextual(129), i.declare && (r.declare = !0), xi(this.state.type) ? (r.id = this.parseIdentifier(), this.checkIdentifier(r.id, 130)) : (r.id = null, this.raise(Yt.MissingInterfaceName, this.state.startLoc)), r.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers), this.eat(81) && (r.extends = this.tsParseHeritageClause("extends"));
    const n = this.startNode();
    return n.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this)), r.body = this.finishNode(n, "TSInterfaceBody"), this.finishNode(r, "TSInterfaceDeclaration");
  }
  tsParseTypeAliasDeclaration(r) {
    return r.id = this.parseIdentifier(), this.checkIdentifier(r.id, 2), r.typeAnnotation = this.tsInType(() => {
      if (r.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers), this.expect(29), this.isContextual(114) && this.lookahead().type !== 16) {
        const i = this.startNode();
        return this.next(), this.finishNode(i, "TSIntrinsicKeyword");
      }
      return this.tsParseType();
    }), this.semicolon(), this.finishNode(r, "TSTypeAliasDeclaration");
  }
  tsInNoContext(r) {
    const i = this.state.context;
    this.state.context = [i[0]];
    try {
      return r();
    } finally {
      this.state.context = i;
    }
  }
  tsInType(r) {
    const i = this.state.inType;
    this.state.inType = !0;
    try {
      return r();
    } finally {
      this.state.inType = i;
    }
  }
  tsInDisallowConditionalTypesContext(r) {
    const i = this.state.inDisallowConditionalTypesContext;
    this.state.inDisallowConditionalTypesContext = !0;
    try {
      return r();
    } finally {
      this.state.inDisallowConditionalTypesContext = i;
    }
  }
  tsInAllowConditionalTypesContext(r) {
    const i = this.state.inDisallowConditionalTypesContext;
    this.state.inDisallowConditionalTypesContext = !1;
    try {
      return r();
    } finally {
      this.state.inDisallowConditionalTypesContext = i;
    }
  }
  tsEatThenParseType(r) {
    if (this.match(r))
      return this.tsNextThenParseType();
  }
  tsExpectThenParseType(r) {
    return this.tsInType(() => (this.expect(r), this.tsParseType()));
  }
  tsNextThenParseType() {
    return this.tsInType(() => (this.next(), this.tsParseType()));
  }
  tsParseEnumMember() {
    const r = this.startNode();
    return r.id = this.match(133) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(!0), this.eat(29) && (r.initializer = super.parseMaybeAssignAllowIn()), this.finishNode(r, "TSEnumMember");
  }
  tsParseEnumDeclaration(r, i = {}) {
    return i.const && (r.const = !0), i.declare && (r.declare = !0), this.expectContextual(126), r.id = this.parseIdentifier(), this.checkIdentifier(r.id, r.const ? 8971 : 8459), this.expect(5), r.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)), this.expect(8), this.finishNode(r, "TSEnumDeclaration");
  }
  tsParseModuleBlock() {
    const r = this.startNode();
    return this.scope.enter(0), this.expect(5), super.parseBlockOrModuleBlockBody(r.body = [], void 0, !0, 8), this.scope.exit(), this.finishNode(r, "TSModuleBlock");
  }
  tsParseModuleOrNamespaceDeclaration(r, i = !1) {
    if (r.id = this.parseIdentifier(), i || this.checkIdentifier(r.id, 1024), this.eat(16)) {
      const n = this.startNode();
      this.tsParseModuleOrNamespaceDeclaration(n, !0), r.body = n;
    } else
      this.scope.enter(256), this.prodParam.enter(0), r.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit();
    return this.finishNode(r, "TSModuleDeclaration");
  }
  tsParseAmbientExternalModuleDeclaration(r) {
    return this.isContextual(112) ? (r.global = !0, r.id = this.parseIdentifier()) : this.match(133) ? r.id = super.parseStringLiteral(this.state.value) : this.unexpected(), this.match(5) ? (this.scope.enter(256), this.prodParam.enter(0), r.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit()) : this.semicolon(), this.finishNode(r, "TSModuleDeclaration");
  }
  tsParseImportEqualsDeclaration(r, i, n) {
    r.isExport = n || !1, r.id = i || this.parseIdentifier(), this.checkIdentifier(r.id, 4096), this.expect(29);
    const s = this.tsParseModuleReference();
    return r.importKind === "type" && s.type !== "TSExternalModuleReference" && this.raise(Yt.ImportAliasHasImportType, s), r.moduleReference = s, this.semicolon(), this.finishNode(r, "TSImportEqualsDeclaration");
  }
  tsIsExternalModuleReference() {
    return this.isContextual(119) && this.lookaheadCharCode() === 40;
  }
  tsParseModuleReference() {
    return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(!1);
  }
  tsParseExternalModuleReference() {
    const r = this.startNode();
    return this.expectContextual(119), this.expect(10), this.match(133) || this.unexpected(), r.expression = super.parseExprAtom(), this.expect(11), this.sawUnambiguousESM = !0, this.finishNode(r, "TSExternalModuleReference");
  }
  tsLookAhead(r) {
    const i = this.state.clone(), n = r();
    return this.state = i, n;
  }
  tsTryParseAndCatch(r) {
    const i = this.tryParse((n) => r() || n());
    if (!(i.aborted || !i.node))
      return i.error && (this.state = i.failState), i.node;
  }
  tsTryParse(r) {
    const i = this.state.clone(), n = r();
    if (n !== void 0 && n !== !1)
      return n;
    this.state = i;
  }
  tsTryParseDeclare(r) {
    if (this.isLineTerminator())
      return;
    let i = this.state.type, n;
    return this.isContextual(100) && (i = 74, n = "let"), this.tsInAmbientContext(() => {
      switch (i) {
        case 68:
          return r.declare = !0, super.parseFunctionStatement(r, !1, !1);
        case 80:
          return r.declare = !0, this.parseClass(r, !0, !1);
        case 126:
          return this.tsParseEnumDeclaration(r, {
            declare: !0
          });
        case 112:
          return this.tsParseAmbientExternalModuleDeclaration(r);
        case 75:
        case 74:
          return !this.match(75) || !this.isLookaheadContextual("enum") ? (r.declare = !0, this.parseVarStatement(r, n || this.state.value, !0)) : (this.expect(75), this.tsParseEnumDeclaration(r, {
            const: !0,
            declare: !0
          }));
        case 129: {
          const s = this.tsParseInterfaceDeclaration(r, {
            declare: !0
          });
          if (s)
            return s;
        }
        default:
          if (xi(i))
            return this.tsParseDeclaration(r, this.state.value, !0, null);
      }
    });
  }
  tsTryParseExportDeclaration() {
    return this.tsParseDeclaration(this.startNode(), this.state.value, !0, null);
  }
  tsParseExpressionStatement(r, i, n) {
    switch (i.name) {
      case "declare": {
        const s = this.tsTryParseDeclare(r);
        return s && (s.declare = !0), s;
      }
      case "global":
        if (this.match(5)) {
          this.scope.enter(256), this.prodParam.enter(0);
          const s = r;
          return s.global = !0, s.id = i, s.body = this.tsParseModuleBlock(), this.scope.exit(), this.prodParam.exit(), this.finishNode(s, "TSModuleDeclaration");
        }
        break;
      default:
        return this.tsParseDeclaration(r, i.name, !1, n);
    }
  }
  tsParseDeclaration(r, i, n, s) {
    switch (i) {
      case "abstract":
        if (this.tsCheckLineTerminator(n) && (this.match(80) || xi(this.state.type)))
          return this.tsParseAbstractDeclaration(r, s);
        break;
      case "module":
        if (this.tsCheckLineTerminator(n)) {
          if (this.match(133))
            return this.tsParseAmbientExternalModuleDeclaration(r);
          if (xi(this.state.type))
            return this.tsParseModuleOrNamespaceDeclaration(r);
        }
        break;
      case "namespace":
        if (this.tsCheckLineTerminator(n) && xi(this.state.type))
          return this.tsParseModuleOrNamespaceDeclaration(r);
        break;
      case "type":
        if (this.tsCheckLineTerminator(n) && xi(this.state.type))
          return this.tsParseTypeAliasDeclaration(r);
        break;
    }
  }
  tsCheckLineTerminator(r) {
    return r ? this.hasFollowingLineBreak() ? !1 : (this.next(), !0) : !this.isLineTerminator();
  }
  tsTryParseGenericAsyncArrowFunction(r) {
    if (!this.match(47))
      return;
    const i = this.state.maybeInArrowParameters;
    this.state.maybeInArrowParameters = !0;
    const n = this.tsTryParseAndCatch(() => {
      const s = this.startNodeAt(r);
      return s.typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier), super.parseFunctionParams(s), s.returnType = this.tsTryParseTypeOrTypePredicateAnnotation(), this.expect(19), s;
    });
    if (this.state.maybeInArrowParameters = i, !!n)
      return super.parseArrowExpression(n, null, !0);
  }
  tsParseTypeArgumentsInExpression() {
    if (this.reScan_lt() === 47)
      return this.tsParseTypeArguments();
  }
  tsParseTypeArguments() {
    const r = this.startNode();
    return r.params = this.tsInType(() => this.tsInNoContext(() => (this.expect(47), this.tsParseDelimitedList("TypeParametersOrArguments", this.tsParseType.bind(this))))), r.params.length === 0 ? this.raise(Yt.EmptyTypeArguments, r) : !this.state.inType && this.curContext() === Bi.brace && this.reScan_lt_gt(), this.expect(48), this.finishNode(r, "TSTypeParameterInstantiation");
  }
  tsIsDeclarationStart() {
    return xDt(this.state.type);
  }
  isExportDefaultSpecifier() {
    return this.tsIsDeclarationStart() ? !1 : super.isExportDefaultSpecifier();
  }
  parseAssignableListItem(r, i) {
    const n = this.state.startLoc, s = {};
    this.tsParseModifiers({
      allowedModifiers: ["public", "private", "protected", "override", "readonly"]
    }, s);
    const a = s.accessibility, o = s.override, l = s.readonly;
    !(r & 4) && (a || l || o) && this.raise(Yt.UnexpectedParameterModifier, n);
    const u = this.parseMaybeDefault();
    this.parseAssignableListItemTypes(u, r);
    const c = this.parseMaybeDefault(u.loc.start, u);
    if (a || l || o) {
      const f = this.startNodeAt(n);
      return i.length && (f.decorators = i), a && (f.accessibility = a), l && (f.readonly = l), o && (f.override = o), c.type !== "Identifier" && c.type !== "AssignmentPattern" && this.raise(Yt.UnsupportedParameterPropertyKind, f), f.parameter = c, this.finishNode(f, "TSParameterProperty");
    }
    return i.length && (u.decorators = i), c;
  }
  isSimpleParameter(r) {
    return r.type === "TSParameterProperty" && super.isSimpleParameter(r.parameter) || super.isSimpleParameter(r);
  }
  tsDisallowOptionalPattern(r) {
    for (const i of r.params)
      i.type !== "Identifier" && i.optional && !this.state.isAmbientContext && this.raise(Yt.PatternIsOptional, i);
  }
  setArrowFunctionParameters(r, i, n) {
    super.setArrowFunctionParameters(r, i, n), this.tsDisallowOptionalPattern(r);
  }
  parseFunctionBodyAndFinish(r, i, n = !1) {
    this.match(14) && (r.returnType = this.tsParseTypeOrTypePredicateAnnotation(14));
    const s = i === "FunctionDeclaration" ? "TSDeclareFunction" : i === "ClassMethod" || i === "ClassPrivateMethod" ? "TSDeclareMethod" : void 0;
    return s && !this.match(5) && this.isLineTerminator() ? this.finishNode(r, s) : s === "TSDeclareFunction" && this.state.isAmbientContext && (this.raise(Yt.DeclareFunctionHasImplementation, r), r.declare) ? super.parseFunctionBodyAndFinish(r, s, n) : (this.tsDisallowOptionalPattern(r), super.parseFunctionBodyAndFinish(r, i, n));
  }
  registerFunctionStatementId(r) {
    !r.body && r.id ? this.checkIdentifier(r.id, 1024) : super.registerFunctionStatementId(r);
  }
  tsCheckForInvalidTypeCasts(r) {
    r.forEach((i) => {
      (i == null ? void 0 : i.type) === "TSTypeCastExpression" && this.raise(Yt.UnexpectedTypeAnnotation, i.typeAnnotation);
    });
  }
  toReferencedList(r, i) {
    return this.tsCheckForInvalidTypeCasts(r), r;
  }
  parseArrayLike(r, i, n, s) {
    const a = super.parseArrayLike(r, i, n, s);
    return a.type === "ArrayExpression" && this.tsCheckForInvalidTypeCasts(a.elements), a;
  }
  parseSubscript(r, i, n, s) {
    if (!this.hasPrecedingLineBreak() && this.match(35)) {
      this.state.canStartJSXElement = !1, this.next();
      const o = this.startNodeAt(i);
      return o.expression = r, this.finishNode(o, "TSNonNullExpression");
    }
    let a = !1;
    if (this.match(18) && this.lookaheadCharCode() === 60) {
      if (n)
        return s.stop = !0, r;
      s.optionalChainMember = a = !0, this.next();
    }
    if (this.match(47) || this.match(51)) {
      let o;
      const l = this.tsTryParseAndCatch(() => {
        if (!n && this.atPossibleAsyncArrow(r)) {
          const h = this.tsTryParseGenericAsyncArrowFunction(i);
          if (h)
            return h;
        }
        const u = this.tsParseTypeArgumentsInExpression();
        if (!u)
          return;
        if (a && !this.match(10)) {
          o = this.state.curPosition();
          return;
        }
        if (Gw(this.state.type)) {
          const h = super.parseTaggedTemplateExpression(r, i, s);
          return h.typeParameters = u, h;
        }
        if (!n && this.eat(10)) {
          const h = this.startNodeAt(i);
          return h.callee = r, h.arguments = this.parseCallExpressionArguments(11, !1), this.tsCheckForInvalidTypeCasts(h.arguments), h.typeParameters = u, s.optionalChainMember && (h.optional = a), this.finishCallExpression(h, s.optionalChainMember);
        }
        const c = this.state.type;
        if (c === 48 || c === 52 || c !== 10 && d8(c) && !this.hasPrecedingLineBreak())
          return;
        const f = this.startNodeAt(i);
        return f.expression = r, f.typeParameters = u, this.finishNode(f, "TSInstantiationExpression");
      });
      if (o && this.unexpected(o, 10), l)
        return l.type === "TSInstantiationExpression" && (this.match(16) || this.match(18) && this.lookaheadCharCode() !== 40) && this.raise(Yt.InvalidPropertyAccessAfterInstantiationExpression, this.state.startLoc), l;
    }
    return super.parseSubscript(r, i, n, s);
  }
  parseNewCallee(r) {
    var i;
    super.parseNewCallee(r);
    const {
      callee: n
    } = r;
    n.type === "TSInstantiationExpression" && !((i = n.extra) != null && i.parenthesized) && (r.typeParameters = n.typeParameters, r.callee = n.expression);
  }
  parseExprOp(r, i, n) {
    let s;
    if (NP(58) > n && !this.hasPrecedingLineBreak() && (this.isContextual(93) || (s = this.isContextual(120)))) {
      const a = this.startNodeAt(i);
      return a.expression = r, a.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? (s && this.raise(rt.UnexpectedKeyword, this.state.startLoc, {
        keyword: "const"
      }), this.tsParseTypeReference()) : this.tsParseType())), this.finishNode(a, s ? "TSSatisfiesExpression" : "TSAsExpression"), this.reScan_lt_gt(), this.parseExprOp(a, i, n);
    }
    return super.parseExprOp(r, i, n);
  }
  checkReservedWord(r, i, n, s) {
    this.state.isAmbientContext || super.checkReservedWord(r, i, n, s);
  }
  checkImportReflection(r) {
    super.checkImportReflection(r), r.module && r.importKind !== "value" && this.raise(Yt.ImportReflectionHasImportType, r.specifiers[0].loc.start);
  }
  checkDuplicateExports() {
  }
  isPotentialImportPhase(r) {
    if (super.isPotentialImportPhase(r))
      return !0;
    if (this.isContextual(130)) {
      const i = this.lookaheadCharCode();
      return r ? i === 123 || i === 42 : i !== 61;
    }
    return !r && this.isContextual(87);
  }
  applyImportPhase(r, i, n, s) {
    super.applyImportPhase(r, i, n, s), i ? r.exportKind = n === "type" ? "type" : "value" : r.importKind = n === "type" || n === "typeof" ? n : "value";
  }
  parseImport(r) {
    if (this.match(133))
      return r.importKind = "value", super.parseImport(r);
    let i;
    if (xi(this.state.type) && this.lookaheadCharCode() === 61)
      return r.importKind = "value", this.tsParseImportEqualsDeclaration(r);
    if (this.isContextual(130)) {
      const n = this.parseMaybeImportPhase(r, !1);
      if (this.lookaheadCharCode() === 61)
        return this.tsParseImportEqualsDeclaration(r, n);
      i = super.parseImportSpecifiersAndAfter(r, n);
    } else
      i = super.parseImport(r);
    return i.importKind === "type" && i.specifiers.length > 1 && i.specifiers[0].type === "ImportDefaultSpecifier" && this.raise(Yt.TypeImportCannotSpecifyDefaultAndNamed, i), i;
  }
  parseExport(r, i) {
    if (this.match(83)) {
      this.next();
      let n = null;
      return this.isContextual(130) && this.isPotentialImportPhase(!1) ? n = this.parseMaybeImportPhase(r, !1) : r.importKind = "value", this.tsParseImportEqualsDeclaration(r, n, !0);
    } else if (this.eat(29)) {
      const n = r;
      return n.expression = super.parseExpression(), this.semicolon(), this.sawUnambiguousESM = !0, this.finishNode(n, "TSExportAssignment");
    } else if (this.eatContextual(93)) {
      const n = r;
      return this.expectContextual(128), n.id = this.parseIdentifier(), this.semicolon(), this.finishNode(n, "TSNamespaceExportDeclaration");
    } else
      return super.parseExport(r, i);
  }
  isAbstractClass() {
    return this.isContextual(124) && this.lookahead().type === 80;
  }
  parseExportDefaultExpression() {
    if (this.isAbstractClass()) {
      const r = this.startNode();
      return this.next(), r.abstract = !0, this.parseClass(r, !0, !0);
    }
    if (this.match(129)) {
      const r = this.tsParseInterfaceDeclaration(this.startNode());
      if (r)
        return r;
    }
    return super.parseExportDefaultExpression();
  }
  parseVarStatement(r, i, n = !1) {
    const {
      isAmbientContext: s
    } = this.state, a = super.parseVarStatement(r, i, n || s);
    if (!s)
      return a;
    for (const {
      id: o,
      init: l
    } of a.declarations)
      l && (i !== "const" || o.typeAnnotation ? this.raise(Yt.InitializerNotAllowedInAmbientContext, l) : SLt(l, this.hasPlugin("estree")) || this.raise(Yt.ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference, l));
    return a;
  }
  parseStatementContent(r, i) {
    if (this.match(75) && this.isLookaheadContextual("enum")) {
      const n = this.startNode();
      return this.expect(75), this.tsParseEnumDeclaration(n, {
        const: !0
      });
    }
    if (this.isContextual(126))
      return this.tsParseEnumDeclaration(this.startNode());
    if (this.isContextual(129)) {
      const n = this.tsParseInterfaceDeclaration(this.startNode());
      if (n)
        return n;
    }
    return super.parseStatementContent(r, i);
  }
  parseAccessModifier() {
    return this.tsParseModifier(["public", "protected", "private"]);
  }
  tsHasSomeModifiers(r, i) {
    return i.some((n) => QQ(n) ? r.accessibility === n : !!r[n]);
  }
  tsIsStartOfStaticBlocks() {
    return this.isContextual(106) && this.lookaheadCharCode() === 123;
  }
  parseClassMember(r, i, n) {
    const s = ["declare", "private", "public", "protected", "override", "abstract", "readonly", "static"];
    this.tsParseModifiers({
      allowedModifiers: s,
      disallowedModifiers: ["in", "out"],
      stopOnStartOfClassStaticBlock: !0,
      errorTemplate: Yt.InvalidModifierOnTypeParameterPositions
    }, i);
    const a = () => {
      this.tsIsStartOfStaticBlocks() ? (this.next(), this.next(), this.tsHasSomeModifiers(i, s) && this.raise(Yt.StaticBlockCannotHaveModifier, this.state.curPosition()), super.parseClassStaticBlock(r, i)) : this.parseClassMemberWithIsStatic(r, i, n, !!i.static);
    };
    i.declare ? this.tsInAmbientContext(a) : a();
  }
  parseClassMemberWithIsStatic(r, i, n, s) {
    const a = this.tsTryParseIndexSignature(i);
    if (a) {
      r.body.push(a), i.abstract && this.raise(Yt.IndexSignatureHasAbstract, i), i.accessibility && this.raise(Yt.IndexSignatureHasAccessibility, i, {
        modifier: i.accessibility
      }), i.declare && this.raise(Yt.IndexSignatureHasDeclare, i), i.override && this.raise(Yt.IndexSignatureHasOverride, i);
      return;
    }
    !this.state.inAbstractClass && i.abstract && this.raise(Yt.NonAbstractClassHasAbstractMethod, i), i.override && (n.hadSuperClass || this.raise(Yt.OverrideNotInSubClass, i)), super.parseClassMemberWithIsStatic(r, i, n, s);
  }
  parsePostMemberNameModifiers(r) {
    this.eat(17) && (r.optional = !0), r.readonly && this.match(10) && this.raise(Yt.ClassMethodHasReadonly, r), r.declare && this.match(10) && this.raise(Yt.ClassMethodHasDeclare, r);
  }
  parseExpressionStatement(r, i, n) {
    return (i.type === "Identifier" ? this.tsParseExpressionStatement(r, i, n) : void 0) || super.parseExpressionStatement(r, i, n);
  }
  shouldParseExportDeclaration() {
    return this.tsIsDeclarationStart() ? !0 : super.shouldParseExportDeclaration();
  }
  parseConditional(r, i, n) {
    if (!this.state.maybeInArrowParameters || !this.match(17))
      return super.parseConditional(r, i, n);
    const s = this.tryParse(() => super.parseConditional(r, i));
    return s.node ? (s.error && (this.state = s.failState), s.node) : (s.error && super.setOptionalParametersError(n, s.error), r);
  }
  parseParenItem(r, i) {
    if (r = super.parseParenItem(r, i), this.eat(17) && (r.optional = !0, this.resetEndLocation(r)), this.match(14)) {
      const n = this.startNodeAt(i);
      return n.expression = r, n.typeAnnotation = this.tsParseTypeAnnotation(), this.finishNode(n, "TSTypeCastExpression");
    }
    return r;
  }
  parseExportDeclaration(r) {
    if (!this.state.isAmbientContext && this.isContextual(125))
      return this.tsInAmbientContext(() => this.parseExportDeclaration(r));
    const i = this.state.startLoc, n = this.eatContextual(125);
    if (n && (this.isContextual(125) || !this.shouldParseExportDeclaration()))
      throw this.raise(Yt.ExpectedAmbientAfterExportDeclare, this.state.startLoc);
    const a = xi(this.state.type) && this.tsTryParseExportDeclaration() || super.parseExportDeclaration(r);
    return a ? ((a.type === "TSInterfaceDeclaration" || a.type === "TSTypeAliasDeclaration" || n) && (r.exportKind = "type"), n && (this.resetStartLocation(a, i), a.declare = !0), a) : null;
  }
  parseClassId(r, i, n, s) {
    if ((!i || n) && this.isContextual(113))
      return;
    super.parseClassId(r, i, n, r.declare ? 1024 : 8331);
    const a = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);
    a && (r.typeParameters = a);
  }
  parseClassPropertyAnnotation(r) {
    r.optional || (this.eat(35) ? r.definite = !0 : this.eat(17) && (r.optional = !0));
    const i = this.tsTryParseTypeAnnotation();
    i && (r.typeAnnotation = i);
  }
  parseClassProperty(r) {
    if (this.parseClassPropertyAnnotation(r), this.state.isAmbientContext && !(r.readonly && !r.typeAnnotation) && this.match(29) && this.raise(Yt.DeclareClassFieldHasInitializer, this.state.startLoc), r.abstract && this.match(29)) {
      const {
        key: i
      } = r;
      this.raise(Yt.AbstractPropertyHasInitializer, this.state.startLoc, {
        propertyName: i.type === "Identifier" && !r.computed ? i.name : "[".concat(this.input.slice(i.start, i.end), "]")
      });
    }
    return super.parseClassProperty(r);
  }
  parseClassPrivateProperty(r) {
    return r.abstract && this.raise(Yt.PrivateElementHasAbstract, r), r.accessibility && this.raise(Yt.PrivateElementHasAccessibility, r, {
      modifier: r.accessibility
    }), this.parseClassPropertyAnnotation(r), super.parseClassPrivateProperty(r);
  }
  parseClassAccessorProperty(r) {
    return this.parseClassPropertyAnnotation(r), r.optional && this.raise(Yt.AccessorCannotBeOptional, r), super.parseClassAccessorProperty(r);
  }
  pushClassMethod(r, i, n, s, a, o) {
    const l = this.tsTryParseTypeParameters(this.tsParseConstModifier);
    l && a && this.raise(Yt.ConstructorHasTypeParameters, l);
    const {
      declare: u = !1,
      kind: c
    } = i;
    u && (c === "get" || c === "set") && this.raise(Yt.DeclareAccessor, i, {
      kind: c
    }), l && (i.typeParameters = l), super.pushClassMethod(r, i, n, s, a, o);
  }
  pushClassPrivateMethod(r, i, n, s) {
    const a = this.tsTryParseTypeParameters(this.tsParseConstModifier);
    a && (i.typeParameters = a), super.pushClassPrivateMethod(r, i, n, s);
  }
  declareClassPrivateMethodInScope(r, i) {
    r.type !== "TSDeclareMethod" && (r.type === "MethodDefinition" && !r.value.body || super.declareClassPrivateMethodInScope(r, i));
  }
  parseClassSuper(r) {
    super.parseClassSuper(r), r.superClass && (this.match(47) || this.match(51)) && (r.superTypeParameters = this.tsParseTypeArgumentsInExpression()), this.eatContextual(113) && (r.implements = this.tsParseHeritageClause("implements"));
  }
  parseObjPropValue(r, i, n, s, a, o, l) {
    const u = this.tsTryParseTypeParameters(this.tsParseConstModifier);
    return u && (r.typeParameters = u), super.parseObjPropValue(r, i, n, s, a, o, l);
  }
  parseFunctionParams(r, i) {
    const n = this.tsTryParseTypeParameters(this.tsParseConstModifier);
    n && (r.typeParameters = n), super.parseFunctionParams(r, i);
  }
  parseVarId(r, i) {
    super.parseVarId(r, i), r.id.type === "Identifier" && !this.hasPrecedingLineBreak() && this.eat(35) && (r.definite = !0);
    const n = this.tsTryParseTypeAnnotation();
    n && (r.id.typeAnnotation = n, this.resetEndLocation(r.id));
  }
  parseAsyncArrowFromCallExpression(r, i) {
    return this.match(14) && (r.returnType = this.tsParseTypeAnnotation()), super.parseAsyncArrowFromCallExpression(r, i);
  }
  parseMaybeAssign(r, i) {
    var n, s, a, o, l;
    let u, c, f;
    if (this.hasPlugin("jsx") && (this.match(142) || this.match(47))) {
      if (u = this.state.clone(), c = this.tryParse(() => super.parseMaybeAssign(r, i), u), !c.error)
        return c.node;
      const {
        context: g
      } = this.state, y = g[g.length - 1];
      (y === Bi.j_oTag || y === Bi.j_expr) && g.pop();
    }
    if (!((n = c) != null && n.error) && !this.match(47))
      return super.parseMaybeAssign(r, i);
    (!u || u === this.state) && (u = this.state.clone());
    let h;
    const m = this.tryParse((g) => {
      var y, v;
      h = this.tsParseTypeParameters(this.tsParseConstModifier);
      const T = super.parseMaybeAssign(r, i);
      return (T.type !== "ArrowFunctionExpression" || (y = T.extra) != null && y.parenthesized) && g(), ((v = h) == null ? void 0 : v.params.length) !== 0 && this.resetStartLocationFromNode(T, h), T.typeParameters = h, T;
    }, u);
    if (!m.error && !m.aborted)
      return h && this.reportReservedArrowTypeParam(h), m.node;
    if (!c && (JQ(!this.hasPlugin("jsx")), f = this.tryParse(() => super.parseMaybeAssign(r, i), u), !f.error))
      return f.node;
    if ((s = c) != null && s.node)
      return this.state = c.failState, c.node;
    if (m.node)
      return this.state = m.failState, h && this.reportReservedArrowTypeParam(h), m.node;
    if ((a = f) != null && a.node)
      return this.state = f.failState, f.node;
    throw ((o = c) == null ? void 0 : o.error) || m.error || ((l = f) == null ? void 0 : l.error);
  }
  reportReservedArrowTypeParam(r) {
    var i;
    r.params.length === 1 && !r.params[0].constraint && !((i = r.extra) != null && i.trailingComma) && this.getPluginOption("typescript", "disallowAmbiguousJSXLike") && this.raise(Yt.ReservedArrowTypeParam, r);
  }
  parseMaybeUnary(r, i) {
    return !this.hasPlugin("jsx") && this.match(47) ? this.tsParseTypeAssertion() : super.parseMaybeUnary(r, i);
  }
  parseArrow(r) {
    if (this.match(14)) {
      const i = this.tryParse((n) => {
        const s = this.tsParseTypeOrTypePredicateAnnotation(14);
        return (this.canInsertSemicolon() || !this.match(19)) && n(), s;
      });
      if (i.aborted)
        return;
      i.thrown || (i.error && (this.state = i.failState), r.returnType = i.node);
    }
    return super.parseArrow(r);
  }
  parseAssignableListItemTypes(r, i) {
    if (!(i & 2))
      return r;
    this.eat(17) && (r.optional = !0);
    const n = this.tsTryParseTypeAnnotation();
    return n && (r.typeAnnotation = n), this.resetEndLocation(r), r;
  }
  isAssignable(r, i) {
    switch (r.type) {
      case "TSTypeCastExpression":
        return this.isAssignable(r.expression, i);
      case "TSParameterProperty":
        return !0;
      default:
        return super.isAssignable(r, i);
    }
  }
  toAssignable(r, i = !1) {
    switch (r.type) {
      case "ParenthesizedExpression":
        this.toAssignableParenthesizedExpression(r, i);
        break;
      case "TSAsExpression":
      case "TSSatisfiesExpression":
      case "TSNonNullExpression":
      case "TSTypeAssertion":
        i ? this.expressionScope.recordArrowParameterBindingError(Yt.UnexpectedTypeCastInParameter, r) : this.raise(Yt.UnexpectedTypeCastInParameter, r), this.toAssignable(r.expression, i);
        break;
      case "AssignmentExpression":
        !i && r.left.type === "TSTypeCastExpression" && (r.left = this.typeCastToParameter(r.left));
      default:
        super.toAssignable(r, i);
    }
  }
  toAssignableParenthesizedExpression(r, i) {
    switch (r.expression.type) {
      case "TSAsExpression":
      case "TSSatisfiesExpression":
      case "TSNonNullExpression":
      case "TSTypeAssertion":
      case "ParenthesizedExpression":
        this.toAssignable(r.expression, i);
        break;
      default:
        super.toAssignable(r, i);
    }
  }
  checkToRestConversion(r, i) {
    switch (r.type) {
      case "TSAsExpression":
      case "TSSatisfiesExpression":
      case "TSTypeAssertion":
      case "TSNonNullExpression":
        this.checkToRestConversion(r.expression, !1);
        break;
      default:
        super.checkToRestConversion(r, i);
    }
  }
  isValidLVal(r, i, n) {
    return mLt({
      TSTypeCastExpression: !0,
      TSParameterProperty: "parameter",
      TSNonNullExpression: "expression",
      TSAsExpression: (n !== 64 || !i) && ["expression", !0],
      TSSatisfiesExpression: (n !== 64 || !i) && ["expression", !0],
      TSTypeAssertion: (n !== 64 || !i) && ["expression", !0]
    }, r) || super.isValidLVal(r, i, n);
  }
  parseBindingAtom() {
    return this.state.type === 78 ? this.parseIdentifier(!0) : super.parseBindingAtom();
  }
  parseMaybeDecoratorArguments(r) {
    if (this.match(47) || this.match(51)) {
      const i = this.tsParseTypeArgumentsInExpression();
      if (this.match(10)) {
        const n = super.parseMaybeDecoratorArguments(r);
        return n.typeParameters = i, n;
      }
      this.unexpected(null, 10);
    }
    return super.parseMaybeDecoratorArguments(r);
  }
  checkCommaAfterRest(r) {
    return this.state.isAmbientContext && this.match(12) && this.lookaheadCharCode() === r ? (this.next(), !1) : super.checkCommaAfterRest(r);
  }
  isClassMethod() {
    return this.match(47) || super.isClassMethod();
  }
  isClassProperty() {
    return this.match(35) || this.match(14) || super.isClassProperty();
  }
  parseMaybeDefault(r, i) {
    const n = super.parseMaybeDefault(r, i);
    return n.type === "AssignmentPattern" && n.typeAnnotation && n.right.start < n.typeAnnotation.start && this.raise(Yt.TypeAnnotationAfterAssign, n.typeAnnotation), n;
  }
  getTokenFromCode(r) {
    if (this.state.inType) {
      if (r === 62) {
        this.finishOp(48, 1);
        return;
      }
      if (r === 60) {
        this.finishOp(47, 1);
        return;
      }
    }
    super.getTokenFromCode(r);
  }
  reScan_lt_gt() {
    const {
      type: r
    } = this.state;
    r === 47 ? (this.state.pos -= 1, this.readToken_lt()) : r === 48 && (this.state.pos -= 1, this.readToken_gt());
  }
  reScan_lt() {
    const {
      type: r
    } = this.state;
    return r === 51 ? (this.state.pos -= 2, this.finishOp(47, 1), 47) : r;
  }
  toAssignableList(r, i, n) {
    for (let s = 0; s < r.length; s++) {
      const a = r[s];
      (a == null ? void 0 : a.type) === "TSTypeCastExpression" && (r[s] = this.typeCastToParameter(a));
    }
    super.toAssignableList(r, i, n);
  }
  typeCastToParameter(r) {
    return r.expression.typeAnnotation = r.typeAnnotation, this.resetEndLocation(r.expression, r.typeAnnotation.loc.end), r.expression;
  }
  shouldParseArrow(r) {
    return this.match(14) ? r.every((i) => this.isAssignable(i, !0)) : super.shouldParseArrow(r);
  }
  shouldParseAsyncArrow() {
    return this.match(14) || super.shouldParseAsyncArrow();
  }
  canHaveLeadingDecorator() {
    return super.canHaveLeadingDecorator() || this.isAbstractClass();
  }
  jsxParseOpeningElementAfterName(r) {
    if (this.match(47) || this.match(51)) {
      const i = this.tsTryParseAndCatch(() => this.tsParseTypeArgumentsInExpression());
      i && (r.typeParameters = i);
    }
    return super.jsxParseOpeningElementAfterName(r);
  }
  getGetterSetterExpectedParamCount(r) {
    const i = super.getGetterSetterExpectedParamCount(r), s = this.getObjectOrClassMethodParams(r)[0];
    return s && this.isThisParam(s) ? i + 1 : i;
  }
  parseCatchClauseParam() {
    const r = super.parseCatchClauseParam(), i = this.tsTryParseTypeAnnotation();
    return i && (r.typeAnnotation = i, this.resetEndLocation(r)), r;
  }
  tsInAmbientContext(r) {
    const i = this.state.isAmbientContext;
    this.state.isAmbientContext = !0;
    try {
      return r();
    } finally {
      this.state.isAmbientContext = i;
    }
  }
  parseClass(r, i, n) {
    const s = this.state.inAbstractClass;
    this.state.inAbstractClass = !!r.abstract;
    try {
      return super.parseClass(r, i, n);
    } finally {
      this.state.inAbstractClass = s;
    }
  }
  tsParseAbstractDeclaration(r, i) {
    if (this.match(80))
      return r.abstract = !0, this.maybeTakeDecorators(i, this.parseClass(r, !0, !1));
    if (this.isContextual(129)) {
      if (!this.hasFollowingLineBreak())
        return r.abstract = !0, this.raise(Yt.NonClassMethodPropertyHasAbstractModifer, r), this.tsParseInterfaceDeclaration(r);
    } else
      this.unexpected(null, 80);
  }
  parseMethod(r, i, n, s, a, o, l) {
    const u = super.parseMethod(r, i, n, s, a, o, l);
    if (u.abstract && (this.hasPlugin("estree") ? !!u.value.body : !!u.body)) {
      const {
        key: f
      } = u;
      this.raise(Yt.AbstractMethodHasImplementation, u, {
        methodName: f.type === "Identifier" && !u.computed ? f.name : "[".concat(this.input.slice(f.start, f.end), "]")
      });
    }
    return u;
  }
  tsParseTypeParameterName() {
    return this.parseIdentifier().name;
  }
  shouldParseAsAmbientContext() {
    return !!this.getPluginOption("typescript", "dts");
  }
  parse() {
    return this.shouldParseAsAmbientContext() && (this.state.isAmbientContext = !0), super.parse();
  }
  getExpression() {
    return this.shouldParseAsAmbientContext() && (this.state.isAmbientContext = !0), super.getExpression();
  }
  parseExportSpecifier(r, i, n, s) {
    return !i && s ? (this.parseTypeOnlyImportExportSpecifier(r, !1, n), this.finishNode(r, "ExportSpecifier")) : (r.exportKind = "value", super.parseExportSpecifier(r, i, n, s));
  }
  parseImportSpecifier(r, i, n, s, a) {
    return !i && s ? (this.parseTypeOnlyImportExportSpecifier(r, !0, n), this.finishNode(r, "ImportSpecifier")) : (r.importKind = "value", super.parseImportSpecifier(r, i, n, s, n ? 4098 : 4096));
  }
  parseTypeOnlyImportExportSpecifier(r, i, n) {
    const s = i ? "imported" : "local", a = i ? "local" : "exported";
    let o = r[s], l, u = !1, c = !0;
    const f = o.loc.start;
    if (this.isContextual(93)) {
      const m = this.parseIdentifier();
      if (this.isContextual(93)) {
        const g = this.parseIdentifier();
        Oc(this.state.type) ? (u = !0, o = m, l = i ? this.parseIdentifier() : this.parseModuleExportName(), c = !1) : (l = g, c = !1);
      } else
        Oc(this.state.type) ? (c = !1, l = i ? this.parseIdentifier() : this.parseModuleExportName()) : (u = !0, o = m);
    } else
      Oc(this.state.type) && (u = !0, i ? (o = this.parseIdentifier(!0), this.isContextual(93) || this.checkReservedWord(o.name, o.loc.start, !0, !0)) : o = this.parseModuleExportName());
    u && n && this.raise(i ? Yt.TypeModifierIsUsedInTypeImports : Yt.TypeModifierIsUsedInTypeExports, f), r[s] = o, r[a] = l;
    const h = i ? "importKind" : "exportKind";
    r[h] = u ? "type" : "value", c && this.eatContextual(93) && (r[a] = i ? this.parseIdentifier() : this.parseModuleExportName()), r[a] || (r[a] = Tf(r[s])), i && this.checkIdentifier(r[a], u ? 4098 : 4096);
  }
};
function TLt(e) {
  if (e.type !== "MemberExpression")
    return !1;
  const {
    computed: t,
    property: r
  } = e;
  return t && r.type !== "StringLiteral" && (r.type !== "TemplateLiteral" || r.expressions.length > 0) ? !1 : Fye(e.object);
}
function SLt(e, t) {
  var r;
  const {
    type: i
  } = e;
  if ((r = e.extra) != null && r.parenthesized)
    return !1;
  if (t) {
    if (i === "Literal") {
      const {
        value: n
      } = e;
      if (typeof n == "string" || typeof n == "boolean")
        return !0;
    }
  } else if (i === "StringLiteral" || i === "BooleanLiteral")
    return !0;
  return !!(Bye(e, t) || xLt(e, t) || i === "TemplateLiteral" && e.expressions.length === 0 || TLt(e));
}
function Bye(e, t) {
  return t ? e.type === "Literal" && (typeof e.value == "number" || "bigint" in e) : e.type === "NumericLiteral" || e.type === "BigIntLiteral";
}
function xLt(e, t) {
  if (e.type === "UnaryExpression") {
    const {
      operator: r,
      argument: i
    } = e;
    if (r === "-" && Bye(i, t))
      return !0;
  }
  return !1;
}
function Fye(e) {
  return e.type === "Identifier" ? !0 : e.type !== "MemberExpression" || e.computed ? !1 : Fye(e.object);
}
var Pae;
const ZQ = df(Pae || (Pae = at(["placeholders"])))({
  ClassNameIsRequired: "A class name is required.",
  UnexpectedSpace: "Unexpected space in placeholder."
});
var ELt = (e) => class extends e {
  parsePlaceholder(r) {
    if (this.match(144)) {
      const i = this.startNode();
      return this.next(), this.assertNoSpace(), i.name = super.parseIdentifier(!0), this.assertNoSpace(), this.expect(144), this.finishPlaceholder(i, r);
    }
  }
  finishPlaceholder(r, i) {
    const n = !!(r.expectedNode && r.type === "Placeholder");
    return r.expectedNode = i, n ? r : this.finishNode(r, "Placeholder");
  }
  getTokenFromCode(r) {
    r === 37 && this.input.charCodeAt(this.state.pos + 1) === 37 ? this.finishOp(144, 2) : super.getTokenFromCode(r);
  }
  parseExprAtom(r) {
    return this.parsePlaceholder("Expression") || super.parseExprAtom(r);
  }
  parseIdentifier(r) {
    return this.parsePlaceholder("Identifier") || super.parseIdentifier(r);
  }
  checkReservedWord(r, i, n, s) {
    r !== void 0 && super.checkReservedWord(r, i, n, s);
  }
  parseBindingAtom() {
    return this.parsePlaceholder("Pattern") || super.parseBindingAtom();
  }
  isValidLVal(r, i, n) {
    return r === "Placeholder" || super.isValidLVal(r, i, n);
  }
  toAssignable(r, i) {
    r && r.type === "Placeholder" && r.expectedNode === "Expression" ? r.expectedNode = "Pattern" : super.toAssignable(r, i);
  }
  chStartsBindingIdentifier(r, i) {
    return !!(super.chStartsBindingIdentifier(r, i) || this.lookahead().type === 144);
  }
  verifyBreakContinue(r, i) {
    r.label && r.label.type === "Placeholder" || super.verifyBreakContinue(r, i);
  }
  parseExpressionStatement(r, i) {
    var n;
    if (i.type !== "Placeholder" || (n = i.extra) != null && n.parenthesized)
      return super.parseExpressionStatement(r, i);
    if (this.match(14)) {
      const s = r;
      return s.label = this.finishPlaceholder(i, "Identifier"), this.next(), s.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration(), this.finishNode(s, "LabeledStatement");
    }
    return this.semicolon(), r.name = i.name, this.finishPlaceholder(r, "Statement");
  }
  parseBlock(r, i, n) {
    return this.parsePlaceholder("BlockStatement") || super.parseBlock(r, i, n);
  }
  parseFunctionId(r) {
    return this.parsePlaceholder("Identifier") || super.parseFunctionId(r);
  }
  parseClass(r, i, n) {
    const s = i ? "ClassDeclaration" : "ClassExpression";
    this.next();
    const a = this.state.strict, o = this.parsePlaceholder("Identifier");
    if (o)
      if (this.match(81) || this.match(144) || this.match(5))
        r.id = o;
      else {
        if (n || !i)
          return r.id = null, r.body = this.finishPlaceholder(o, "ClassBody"), this.finishNode(r, s);
        throw this.raise(ZQ.ClassNameIsRequired, this.state.startLoc);
      }
    else
      this.parseClassId(r, i, n);
    return super.parseClassSuper(r), r.body = this.parsePlaceholder("ClassBody") || super.parseClassBody(!!r.superClass, a), this.finishNode(r, s);
  }
  parseExport(r, i) {
    const n = this.parsePlaceholder("Identifier");
    if (!n)
      return super.parseExport(r, i);
    if (!this.isContextual(98) && !this.match(12))
      return r.specifiers = [], r.source = null, r.declaration = this.finishPlaceholder(n, "Declaration"), this.finishNode(r, "ExportNamedDeclaration");
    this.expectPlugin("exportDefaultFrom");
    const s = this.startNode();
    return s.exported = n, r.specifiers = [this.finishNode(s, "ExportDefaultSpecifier")], super.parseExport(r, i);
  }
  isExportDefaultSpecifier() {
    if (this.match(65)) {
      const r = this.nextTokenStart();
      if (this.isUnparsedContextual(r, "from") && this.input.startsWith(Nh(144), this.nextTokenStartSince(r + 4)))
        return !0;
    }
    return super.isExportDefaultSpecifier();
  }
  maybeParseExportDefaultSpecifier(r, i) {
    var n;
    return (n = r.specifiers) != null && n.length ? !0 : super.maybeParseExportDefaultSpecifier(r, i);
  }
  checkExport(r) {
    const {
      specifiers: i
    } = r;
    i != null && i.length && (r.specifiers = i.filter((n) => n.exported.type === "Placeholder")), super.checkExport(r), r.specifiers = i;
  }
  parseImport(r) {
    const i = this.parsePlaceholder("Identifier");
    if (!i)
      return super.parseImport(r);
    if (r.specifiers = [], !this.isContextual(98) && !this.match(12))
      return r.source = this.finishPlaceholder(i, "StringLiteral"), this.semicolon(), this.finishNode(r, "ImportDeclaration");
    const n = this.startNodeAtNode(i);
    return n.local = i, r.specifiers.push(this.finishNode(n, "ImportDefaultSpecifier")), this.eat(12) && (this.maybeParseStarImportSpecifier(r) || this.parseNamedImportSpecifiers(r)), this.expectContextual(98), r.source = this.parseImportSource(), this.semicolon(), this.finishNode(r, "ImportDeclaration");
  }
  parseImportSource() {
    return this.parsePlaceholder("StringLiteral") || super.parseImportSource();
  }
  assertNoSpace() {
    this.state.start > this.state.lastTokEndLoc.index && this.raise(ZQ.UnexpectedSpace, this.state.lastTokEndLoc);
  }
}, PLt = (e) => class extends e {
  parseV8Intrinsic() {
    if (this.match(54)) {
      const r = this.state.startLoc, i = this.startNode();
      if (this.next(), xi(this.state.type)) {
        const n = this.parseIdentifierName(), s = this.createIdentifier(i, n);
        if (s.type = "V8IntrinsicIdentifier", this.match(10))
          return s;
      }
      this.unexpected(r);
    }
  }
  parseExprAtom(r) {
    return this.parseV8Intrinsic() || super.parseExprAtom(r);
  }
};
function jn(e, t) {
  const [r, i] = typeof t == "string" ? [t, {}] : t, n = Object.keys(i), s = n.length === 0;
  return e.some((a) => {
    if (typeof a == "string")
      return s && a === r;
    {
      const [o, l] = a;
      if (o !== r)
        return !1;
      for (const u of n)
        if (l[u] !== i[u])
          return !1;
      return !0;
    }
  });
}
function nh(e, t, r) {
  const i = e.find((n) => Array.isArray(n) ? n[0] === t : n === t);
  return i && Array.isArray(i) && i.length > 1 ? i[1][r] : null;
}
const eZ = ["minimal", "fsharp", "hack", "smart"], tZ = ["^^", "@@", "^", "%", "#"], rZ = ["hash", "bar"];
function wLt(e) {
  if (jn(e, "decorators")) {
    if (jn(e, "decorators-legacy"))
      throw new Error("Cannot use the decorators and decorators-legacy plugin together");
    const t = nh(e, "decorators", "decoratorsBeforeExport");
    if (t != null && typeof t != "boolean")
      throw new Error("'decoratorsBeforeExport' must be a boolean, if specified.");
    const r = nh(e, "decorators", "allowCallParenthesized");
    if (r != null && typeof r != "boolean")
      throw new Error("'allowCallParenthesized' must be a boolean.");
  }
  if (jn(e, "flow") && jn(e, "typescript"))
    throw new Error("Cannot combine flow and typescript plugins.");
  if (jn(e, "placeholders") && jn(e, "v8intrinsic"))
    throw new Error("Cannot combine placeholders and v8intrinsic plugins.");
  if (jn(e, "pipelineOperator")) {
    const t = nh(e, "pipelineOperator", "proposal");
    if (!eZ.includes(t)) {
      const i = eZ.map((n) => '"'.concat(n, '"')).join(", ");
      throw new Error('"pipelineOperator" requires "proposal" option whose value must be one of: '.concat(i, "."));
    }
    const r = jn(e, ["recordAndTuple", {
      syntaxType: "hash"
    }]);
    if (t === "hack") {
      if (jn(e, "placeholders"))
        throw new Error("Cannot combine placeholders plugin and Hack-style pipes.");
      if (jn(e, "v8intrinsic"))
        throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes.");
      const i = nh(e, "pipelineOperator", "topicToken");
      if (!tZ.includes(i)) {
        const n = tZ.map((s) => '"'.concat(s, '"')).join(", ");
        throw new Error('"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: '.concat(n, "."));
      }
      if (i === "#" && r)
        throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "hack", topicToken: "#" }]` and `["recordAndtuple", { syntaxType: "hash"}]`.');
    } else if (t === "smart" && r)
      throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "smart" }]` and `["recordAndtuple", { syntaxType: "hash"}]`.');
  }
  if (jn(e, "moduleAttributes")) {
    if (jn(e, "importAssertions") || jn(e, "importAttributes"))
      throw new Error("Cannot combine importAssertions, importAttributes and moduleAttributes plugins.");
    if (nh(e, "moduleAttributes", "version") !== "may-2020")
      throw new Error("The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is 'may-2020'.");
  }
  if (jn(e, "importAssertions") && jn(e, "importAttributes"))
    throw new Error("Cannot combine importAssertions and importAttributes plugins.");
  if (jn(e, "recordAndTuple") && nh(e, "recordAndTuple", "syntaxType") != null && !rZ.includes(nh(e, "recordAndTuple", "syntaxType")))
    throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: " + rZ.map((t) => "'".concat(t, "'")).join(", "));
  if (jn(e, "asyncDoExpressions") && !jn(e, "doExpressions")) {
    const t = new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.");
    throw t.missingPlugins = "doExpressions", t;
  }
  if (jn(e, "optionalChainingAssign") && nh(e, "optionalChainingAssign", "version") !== "2023-07")
    throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is '2023-07'.");
}
const jye = {
  estree: pDt,
  jsx: cLt,
  flow: lLt,
  typescript: vLt,
  v8intrinsic: PLt,
  placeholders: ELt
}, ALt = Object.keys(jye), x3 = {
  sourceType: "script",
  sourceFilename: void 0,
  startColumn: 0,
  startLine: 1,
  allowAwaitOutsideFunction: !1,
  allowReturnOutsideFunction: !1,
  allowNewTargetOutsideFunction: !1,
  allowImportExportEverywhere: !1,
  allowSuperOutsideMethod: !1,
  allowUndeclaredExports: !1,
  plugins: [],
  strictMode: null,
  ranges: !1,
  tokens: !1,
  createImportExpressions: !1,
  createParenthesizedExpressions: !1,
  errorRecovery: !1,
  attachComment: !0,
  annexB: !0
};
function CLt(e) {
  if (e == null)
    return Object.assign({}, x3);
  if (e.annexB != null && e.annexB !== !1)
    throw new Error("The `annexB` option can only be set to `false`.");
  const t = {};
  for (const i of Object.keys(x3)) {
    var r;
    t[i] = (r = e[i]) != null ? r : x3[i];
  }
  return t;
}
let _Lt = class extends dLt {
  checkProto(t, r, i, n) {
    if (t.type === "SpreadElement" || this.isObjectMethod(t) || t.computed || t.shorthand)
      return;
    const s = t.key;
    if ((s.type === "Identifier" ? s.name : s.value) === "__proto__") {
      if (r) {
        this.raise(rt.RecordNoProto, s);
        return;
      }
      i.used && (n ? n.doubleProtoLoc === null && (n.doubleProtoLoc = s.loc.start) : this.raise(rt.DuplicateProto, s)), i.used = !0;
    }
  }
  shouldExitDescending(t, r) {
    return t.type === "ArrowFunctionExpression" && t.start === r;
  }
  getExpression() {
    this.enterInitialScopes(), this.nextToken();
    const t = this.parseExpression();
    return this.match(139) || this.unexpected(), this.finalizeRemainingComments(), t.comments = this.comments, t.errors = this.state.errors, this.options.tokens && (t.tokens = this.tokens), t;
  }
  parseExpression(t, r) {
    return t ? this.disallowInAnd(() => this.parseExpressionBase(r)) : this.allowInAnd(() => this.parseExpressionBase(r));
  }
  parseExpressionBase(t) {
    const r = this.state.startLoc, i = this.parseMaybeAssign(t);
    if (this.match(12)) {
      const n = this.startNodeAt(r);
      for (n.expressions = [i]; this.eat(12); )
        n.expressions.push(this.parseMaybeAssign(t));
      return this.toReferencedList(n.expressions), this.finishNode(n, "SequenceExpression");
    }
    return i;
  }
  parseMaybeAssignDisallowIn(t, r) {
    return this.disallowInAnd(() => this.parseMaybeAssign(t, r));
  }
  parseMaybeAssignAllowIn(t, r) {
    return this.allowInAnd(() => this.parseMaybeAssign(t, r));
  }
  setOptionalParametersError(t, r) {
    var i;
    t.optionalParametersLoc = (i = r == null ? void 0 : r.loc) != null ? i : this.state.startLoc;
  }
  parseMaybeAssign(t, r) {
    const i = this.state.startLoc;
    if (this.isContextual(108) && this.prodParam.hasYield) {
      let o = this.parseYield();
      return r && (o = r.call(this, o, i)), o;
    }
    let n;
    t ? n = !1 : (t = new MP(), n = !0);
    const {
      type: s
    } = this.state;
    (s === 10 || xi(s)) && (this.state.potentialArrowAt = this.state.start);
    let a = this.parseMaybeConditional(t);
    if (r && (a = r.call(this, a, i)), yDt(this.state.type)) {
      const o = this.startNodeAt(i), l = this.state.value;
      if (o.operator = l, this.match(29)) {
        this.toAssignable(a, !0), o.left = a;
        const u = i.index;
        t.doubleProtoLoc != null && t.doubleProtoLoc.index >= u && (t.doubleProtoLoc = null), t.shorthandAssignLoc != null && t.shorthandAssignLoc.index >= u && (t.shorthandAssignLoc = null), t.privateKeyLoc != null && t.privateKeyLoc.index >= u && (this.checkDestructuringPrivate(t), t.privateKeyLoc = null);
      } else
        o.left = a;
      return this.next(), o.right = this.parseMaybeAssign(), this.checkLVal(a, {
        in: this.finishNode(o, "AssignmentExpression")
      }), o;
    } else
      n && this.checkExpressionErrors(t, !0);
    return a;
  }
  parseMaybeConditional(t) {
    const r = this.state.startLoc, i = this.state.potentialArrowAt, n = this.parseExprOps(t);
    return this.shouldExitDescending(n, i) ? n : this.parseConditional(n, r, t);
  }
  parseConditional(t, r, i) {
    if (this.eat(17)) {
      const n = this.startNodeAt(r);
      return n.test = t, n.consequent = this.parseMaybeAssignAllowIn(), this.expect(14), n.alternate = this.parseMaybeAssign(), this.finishNode(n, "ConditionalExpression");
    }
    return t;
  }
  parseMaybeUnaryOrPrivate(t) {
    return this.match(138) ? this.parsePrivateName() : this.parseMaybeUnary(t);
  }
  parseExprOps(t) {
    const r = this.state.startLoc, i = this.state.potentialArrowAt, n = this.parseMaybeUnaryOrPrivate(t);
    return this.shouldExitDescending(n, i) ? n : this.parseExprOp(n, r, -1);
  }
  parseExprOp(t, r, i) {
    if (this.isPrivateName(t)) {
      const s = this.getPrivateNameSV(t);
      (i >= NP(58) || !this.prodParam.hasIn || !this.match(58)) && this.raise(rt.PrivateInExpectedIn, t, {
        identifierName: s
      }), this.classScope.usePrivateName(s, t.loc.start);
    }
    const n = this.state.type;
    if (bDt(n) && (this.prodParam.hasIn || !this.match(58))) {
      let s = NP(n);
      if (s > i) {
        if (n === 39) {
          if (this.expectPlugin("pipelineOperator"), this.state.inFSharpPipelineDirectBody)
            return t;
          this.checkPipelineAtInfixOperator(t, r);
        }
        const a = this.startNodeAt(r);
        a.left = t, a.operator = this.state.value;
        const o = n === 41 || n === 42, l = n === 40;
        if (l && (s = NP(42)), this.next(), n === 39 && this.hasPlugin(["pipelineOperator", {
          proposal: "minimal"
        }]) && this.state.type === 96 && this.prodParam.hasAwait)
          throw this.raise(rt.UnexpectedAwaitAfterPipelineBody, this.state.startLoc);
        a.right = this.parseExprOpRightExpr(n, s);
        const u = this.finishNode(a, o || l ? "LogicalExpression" : "BinaryExpression"), c = this.state.type;
        if (l && (c === 41 || c === 42) || o && c === 40)
          throw this.raise(rt.MixingCoalesceWithLogical, this.state.startLoc);
        return this.parseExprOp(u, r, i);
      }
    }
    return t;
  }
  parseExprOpRightExpr(t, r) {
    const i = this.state.startLoc;
    switch (t) {
      case 39:
        switch (this.getPluginOption("pipelineOperator", "proposal")) {
          case "hack":
            return this.withTopicBindingContext(() => this.parseHackPipeBody());
          case "smart":
            return this.withTopicBindingContext(() => {
              if (this.prodParam.hasYield && this.isContextual(108))
                throw this.raise(rt.PipeBodyIsTighter, this.state.startLoc);
              return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(t, r), i);
            });
          case "fsharp":
            return this.withSoloAwaitPermittingContext(() => this.parseFSharpPipelineBody(r));
        }
      default:
        return this.parseExprOpBaseRightExpr(t, r);
    }
  }
  parseExprOpBaseRightExpr(t, r) {
    const i = this.state.startLoc;
    return this.parseExprOp(this.parseMaybeUnaryOrPrivate(), i, EDt(t) ? r - 1 : r);
  }
  parseHackPipeBody() {
    var t;
    const {
      startLoc: r
    } = this.state, i = this.parseMaybeAssign();
    return sDt.has(i.type) && !((t = i.extra) != null && t.parenthesized) && this.raise(rt.PipeUnparenthesizedBody, r, {
      type: i.type
    }), this.topicReferenceWasUsedInCurrentContext() || this.raise(rt.PipeTopicUnused, r), i;
  }
  checkExponentialAfterUnary(t) {
    this.match(57) && this.raise(rt.UnexpectedTokenUnaryExponentiation, t.argument);
  }
  parseMaybeUnary(t, r) {
    const i = this.state.startLoc, n = this.isContextual(96);
    if (n && this.isAwaitAllowed()) {
      this.next();
      const l = this.parseAwait(i);
      return r || this.checkExponentialAfterUnary(l), l;
    }
    const s = this.match(34), a = this.startNode();
    if (TDt(this.state.type)) {
      a.operator = this.state.value, a.prefix = !0, this.match(72) && this.expectPlugin("throwExpressions");
      const l = this.match(89);
      if (this.next(), a.argument = this.parseMaybeUnary(null, !0), this.checkExpressionErrors(t, !0), this.state.strict && l) {
        const u = a.argument;
        u.type === "Identifier" ? this.raise(rt.StrictDelete, a) : this.hasPropertyAsPrivateName(u) && this.raise(rt.DeletePrivateField, a);
      }
      if (!s)
        return r || this.checkExponentialAfterUnary(a), this.finishNode(a, "UnaryExpression");
    }
    const o = this.parseUpdate(a, s, t);
    if (n) {
      const {
        type: l
      } = this.state;
      if ((this.hasPlugin("v8intrinsic") ? d8(l) : d8(l) && !this.match(54)) && !this.isAmbiguousAwait())
        return this.raiseOverwrite(rt.AwaitNotInAsyncContext, i), this.parseAwait(i);
    }
    return o;
  }
  parseUpdate(t, r, i) {
    if (r) {
      const a = t;
      return this.checkLVal(a.argument, {
        in: this.finishNode(a, "UpdateExpression")
      }), t;
    }
    const n = this.state.startLoc;
    let s = this.parseExprSubscripts(i);
    if (this.checkExpressionErrors(i, !1))
      return s;
    for (; vDt(this.state.type) && !this.canInsertSemicolon(); ) {
      const a = this.startNodeAt(n);
      a.operator = this.state.value, a.prefix = !1, a.argument = s, this.next(), this.checkLVal(s, {
        in: s = this.finishNode(a, "UpdateExpression")
      });
    }
    return s;
  }
  parseExprSubscripts(t) {
    const r = this.state.startLoc, i = this.state.potentialArrowAt, n = this.parseExprAtom(t);
    return this.shouldExitDescending(n, i) ? n : this.parseSubscripts(n, r);
  }
  parseSubscripts(t, r, i) {
    const n = {
      optionalChainMember: !1,
      maybeAsyncArrow: this.atPossibleAsyncArrow(t),
      stop: !1
    };
    do
      t = this.parseSubscript(t, r, i, n), n.maybeAsyncArrow = !1;
    while (!n.stop);
    return t;
  }
  parseSubscript(t, r, i, n) {
    const {
      type: s
    } = this.state;
    if (!i && s === 15)
      return this.parseBind(t, r, i, n);
    if (Gw(s))
      return this.parseTaggedTemplateExpression(t, r, n);
    let a = !1;
    if (s === 18) {
      if (i && (this.raise(rt.OptionalChainingNoNew, this.state.startLoc), this.lookaheadCharCode() === 40))
        return n.stop = !0, t;
      n.optionalChainMember = a = !0, this.next();
    }
    if (!i && this.match(10))
      return this.parseCoverCallAndAsyncArrowHead(t, r, n, a);
    {
      const o = this.eat(0);
      return o || a || this.eat(16) ? this.parseMember(t, r, n, o, a) : (n.stop = !0, t);
    }
  }
  parseMember(t, r, i, n, s) {
    const a = this.startNodeAt(r);
    return a.object = t, a.computed = n, n ? (a.property = this.parseExpression(), this.expect(3)) : this.match(138) ? (t.type === "Super" && this.raise(rt.SuperPrivateField, r), this.classScope.usePrivateName(this.state.value, this.state.startLoc), a.property = this.parsePrivateName()) : a.property = this.parseIdentifier(!0), i.optionalChainMember ? (a.optional = s, this.finishNode(a, "OptionalMemberExpression")) : this.finishNode(a, "MemberExpression");
  }
  parseBind(t, r, i, n) {
    const s = this.startNodeAt(r);
    return s.object = t, this.next(), s.callee = this.parseNoCallExpr(), n.stop = !0, this.parseSubscripts(this.finishNode(s, "BindExpression"), r, i);
  }
  parseCoverCallAndAsyncArrowHead(t, r, i, n) {
    const s = this.state.maybeInArrowParameters;
    let a = null;
    this.state.maybeInArrowParameters = !0, this.next();
    const o = this.startNodeAt(r);
    o.callee = t;
    const {
      maybeAsyncArrow: l,
      optionalChainMember: u
    } = i;
    l && (this.expressionScope.enter(JDt()), a = new MP()), u && (o.optional = n), n ? o.arguments = this.parseCallExpressionArguments(11) : o.arguments = this.parseCallExpressionArguments(11, t.type === "Import", t.type !== "Super", o, a);
    let c = this.finishCallExpression(o, u);
    return l && this.shouldParseAsyncArrow() && !n ? (i.stop = !0, this.checkDestructuringPrivate(a), this.expressionScope.validateAsPattern(), this.expressionScope.exit(), c = this.parseAsyncArrowFromCallExpression(this.startNodeAt(r), c)) : (l && (this.checkExpressionErrors(a, !0), this.expressionScope.exit()), this.toReferencedArguments(c)), this.state.maybeInArrowParameters = s, c;
  }
  toReferencedArguments(t, r) {
    this.toReferencedListDeep(t.arguments, r);
  }
  parseTaggedTemplateExpression(t, r, i) {
    const n = this.startNodeAt(r);
    return n.tag = t, n.quasi = this.parseTemplate(!0), i.optionalChainMember && this.raise(rt.OptionalChainingNoTemplate, r), this.finishNode(n, "TaggedTemplateExpression");
  }
  atPossibleAsyncArrow(t) {
    return t.type === "Identifier" && t.name === "async" && this.state.lastTokEndLoc.index === t.end && !this.canInsertSemicolon() && t.end - t.start === 5 && t.start === this.state.potentialArrowAt;
  }
  expectImportAttributesPlugin() {
    this.hasPlugin("importAssertions") || this.expectPlugin("importAttributes");
  }
  finishCallExpression(t, r) {
    if (t.callee.type === "Import")
      if (t.arguments.length === 2 && (this.hasPlugin("moduleAttributes") || this.expectImportAttributesPlugin()), t.arguments.length === 0 || t.arguments.length > 2)
        this.raise(rt.ImportCallArity, t, {
          maxArgumentCount: this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions") || this.hasPlugin("moduleAttributes") ? 2 : 1
        });
      else
        for (const i of t.arguments)
          i.type === "SpreadElement" && this.raise(rt.ImportCallSpreadArgument, i);
    return this.finishNode(t, r ? "OptionalCallExpression" : "CallExpression");
  }
  parseCallExpressionArguments(t, r, i, n, s) {
    const a = [];
    let o = !0;
    const l = this.state.inFSharpPipelineDirectBody;
    for (this.state.inFSharpPipelineDirectBody = !1; !this.eat(t); ) {
      if (o)
        o = !1;
      else if (this.expect(12), this.match(t)) {
        r && !this.hasPlugin("importAttributes") && !this.hasPlugin("importAssertions") && !this.hasPlugin("moduleAttributes") && this.raise(rt.ImportCallArgumentTrailingComma, this.state.lastTokStartLoc), n && this.addTrailingCommaExtraToNode(n), this.next();
        break;
      }
      a.push(this.parseExprListItem(!1, s, i));
    }
    return this.state.inFSharpPipelineDirectBody = l, a;
  }
  shouldParseAsyncArrow() {
    return this.match(19) && !this.canInsertSemicolon();
  }
  parseAsyncArrowFromCallExpression(t, r) {
    var i;
    return this.resetPreviousNodeTrailingComments(r), this.expect(19), this.parseArrowExpression(t, r.arguments, !0, (i = r.extra) == null ? void 0 : i.trailingCommaLoc), r.innerComments && Zv(t, r.innerComments), r.callee.trailingComments && Zv(t, r.callee.trailingComments), t;
  }
  parseNoCallExpr() {
    const t = this.state.startLoc;
    return this.parseSubscripts(this.parseExprAtom(), t, !0);
  }
  parseExprAtom(t) {
    let r, i = null;
    const {
      type: n
    } = this.state;
    switch (n) {
      case 79:
        return this.parseSuper();
      case 83:
        return r = this.startNode(), this.next(), this.match(16) ? this.parseImportMetaProperty(r) : this.match(10) ? this.options.createImportExpressions ? this.parseImportCall(r) : this.finishNode(r, "Import") : (this.raise(rt.UnsupportedImport, this.state.lastTokStartLoc), this.finishNode(r, "Import"));
      case 78:
        return r = this.startNode(), this.next(), this.finishNode(r, "ThisExpression");
      case 90:
        return this.parseDo(this.startNode(), !1);
      case 56:
      case 31:
        return this.readRegexp(), this.parseRegExpLiteral(this.state.value);
      case 134:
        return this.parseNumericLiteral(this.state.value);
      case 135:
        return this.parseBigIntLiteral(this.state.value);
      case 136:
        return this.parseDecimalLiteral(this.state.value);
      case 133:
        return this.parseStringLiteral(this.state.value);
      case 84:
        return this.parseNullLiteral();
      case 85:
        return this.parseBooleanLiteral(!0);
      case 86:
        return this.parseBooleanLiteral(!1);
      case 10: {
        const s = this.state.potentialArrowAt === this.state.start;
        return this.parseParenAndDistinguishExpression(s);
      }
      case 2:
      case 1:
        return this.parseArrayLike(this.state.type === 2 ? 4 : 3, !1, !0);
      case 0:
        return this.parseArrayLike(3, !0, !1, t);
      case 6:
      case 7:
        return this.parseObjectLike(this.state.type === 6 ? 9 : 8, !1, !0);
      case 5:
        return this.parseObjectLike(8, !1, !1, t);
      case 68:
        return this.parseFunctionOrFunctionSent();
      case 26:
        i = this.parseDecorators();
      case 80:
        return this.parseClass(this.maybeTakeDecorators(i, this.startNode()), !1);
      case 77:
        return this.parseNewOrNewTarget();
      case 25:
      case 24:
        return this.parseTemplate(!1);
      case 15: {
        r = this.startNode(), this.next(), r.object = null;
        const s = r.callee = this.parseNoCallExpr();
        if (s.type === "MemberExpression")
          return this.finishNode(r, "BindExpression");
        throw this.raise(rt.UnsupportedBind, s);
      }
      case 138:
        return this.raise(rt.PrivateInExpectedIn, this.state.startLoc, {
          identifierName: this.state.value
        }), this.parsePrivateName();
      case 33:
        return this.parseTopicReferenceThenEqualsSign(54, "%");
      case 32:
        return this.parseTopicReferenceThenEqualsSign(44, "^");
      case 37:
      case 38:
        return this.parseTopicReference("hack");
      case 44:
      case 54:
      case 27: {
        const s = this.getPluginOption("pipelineOperator", "proposal");
        if (s)
          return this.parseTopicReference(s);
        this.unexpected();
        break;
      }
      case 47: {
        const s = this.input.codePointAt(this.nextTokenStart());
        af(s) || s === 62 ? this.expectOnePlugin(["jsx", "flow", "typescript"]) : this.unexpected();
        break;
      }
      default:
        if (xi(n)) {
          if (this.isContextual(127) && this.lookaheadInLineCharCode() === 123)
            return this.parseModuleExpression();
          const s = this.state.potentialArrowAt === this.state.start, a = this.state.containsEsc, o = this.parseIdentifier();
          if (!a && o.name === "async" && !this.canInsertSemicolon()) {
            const {
              type: l
            } = this.state;
            if (l === 68)
              return this.resetPreviousNodeTrailingComments(o), this.next(), this.parseAsyncFunctionExpression(this.startNodeAtNode(o));
            if (xi(l))
              return this.lookaheadCharCode() === 61 ? this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(o)) : o;
            if (l === 90)
              return this.resetPreviousNodeTrailingComments(o), this.parseDo(this.startNodeAtNode(o), !0);
          }
          return s && this.match(19) && !this.canInsertSemicolon() ? (this.next(), this.parseArrowExpression(this.startNodeAtNode(o), [o], !1)) : o;
        } else
          this.unexpected();
    }
  }
  parseTopicReferenceThenEqualsSign(t, r) {
    const i = this.getPluginOption("pipelineOperator", "proposal");
    if (i)
      return this.state.type = t, this.state.value = r, this.state.pos--, this.state.end--, this.state.endLoc = ua(this.state.endLoc, -1), this.parseTopicReference(i);
    this.unexpected();
  }
  parseTopicReference(t) {
    const r = this.startNode(), i = this.state.startLoc, n = this.state.type;
    return this.next(), this.finishTopicReference(r, i, t, n);
  }
  finishTopicReference(t, r, i, n) {
    if (this.testTopicReferenceConfiguration(i, r, n)) {
      const s = i === "smart" ? "PipelinePrimaryTopicReference" : "TopicReference";
      return this.topicReferenceIsAllowedInCurrentContext() || this.raise(i === "smart" ? rt.PrimaryTopicNotAllowed : rt.PipeTopicUnbound, r), this.registerTopicReference(), this.finishNode(t, s);
    } else
      throw this.raise(rt.PipeTopicUnconfiguredToken, r, {
        token: Nh(n)
      });
  }
  testTopicReferenceConfiguration(t, r, i) {
    switch (t) {
      case "hack":
        return this.hasPlugin(["pipelineOperator", {
          topicToken: Nh(i)
        }]);
      case "smart":
        return i === 27;
      default:
        throw this.raise(rt.PipeTopicRequiresHackPipes, r);
    }
  }
  parseAsyncArrowUnaryFunction(t) {
    this.prodParam.enter(LP(!0, this.prodParam.hasYield));
    const r = [this.parseIdentifier()];
    return this.prodParam.exit(), this.hasPrecedingLineBreak() && this.raise(rt.LineTerminatorBeforeArrow, this.state.curPosition()), this.expect(19), this.parseArrowExpression(t, r, !0);
  }
  parseDo(t, r) {
    this.expectPlugin("doExpressions"), r && this.expectPlugin("asyncDoExpressions"), t.async = r, this.next();
    const i = this.state.labels;
    return this.state.labels = [], r ? (this.prodParam.enter(2), t.body = this.parseBlock(), this.prodParam.exit()) : t.body = this.parseBlock(), this.state.labels = i, this.finishNode(t, "DoExpression");
  }
  parseSuper() {
    const t = this.startNode();
    return this.next(), this.match(10) && !this.scope.allowDirectSuper && !this.options.allowSuperOutsideMethod ? this.raise(rt.SuperNotAllowed, t) : !this.scope.allowSuper && !this.options.allowSuperOutsideMethod && this.raise(rt.UnexpectedSuper, t), !this.match(10) && !this.match(0) && !this.match(16) && this.raise(rt.UnsupportedSuper, t), this.finishNode(t, "Super");
  }
  parsePrivateName() {
    const t = this.startNode(), r = this.startNodeAt(ua(this.state.startLoc, 1)), i = this.state.value;
    return this.next(), t.id = this.createIdentifier(r, i), this.finishNode(t, "PrivateName");
  }
  parseFunctionOrFunctionSent() {
    const t = this.startNode();
    if (this.next(), this.prodParam.hasYield && this.match(16)) {
      const r = this.createIdentifier(this.startNodeAtNode(t), "function");
      return this.next(), this.match(103) ? this.expectPlugin("functionSent") : this.hasPlugin("functionSent") || this.unexpected(), this.parseMetaProperty(t, r, "sent");
    }
    return this.parseFunction(t);
  }
  parseMetaProperty(t, r, i) {
    t.meta = r;
    const n = this.state.containsEsc;
    return t.property = this.parseIdentifier(!0), (t.property.name !== i || n) && this.raise(rt.UnsupportedMetaProperty, t.property, {
      target: r.name,
      onlyValidPropertyName: i
    }), this.finishNode(t, "MetaProperty");
  }
  parseImportMetaProperty(t) {
    const r = this.createIdentifier(this.startNodeAtNode(t), "import");
    if (this.next(), this.isContextual(101))
      this.inModule || this.raise(rt.ImportMetaOutsideModule, r), this.sawUnambiguousESM = !0;
    else if (this.isContextual(105) || this.isContextual(97)) {
      const i = this.isContextual(105);
      if (i || this.unexpected(), this.expectPlugin(i ? "sourcePhaseImports" : "deferredImportEvaluation"), !this.options.createImportExpressions)
        throw this.raise(rt.DynamicImportPhaseRequiresImportExpressions, this.state.startLoc, {
          phase: this.state.value
        });
      return this.next(), t.phase = i ? "source" : "defer", this.parseImportCall(t);
    }
    return this.parseMetaProperty(t, r, "meta");
  }
  parseLiteralAtNode(t, r, i) {
    return this.addExtra(i, "rawValue", t), this.addExtra(i, "raw", this.input.slice(i.start, this.state.end)), i.value = t, this.next(), this.finishNode(i, r);
  }
  parseLiteral(t, r) {
    const i = this.startNode();
    return this.parseLiteralAtNode(t, r, i);
  }
  parseStringLiteral(t) {
    return this.parseLiteral(t, "StringLiteral");
  }
  parseNumericLiteral(t) {
    return this.parseLiteral(t, "NumericLiteral");
  }
  parseBigIntLiteral(t) {
    return this.parseLiteral(t, "BigIntLiteral");
  }
  parseDecimalLiteral(t) {
    return this.parseLiteral(t, "DecimalLiteral");
  }
  parseRegExpLiteral(t) {
    const r = this.parseLiteral(t.value, "RegExpLiteral");
    return r.pattern = t.pattern, r.flags = t.flags, r;
  }
  parseBooleanLiteral(t) {
    const r = this.startNode();
    return r.value = t, this.next(), this.finishNode(r, "BooleanLiteral");
  }
  parseNullLiteral() {
    const t = this.startNode();
    return this.next(), this.finishNode(t, "NullLiteral");
  }
  parseParenAndDistinguishExpression(t) {
    const r = this.state.startLoc;
    let i;
    this.next(), this.expressionScope.enter(XDt());
    const n = this.state.maybeInArrowParameters, s = this.state.inFSharpPipelineDirectBody;
    this.state.maybeInArrowParameters = !0, this.state.inFSharpPipelineDirectBody = !1;
    const a = this.state.startLoc, o = [], l = new MP();
    let u = !0, c, f;
    for (; !this.match(11); ) {
      if (u)
        u = !1;
      else if (this.expect(12, l.optionalParametersLoc === null ? null : l.optionalParametersLoc), this.match(11)) {
        f = this.state.startLoc;
        break;
      }
      if (this.match(21)) {
        const g = this.state.startLoc;
        if (c = this.state.startLoc, o.push(this.parseParenItem(this.parseRestBinding(), g)), !this.checkCommaAfterRest(41))
          break;
      } else
        o.push(this.parseMaybeAssignAllowIn(l, this.parseParenItem));
    }
    const h = this.state.lastTokEndLoc;
    this.expect(11), this.state.maybeInArrowParameters = n, this.state.inFSharpPipelineDirectBody = s;
    let m = this.startNodeAt(r);
    return t && this.shouldParseArrow(o) && (m = this.parseArrow(m)) ? (this.checkDestructuringPrivate(l), this.expressionScope.validateAsPattern(), this.expressionScope.exit(), this.parseArrowExpression(m, o, !1), m) : (this.expressionScope.exit(), o.length || this.unexpected(this.state.lastTokStartLoc), f && this.unexpected(f), c && this.unexpected(c), this.checkExpressionErrors(l, !0), this.toReferencedListDeep(o, !0), o.length > 1 ? (i = this.startNodeAt(a), i.expressions = o, this.finishNode(i, "SequenceExpression"), this.resetEndLocation(i, h)) : i = o[0], this.wrapParenthesis(r, i));
  }
  wrapParenthesis(t, r) {
    if (!this.options.createParenthesizedExpressions)
      return this.addExtra(r, "parenthesized", !0), this.addExtra(r, "parenStart", t.index), this.takeSurroundingComments(r, t.index, this.state.lastTokEndLoc.index), r;
    const i = this.startNodeAt(t);
    return i.expression = r, this.finishNode(i, "ParenthesizedExpression");
  }
  shouldParseArrow(t) {
    return !this.canInsertSemicolon();
  }
  parseArrow(t) {
    if (this.eat(19))
      return t;
  }
  parseParenItem(t, r) {
    return t;
  }
  parseNewOrNewTarget() {
    const t = this.startNode();
    if (this.next(), this.match(16)) {
      const r = this.createIdentifier(this.startNodeAtNode(t), "new");
      this.next();
      const i = this.parseMetaProperty(t, r, "target");
      return !this.scope.inNonArrowFunction && !this.scope.inClass && !this.options.allowNewTargetOutsideFunction && this.raise(rt.UnexpectedNewTarget, i), i;
    }
    return this.parseNew(t);
  }
  parseNew(t) {
    if (this.parseNewCallee(t), this.eat(10)) {
      const r = this.parseExprList(11);
      this.toReferencedList(r), t.arguments = r;
    } else
      t.arguments = [];
    return this.finishNode(t, "NewExpression");
  }
  parseNewCallee(t) {
    const r = this.match(83), i = this.parseNoCallExpr();
    t.callee = i, r && (i.type === "Import" || i.type === "ImportExpression") && this.raise(rt.ImportCallNotNewExpression, i);
  }
  parseTemplateElement(t) {
    const {
      start: r,
      startLoc: i,
      end: n,
      value: s
    } = this.state, a = r + 1, o = this.startNodeAt(ua(i, 1));
    s === null && (t || this.raise(rt.InvalidEscapeSequenceTemplate, ua(this.state.firstInvalidTemplateEscapePos, 1)));
    const l = this.match(24), u = l ? -1 : -2, c = n + u;
    o.value = {
      raw: this.input.slice(a, c).replace(/\r\n?/g, "\n"),
      cooked: s === null ? null : s.slice(1, u)
    }, o.tail = l, this.next();
    const f = this.finishNode(o, "TemplateElement");
    return this.resetEndLocation(f, ua(this.state.lastTokEndLoc, u)), f;
  }
  parseTemplate(t) {
    const r = this.startNode();
    r.expressions = [];
    let i = this.parseTemplateElement(t);
    for (r.quasis = [i]; !i.tail; )
      r.expressions.push(this.parseTemplateSubstitution()), this.readTemplateContinuation(), r.quasis.push(i = this.parseTemplateElement(t));
    return this.finishNode(r, "TemplateLiteral");
  }
  parseTemplateSubstitution() {
    return this.parseExpression();
  }
  parseObjectLike(t, r, i, n) {
    i && this.expectPlugin("recordAndTuple");
    const s = this.state.inFSharpPipelineDirectBody;
    this.state.inFSharpPipelineDirectBody = !1;
    const a = /* @__PURE__ */ Object.create(null);
    let o = !0;
    const l = this.startNode();
    for (l.properties = [], this.next(); !this.match(t); ) {
      if (o)
        o = !1;
      else if (this.expect(12), this.match(t)) {
        this.addTrailingCommaExtraToNode(l);
        break;
      }
      let c;
      r ? c = this.parseBindingProperty() : (c = this.parsePropertyDefinition(n), this.checkProto(c, i, a, n)), i && !this.isObjectProperty(c) && c.type !== "SpreadElement" && this.raise(rt.InvalidRecordProperty, c), c.shorthand && this.addExtra(c, "shorthand", !0), l.properties.push(c);
    }
    this.next(), this.state.inFSharpPipelineDirectBody = s;
    let u = "ObjectExpression";
    return r ? u = "ObjectPattern" : i && (u = "RecordExpression"), this.finishNode(l, u);
  }
  addTrailingCommaExtraToNode(t) {
    this.addExtra(t, "trailingComma", this.state.lastTokStartLoc.index), this.addExtra(t, "trailingCommaLoc", this.state.lastTokStartLoc, !1);
  }
  maybeAsyncOrAccessorProp(t) {
    return !t.computed && t.key.type === "Identifier" && (this.isLiteralPropertyName() || this.match(0) || this.match(55));
  }
  parsePropertyDefinition(t) {
    let r = [];
    if (this.match(26))
      for (this.hasPlugin("decorators") && this.raise(rt.UnsupportedPropertyDecorator, this.state.startLoc); this.match(26); )
        r.push(this.parseDecorator());
    const i = this.startNode();
    let n = !1, s = !1, a;
    if (this.match(21))
      return r.length && this.unexpected(), this.parseSpread();
    r.length && (i.decorators = r, r = []), i.method = !1, t && (a = this.state.startLoc);
    let o = this.eat(55);
    this.parsePropertyNamePrefixOperator(i);
    const l = this.state.containsEsc, u = this.parsePropertyName(i, t);
    if (!o && !l && this.maybeAsyncOrAccessorProp(i)) {
      const c = u.name;
      c === "async" && !this.hasPrecedingLineBreak() && (n = !0, this.resetPreviousNodeTrailingComments(u), o = this.eat(55), this.parsePropertyName(i)), (c === "get" || c === "set") && (s = !0, this.resetPreviousNodeTrailingComments(u), i.kind = c, this.match(55) && (o = !0, this.raise(rt.AccessorIsGenerator, this.state.curPosition(), {
        kind: c
      }), this.next()), this.parsePropertyName(i));
    }
    return this.parseObjPropValue(i, a, o, n, !1, s, t);
  }
  getGetterSetterExpectedParamCount(t) {
    return t.kind === "get" ? 0 : 1;
  }
  getObjectOrClassMethodParams(t) {
    return t.params;
  }
  checkGetterSetterParams(t) {
    var r;
    const i = this.getGetterSetterExpectedParamCount(t), n = this.getObjectOrClassMethodParams(t);
    n.length !== i && this.raise(t.kind === "get" ? rt.BadGetterArity : rt.BadSetterArity, t), t.kind === "set" && ((r = n[n.length - 1]) == null ? void 0 : r.type) === "RestElement" && this.raise(rt.BadSetterRestParameter, t);
  }
  parseObjectMethod(t, r, i, n, s) {
    if (s) {
      const a = this.parseMethod(t, r, !1, !1, !1, "ObjectMethod");
      return this.checkGetterSetterParams(a), a;
    }
    if (i || r || this.match(10))
      return n && this.unexpected(), t.kind = "method", t.method = !0, this.parseMethod(t, r, i, !1, !1, "ObjectMethod");
  }
  parseObjectProperty(t, r, i, n) {
    if (t.shorthand = !1, this.eat(14))
      return t.value = i ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowIn(n), this.finishNode(t, "ObjectProperty");
    if (!t.computed && t.key.type === "Identifier") {
      if (this.checkReservedWord(t.key.name, t.key.loc.start, !0, !1), i)
        t.value = this.parseMaybeDefault(r, Tf(t.key));
      else if (this.match(29)) {
        const s = this.state.startLoc;
        n != null ? n.shorthandAssignLoc === null && (n.shorthandAssignLoc = s) : this.raise(rt.InvalidCoverInitializedName, s), t.value = this.parseMaybeDefault(r, Tf(t.key));
      } else
        t.value = Tf(t.key);
      return t.shorthand = !0, this.finishNode(t, "ObjectProperty");
    }
  }
  parseObjPropValue(t, r, i, n, s, a, o) {
    const l = this.parseObjectMethod(t, i, n, s, a) || this.parseObjectProperty(t, r, s, o);
    return l || this.unexpected(), l;
  }
  parsePropertyName(t, r) {
    if (this.eat(0))
      t.computed = !0, t.key = this.parseMaybeAssignAllowIn(), this.expect(3);
    else {
      const {
        type: i,
        value: n
      } = this.state;
      let s;
      if (Oc(i))
        s = this.parseIdentifier(!0);
      else
        switch (i) {
          case 134:
            s = this.parseNumericLiteral(n);
            break;
          case 133:
            s = this.parseStringLiteral(n);
            break;
          case 135:
            s = this.parseBigIntLiteral(n);
            break;
          case 136:
            s = this.parseDecimalLiteral(n);
            break;
          case 138: {
            const a = this.state.startLoc;
            r != null ? r.privateKeyLoc === null && (r.privateKeyLoc = a) : this.raise(rt.UnexpectedPrivateField, a), s = this.parsePrivateName();
            break;
          }
          default:
            this.unexpected();
        }
      t.key = s, i !== 138 && (t.computed = !1);
    }
    return t.key;
  }
  initFunction(t, r) {
    t.id = null, t.generator = !1, t.async = r;
  }
  parseMethod(t, r, i, n, s, a, o = !1) {
    this.initFunction(t, i), t.generator = r, this.scope.enter(18 | (o ? 64 : 0) | (s ? 32 : 0)), this.prodParam.enter(LP(i, t.generator)), this.parseFunctionParams(t, n);
    const l = this.parseFunctionBodyAndFinish(t, a, !0);
    return this.prodParam.exit(), this.scope.exit(), l;
  }
  parseArrayLike(t, r, i, n) {
    i && this.expectPlugin("recordAndTuple");
    const s = this.state.inFSharpPipelineDirectBody;
    this.state.inFSharpPipelineDirectBody = !1;
    const a = this.startNode();
    return this.next(), a.elements = this.parseExprList(t, !i, n, a), this.state.inFSharpPipelineDirectBody = s, this.finishNode(a, i ? "TupleExpression" : "ArrayExpression");
  }
  parseArrowExpression(t, r, i, n) {
    this.scope.enter(6);
    let s = LP(i, !1);
    !this.match(5) && this.prodParam.hasIn && (s |= 8), this.prodParam.enter(s), this.initFunction(t, i);
    const a = this.state.maybeInArrowParameters;
    return r && (this.state.maybeInArrowParameters = !0, this.setArrowFunctionParameters(t, r, n)), this.state.maybeInArrowParameters = !1, this.parseFunctionBody(t, !0), this.prodParam.exit(), this.scope.exit(), this.state.maybeInArrowParameters = a, this.finishNode(t, "ArrowFunctionExpression");
  }
  setArrowFunctionParameters(t, r, i) {
    this.toAssignableList(r, i, !1), t.params = r;
  }
  parseFunctionBodyAndFinish(t, r, i = !1) {
    return this.parseFunctionBody(t, !1, i), this.finishNode(t, r);
  }
  parseFunctionBody(t, r, i = !1) {
    const n = r && !this.match(5);
    if (this.expressionScope.enter(Mye()), n)
      t.body = this.parseMaybeAssign(), this.checkParams(t, !1, r, !1);
    else {
      const s = this.state.strict, a = this.state.labels;
      this.state.labels = [], this.prodParam.enter(this.prodParam.currentFlags() | 4), t.body = this.parseBlock(!0, !1, (o) => {
        const l = !this.isSimpleParamList(t.params);
        o && l && this.raise(rt.IllegalLanguageModeDirective, (t.kind === "method" || t.kind === "constructor") && t.key ? t.key.loc.end : t);
        const u = !s && this.state.strict;
        this.checkParams(t, !this.state.strict && !r && !i && !l, r, u), this.state.strict && t.id && this.checkIdentifier(t.id, 65, u);
      }), this.prodParam.exit(), this.state.labels = a;
    }
    this.expressionScope.exit();
  }
  isSimpleParameter(t) {
    return t.type === "Identifier";
  }
  isSimpleParamList(t) {
    for (let r = 0, i = t.length; r < i; r++)
      if (!this.isSimpleParameter(t[r]))
        return !1;
    return !0;
  }
  checkParams(t, r, i, n = !0) {
    const s = !r && /* @__PURE__ */ new Set(), a = {
      type: "FormalParameters"
    };
    for (const o of t.params)
      this.checkLVal(o, {
        in: a,
        binding: 5,
        checkClashes: s,
        strictModeChanged: n
      });
  }
  parseExprList(t, r, i, n) {
    const s = [];
    let a = !0;
    for (; !this.eat(t); ) {
      if (a)
        a = !1;
      else if (this.expect(12), this.match(t)) {
        n && this.addTrailingCommaExtraToNode(n), this.next();
        break;
      }
      s.push(this.parseExprListItem(r, i));
    }
    return s;
  }
  parseExprListItem(t, r, i) {
    let n;
    if (this.match(12))
      t || this.raise(rt.UnexpectedToken, this.state.curPosition(), {
        unexpected: ","
      }), n = null;
    else if (this.match(21)) {
      const s = this.state.startLoc;
      n = this.parseParenItem(this.parseSpread(r), s);
    } else if (this.match(17)) {
      this.expectPlugin("partialApplication"), i || this.raise(rt.UnexpectedArgumentPlaceholder, this.state.startLoc);
      const s = this.startNode();
      this.next(), n = this.finishNode(s, "ArgumentPlaceholder");
    } else
      n = this.parseMaybeAssignAllowIn(r, this.parseParenItem);
    return n;
  }
  parseIdentifier(t) {
    const r = this.startNode(), i = this.parseIdentifierName(t);
    return this.createIdentifier(r, i);
  }
  createIdentifier(t, r) {
    return t.name = r, t.loc.identifierName = r, this.finishNode(t, "Identifier");
  }
  parseIdentifierName(t) {
    let r;
    const {
      startLoc: i,
      type: n
    } = this.state;
    Oc(n) ? r = this.state.value : this.unexpected();
    const s = dDt(n);
    return t ? s && this.replaceToken(132) : this.checkReservedWord(r, i, s, !1), this.next(), r;
  }
  checkReservedWord(t, r, i, n) {
    if (t.length > 10 || !DDt(t))
      return;
    if (i && kDt(t)) {
      this.raise(rt.UnexpectedKeyword, r, {
        keyword: t
      });
      return;
    }
    if ((this.state.strict ? n ? _ye : Aye : wye)(t, this.inModule)) {
      this.raise(rt.UnexpectedReservedWord, r, {
        reservedWord: t
      });
      return;
    } else if (t === "yield") {
      if (this.prodParam.hasYield) {
        this.raise(rt.YieldBindingIdentifier, r);
        return;
      }
    } else if (t === "await") {
      if (this.prodParam.hasAwait) {
        this.raise(rt.AwaitBindingIdentifier, r);
        return;
      }
      if (this.scope.inStaticBlock) {
        this.raise(rt.AwaitBindingIdentifierInStaticBlock, r);
        return;
      }
      this.expressionScope.recordAsyncArrowParametersError(r);
    } else if (t === "arguments" && this.scope.inClassAndNotInNonArrowFunction) {
      this.raise(rt.ArgumentsInClass, r);
      return;
    }
  }
  isAwaitAllowed() {
    return !!(this.prodParam.hasAwait || this.options.allowAwaitOutsideFunction && !this.scope.inFunction);
  }
  parseAwait(t) {
    const r = this.startNodeAt(t);
    return this.expressionScope.recordParameterInitializerError(rt.AwaitExpressionFormalParameter, r), this.eat(55) && this.raise(rt.ObsoleteAwaitStar, r), !this.scope.inFunction && !this.options.allowAwaitOutsideFunction && (this.isAmbiguousAwait() ? this.ambiguousScriptDifferentAst = !0 : this.sawUnambiguousESM = !0), this.state.soloAwait || (r.argument = this.parseMaybeUnary(null, !0)), this.finishNode(r, "AwaitExpression");
  }
  isAmbiguousAwait() {
    if (this.hasPrecedingLineBreak())
      return !0;
    const {
      type: t
    } = this.state;
    return t === 53 || t === 10 || t === 0 || Gw(t) || t === 102 && !this.state.containsEsc || t === 137 || t === 56 || this.hasPlugin("v8intrinsic") && t === 54;
  }
  parseYield() {
    const t = this.startNode();
    this.expressionScope.recordParameterInitializerError(rt.YieldInParameter, t), this.next();
    let r = !1, i = null;
    if (!this.hasPrecedingLineBreak())
      switch (r = this.eat(55), this.state.type) {
        case 13:
        case 139:
        case 8:
        case 11:
        case 3:
        case 9:
        case 14:
        case 12:
          if (!r)
            break;
        default:
          i = this.parseMaybeAssign();
      }
    return t.delegate = r, t.argument = i, this.finishNode(t, "YieldExpression");
  }
  parseImportCall(t) {
    return this.next(), t.source = this.parseMaybeAssignAllowIn(), (this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions")) && (t.options = null), this.eat(12) && (this.expectImportAttributesPlugin(), this.match(11) || (t.options = this.parseMaybeAssignAllowIn(), this.eat(12))), this.expect(11), this.finishNode(t, "ImportExpression");
  }
  checkPipelineAtInfixOperator(t, r) {
    this.hasPlugin(["pipelineOperator", {
      proposal: "smart"
    }]) && t.type === "SequenceExpression" && this.raise(rt.PipelineHeadSequenceExpression, r);
  }
  parseSmartPipelineBodyInStyle(t, r) {
    if (this.isSimpleReference(t)) {
      const i = this.startNodeAt(r);
      return i.callee = t, this.finishNode(i, "PipelineBareFunction");
    } else {
      const i = this.startNodeAt(r);
      return this.checkSmartPipeTopicBodyEarlyErrors(r), i.expression = t, this.finishNode(i, "PipelineTopicExpression");
    }
  }
  isSimpleReference(t) {
    switch (t.type) {
      case "MemberExpression":
        return !t.computed && this.isSimpleReference(t.object);
      case "Identifier":
        return !0;
      default:
        return !1;
    }
  }
  checkSmartPipeTopicBodyEarlyErrors(t) {
    if (this.match(19))
      throw this.raise(rt.PipelineBodyNoArrow, this.state.startLoc);
    this.topicReferenceWasUsedInCurrentContext() || this.raise(rt.PipelineTopicUnused, t);
  }
  withTopicBindingContext(t) {
    const r = this.state.topicContext;
    this.state.topicContext = {
      maxNumOfResolvableTopics: 1,
      maxTopicIndex: null
    };
    try {
      return t();
    } finally {
      this.state.topicContext = r;
    }
  }
  withSmartMixTopicForbiddingContext(t) {
    if (this.hasPlugin(["pipelineOperator", {
      proposal: "smart"
    }])) {
      const r = this.state.topicContext;
      this.state.topicContext = {
        maxNumOfResolvableTopics: 0,
        maxTopicIndex: null
      };
      try {
        return t();
      } finally {
        this.state.topicContext = r;
      }
    } else
      return t();
  }
  withSoloAwaitPermittingContext(t) {
    const r = this.state.soloAwait;
    this.state.soloAwait = !0;
    try {
      return t();
    } finally {
      this.state.soloAwait = r;
    }
  }
  allowInAnd(t) {
    const r = this.prodParam.currentFlags();
    if (8 & ~r) {
      this.prodParam.enter(r | 8);
      try {
        return t();
      } finally {
        this.prodParam.exit();
      }
    }
    return t();
  }
  disallowInAnd(t) {
    const r = this.prodParam.currentFlags();
    if (8 & r) {
      this.prodParam.enter(r & -9);
      try {
        return t();
      } finally {
        this.prodParam.exit();
      }
    }
    return t();
  }
  registerTopicReference() {
    this.state.topicContext.maxTopicIndex = 0;
  }
  topicReferenceIsAllowedInCurrentContext() {
    return this.state.topicContext.maxNumOfResolvableTopics >= 1;
  }
  topicReferenceWasUsedInCurrentContext() {
    return this.state.topicContext.maxTopicIndex != null && this.state.topicContext.maxTopicIndex >= 0;
  }
  parseFSharpPipelineBody(t) {
    const r = this.state.startLoc;
    this.state.potentialArrowAt = this.state.start;
    const i = this.state.inFSharpPipelineDirectBody;
    this.state.inFSharpPipelineDirectBody = !0;
    const n = this.parseExprOp(this.parseMaybeUnaryOrPrivate(), r, t);
    return this.state.inFSharpPipelineDirectBody = i, n;
  }
  parseModuleExpression() {
    this.expectPlugin("moduleBlocks");
    const t = this.startNode();
    this.next(), this.match(5) || this.unexpected(null, 5);
    const r = this.startNodeAt(this.state.endLoc);
    this.next();
    const i = this.initializeScopes(!0);
    this.enterInitialScopes();
    try {
      t.body = this.parseProgram(r, 8, "module");
    } finally {
      i();
    }
    return this.finishNode(t, "ModuleExpression");
  }
  parsePropertyNamePrefixOperator(t) {
  }
};
const E3 = {
  kind: 1
}, ILt = {
  kind: 2
}, kLt = /[\uD800-\uDFFF]/u, P3 = /in(?:stanceof)?/y;
function OLt(e, t) {
  for (let r = 0; r < e.length; r++) {
    const i = e[r], {
      type: n
    } = i;
    if (typeof n == "number") {
      {
        if (n === 138) {
          const {
            loc: s,
            start: a,
            value: o,
            end: l
          } = i, u = a + 1, c = ua(s.start, 1);
          e.splice(r, 1, new hh({
            type: Hp(27),
            value: "#",
            start: a,
            end: u,
            startLoc: s.start,
            endLoc: c
          }), new hh({
            type: Hp(132),
            value: o,
            start: u,
            end: l,
            startLoc: c,
            endLoc: s.end
          })), r++;
          continue;
        }
        if (Gw(n)) {
          const {
            loc: s,
            start: a,
            value: o,
            end: l
          } = i, u = a + 1, c = ua(s.start, 1);
          let f;
          t.charCodeAt(a) === 96 ? f = new hh({
            type: Hp(22),
            value: "`",
            start: a,
            end: u,
            startLoc: s.start,
            endLoc: c
          }) : f = new hh({
            type: Hp(8),
            value: "}",
            start: a,
            end: u,
            startLoc: s.start,
            endLoc: c
          });
          let h, m, g, y;
          n === 24 ? (m = l - 1, g = ua(s.end, -1), h = o === null ? null : o.slice(1, -1), y = new hh({
            type: Hp(22),
            value: "`",
            start: m,
            end: l,
            startLoc: g,
            endLoc: s.end
          })) : (m = l - 2, g = ua(s.end, -2), h = o === null ? null : o.slice(1, -2), y = new hh({
            type: Hp(23),
            value: "${",
            start: m,
            end: l,
            startLoc: g,
            endLoc: s.end
          })), e.splice(r, 1, f, new hh({
            type: Hp(20),
            value: h,
            start: u,
            end: m,
            startLoc: c,
            endLoc: g
          }), y), r += 2;
          continue;
        }
      }
      i.type = Hp(n);
    }
  }
  return e;
}
let NLt = class extends _Lt {
  parseTopLevel(t, r) {
    return t.program = this.parseProgram(r), t.comments = this.comments, this.options.tokens && (t.tokens = OLt(this.tokens, this.input)), this.finishNode(t, "File");
  }
  parseProgram(t, r = 139, i = this.options.sourceType) {
    if (t.sourceType = i, t.interpreter = this.parseInterpreterDirective(), this.parseBlockBody(t, !0, !0, r), this.inModule && !this.options.allowUndeclaredExports && this.scope.undefinedExports.size > 0)
      for (const [s, a] of Array.from(this.scope.undefinedExports))
        this.raise(rt.ModuleExportUndefined, a, {
          localName: s
        });
    let n;
    return r === 139 ? n = this.finishNode(t, "Program") : n = this.finishNodeAt(t, "Program", ua(this.state.startLoc, -1)), n;
  }
  stmtToDirective(t) {
    const r = t;
    r.type = "Directive", r.value = r.expression, delete r.expression;
    const i = r.value, n = i.value, s = this.input.slice(i.start, i.end), a = i.value = s.slice(1, -1);
    return this.addExtra(i, "raw", s), this.addExtra(i, "rawValue", a), this.addExtra(i, "expressionValue", n), i.type = "DirectiveLiteral", r;
  }
  parseInterpreterDirective() {
    if (!this.match(28))
      return null;
    const t = this.startNode();
    return t.value = this.state.value, this.next(), this.finishNode(t, "InterpreterDirective");
  }
  isLet() {
    return this.isContextual(100) ? this.hasFollowingBindingAtom() : !1;
  }
  chStartsBindingIdentifier(t, r) {
    if (af(t)) {
      if (P3.lastIndex = r, P3.test(this.input)) {
        const i = this.codePointAtPos(P3.lastIndex);
        if (!Oy(i) && i !== 92)
          return !1;
      }
      return !0;
    } else
      return t === 92;
  }
  chStartsBindingPattern(t) {
    return t === 91 || t === 123;
  }
  hasFollowingBindingAtom() {
    const t = this.nextTokenStart(), r = this.codePointAtPos(t);
    return this.chStartsBindingPattern(r) || this.chStartsBindingIdentifier(r, t);
  }
  hasInLineFollowingBindingIdentifier() {
    const t = this.nextTokenInLineStart(), r = this.codePointAtPos(t);
    return this.chStartsBindingIdentifier(r, t);
  }
  startsUsingForOf() {
    const {
      type: t,
      containsEsc: r
    } = this.lookahead();
    if (t === 102 && !r)
      return !1;
    if (xi(t) && !this.hasFollowingLineBreak())
      return this.expectPlugin("explicitResourceManagement"), !0;
  }
  startsAwaitUsing() {
    let t = this.nextTokenInLineStart();
    if (this.isUnparsedContextual(t, "using")) {
      t = this.nextTokenInLineStartSince(t + 5);
      const r = this.codePointAtPos(t);
      if (this.chStartsBindingIdentifier(r, t))
        return this.expectPlugin("explicitResourceManagement"), !0;
    }
    return !1;
  }
  parseModuleItem() {
    return this.parseStatementLike(15);
  }
  parseStatementListItem() {
    return this.parseStatementLike(6 | (!this.options.annexB || this.state.strict ? 0 : 8));
  }
  parseStatementOrSloppyAnnexBFunctionDeclaration(t = !1) {
    let r = 0;
    return this.options.annexB && !this.state.strict && (r |= 4, t && (r |= 8)), this.parseStatementLike(r);
  }
  parseStatement() {
    return this.parseStatementLike(0);
  }
  parseStatementLike(t) {
    let r = null;
    return this.match(26) && (r = this.parseDecorators(!0)), this.parseStatementContent(t, r);
  }
  parseStatementContent(t, r) {
    const i = this.state.type, n = this.startNode(), s = !!(t & 2), a = !!(t & 4), o = t & 1;
    switch (i) {
      case 60:
        return this.parseBreakContinueStatement(n, !0);
      case 63:
        return this.parseBreakContinueStatement(n, !1);
      case 64:
        return this.parseDebuggerStatement(n);
      case 90:
        return this.parseDoWhileStatement(n);
      case 91:
        return this.parseForStatement(n);
      case 68:
        if (this.lookaheadCharCode() === 46)
          break;
        return a || this.raise(this.state.strict ? rt.StrictFunction : this.options.annexB ? rt.SloppyFunctionAnnexB : rt.SloppyFunction, this.state.startLoc), this.parseFunctionStatement(n, !1, !s && a);
      case 80:
        return s || this.unexpected(), this.parseClass(this.maybeTakeDecorators(r, n), !0);
      case 69:
        return this.parseIfStatement(n);
      case 70:
        return this.parseReturnStatement(n);
      case 71:
        return this.parseSwitchStatement(n);
      case 72:
        return this.parseThrowStatement(n);
      case 73:
        return this.parseTryStatement(n);
      case 96:
        if (!this.state.containsEsc && this.startsAwaitUsing())
          return this.isAwaitAllowed() ? s || this.raise(rt.UnexpectedLexicalDeclaration, n) : this.raise(rt.AwaitUsingNotInAsyncContext, n), this.next(), this.parseVarStatement(n, "await using");
        break;
      case 107:
        if (this.state.containsEsc || !this.hasInLineFollowingBindingIdentifier())
          break;
        return this.expectPlugin("explicitResourceManagement"), !this.scope.inModule && this.scope.inTopLevel ? this.raise(rt.UnexpectedUsingDeclaration, this.state.startLoc) : s || this.raise(rt.UnexpectedLexicalDeclaration, this.state.startLoc), this.parseVarStatement(n, "using");
      case 100: {
        if (this.state.containsEsc)
          break;
        const c = this.nextTokenStart(), f = this.codePointAtPos(c);
        if (f !== 91 && (!s && this.hasFollowingLineBreak() || !this.chStartsBindingIdentifier(f, c) && f !== 123))
          break;
      }
      case 75:
        s || this.raise(rt.UnexpectedLexicalDeclaration, this.state.startLoc);
      case 74: {
        const c = this.state.value;
        return this.parseVarStatement(n, c);
      }
      case 92:
        return this.parseWhileStatement(n);
      case 76:
        return this.parseWithStatement(n);
      case 5:
        return this.parseBlock();
      case 13:
        return this.parseEmptyStatement(n);
      case 83: {
        const c = this.lookaheadCharCode();
        if (c === 40 || c === 46)
          break;
      }
      case 82: {
        !this.options.allowImportExportEverywhere && !o && this.raise(rt.UnexpectedImportExport, this.state.startLoc), this.next();
        let c;
        return i === 83 ? (c = this.parseImport(n), c.type === "ImportDeclaration" && (!c.importKind || c.importKind === "value") && (this.sawUnambiguousESM = !0)) : (c = this.parseExport(n, r), (c.type === "ExportNamedDeclaration" && (!c.exportKind || c.exportKind === "value") || c.type === "ExportAllDeclaration" && (!c.exportKind || c.exportKind === "value") || c.type === "ExportDefaultDeclaration") && (this.sawUnambiguousESM = !0)), this.assertModuleNodeAllowed(c), c;
      }
      default:
        if (this.isAsyncFunction())
          return s || this.raise(rt.AsyncFunctionInSingleStatementContext, this.state.startLoc), this.next(), this.parseFunctionStatement(n, !0, !s && a);
    }
    const l = this.state.value, u = this.parseExpression();
    return xi(i) && u.type === "Identifier" && this.eat(14) ? this.parseLabeledStatement(n, l, u, t) : this.parseExpressionStatement(n, u, r);
  }
  assertModuleNodeAllowed(t) {
    !this.options.allowImportExportEverywhere && !this.inModule && this.raise(rt.ImportOutsideModule, t);
  }
  decoratorsEnabledBeforeExport() {
    return this.hasPlugin("decorators-legacy") ? !0 : this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") !== !1;
  }
  maybeTakeDecorators(t, r, i) {
    return t && (r.decorators && r.decorators.length > 0 ? (typeof this.getPluginOption("decorators", "decoratorsBeforeExport") != "boolean" && this.raise(rt.DecoratorsBeforeAfterExport, r.decorators[0]), r.decorators.unshift(...t)) : r.decorators = t, this.resetStartLocationFromNode(r, t[0]), i && this.resetStartLocationFromNode(i, r)), r;
  }
  canHaveLeadingDecorator() {
    return this.match(80);
  }
  parseDecorators(t) {
    const r = [];
    do
      r.push(this.parseDecorator());
    while (this.match(26));
    if (this.match(82))
      t || this.unexpected(), this.decoratorsEnabledBeforeExport() || this.raise(rt.DecoratorExportClass, this.state.startLoc);
    else if (!this.canHaveLeadingDecorator())
      throw this.raise(rt.UnexpectedLeadingDecorator, this.state.startLoc);
    return r;
  }
  parseDecorator() {
    this.expectOnePlugin(["decorators", "decorators-legacy"]);
    const t = this.startNode();
    if (this.next(), this.hasPlugin("decorators")) {
      const r = this.state.startLoc;
      let i;
      if (this.match(10)) {
        const n = this.state.startLoc;
        this.next(), i = this.parseExpression(), this.expect(11), i = this.wrapParenthesis(n, i);
        const s = this.state.startLoc;
        t.expression = this.parseMaybeDecoratorArguments(i), this.getPluginOption("decorators", "allowCallParenthesized") === !1 && t.expression !== i && this.raise(rt.DecoratorArgumentsOutsideParentheses, s);
      } else {
        for (i = this.parseIdentifier(!1); this.eat(16); ) {
          const n = this.startNodeAt(r);
          n.object = i, this.match(138) ? (this.classScope.usePrivateName(this.state.value, this.state.startLoc), n.property = this.parsePrivateName()) : n.property = this.parseIdentifier(!0), n.computed = !1, i = this.finishNode(n, "MemberExpression");
        }
        t.expression = this.parseMaybeDecoratorArguments(i);
      }
    } else
      t.expression = this.parseExprSubscripts();
    return this.finishNode(t, "Decorator");
  }
  parseMaybeDecoratorArguments(t) {
    if (this.eat(10)) {
      const r = this.startNodeAtNode(t);
      return r.callee = t, r.arguments = this.parseCallExpressionArguments(11, !1), this.toReferencedList(r.arguments), this.finishNode(r, "CallExpression");
    }
    return t;
  }
  parseBreakContinueStatement(t, r) {
    return this.next(), this.isLineTerminator() ? t.label = null : (t.label = this.parseIdentifier(), this.semicolon()), this.verifyBreakContinue(t, r), this.finishNode(t, r ? "BreakStatement" : "ContinueStatement");
  }
  verifyBreakContinue(t, r) {
    let i;
    for (i = 0; i < this.state.labels.length; ++i) {
      const n = this.state.labels[i];
      if ((t.label == null || n.name === t.label.name) && (n.kind != null && (r || n.kind === 1) || t.label && r))
        break;
    }
    if (i === this.state.labels.length) {
      const n = r ? "BreakStatement" : "ContinueStatement";
      this.raise(rt.IllegalBreakContinue, t, {
        type: n
      });
    }
  }
  parseDebuggerStatement(t) {
    return this.next(), this.semicolon(), this.finishNode(t, "DebuggerStatement");
  }
  parseHeaderExpression() {
    this.expect(10);
    const t = this.parseExpression();
    return this.expect(11), t;
  }
  parseDoWhileStatement(t) {
    return this.next(), this.state.labels.push(E3), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.state.labels.pop(), this.expect(92), t.test = this.parseHeaderExpression(), this.eat(13), this.finishNode(t, "DoWhileStatement");
  }
  parseForStatement(t) {
    this.next(), this.state.labels.push(E3);
    let r = null;
    if (this.isAwaitAllowed() && this.eatContextual(96) && (r = this.state.lastTokStartLoc), this.scope.enter(0), this.expect(10), this.match(13))
      return r !== null && this.unexpected(r), this.parseFor(t, null);
    const i = this.isContextual(100);
    {
      const l = this.isContextual(96) && this.startsAwaitUsing(), u = l || this.isContextual(107) && this.startsUsingForOf(), c = i && this.hasFollowingBindingAtom() || u;
      if (this.match(74) || this.match(75) || c) {
        const f = this.startNode();
        let h;
        l ? (h = "await using", this.isAwaitAllowed() || this.raise(rt.AwaitUsingNotInAsyncContext, this.state.startLoc), this.next()) : h = this.state.value, this.next(), this.parseVar(f, !0, h);
        const m = this.finishNode(f, "VariableDeclaration"), g = this.match(58);
        return g && u && this.raise(rt.ForInUsing, m), (g || this.isContextual(102)) && m.declarations.length === 1 ? this.parseForIn(t, m, r) : (r !== null && this.unexpected(r), this.parseFor(t, m));
      }
    }
    const n = this.isContextual(95), s = new MP(), a = this.parseExpression(!0, s), o = this.isContextual(102);
    if (o && (i && this.raise(rt.ForOfLet, a), r === null && n && a.type === "Identifier" && this.raise(rt.ForOfAsync, a)), o || this.match(58)) {
      this.checkDestructuringPrivate(s), this.toAssignable(a, !0);
      const l = o ? "ForOfStatement" : "ForInStatement";
      return this.checkLVal(a, {
        in: {
          type: l
        }
      }), this.parseForIn(t, a, r);
    } else
      this.checkExpressionErrors(s, !0);
    return r !== null && this.unexpected(r), this.parseFor(t, a);
  }
  parseFunctionStatement(t, r, i) {
    return this.next(), this.parseFunction(t, 1 | (i ? 2 : 0) | (r ? 8 : 0));
  }
  parseIfStatement(t) {
    return this.next(), t.test = this.parseHeaderExpression(), t.consequent = this.parseStatementOrSloppyAnnexBFunctionDeclaration(), t.alternate = this.eat(66) ? this.parseStatementOrSloppyAnnexBFunctionDeclaration() : null, this.finishNode(t, "IfStatement");
  }
  parseReturnStatement(t) {
    return !this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction && this.raise(rt.IllegalReturn, this.state.startLoc), this.next(), this.isLineTerminator() ? t.argument = null : (t.argument = this.parseExpression(), this.semicolon()), this.finishNode(t, "ReturnStatement");
  }
  parseSwitchStatement(t) {
    this.next(), t.discriminant = this.parseHeaderExpression();
    const r = t.cases = [];
    this.expect(5), this.state.labels.push(ILt), this.scope.enter(0);
    let i;
    for (let n; !this.match(8); )
      if (this.match(61) || this.match(65)) {
        const s = this.match(61);
        i && this.finishNode(i, "SwitchCase"), r.push(i = this.startNode()), i.consequent = [], this.next(), s ? i.test = this.parseExpression() : (n && this.raise(rt.MultipleDefaultsInSwitch, this.state.lastTokStartLoc), n = !0, i.test = null), this.expect(14);
      } else
        i ? i.consequent.push(this.parseStatementListItem()) : this.unexpected();
    return this.scope.exit(), i && this.finishNode(i, "SwitchCase"), this.next(), this.state.labels.pop(), this.finishNode(t, "SwitchStatement");
  }
  parseThrowStatement(t) {
    return this.next(), this.hasPrecedingLineBreak() && this.raise(rt.NewlineAfterThrow, this.state.lastTokEndLoc), t.argument = this.parseExpression(), this.semicolon(), this.finishNode(t, "ThrowStatement");
  }
  parseCatchClauseParam() {
    const t = this.parseBindingAtom();
    return this.scope.enter(this.options.annexB && t.type === "Identifier" ? 8 : 0), this.checkLVal(t, {
      in: {
        type: "CatchClause"
      },
      binding: 9
    }), t;
  }
  parseTryStatement(t) {
    if (this.next(), t.block = this.parseBlock(), t.handler = null, this.match(62)) {
      const r = this.startNode();
      this.next(), this.match(10) ? (this.expect(10), r.param = this.parseCatchClauseParam(), this.expect(11)) : (r.param = null, this.scope.enter(0)), r.body = this.withSmartMixTopicForbiddingContext(() => this.parseBlock(!1, !1)), this.scope.exit(), t.handler = this.finishNode(r, "CatchClause");
    }
    return t.finalizer = this.eat(67) ? this.parseBlock() : null, !t.handler && !t.finalizer && this.raise(rt.NoCatchOrFinally, t), this.finishNode(t, "TryStatement");
  }
  parseVarStatement(t, r, i = !1) {
    return this.next(), this.parseVar(t, !1, r, i), this.semicolon(), this.finishNode(t, "VariableDeclaration");
  }
  parseWhileStatement(t) {
    return this.next(), t.test = this.parseHeaderExpression(), this.state.labels.push(E3), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.state.labels.pop(), this.finishNode(t, "WhileStatement");
  }
  parseWithStatement(t) {
    return this.state.strict && this.raise(rt.StrictWith, this.state.startLoc), this.next(), t.object = this.parseHeaderExpression(), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.finishNode(t, "WithStatement");
  }
  parseEmptyStatement(t) {
    return this.next(), this.finishNode(t, "EmptyStatement");
  }
  parseLabeledStatement(t, r, i, n) {
    for (const a of this.state.labels)
      a.name === r && this.raise(rt.LabelRedeclaration, i, {
        labelName: r
      });
    const s = gDt(this.state.type) ? 1 : this.match(71) ? 2 : null;
    for (let a = this.state.labels.length - 1; a >= 0; a--) {
      const o = this.state.labels[a];
      if (o.statementStart === t.start)
        o.statementStart = this.state.start, o.kind = s;
      else
        break;
    }
    return this.state.labels.push({
      name: r,
      kind: s,
      statementStart: this.state.start
    }), t.body = n & 8 ? this.parseStatementOrSloppyAnnexBFunctionDeclaration(!0) : this.parseStatement(), this.state.labels.pop(), t.label = i, this.finishNode(t, "LabeledStatement");
  }
  parseExpressionStatement(t, r, i) {
    return t.expression = r, this.semicolon(), this.finishNode(t, "ExpressionStatement");
  }
  parseBlock(t = !1, r = !0, i) {
    const n = this.startNode();
    return t && this.state.strictErrors.clear(), this.expect(5), r && this.scope.enter(0), this.parseBlockBody(n, t, !1, 8, i), r && this.scope.exit(), this.finishNode(n, "BlockStatement");
  }
  isValidDirective(t) {
    return t.type === "ExpressionStatement" && t.expression.type === "StringLiteral" && !t.expression.extra.parenthesized;
  }
  parseBlockBody(t, r, i, n, s) {
    const a = t.body = [], o = t.directives = [];
    this.parseBlockOrModuleBlockBody(a, r ? o : void 0, i, n, s);
  }
  parseBlockOrModuleBlockBody(t, r, i, n, s) {
    const a = this.state.strict;
    let o = !1, l = !1;
    for (; !this.match(n); ) {
      const u = i ? this.parseModuleItem() : this.parseStatementListItem();
      if (r && !l) {
        if (this.isValidDirective(u)) {
          const c = this.stmtToDirective(u);
          r.push(c), !o && c.value.value === "use strict" && (o = !0, this.setStrict(!0));
          continue;
        }
        l = !0, this.state.strictErrors.clear();
      }
      t.push(u);
    }
    s == null || s.call(this, o), a || this.setStrict(!1), this.next();
  }
  parseFor(t, r) {
    return t.init = r, this.semicolon(!1), t.test = this.match(13) ? null : this.parseExpression(), this.semicolon(!1), t.update = this.match(11) ? null : this.parseExpression(), this.expect(11), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.scope.exit(), this.state.labels.pop(), this.finishNode(t, "ForStatement");
  }
  parseForIn(t, r, i) {
    const n = this.match(58);
    return this.next(), n ? i !== null && this.unexpected(i) : t.await = i !== null, r.type === "VariableDeclaration" && r.declarations[0].init != null && (!n || !this.options.annexB || this.state.strict || r.kind !== "var" || r.declarations[0].id.type !== "Identifier") && this.raise(rt.ForInOfLoopInitializer, r, {
      type: n ? "ForInStatement" : "ForOfStatement"
    }), r.type === "AssignmentPattern" && this.raise(rt.InvalidLhs, r, {
      ancestor: {
        type: "ForStatement"
      }
    }), t.left = r, t.right = n ? this.parseExpression() : this.parseMaybeAssignAllowIn(), this.expect(11), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.scope.exit(), this.state.labels.pop(), this.finishNode(t, n ? "ForInStatement" : "ForOfStatement");
  }
  parseVar(t, r, i, n = !1) {
    const s = t.declarations = [];
    for (t.kind = i; ; ) {
      const a = this.startNode();
      if (this.parseVarId(a, i), a.init = this.eat(29) ? r ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn() : null, a.init === null && !n && (a.id.type !== "Identifier" && !(r && (this.match(58) || this.isContextual(102))) ? this.raise(rt.DeclarationMissingInitializer, this.state.lastTokEndLoc, {
        kind: "destructuring"
      }) : (i === "const" || i === "using" || i === "await using") && !(this.match(58) || this.isContextual(102)) && this.raise(rt.DeclarationMissingInitializer, this.state.lastTokEndLoc, {
        kind: i
      })), s.push(this.finishNode(a, "VariableDeclarator")), !this.eat(12))
        break;
    }
    return t;
  }
  parseVarId(t, r) {
    const i = this.parseBindingAtom();
    this.checkLVal(i, {
      in: {
        type: "VariableDeclarator"
      },
      binding: r === "var" ? 5 : 8201
    }), t.id = i;
  }
  parseAsyncFunctionExpression(t) {
    return this.parseFunction(t, 8);
  }
  parseFunction(t, r = 0) {
    const i = r & 2, n = !!(r & 1), s = n && !(r & 4), a = !!(r & 8);
    this.initFunction(t, a), this.match(55) && (i && this.raise(rt.GeneratorInSingleStatementContext, this.state.startLoc), this.next(), t.generator = !0), n && (t.id = this.parseFunctionId(s));
    const o = this.state.maybeInArrowParameters;
    return this.state.maybeInArrowParameters = !1, this.scope.enter(2), this.prodParam.enter(LP(a, t.generator)), n || (t.id = this.parseFunctionId()), this.parseFunctionParams(t, !1), this.withSmartMixTopicForbiddingContext(() => {
      this.parseFunctionBodyAndFinish(t, n ? "FunctionDeclaration" : "FunctionExpression");
    }), this.prodParam.exit(), this.scope.exit(), n && !i && this.registerFunctionStatementId(t), this.state.maybeInArrowParameters = o, t;
  }
  parseFunctionId(t) {
    return t || xi(this.state.type) ? this.parseIdentifier() : null;
  }
  parseFunctionParams(t, r) {
    this.expect(10), this.expressionScope.enter(YDt()), t.params = this.parseBindingList(11, 41, 2 | (r ? 4 : 0)), this.expressionScope.exit();
  }
  registerFunctionStatementId(t) {
    t.id && this.scope.declareName(t.id.name, !this.options.annexB || this.state.strict || t.generator || t.async ? this.scope.treatFunctionsAsVar ? 5 : 8201 : 17, t.id.loc.start);
  }
  parseClass(t, r, i) {
    this.next();
    const n = this.state.strict;
    return this.state.strict = !0, this.parseClassId(t, r, i), this.parseClassSuper(t), t.body = this.parseClassBody(!!t.superClass, n), this.finishNode(t, r ? "ClassDeclaration" : "ClassExpression");
  }
  isClassProperty() {
    return this.match(29) || this.match(13) || this.match(8);
  }
  isClassMethod() {
    return this.match(10);
  }
  isNonstaticConstructor(t) {
    return !t.computed && !t.static && (t.key.name === "constructor" || t.key.value === "constructor");
  }
  parseClassBody(t, r) {
    this.classScope.enter();
    const i = {
      hadConstructor: !1,
      hadSuperClass: t
    };
    let n = [];
    const s = this.startNode();
    if (s.body = [], this.expect(5), this.withSmartMixTopicForbiddingContext(() => {
      for (; !this.match(8); ) {
        if (this.eat(13)) {
          if (n.length > 0)
            throw this.raise(rt.DecoratorSemicolon, this.state.lastTokEndLoc);
          continue;
        }
        if (this.match(26)) {
          n.push(this.parseDecorator());
          continue;
        }
        const a = this.startNode();
        n.length && (a.decorators = n, this.resetStartLocationFromNode(a, n[0]), n = []), this.parseClassMember(s, a, i), a.kind === "constructor" && a.decorators && a.decorators.length > 0 && this.raise(rt.DecoratorConstructor, a);
      }
    }), this.state.strict = r, this.next(), n.length)
      throw this.raise(rt.TrailingDecorator, this.state.startLoc);
    return this.classScope.exit(), this.finishNode(s, "ClassBody");
  }
  parseClassMemberFromModifier(t, r) {
    const i = this.parseIdentifier(!0);
    if (this.isClassMethod()) {
      const n = r;
      return n.kind = "method", n.computed = !1, n.key = i, n.static = !1, this.pushClassMethod(t, n, !1, !1, !1, !1), !0;
    } else if (this.isClassProperty()) {
      const n = r;
      return n.computed = !1, n.key = i, n.static = !1, t.body.push(this.parseClassProperty(n)), !0;
    }
    return this.resetPreviousNodeTrailingComments(i), !1;
  }
  parseClassMember(t, r, i) {
    const n = this.isContextual(106);
    if (n) {
      if (this.parseClassMemberFromModifier(t, r))
        return;
      if (this.eat(5)) {
        this.parseClassStaticBlock(t, r);
        return;
      }
    }
    this.parseClassMemberWithIsStatic(t, r, i, n);
  }
  parseClassMemberWithIsStatic(t, r, i, n) {
    const s = r, a = r, o = r, l = r, u = r, c = s, f = s;
    if (r.static = n, this.parsePropertyNamePrefixOperator(r), this.eat(55)) {
      c.kind = "method";
      const v = this.match(138);
      if (this.parseClassElementName(c), v) {
        this.pushClassPrivateMethod(t, a, !0, !1);
        return;
      }
      this.isNonstaticConstructor(s) && this.raise(rt.ConstructorIsGenerator, s.key), this.pushClassMethod(t, s, !0, !1, !1, !1);
      return;
    }
    const h = xi(this.state.type) && !this.state.containsEsc, m = this.match(138), g = this.parseClassElementName(r), y = this.state.startLoc;
    if (this.parsePostMemberNameModifiers(f), this.isClassMethod()) {
      if (c.kind = "method", m) {
        this.pushClassPrivateMethod(t, a, !1, !1);
        return;
      }
      const v = this.isNonstaticConstructor(s);
      let T = !1;
      v && (s.kind = "constructor", i.hadConstructor && !this.hasPlugin("typescript") && this.raise(rt.DuplicateConstructor, g), v && this.hasPlugin("typescript") && r.override && this.raise(rt.OverrideOnConstructor, g), i.hadConstructor = !0, T = i.hadSuperClass), this.pushClassMethod(t, s, !1, !1, v, T);
    } else if (this.isClassProperty())
      m ? this.pushClassPrivateProperty(t, l) : this.pushClassProperty(t, o);
    else if (h && g.name === "async" && !this.isLineTerminator()) {
      this.resetPreviousNodeTrailingComments(g);
      const v = this.eat(55);
      f.optional && this.unexpected(y), c.kind = "method";
      const T = this.match(138);
      this.parseClassElementName(c), this.parsePostMemberNameModifiers(f), T ? this.pushClassPrivateMethod(t, a, v, !0) : (this.isNonstaticConstructor(s) && this.raise(rt.ConstructorIsAsync, s.key), this.pushClassMethod(t, s, v, !0, !1, !1));
    } else if (h && (g.name === "get" || g.name === "set") && !(this.match(55) && this.isLineTerminator())) {
      this.resetPreviousNodeTrailingComments(g), c.kind = g.name;
      const v = this.match(138);
      this.parseClassElementName(s), v ? this.pushClassPrivateMethod(t, a, !1, !1) : (this.isNonstaticConstructor(s) && this.raise(rt.ConstructorIsAccessor, s.key), this.pushClassMethod(t, s, !1, !1, !1, !1)), this.checkGetterSetterParams(s);
    } else if (h && g.name === "accessor" && !this.isLineTerminator()) {
      this.expectPlugin("decoratorAutoAccessors"), this.resetPreviousNodeTrailingComments(g);
      const v = this.match(138);
      this.parseClassElementName(o), this.pushClassAccessorProperty(t, u, v);
    } else
      this.isLineTerminator() ? m ? this.pushClassPrivateProperty(t, l) : this.pushClassProperty(t, o) : this.unexpected();
  }
  parseClassElementName(t) {
    const {
      type: r,
      value: i
    } = this.state;
    if ((r === 132 || r === 133) && t.static && i === "prototype" && this.raise(rt.StaticPrototype, this.state.startLoc), r === 138) {
      i === "constructor" && this.raise(rt.ConstructorClassPrivateField, this.state.startLoc);
      const n = this.parsePrivateName();
      return t.key = n, n;
    }
    return this.parsePropertyName(t);
  }
  parseClassStaticBlock(t, r) {
    var i;
    this.scope.enter(208);
    const n = this.state.labels;
    this.state.labels = [], this.prodParam.enter(0);
    const s = r.body = [];
    this.parseBlockOrModuleBlockBody(s, void 0, !1, 8), this.prodParam.exit(), this.scope.exit(), this.state.labels = n, t.body.push(this.finishNode(r, "StaticBlock")), (i = r.decorators) != null && i.length && this.raise(rt.DecoratorStaticBlock, r);
  }
  pushClassProperty(t, r) {
    !r.computed && (r.key.name === "constructor" || r.key.value === "constructor") && this.raise(rt.ConstructorClassField, r.key), t.body.push(this.parseClassProperty(r));
  }
  pushClassPrivateProperty(t, r) {
    const i = this.parseClassPrivateProperty(r);
    t.body.push(i), this.classScope.declarePrivateName(this.getPrivateNameSV(i.key), 0, i.key.loc.start);
  }
  pushClassAccessorProperty(t, r, i) {
    if (!i && !r.computed) {
      const s = r.key;
      (s.name === "constructor" || s.value === "constructor") && this.raise(rt.ConstructorClassField, s);
    }
    const n = this.parseClassAccessorProperty(r);
    t.body.push(n), i && this.classScope.declarePrivateName(this.getPrivateNameSV(n.key), 0, n.key.loc.start);
  }
  pushClassMethod(t, r, i, n, s, a) {
    t.body.push(this.parseMethod(r, i, n, s, a, "ClassMethod", !0));
  }
  pushClassPrivateMethod(t, r, i, n) {
    const s = this.parseMethod(r, i, n, !1, !1, "ClassPrivateMethod", !0);
    t.body.push(s);
    const a = s.kind === "get" ? s.static ? 6 : 2 : s.kind === "set" ? s.static ? 5 : 1 : 0;
    this.declareClassPrivateMethodInScope(s, a);
  }
  declareClassPrivateMethodInScope(t, r) {
    this.classScope.declarePrivateName(this.getPrivateNameSV(t.key), r, t.key.loc.start);
  }
  parsePostMemberNameModifiers(t) {
  }
  parseClassPrivateProperty(t) {
    return this.parseInitializer(t), this.semicolon(), this.finishNode(t, "ClassPrivateProperty");
  }
  parseClassProperty(t) {
    return this.parseInitializer(t), this.semicolon(), this.finishNode(t, "ClassProperty");
  }
  parseClassAccessorProperty(t) {
    return this.parseInitializer(t), this.semicolon(), this.finishNode(t, "ClassAccessorProperty");
  }
  parseInitializer(t) {
    this.scope.enter(80), this.expressionScope.enter(Mye()), this.prodParam.enter(0), t.value = this.eat(29) ? this.parseMaybeAssignAllowIn() : null, this.expressionScope.exit(), this.prodParam.exit(), this.scope.exit();
  }
  parseClassId(t, r, i, n = 8331) {
    if (xi(this.state.type))
      t.id = this.parseIdentifier(), r && this.declareNameFromIdentifier(t.id, n);
    else if (i || !r)
      t.id = null;
    else
      throw this.raise(rt.MissingClassName, this.state.startLoc);
  }
  parseClassSuper(t) {
    t.superClass = this.eat(81) ? this.parseExprSubscripts() : null;
  }
  parseExport(t, r) {
    const i = this.parseMaybeImportPhase(t, !0), n = this.maybeParseExportDefaultSpecifier(t, i), s = !n || this.eat(12), a = s && this.eatExportStar(t), o = a && this.maybeParseExportNamespaceSpecifier(t), l = s && (!o || this.eat(12)), u = n || a;
    if (a && !o) {
      if (n && this.unexpected(), r)
        throw this.raise(rt.UnsupportedDecoratorExport, t);
      return this.parseExportFrom(t, !0), this.finishNode(t, "ExportAllDeclaration");
    }
    const c = this.maybeParseExportNamedSpecifiers(t);
    n && s && !a && !c && this.unexpected(null, 5), o && l && this.unexpected(null, 98);
    let f;
    if (u || c) {
      if (f = !1, r)
        throw this.raise(rt.UnsupportedDecoratorExport, t);
      this.parseExportFrom(t, u);
    } else
      f = this.maybeParseExportDeclaration(t);
    if (u || c || f) {
      var h;
      const m = t;
      if (this.checkExport(m, !0, !1, !!m.source), ((h = m.declaration) == null ? void 0 : h.type) === "ClassDeclaration")
        this.maybeTakeDecorators(r, m.declaration, m);
      else if (r)
        throw this.raise(rt.UnsupportedDecoratorExport, t);
      return this.finishNode(m, "ExportNamedDeclaration");
    }
    if (this.eat(65)) {
      const m = t, g = this.parseExportDefaultExpression();
      if (m.declaration = g, g.type === "ClassDeclaration")
        this.maybeTakeDecorators(r, g, m);
      else if (r)
        throw this.raise(rt.UnsupportedDecoratorExport, t);
      return this.checkExport(m, !0, !0), this.finishNode(m, "ExportDefaultDeclaration");
    }
    this.unexpected(null, 5);
  }
  eatExportStar(t) {
    return this.eat(55);
  }
  maybeParseExportDefaultSpecifier(t, r) {
    if (r || this.isExportDefaultSpecifier()) {
      this.expectPlugin("exportDefaultFrom", r == null ? void 0 : r.loc.start);
      const i = r || this.parseIdentifier(!0), n = this.startNodeAtNode(i);
      return n.exported = i, t.specifiers = [this.finishNode(n, "ExportDefaultSpecifier")], !0;
    }
    return !1;
  }
  maybeParseExportNamespaceSpecifier(t) {
    if (this.isContextual(93)) {
      t.specifiers || (t.specifiers = []);
      const r = this.startNodeAt(this.state.lastTokStartLoc);
      return this.next(), r.exported = this.parseModuleExportName(), t.specifiers.push(this.finishNode(r, "ExportNamespaceSpecifier")), !0;
    }
    return !1;
  }
  maybeParseExportNamedSpecifiers(t) {
    if (this.match(5)) {
      t.specifiers || (t.specifiers = []);
      const r = t.exportKind === "type";
      return t.specifiers.push(...this.parseExportSpecifiers(r)), t.source = null, t.declaration = null, this.hasPlugin("importAssertions") && (t.assertions = []), !0;
    }
    return !1;
  }
  maybeParseExportDeclaration(t) {
    return this.shouldParseExportDeclaration() ? (t.specifiers = [], t.source = null, this.hasPlugin("importAssertions") && (t.assertions = []), t.declaration = this.parseExportDeclaration(t), !0) : !1;
  }
  isAsyncFunction() {
    if (!this.isContextual(95))
      return !1;
    const t = this.nextTokenInLineStart();
    return this.isUnparsedContextual(t, "function");
  }
  parseExportDefaultExpression() {
    const t = this.startNode();
    if (this.match(68))
      return this.next(), this.parseFunction(t, 5);
    if (this.isAsyncFunction())
      return this.next(), this.next(), this.parseFunction(t, 13);
    if (this.match(80))
      return this.parseClass(t, !0, !0);
    if (this.match(26))
      return this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") === !0 && this.raise(rt.DecoratorBeforeExport, this.state.startLoc), this.parseClass(this.maybeTakeDecorators(this.parseDecorators(!1), this.startNode()), !0, !0);
    if (this.match(75) || this.match(74) || this.isLet())
      throw this.raise(rt.UnsupportedDefaultExport, this.state.startLoc);
    const r = this.parseMaybeAssignAllowIn();
    return this.semicolon(), r;
  }
  parseExportDeclaration(t) {
    return this.match(80) ? this.parseClass(this.startNode(), !0, !1) : this.parseStatementListItem();
  }
  isExportDefaultSpecifier() {
    const {
      type: t
    } = this.state;
    if (xi(t)) {
      if (t === 95 && !this.state.containsEsc || t === 100)
        return !1;
      if ((t === 130 || t === 129) && !this.state.containsEsc) {
        const {
          type: n
        } = this.lookahead();
        if (xi(n) && n !== 98 || n === 5)
          return this.expectOnePlugin(["flow", "typescript"]), !1;
      }
    } else if (!this.match(65))
      return !1;
    const r = this.nextTokenStart(), i = this.isUnparsedContextual(r, "from");
    if (this.input.charCodeAt(r) === 44 || xi(this.state.type) && i)
      return !0;
    if (this.match(65) && i) {
      const n = this.input.charCodeAt(this.nextTokenStartSince(r + 4));
      return n === 34 || n === 39;
    }
    return !1;
  }
  parseExportFrom(t, r) {
    this.eatContextual(98) ? (t.source = this.parseImportSource(), this.checkExport(t), this.maybeParseImportAttributes(t), this.checkJSONModuleImport(t)) : r && this.unexpected(), this.semicolon();
  }
  shouldParseExportDeclaration() {
    const {
      type: t
    } = this.state;
    return t === 26 && (this.expectOnePlugin(["decorators", "decorators-legacy"]), this.hasPlugin("decorators")) ? (this.getPluginOption("decorators", "decoratorsBeforeExport") === !0 && this.raise(rt.DecoratorBeforeExport, this.state.startLoc), !0) : t === 74 || t === 75 || t === 68 || t === 80 || this.isLet() || this.isAsyncFunction();
  }
  checkExport(t, r, i, n) {
    if (r) {
      var s;
      if (i) {
        if (this.checkDuplicateExports(t, "default"), this.hasPlugin("exportDefaultFrom")) {
          var a;
          const o = t.declaration;
          o.type === "Identifier" && o.name === "from" && o.end - o.start === 4 && !((a = o.extra) != null && a.parenthesized) && this.raise(rt.ExportDefaultFromAsIdentifier, o);
        }
      } else if ((s = t.specifiers) != null && s.length)
        for (const o of t.specifiers) {
          const {
            exported: l
          } = o, u = l.type === "Identifier" ? l.name : l.value;
          if (this.checkDuplicateExports(o, u), !n && o.local) {
            const {
              local: c
            } = o;
            c.type !== "Identifier" ? this.raise(rt.ExportBindingIsString, o, {
              localName: c.value,
              exportName: u
            }) : (this.checkReservedWord(c.name, c.loc.start, !0, !1), this.scope.checkLocalExport(c));
          }
        }
      else if (t.declaration) {
        if (t.declaration.type === "FunctionDeclaration" || t.declaration.type === "ClassDeclaration") {
          const o = t.declaration.id;
          if (!o)
            throw new Error("Assertion failure");
          this.checkDuplicateExports(t, o.name);
        } else if (t.declaration.type === "VariableDeclaration")
          for (const o of t.declaration.declarations)
            this.checkDeclaration(o.id);
      }
    }
  }
  checkDeclaration(t) {
    if (t.type === "Identifier")
      this.checkDuplicateExports(t, t.name);
    else if (t.type === "ObjectPattern")
      for (const r of t.properties)
        this.checkDeclaration(r);
    else if (t.type === "ArrayPattern")
      for (const r of t.elements)
        r && this.checkDeclaration(r);
    else
      t.type === "ObjectProperty" ? this.checkDeclaration(t.value) : t.type === "RestElement" ? this.checkDeclaration(t.argument) : t.type === "AssignmentPattern" && this.checkDeclaration(t.left);
  }
  checkDuplicateExports(t, r) {
    this.exportedIdentifiers.has(r) && (r === "default" ? this.raise(rt.DuplicateDefaultExport, t) : this.raise(rt.DuplicateExport, t, {
      exportName: r
    })), this.exportedIdentifiers.add(r);
  }
  parseExportSpecifiers(t) {
    const r = [];
    let i = !0;
    for (this.expect(5); !this.eat(8); ) {
      if (i)
        i = !1;
      else if (this.expect(12), this.eat(8))
        break;
      const n = this.isContextual(130), s = this.match(133), a = this.startNode();
      a.local = this.parseModuleExportName(), r.push(this.parseExportSpecifier(a, s, t, n));
    }
    return r;
  }
  parseExportSpecifier(t, r, i, n) {
    return this.eatContextual(93) ? t.exported = this.parseModuleExportName() : r ? t.exported = tLt(t.local) : t.exported || (t.exported = Tf(t.local)), this.finishNode(t, "ExportSpecifier");
  }
  parseModuleExportName() {
    if (this.match(133)) {
      const t = this.parseStringLiteral(this.state.value), r = t.value.match(kLt);
      return r && this.raise(rt.ModuleExportNameHasLoneSurrogate, t, {
        surrogateCharCode: r[0].charCodeAt(0)
      }), t;
    }
    return this.parseIdentifier(!0);
  }
  isJSONModuleImport(t) {
    return t.assertions != null ? t.assertions.some(({
      key: r,
      value: i
    }) => i.value === "json" && (r.type === "Identifier" ? r.name === "type" : r.value === "type")) : !1;
  }
  checkImportReflection(t) {
    const {
      specifiers: r
    } = t, i = r.length === 1 ? r[0].type : null;
    if (t.phase === "source")
      i !== "ImportDefaultSpecifier" && this.raise(rt.SourcePhaseImportRequiresDefault, r[0].loc.start);
    else if (t.phase === "defer")
      i !== "ImportNamespaceSpecifier" && this.raise(rt.DeferImportRequiresNamespace, r[0].loc.start);
    else if (t.module) {
      var n;
      i !== "ImportDefaultSpecifier" && this.raise(rt.ImportReflectionNotBinding, r[0].loc.start), ((n = t.assertions) == null ? void 0 : n.length) > 0 && this.raise(rt.ImportReflectionHasAssertion, r[0].loc.start);
    }
  }
  checkJSONModuleImport(t) {
    if (this.isJSONModuleImport(t) && t.type !== "ExportAllDeclaration") {
      const {
        specifiers: r
      } = t;
      if (r != null) {
        const i = r.find((n) => {
          let s;
          if (n.type === "ExportSpecifier" ? s = n.local : n.type === "ImportSpecifier" && (s = n.imported), s !== void 0)
            return s.type === "Identifier" ? s.name !== "default" : s.value !== "default";
        });
        i !== void 0 && this.raise(rt.ImportJSONBindingNotDefault, i.loc.start);
      }
    }
  }
  isPotentialImportPhase(t) {
    return t ? !1 : this.isContextual(105) || this.isContextual(97) || this.isContextual(127);
  }
  applyImportPhase(t, r, i, n) {
    r || (i === "module" ? (this.expectPlugin("importReflection", n), t.module = !0) : this.hasPlugin("importReflection") && (t.module = !1), i === "source" ? (this.expectPlugin("sourcePhaseImports", n), t.phase = "source") : i === "defer" ? (this.expectPlugin("deferredImportEvaluation", n), t.phase = "defer") : this.hasPlugin("sourcePhaseImports") && (t.phase = null));
  }
  parseMaybeImportPhase(t, r) {
    if (!this.isPotentialImportPhase(r))
      return this.applyImportPhase(t, r, null), null;
    const i = this.parseIdentifier(!0), {
      type: n
    } = this.state;
    return (Oc(n) ? n !== 98 || this.lookaheadCharCode() === 102 : n !== 12) ? (this.resetPreviousIdentifierLeadingComments(i), this.applyImportPhase(t, r, i.name, i.loc.start), null) : (this.applyImportPhase(t, r, null), i);
  }
  isPrecedingIdImportPhase(t) {
    const {
      type: r
    } = this.state;
    return xi(r) ? r !== 98 || this.lookaheadCharCode() === 102 : r !== 12;
  }
  parseImport(t) {
    return this.match(133) ? this.parseImportSourceAndAttributes(t) : this.parseImportSpecifiersAndAfter(t, this.parseMaybeImportPhase(t, !1));
  }
  parseImportSpecifiersAndAfter(t, r) {
    t.specifiers = [];
    const n = !this.maybeParseDefaultImportSpecifier(t, r) || this.eat(12), s = n && this.maybeParseStarImportSpecifier(t);
    return n && !s && this.parseNamedImportSpecifiers(t), this.expectContextual(98), this.parseImportSourceAndAttributes(t);
  }
  parseImportSourceAndAttributes(t) {
    var r;
    return (r = t.specifiers) != null || (t.specifiers = []), t.source = this.parseImportSource(), this.maybeParseImportAttributes(t), this.checkImportReflection(t), this.checkJSONModuleImport(t), this.semicolon(), this.finishNode(t, "ImportDeclaration");
  }
  parseImportSource() {
    return this.match(133) || this.unexpected(), this.parseExprAtom();
  }
  parseImportSpecifierLocal(t, r, i) {
    r.local = this.parseIdentifier(), t.specifiers.push(this.finishImportSpecifier(r, i));
  }
  finishImportSpecifier(t, r, i = 8201) {
    return this.checkLVal(t.local, {
      in: {
        type: r
      },
      binding: i
    }), this.finishNode(t, r);
  }
  parseImportAttributes() {
    this.expect(5);
    const t = [], r = /* @__PURE__ */ new Set();
    do {
      if (this.match(8))
        break;
      const i = this.startNode(), n = this.state.value;
      if (r.has(n) && this.raise(rt.ModuleAttributesWithDuplicateKeys, this.state.startLoc, {
        key: n
      }), r.add(n), this.match(133) ? i.key = this.parseStringLiteral(n) : i.key = this.parseIdentifier(!0), this.expect(14), !this.match(133))
        throw this.raise(rt.ModuleAttributeInvalidValue, this.state.startLoc);
      i.value = this.parseStringLiteral(this.state.value), t.push(this.finishNode(i, "ImportAttribute"));
    } while (this.eat(12));
    return this.expect(8), t;
  }
  parseModuleAttributes() {
    const t = [], r = /* @__PURE__ */ new Set();
    do {
      const i = this.startNode();
      if (i.key = this.parseIdentifier(!0), i.key.name !== "type" && this.raise(rt.ModuleAttributeDifferentFromType, i.key), r.has(i.key.name) && this.raise(rt.ModuleAttributesWithDuplicateKeys, i.key, {
        key: i.key.name
      }), r.add(i.key.name), this.expect(14), !this.match(133))
        throw this.raise(rt.ModuleAttributeInvalidValue, this.state.startLoc);
      i.value = this.parseStringLiteral(this.state.value), t.push(this.finishNode(i, "ImportAttribute"));
    } while (this.eat(12));
    return t;
  }
  maybeParseImportAttributes(t) {
    let r, i = !1;
    if (this.match(76)) {
      if (this.hasPrecedingLineBreak() && this.lookaheadCharCode() === 40)
        return;
      this.next(), this.hasPlugin("moduleAttributes") ? r = this.parseModuleAttributes() : (this.expectImportAttributesPlugin(), r = this.parseImportAttributes()), i = !0;
    } else if (this.isContextual(94) && !this.hasPrecedingLineBreak())
      this.hasPlugin("importAttributes") ? (this.getPluginOption("importAttributes", "deprecatedAssertSyntax") !== !0 && this.raise(rt.ImportAttributesUseAssert, this.state.startLoc), this.addExtra(t, "deprecatedAssertSyntax", !0)) : this.expectOnePlugin(["importAttributes", "importAssertions"]), this.next(), r = this.parseImportAttributes();
    else if (this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions"))
      r = [];
    else if (this.hasPlugin("moduleAttributes"))
      r = [];
    else
      return;
    !i && this.hasPlugin("importAssertions") ? t.assertions = r : t.attributes = r;
  }
  maybeParseDefaultImportSpecifier(t, r) {
    if (r) {
      const i = this.startNodeAtNode(r);
      return i.local = r, t.specifiers.push(this.finishImportSpecifier(i, "ImportDefaultSpecifier")), !0;
    } else if (Oc(this.state.type))
      return this.parseImportSpecifierLocal(t, this.startNode(), "ImportDefaultSpecifier"), !0;
    return !1;
  }
  maybeParseStarImportSpecifier(t) {
    if (this.match(55)) {
      const r = this.startNode();
      return this.next(), this.expectContextual(93), this.parseImportSpecifierLocal(t, r, "ImportNamespaceSpecifier"), !0;
    }
    return !1;
  }
  parseNamedImportSpecifiers(t) {
    let r = !0;
    for (this.expect(5); !this.eat(8); ) {
      if (r)
        r = !1;
      else {
        if (this.eat(14))
          throw this.raise(rt.DestructureNamedImport, this.state.startLoc);
        if (this.expect(12), this.eat(8))
          break;
      }
      const i = this.startNode(), n = this.match(133), s = this.isContextual(130);
      i.imported = this.parseModuleExportName();
      const a = this.parseImportSpecifier(i, n, t.importKind === "type" || t.importKind === "typeof", s, void 0);
      t.specifiers.push(a);
    }
  }
  parseImportSpecifier(t, r, i, n, s) {
    if (this.eatContextual(93))
      t.local = this.parseIdentifier();
    else {
      const {
        imported: a
      } = t;
      if (r)
        throw this.raise(rt.ImportBindingIsString, t, {
          importName: a.value
        });
      this.checkReservedWord(a.name, t.loc.start, !0, !0), t.local || (t.local = Tf(a));
    }
    return this.finishImportSpecifier(t, "ImportSpecifier", s);
  }
  isThisParam(t) {
    return t.type === "Identifier" && t.name === "this";
  }
}, $ye = class extends NLt {
  constructor(t, r) {
    t = CLt(t), super(t, r), this.options = t, this.initializeScopes(), this.plugins = DLt(this.options.plugins), this.filename = t.sourceFilename;
  }
  getScopeHandler() {
    return r7;
  }
  parse() {
    this.enterInitialScopes();
    const t = this.startNode(), r = this.startNode();
    return this.nextToken(), t.errors = null, this.parseTopLevel(t, r), t.errors = this.state.errors, t.comments.length = this.state.commentsLen, t;
  }
};
function DLt(e) {
  const t = /* @__PURE__ */ new Map();
  for (const r of e) {
    const [i, n] = Array.isArray(r) ? r : [r, {}];
    t.has(i) || t.set(i, n || {});
  }
  return t;
}
function LLt(e, t) {
  var r;
  if (((r = t) == null ? void 0 : r.sourceType) === "unambiguous") {
    t = Object.assign({}, t);
    try {
      t.sourceType = "module";
      const i = I0(t, e), n = i.parse();
      if (i.sawUnambiguousESM)
        return n;
      if (i.ambiguousScriptDifferentAst)
        try {
          return t.sourceType = "script", I0(t, e).parse();
        } catch (s) {
        }
      else
        n.program.sourceType = "script";
      return n;
    } catch (i) {
      try {
        return t.sourceType = "script", I0(t, e).parse();
      } catch (n) {
      }
      throw i;
    }
  } else
    return I0(t, e).parse();
}
function MLt(e, t) {
  const r = I0(t, e);
  return r.options.strictMode && (r.state.strict = !0), r.getExpression();
}
function RLt(e) {
  const t = {};
  for (const r of Object.keys(e))
    t[r] = Hp(e[r]);
  return t;
}
const BLt = RLt(hDt);
function I0(e, t) {
  let r = $ye;
  return e != null && e.plugins && (wLt(e.plugins), r = FLt(e.plugins)), new r(e, t);
}
const iZ = {};
function FLt(e) {
  const t = ALt.filter((n) => jn(e, n)), r = t.join("/");
  let i = iZ[r];
  if (!i) {
    i = $ye;
    for (const n of t)
      i = jye[n](i);
    iZ[r] = i;
  }
  return i;
}
uS.parse = LLt;
uS.parseExpression = MLt;
uS.tokTypes = BLt;
var nZ;
function jLt() {
  if (nZ)
    return $p;
  nZ = 1, Object.defineProperty($p, "__esModule", {
    value: !0
  }), $p._replaceWith = W, $p.replaceExpressionWithStatements = Y, $p.replaceInline = le, $p.replaceWith = z, $p.replaceWithMultiple = V, $p.replaceWithSourceString = K;
  var e = am, t = dS(), r = bm(), i = as, n = uS, s = Nr(), a = Pde();
  const {
    FUNCTION_TYPES: o,
    arrowFunctionExpression: l,
    assignmentExpression: u,
    awaitExpression: c,
    blockStatement: f,
    buildUndefinedNode: h,
    callExpression: m,
    cloneNode: g,
    conditionalExpression: y,
    expressionStatement: v,
    getBindingIdentifiers: T,
    identifier: S,
    inheritLeadingComments: P,
    inheritTrailingComments: x,
    inheritsComments: C,
    isBlockStatement: D,
    isEmptyStatement: w,
    isExpression: A,
    isExpressionStatement: I,
    isIfStatement: L,
    isProgram: O,
    isStatement: F,
    isVariableDeclaration: q,
    removeComments: j,
    returnStatement: N,
    sequenceExpression: M,
    validate: R,
    yieldExpression: $
  } = s;
  function V(ne) {
    var ae;
    this.resync(), ne = this._verifyNodeList(ne), P(ne[0], this.node), x(ne[ne.length - 1], this.node), (ae = (0, i.getCachedPaths)(this.hub, this.parent)) == null || ae.delete(this.node), this.node = this.container[this.key] = null;
    const be = this.insertAfter(ne);
    return this.node ? this.requeue() : this.remove(), be;
  }
  function K(ne) {
    this.resync();
    let ae;
    try {
      ne = "(".concat(ne, ")"), ae = (0, n.parse)(ne);
    } catch (ye) {
      const fe = ye.loc;
      throw fe && (ye.message += " - make sure this is an expression.\n" + (0, e.codeFrameColumns)(ne, {
        start: {
          line: fe.line,
          column: fe.column + 1
        }
      }), ye.code = "BABEL_REPLACE_SOURCE_ERROR"), ye;
    }
    const be = ae.program.body[0].expression;
    return t.default.removeProperties(be), this.replaceWith(be);
  }
  function z(ne) {
    if (this.resync(), this.removed)
      throw new Error("You can't replace this node, we've already removed it");
    let ae = ne instanceof r.default ? ne.node : ne;
    if (!ae)
      throw new Error("You passed `path.replaceWith()` a falsy node, use `path.remove()` instead");
    if (this.node === ae)
      return [this];
    if (this.isProgram() && !O(ae))
      throw new Error("You can only replace a Program root node with another Program node");
    if (Array.isArray(ae))
      throw new Error("Don't use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`");
    if (typeof ae == "string")
      throw new Error("Don't use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`");
    let be = "";
    if (this.isNodeType("Statement") && A(ae) && !this.canHaveVariableDeclarationOrExpression() && !this.canSwapBetweenExpressionAndStatement(ae) && !this.parentPath.isExportDefaultDeclaration() && (ae = v(ae), be = "expression"), this.isNodeType("Expression") && F(ae) && !this.canHaveVariableDeclarationOrExpression() && !this.canSwapBetweenExpressionAndStatement(ae))
      return this.replaceExpressionWithStatements([ae]);
    const ye = this.node;
    return ye && (C(ae, ye), j(ye)), this._replaceWith(ae), this.type = ae.type, this.setScope(), this.requeue(), [be ? this.get(be) : this];
  }
  function W(ne) {
    var ae;
    if (!this.container)
      throw new ReferenceError("Container is falsy");
    this.inList ? R(this.parent, this.key, [ne]) : R(this.parent, this.key, ne), this.debug("Replace with ".concat(ne == null ? void 0 : ne.type)), (ae = (0, i.getCachedPaths)(this.hub, this.parent)) == null || ae.set(ne, this).delete(this.node), this.node = this.container[this.key] = ne;
  }
  function Y(ne) {
    this.resync();
    const ae = [], be = G(ne, ae);
    if (be) {
      for (const st of ae)
        this.scope.push({
          id: st
        });
      return this.replaceWith(be)[0].get("expressions");
    }
    const ye = this.getFunctionParent(), fe = ye == null ? void 0 : ye.is("async"), Z = ye == null ? void 0 : ye.is("generator"), ue = l([], f(ne));
    this.replaceWith(m(ue, []));
    const me = this.get("callee");
    (0, a.default)(me.get("body"), (st) => {
      this.scope.push({
        id: st
      });
    }, "var");
    const xe = this.get("callee").getCompletionRecords();
    for (const st of xe) {
      if (!st.isExpressionStatement())
        continue;
      const Se = st.findParent((oe) => oe.isLoop());
      if (Se) {
        let oe = Se.getData("expressionReplacementReturnUid");
        oe ? oe = S(oe.name) : (oe = me.scope.generateDeclaredUidIdentifier("ret"), me.get("body").pushContainer("body", N(g(oe))), Se.setData("expressionReplacementReturnUid", oe)), st.get("expression").replaceWith(u("=", g(oe), st.node.expression));
      } else
        st.replaceWith(N(st.node.expression));
    }
    me.arrowFunctionToExpression();
    const Pe = me, ve = fe && t.default.hasType(this.get("callee.body").node, "AwaitExpression", o), Xe = Z && t.default.hasType(this.get("callee.body").node, "YieldExpression", o);
    return ve && (Pe.set("async", !0), Xe || this.replaceWith(c(this.node))), Xe && (Pe.set("generator", !0), this.replaceWith($(this.node, !0))), Pe.get("body.body");
  }
  function G(ne, ae) {
    const be = [];
    let ye = !0;
    for (const fe of ne)
      if (w(fe) || (ye = !1), A(fe))
        be.push(fe);
      else if (I(fe))
        be.push(fe.expression);
      else if (q(fe)) {
        if (fe.kind !== "var")
          return;
        for (const Z of fe.declarations) {
          const ue = T(Z);
          for (const me of Object.keys(ue))
            ae.push(g(ue[me]));
          Z.init && be.push(u("=", Z.id, Z.init));
        }
        ye = !0;
      } else if (L(fe)) {
        const Z = fe.consequent ? G([fe.consequent], ae) : h(), ue = fe.alternate ? G([fe.alternate], ae) : h();
        if (!Z || !ue)
          return;
        be.push(y(fe.test, Z, ue));
      } else if (D(fe)) {
        const Z = G(fe.body, ae);
        if (!Z)
          return;
        be.push(Z);
      } else if (w(fe))
        ne.indexOf(fe) === 0 && (ye = !0);
      else
        return;
    return ye && be.push(h()), be.length === 1 ? be[0] : M(be);
  }
  function le(ne) {
    if (this.resync(), Array.isArray(ne))
      if (Array.isArray(this.container)) {
        ne = this._verifyNodeList(ne);
        const ae = this._containerInsertAfter(ne);
        return this.remove(), ae;
      } else
        return this.replaceWithMultiple(ne);
    else
      return this.replaceWith(ne);
  }
  return $p;
}
var EI = {};
Object.defineProperty(EI, "__esModule", {
  value: !0
});
EI.evaluate = zLt;
EI.evaluateTruthy = HLt;
const $Lt = ["Number", "String", "Math"], ULt = ["isFinite", "isNaN", "parseFloat", "parseInt", "decodeURI", "decodeURIComponent", "encodeURI", "encodeURIComponent", null, null], qLt = ["random"];
function sZ(e) {
  return $Lt.includes(e);
}
function VLt(e) {
  return ULt.includes(e);
}
function WLt(e) {
  return qLt.includes(e);
}
function HLt() {
  const e = this.evaluate();
  if (e.confident)
    return !!e.value;
}
function Kp(e, t) {
  t.confident && (t.deoptPath = e, t.confident = !1);
}
const aZ = /* @__PURE__ */ new Map([["undefined", void 0], ["Infinity", 1 / 0], ["NaN", NaN]]);
function ra(e, t) {
  const {
    node: r
  } = e, {
    seen: i
  } = t;
  if (i.has(r)) {
    const n = i.get(r);
    if (n.resolved)
      return n.value;
    Kp(e, t);
    return;
  } else {
    const n = {
      resolved: !1
    };
    i.set(r, n);
    const s = KLt(e, t);
    return t.confident && (n.resolved = !0, n.value = s), s;
  }
}
function KLt(e, t) {
  if (t.confident) {
    if (e.isSequenceExpression()) {
      const r = e.get("expressions");
      return ra(r[r.length - 1], t);
    }
    if (e.isStringLiteral() || e.isNumericLiteral() || e.isBooleanLiteral())
      return e.node.value;
    if (e.isNullLiteral())
      return null;
    if (e.isTemplateLiteral())
      return oZ(e, e.node.quasis, t);
    if (e.isTaggedTemplateExpression() && e.get("tag").isMemberExpression()) {
      const r = e.get("tag.object"), {
        node: {
          name: i
        }
      } = r, n = e.get("tag.property");
      if (r.isIdentifier() && i === "String" && !e.scope.getBinding(i) && n.isIdentifier() && n.node.name === "raw")
        return oZ(e, e.node.quasi.quasis, t, !0);
    }
    if (e.isConditionalExpression()) {
      const r = ra(e.get("test"), t);
      return t.confident ? ra(r ? e.get("consequent") : e.get("alternate"), t) : void 0;
    }
    if (e.isExpressionWrapper())
      return ra(e.get("expression"), t);
    if (e.isMemberExpression() && !e.parentPath.isCallExpression({
      callee: e.node
    })) {
      const r = e.get("property"), i = e.get("object");
      if (i.isLiteral()) {
        const n = i.node.value, s = typeof n;
        let a = null;
        if (e.node.computed) {
          if (a = ra(r, t), !t.confident)
            return;
        } else
          r.isIdentifier() && (a = r.node.name);
        if ((s === "number" || s === "string") && a != null && (typeof a == "number" || typeof a == "string"))
          return n[a];
      }
    }
    if (e.isReferencedIdentifier()) {
      const r = e.scope.getBinding(e.node.name);
      if (r) {
        if (r.constantViolations.length > 0 || e.node.start < r.path.node.end) {
          Kp(r.path, t);
          return;
        }
        if (r.hasValue)
          return r.value;
      }
      const i = e.node.name;
      if (aZ.has(i)) {
        if (!r)
          return aZ.get(i);
        Kp(r.path, t);
        return;
      }
      const n = e.resolve();
      if (n === e) {
        Kp(e, t);
        return;
      } else
        return ra(n, t);
    }
    if (e.isUnaryExpression({
      prefix: !0
    })) {
      if (e.node.operator === "void")
        return;
      const r = e.get("argument");
      if (e.node.operator === "typeof" && (r.isFunction() || r.isClass()))
        return "function";
      const i = ra(r, t);
      if (!t.confident)
        return;
      switch (e.node.operator) {
        case "!":
          return !i;
        case "+":
          return +i;
        case "-":
          return -i;
        case "~":
          return ~i;
        case "typeof":
          return typeof i;
      }
    }
    if (e.isArrayExpression()) {
      const r = [], i = e.get("elements");
      for (const n of i) {
        const s = n.evaluate();
        if (s.confident)
          r.push(s.value);
        else {
          Kp(s.deopt, t);
          return;
        }
      }
      return r;
    }
    if (e.isObjectExpression()) {
      const r = {}, i = e.get("properties");
      for (const n of i) {
        if (n.isObjectMethod() || n.isSpreadElement()) {
          Kp(n, t);
          return;
        }
        const s = n.get("key");
        let a;
        if (n.node.computed) {
          if (a = s.evaluate(), !a.confident) {
            Kp(a.deopt, t);
            return;
          }
          a = a.value;
        } else
          s.isIdentifier() ? a = s.node.name : a = s.node.value;
        let l = n.get("value").evaluate();
        if (!l.confident) {
          Kp(l.deopt, t);
          return;
        }
        l = l.value, r[a] = l;
      }
      return r;
    }
    if (e.isLogicalExpression()) {
      const r = t.confident, i = ra(e.get("left"), t), n = t.confident;
      t.confident = r;
      const s = ra(e.get("right"), t), a = t.confident;
      switch (e.node.operator) {
        case "||":
          return t.confident = n && (!!i || a), t.confident ? i || s : void 0;
        case "&&":
          return t.confident = n && (!i || a), t.confident ? i && s : void 0;
        case "??":
          return t.confident = n && (i != null || a), t.confident ? i != null ? i : s : void 0;
      }
    }
    if (e.isBinaryExpression()) {
      const r = ra(e.get("left"), t);
      if (!t.confident)
        return;
      const i = ra(e.get("right"), t);
      if (!t.confident)
        return;
      switch (e.node.operator) {
        case "-":
          return r - i;
        case "+":
          return r + i;
        case "/":
          return r / i;
        case "*":
          return r * i;
        case "%":
          return r % i;
        case "**":
          return Math.pow(r, i);
        case "<":
          return r < i;
        case ">":
          return r > i;
        case "<=":
          return r <= i;
        case ">=":
          return r >= i;
        case "==":
          return r == i;
        case "!=":
          return r != i;
        case "===":
          return r === i;
        case "!==":
          return r !== i;
        case "|":
          return r | i;
        case "&":
          return r & i;
        case "^":
          return r ^ i;
        case "<<":
          return r << i;
        case ">>":
          return r >> i;
        case ">>>":
          return r >>> i;
      }
    }
    if (e.isCallExpression()) {
      const r = e.get("callee");
      let i, n;
      if (r.isIdentifier() && !e.scope.getBinding(r.node.name) && (sZ(r.node.name) || VLt(r.node.name)) && (n = jt[r.node.name]), r.isMemberExpression()) {
        const s = r.get("object"), a = r.get("property");
        if (s.isIdentifier() && a.isIdentifier() && sZ(s.node.name) && !WLt(a.node.name)) {
          i = jt[s.node.name];
          const o = a.node.name;
          Object.hasOwnProperty.call(i, o) && (n = i[o]);
        }
        if (s.isLiteral() && a.isIdentifier()) {
          const o = typeof s.node.value;
          (o === "string" || o === "number") && (i = s.node.value, n = i[a.node.name]);
        }
      }
      if (n) {
        const s = e.get("arguments").map((a) => ra(a, t));
        return t.confident ? n.apply(i, s) : void 0;
      }
    }
    Kp(e, t);
  }
}
function oZ(e, t, r, i = !1) {
  let n = "", s = 0;
  const a = e.isTemplateLiteral() ? e.get("expressions") : e.get("quasi.expressions");
  for (const o of t) {
    if (!r.confident)
      break;
    n += i ? o.value.raw : o.value.cooked;
    const l = a[s++];
    l && (n += String(ra(l, r)));
  }
  if (r.confident)
    return n;
}
function zLt() {
  const e = {
    confident: !0,
    deoptPath: null,
    seen: /* @__PURE__ */ new Map()
  };
  let t = ra(this, e);
  return e.confident || (t = void 0), {
    confident: e.confident,
    deopt: e.deoptPath,
    value: t
  };
}
var ym = {}, n7 = {}, $a = {}, Ll = {};
Object.defineProperty(Ll, "__esModule", {
  value: !0
});
Ll.statements = Ll.statement = Ll.smart = Ll.program = Ll.expression = void 0;
var GLt = Qn();
const {
  assertExpressionStatement: YLt
} = GLt;
function s7(e) {
  return {
    code: (t) => "/* @babel/template */;\n".concat(t),
    validate: () => {
    },
    unwrap: (t) => e(t.program.body.slice(1))
  };
}
const XLt = s7((e) => e.length > 1 ? e : e[0]);
Ll.smart = XLt;
const JLt = s7((e) => e);
Ll.statements = JLt;
const QLt = s7((e) => {
  if (e.length === 0)
    throw new Error("Found nothing to return.");
  if (e.length > 1)
    throw new Error("Found multiple statements but wanted one");
  return e[0];
});
Ll.statement = QLt;
const Uye = {
  code: (e) => "(\n".concat(e, "\n)"),
  validate: (e) => {
    if (e.program.body.length > 1)
      throw new Error("Found multiple statements but wanted one");
    if (Uye.unwrap(e).start === 0)
      throw new Error("Parse result included parens.");
  },
  unwrap: ({
    program: e
  }) => {
    const [t] = e.body;
    return YLt(t), t.expression;
  }
};
Ll.expression = Uye;
const ZLt = {
  code: (e) => e,
  validate: () => {
  },
  unwrap: (e) => e.program
};
Ll.program = ZLt;
var a7 = {}, gm = {};
Object.defineProperty(gm, "__esModule", {
  value: !0
});
gm.merge = rMt;
gm.normalizeReplacements = nMt;
gm.validate = iMt;
const eMt = ["placeholderWhitelist", "placeholderPattern", "preserveComments", "syntacticPlaceholders"];
function tMt(e, t) {
  if (e == null)
    return {};
  var r = {}, i = Object.keys(e), n, s;
  for (s = 0; s < i.length; s++)
    n = i[s], !(t.indexOf(n) >= 0) && (r[n] = e[n]);
  return r;
}
function rMt(e, t) {
  const {
    placeholderWhitelist: r = e.placeholderWhitelist,
    placeholderPattern: i = e.placeholderPattern,
    preserveComments: n = e.preserveComments,
    syntacticPlaceholders: s = e.syntacticPlaceholders
  } = t;
  return {
    parser: Object.assign({}, e.parser, t.parser),
    placeholderWhitelist: r,
    placeholderPattern: i,
    preserveComments: n,
    syntacticPlaceholders: s
  };
}
function iMt(e) {
  if (e != null && typeof e != "object")
    throw new Error("Unknown template options.");
  const t = e || {}, {
    placeholderWhitelist: r,
    placeholderPattern: i,
    preserveComments: n,
    syntacticPlaceholders: s
  } = t, a = tMt(t, eMt);
  if (r != null && !(r instanceof Set))
    throw new Error("'.placeholderWhitelist' must be a Set, null, or undefined");
  if (i != null && !(i instanceof RegExp) && i !== !1)
    throw new Error("'.placeholderPattern' must be a RegExp, false, null, or undefined");
  if (n != null && typeof n != "boolean")
    throw new Error("'.preserveComments' must be a boolean, null, or undefined");
  if (s != null && typeof s != "boolean")
    throw new Error("'.syntacticPlaceholders' must be a boolean, null, or undefined");
  if (s === !0 && (r != null || i != null))
    throw new Error("'.placeholderWhitelist' and '.placeholderPattern' aren't compatible with '.syntacticPlaceholders: true'");
  return {
    parser: a,
    placeholderWhitelist: r || void 0,
    placeholderPattern: i == null ? void 0 : i,
    preserveComments: n == null ? void 0 : n,
    syntacticPlaceholders: s == null ? void 0 : s
  };
}
function nMt(e) {
  if (Array.isArray(e))
    return e.reduce((t, r, i) => (t["$" + i] = r, t), {});
  if (typeof e == "object" || e == null)
    return e || void 0;
  throw new Error("Template replacements must be an array, object, null, or undefined");
}
var o7 = {}, PI = {}, cS = {};
Object.defineProperty(cS, "__esModule", {
  value: !0
});
function sMt(e, t) {
  if (e == null)
    return {};
  var r = {};
  for (var i in e)
    if ({}.hasOwnProperty.call(e, i)) {
      if (t.includes(i))
        continue;
      r[i] = e[i];
    }
  return r;
}
let Dh = class {
  constructor(t, r, i) {
    this.line = void 0, this.column = void 0, this.index = void 0, this.line = t, this.column = r, this.index = i;
  }
}, Xw = class {
  constructor(t, r) {
    this.start = void 0, this.end = void 0, this.filename = void 0, this.identifierName = void 0, this.start = t, this.end = r;
  }
};
function ca(e, t) {
  const {
    line: r,
    column: i,
    index: n
  } = e;
  return new Dh(r, i + t, n + t);
}
const lZ = "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED";
var aMt = {
  ImportMetaOutsideModule: {
    message: "import.meta may appear only with 'sourceType: \"module\"'",
    code: lZ
  },
  ImportOutsideModule: {
    message: "'import' and 'export' may appear only with 'sourceType: \"module\"'",
    code: lZ
  }
};
const uZ = {
  ArrayPattern: "array destructuring pattern",
  AssignmentExpression: "assignment expression",
  AssignmentPattern: "assignment expression",
  ArrowFunctionExpression: "arrow function expression",
  ConditionalExpression: "conditional expression",
  CatchClause: "catch clause",
  ForOfStatement: "for-of statement",
  ForInStatement: "for-in statement",
  ForStatement: "for-loop",
  FormalParameters: "function parameter list",
  Identifier: "identifier",
  ImportSpecifier: "import specifier",
  ImportDefaultSpecifier: "import default specifier",
  ImportNamespaceSpecifier: "import namespace specifier",
  ObjectPattern: "object destructuring pattern",
  ParenthesizedExpression: "parenthesized expression",
  RestElement: "rest element",
  UpdateExpression: {
    true: "prefix operation",
    false: "postfix operation"
  },
  VariableDeclarator: "variable declaration",
  YieldExpression: "yield expression"
}, RP = (e) => e.type === "UpdateExpression" ? uZ.UpdateExpression["".concat(e.prefix)] : uZ[e.type];
var oMt = {
  AccessorIsGenerator: ({
    kind: e
  }) => "A ".concat(e, "ter cannot be a generator."),
  ArgumentsInClass: "'arguments' is only allowed in functions and class methods.",
  AsyncFunctionInSingleStatementContext: "Async functions can only be declared at the top level or inside a block.",
  AwaitBindingIdentifier: "Can not use 'await' as identifier inside an async function.",
  AwaitBindingIdentifierInStaticBlock: "Can not use 'await' as identifier inside a static block.",
  AwaitExpressionFormalParameter: "'await' is not allowed in async function parameters.",
  AwaitUsingNotInAsyncContext: "'await using' is only allowed within async functions and at the top levels of modules.",
  AwaitNotInAsyncContext: "'await' is only allowed within async functions and at the top levels of modules.",
  AwaitNotInAsyncFunction: "'await' is only allowed within async functions.",
  BadGetterArity: "A 'get' accessor must not have any formal parameters.",
  BadSetterArity: "A 'set' accessor must have exactly one formal parameter.",
  BadSetterRestParameter: "A 'set' accessor function argument must not be a rest parameter.",
  ConstructorClassField: "Classes may not have a field named 'constructor'.",
  ConstructorClassPrivateField: "Classes may not have a private field named '#constructor'.",
  ConstructorIsAccessor: "Class constructor may not be an accessor.",
  ConstructorIsAsync: "Constructor can't be an async function.",
  ConstructorIsGenerator: "Constructor can't be a generator.",
  DeclarationMissingInitializer: ({
    kind: e
  }) => "Missing initializer in ".concat(e, " declaration."),
  DecoratorArgumentsOutsideParentheses: "Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.",
  DecoratorBeforeExport: "Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.",
  DecoratorsBeforeAfterExport: "Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.",
  DecoratorConstructor: "Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?",
  DecoratorExportClass: "Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.",
  DecoratorSemicolon: "Decorators must not be followed by a semicolon.",
  DecoratorStaticBlock: "Decorators can't be used with a static block.",
  DeferImportRequiresNamespace: 'Only `import defer * as x from "./module"` is valid.',
  DeletePrivateField: "Deleting a private field is not allowed.",
  DestructureNamedImport: "ES2015 named imports do not destructure. Use another statement for destructuring after the import.",
  DuplicateConstructor: "Duplicate constructor in the same class.",
  DuplicateDefaultExport: "Only one default export allowed per module.",
  DuplicateExport: ({
    exportName: e
  }) => "`".concat(e, "` has already been exported. Exported identifiers must be unique."),
  DuplicateProto: "Redefinition of __proto__ property.",
  DuplicateRegExpFlags: "Duplicate regular expression flag.",
  DynamicImportPhaseRequiresImportExpressions: ({
    phase: e
  }) => "'import.".concat(e, "(...)' can only be parsed when using the 'createImportExpressions' option."),
  ElementAfterRest: "Rest element must be last element.",
  EscapedCharNotAnIdentifier: "Invalid Unicode escape.",
  ExportBindingIsString: ({
    localName: e,
    exportName: t
  }) => "A string literal cannot be used as an exported binding without `from`.\n- Did you mean `export { '".concat(e, "' as '").concat(t, "' } from 'some-module'`?"),
  ExportDefaultFromAsIdentifier: "'from' is not allowed as an identifier after 'export default'.",
  ForInOfLoopInitializer: ({
    type: e
  }) => "'".concat(e === "ForInStatement" ? "for-in" : "for-of", "' loop variable declaration may not have an initializer."),
  ForInUsing: "For-in loop may not start with 'using' declaration.",
  ForOfAsync: "The left-hand side of a for-of loop may not be 'async'.",
  ForOfLet: "The left-hand side of a for-of loop may not start with 'let'.",
  GeneratorInSingleStatementContext: "Generators can only be declared at the top level or inside a block.",
  IllegalBreakContinue: ({
    type: e
  }) => "Unsyntactic ".concat(e === "BreakStatement" ? "break" : "continue", "."),
  IllegalLanguageModeDirective: "Illegal 'use strict' directive in function with non-simple parameter list.",
  IllegalReturn: "'return' outside of function.",
  ImportAttributesUseAssert: "The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedImportAssert` parser plugin to suppress this error.",
  ImportBindingIsString: ({
    importName: e
  }) => 'A string literal cannot be used as an imported binding.\n- Did you mean `import { "'.concat(e, '" as foo }`?'),
  ImportCallArity: "`import()` requires exactly one or two arguments.",
  ImportCallNotNewExpression: "Cannot use new with import(...).",
  ImportCallSpreadArgument: "`...` is not allowed in `import()`.",
  ImportJSONBindingNotDefault: "A JSON module can only be imported with `default`.",
  ImportReflectionHasAssertion: "`import module x` cannot have assertions.",
  ImportReflectionNotBinding: 'Only `import module x from "./module"` is valid.',
  IncompatibleRegExpUVFlags: "The 'u' and 'v' regular expression flags cannot be enabled at the same time.",
  InvalidBigIntLiteral: "Invalid BigIntLiteral.",
  InvalidCodePoint: "Code point out of bounds.",
  InvalidCoverInitializedName: "Invalid shorthand property initializer.",
  InvalidDecimal: "Invalid decimal.",
  InvalidDigit: ({
    radix: e
  }) => "Expected number in radix ".concat(e, "."),
  InvalidEscapeSequence: "Bad character escape sequence.",
  InvalidEscapeSequenceTemplate: "Invalid escape sequence in template.",
  InvalidEscapedReservedWord: ({
    reservedWord: e
  }) => "Escape sequence in keyword ".concat(e, "."),
  InvalidIdentifier: ({
    identifierName: e
  }) => "Invalid identifier ".concat(e, "."),
  InvalidLhs: ({
    ancestor: e
  }) => "Invalid left-hand side in ".concat(RP(e), "."),
  InvalidLhsBinding: ({
    ancestor: e
  }) => "Binding invalid left-hand side in ".concat(RP(e), "."),
  InvalidLhsOptionalChaining: ({
    ancestor: e
  }) => "Invalid optional chaining in the left-hand side of ".concat(RP(e), "."),
  InvalidNumber: "Invalid number.",
  InvalidOrMissingExponent: "Floating-point numbers require a valid exponent after the 'e'.",
  InvalidOrUnexpectedToken: ({
    unexpected: e
  }) => "Unexpected character '".concat(e, "'."),
  InvalidParenthesizedAssignment: "Invalid parenthesized assignment pattern.",
  InvalidPrivateFieldResolution: ({
    identifierName: e
  }) => "Private name #".concat(e, " is not defined."),
  InvalidPropertyBindingPattern: "Binding member expression.",
  InvalidRecordProperty: "Only properties and spread elements are allowed in record definitions.",
  InvalidRestAssignmentPattern: "Invalid rest operator's argument.",
  LabelRedeclaration: ({
    labelName: e
  }) => "Label '".concat(e, "' is already declared."),
  LetInLexicalBinding: "'let' is disallowed as a lexically bound name.",
  LineTerminatorBeforeArrow: "No line break is allowed before '=>'.",
  MalformedRegExpFlags: "Invalid regular expression flag.",
  MissingClassName: "A class name is required.",
  MissingEqInAssignment: "Only '=' operator can be used for specifying default value.",
  MissingSemicolon: "Missing semicolon.",
  MissingPlugin: ({
    missingPlugin: e
  }) => "This experimental syntax requires enabling the parser plugin: ".concat(e.map((t) => JSON.stringify(t)).join(", "), "."),
  MissingOneOfPlugins: ({
    missingPlugin: e
  }) => "This experimental syntax requires enabling one of the following parser plugin(s): ".concat(e.map((t) => JSON.stringify(t)).join(", "), "."),
  MissingUnicodeEscape: "Expecting Unicode escape sequence \\uXXXX.",
  MixingCoalesceWithLogical: "Nullish coalescing operator(??) requires parens when mixing with logical operators.",
  ModuleAttributeDifferentFromType: "The only accepted module attribute is `type`.",
  ModuleAttributeInvalidValue: "Only string literals are allowed as module attribute values.",
  ModuleAttributesWithDuplicateKeys: ({
    key: e
  }) => 'Duplicate key "'.concat(e, '" is not allowed in module attributes.'),
  ModuleExportNameHasLoneSurrogate: ({
    surrogateCharCode: e
  }) => "An export name cannot include a lone surrogate, found '\\u".concat(e.toString(16), "'."),
  ModuleExportUndefined: ({
    localName: e
  }) => "Export '".concat(e, "' is not defined."),
  MultipleDefaultsInSwitch: "Multiple default clauses.",
  NewlineAfterThrow: "Illegal newline after throw.",
  NoCatchOrFinally: "Missing catch or finally clause.",
  NumberIdentifier: "Identifier directly after number.",
  NumericSeparatorInEscapeSequence: "Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.",
  ObsoleteAwaitStar: "'await*' has been removed from the async functions proposal. Use Promise.all() instead.",
  OptionalChainingNoNew: "Constructors in/after an Optional Chain are not allowed.",
  OptionalChainingNoTemplate: "Tagged Template Literals are not allowed in optionalChain.",
  OverrideOnConstructor: "'override' modifier cannot appear on a constructor declaration.",
  ParamDupe: "Argument name clash.",
  PatternHasAccessor: "Object pattern can't contain getter or setter.",
  PatternHasMethod: "Object pattern can't contain methods.",
  PrivateInExpectedIn: ({
    identifierName: e
  }) => "Private names are only allowed in property accesses (`obj.#".concat(e, "`) or in `in` expressions (`#").concat(e, " in obj`)."),
  PrivateNameRedeclaration: ({
    identifierName: e
  }) => "Duplicate private name #".concat(e, "."),
  RecordExpressionBarIncorrectEndSyntaxType: "Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
  RecordExpressionBarIncorrectStartSyntaxType: "Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
  RecordExpressionHashIncorrectStartSyntaxType: "Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",
  RecordNoProto: "'__proto__' is not allowed in Record expressions.",
  RestTrailingComma: "Unexpected trailing comma after rest element.",
  SloppyFunction: "In non-strict mode code, functions can only be declared at top level or inside a block.",
  SloppyFunctionAnnexB: "In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.",
  SourcePhaseImportRequiresDefault: 'Only `import source x from "./module"` is valid.',
  StaticPrototype: "Classes may not have static property named prototype.",
  SuperNotAllowed: "`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?",
  SuperPrivateField: "Private fields can't be accessed on super.",
  TrailingDecorator: "Decorators must be attached to a class element.",
  TupleExpressionBarIncorrectEndSyntaxType: "Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
  TupleExpressionBarIncorrectStartSyntaxType: "Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
  TupleExpressionHashIncorrectStartSyntaxType: "Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",
  UnexpectedArgumentPlaceholder: "Unexpected argument placeholder.",
  UnexpectedAwaitAfterPipelineBody: 'Unexpected "await" after pipeline body; await must have parentheses in minimal proposal.',
  UnexpectedDigitAfterHash: "Unexpected digit after hash token.",
  UnexpectedImportExport: "'import' and 'export' may only appear at the top level.",
  UnexpectedKeyword: ({
    keyword: e
  }) => "Unexpected keyword '".concat(e, "'."),
  UnexpectedLeadingDecorator: "Leading decorators must be attached to a class declaration.",
  UnexpectedLexicalDeclaration: "Lexical declaration cannot appear in a single-statement context.",
  UnexpectedNewTarget: "`new.target` can only be used in functions or class properties.",
  UnexpectedNumericSeparator: "A numeric separator is only allowed between two digits.",
  UnexpectedPrivateField: "Unexpected private name.",
  UnexpectedReservedWord: ({
    reservedWord: e
  }) => "Unexpected reserved word '".concat(e, "'."),
  UnexpectedSuper: "'super' is only allowed in object methods and classes.",
  UnexpectedToken: ({
    expected: e,
    unexpected: t
  }) => "Unexpected token".concat(t ? " '".concat(t, "'.") : "").concat(e ? ', expected "'.concat(e, '"') : ""),
  UnexpectedTokenUnaryExponentiation: "Illegal expression. Wrap left hand side or entire exponentiation in parentheses.",
  UnexpectedUsingDeclaration: "Using declaration cannot appear in the top level when source type is `script`.",
  UnsupportedBind: "Binding should be performed on object property.",
  UnsupportedDecoratorExport: "A decorated export must export a class declaration.",
  UnsupportedDefaultExport: "Only expressions, functions or classes are allowed as the `default` export.",
  UnsupportedImport: "`import` can only be used in `import()` or `import.meta`.",
  UnsupportedMetaProperty: ({
    target: e,
    onlyValidPropertyName: t
  }) => "The only valid meta property for ".concat(e, " is ").concat(e, ".").concat(t, "."),
  UnsupportedParameterDecorator: "Decorators cannot be used to decorate parameters.",
  UnsupportedPropertyDecorator: "Decorators cannot be used to decorate object literal properties.",
  UnsupportedSuper: "'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).",
  UnterminatedComment: "Unterminated comment.",
  UnterminatedRegExp: "Unterminated regular expression.",
  UnterminatedString: "Unterminated string constant.",
  UnterminatedTemplate: "Unterminated template.",
  UsingDeclarationExport: "Using declaration cannot be exported.",
  UsingDeclarationHasBindingPattern: "Using declaration cannot have destructuring patterns.",
  VarRedeclaration: ({
    identifierName: e
  }) => "Identifier '".concat(e, "' has already been declared."),
  YieldBindingIdentifier: "Can not use 'yield' as identifier inside a generator.",
  YieldInParameter: "Yield expression is not allowed in formal parameters.",
  ZeroDigitNumericSeparator: "Numeric separator can not be used after leading 0."
}, lMt = {
  StrictDelete: "Deleting local variable in strict mode.",
  StrictEvalArguments: ({
    referenceName: e
  }) => "Assigning to '".concat(e, "' in strict mode."),
  StrictEvalArgumentsBinding: ({
    bindingName: e
  }) => "Binding '".concat(e, "' in strict mode."),
  StrictFunction: "In strict mode code, functions can only be declared at top level or inside a block.",
  StrictNumericEscape: "The only valid numeric escape in strict mode is '\\0'.",
  StrictOctalLiteral: "Legacy octal literals are not allowed in strict mode.",
  StrictWith: "'with' in strict mode."
};
const uMt = /* @__PURE__ */ new Set(["ArrowFunctionExpression", "AssignmentExpression", "ConditionalExpression", "YieldExpression"]);
var cMt = {
  PipeBodyIsTighter: "Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.",
  PipeTopicRequiresHackPipes: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.',
  PipeTopicUnbound: "Topic reference is unbound; it must be inside a pipe body.",
  PipeTopicUnconfiguredToken: ({
    token: e
  }) => "Invalid topic token ".concat(e, ". In order to use ").concat(e, ' as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "').concat(e, '" }.'),
  PipeTopicUnused: "Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.",
  PipeUnparenthesizedBody: ({
    type: e
  }) => "Hack-style pipe body cannot be an unparenthesized ".concat(RP({
    type: e
  }), "; please wrap it in parentheses."),
  PipelineBodyNoArrow: 'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.',
  PipelineBodySequenceExpression: "Pipeline body may not be a comma-separated sequence expression.",
  PipelineHeadSequenceExpression: "Pipeline head should not be a comma-separated sequence expression.",
  PipelineTopicUnused: "Pipeline is in topic style but does not use topic reference.",
  PrimaryTopicNotAllowed: "Topic reference was used in a lexical context without topic binding.",
  PrimaryTopicRequiresSmartPipeline: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.'
};
const pMt = ["message"];
function cZ(e, t, r) {
  Object.defineProperty(e, t, {
    enumerable: !1,
    configurable: !0,
    value: r
  });
}
function fMt({
  toMessage: e,
  code: t,
  reasonCode: r,
  syntaxPlugin: i
}) {
  const n = r === "MissingPlugin" || r === "MissingOneOfPlugins";
  {
    const s = {
      AccessorCannotDeclareThisParameter: "AccesorCannotDeclareThisParameter",
      AccessorCannotHaveTypeParameters: "AccesorCannotHaveTypeParameters",
      ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: "ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference",
      SetAccessorCannotHaveOptionalParameter: "SetAccesorCannotHaveOptionalParameter",
      SetAccessorCannotHaveRestParameter: "SetAccesorCannotHaveRestParameter",
      SetAccessorCannotHaveReturnType: "SetAccesorCannotHaveReturnType"
    };
    s[r] && (r = s[r]);
  }
  return function s(a, o) {
    const l = new SyntaxError();
    return l.code = t, l.reasonCode = r, l.loc = a, l.pos = a.index, l.syntaxPlugin = i, n && (l.missingPlugin = o.missingPlugin), cZ(l, "clone", function(c = {}) {
      var f;
      const {
        line: h,
        column: m,
        index: g
      } = (f = c.loc) != null ? f : a;
      return s(new Dh(h, m, g), Object.assign({}, o, c.details));
    }), cZ(l, "details", o), Object.defineProperty(l, "message", {
      configurable: !0,
      get() {
        const u = "".concat(e(o), " (").concat(a.line, ":").concat(a.column, ")");
        return this.message = u, u;
      },
      set(u) {
        Object.defineProperty(this, "message", {
          value: u,
          writable: !0
        });
      }
    }), l;
  };
}
function mf(e, t) {
  if (Array.isArray(e))
    return (i) => mf(i, e[0]);
  const r = {};
  for (const i of Object.keys(e)) {
    const n = e[i], s = typeof n == "string" ? {
      message: () => n
    } : typeof n == "function" ? {
      message: n
    } : n, {
      message: a
    } = s, o = sMt(s, pMt), l = typeof a == "string" ? () => a : a;
    r[i] = fMt(Object.assign({
      code: "BABEL_PARSER_SYNTAX_ERROR",
      reasonCode: i,
      toMessage: l
    }, t ? {
      syntaxPlugin: t
    } : {}, o));
  }
  return r;
}
var wae;
const et = Object.assign({}, mf(aMt), mf(oMt), mf(lMt), mf(wae || (wae = at(["pipelineOperator"])))(cMt)), {
  defineProperty: hMt
} = Object, pZ = (e, t) => {
  e && hMt(e, t, {
    enumerable: !1,
    value: e[t]
  });
};
function a0(e) {
  return pZ(e.loc.start, "index"), pZ(e.loc.end, "index"), e;
}
var dMt = (e) => class extends e {
  parse() {
    const r = a0(super.parse());
    return this.options.tokens && (r.tokens = r.tokens.map(a0)), r;
  }
  parseRegExpLiteral({
    pattern: r,
    flags: i
  }) {
    let n = null;
    try {
      n = new RegExp(r, i);
    } catch (a) {
    }
    const s = this.estreeParseLiteral(n);
    return s.regex = {
      pattern: r,
      flags: i
    }, s;
  }
  parseBigIntLiteral(r) {
    let i;
    try {
      i = BigInt(r);
    } catch (s) {
      i = null;
    }
    const n = this.estreeParseLiteral(i);
    return n.bigint = String(n.value || r), n;
  }
  parseDecimalLiteral(r) {
    const n = this.estreeParseLiteral(null);
    return n.decimal = String(n.value || r), n;
  }
  estreeParseLiteral(r) {
    return this.parseLiteral(r, "Literal");
  }
  parseStringLiteral(r) {
    return this.estreeParseLiteral(r);
  }
  parseNumericLiteral(r) {
    return this.estreeParseLiteral(r);
  }
  parseNullLiteral() {
    return this.estreeParseLiteral(null);
  }
  parseBooleanLiteral(r) {
    return this.estreeParseLiteral(r);
  }
  directiveToStmt(r) {
    const i = r.value;
    delete r.value, i.type = "Literal", i.raw = i.extra.raw, i.value = i.extra.expressionValue;
    const n = r;
    return n.type = "ExpressionStatement", n.expression = i, n.directive = i.extra.rawValue, delete i.extra, n;
  }
  initFunction(r, i) {
    super.initFunction(r, i), r.expression = !1;
  }
  checkDeclaration(r) {
    r != null && this.isObjectProperty(r) ? this.checkDeclaration(r.value) : super.checkDeclaration(r);
  }
  getObjectOrClassMethodParams(r) {
    return r.value.params;
  }
  isValidDirective(r) {
    var i;
    return r.type === "ExpressionStatement" && r.expression.type === "Literal" && typeof r.expression.value == "string" && !((i = r.expression.extra) != null && i.parenthesized);
  }
  parseBlockBody(r, i, n, s, a) {
    super.parseBlockBody(r, i, n, s, a);
    const o = r.directives.map((l) => this.directiveToStmt(l));
    r.body = o.concat(r.body), delete r.directives;
  }
  pushClassMethod(r, i, n, s, a, o) {
    this.parseMethod(i, n, s, a, o, "ClassMethod", !0), i.typeParameters && (i.value.typeParameters = i.typeParameters, delete i.typeParameters), r.body.push(i);
  }
  parsePrivateName() {
    const r = super.parsePrivateName();
    return this.getPluginOption("estree", "classFeatures") ? this.convertPrivateNameToPrivateIdentifier(r) : r;
  }
  convertPrivateNameToPrivateIdentifier(r) {
    const i = super.getPrivateNameSV(r);
    return r = r, delete r.id, r.name = i, r.type = "PrivateIdentifier", r;
  }
  isPrivateName(r) {
    return this.getPluginOption("estree", "classFeatures") ? r.type === "PrivateIdentifier" : super.isPrivateName(r);
  }
  getPrivateNameSV(r) {
    return this.getPluginOption("estree", "classFeatures") ? r.name : super.getPrivateNameSV(r);
  }
  parseLiteral(r, i) {
    const n = super.parseLiteral(r, i);
    return n.raw = n.extra.raw, delete n.extra, n;
  }
  parseFunctionBody(r, i, n = !1) {
    super.parseFunctionBody(r, i, n), r.expression = r.body.type !== "BlockStatement";
  }
  parseMethod(r, i, n, s, a, o, l = !1) {
    let u = this.startNode();
    return u.kind = r.kind, u = super.parseMethod(u, i, n, s, a, o, l), u.type = "FunctionExpression", delete u.kind, r.value = u, o === "ClassPrivateMethod" && (r.computed = !1), this.finishNode(r, "MethodDefinition");
  }
  nameIsConstructor(r) {
    return r.type === "Literal" ? r.value === "constructor" : super.nameIsConstructor(r);
  }
  parseClassProperty(...r) {
    const i = super.parseClassProperty(...r);
    return this.getPluginOption("estree", "classFeatures") && (i.type = "PropertyDefinition"), i;
  }
  parseClassPrivateProperty(...r) {
    const i = super.parseClassPrivateProperty(...r);
    return this.getPluginOption("estree", "classFeatures") && (i.type = "PropertyDefinition", i.computed = !1), i;
  }
  parseObjectMethod(r, i, n, s, a) {
    const o = super.parseObjectMethod(r, i, n, s, a);
    return o && (o.type = "Property", o.kind === "method" && (o.kind = "init"), o.shorthand = !1), o;
  }
  parseObjectProperty(r, i, n, s) {
    const a = super.parseObjectProperty(r, i, n, s);
    return a && (a.kind = "init", a.type = "Property"), a;
  }
  isValidLVal(r, i, n) {
    return r === "Property" ? "value" : super.isValidLVal(r, i, n);
  }
  isAssignable(r, i) {
    return r != null && this.isObjectProperty(r) ? this.isAssignable(r.value, i) : super.isAssignable(r, i);
  }
  toAssignable(r, i = !1) {
    if (r != null && this.isObjectProperty(r)) {
      const {
        key: n,
        value: s
      } = r;
      this.isPrivateName(n) && this.classScope.usePrivateName(this.getPrivateNameSV(n), n.loc.start), this.toAssignable(s, i);
    } else
      super.toAssignable(r, i);
  }
  toAssignableObjectExpressionProp(r, i, n) {
    r.type === "Property" && (r.kind === "get" || r.kind === "set") ? this.raise(et.PatternHasAccessor, r.key) : r.type === "Property" && r.method ? this.raise(et.PatternHasMethod, r.key) : super.toAssignableObjectExpressionProp(r, i, n);
  }
  finishCallExpression(r, i) {
    const n = super.finishCallExpression(r, i);
    if (n.callee.type === "Import") {
      var s, a;
      n.type = "ImportExpression", n.source = n.arguments[0], n.options = (s = n.arguments[1]) != null ? s : null, n.attributes = (a = n.arguments[1]) != null ? a : null, delete n.arguments, delete n.callee;
    }
    return n;
  }
  toReferencedArguments(r) {
    r.type !== "ImportExpression" && super.toReferencedArguments(r);
  }
  parseExport(r, i) {
    const n = this.state.lastTokStartLoc, s = super.parseExport(r, i);
    switch (s.type) {
      case "ExportAllDeclaration":
        s.exported = null;
        break;
      case "ExportNamedDeclaration":
        s.specifiers.length === 1 && s.specifiers[0].type === "ExportNamespaceSpecifier" && (s.type = "ExportAllDeclaration", s.exported = s.specifiers[0].exported, delete s.specifiers);
      case "ExportDefaultDeclaration":
        {
          var a;
          const {
            declaration: o
          } = s;
          (o == null ? void 0 : o.type) === "ClassDeclaration" && ((a = o.decorators) == null ? void 0 : a.length) > 0 && o.start === s.start && this.resetStartLocation(s, n);
        }
        break;
    }
    return s;
  }
  parseSubscript(r, i, n, s) {
    const a = super.parseSubscript(r, i, n, s);
    if (s.optionalChainMember) {
      if ((a.type === "OptionalMemberExpression" || a.type === "OptionalCallExpression") && (a.type = a.type.substring(8)), s.stop) {
        const o = this.startNodeAtNode(a);
        return o.expression = a, this.finishNode(o, "ChainExpression");
      }
    } else
      (a.type === "MemberExpression" || a.type === "CallExpression") && (a.optional = !1);
    return a;
  }
  isOptionalMemberExpression(r) {
    return r.type === "ChainExpression" ? r.expression.type === "MemberExpression" : super.isOptionalMemberExpression(r);
  }
  hasPropertyAsPrivateName(r) {
    return r.type === "ChainExpression" && (r = r.expression), super.hasPropertyAsPrivateName(r);
  }
  isObjectProperty(r) {
    return r.type === "Property" && r.kind === "init" && !r.method;
  }
  isObjectMethod(r) {
    return r.type === "Property" && (r.method || r.kind === "get" || r.kind === "set");
  }
  finishNodeAt(r, i, n) {
    return a0(super.finishNodeAt(r, i, n));
  }
  resetStartLocation(r, i) {
    super.resetStartLocation(r, i), a0(r);
  }
  resetEndLocation(r, i = this.state.lastTokEndLoc) {
    super.resetEndLocation(r, i), a0(r);
  }
};
let k0 = class {
  constructor(t, r) {
    this.token = void 0, this.preserveSpace = void 0, this.token = t, this.preserveSpace = !!r;
  }
};
const Fi = {
  brace: new k0("{"),
  j_oTag: new k0("<tag"),
  j_cTag: new k0("</tag"),
  j_expr: new k0("<tag>...</tag>", !0)
};
Fi.template = new k0("`", !0);
const Ur = !0, Mt = !0, w3 = !0, o0 = !0, sh = !0, mMt = !0;
class qye {
  constructor(t, r = {}) {
    this.label = void 0, this.keyword = void 0, this.beforeExpr = void 0, this.startsExpr = void 0, this.rightAssociative = void 0, this.isLoop = void 0, this.isAssign = void 0, this.prefix = void 0, this.postfix = void 0, this.binop = void 0, this.label = t, this.keyword = r.keyword, this.beforeExpr = !!r.beforeExpr, this.startsExpr = !!r.startsExpr, this.rightAssociative = !!r.rightAssociative, this.isLoop = !!r.isLoop, this.isAssign = !!r.isAssign, this.prefix = !!r.prefix, this.postfix = !!r.postfix, this.binop = r.binop != null ? r.binop : null, this.updateContext = null;
  }
}
const l7 = /* @__PURE__ */ new Map();
function li(e, t = {}) {
  t.keyword = e;
  const r = sr(e, t);
  return l7.set(e, r), r;
}
function ta(e, t) {
  return sr(e, {
    beforeExpr: Ur,
    binop: t
  });
}
let sv = -1;
const Zp = [], u7 = [], c7 = [], p7 = [], f7 = [], h7 = [];
function sr(e, t = {}) {
  var r, i, n, s;
  return ++sv, u7.push(e), c7.push((r = t.binop) != null ? r : -1), p7.push((i = t.beforeExpr) != null ? i : !1), f7.push((n = t.startsExpr) != null ? n : !1), h7.push((s = t.prefix) != null ? s : !1), Zp.push(new qye(e, t)), sv;
}
function Br(e, t = {}) {
  var r, i, n, s;
  return ++sv, l7.set(e, sv), u7.push(e), c7.push((r = t.binop) != null ? r : -1), p7.push((i = t.beforeExpr) != null ? i : !1), f7.push((n = t.startsExpr) != null ? n : !1), h7.push((s = t.prefix) != null ? s : !1), Zp.push(new qye("name", t)), sv;
}
const yMt = {
  bracketL: sr("[", {
    beforeExpr: Ur,
    startsExpr: Mt
  }),
  bracketHashL: sr("#[", {
    beforeExpr: Ur,
    startsExpr: Mt
  }),
  bracketBarL: sr("[|", {
    beforeExpr: Ur,
    startsExpr: Mt
  }),
  bracketR: sr("]"),
  bracketBarR: sr("|]"),
  braceL: sr("{", {
    beforeExpr: Ur,
    startsExpr: Mt
  }),
  braceBarL: sr("{|", {
    beforeExpr: Ur,
    startsExpr: Mt
  }),
  braceHashL: sr("#{", {
    beforeExpr: Ur,
    startsExpr: Mt
  }),
  braceR: sr("}"),
  braceBarR: sr("|}"),
  parenL: sr("(", {
    beforeExpr: Ur,
    startsExpr: Mt
  }),
  parenR: sr(")"),
  comma: sr(",", {
    beforeExpr: Ur
  }),
  semi: sr(";", {
    beforeExpr: Ur
  }),
  colon: sr(":", {
    beforeExpr: Ur
  }),
  doubleColon: sr("::", {
    beforeExpr: Ur
  }),
  dot: sr("."),
  question: sr("?", {
    beforeExpr: Ur
  }),
  questionDot: sr("?."),
  arrow: sr("=>", {
    beforeExpr: Ur
  }),
  template: sr("template"),
  ellipsis: sr("...", {
    beforeExpr: Ur
  }),
  backQuote: sr("`", {
    startsExpr: Mt
  }),
  dollarBraceL: sr("${", {
    beforeExpr: Ur,
    startsExpr: Mt
  }),
  templateTail: sr("...`", {
    startsExpr: Mt
  }),
  templateNonTail: sr("...${", {
    beforeExpr: Ur,
    startsExpr: Mt
  }),
  at: sr("@"),
  hash: sr("#", {
    startsExpr: Mt
  }),
  interpreterDirective: sr("#!..."),
  eq: sr("=", {
    beforeExpr: Ur,
    isAssign: o0
  }),
  assign: sr("_=", {
    beforeExpr: Ur,
    isAssign: o0
  }),
  slashAssign: sr("_=", {
    beforeExpr: Ur,
    isAssign: o0
  }),
  xorAssign: sr("_=", {
    beforeExpr: Ur,
    isAssign: o0
  }),
  moduloAssign: sr("_=", {
    beforeExpr: Ur,
    isAssign: o0
  }),
  incDec: sr("++/--", {
    prefix: sh,
    postfix: mMt,
    startsExpr: Mt
  }),
  bang: sr("!", {
    beforeExpr: Ur,
    prefix: sh,
    startsExpr: Mt
  }),
  tilde: sr("~", {
    beforeExpr: Ur,
    prefix: sh,
    startsExpr: Mt
  }),
  doubleCaret: sr("^^", {
    startsExpr: Mt
  }),
  doubleAt: sr("@@", {
    startsExpr: Mt
  }),
  pipeline: ta("|>", 0),
  nullishCoalescing: ta("??", 1),
  logicalOR: ta("||", 1),
  logicalAND: ta("&&", 2),
  bitwiseOR: ta("|", 3),
  bitwiseXOR: ta("^", 4),
  bitwiseAND: ta("&", 5),
  equality: ta("==/!=/===/!==", 6),
  lt: ta("</>/<=/>=", 7),
  gt: ta("</>/<=/>=", 7),
  relational: ta("</>/<=/>=", 7),
  bitShift: ta("<</>>/>>>", 8),
  bitShiftL: ta("<</>>/>>>", 8),
  bitShiftR: ta("<</>>/>>>", 8),
  plusMin: sr("+/-", {
    beforeExpr: Ur,
    binop: 9,
    prefix: sh,
    startsExpr: Mt
  }),
  modulo: sr("%", {
    binop: 10,
    startsExpr: Mt
  }),
  star: sr("*", {
    binop: 10
  }),
  slash: ta("/", 10),
  exponent: sr("**", {
    beforeExpr: Ur,
    binop: 11,
    rightAssociative: !0
  }),
  _in: li("in", {
    beforeExpr: Ur,
    binop: 7
  }),
  _instanceof: li("instanceof", {
    beforeExpr: Ur,
    binop: 7
  }),
  _break: li("break"),
  _case: li("case", {
    beforeExpr: Ur
  }),
  _catch: li("catch"),
  _continue: li("continue"),
  _debugger: li("debugger"),
  _default: li("default", {
    beforeExpr: Ur
  }),
  _else: li("else", {
    beforeExpr: Ur
  }),
  _finally: li("finally"),
  _function: li("function", {
    startsExpr: Mt
  }),
  _if: li("if"),
  _return: li("return", {
    beforeExpr: Ur
  }),
  _switch: li("switch"),
  _throw: li("throw", {
    beforeExpr: Ur,
    prefix: sh,
    startsExpr: Mt
  }),
  _try: li("try"),
  _var: li("var"),
  _const: li("const"),
  _with: li("with"),
  _new: li("new", {
    beforeExpr: Ur,
    startsExpr: Mt
  }),
  _this: li("this", {
    startsExpr: Mt
  }),
  _super: li("super", {
    startsExpr: Mt
  }),
  _class: li("class", {
    startsExpr: Mt
  }),
  _extends: li("extends", {
    beforeExpr: Ur
  }),
  _export: li("export"),
  _import: li("import", {
    startsExpr: Mt
  }),
  _null: li("null", {
    startsExpr: Mt
  }),
  _true: li("true", {
    startsExpr: Mt
  }),
  _false: li("false", {
    startsExpr: Mt
  }),
  _typeof: li("typeof", {
    beforeExpr: Ur,
    prefix: sh,
    startsExpr: Mt
  }),
  _void: li("void", {
    beforeExpr: Ur,
    prefix: sh,
    startsExpr: Mt
  }),
  _delete: li("delete", {
    beforeExpr: Ur,
    prefix: sh,
    startsExpr: Mt
  }),
  _do: li("do", {
    isLoop: w3,
    beforeExpr: Ur
  }),
  _for: li("for", {
    isLoop: w3
  }),
  _while: li("while", {
    isLoop: w3
  }),
  _as: Br("as", {
    startsExpr: Mt
  }),
  _assert: Br("assert", {
    startsExpr: Mt
  }),
  _async: Br("async", {
    startsExpr: Mt
  }),
  _await: Br("await", {
    startsExpr: Mt
  }),
  _defer: Br("defer", {
    startsExpr: Mt
  }),
  _from: Br("from", {
    startsExpr: Mt
  }),
  _get: Br("get", {
    startsExpr: Mt
  }),
  _let: Br("let", {
    startsExpr: Mt
  }),
  _meta: Br("meta", {
    startsExpr: Mt
  }),
  _of: Br("of", {
    startsExpr: Mt
  }),
  _sent: Br("sent", {
    startsExpr: Mt
  }),
  _set: Br("set", {
    startsExpr: Mt
  }),
  _source: Br("source", {
    startsExpr: Mt
  }),
  _static: Br("static", {
    startsExpr: Mt
  }),
  _using: Br("using", {
    startsExpr: Mt
  }),
  _yield: Br("yield", {
    startsExpr: Mt
  }),
  _asserts: Br("asserts", {
    startsExpr: Mt
  }),
  _checks: Br("checks", {
    startsExpr: Mt
  }),
  _exports: Br("exports", {
    startsExpr: Mt
  }),
  _global: Br("global", {
    startsExpr: Mt
  }),
  _implements: Br("implements", {
    startsExpr: Mt
  }),
  _intrinsic: Br("intrinsic", {
    startsExpr: Mt
  }),
  _infer: Br("infer", {
    startsExpr: Mt
  }),
  _is: Br("is", {
    startsExpr: Mt
  }),
  _mixins: Br("mixins", {
    startsExpr: Mt
  }),
  _proto: Br("proto", {
    startsExpr: Mt
  }),
  _require: Br("require", {
    startsExpr: Mt
  }),
  _satisfies: Br("satisfies", {
    startsExpr: Mt
  }),
  _keyof: Br("keyof", {
    startsExpr: Mt
  }),
  _readonly: Br("readonly", {
    startsExpr: Mt
  }),
  _unique: Br("unique", {
    startsExpr: Mt
  }),
  _abstract: Br("abstract", {
    startsExpr: Mt
  }),
  _declare: Br("declare", {
    startsExpr: Mt
  }),
  _enum: Br("enum", {
    startsExpr: Mt
  }),
  _module: Br("module", {
    startsExpr: Mt
  }),
  _namespace: Br("namespace", {
    startsExpr: Mt
  }),
  _interface: Br("interface", {
    startsExpr: Mt
  }),
  _type: Br("type", {
    startsExpr: Mt
  }),
  _opaque: Br("opaque", {
    startsExpr: Mt
  }),
  name: sr("name", {
    startsExpr: Mt
  }),
  placeholder: sr("%%", {
    startsExpr: !0
  }),
  string: sr("string", {
    startsExpr: Mt
  }),
  num: sr("num", {
    startsExpr: Mt
  }),
  bigint: sr("bigint", {
    startsExpr: Mt
  }),
  decimal: sr("decimal", {
    startsExpr: Mt
  }),
  regexp: sr("regexp", {
    startsExpr: Mt
  }),
  privateName: sr("#name", {
    startsExpr: Mt
  }),
  eof: sr("eof"),
  jsxName: sr("jsxName"),
  jsxText: sr("jsxText", {
    beforeExpr: !0
  }),
  jsxTagStart: sr("jsxTagStart", {
    startsExpr: !0
  }),
  jsxTagEnd: sr("jsxTagEnd")
};
function Ei(e) {
  return e >= 93 && e <= 133;
}
function gMt(e) {
  return e <= 92;
}
function Nc(e) {
  return e >= 58 && e <= 133;
}
function Vye(e) {
  return e >= 58 && e <= 137;
}
function bMt(e) {
  return p7[e];
}
function g8(e) {
  return f7[e];
}
function vMt(e) {
  return e >= 29 && e <= 33;
}
function fZ(e) {
  return e >= 129 && e <= 131;
}
function TMt(e) {
  return e >= 90 && e <= 92;
}
function d7(e) {
  return e >= 58 && e <= 92;
}
function SMt(e) {
  return e >= 39 && e <= 59;
}
function xMt(e) {
  return e === 34;
}
function EMt(e) {
  return h7[e];
}
function PMt(e) {
  return e >= 121 && e <= 123;
}
function wMt(e) {
  return e >= 124 && e <= 130;
}
function Lh(e) {
  return u7[e];
}
function BP(e) {
  return c7[e];
}
function AMt(e) {
  return e === 57;
}
function Jw(e) {
  return e >= 24 && e <= 25;
}
function zp(e) {
  return Zp[e];
}
Zp[8].updateContext = (e) => {
  e.pop();
}, Zp[5].updateContext = Zp[7].updateContext = Zp[23].updateContext = (e) => {
  e.push(Fi.brace);
}, Zp[22].updateContext = (e) => {
  e[e.length - 1] === Fi.template ? e.pop() : e.push(Fi.template);
}, Zp[143].updateContext = (e) => {
  e.push(Fi.j_expr, Fi.j_oTag);
};
let m7 = "ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢎࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೝೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲊᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꟍꟐꟑꟓꟕ-Ƛꟲ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ﬀ-ﬆﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼＡ-Ｚａ-ｚｦ-ﾾￂ-ￇￊ-ￏￒ-ￗￚ-ￜ", Wye = "·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࢗ-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-ᫎᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‌‍‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯・꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏０-９＿･";
const CMt = new RegExp("[" + m7 + "]"), _Mt = new RegExp("[" + m7 + Wye + "]");
m7 = Wye = null;
const Hye = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 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, 39, 27, 10, 22, 251, 41, 7, 1, 17, 2, 60, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 42, 9, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 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, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 496, 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, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191], IMt = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 80, 3, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 343, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 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, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 726, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
function b8(e, t) {
  let r = 65536;
  for (let i = 0, n = t.length; i < n; i += 2) {
    if (r += t[i], r > e)
      return !1;
    if (r += t[i + 1], r >= e)
      return !0;
  }
  return !1;
}
function of(e) {
  return e < 65 ? e === 36 : e <= 90 ? !0 : e < 97 ? e === 95 : e <= 122 ? !0 : e <= 65535 ? e >= 170 && CMt.test(String.fromCharCode(e)) : b8(e, Hye);
}
function Ny(e) {
  return e < 48 ? e === 36 : e < 58 ? !0 : e < 65 ? !1 : e <= 90 ? !0 : e < 97 ? e === 95 : e <= 122 ? !0 : e <= 65535 ? e >= 170 && _Mt.test(String.fromCharCode(e)) : b8(e, Hye) || b8(e, IMt);
}
const y7 = {
  keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"],
  strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"],
  strictBind: ["eval", "arguments"]
}, kMt = new Set(y7.keyword), OMt = new Set(y7.strict), NMt = new Set(y7.strictBind);
function Kye(e, t) {
  return t && e === "await" || e === "enum";
}
function zye(e, t) {
  return Kye(e, t) || OMt.has(e);
}
function Gye(e) {
  return NMt.has(e);
}
function Yye(e, t) {
  return zye(e, t) || Gye(e);
}
function DMt(e) {
  return kMt.has(e);
}
function LMt(e, t, r) {
  return e === 64 && t === 64 && of(r);
}
const MMt = /* @__PURE__ */ new Set(["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete", "implements", "interface", "let", "package", "private", "protected", "public", "static", "yield", "eval", "arguments", "enum", "await"]);
function RMt(e) {
  return MMt.has(e);
}
let g7 = class {
  constructor(t) {
    this.flags = 0, this.names = /* @__PURE__ */ new Map(), this.firstLexicalName = "", this.flags = t;
  }
};
class b7 {
  constructor(t, r) {
    this.parser = void 0, this.scopeStack = [], this.inModule = void 0, this.undefinedExports = /* @__PURE__ */ new Map(), this.parser = t, this.inModule = r;
  }
  get inTopLevel() {
    return (this.currentScope().flags & 1) > 0;
  }
  get inFunction() {
    return (this.currentVarScopeFlags() & 2) > 0;
  }
  get allowSuper() {
    return (this.currentThisScopeFlags() & 16) > 0;
  }
  get allowDirectSuper() {
    return (this.currentThisScopeFlags() & 32) > 0;
  }
  get inClass() {
    return (this.currentThisScopeFlags() & 64) > 0;
  }
  get inClassAndNotInNonArrowFunction() {
    const t = this.currentThisScopeFlags();
    return (t & 64) > 0 && (t & 2) === 0;
  }
  get inStaticBlock() {
    for (let t = this.scopeStack.length - 1; ; t--) {
      const {
        flags: r
      } = this.scopeStack[t];
      if (r & 128)
        return !0;
      if (r & 451)
        return !1;
    }
  }
  get inNonArrowFunction() {
    return (this.currentThisScopeFlags() & 2) > 0;
  }
  get treatFunctionsAsVar() {
    return this.treatFunctionsAsVarInScope(this.currentScope());
  }
  createScope(t) {
    return new g7(t);
  }
  enter(t) {
    this.scopeStack.push(this.createScope(t));
  }
  exit() {
    return this.scopeStack.pop().flags;
  }
  treatFunctionsAsVarInScope(t) {
    return !!(t.flags & 130 || !this.parser.inModule && t.flags & 1);
  }
  declareName(t, r, i) {
    let n = this.currentScope();
    if (r & 8 || r & 16) {
      this.checkRedeclarationInScope(n, t, r, i);
      let s = n.names.get(t) || 0;
      r & 16 ? s = s | 4 : (n.firstLexicalName || (n.firstLexicalName = t), s = s | 2), n.names.set(t, s), r & 8 && this.maybeExportDefined(n, t);
    } else if (r & 4)
      for (let s = this.scopeStack.length - 1; s >= 0 && (n = this.scopeStack[s], this.checkRedeclarationInScope(n, t, r, i), n.names.set(t, (n.names.get(t) || 0) | 1), this.maybeExportDefined(n, t), !(n.flags & 387)); --s)
        ;
    this.parser.inModule && n.flags & 1 && this.undefinedExports.delete(t);
  }
  maybeExportDefined(t, r) {
    this.parser.inModule && t.flags & 1 && this.undefinedExports.delete(r);
  }
  checkRedeclarationInScope(t, r, i, n) {
    this.isRedeclaredInScope(t, r, i) && this.parser.raise(et.VarRedeclaration, n, {
      identifierName: r
    });
  }
  isRedeclaredInScope(t, r, i) {
    if (!(i & 1))
      return !1;
    if (i & 8)
      return t.names.has(r);
    const n = t.names.get(r);
    return i & 16 ? (n & 2) > 0 || !this.treatFunctionsAsVarInScope(t) && (n & 1) > 0 : (n & 2) > 0 && !(t.flags & 8 && t.firstLexicalName === r) || !this.treatFunctionsAsVarInScope(t) && (n & 4) > 0;
  }
  checkLocalExport(t) {
    const {
      name: r
    } = t;
    this.scopeStack[0].names.has(r) || this.undefinedExports.set(r, t.loc.start);
  }
  currentScope() {
    return this.scopeStack[this.scopeStack.length - 1];
  }
  currentVarScopeFlags() {
    for (let t = this.scopeStack.length - 1; ; t--) {
      const {
        flags: r
      } = this.scopeStack[t];
      if (r & 387)
        return r;
    }
  }
  currentThisScopeFlags() {
    for (let t = this.scopeStack.length - 1; ; t--) {
      const {
        flags: r
      } = this.scopeStack[t];
      if (r & 451 && !(r & 4))
        return r;
    }
  }
}
class BMt extends g7 {
  constructor(...t) {
    super(...t), this.declareFunctions = /* @__PURE__ */ new Set();
  }
}
class FMt extends b7 {
  createScope(t) {
    return new BMt(t);
  }
  declareName(t, r, i) {
    const n = this.currentScope();
    if (r & 2048) {
      this.checkRedeclarationInScope(n, t, r, i), this.maybeExportDefined(n, t), n.declareFunctions.add(t);
      return;
    }
    super.declareName(t, r, i);
  }
  isRedeclaredInScope(t, r, i) {
    if (super.isRedeclaredInScope(t, r, i))
      return !0;
    if (i & 2048 && !t.declareFunctions.has(r)) {
      const n = t.names.get(r);
      return (n & 4) > 0 || (n & 2) > 0;
    }
    return !1;
  }
  checkLocalExport(t) {
    this.scopeStack[0].declareFunctions.has(t.name) || super.checkLocalExport(t);
  }
}
class jMt {
  constructor() {
    this.sawUnambiguousESM = !1, this.ambiguousScriptDifferentAst = !1;
  }
  sourceToOffsetPos(t) {
    return t + this.startIndex;
  }
  offsetToSourcePos(t) {
    return t - this.startIndex;
  }
  hasPlugin(t) {
    if (typeof t == "string")
      return this.plugins.has(t);
    {
      const [r, i] = t;
      if (!this.hasPlugin(r))
        return !1;
      const n = this.plugins.get(r);
      for (const s of Object.keys(i))
        if ((n == null ? void 0 : n[s]) !== i[s])
          return !1;
      return !0;
    }
  }
  getPluginOption(t, r) {
    var i;
    return (i = this.plugins.get(t)) == null ? void 0 : i[r];
  }
}
function Xye(e, t) {
  e.trailingComments === void 0 ? e.trailingComments = t : e.trailingComments.unshift(...t);
}
function $Mt(e, t) {
  e.leadingComments === void 0 ? e.leadingComments = t : e.leadingComments.unshift(...t);
}
function eT(e, t) {
  e.innerComments === void 0 ? e.innerComments = t : e.innerComments.unshift(...t);
}
function l0(e, t, r) {
  let i = null, n = t.length;
  for (; i === null && n > 0; )
    i = t[--n];
  i === null || i.start > r.start ? eT(e, r.comments) : Xye(i, r.comments);
}
class UMt extends jMt {
  addComment(t) {
    this.filename && (t.loc.filename = this.filename);
    const {
      commentsLen: r
    } = this.state;
    this.comments.length !== r && (this.comments.length = r), this.comments.push(t), this.state.commentsLen++;
  }
  processComment(t) {
    const {
      commentStack: r
    } = this.state, i = r.length;
    if (i === 0)
      return;
    let n = i - 1;
    const s = r[n];
    s.start === t.end && (s.leadingNode = t, n--);
    const {
      start: a
    } = t;
    for (; n >= 0; n--) {
      const o = r[n], l = o.end;
      if (l > a)
        o.containingNode = t, this.finalizeComment(o), r.splice(n, 1);
      else {
        l === a && (o.trailingNode = t);
        break;
      }
    }
  }
  finalizeComment(t) {
    const {
      comments: r
    } = t;
    if (t.leadingNode !== null || t.trailingNode !== null)
      t.leadingNode !== null && Xye(t.leadingNode, r), t.trailingNode !== null && $Mt(t.trailingNode, r);
    else {
      const {
        containingNode: i,
        start: n
      } = t;
      if (this.input.charCodeAt(this.offsetToSourcePos(n) - 1) === 44)
        switch (i.type) {
          case "ObjectExpression":
          case "ObjectPattern":
          case "RecordExpression":
            l0(i, i.properties, t);
            break;
          case "CallExpression":
          case "OptionalCallExpression":
            l0(i, i.arguments, t);
            break;
          case "FunctionDeclaration":
          case "FunctionExpression":
          case "ArrowFunctionExpression":
          case "ObjectMethod":
          case "ClassMethod":
          case "ClassPrivateMethod":
            l0(i, i.params, t);
            break;
          case "ArrayExpression":
          case "ArrayPattern":
          case "TupleExpression":
            l0(i, i.elements, t);
            break;
          case "ExportNamedDeclaration":
          case "ImportDeclaration":
            l0(i, i.specifiers, t);
            break;
          default:
            eT(i, r);
        }
      else
        eT(i, r);
    }
  }
  finalizeRemainingComments() {
    const {
      commentStack: t
    } = this.state;
    for (let r = t.length - 1; r >= 0; r--)
      this.finalizeComment(t[r]);
    this.state.commentStack = [];
  }
  resetPreviousNodeTrailingComments(t) {
    const {
      commentStack: r
    } = this.state, {
      length: i
    } = r;
    if (i === 0)
      return;
    const n = r[i - 1];
    n.leadingNode === t && (n.leadingNode = null);
  }
  resetPreviousIdentifierLeadingComments(t) {
    const {
      commentStack: r
    } = this.state, {
      length: i
    } = r;
    i !== 0 && (r[i - 1].trailingNode === t ? r[i - 1].trailingNode = null : i >= 2 && r[i - 2].trailingNode === t && (r[i - 2].trailingNode = null));
  }
  takeSurroundingComments(t, r, i) {
    const {
      commentStack: n
    } = this.state, s = n.length;
    if (s === 0)
      return;
    let a = s - 1;
    for (; a >= 0; a--) {
      const o = n[a], l = o.end;
      if (o.start === i)
        o.leadingNode = t;
      else if (l === r)
        o.trailingNode = t;
      else if (l < r)
        break;
    }
  }
}
const qMt = /\r\n|[\r\n\u2028\u2029]/, E1 = new RegExp(qMt.source, "g");
function Dy(e) {
  switch (e) {
    case 10:
    case 13:
    case 8232:
    case 8233:
      return !0;
    default:
      return !1;
  }
}
function hZ(e, t, r) {
  for (let i = t; i < r; i++)
    if (Dy(e.charCodeAt(i)))
      return !0;
  return !1;
}
const A3 = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g, C3 = /(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g;
function VMt(e) {
  switch (e) {
    case 9:
    case 11:
    case 12:
    case 32:
    case 160:
    case 5760:
    case 8192:
    case 8193:
    case 8194:
    case 8195:
    case 8196:
    case 8197:
    case 8198:
    case 8199:
    case 8200:
    case 8201:
    case 8202:
    case 8239:
    case 8287:
    case 12288:
    case 65279:
      return !0;
    default:
      return !1;
  }
}
class v7 {
  constructor() {
    this.flags = 1024, this.startIndex = void 0, this.curLine = void 0, this.lineStart = void 0, this.startLoc = void 0, this.endLoc = void 0, this.errors = [], this.potentialArrowAt = -1, this.noArrowAt = [], this.noArrowParamsConversionAt = [], this.topicContext = {
      maxNumOfResolvableTopics: 0,
      maxTopicIndex: null
    }, this.labels = [], this.commentsLen = 0, this.commentStack = [], this.pos = 0, this.type = 140, this.value = null, this.start = 0, this.end = 0, this.lastTokEndLoc = null, this.lastTokStartLoc = null, this.context = [Fi.brace], this.firstInvalidTemplateEscapePos = null, this.strictErrors = /* @__PURE__ */ new Map(), this.tokensLength = 0;
  }
  get strict() {
    return (this.flags & 1) > 0;
  }
  set strict(t) {
    t ? this.flags |= 1 : this.flags &= -2;
  }
  init({
    strictMode: t,
    sourceType: r,
    startIndex: i,
    startLine: n,
    startColumn: s
  }) {
    this.strict = t === !1 ? !1 : t === !0 ? !0 : r === "module", this.startIndex = i, this.curLine = n, this.lineStart = -s, this.startLoc = this.endLoc = new Dh(n, s, i);
  }
  get maybeInArrowParameters() {
    return (this.flags & 2) > 0;
  }
  set maybeInArrowParameters(t) {
    t ? this.flags |= 2 : this.flags &= -3;
  }
  get inType() {
    return (this.flags & 4) > 0;
  }
  set inType(t) {
    t ? this.flags |= 4 : this.flags &= -5;
  }
  get noAnonFunctionType() {
    return (this.flags & 8) > 0;
  }
  set noAnonFunctionType(t) {
    t ? this.flags |= 8 : this.flags &= -9;
  }
  get hasFlowComment() {
    return (this.flags & 16) > 0;
  }
  set hasFlowComment(t) {
    t ? this.flags |= 16 : this.flags &= -17;
  }
  get isAmbientContext() {
    return (this.flags & 32) > 0;
  }
  set isAmbientContext(t) {
    t ? this.flags |= 32 : this.flags &= -33;
  }
  get inAbstractClass() {
    return (this.flags & 64) > 0;
  }
  set inAbstractClass(t) {
    t ? this.flags |= 64 : this.flags &= -65;
  }
  get inDisallowConditionalTypesContext() {
    return (this.flags & 128) > 0;
  }
  set inDisallowConditionalTypesContext(t) {
    t ? this.flags |= 128 : this.flags &= -129;
  }
  get soloAwait() {
    return (this.flags & 256) > 0;
  }
  set soloAwait(t) {
    t ? this.flags |= 256 : this.flags &= -257;
  }
  get inFSharpPipelineDirectBody() {
    return (this.flags & 512) > 0;
  }
  set inFSharpPipelineDirectBody(t) {
    t ? this.flags |= 512 : this.flags &= -513;
  }
  get canStartJSXElement() {
    return (this.flags & 1024) > 0;
  }
  set canStartJSXElement(t) {
    t ? this.flags |= 1024 : this.flags &= -1025;
  }
  get containsEsc() {
    return (this.flags & 2048) > 0;
  }
  set containsEsc(t) {
    t ? this.flags |= 2048 : this.flags &= -2049;
  }
  get hasTopLevelAwait() {
    return (this.flags & 4096) > 0;
  }
  set hasTopLevelAwait(t) {
    t ? this.flags |= 4096 : this.flags &= -4097;
  }
  curPosition() {
    return new Dh(this.curLine, this.pos - this.lineStart, this.pos + this.startIndex);
  }
  clone() {
    const t = new v7();
    return t.flags = this.flags, t.startIndex = this.startIndex, t.curLine = this.curLine, t.lineStart = this.lineStart, t.startLoc = this.startLoc, t.endLoc = this.endLoc, t.errors = this.errors.slice(), t.potentialArrowAt = this.potentialArrowAt, t.noArrowAt = this.noArrowAt.slice(), t.noArrowParamsConversionAt = this.noArrowParamsConversionAt.slice(), t.topicContext = this.topicContext, t.labels = this.labels.slice(), t.commentsLen = this.commentsLen, t.commentStack = this.commentStack.slice(), t.pos = this.pos, t.type = this.type, t.value = this.value, t.start = this.start, t.end = this.end, t.lastTokEndLoc = this.lastTokEndLoc, t.lastTokStartLoc = this.lastTokStartLoc, t.context = this.context.slice(), t.firstInvalidTemplateEscapePos = this.firstInvalidTemplateEscapePos, t.strictErrors = this.strictErrors, t.tokensLength = this.tokensLength, t;
  }
}
var WMt = function(t) {
  return t >= 48 && t <= 57;
};
const dZ = {
  decBinOct: /* @__PURE__ */ new Set([46, 66, 69, 79, 95, 98, 101, 111]),
  hex: /* @__PURE__ */ new Set([46, 88, 95, 120])
}, P1 = {
  bin: (e) => e === 48 || e === 49,
  oct: (e) => e >= 48 && e <= 55,
  dec: (e) => e >= 48 && e <= 57,
  hex: (e) => e >= 48 && e <= 57 || e >= 65 && e <= 70 || e >= 97 && e <= 102
};
function mZ(e, t, r, i, n, s) {
  const a = r, o = i, l = n;
  let u = "", c = null, f = r;
  const {
    length: h
  } = t;
  for (; ; ) {
    if (r >= h) {
      s.unterminated(a, o, l), u += t.slice(f, r);
      break;
    }
    const m = t.charCodeAt(r);
    if (HMt(e, m, t, r)) {
      u += t.slice(f, r);
      break;
    }
    if (m === 92) {
      u += t.slice(f, r);
      const g = KMt(t, r, i, n, e === "template", s);
      g.ch === null && !c ? c = {
        pos: r,
        lineStart: i,
        curLine: n
      } : u += g.ch, {
        pos: r,
        lineStart: i,
        curLine: n
      } = g, f = r;
    } else
      m === 8232 || m === 8233 ? (++r, ++n, i = r) : m === 10 || m === 13 ? e === "template" ? (u += t.slice(f, r) + "\n", ++r, m === 13 && t.charCodeAt(r) === 10 && ++r, ++n, f = i = r) : s.unterminated(a, o, l) : ++r;
  }
  return {
    pos: r,
    str: u,
    firstInvalidLoc: c,
    lineStart: i,
    curLine: n,
    containsInvalid: !!c
  };
}
function HMt(e, t, r, i) {
  return e === "template" ? t === 96 || t === 36 && r.charCodeAt(i + 1) === 123 : t === (e === "double" ? 34 : 39);
}
function KMt(e, t, r, i, n, s) {
  const a = !n;
  t++;
  const o = (u) => ({
    pos: t,
    ch: u,
    lineStart: r,
    curLine: i
  }), l = e.charCodeAt(t++);
  switch (l) {
    case 110:
      return o("\n");
    case 114:
      return o("\r");
    case 120: {
      let u;
      return {
        code: u,
        pos: t
      } = v8(e, t, r, i, 2, !1, a, s), o(u === null ? null : String.fromCharCode(u));
    }
    case 117: {
      let u;
      return {
        code: u,
        pos: t
      } = Qye(e, t, r, i, a, s), o(u === null ? null : String.fromCodePoint(u));
    }
    case 116:
      return o("	");
    case 98:
      return o("\b");
    case 118:
      return o("\v");
    case 102:
      return o("\f");
    case 13:
      e.charCodeAt(t) === 10 && ++t;
    case 10:
      r = t, ++i;
    case 8232:
    case 8233:
      return o("");
    case 56:
    case 57:
      if (n)
        return o(null);
      s.strictNumericEscape(t - 1, r, i);
    default:
      if (l >= 48 && l <= 55) {
        const u = t - 1;
        let f = /^[0-7]+/.exec(e.slice(u, t + 2))[0], h = parseInt(f, 8);
        h > 255 && (f = f.slice(0, -1), h = parseInt(f, 8)), t += f.length - 1;
        const m = e.charCodeAt(t);
        if (f !== "0" || m === 56 || m === 57) {
          if (n)
            return o(null);
          s.strictNumericEscape(u, r, i);
        }
        return o(String.fromCharCode(h));
      }
      return o(String.fromCharCode(l));
  }
}
function v8(e, t, r, i, n, s, a, o) {
  const l = t;
  let u;
  return {
    n: u,
    pos: t
  } = Jye(e, t, r, i, 16, n, s, !1, o, !a), u === null && (a ? o.invalidEscapeSequence(l, r, i) : t = l - 1), {
    code: u,
    pos: t
  };
}
function Jye(e, t, r, i, n, s, a, o, l, u) {
  const c = t, f = n === 16 ? dZ.hex : dZ.decBinOct, h = n === 16 ? P1.hex : n === 10 ? P1.dec : n === 8 ? P1.oct : P1.bin;
  let m = !1, g = 0;
  for (let y = 0, v = s == null ? 1 / 0 : s; y < v; ++y) {
    const T = e.charCodeAt(t);
    let S;
    if (T === 95 && o !== "bail") {
      const P = e.charCodeAt(t - 1), x = e.charCodeAt(t + 1);
      if (o) {
        if (Number.isNaN(x) || !h(x) || f.has(P) || f.has(x)) {
          if (u)
            return {
              n: null,
              pos: t
            };
          l.unexpectedNumericSeparator(t, r, i);
        }
      } else {
        if (u)
          return {
            n: null,
            pos: t
          };
        l.numericSeparatorInEscapeSequence(t, r, i);
      }
      ++t;
      continue;
    }
    if (T >= 97 ? S = T - 97 + 10 : T >= 65 ? S = T - 65 + 10 : WMt(T) ? S = T - 48 : S = 1 / 0, S >= n) {
      if (S <= 9 && u)
        return {
          n: null,
          pos: t
        };
      if (S <= 9 && l.invalidDigit(t, r, i, n))
        S = 0;
      else if (a)
        S = 0, m = !0;
      else
        break;
    }
    ++t, g = g * n + S;
  }
  return t === c || s != null && t - c !== s || m ? {
    n: null,
    pos: t
  } : {
    n: g,
    pos: t
  };
}
function Qye(e, t, r, i, n, s) {
  const a = e.charCodeAt(t);
  let o;
  if (a === 123) {
    if (++t, {
      code: o,
      pos: t
    } = v8(e, t, r, i, e.indexOf("}", t) - t, !0, n, s), ++t, o !== null && o > 1114111)
      if (n)
        s.invalidCodePoint(t, r, i);
      else
        return {
          code: null,
          pos: t
        };
  } else
    ({
      code: o,
      pos: t
    } = v8(e, t, r, i, 4, !1, n, s));
  return {
    code: o,
    pos: t
  };
}
function u0(e, t, r) {
  return new Dh(r, e - t, e);
}
const zMt = /* @__PURE__ */ new Set([103, 109, 115, 105, 121, 117, 100, 118]);
let dh = class {
  constructor(t) {
    const r = t.startIndex || 0;
    this.type = t.type, this.value = t.value, this.start = r + t.start, this.end = r + t.end, this.loc = new Xw(t.startLoc, t.endLoc);
  }
}, GMt = class extends UMt {
  constructor(t, r) {
    super(), this.isLookahead = void 0, this.tokens = [], this.errorHandlers_readInt = {
      invalidDigit: (i, n, s, a) => this.options.errorRecovery ? (this.raise(et.InvalidDigit, u0(i, n, s), {
        radix: a
      }), !0) : !1,
      numericSeparatorInEscapeSequence: this.errorBuilder(et.NumericSeparatorInEscapeSequence),
      unexpectedNumericSeparator: this.errorBuilder(et.UnexpectedNumericSeparator)
    }, this.errorHandlers_readCodePoint = Object.assign({}, this.errorHandlers_readInt, {
      invalidEscapeSequence: this.errorBuilder(et.InvalidEscapeSequence),
      invalidCodePoint: this.errorBuilder(et.InvalidCodePoint)
    }), this.errorHandlers_readStringContents_string = Object.assign({}, this.errorHandlers_readCodePoint, {
      strictNumericEscape: (i, n, s) => {
        this.recordStrictModeErrors(et.StrictNumericEscape, u0(i, n, s));
      },
      unterminated: (i, n, s) => {
        throw this.raise(et.UnterminatedString, u0(i - 1, n, s));
      }
    }), this.errorHandlers_readStringContents_template = Object.assign({}, this.errorHandlers_readCodePoint, {
      strictNumericEscape: this.errorBuilder(et.StrictNumericEscape),
      unterminated: (i, n, s) => {
        throw this.raise(et.UnterminatedTemplate, u0(i, n, s));
      }
    }), this.state = new v7(), this.state.init(t), this.input = r, this.length = r.length, this.comments = [], this.isLookahead = !1;
  }
  pushToken(t) {
    this.tokens.length = this.state.tokensLength, this.tokens.push(t), ++this.state.tokensLength;
  }
  next() {
    this.checkKeywordEscapes(), this.options.tokens && this.pushToken(new dh(this.state)), this.state.lastTokEndLoc = this.state.endLoc, this.state.lastTokStartLoc = this.state.startLoc, this.nextToken();
  }
  eat(t) {
    return this.match(t) ? (this.next(), !0) : !1;
  }
  match(t) {
    return this.state.type === t;
  }
  createLookaheadState(t) {
    return {
      pos: t.pos,
      value: null,
      type: t.type,
      start: t.start,
      end: t.end,
      context: [this.curContext()],
      inType: t.inType,
      startLoc: t.startLoc,
      lastTokEndLoc: t.lastTokEndLoc,
      curLine: t.curLine,
      lineStart: t.lineStart,
      curPosition: t.curPosition
    };
  }
  lookahead() {
    const t = this.state;
    this.state = this.createLookaheadState(t), this.isLookahead = !0, this.nextToken(), this.isLookahead = !1;
    const r = this.state;
    return this.state = t, r;
  }
  nextTokenStart() {
    return this.nextTokenStartSince(this.state.pos);
  }
  nextTokenStartSince(t) {
    return A3.lastIndex = t, A3.test(this.input) ? A3.lastIndex : t;
  }
  lookaheadCharCode() {
    return this.input.charCodeAt(this.nextTokenStart());
  }
  nextTokenInLineStart() {
    return this.nextTokenInLineStartSince(this.state.pos);
  }
  nextTokenInLineStartSince(t) {
    return C3.lastIndex = t, C3.test(this.input) ? C3.lastIndex : t;
  }
  lookaheadInLineCharCode() {
    return this.input.charCodeAt(this.nextTokenInLineStart());
  }
  codePointAtPos(t) {
    let r = this.input.charCodeAt(t);
    if ((r & 64512) === 55296 && ++t < this.input.length) {
      const i = this.input.charCodeAt(t);
      (i & 64512) === 56320 && (r = 65536 + ((r & 1023) << 10) + (i & 1023));
    }
    return r;
  }
  setStrict(t) {
    this.state.strict = t, t && (this.state.strictErrors.forEach(([r, i]) => this.raise(r, i)), this.state.strictErrors.clear());
  }
  curContext() {
    return this.state.context[this.state.context.length - 1];
  }
  nextToken() {
    if (this.skipSpace(), this.state.start = this.state.pos, this.isLookahead || (this.state.startLoc = this.state.curPosition()), this.state.pos >= this.length) {
      this.finishToken(140);
      return;
    }
    this.getTokenFromCode(this.codePointAtPos(this.state.pos));
  }
  skipBlockComment(t) {
    let r;
    this.isLookahead || (r = this.state.curPosition());
    const i = this.state.pos, n = this.input.indexOf(t, i + 2);
    if (n === -1)
      throw this.raise(et.UnterminatedComment, this.state.curPosition());
    for (this.state.pos = n + t.length, E1.lastIndex = i + 2; E1.test(this.input) && E1.lastIndex <= n; )
      ++this.state.curLine, this.state.lineStart = E1.lastIndex;
    if (this.isLookahead)
      return;
    const s = {
      type: "CommentBlock",
      value: this.input.slice(i + 2, n),
      start: this.sourceToOffsetPos(i),
      end: this.sourceToOffsetPos(n + t.length),
      loc: new Xw(r, this.state.curPosition())
    };
    return this.options.tokens && this.pushToken(s), s;
  }
  skipLineComment(t) {
    const r = this.state.pos;
    let i;
    this.isLookahead || (i = this.state.curPosition());
    let n = this.input.charCodeAt(this.state.pos += t);
    if (this.state.pos < this.length)
      for (; !Dy(n) && ++this.state.pos < this.length; )
        n = this.input.charCodeAt(this.state.pos);
    if (this.isLookahead)
      return;
    const s = this.state.pos, o = {
      type: "CommentLine",
      value: this.input.slice(r + t, s),
      start: this.sourceToOffsetPos(r),
      end: this.sourceToOffsetPos(s),
      loc: new Xw(i, this.state.curPosition())
    };
    return this.options.tokens && this.pushToken(o), o;
  }
  skipSpace() {
    const t = this.state.pos, r = [];
    e:
      for (; this.state.pos < this.length; ) {
        const i = this.input.charCodeAt(this.state.pos);
        switch (i) {
          case 32:
          case 160:
          case 9:
            ++this.state.pos;
            break;
          case 13:
            this.input.charCodeAt(this.state.pos + 1) === 10 && ++this.state.pos;
          case 10:
          case 8232:
          case 8233:
            ++this.state.pos, ++this.state.curLine, this.state.lineStart = this.state.pos;
            break;
          case 47:
            switch (this.input.charCodeAt(this.state.pos + 1)) {
              case 42: {
                const n = this.skipBlockComment("*/");
                n !== void 0 && (this.addComment(n), this.options.attachComment && r.push(n));
                break;
              }
              case 47: {
                const n = this.skipLineComment(2);
                n !== void 0 && (this.addComment(n), this.options.attachComment && r.push(n));
                break;
              }
              default:
                break e;
            }
            break;
          default:
            if (VMt(i))
              ++this.state.pos;
            else if (i === 45 && !this.inModule && this.options.annexB) {
              const n = this.state.pos;
              if (this.input.charCodeAt(n + 1) === 45 && this.input.charCodeAt(n + 2) === 62 && (t === 0 || this.state.lineStart > t)) {
                const s = this.skipLineComment(3);
                s !== void 0 && (this.addComment(s), this.options.attachComment && r.push(s));
              } else
                break e;
            } else if (i === 60 && !this.inModule && this.options.annexB) {
              const n = this.state.pos;
              if (this.input.charCodeAt(n + 1) === 33 && this.input.charCodeAt(n + 2) === 45 && this.input.charCodeAt(n + 3) === 45) {
                const s = this.skipLineComment(4);
                s !== void 0 && (this.addComment(s), this.options.attachComment && r.push(s));
              } else
                break e;
            } else
              break e;
        }
      }
    if (r.length > 0) {
      const i = this.state.pos, n = {
        start: this.sourceToOffsetPos(t),
        end: this.sourceToOffsetPos(i),
        comments: r,
        leadingNode: null,
        trailingNode: null,
        containingNode: null
      };
      this.state.commentStack.push(n);
    }
  }
  finishToken(t, r) {
    this.state.end = this.state.pos, this.state.endLoc = this.state.curPosition();
    const i = this.state.type;
    this.state.type = t, this.state.value = r, this.isLookahead || this.updateContext(i);
  }
  replaceToken(t) {
    this.state.type = t, this.updateContext();
  }
  readToken_numberSign() {
    if (this.state.pos === 0 && this.readToken_interpreter())
      return;
    const t = this.state.pos + 1, r = this.codePointAtPos(t);
    if (r >= 48 && r <= 57)
      throw this.raise(et.UnexpectedDigitAfterHash, this.state.curPosition());
    if (r === 123 || r === 91 && this.hasPlugin("recordAndTuple")) {
      if (this.expectPlugin("recordAndTuple"), this.getPluginOption("recordAndTuple", "syntaxType") === "bar")
        throw this.raise(r === 123 ? et.RecordExpressionHashIncorrectStartSyntaxType : et.TupleExpressionHashIncorrectStartSyntaxType, this.state.curPosition());
      this.state.pos += 2, r === 123 ? this.finishToken(7) : this.finishToken(1);
    } else
      of(r) ? (++this.state.pos, this.finishToken(139, this.readWord1(r))) : r === 92 ? (++this.state.pos, this.finishToken(139, this.readWord1())) : this.finishOp(27, 1);
  }
  readToken_dot() {
    const t = this.input.charCodeAt(this.state.pos + 1);
    if (t >= 48 && t <= 57) {
      this.readNumber(!0);
      return;
    }
    t === 46 && this.input.charCodeAt(this.state.pos + 2) === 46 ? (this.state.pos += 3, this.finishToken(21)) : (++this.state.pos, this.finishToken(16));
  }
  readToken_slash() {
    this.input.charCodeAt(this.state.pos + 1) === 61 ? this.finishOp(31, 2) : this.finishOp(56, 1);
  }
  readToken_interpreter() {
    if (this.state.pos !== 0 || this.length < 2)
      return !1;
    let t = this.input.charCodeAt(this.state.pos + 1);
    if (t !== 33)
      return !1;
    const r = this.state.pos;
    for (this.state.pos += 1; !Dy(t) && ++this.state.pos < this.length; )
      t = this.input.charCodeAt(this.state.pos);
    const i = this.input.slice(r + 2, this.state.pos);
    return this.finishToken(28, i), !0;
  }
  readToken_mult_modulo(t) {
    let r = t === 42 ? 55 : 54, i = 1, n = this.input.charCodeAt(this.state.pos + 1);
    t === 42 && n === 42 && (i++, n = this.input.charCodeAt(this.state.pos + 2), r = 57), n === 61 && !this.state.inType && (i++, r = t === 37 ? 33 : 30), this.finishOp(r, i);
  }
  readToken_pipe_amp(t) {
    const r = this.input.charCodeAt(this.state.pos + 1);
    if (r === t) {
      this.input.charCodeAt(this.state.pos + 2) === 61 ? this.finishOp(30, 3) : this.finishOp(t === 124 ? 41 : 42, 2);
      return;
    }
    if (t === 124) {
      if (r === 62) {
        this.finishOp(39, 2);
        return;
      }
      if (this.hasPlugin("recordAndTuple") && r === 125) {
        if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
          throw this.raise(et.RecordExpressionBarIncorrectEndSyntaxType, this.state.curPosition());
        this.state.pos += 2, this.finishToken(9);
        return;
      }
      if (this.hasPlugin("recordAndTuple") && r === 93) {
        if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
          throw this.raise(et.TupleExpressionBarIncorrectEndSyntaxType, this.state.curPosition());
        this.state.pos += 2, this.finishToken(4);
        return;
      }
    }
    if (r === 61) {
      this.finishOp(30, 2);
      return;
    }
    this.finishOp(t === 124 ? 43 : 45, 1);
  }
  readToken_caret() {
    const t = this.input.charCodeAt(this.state.pos + 1);
    t === 61 && !this.state.inType ? this.finishOp(32, 2) : t === 94 && this.hasPlugin(["pipelineOperator", {
      proposal: "hack",
      topicToken: "^^"
    }]) ? (this.finishOp(37, 2), this.input.codePointAt(this.state.pos) === 94 && this.unexpected()) : this.finishOp(44, 1);
  }
  readToken_atSign() {
    this.input.charCodeAt(this.state.pos + 1) === 64 && this.hasPlugin(["pipelineOperator", {
      proposal: "hack",
      topicToken: "@@"
    }]) ? this.finishOp(38, 2) : this.finishOp(26, 1);
  }
  readToken_plus_min(t) {
    const r = this.input.charCodeAt(this.state.pos + 1);
    if (r === t) {
      this.finishOp(34, 2);
      return;
    }
    r === 61 ? this.finishOp(30, 2) : this.finishOp(53, 1);
  }
  readToken_lt() {
    const {
      pos: t
    } = this.state, r = this.input.charCodeAt(t + 1);
    if (r === 60) {
      if (this.input.charCodeAt(t + 2) === 61) {
        this.finishOp(30, 3);
        return;
      }
      this.finishOp(51, 2);
      return;
    }
    if (r === 61) {
      this.finishOp(49, 2);
      return;
    }
    this.finishOp(47, 1);
  }
  readToken_gt() {
    const {
      pos: t
    } = this.state, r = this.input.charCodeAt(t + 1);
    if (r === 62) {
      const i = this.input.charCodeAt(t + 2) === 62 ? 3 : 2;
      if (this.input.charCodeAt(t + i) === 61) {
        this.finishOp(30, i + 1);
        return;
      }
      this.finishOp(52, i);
      return;
    }
    if (r === 61) {
      this.finishOp(49, 2);
      return;
    }
    this.finishOp(48, 1);
  }
  readToken_eq_excl(t) {
    const r = this.input.charCodeAt(this.state.pos + 1);
    if (r === 61) {
      this.finishOp(46, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2);
      return;
    }
    if (t === 61 && r === 62) {
      this.state.pos += 2, this.finishToken(19);
      return;
    }
    this.finishOp(t === 61 ? 29 : 35, 1);
  }
  readToken_question() {
    const t = this.input.charCodeAt(this.state.pos + 1), r = this.input.charCodeAt(this.state.pos + 2);
    t === 63 ? r === 61 ? this.finishOp(30, 3) : this.finishOp(40, 2) : t === 46 && !(r >= 48 && r <= 57) ? (this.state.pos += 2, this.finishToken(18)) : (++this.state.pos, this.finishToken(17));
  }
  getTokenFromCode(t) {
    switch (t) {
      case 46:
        this.readToken_dot();
        return;
      case 40:
        ++this.state.pos, this.finishToken(10);
        return;
      case 41:
        ++this.state.pos, this.finishToken(11);
        return;
      case 59:
        ++this.state.pos, this.finishToken(13);
        return;
      case 44:
        ++this.state.pos, this.finishToken(12);
        return;
      case 91:
        if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) {
          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
            throw this.raise(et.TupleExpressionBarIncorrectStartSyntaxType, this.state.curPosition());
          this.state.pos += 2, this.finishToken(2);
        } else
          ++this.state.pos, this.finishToken(0);
        return;
      case 93:
        ++this.state.pos, this.finishToken(3);
        return;
      case 123:
        if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) {
          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar")
            throw this.raise(et.RecordExpressionBarIncorrectStartSyntaxType, this.state.curPosition());
          this.state.pos += 2, this.finishToken(6);
        } else
          ++this.state.pos, this.finishToken(5);
        return;
      case 125:
        ++this.state.pos, this.finishToken(8);
        return;
      case 58:
        this.hasPlugin("functionBind") && this.input.charCodeAt(this.state.pos + 1) === 58 ? this.finishOp(15, 2) : (++this.state.pos, this.finishToken(14));
        return;
      case 63:
        this.readToken_question();
        return;
      case 96:
        this.readTemplateToken();
        return;
      case 48: {
        const r = this.input.charCodeAt(this.state.pos + 1);
        if (r === 120 || r === 88) {
          this.readRadixNumber(16);
          return;
        }
        if (r === 111 || r === 79) {
          this.readRadixNumber(8);
          return;
        }
        if (r === 98 || r === 66) {
          this.readRadixNumber(2);
          return;
        }
      }
      case 49:
      case 50:
      case 51:
      case 52:
      case 53:
      case 54:
      case 55:
      case 56:
      case 57:
        this.readNumber(!1);
        return;
      case 34:
      case 39:
        this.readString(t);
        return;
      case 47:
        this.readToken_slash();
        return;
      case 37:
      case 42:
        this.readToken_mult_modulo(t);
        return;
      case 124:
      case 38:
        this.readToken_pipe_amp(t);
        return;
      case 94:
        this.readToken_caret();
        return;
      case 43:
      case 45:
        this.readToken_plus_min(t);
        return;
      case 60:
        this.readToken_lt();
        return;
      case 62:
        this.readToken_gt();
        return;
      case 61:
      case 33:
        this.readToken_eq_excl(t);
        return;
      case 126:
        this.finishOp(36, 1);
        return;
      case 64:
        this.readToken_atSign();
        return;
      case 35:
        this.readToken_numberSign();
        return;
      case 92:
        this.readWord();
        return;
      default:
        if (of(t)) {
          this.readWord(t);
          return;
        }
    }
    throw this.raise(et.InvalidOrUnexpectedToken, this.state.curPosition(), {
      unexpected: String.fromCodePoint(t)
    });
  }
  finishOp(t, r) {
    const i = this.input.slice(this.state.pos, this.state.pos + r);
    this.state.pos += r, this.finishToken(t, i);
  }
  readRegexp() {
    const t = this.state.startLoc, r = this.state.start + 1;
    let i, n, {
      pos: s
    } = this.state;
    for (; ; ++s) {
      if (s >= this.length)
        throw this.raise(et.UnterminatedRegExp, ca(t, 1));
      const u = this.input.charCodeAt(s);
      if (Dy(u))
        throw this.raise(et.UnterminatedRegExp, ca(t, 1));
      if (i)
        i = !1;
      else {
        if (u === 91)
          n = !0;
        else if (u === 93 && n)
          n = !1;
        else if (u === 47 && !n)
          break;
        i = u === 92;
      }
    }
    const a = this.input.slice(r, s);
    ++s;
    let o = "";
    const l = () => ca(t, s + 2 - r);
    for (; s < this.length; ) {
      const u = this.codePointAtPos(s), c = String.fromCharCode(u);
      if (zMt.has(u))
        u === 118 ? o.includes("u") && this.raise(et.IncompatibleRegExpUVFlags, l()) : u === 117 && o.includes("v") && this.raise(et.IncompatibleRegExpUVFlags, l()), o.includes(c) && this.raise(et.DuplicateRegExpFlags, l());
      else if (Ny(u) || u === 92)
        this.raise(et.MalformedRegExpFlags, l());
      else
        break;
      ++s, o += c;
    }
    this.state.pos = s, this.finishToken(138, {
      pattern: a,
      flags: o
    });
  }
  readInt(t, r, i = !1, n = !0) {
    const {
      n: s,
      pos: a
    } = Jye(this.input, this.state.pos, this.state.lineStart, this.state.curLine, t, r, i, n, this.errorHandlers_readInt, !1);
    return this.state.pos = a, s;
  }
  readRadixNumber(t) {
    const r = this.state.pos, i = this.state.curPosition();
    let n = !1;
    this.state.pos += 2;
    const s = this.readInt(t);
    s == null && this.raise(et.InvalidDigit, ca(i, 2), {
      radix: t
    });
    const a = this.input.charCodeAt(this.state.pos);
    if (a === 110)
      ++this.state.pos, n = !0;
    else if (a === 109)
      throw this.raise(et.InvalidDecimal, i);
    if (of(this.codePointAtPos(this.state.pos)))
      throw this.raise(et.NumberIdentifier, this.state.curPosition());
    if (n) {
      const o = this.input.slice(r, this.state.pos).replace(/[_n]/g, "");
      this.finishToken(136, o);
      return;
    }
    this.finishToken(135, s);
  }
  readNumber(t) {
    const r = this.state.pos, i = this.state.curPosition();
    let n = !1, s = !1, a = !1, o = !1;
    !t && this.readInt(10) === null && this.raise(et.InvalidNumber, this.state.curPosition());
    const l = this.state.pos - r >= 2 && this.input.charCodeAt(r) === 48;
    if (l) {
      const m = this.input.slice(r, this.state.pos);
      if (this.recordStrictModeErrors(et.StrictOctalLiteral, i), !this.state.strict) {
        const g = m.indexOf("_");
        g > 0 && this.raise(et.ZeroDigitNumericSeparator, ca(i, g));
      }
      o = l && !/[89]/.test(m);
    }
    let u = this.input.charCodeAt(this.state.pos);
    if (u === 46 && !o && (++this.state.pos, this.readInt(10), n = !0, u = this.input.charCodeAt(this.state.pos)), (u === 69 || u === 101) && !o && (u = this.input.charCodeAt(++this.state.pos), (u === 43 || u === 45) && ++this.state.pos, this.readInt(10) === null && this.raise(et.InvalidOrMissingExponent, i), n = !0, a = !0, u = this.input.charCodeAt(this.state.pos)), u === 110 && ((n || l) && this.raise(et.InvalidBigIntLiteral, i), ++this.state.pos, s = !0), u === 109) {
      this.expectPlugin("decimal", this.state.curPosition()), (a || l) && this.raise(et.InvalidDecimal, i), ++this.state.pos;
      var c = !0;
    }
    if (of(this.codePointAtPos(this.state.pos)))
      throw this.raise(et.NumberIdentifier, this.state.curPosition());
    const f = this.input.slice(r, this.state.pos).replace(/[_mn]/g, "");
    if (s) {
      this.finishToken(136, f);
      return;
    }
    if (c) {
      this.finishToken(137, f);
      return;
    }
    const h = o ? parseInt(f, 8) : parseFloat(f);
    this.finishToken(135, h);
  }
  readCodePoint(t) {
    const {
      code: r,
      pos: i
    } = Qye(this.input, this.state.pos, this.state.lineStart, this.state.curLine, t, this.errorHandlers_readCodePoint);
    return this.state.pos = i, r;
  }
  readString(t) {
    const {
      str: r,
      pos: i,
      curLine: n,
      lineStart: s
    } = mZ(t === 34 ? "double" : "single", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_string);
    this.state.pos = i + 1, this.state.lineStart = s, this.state.curLine = n, this.finishToken(134, r);
  }
  readTemplateContinuation() {
    this.match(8) || this.unexpected(null, 8), this.state.pos--, this.readTemplateToken();
  }
  readTemplateToken() {
    const t = this.input[this.state.pos], {
      str: r,
      firstInvalidLoc: i,
      pos: n,
      curLine: s,
      lineStart: a
    } = mZ("template", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_template);
    this.state.pos = n + 1, this.state.lineStart = a, this.state.curLine = s, i && (this.state.firstInvalidTemplateEscapePos = new Dh(i.curLine, i.pos - i.lineStart, this.sourceToOffsetPos(i.pos))), this.input.codePointAt(n) === 96 ? this.finishToken(24, i ? null : t + r + "`") : (this.state.pos++, this.finishToken(25, i ? null : t + r + "${"));
  }
  recordStrictModeErrors(t, r) {
    const i = r.index;
    this.state.strict && !this.state.strictErrors.has(i) ? this.raise(t, r) : this.state.strictErrors.set(i, [t, r]);
  }
  readWord1(t) {
    this.state.containsEsc = !1;
    let r = "";
    const i = this.state.pos;
    let n = this.state.pos;
    for (t !== void 0 && (this.state.pos += t <= 65535 ? 1 : 2); this.state.pos < this.length; ) {
      const s = this.codePointAtPos(this.state.pos);
      if (Ny(s))
        this.state.pos += s <= 65535 ? 1 : 2;
      else if (s === 92) {
        this.state.containsEsc = !0, r += this.input.slice(n, this.state.pos);
        const a = this.state.curPosition(), o = this.state.pos === i ? of : Ny;
        if (this.input.charCodeAt(++this.state.pos) !== 117) {
          this.raise(et.MissingUnicodeEscape, this.state.curPosition()), n = this.state.pos - 1;
          continue;
        }
        ++this.state.pos;
        const l = this.readCodePoint(!0);
        l !== null && (o(l) || this.raise(et.EscapedCharNotAnIdentifier, a), r += String.fromCodePoint(l)), n = this.state.pos;
      } else
        break;
    }
    return r + this.input.slice(n, this.state.pos);
  }
  readWord(t) {
    const r = this.readWord1(t), i = l7.get(r);
    i !== void 0 ? this.finishToken(i, Lh(i)) : this.finishToken(132, r);
  }
  checkKeywordEscapes() {
    const {
      type: t
    } = this.state;
    d7(t) && this.state.containsEsc && this.raise(et.InvalidEscapedReservedWord, this.state.startLoc, {
      reservedWord: Lh(t)
    });
  }
  raise(t, r, i = {}) {
    const n = r instanceof Dh ? r : r.loc.start, s = t(n, i);
    if (!this.options.errorRecovery)
      throw s;
    return this.isLookahead || this.state.errors.push(s), s;
  }
  raiseOverwrite(t, r, i = {}) {
    const n = r instanceof Dh ? r : r.loc.start, s = n.index, a = this.state.errors;
    for (let o = a.length - 1; o >= 0; o--) {
      const l = a[o];
      if (l.loc.index === s)
        return a[o] = t(n, i);
      if (l.loc.index < s)
        break;
    }
    return this.raise(t, r, i);
  }
  updateContext(t) {
  }
  unexpected(t, r) {
    throw this.raise(et.UnexpectedToken, t != null ? t : this.state.startLoc, {
      expected: r ? Lh(r) : null
    });
  }
  expectPlugin(t, r) {
    if (this.hasPlugin(t))
      return !0;
    throw this.raise(et.MissingPlugin, r != null ? r : this.state.startLoc, {
      missingPlugin: [t]
    });
  }
  expectOnePlugin(t) {
    if (!t.some((r) => this.hasPlugin(r)))
      throw this.raise(et.MissingOneOfPlugins, this.state.startLoc, {
        missingPlugin: t
      });
  }
  errorBuilder(t) {
    return (r, i, n) => {
      this.raise(t, u0(r, i, n));
    };
  }
};
class YMt {
  constructor() {
    this.privateNames = /* @__PURE__ */ new Set(), this.loneAccessors = /* @__PURE__ */ new Map(), this.undefinedPrivateNames = /* @__PURE__ */ new Map();
  }
}
class XMt {
  constructor(t) {
    this.parser = void 0, this.stack = [], this.undefinedPrivateNames = /* @__PURE__ */ new Map(), this.parser = t;
  }
  current() {
    return this.stack[this.stack.length - 1];
  }
  enter() {
    this.stack.push(new YMt());
  }
  exit() {
    const t = this.stack.pop(), r = this.current();
    for (const [i, n] of Array.from(t.undefinedPrivateNames))
      r ? r.undefinedPrivateNames.has(i) || r.undefinedPrivateNames.set(i, n) : this.parser.raise(et.InvalidPrivateFieldResolution, n, {
        identifierName: i
      });
  }
  declarePrivateName(t, r, i) {
    const {
      privateNames: n,
      loneAccessors: s,
      undefinedPrivateNames: a
    } = this.current();
    let o = n.has(t);
    if (r & 3) {
      const l = o && s.get(t);
      if (l) {
        const u = l & 4, c = r & 4, f = l & 3, h = r & 3;
        o = f === h || u !== c, o || s.delete(t);
      } else
        o || s.set(t, r);
    }
    o && this.parser.raise(et.PrivateNameRedeclaration, i, {
      identifierName: t
    }), n.add(t), a.delete(t);
  }
  usePrivateName(t, r) {
    let i;
    for (i of this.stack)
      if (i.privateNames.has(t))
        return;
    i ? i.undefinedPrivateNames.set(t, r) : this.parser.raise(et.InvalidPrivateFieldResolution, r, {
      identifierName: t
    });
  }
}
class wI {
  constructor(t = 0) {
    this.type = t;
  }
  canBeArrowParameterDeclaration() {
    return this.type === 2 || this.type === 1;
  }
  isCertainlyParameterDeclaration() {
    return this.type === 3;
  }
}
class Zye extends wI {
  constructor(t) {
    super(t), this.declarationErrors = /* @__PURE__ */ new Map();
  }
  recordDeclarationError(t, r) {
    const i = r.index;
    this.declarationErrors.set(i, [t, r]);
  }
  clearDeclarationError(t) {
    this.declarationErrors.delete(t);
  }
  iterateErrors(t) {
    this.declarationErrors.forEach(t);
  }
}
class JMt {
  constructor(t) {
    this.parser = void 0, this.stack = [new wI()], this.parser = t;
  }
  enter(t) {
    this.stack.push(t);
  }
  exit() {
    this.stack.pop();
  }
  recordParameterInitializerError(t, r) {
    const i = r.loc.start, {
      stack: n
    } = this;
    let s = n.length - 1, a = n[s];
    for (; !a.isCertainlyParameterDeclaration(); ) {
      if (a.canBeArrowParameterDeclaration())
        a.recordDeclarationError(t, i);
      else
        return;
      a = n[--s];
    }
    this.parser.raise(t, i);
  }
  recordArrowParameterBindingError(t, r) {
    const {
      stack: i
    } = this, n = i[i.length - 1], s = r.loc.start;
    if (n.isCertainlyParameterDeclaration())
      this.parser.raise(t, s);
    else if (n.canBeArrowParameterDeclaration())
      n.recordDeclarationError(t, s);
    else
      return;
  }
  recordAsyncArrowParametersError(t) {
    const {
      stack: r
    } = this;
    let i = r.length - 1, n = r[i];
    for (; n.canBeArrowParameterDeclaration(); )
      n.type === 2 && n.recordDeclarationError(et.AwaitBindingIdentifier, t), n = r[--i];
  }
  validateAsPattern() {
    const {
      stack: t
    } = this, r = t[t.length - 1];
    r.canBeArrowParameterDeclaration() && r.iterateErrors(([i, n]) => {
      this.parser.raise(i, n);
      let s = t.length - 2, a = t[s];
      for (; a.canBeArrowParameterDeclaration(); )
        a.clearDeclarationError(n.index), a = t[--s];
    });
  }
}
function QMt() {
  return new wI(3);
}
function ZMt() {
  return new Zye(1);
}
function eRt() {
  return new Zye(2);
}
function ege() {
  return new wI();
}
class tRt {
  constructor() {
    this.stacks = [];
  }
  enter(t) {
    this.stacks.push(t);
  }
  exit() {
    this.stacks.pop();
  }
  currentFlags() {
    return this.stacks[this.stacks.length - 1];
  }
  get hasAwait() {
    return (this.currentFlags() & 2) > 0;
  }
  get hasYield() {
    return (this.currentFlags() & 1) > 0;
  }
  get hasReturn() {
    return (this.currentFlags() & 4) > 0;
  }
  get hasIn() {
    return (this.currentFlags() & 8) > 0;
  }
}
function FP(e, t) {
  return (e ? 2 : 0) | (t ? 1 : 0);
}
class rRt extends GMt {
  addExtra(t, r, i, n = !0) {
    if (!t)
      return;
    let {
      extra: s
    } = t;
    s == null && (s = {}, t.extra = s), n ? s[r] = i : Object.defineProperty(s, r, {
      enumerable: n,
      value: i
    });
  }
  isContextual(t) {
    return this.state.type === t && !this.state.containsEsc;
  }
  isUnparsedContextual(t, r) {
    const i = t + r.length;
    if (this.input.slice(t, i) === r) {
      const n = this.input.charCodeAt(i);
      return !(Ny(n) || (n & 64512) === 55296);
    }
    return !1;
  }
  isLookaheadContextual(t) {
    const r = this.nextTokenStart();
    return this.isUnparsedContextual(r, t);
  }
  eatContextual(t) {
    return this.isContextual(t) ? (this.next(), !0) : !1;
  }
  expectContextual(t, r) {
    if (!this.eatContextual(t)) {
      if (r != null)
        throw this.raise(r, this.state.startLoc);
      this.unexpected(null, t);
    }
  }
  canInsertSemicolon() {
    return this.match(140) || this.match(8) || this.hasPrecedingLineBreak();
  }
  hasPrecedingLineBreak() {
    return hZ(this.input, this.offsetToSourcePos(this.state.lastTokEndLoc.index), this.state.start);
  }
  hasFollowingLineBreak() {
    return hZ(this.input, this.state.end, this.nextTokenStart());
  }
  isLineTerminator() {
    return this.eat(13) || this.canInsertSemicolon();
  }
  semicolon(t = !0) {
    (t ? this.isLineTerminator() : this.eat(13)) || this.raise(et.MissingSemicolon, this.state.lastTokEndLoc);
  }
  expect(t, r) {
    this.eat(t) || this.unexpected(r, t);
  }
  tryParse(t, r = this.state.clone()) {
    const i = {
      node: null
    };
    try {
      const n = t((s = null) => {
        throw i.node = s, i;
      });
      if (this.state.errors.length > r.errors.length) {
        const s = this.state;
        return this.state = r, this.state.tokensLength = s.tokensLength, {
          node: n,
          error: s.errors[r.errors.length],
          thrown: !1,
          aborted: !1,
          failState: s
        };
      }
      return {
        node: n,
        error: null,
        thrown: !1,
        aborted: !1,
        failState: null
      };
    } catch (n) {
      const s = this.state;
      if (this.state = r, n instanceof SyntaxError)
        return {
          node: null,
          error: n,
          thrown: !0,
          aborted: !1,
          failState: s
        };
      if (n === i)
        return {
          node: i.node,
          error: null,
          thrown: !1,
          aborted: !0,
          failState: s
        };
      throw n;
    }
  }
  checkExpressionErrors(t, r) {
    if (!t)
      return !1;
    const {
      shorthandAssignLoc: i,
      doubleProtoLoc: n,
      privateKeyLoc: s,
      optionalParametersLoc: a
    } = t, o = !!i || !!n || !!a || !!s;
    if (!r)
      return o;
    i != null && this.raise(et.InvalidCoverInitializedName, i), n != null && this.raise(et.DuplicateProto, n), s != null && this.raise(et.UnexpectedPrivateField, s), a != null && this.unexpected(a);
  }
  isLiteralPropertyName() {
    return Vye(this.state.type);
  }
  isPrivateName(t) {
    return t.type === "PrivateName";
  }
  getPrivateNameSV(t) {
    return t.id.name;
  }
  hasPropertyAsPrivateName(t) {
    return (t.type === "MemberExpression" || t.type === "OptionalMemberExpression") && this.isPrivateName(t.property);
  }
  isObjectProperty(t) {
    return t.type === "ObjectProperty";
  }
  isObjectMethod(t) {
    return t.type === "ObjectMethod";
  }
  initializeScopes(t = this.options.sourceType === "module") {
    const r = this.state.labels;
    this.state.labels = [];
    const i = this.exportedIdentifiers;
    this.exportedIdentifiers = /* @__PURE__ */ new Set();
    const n = this.inModule;
    this.inModule = t;
    const s = this.scope, a = this.getScopeHandler();
    this.scope = new a(this, t);
    const o = this.prodParam;
    this.prodParam = new tRt();
    const l = this.classScope;
    this.classScope = new XMt(this);
    const u = this.expressionScope;
    return this.expressionScope = new JMt(this), () => {
      this.state.labels = r, this.exportedIdentifiers = i, this.inModule = n, this.scope = s, this.prodParam = o, this.classScope = l, this.expressionScope = u;
    };
  }
  enterInitialScopes() {
    let t = 0;
    this.inModule && (t |= 2), this.scope.enter(1), this.prodParam.enter(t);
  }
  checkDestructuringPrivate(t) {
    const {
      privateKeyLoc: r
    } = t;
    r !== null && this.expectPlugin("destructuringPrivate", r);
  }
}
class jP {
  constructor() {
    this.shorthandAssignLoc = null, this.doubleProtoLoc = null, this.privateKeyLoc = null, this.optionalParametersLoc = null;
  }
}
let Qw = class {
  constructor(t, r, i) {
    this.type = "", this.start = r, this.end = 0, this.loc = new Xw(i), t != null && t.options.ranges && (this.range = [r, 0]), t != null && t.filename && (this.loc.filename = t.filename);
  }
};
const T7 = Qw.prototype;
T7.__clone = function() {
  const e = new Qw(void 0, this.start, this.loc.start), t = Object.keys(this);
  for (let r = 0, i = t.length; r < i; r++) {
    const n = t[r];
    n !== "leadingComments" && n !== "trailingComments" && n !== "innerComments" && (e[n] = this[n]);
  }
  return e;
};
function iRt(e) {
  return Sf(e);
}
function Sf(e) {
  const {
    type: t,
    start: r,
    end: i,
    loc: n,
    range: s,
    extra: a,
    name: o
  } = e, l = Object.create(T7);
  return l.type = t, l.start = r, l.end = i, l.loc = n, l.range = s, l.extra = a, l.name = o, t === "Placeholder" && (l.expectedNode = e.expectedNode), l;
}
function nRt(e) {
  const {
    type: t,
    start: r,
    end: i,
    loc: n,
    range: s,
    extra: a
  } = e;
  if (t === "Placeholder")
    return iRt(e);
  const o = Object.create(T7);
  return o.type = t, o.start = r, o.end = i, o.loc = n, o.range = s, e.raw !== void 0 ? o.raw = e.raw : o.extra = a, o.value = e.value, o;
}
class sRt extends rRt {
  startNode() {
    const t = this.state.startLoc;
    return new Qw(this, t.index, t);
  }
  startNodeAt(t) {
    return new Qw(this, t.index, t);
  }
  startNodeAtNode(t) {
    return this.startNodeAt(t.loc.start);
  }
  finishNode(t, r) {
    return this.finishNodeAt(t, r, this.state.lastTokEndLoc);
  }
  finishNodeAt(t, r, i) {
    return t.type = r, t.end = i.index, t.loc.end = i, this.options.ranges && (t.range[1] = i.index), this.options.attachComment && this.processComment(t), t;
  }
  resetStartLocation(t, r) {
    t.start = r.index, t.loc.start = r, this.options.ranges && (t.range[0] = r.index);
  }
  resetEndLocation(t, r = this.state.lastTokEndLoc) {
    t.end = r.index, t.loc.end = r, this.options.ranges && (t.range[1] = r.index);
  }
  resetStartLocationFromNode(t, r) {
    this.resetStartLocation(t, r.loc.start);
  }
}
const aRt = /* @__PURE__ */ new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "static", "string", "true", "typeof", "void"]);
var Aae;
const fr = mf(Aae || (Aae = at(["flow"])))({
  AmbiguousConditionalArrow: "Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.",
  AmbiguousDeclareModuleKind: "Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.",
  AssignReservedType: ({
    reservedType: e
  }) => "Cannot overwrite reserved type ".concat(e, "."),
  DeclareClassElement: "The `declare` modifier can only appear on class fields.",
  DeclareClassFieldInitializer: "Initializers are not allowed in fields with the `declare` modifier.",
  DuplicateDeclareModuleExports: "Duplicate `declare module.exports` statement.",
  EnumBooleanMemberNotInitialized: ({
    memberName: e,
    enumName: t
  }) => "Boolean enum members need to be initialized. Use either `".concat(e, " = true,` or `").concat(e, " = false,` in enum `").concat(t, "`."),
  EnumDuplicateMemberName: ({
    memberName: e,
    enumName: t
  }) => "Enum member names need to be unique, but the name `".concat(e, "` has already been used before in enum `").concat(t, "`."),
  EnumInconsistentMemberValues: ({
    enumName: e
  }) => "Enum `".concat(e, "` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers."),
  EnumInvalidExplicitType: ({
    invalidEnumType: e,
    enumName: t
  }) => "Enum type `".concat(e, "` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `").concat(t, "`."),
  EnumInvalidExplicitTypeUnknownSupplied: ({
    enumName: e
  }) => "Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `".concat(e, "`."),
  EnumInvalidMemberInitializerPrimaryType: ({
    enumName: e,
    memberName: t,
    explicitType: r
  }) => "Enum `".concat(e, "` has type `").concat(r, "`, so the initializer of `").concat(t, "` needs to be a ").concat(r, " literal."),
  EnumInvalidMemberInitializerSymbolType: ({
    enumName: e,
    memberName: t
  }) => "Symbol enum members cannot be initialized. Use `".concat(t, ",` in enum `").concat(e, "`."),
  EnumInvalidMemberInitializerUnknownType: ({
    enumName: e,
    memberName: t
  }) => "The enum member initializer for `".concat(t, "` needs to be a literal (either a boolean, number, or string) in enum `").concat(e, "`."),
  EnumInvalidMemberName: ({
    enumName: e,
    memberName: t,
    suggestion: r
  }) => "Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `".concat(t, "`, consider using `").concat(r, "`, in enum `").concat(e, "`."),
  EnumNumberMemberNotInitialized: ({
    enumName: e,
    memberName: t
  }) => "Number enum members need to be initialized, e.g. `".concat(t, " = 1` in enum `").concat(e, "`."),
  EnumStringMemberInconsistentlyInitialized: ({
    enumName: e
  }) => "String enum members need to consistently either all use initializers, or use no initializers, in enum `".concat(e, "`."),
  GetterMayNotHaveThisParam: "A getter cannot have a `this` parameter.",
  ImportReflectionHasImportType: "An `import module` declaration can not use `type` or `typeof` keyword.",
  ImportTypeShorthandOnlyInPureImport: "The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.",
  InexactInsideExact: "Explicit inexact syntax cannot appear inside an explicit exact object type.",
  InexactInsideNonObject: "Explicit inexact syntax cannot appear in class or interface definitions.",
  InexactVariance: "Explicit inexact syntax cannot have variance.",
  InvalidNonTypeImportInDeclareModule: "Imports within a `declare module` body must always be `import type` or `import typeof`.",
  MissingTypeParamDefault: "Type parameter declaration needs a default, since a preceding type parameter declaration has a default.",
  NestedDeclareModule: "`declare module` cannot be used inside another `declare module`.",
  NestedFlowComment: "Cannot have a flow comment inside another flow comment.",
  PatternIsOptional: Object.assign({
    message: "A binding pattern parameter cannot be optional in an implementation signature."
  }, {
    reasonCode: "OptionalBindingPattern"
  }),
  SetterMayNotHaveThisParam: "A setter cannot have a `this` parameter.",
  SpreadVariance: "Spread properties cannot have variance.",
  ThisParamAnnotationRequired: "A type annotation is required for the `this` parameter.",
  ThisParamBannedInConstructor: "Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.",
  ThisParamMayNotBeOptional: "The `this` parameter cannot be optional.",
  ThisParamMustBeFirst: "The `this` parameter must be the first function parameter.",
  ThisParamNoDefault: "The `this` parameter may not have a default value.",
  TypeBeforeInitializer: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",
  TypeCastInPattern: "The type cast expression is expected to be wrapped with parenthesis.",
  UnexpectedExplicitInexactInObject: "Explicit inexact syntax must appear at the end of an inexact object.",
  UnexpectedReservedType: ({
    reservedType: e
  }) => "Unexpected reserved type ".concat(e, "."),
  UnexpectedReservedUnderscore: "`_` is only allowed as a type argument to call or new.",
  UnexpectedSpaceBetweenModuloChecks: "Spaces between `%` and `checks` are not allowed here.",
  UnexpectedSpreadType: "Spread operator cannot appear in class or interface definitions.",
  UnexpectedSubtractionOperand: 'Unexpected token, expected "number" or "bigint".',
  UnexpectedTokenAfterTypeParameter: "Expected an arrow function after this type parameter declaration.",
  UnexpectedTypeParameterBeforeAsyncArrowFunction: "Type parameters must come after the async keyword, e.g. instead of `<T> async () => {}`, use `async <T>() => {}`.",
  UnsupportedDeclareExportKind: ({
    unsupportedExportKind: e,
    suggestion: t
  }) => "`declare export ".concat(e, "` is not supported. Use `").concat(t, "` instead."),
  UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.",
  UnterminatedFlowComment: "Unterminated flow-comment."
});
function oRt(e) {
  return e.type === "DeclareExportAllDeclaration" || e.type === "DeclareExportDeclaration" && (!e.declaration || e.declaration.type !== "TypeAlias" && e.declaration.type !== "InterfaceDeclaration");
}
function yZ(e) {
  return e.importKind === "type" || e.importKind === "typeof";
}
const lRt = {
  const: "declare export var",
  let: "declare export var",
  type: "export type",
  interface: "export interface"
};
function uRt(e, t) {
  const r = [], i = [];
  for (let n = 0; n < e.length; n++)
    (t(e[n], n, e) ? r : i).push(e[n]);
  return [r, i];
}
const cRt = /\*?\s*@((?:no)?flow)\b/;
var pRt = (e) => class extends e {
  constructor(...r) {
    super(...r), this.flowPragma = void 0;
  }
  getScopeHandler() {
    return FMt;
  }
  shouldParseTypes() {
    return this.getPluginOption("flow", "all") || this.flowPragma === "flow";
  }
  finishToken(r, i) {
    r !== 134 && r !== 13 && r !== 28 && this.flowPragma === void 0 && (this.flowPragma = null), super.finishToken(r, i);
  }
  addComment(r) {
    if (this.flowPragma === void 0) {
      const i = cRt.exec(r.value);
      if (i)
        if (i[1] === "flow")
          this.flowPragma = "flow";
        else if (i[1] === "noflow")
          this.flowPragma = "noflow";
        else
          throw new Error("Unexpected flow pragma");
    }
    super.addComment(r);
  }
  flowParseTypeInitialiser(r) {
    const i = this.state.inType;
    this.state.inType = !0, this.expect(r || 14);
    const n = this.flowParseType();
    return this.state.inType = i, n;
  }
  flowParsePredicate() {
    const r = this.startNode(), i = this.state.startLoc;
    return this.next(), this.expectContextual(110), this.state.lastTokStartLoc.index > i.index + 1 && this.raise(fr.UnexpectedSpaceBetweenModuloChecks, i), this.eat(10) ? (r.value = super.parseExpression(), this.expect(11), this.finishNode(r, "DeclaredPredicate")) : this.finishNode(r, "InferredPredicate");
  }
  flowParseTypeAndPredicateInitialiser() {
    const r = this.state.inType;
    this.state.inType = !0, this.expect(14);
    let i = null, n = null;
    return this.match(54) ? (this.state.inType = r, n = this.flowParsePredicate()) : (i = this.flowParseType(), this.state.inType = r, this.match(54) && (n = this.flowParsePredicate())), [i, n];
  }
  flowParseDeclareClass(r) {
    return this.next(), this.flowParseInterfaceish(r, !0), this.finishNode(r, "DeclareClass");
  }
  flowParseDeclareFunction(r) {
    this.next();
    const i = r.id = this.parseIdentifier(), n = this.startNode(), s = this.startNode();
    this.match(47) ? n.typeParameters = this.flowParseTypeParameterDeclaration() : n.typeParameters = null, this.expect(10);
    const a = this.flowParseFunctionTypeParams();
    return n.params = a.params, n.rest = a.rest, n.this = a._this, this.expect(11), [n.returnType, r.predicate] = this.flowParseTypeAndPredicateInitialiser(), s.typeAnnotation = this.finishNode(n, "FunctionTypeAnnotation"), i.typeAnnotation = this.finishNode(s, "TypeAnnotation"), this.resetEndLocation(i), this.semicolon(), this.scope.declareName(r.id.name, 2048, r.id.loc.start), this.finishNode(r, "DeclareFunction");
  }
  flowParseDeclare(r, i) {
    if (this.match(80))
      return this.flowParseDeclareClass(r);
    if (this.match(68))
      return this.flowParseDeclareFunction(r);
    if (this.match(74))
      return this.flowParseDeclareVariable(r);
    if (this.eatContextual(127))
      return this.match(16) ? this.flowParseDeclareModuleExports(r) : (i && this.raise(fr.NestedDeclareModule, this.state.lastTokStartLoc), this.flowParseDeclareModule(r));
    if (this.isContextual(130))
      return this.flowParseDeclareTypeAlias(r);
    if (this.isContextual(131))
      return this.flowParseDeclareOpaqueType(r);
    if (this.isContextual(129))
      return this.flowParseDeclareInterface(r);
    if (this.match(82))
      return this.flowParseDeclareExportDeclaration(r, i);
    this.unexpected();
  }
  flowParseDeclareVariable(r) {
    return this.next(), r.id = this.flowParseTypeAnnotatableIdentifier(!0), this.scope.declareName(r.id.name, 5, r.id.loc.start), this.semicolon(), this.finishNode(r, "DeclareVariable");
  }
  flowParseDeclareModule(r) {
    this.scope.enter(0), this.match(134) ? r.id = super.parseExprAtom() : r.id = this.parseIdentifier();
    const i = r.body = this.startNode(), n = i.body = [];
    for (this.expect(5); !this.match(8); ) {
      let o = this.startNode();
      this.match(83) ? (this.next(), !this.isContextual(130) && !this.match(87) && this.raise(fr.InvalidNonTypeImportInDeclareModule, this.state.lastTokStartLoc), super.parseImport(o)) : (this.expectContextual(125, fr.UnsupportedStatementInDeclareModule), o = this.flowParseDeclare(o, !0)), n.push(o);
    }
    this.scope.exit(), this.expect(8), this.finishNode(i, "BlockStatement");
    let s = null, a = !1;
    return n.forEach((o) => {
      oRt(o) ? (s === "CommonJS" && this.raise(fr.AmbiguousDeclareModuleKind, o), s = "ES") : o.type === "DeclareModuleExports" && (a && this.raise(fr.DuplicateDeclareModuleExports, o), s === "ES" && this.raise(fr.AmbiguousDeclareModuleKind, o), s = "CommonJS", a = !0);
    }), r.kind = s || "CommonJS", this.finishNode(r, "DeclareModule");
  }
  flowParseDeclareExportDeclaration(r, i) {
    if (this.expect(82), this.eat(65))
      return this.match(68) || this.match(80) ? r.declaration = this.flowParseDeclare(this.startNode()) : (r.declaration = this.flowParseType(), this.semicolon()), r.default = !0, this.finishNode(r, "DeclareExportDeclaration");
    if (this.match(75) || this.isLet() || (this.isContextual(130) || this.isContextual(129)) && !i) {
      const n = this.state.value;
      throw this.raise(fr.UnsupportedDeclareExportKind, this.state.startLoc, {
        unsupportedExportKind: n,
        suggestion: lRt[n]
      });
    }
    if (this.match(74) || this.match(68) || this.match(80) || this.isContextual(131))
      return r.declaration = this.flowParseDeclare(this.startNode()), r.default = !1, this.finishNode(r, "DeclareExportDeclaration");
    if (this.match(55) || this.match(5) || this.isContextual(129) || this.isContextual(130) || this.isContextual(131))
      return r = this.parseExport(r, null), r.type === "ExportNamedDeclaration" && (r.type = "ExportDeclaration", r.default = !1, delete r.exportKind), r.type = "Declare" + r.type, r;
    this.unexpected();
  }
  flowParseDeclareModuleExports(r) {
    return this.next(), this.expectContextual(111), r.typeAnnotation = this.flowParseTypeAnnotation(), this.semicolon(), this.finishNode(r, "DeclareModuleExports");
  }
  flowParseDeclareTypeAlias(r) {
    this.next();
    const i = this.flowParseTypeAlias(r);
    return i.type = "DeclareTypeAlias", i;
  }
  flowParseDeclareOpaqueType(r) {
    this.next();
    const i = this.flowParseOpaqueType(r, !0);
    return i.type = "DeclareOpaqueType", i;
  }
  flowParseDeclareInterface(r) {
    return this.next(), this.flowParseInterfaceish(r, !1), this.finishNode(r, "DeclareInterface");
  }
  flowParseInterfaceish(r, i) {
    if (r.id = this.flowParseRestrictedIdentifier(!i, !0), this.scope.declareName(r.id.name, i ? 17 : 8201, r.id.loc.start), this.match(47) ? r.typeParameters = this.flowParseTypeParameterDeclaration() : r.typeParameters = null, r.extends = [], this.eat(81))
      do
        r.extends.push(this.flowParseInterfaceExtends());
      while (!i && this.eat(12));
    if (i) {
      if (r.implements = [], r.mixins = [], this.eatContextual(117))
        do
          r.mixins.push(this.flowParseInterfaceExtends());
        while (this.eat(12));
      if (this.eatContextual(113))
        do
          r.implements.push(this.flowParseInterfaceExtends());
        while (this.eat(12));
    }
    r.body = this.flowParseObjectType({
      allowStatic: i,
      allowExact: !1,
      allowSpread: !1,
      allowProto: i,
      allowInexact: !1
    });
  }
  flowParseInterfaceExtends() {
    const r = this.startNode();
    return r.id = this.flowParseQualifiedTypeIdentifier(), this.match(47) ? r.typeParameters = this.flowParseTypeParameterInstantiation() : r.typeParameters = null, this.finishNode(r, "InterfaceExtends");
  }
  flowParseInterface(r) {
    return this.flowParseInterfaceish(r, !1), this.finishNode(r, "InterfaceDeclaration");
  }
  checkNotUnderscore(r) {
    r === "_" && this.raise(fr.UnexpectedReservedUnderscore, this.state.startLoc);
  }
  checkReservedType(r, i, n) {
    aRt.has(r) && this.raise(n ? fr.AssignReservedType : fr.UnexpectedReservedType, i, {
      reservedType: r
    });
  }
  flowParseRestrictedIdentifier(r, i) {
    return this.checkReservedType(this.state.value, this.state.startLoc, i), this.parseIdentifier(r);
  }
  flowParseTypeAlias(r) {
    return r.id = this.flowParseRestrictedIdentifier(!1, !0), this.scope.declareName(r.id.name, 8201, r.id.loc.start), this.match(47) ? r.typeParameters = this.flowParseTypeParameterDeclaration() : r.typeParameters = null, r.right = this.flowParseTypeInitialiser(29), this.semicolon(), this.finishNode(r, "TypeAlias");
  }
  flowParseOpaqueType(r, i) {
    return this.expectContextual(130), r.id = this.flowParseRestrictedIdentifier(!0, !0), this.scope.declareName(r.id.name, 8201, r.id.loc.start), this.match(47) ? r.typeParameters = this.flowParseTypeParameterDeclaration() : r.typeParameters = null, r.supertype = null, this.match(14) && (r.supertype = this.flowParseTypeInitialiser(14)), r.impltype = null, i || (r.impltype = this.flowParseTypeInitialiser(29)), this.semicolon(), this.finishNode(r, "OpaqueType");
  }
  flowParseTypeParameter(r = !1) {
    const i = this.state.startLoc, n = this.startNode(), s = this.flowParseVariance(), a = this.flowParseTypeAnnotatableIdentifier();
    return n.name = a.name, n.variance = s, n.bound = a.typeAnnotation, this.match(29) ? (this.eat(29), n.default = this.flowParseType()) : r && this.raise(fr.MissingTypeParamDefault, i), this.finishNode(n, "TypeParameter");
  }
  flowParseTypeParameterDeclaration() {
    const r = this.state.inType, i = this.startNode();
    i.params = [], this.state.inType = !0, this.match(47) || this.match(143) ? this.next() : this.unexpected();
    let n = !1;
    do {
      const s = this.flowParseTypeParameter(n);
      i.params.push(s), s.default && (n = !0), this.match(48) || this.expect(12);
    } while (!this.match(48));
    return this.expect(48), this.state.inType = r, this.finishNode(i, "TypeParameterDeclaration");
  }
  flowParseTypeParameterInstantiation() {
    const r = this.startNode(), i = this.state.inType;
    r.params = [], this.state.inType = !0, this.expect(47);
    const n = this.state.noAnonFunctionType;
    for (this.state.noAnonFunctionType = !1; !this.match(48); )
      r.params.push(this.flowParseType()), this.match(48) || this.expect(12);
    return this.state.noAnonFunctionType = n, this.expect(48), this.state.inType = i, this.finishNode(r, "TypeParameterInstantiation");
  }
  flowParseTypeParameterInstantiationCallOrNew() {
    const r = this.startNode(), i = this.state.inType;
    for (r.params = [], this.state.inType = !0, this.expect(47); !this.match(48); )
      r.params.push(this.flowParseTypeOrImplicitInstantiation()), this.match(48) || this.expect(12);
    return this.expect(48), this.state.inType = i, this.finishNode(r, "TypeParameterInstantiation");
  }
  flowParseInterfaceType() {
    const r = this.startNode();
    if (this.expectContextual(129), r.extends = [], this.eat(81))
      do
        r.extends.push(this.flowParseInterfaceExtends());
      while (this.eat(12));
    return r.body = this.flowParseObjectType({
      allowStatic: !1,
      allowExact: !1,
      allowSpread: !1,
      allowProto: !1,
      allowInexact: !1
    }), this.finishNode(r, "InterfaceTypeAnnotation");
  }
  flowParseObjectPropertyKey() {
    return this.match(135) || this.match(134) ? super.parseExprAtom() : this.parseIdentifier(!0);
  }
  flowParseObjectTypeIndexer(r, i, n) {
    return r.static = i, this.lookahead().type === 14 ? (r.id = this.flowParseObjectPropertyKey(), r.key = this.flowParseTypeInitialiser()) : (r.id = null, r.key = this.flowParseType()), this.expect(3), r.value = this.flowParseTypeInitialiser(), r.variance = n, this.finishNode(r, "ObjectTypeIndexer");
  }
  flowParseObjectTypeInternalSlot(r, i) {
    return r.static = i, r.id = this.flowParseObjectPropertyKey(), this.expect(3), this.expect(3), this.match(47) || this.match(10) ? (r.method = !0, r.optional = !1, r.value = this.flowParseObjectTypeMethodish(this.startNodeAt(r.loc.start))) : (r.method = !1, this.eat(17) && (r.optional = !0), r.value = this.flowParseTypeInitialiser()), this.finishNode(r, "ObjectTypeInternalSlot");
  }
  flowParseObjectTypeMethodish(r) {
    for (r.params = [], r.rest = null, r.typeParameters = null, r.this = null, this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration()), this.expect(10), this.match(78) && (r.this = this.flowParseFunctionTypeParam(!0), r.this.name = null, this.match(11) || this.expect(12)); !this.match(11) && !this.match(21); )
      r.params.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
    return this.eat(21) && (r.rest = this.flowParseFunctionTypeParam(!1)), this.expect(11), r.returnType = this.flowParseTypeInitialiser(), this.finishNode(r, "FunctionTypeAnnotation");
  }
  flowParseObjectTypeCallProperty(r, i) {
    const n = this.startNode();
    return r.static = i, r.value = this.flowParseObjectTypeMethodish(n), this.finishNode(r, "ObjectTypeCallProperty");
  }
  flowParseObjectType({
    allowStatic: r,
    allowExact: i,
    allowSpread: n,
    allowProto: s,
    allowInexact: a
  }) {
    const o = this.state.inType;
    this.state.inType = !0;
    const l = this.startNode();
    l.callProperties = [], l.properties = [], l.indexers = [], l.internalSlots = [];
    let u, c, f = !1;
    for (i && this.match(6) ? (this.expect(6), u = 9, c = !0) : (this.expect(5), u = 8, c = !1), l.exact = c; !this.match(u); ) {
      let m = !1, g = null, y = null;
      const v = this.startNode();
      if (s && this.isContextual(118)) {
        const S = this.lookahead();
        S.type !== 14 && S.type !== 17 && (this.next(), g = this.state.startLoc, r = !1);
      }
      if (r && this.isContextual(106)) {
        const S = this.lookahead();
        S.type !== 14 && S.type !== 17 && (this.next(), m = !0);
      }
      const T = this.flowParseVariance();
      if (this.eat(0))
        g != null && this.unexpected(g), this.eat(0) ? (T && this.unexpected(T.loc.start), l.internalSlots.push(this.flowParseObjectTypeInternalSlot(v, m))) : l.indexers.push(this.flowParseObjectTypeIndexer(v, m, T));
      else if (this.match(10) || this.match(47))
        g != null && this.unexpected(g), T && this.unexpected(T.loc.start), l.callProperties.push(this.flowParseObjectTypeCallProperty(v, m));
      else {
        let S = "init";
        if (this.isContextual(99) || this.isContextual(104)) {
          const x = this.lookahead();
          Vye(x.type) && (S = this.state.value, this.next());
        }
        const P = this.flowParseObjectTypeProperty(v, m, g, T, S, n, a != null ? a : !c);
        P === null ? (f = !0, y = this.state.lastTokStartLoc) : l.properties.push(P);
      }
      this.flowObjectTypeSemicolon(), y && !this.match(8) && !this.match(9) && this.raise(fr.UnexpectedExplicitInexactInObject, y);
    }
    this.expect(u), n && (l.inexact = f);
    const h = this.finishNode(l, "ObjectTypeAnnotation");
    return this.state.inType = o, h;
  }
  flowParseObjectTypeProperty(r, i, n, s, a, o, l) {
    if (this.eat(21))
      return this.match(12) || this.match(13) || this.match(8) || this.match(9) ? (o ? l || this.raise(fr.InexactInsideExact, this.state.lastTokStartLoc) : this.raise(fr.InexactInsideNonObject, this.state.lastTokStartLoc), s && this.raise(fr.InexactVariance, s), null) : (o || this.raise(fr.UnexpectedSpreadType, this.state.lastTokStartLoc), n != null && this.unexpected(n), s && this.raise(fr.SpreadVariance, s), r.argument = this.flowParseType(), this.finishNode(r, "ObjectTypeSpreadProperty"));
    {
      r.key = this.flowParseObjectPropertyKey(), r.static = i, r.proto = n != null, r.kind = a;
      let u = !1;
      return this.match(47) || this.match(10) ? (r.method = !0, n != null && this.unexpected(n), s && this.unexpected(s.loc.start), r.value = this.flowParseObjectTypeMethodish(this.startNodeAt(r.loc.start)), (a === "get" || a === "set") && this.flowCheckGetterSetterParams(r), !o && r.key.name === "constructor" && r.value.this && this.raise(fr.ThisParamBannedInConstructor, r.value.this)) : (a !== "init" && this.unexpected(), r.method = !1, this.eat(17) && (u = !0), r.value = this.flowParseTypeInitialiser(), r.variance = s), r.optional = u, this.finishNode(r, "ObjectTypeProperty");
    }
  }
  flowCheckGetterSetterParams(r) {
    const i = r.kind === "get" ? 0 : 1, n = r.value.params.length + (r.value.rest ? 1 : 0);
    r.value.this && this.raise(r.kind === "get" ? fr.GetterMayNotHaveThisParam : fr.SetterMayNotHaveThisParam, r.value.this), n !== i && this.raise(r.kind === "get" ? et.BadGetterArity : et.BadSetterArity, r), r.kind === "set" && r.value.rest && this.raise(et.BadSetterRestParameter, r);
  }
  flowObjectTypeSemicolon() {
    !this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9) && this.unexpected();
  }
  flowParseQualifiedTypeIdentifier(r, i) {
    var n;
    (n = r) != null || (r = this.state.startLoc);
    let s = i || this.flowParseRestrictedIdentifier(!0);
    for (; this.eat(16); ) {
      const a = this.startNodeAt(r);
      a.qualification = s, a.id = this.flowParseRestrictedIdentifier(!0), s = this.finishNode(a, "QualifiedTypeIdentifier");
    }
    return s;
  }
  flowParseGenericType(r, i) {
    const n = this.startNodeAt(r);
    return n.typeParameters = null, n.id = this.flowParseQualifiedTypeIdentifier(r, i), this.match(47) && (n.typeParameters = this.flowParseTypeParameterInstantiation()), this.finishNode(n, "GenericTypeAnnotation");
  }
  flowParseTypeofType() {
    const r = this.startNode();
    return this.expect(87), r.argument = this.flowParsePrimaryType(), this.finishNode(r, "TypeofTypeAnnotation");
  }
  flowParseTupleType() {
    const r = this.startNode();
    for (r.types = [], this.expect(0); this.state.pos < this.length && !this.match(3) && (r.types.push(this.flowParseType()), !this.match(3)); )
      this.expect(12);
    return this.expect(3), this.finishNode(r, "TupleTypeAnnotation");
  }
  flowParseFunctionTypeParam(r) {
    let i = null, n = !1, s = null;
    const a = this.startNode(), o = this.lookahead(), l = this.state.type === 78;
    return o.type === 14 || o.type === 17 ? (l && !r && this.raise(fr.ThisParamMustBeFirst, a), i = this.parseIdentifier(l), this.eat(17) && (n = !0, l && this.raise(fr.ThisParamMayNotBeOptional, a)), s = this.flowParseTypeInitialiser()) : s = this.flowParseType(), a.name = i, a.optional = n, a.typeAnnotation = s, this.finishNode(a, "FunctionTypeParam");
  }
  reinterpretTypeAsFunctionTypeParam(r) {
    const i = this.startNodeAt(r.loc.start);
    return i.name = null, i.optional = !1, i.typeAnnotation = r, this.finishNode(i, "FunctionTypeParam");
  }
  flowParseFunctionTypeParams(r = []) {
    let i = null, n = null;
    for (this.match(78) && (n = this.flowParseFunctionTypeParam(!0), n.name = null, this.match(11) || this.expect(12)); !this.match(11) && !this.match(21); )
      r.push(this.flowParseFunctionTypeParam(!1)), this.match(11) || this.expect(12);
    return this.eat(21) && (i = this.flowParseFunctionTypeParam(!1)), {
      params: r,
      rest: i,
      _this: n
    };
  }
  flowIdentToTypeAnnotation(r, i, n) {
    switch (n.name) {
      case "any":
        return this.finishNode(i, "AnyTypeAnnotation");
      case "bool":
      case "boolean":
        return this.finishNode(i, "BooleanTypeAnnotation");
      case "mixed":
        return this.finishNode(i, "MixedTypeAnnotation");
      case "empty":
        return this.finishNode(i, "EmptyTypeAnnotation");
      case "number":
        return this.finishNode(i, "NumberTypeAnnotation");
      case "string":
        return this.finishNode(i, "StringTypeAnnotation");
      case "symbol":
        return this.finishNode(i, "SymbolTypeAnnotation");
      default:
        return this.checkNotUnderscore(n.name), this.flowParseGenericType(r, n);
    }
  }
  flowParsePrimaryType() {
    const r = this.state.startLoc, i = this.startNode();
    let n, s, a = !1;
    const o = this.state.noAnonFunctionType;
    switch (this.state.type) {
      case 5:
        return this.flowParseObjectType({
          allowStatic: !1,
          allowExact: !1,
          allowSpread: !0,
          allowProto: !1,
          allowInexact: !0
        });
      case 6:
        return this.flowParseObjectType({
          allowStatic: !1,
          allowExact: !0,
          allowSpread: !0,
          allowProto: !1,
          allowInexact: !1
        });
      case 0:
        return this.state.noAnonFunctionType = !1, s = this.flowParseTupleType(), this.state.noAnonFunctionType = o, s;
      case 47: {
        const l = this.startNode();
        return l.typeParameters = this.flowParseTypeParameterDeclaration(), this.expect(10), n = this.flowParseFunctionTypeParams(), l.params = n.params, l.rest = n.rest, l.this = n._this, this.expect(11), this.expect(19), l.returnType = this.flowParseType(), this.finishNode(l, "FunctionTypeAnnotation");
      }
      case 10: {
        const l = this.startNode();
        if (this.next(), !this.match(11) && !this.match(21))
          if (Ei(this.state.type) || this.match(78)) {
            const u = this.lookahead().type;
            a = u !== 17 && u !== 14;
          } else
            a = !0;
        if (a) {
          if (this.state.noAnonFunctionType = !1, s = this.flowParseType(), this.state.noAnonFunctionType = o, this.state.noAnonFunctionType || !(this.match(12) || this.match(11) && this.lookahead().type === 19))
            return this.expect(11), s;
          this.eat(12);
        }
        return s ? n = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(s)]) : n = this.flowParseFunctionTypeParams(), l.params = n.params, l.rest = n.rest, l.this = n._this, this.expect(11), this.expect(19), l.returnType = this.flowParseType(), l.typeParameters = null, this.finishNode(l, "FunctionTypeAnnotation");
      }
      case 134:
        return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation");
      case 85:
      case 86:
        return i.value = this.match(85), this.next(), this.finishNode(i, "BooleanLiteralTypeAnnotation");
      case 53:
        if (this.state.value === "-") {
          if (this.next(), this.match(135))
            return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", i);
          if (this.match(136))
            return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", i);
          throw this.raise(fr.UnexpectedSubtractionOperand, this.state.startLoc);
        }
        this.unexpected();
        return;
      case 135:
        return this.parseLiteral(this.state.value, "NumberLiteralTypeAnnotation");
      case 136:
        return this.parseLiteral(this.state.value, "BigIntLiteralTypeAnnotation");
      case 88:
        return this.next(), this.finishNode(i, "VoidTypeAnnotation");
      case 84:
        return this.next(), this.finishNode(i, "NullLiteralTypeAnnotation");
      case 78:
        return this.next(), this.finishNode(i, "ThisTypeAnnotation");
      case 55:
        return this.next(), this.finishNode(i, "ExistsTypeAnnotation");
      case 87:
        return this.flowParseTypeofType();
      default:
        if (d7(this.state.type)) {
          const l = Lh(this.state.type);
          return this.next(), super.createIdentifier(i, l);
        } else if (Ei(this.state.type))
          return this.isContextual(129) ? this.flowParseInterfaceType() : this.flowIdentToTypeAnnotation(r, i, this.parseIdentifier());
    }
    this.unexpected();
  }
  flowParsePostfixType() {
    const r = this.state.startLoc;
    let i = this.flowParsePrimaryType(), n = !1;
    for (; (this.match(0) || this.match(18)) && !this.canInsertSemicolon(); ) {
      const s = this.startNodeAt(r), a = this.eat(18);
      n = n || a, this.expect(0), !a && this.match(3) ? (s.elementType = i, this.next(), i = this.finishNode(s, "ArrayTypeAnnotation")) : (s.objectType = i, s.indexType = this.flowParseType(), this.expect(3), n ? (s.optional = a, i = this.finishNode(s, "OptionalIndexedAccessType")) : i = this.finishNode(s, "IndexedAccessType"));
    }
    return i;
  }
  flowParsePrefixType() {
    const r = this.startNode();
    return this.eat(17) ? (r.typeAnnotation = this.flowParsePrefixType(), this.finishNode(r, "NullableTypeAnnotation")) : this.flowParsePostfixType();
  }
  flowParseAnonFunctionWithoutParens() {
    const r = this.flowParsePrefixType();
    if (!this.state.noAnonFunctionType && this.eat(19)) {
      const i = this.startNodeAt(r.loc.start);
      return i.params = [this.reinterpretTypeAsFunctionTypeParam(r)], i.rest = null, i.this = null, i.returnType = this.flowParseType(), i.typeParameters = null, this.finishNode(i, "FunctionTypeAnnotation");
    }
    return r;
  }
  flowParseIntersectionType() {
    const r = this.startNode();
    this.eat(45);
    const i = this.flowParseAnonFunctionWithoutParens();
    for (r.types = [i]; this.eat(45); )
      r.types.push(this.flowParseAnonFunctionWithoutParens());
    return r.types.length === 1 ? i : this.finishNode(r, "IntersectionTypeAnnotation");
  }
  flowParseUnionType() {
    const r = this.startNode();
    this.eat(43);
    const i = this.flowParseIntersectionType();
    for (r.types = [i]; this.eat(43); )
      r.types.push(this.flowParseIntersectionType());
    return r.types.length === 1 ? i : this.finishNode(r, "UnionTypeAnnotation");
  }
  flowParseType() {
    const r = this.state.inType;
    this.state.inType = !0;
    const i = this.flowParseUnionType();
    return this.state.inType = r, i;
  }
  flowParseTypeOrImplicitInstantiation() {
    if (this.state.type === 132 && this.state.value === "_") {
      const r = this.state.startLoc, i = this.parseIdentifier();
      return this.flowParseGenericType(r, i);
    } else
      return this.flowParseType();
  }
  flowParseTypeAnnotation() {
    const r = this.startNode();
    return r.typeAnnotation = this.flowParseTypeInitialiser(), this.finishNode(r, "TypeAnnotation");
  }
  flowParseTypeAnnotatableIdentifier(r) {
    const i = r ? this.parseIdentifier() : this.flowParseRestrictedIdentifier();
    return this.match(14) && (i.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(i)), i;
  }
  typeCastToParameter(r) {
    return r.expression.typeAnnotation = r.typeAnnotation, this.resetEndLocation(r.expression, r.typeAnnotation.loc.end), r.expression;
  }
  flowParseVariance() {
    let r = null;
    return this.match(53) ? (r = this.startNode(), this.state.value === "+" ? r.kind = "plus" : r.kind = "minus", this.next(), this.finishNode(r, "Variance")) : r;
  }
  parseFunctionBody(r, i, n = !1) {
    if (i) {
      this.forwardNoArrowParamsConversionAt(r, () => super.parseFunctionBody(r, !0, n));
      return;
    }
    super.parseFunctionBody(r, !1, n);
  }
  parseFunctionBodyAndFinish(r, i, n = !1) {
    if (this.match(14)) {
      const s = this.startNode();
      [s.typeAnnotation, r.predicate] = this.flowParseTypeAndPredicateInitialiser(), r.returnType = s.typeAnnotation ? this.finishNode(s, "TypeAnnotation") : null;
    }
    return super.parseFunctionBodyAndFinish(r, i, n);
  }
  parseStatementLike(r) {
    if (this.state.strict && this.isContextual(129)) {
      const n = this.lookahead();
      if (Nc(n.type)) {
        const s = this.startNode();
        return this.next(), this.flowParseInterface(s);
      }
    } else if (this.isContextual(126)) {
      const n = this.startNode();
      return this.next(), this.flowParseEnumDeclaration(n);
    }
    const i = super.parseStatementLike(r);
    return this.flowPragma === void 0 && !this.isValidDirective(i) && (this.flowPragma = null), i;
  }
  parseExpressionStatement(r, i, n) {
    if (i.type === "Identifier") {
      if (i.name === "declare") {
        if (this.match(80) || Ei(this.state.type) || this.match(68) || this.match(74) || this.match(82))
          return this.flowParseDeclare(r);
      } else if (Ei(this.state.type)) {
        if (i.name === "interface")
          return this.flowParseInterface(r);
        if (i.name === "type")
          return this.flowParseTypeAlias(r);
        if (i.name === "opaque")
          return this.flowParseOpaqueType(r, !1);
      }
    }
    return super.parseExpressionStatement(r, i, n);
  }
  shouldParseExportDeclaration() {
    const {
      type: r
    } = this.state;
    return r === 126 || fZ(r) ? !this.state.containsEsc : super.shouldParseExportDeclaration();
  }
  isExportDefaultSpecifier() {
    const {
      type: r
    } = this.state;
    return r === 126 || fZ(r) ? this.state.containsEsc : super.isExportDefaultSpecifier();
  }
  parseExportDefaultExpression() {
    if (this.isContextual(126)) {
      const r = this.startNode();
      return this.next(), this.flowParseEnumDeclaration(r);
    }
    return super.parseExportDefaultExpression();
  }
  parseConditional(r, i, n) {
    if (!this.match(17))
      return r;
    if (this.state.maybeInArrowParameters) {
      const h = this.lookaheadCharCode();
      if (h === 44 || h === 61 || h === 58 || h === 41)
        return this.setOptionalParametersError(n), r;
    }
    this.expect(17);
    const s = this.state.clone(), a = this.state.noArrowAt, o = this.startNodeAt(i);
    let {
      consequent: l,
      failed: u
    } = this.tryParseConditionalConsequent(), [c, f] = this.getArrowLikeExpressions(l);
    if (u || f.length > 0) {
      const h = [...a];
      if (f.length > 0) {
        this.state = s, this.state.noArrowAt = h;
        for (let m = 0; m < f.length; m++)
          h.push(f[m].start);
        ({
          consequent: l,
          failed: u
        } = this.tryParseConditionalConsequent()), [c, f] = this.getArrowLikeExpressions(l);
      }
      u && c.length > 1 && this.raise(fr.AmbiguousConditionalArrow, s.startLoc), u && c.length === 1 && (this.state = s, h.push(c[0].start), this.state.noArrowAt = h, {
        consequent: l,
        failed: u
      } = this.tryParseConditionalConsequent());
    }
    return this.getArrowLikeExpressions(l, !0), this.state.noArrowAt = a, this.expect(14), o.test = r, o.consequent = l, o.alternate = this.forwardNoArrowParamsConversionAt(o, () => this.parseMaybeAssign(void 0, void 0)), this.finishNode(o, "ConditionalExpression");
  }
  tryParseConditionalConsequent() {
    this.state.noArrowParamsConversionAt.push(this.state.start);
    const r = this.parseMaybeAssignAllowIn(), i = !this.match(14);
    return this.state.noArrowParamsConversionAt.pop(), {
      consequent: r,
      failed: i
    };
  }
  getArrowLikeExpressions(r, i) {
    const n = [r], s = [];
    for (; n.length !== 0; ) {
      const a = n.pop();
      a.type === "ArrowFunctionExpression" && a.body.type !== "BlockStatement" ? (a.typeParameters || !a.returnType ? this.finishArrowValidation(a) : s.push(a), n.push(a.body)) : a.type === "ConditionalExpression" && (n.push(a.consequent), n.push(a.alternate));
    }
    return i ? (s.forEach((a) => this.finishArrowValidation(a)), [s, []]) : uRt(s, (a) => a.params.every((o) => this.isAssignable(o, !0)));
  }
  finishArrowValidation(r) {
    var i;
    this.toAssignableList(r.params, (i = r.extra) == null ? void 0 : i.trailingCommaLoc, !1), this.scope.enter(6), super.checkParams(r, !1, !0), this.scope.exit();
  }
  forwardNoArrowParamsConversionAt(r, i) {
    let n;
    return this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(r.start)) ? (this.state.noArrowParamsConversionAt.push(this.state.start), n = i(), this.state.noArrowParamsConversionAt.pop()) : n = i(), n;
  }
  parseParenItem(r, i) {
    const n = super.parseParenItem(r, i);
    if (this.eat(17) && (n.optional = !0, this.resetEndLocation(r)), this.match(14)) {
      const s = this.startNodeAt(i);
      return s.expression = n, s.typeAnnotation = this.flowParseTypeAnnotation(), this.finishNode(s, "TypeCastExpression");
    }
    return n;
  }
  assertModuleNodeAllowed(r) {
    r.type === "ImportDeclaration" && (r.importKind === "type" || r.importKind === "typeof") || r.type === "ExportNamedDeclaration" && r.exportKind === "type" || r.type === "ExportAllDeclaration" && r.exportKind === "type" || super.assertModuleNodeAllowed(r);
  }
  parseExportDeclaration(r) {
    if (this.isContextual(130)) {
      r.exportKind = "type";
      const i = this.startNode();
      return this.next(), this.match(5) ? (r.specifiers = this.parseExportSpecifiers(!0), super.parseExportFrom(r), null) : this.flowParseTypeAlias(i);
    } else if (this.isContextual(131)) {
      r.exportKind = "type";
      const i = this.startNode();
      return this.next(), this.flowParseOpaqueType(i, !1);
    } else if (this.isContextual(129)) {
      r.exportKind = "type";
      const i = this.startNode();
      return this.next(), this.flowParseInterface(i);
    } else if (this.isContextual(126)) {
      r.exportKind = "value";
      const i = this.startNode();
      return this.next(), this.flowParseEnumDeclaration(i);
    } else
      return super.parseExportDeclaration(r);
  }
  eatExportStar(r) {
    return super.eatExportStar(r) ? !0 : this.isContextual(130) && this.lookahead().type === 55 ? (r.exportKind = "type", this.next(), this.next(), !0) : !1;
  }
  maybeParseExportNamespaceSpecifier(r) {
    const {
      startLoc: i
    } = this.state, n = super.maybeParseExportNamespaceSpecifier(r);
    return n && r.exportKind === "type" && this.unexpected(i), n;
  }
  parseClassId(r, i, n) {
    super.parseClassId(r, i, n), this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration());
  }
  parseClassMember(r, i, n) {
    const {
      startLoc: s
    } = this.state;
    if (this.isContextual(125)) {
      if (super.parseClassMemberFromModifier(r, i))
        return;
      i.declare = !0;
    }
    super.parseClassMember(r, i, n), i.declare && (i.type !== "ClassProperty" && i.type !== "ClassPrivateProperty" && i.type !== "PropertyDefinition" ? this.raise(fr.DeclareClassElement, s) : i.value && this.raise(fr.DeclareClassFieldInitializer, i.value));
  }
  isIterator(r) {
    return r === "iterator" || r === "asyncIterator";
  }
  readIterator() {
    const r = super.readWord1(), i = "@@" + r;
    (!this.isIterator(r) || !this.state.inType) && this.raise(et.InvalidIdentifier, this.state.curPosition(), {
      identifierName: i
    }), this.finishToken(132, i);
  }
  getTokenFromCode(r) {
    const i = this.input.charCodeAt(this.state.pos + 1);
    r === 123 && i === 124 ? this.finishOp(6, 2) : this.state.inType && (r === 62 || r === 60) ? this.finishOp(r === 62 ? 48 : 47, 1) : this.state.inType && r === 63 ? i === 46 ? this.finishOp(18, 2) : this.finishOp(17, 1) : LMt(r, i, this.input.charCodeAt(this.state.pos + 2)) ? (this.state.pos += 2, this.readIterator()) : super.getTokenFromCode(r);
  }
  isAssignable(r, i) {
    return r.type === "TypeCastExpression" ? this.isAssignable(r.expression, i) : super.isAssignable(r, i);
  }
  toAssignable(r, i = !1) {
    !i && r.type === "AssignmentExpression" && r.left.type === "TypeCastExpression" && (r.left = this.typeCastToParameter(r.left)), super.toAssignable(r, i);
  }
  toAssignableList(r, i, n) {
    for (let s = 0; s < r.length; s++) {
      const a = r[s];
      (a == null ? void 0 : a.type) === "TypeCastExpression" && (r[s] = this.typeCastToParameter(a));
    }
    super.toAssignableList(r, i, n);
  }
  toReferencedList(r, i) {
    for (let s = 0; s < r.length; s++) {
      var n;
      const a = r[s];
      a && a.type === "TypeCastExpression" && !((n = a.extra) != null && n.parenthesized) && (r.length > 1 || !i) && this.raise(fr.TypeCastInPattern, a.typeAnnotation);
    }
    return r;
  }
  parseArrayLike(r, i, n, s) {
    const a = super.parseArrayLike(r, i, n, s);
    return i && !this.state.maybeInArrowParameters && this.toReferencedList(a.elements), a;
  }
  isValidLVal(r, i, n) {
    return r === "TypeCastExpression" || super.isValidLVal(r, i, n);
  }
  parseClassProperty(r) {
    return this.match(14) && (r.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassProperty(r);
  }
  parseClassPrivateProperty(r) {
    return this.match(14) && (r.typeAnnotation = this.flowParseTypeAnnotation()), super.parseClassPrivateProperty(r);
  }
  isClassMethod() {
    return this.match(47) || super.isClassMethod();
  }
  isClassProperty() {
    return this.match(14) || super.isClassProperty();
  }
  isNonstaticConstructor(r) {
    return !this.match(14) && super.isNonstaticConstructor(r);
  }
  pushClassMethod(r, i, n, s, a, o) {
    if (i.variance && this.unexpected(i.variance.loc.start), delete i.variance, this.match(47) && (i.typeParameters = this.flowParseTypeParameterDeclaration()), super.pushClassMethod(r, i, n, s, a, o), i.params && a) {
      const l = i.params;
      l.length > 0 && this.isThisParam(l[0]) && this.raise(fr.ThisParamBannedInConstructor, i);
    } else if (i.type === "MethodDefinition" && a && i.value.params) {
      const l = i.value.params;
      l.length > 0 && this.isThisParam(l[0]) && this.raise(fr.ThisParamBannedInConstructor, i);
    }
  }
  pushClassPrivateMethod(r, i, n, s) {
    i.variance && this.unexpected(i.variance.loc.start), delete i.variance, this.match(47) && (i.typeParameters = this.flowParseTypeParameterDeclaration()), super.pushClassPrivateMethod(r, i, n, s);
  }
  parseClassSuper(r) {
    if (super.parseClassSuper(r), r.superClass && this.match(47) && (r.superTypeParameters = this.flowParseTypeParameterInstantiation()), this.isContextual(113)) {
      this.next();
      const i = r.implements = [];
      do {
        const n = this.startNode();
        n.id = this.flowParseRestrictedIdentifier(!0), this.match(47) ? n.typeParameters = this.flowParseTypeParameterInstantiation() : n.typeParameters = null, i.push(this.finishNode(n, "ClassImplements"));
      } while (this.eat(12));
    }
  }
  checkGetterSetterParams(r) {
    super.checkGetterSetterParams(r);
    const i = this.getObjectOrClassMethodParams(r);
    if (i.length > 0) {
      const n = i[0];
      this.isThisParam(n) && r.kind === "get" ? this.raise(fr.GetterMayNotHaveThisParam, n) : this.isThisParam(n) && this.raise(fr.SetterMayNotHaveThisParam, n);
    }
  }
  parsePropertyNamePrefixOperator(r) {
    r.variance = this.flowParseVariance();
  }
  parseObjPropValue(r, i, n, s, a, o, l) {
    r.variance && this.unexpected(r.variance.loc.start), delete r.variance;
    let u;
    this.match(47) && !o && (u = this.flowParseTypeParameterDeclaration(), this.match(10) || this.unexpected());
    const c = super.parseObjPropValue(r, i, n, s, a, o, l);
    return u && ((c.value || c).typeParameters = u), c;
  }
  parseFunctionParamType(r) {
    return this.eat(17) && (r.type !== "Identifier" && this.raise(fr.PatternIsOptional, r), this.isThisParam(r) && this.raise(fr.ThisParamMayNotBeOptional, r), r.optional = !0), this.match(14) ? r.typeAnnotation = this.flowParseTypeAnnotation() : this.isThisParam(r) && this.raise(fr.ThisParamAnnotationRequired, r), this.match(29) && this.isThisParam(r) && this.raise(fr.ThisParamNoDefault, r), this.resetEndLocation(r), r;
  }
  parseMaybeDefault(r, i) {
    const n = super.parseMaybeDefault(r, i);
    return n.type === "AssignmentPattern" && n.typeAnnotation && n.right.start < n.typeAnnotation.start && this.raise(fr.TypeBeforeInitializer, n.typeAnnotation), n;
  }
  checkImportReflection(r) {
    super.checkImportReflection(r), r.module && r.importKind !== "value" && this.raise(fr.ImportReflectionHasImportType, r.specifiers[0].loc.start);
  }
  parseImportSpecifierLocal(r, i, n) {
    i.local = yZ(r) ? this.flowParseRestrictedIdentifier(!0, !0) : this.parseIdentifier(), r.specifiers.push(this.finishImportSpecifier(i, n));
  }
  isPotentialImportPhase(r) {
    if (super.isPotentialImportPhase(r))
      return !0;
    if (this.isContextual(130)) {
      if (!r)
        return !0;
      const i = this.lookaheadCharCode();
      return i === 123 || i === 42;
    }
    return !r && this.isContextual(87);
  }
  applyImportPhase(r, i, n, s) {
    if (super.applyImportPhase(r, i, n, s), i) {
      if (!n && this.match(65))
        return;
      r.exportKind = n === "type" ? n : "value";
    } else
      n === "type" && this.match(55) && this.unexpected(), r.importKind = n === "type" || n === "typeof" ? n : "value";
  }
  parseImportSpecifier(r, i, n, s, a) {
    const o = r.imported;
    let l = null;
    o.type === "Identifier" && (o.name === "type" ? l = "type" : o.name === "typeof" && (l = "typeof"));
    let u = !1;
    if (this.isContextual(93) && !this.isLookaheadContextual("as")) {
      const f = this.parseIdentifier(!0);
      l !== null && !Nc(this.state.type) ? (r.imported = f, r.importKind = l, r.local = Sf(f)) : (r.imported = o, r.importKind = null, r.local = this.parseIdentifier());
    } else {
      if (l !== null && Nc(this.state.type))
        r.imported = this.parseIdentifier(!0), r.importKind = l;
      else {
        if (i)
          throw this.raise(et.ImportBindingIsString, r, {
            importName: o.value
          });
        r.imported = o, r.importKind = null;
      }
      this.eatContextual(93) ? r.local = this.parseIdentifier() : (u = !0, r.local = Sf(r.imported));
    }
    const c = yZ(r);
    return n && c && this.raise(fr.ImportTypeShorthandOnlyInPureImport, r), (n || c) && this.checkReservedType(r.local.name, r.local.loc.start, !0), u && !n && !c && this.checkReservedWord(r.local.name, r.loc.start, !0, !0), this.finishImportSpecifier(r, "ImportSpecifier");
  }
  parseBindingAtom() {
    switch (this.state.type) {
      case 78:
        return this.parseIdentifier(!0);
      default:
        return super.parseBindingAtom();
    }
  }
  parseFunctionParams(r, i) {
    const n = r.kind;
    n !== "get" && n !== "set" && this.match(47) && (r.typeParameters = this.flowParseTypeParameterDeclaration()), super.parseFunctionParams(r, i);
  }
  parseVarId(r, i) {
    super.parseVarId(r, i), this.match(14) && (r.id.typeAnnotation = this.flowParseTypeAnnotation(), this.resetEndLocation(r.id));
  }
  parseAsyncArrowFromCallExpression(r, i) {
    if (this.match(14)) {
      const n = this.state.noAnonFunctionType;
      this.state.noAnonFunctionType = !0, r.returnType = this.flowParseTypeAnnotation(), this.state.noAnonFunctionType = n;
    }
    return super.parseAsyncArrowFromCallExpression(r, i);
  }
  shouldParseAsyncArrow() {
    return this.match(14) || super.shouldParseAsyncArrow();
  }
  parseMaybeAssign(r, i) {
    var n;
    let s = null, a;
    if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) {
      if (s = this.state.clone(), a = this.tryParse(() => super.parseMaybeAssign(r, i), s), !a.error)
        return a.node;
      const {
        context: u
      } = this.state, c = u[u.length - 1];
      (c === Fi.j_oTag || c === Fi.j_expr) && u.pop();
    }
    if ((n = a) != null && n.error || this.match(47)) {
      var o, l;
      s = s || this.state.clone();
      let u;
      const c = this.tryParse((h) => {
        var m;
        u = this.flowParseTypeParameterDeclaration();
        const g = this.forwardNoArrowParamsConversionAt(u, () => {
          const v = super.parseMaybeAssign(r, i);
          return this.resetStartLocationFromNode(v, u), v;
        });
        (m = g.extra) != null && m.parenthesized && h();
        const y = this.maybeUnwrapTypeCastExpression(g);
        return y.type !== "ArrowFunctionExpression" && h(), y.typeParameters = u, this.resetStartLocationFromNode(y, u), g;
      }, s);
      let f = null;
      if (c.node && this.maybeUnwrapTypeCastExpression(c.node).type === "ArrowFunctionExpression") {
        if (!c.error && !c.aborted)
          return c.node.async && this.raise(fr.UnexpectedTypeParameterBeforeAsyncArrowFunction, u), c.node;
        f = c.node;
      }
      if ((o = a) != null && o.node)
        return this.state = a.failState, a.node;
      if (f)
        return this.state = c.failState, f;
      throw (l = a) != null && l.thrown ? a.error : c.thrown ? c.error : this.raise(fr.UnexpectedTokenAfterTypeParameter, u);
    }
    return super.parseMaybeAssign(r, i);
  }
  parseArrow(r) {
    if (this.match(14)) {
      const i = this.tryParse(() => {
        const n = this.state.noAnonFunctionType;
        this.state.noAnonFunctionType = !0;
        const s = this.startNode();
        return [s.typeAnnotation, r.predicate] = this.flowParseTypeAndPredicateInitialiser(), this.state.noAnonFunctionType = n, this.canInsertSemicolon() && this.unexpected(), this.match(19) || this.unexpected(), s;
      });
      if (i.thrown)
        return null;
      i.error && (this.state = i.failState), r.returnType = i.node.typeAnnotation ? this.finishNode(i.node, "TypeAnnotation") : null;
    }
    return super.parseArrow(r);
  }
  shouldParseArrow(r) {
    return this.match(14) || super.shouldParseArrow(r);
  }
  setArrowFunctionParameters(r, i) {
    this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(r.start)) ? r.params = i : super.setArrowFunctionParameters(r, i);
  }
  checkParams(r, i, n, s = !0) {
    if (!(n && this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(r.start)))) {
      for (let a = 0; a < r.params.length; a++)
        this.isThisParam(r.params[a]) && a > 0 && this.raise(fr.ThisParamMustBeFirst, r.params[a]);
      super.checkParams(r, i, n, s);
    }
  }
  parseParenAndDistinguishExpression(r) {
    return super.parseParenAndDistinguishExpression(r && !this.state.noArrowAt.includes(this.sourceToOffsetPos(this.state.start)));
  }
  parseSubscripts(r, i, n) {
    if (r.type === "Identifier" && r.name === "async" && this.state.noArrowAt.includes(i.index)) {
      this.next();
      const s = this.startNodeAt(i);
      s.callee = r, s.arguments = super.parseCallExpressionArguments(11), r = this.finishNode(s, "CallExpression");
    } else if (r.type === "Identifier" && r.name === "async" && this.match(47)) {
      const s = this.state.clone(), a = this.tryParse((l) => this.parseAsyncArrowWithTypeParameters(i) || l(), s);
      if (!a.error && !a.aborted)
        return a.node;
      const o = this.tryParse(() => super.parseSubscripts(r, i, n), s);
      if (o.node && !o.error)
        return o.node;
      if (a.node)
        return this.state = a.failState, a.node;
      if (o.node)
        return this.state = o.failState, o.node;
      throw a.error || o.error;
    }
    return super.parseSubscripts(r, i, n);
  }
  parseSubscript(r, i, n, s) {
    if (this.match(18) && this.isLookaheadToken_lt()) {
      if (s.optionalChainMember = !0, n)
        return s.stop = !0, r;
      this.next();
      const a = this.startNodeAt(i);
      return a.callee = r, a.typeArguments = this.flowParseTypeParameterInstantiation(), this.expect(10), a.arguments = this.parseCallExpressionArguments(11), a.optional = !0, this.finishCallExpression(a, !0);
    } else if (!n && this.shouldParseTypes() && this.match(47)) {
      const a = this.startNodeAt(i);
      a.callee = r;
      const o = this.tryParse(() => (a.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(), this.expect(10), a.arguments = super.parseCallExpressionArguments(11), s.optionalChainMember && (a.optional = !1), this.finishCallExpression(a, s.optionalChainMember)));
      if (o.node)
        return o.error && (this.state = o.failState), o.node;
    }
    return super.parseSubscript(r, i, n, s);
  }
  parseNewCallee(r) {
    super.parseNewCallee(r);
    let i = null;
    this.shouldParseTypes() && this.match(47) && (i = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node), r.typeArguments = i;
  }
  parseAsyncArrowWithTypeParameters(r) {
    const i = this.startNodeAt(r);
    if (this.parseFunctionParams(i, !1), !!this.parseArrow(i))
      return super.parseArrowExpression(i, void 0, !0);
  }
  readToken_mult_modulo(r) {
    const i = this.input.charCodeAt(this.state.pos + 1);
    if (r === 42 && i === 47 && this.state.hasFlowComment) {
      this.state.hasFlowComment = !1, this.state.pos += 2, this.nextToken();
      return;
    }
    super.readToken_mult_modulo(r);
  }
  readToken_pipe_amp(r) {
    const i = this.input.charCodeAt(this.state.pos + 1);
    if (r === 124 && i === 125) {
      this.finishOp(9, 2);
      return;
    }
    super.readToken_pipe_amp(r);
  }
  parseTopLevel(r, i) {
    const n = super.parseTopLevel(r, i);
    return this.state.hasFlowComment && this.raise(fr.UnterminatedFlowComment, this.state.curPosition()), n;
  }
  skipBlockComment() {
    if (this.hasPlugin("flowComments") && this.skipFlowComment()) {
      if (this.state.hasFlowComment)
        throw this.raise(fr.NestedFlowComment, this.state.startLoc);
      this.hasFlowCommentCompletion();
      const r = this.skipFlowComment();
      r && (this.state.pos += r, this.state.hasFlowComment = !0);
      return;
    }
    return super.skipBlockComment(this.state.hasFlowComment ? "*-/" : "*/");
  }
  skipFlowComment() {
    const {
      pos: r
    } = this.state;
    let i = 2;
    for (; [32, 9].includes(this.input.charCodeAt(r + i)); )
      i++;
    const n = this.input.charCodeAt(i + r), s = this.input.charCodeAt(i + r + 1);
    return n === 58 && s === 58 ? i + 2 : this.input.slice(i + r, i + r + 12) === "flow-include" ? i + 12 : n === 58 && s !== 58 ? i : !1;
  }
  hasFlowCommentCompletion() {
    if (this.input.indexOf("*/", this.state.pos) === -1)
      throw this.raise(et.UnterminatedComment, this.state.curPosition());
  }
  flowEnumErrorBooleanMemberNotInitialized(r, {
    enumName: i,
    memberName: n
  }) {
    this.raise(fr.EnumBooleanMemberNotInitialized, r, {
      memberName: n,
      enumName: i
    });
  }
  flowEnumErrorInvalidMemberInitializer(r, i) {
    return this.raise(i.explicitType ? i.explicitType === "symbol" ? fr.EnumInvalidMemberInitializerSymbolType : fr.EnumInvalidMemberInitializerPrimaryType : fr.EnumInvalidMemberInitializerUnknownType, r, i);
  }
  flowEnumErrorNumberMemberNotInitialized(r, i) {
    this.raise(fr.EnumNumberMemberNotInitialized, r, i);
  }
  flowEnumErrorStringMemberInconsistentlyInitialized(r, i) {
    this.raise(fr.EnumStringMemberInconsistentlyInitialized, r, i);
  }
  flowEnumMemberInit() {
    const r = this.state.startLoc, i = () => this.match(12) || this.match(8);
    switch (this.state.type) {
      case 135: {
        const n = this.parseNumericLiteral(this.state.value);
        return i() ? {
          type: "number",
          loc: n.loc.start,
          value: n
        } : {
          type: "invalid",
          loc: r
        };
      }
      case 134: {
        const n = this.parseStringLiteral(this.state.value);
        return i() ? {
          type: "string",
          loc: n.loc.start,
          value: n
        } : {
          type: "invalid",
          loc: r
        };
      }
      case 85:
      case 86: {
        const n = this.parseBooleanLiteral(this.match(85));
        return i() ? {
          type: "boolean",
          loc: n.loc.start,
          value: n
        } : {
          type: "invalid",
          loc: r
        };
      }
      default:
        return {
          type: "invalid",
          loc: r
        };
    }
  }
  flowEnumMemberRaw() {
    const r = this.state.startLoc, i = this.parseIdentifier(!0), n = this.eat(29) ? this.flowEnumMemberInit() : {
      type: "none",
      loc: r
    };
    return {
      id: i,
      init: n
    };
  }
  flowEnumCheckExplicitTypeMismatch(r, i, n) {
    const {
      explicitType: s
    } = i;
    s !== null && s !== n && this.flowEnumErrorInvalidMemberInitializer(r, i);
  }
  flowEnumMembers({
    enumName: r,
    explicitType: i
  }) {
    const n = /* @__PURE__ */ new Set(), s = {
      booleanMembers: [],
      numberMembers: [],
      stringMembers: [],
      defaultedMembers: []
    };
    let a = !1;
    for (; !this.match(8); ) {
      if (this.eat(21)) {
        a = !0;
        break;
      }
      const o = this.startNode(), {
        id: l,
        init: u
      } = this.flowEnumMemberRaw(), c = l.name;
      if (c === "")
        continue;
      /^[a-z]/.test(c) && this.raise(fr.EnumInvalidMemberName, l, {
        memberName: c,
        suggestion: c[0].toUpperCase() + c.slice(1),
        enumName: r
      }), n.has(c) && this.raise(fr.EnumDuplicateMemberName, l, {
        memberName: c,
        enumName: r
      }), n.add(c);
      const f = {
        enumName: r,
        explicitType: i,
        memberName: c
      };
      switch (o.id = l, u.type) {
        case "boolean": {
          this.flowEnumCheckExplicitTypeMismatch(u.loc, f, "boolean"), o.init = u.value, s.booleanMembers.push(this.finishNode(o, "EnumBooleanMember"));
          break;
        }
        case "number": {
          this.flowEnumCheckExplicitTypeMismatch(u.loc, f, "number"), o.init = u.value, s.numberMembers.push(this.finishNode(o, "EnumNumberMember"));
          break;
        }
        case "string": {
          this.flowEnumCheckExplicitTypeMismatch(u.loc, f, "string"), o.init = u.value, s.stringMembers.push(this.finishNode(o, "EnumStringMember"));
          break;
        }
        case "invalid":
          throw this.flowEnumErrorInvalidMemberInitializer(u.loc, f);
        case "none":
          switch (i) {
            case "boolean":
              this.flowEnumErrorBooleanMemberNotInitialized(u.loc, f);
              break;
            case "number":
              this.flowEnumErrorNumberMemberNotInitialized(u.loc, f);
              break;
            default:
              s.defaultedMembers.push(this.finishNode(o, "EnumDefaultedMember"));
          }
      }
      this.match(8) || this.expect(12);
    }
    return {
      members: s,
      hasUnknownMembers: a
    };
  }
  flowEnumStringMembers(r, i, {
    enumName: n
  }) {
    if (r.length === 0)
      return i;
    if (i.length === 0)
      return r;
    if (i.length > r.length) {
      for (const s of r)
        this.flowEnumErrorStringMemberInconsistentlyInitialized(s, {
          enumName: n
        });
      return i;
    } else {
      for (const s of i)
        this.flowEnumErrorStringMemberInconsistentlyInitialized(s, {
          enumName: n
        });
      return r;
    }
  }
  flowEnumParseExplicitType({
    enumName: r
  }) {
    if (!this.eatContextual(102))
      return null;
    if (!Ei(this.state.type))
      throw this.raise(fr.EnumInvalidExplicitTypeUnknownSupplied, this.state.startLoc, {
        enumName: r
      });
    const {
      value: i
    } = this.state;
    return this.next(), i !== "boolean" && i !== "number" && i !== "string" && i !== "symbol" && this.raise(fr.EnumInvalidExplicitType, this.state.startLoc, {
      enumName: r,
      invalidEnumType: i
    }), i;
  }
  flowEnumBody(r, i) {
    const n = i.name, s = i.loc.start, a = this.flowEnumParseExplicitType({
      enumName: n
    });
    this.expect(5);
    const {
      members: o,
      hasUnknownMembers: l
    } = this.flowEnumMembers({
      enumName: n,
      explicitType: a
    });
    switch (r.hasUnknownMembers = l, a) {
      case "boolean":
        return r.explicitType = !0, r.members = o.booleanMembers, this.expect(8), this.finishNode(r, "EnumBooleanBody");
      case "number":
        return r.explicitType = !0, r.members = o.numberMembers, this.expect(8), this.finishNode(r, "EnumNumberBody");
      case "string":
        return r.explicitType = !0, r.members = this.flowEnumStringMembers(o.stringMembers, o.defaultedMembers, {
          enumName: n
        }), this.expect(8), this.finishNode(r, "EnumStringBody");
      case "symbol":
        return r.members = o.defaultedMembers, this.expect(8), this.finishNode(r, "EnumSymbolBody");
      default: {
        const u = () => (r.members = [], this.expect(8), this.finishNode(r, "EnumStringBody"));
        r.explicitType = !1;
        const c = o.booleanMembers.length, f = o.numberMembers.length, h = o.stringMembers.length, m = o.defaultedMembers.length;
        if (!c && !f && !h && !m)
          return u();
        if (!c && !f)
          return r.members = this.flowEnumStringMembers(o.stringMembers, o.defaultedMembers, {
            enumName: n
          }), this.expect(8), this.finishNode(r, "EnumStringBody");
        if (!f && !h && c >= m) {
          for (const g of o.defaultedMembers)
            this.flowEnumErrorBooleanMemberNotInitialized(g.loc.start, {
              enumName: n,
              memberName: g.id.name
            });
          return r.members = o.booleanMembers, this.expect(8), this.finishNode(r, "EnumBooleanBody");
        } else if (!c && !h && f >= m) {
          for (const g of o.defaultedMembers)
            this.flowEnumErrorNumberMemberNotInitialized(g.loc.start, {
              enumName: n,
              memberName: g.id.name
            });
          return r.members = o.numberMembers, this.expect(8), this.finishNode(r, "EnumNumberBody");
        } else
          return this.raise(fr.EnumInconsistentMemberValues, s, {
            enumName: n
          }), u();
      }
    }
  }
  flowParseEnumDeclaration(r) {
    const i = this.parseIdentifier();
    return r.id = i, r.body = this.flowEnumBody(this.startNode(), i), this.finishNode(r, "EnumDeclaration");
  }
  isLookaheadToken_lt() {
    const r = this.nextTokenStart();
    if (this.input.charCodeAt(r) === 60) {
      const i = this.input.charCodeAt(r + 1);
      return i !== 60 && i !== 61;
    }
    return !1;
  }
  maybeUnwrapTypeCastExpression(r) {
    return r.type === "TypeCastExpression" ? r.expression : r;
  }
};
const fRt = {
  __proto__: null,
  quot: '"',
  amp: "&",
  apos: "'",
  lt: "<",
  gt: ">",
  nbsp: " ",
  iexcl: "¡",
  cent: "¢",
  pound: "£",
  curren: "¤",
  yen: "¥",
  brvbar: "¦",
  sect: "§",
  uml: "¨",
  copy: "©",
  ordf: "ª",
  laquo: "«",
  not: "¬",
  shy: "­",
  reg: "®",
  macr: "¯",
  deg: "°",
  plusmn: "±",
  sup2: "²",
  sup3: "³",
  acute: "´",
  micro: "µ",
  para: "¶",
  middot: "·",
  cedil: "¸",
  sup1: "¹",
  ordm: "º",
  raquo: "»",
  frac14: "¼",
  frac12: "½",
  frac34: "¾",
  iquest: "¿",
  Agrave: "À",
  Aacute: "Á",
  Acirc: "Â",
  Atilde: "Ã",
  Auml: "Ä",
  Aring: "Å",
  AElig: "Æ",
  Ccedil: "Ç",
  Egrave: "È",
  Eacute: "É",
  Ecirc: "Ê",
  Euml: "Ë",
  Igrave: "Ì",
  Iacute: "Í",
  Icirc: "Î",
  Iuml: "Ï",
  ETH: "Ð",
  Ntilde: "Ñ",
  Ograve: "Ò",
  Oacute: "Ó",
  Ocirc: "Ô",
  Otilde: "Õ",
  Ouml: "Ö",
  times: "×",
  Oslash: "Ø",
  Ugrave: "Ù",
  Uacute: "Ú",
  Ucirc: "Û",
  Uuml: "Ü",
  Yacute: "Ý",
  THORN: "Þ",
  szlig: "ß",
  agrave: "à",
  aacute: "á",
  acirc: "â",
  atilde: "ã",
  auml: "ä",
  aring: "å",
  aelig: "æ",
  ccedil: "ç",
  egrave: "è",
  eacute: "é",
  ecirc: "ê",
  euml: "ë",
  igrave: "ì",
  iacute: "í",
  icirc: "î",
  iuml: "ï",
  eth: "ð",
  ntilde: "ñ",
  ograve: "ò",
  oacute: "ó",
  ocirc: "ô",
  otilde: "õ",
  ouml: "ö",
  divide: "÷",
  oslash: "ø",
  ugrave: "ù",
  uacute: "ú",
  ucirc: "û",
  uuml: "ü",
  yacute: "ý",
  thorn: "þ",
  yuml: "ÿ",
  OElig: "Œ",
  oelig: "œ",
  Scaron: "Š",
  scaron: "š",
  Yuml: "Ÿ",
  fnof: "ƒ",
  circ: "ˆ",
  tilde: "˜",
  Alpha: "Α",
  Beta: "Β",
  Gamma: "Γ",
  Delta: "Δ",
  Epsilon: "Ε",
  Zeta: "Ζ",
  Eta: "Η",
  Theta: "Θ",
  Iota: "Ι",
  Kappa: "Κ",
  Lambda: "Λ",
  Mu: "Μ",
  Nu: "Ν",
  Xi: "Ξ",
  Omicron: "Ο",
  Pi: "Π",
  Rho: "Ρ",
  Sigma: "Σ",
  Tau: "Τ",
  Upsilon: "Υ",
  Phi: "Φ",
  Chi: "Χ",
  Psi: "Ψ",
  Omega: "Ω",
  alpha: "α",
  beta: "β",
  gamma: "γ",
  delta: "δ",
  epsilon: "ε",
  zeta: "ζ",
  eta: "η",
  theta: "θ",
  iota: "ι",
  kappa: "κ",
  lambda: "λ",
  mu: "μ",
  nu: "ν",
  xi: "ξ",
  omicron: "ο",
  pi: "π",
  rho: "ρ",
  sigmaf: "ς",
  sigma: "σ",
  tau: "τ",
  upsilon: "υ",
  phi: "φ",
  chi: "χ",
  psi: "ψ",
  omega: "ω",
  thetasym: "ϑ",
  upsih: "ϒ",
  piv: "ϖ",
  ensp: " ",
  emsp: " ",
  thinsp: " ",
  zwnj: "‌",
  zwj: "‍",
  lrm: "‎",
  rlm: "‏",
  ndash: "–",
  mdash: "—",
  lsquo: "‘",
  rsquo: "’",
  sbquo: "‚",
  ldquo: "“",
  rdquo: "”",
  bdquo: "„",
  dagger: "†",
  Dagger: "‡",
  bull: "•",
  hellip: "…",
  permil: "‰",
  prime: "′",
  Prime: "″",
  lsaquo: "‹",
  rsaquo: "›",
  oline: "‾",
  frasl: "⁄",
  euro: "€",
  image: "ℑ",
  weierp: "℘",
  real: "ℜ",
  trade: "™",
  alefsym: "ℵ",
  larr: "←",
  uarr: "↑",
  rarr: "→",
  darr: "↓",
  harr: "↔",
  crarr: "↵",
  lArr: "⇐",
  uArr: "⇑",
  rArr: "⇒",
  dArr: "⇓",
  hArr: "⇔",
  forall: "∀",
  part: "∂",
  exist: "∃",
  empty: "∅",
  nabla: "∇",
  isin: "∈",
  notin: "∉",
  ni: "∋",
  prod: "∏",
  sum: "∑",
  minus: "−",
  lowast: "∗",
  radic: "√",
  prop: "∝",
  infin: "∞",
  ang: "∠",
  and: "∧",
  or: "∨",
  cap: "∩",
  cup: "∪",
  int: "∫",
  there4: "∴",
  sim: "∼",
  cong: "≅",
  asymp: "≈",
  ne: "≠",
  equiv: "≡",
  le: "≤",
  ge: "≥",
  sub: "⊂",
  sup: "⊃",
  nsub: "⊄",
  sube: "⊆",
  supe: "⊇",
  oplus: "⊕",
  otimes: "⊗",
  perp: "⊥",
  sdot: "⋅",
  lceil: "⌈",
  rceil: "⌉",
  lfloor: "⌊",
  rfloor: "⌋",
  lang: "〈",
  rang: "〉",
  loz: "◊",
  spades: "♠",
  clubs: "♣",
  hearts: "♥",
  diams: "♦"
};
var Cae;
const yd = mf(Cae || (Cae = at(["jsx"])))({
  AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.",
  MissingClosingTagElement: ({
    openingTagName: e
  }) => "Expected corresponding JSX closing tag for <".concat(e, ">."),
  MissingClosingTagFragment: "Expected corresponding JSX closing tag for <>.",
  UnexpectedSequenceExpression: "Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?",
  UnexpectedToken: ({
    unexpected: e,
    HTMLEntity: t
  }) => "Unexpected token `".concat(e, "`. Did you mean `").concat(t, "` or `{'").concat(e, "'}`?"),
  UnsupportedJsxValue: "JSX value should be either an expression or a quoted JSX text.",
  UnterminatedJsxContent: "Unterminated JSX contents.",
  UnwrappedAdjacentJSXElements: "Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?"
});
function ah(e) {
  return e ? e.type === "JSXOpeningFragment" || e.type === "JSXClosingFragment" : !1;
}
function gy(e) {
  if (e.type === "JSXIdentifier")
    return e.name;
  if (e.type === "JSXNamespacedName")
    return e.namespace.name + ":" + e.name.name;
  if (e.type === "JSXMemberExpression")
    return gy(e.object) + "." + gy(e.property);
  throw new Error("Node had unexpected type: " + e.type);
}
var hRt = (e) => class extends e {
  jsxReadToken() {
    let r = "", i = this.state.pos;
    for (; ; ) {
      if (this.state.pos >= this.length)
        throw this.raise(yd.UnterminatedJsxContent, this.state.startLoc);
      const n = this.input.charCodeAt(this.state.pos);
      switch (n) {
        case 60:
        case 123:
          if (this.state.pos === this.state.start) {
            n === 60 && this.state.canStartJSXElement ? (++this.state.pos, this.finishToken(143)) : super.getTokenFromCode(n);
            return;
          }
          r += this.input.slice(i, this.state.pos), this.finishToken(142, r);
          return;
        case 38:
          r += this.input.slice(i, this.state.pos), r += this.jsxReadEntity(), i = this.state.pos;
          break;
        case 62:
        case 125:
        default:
          Dy(n) ? (r += this.input.slice(i, this.state.pos), r += this.jsxReadNewLine(!0), i = this.state.pos) : ++this.state.pos;
      }
    }
  }
  jsxReadNewLine(r) {
    const i = this.input.charCodeAt(this.state.pos);
    let n;
    return ++this.state.pos, i === 13 && this.input.charCodeAt(this.state.pos) === 10 ? (++this.state.pos, n = r ? "\n" : "\r\n") : n = String.fromCharCode(i), ++this.state.curLine, this.state.lineStart = this.state.pos, n;
  }
  jsxReadString(r) {
    let i = "", n = ++this.state.pos;
    for (; ; ) {
      if (this.state.pos >= this.length)
        throw this.raise(et.UnterminatedString, this.state.startLoc);
      const s = this.input.charCodeAt(this.state.pos);
      if (s === r)
        break;
      s === 38 ? (i += this.input.slice(n, this.state.pos), i += this.jsxReadEntity(), n = this.state.pos) : Dy(s) ? (i += this.input.slice(n, this.state.pos), i += this.jsxReadNewLine(!1), n = this.state.pos) : ++this.state.pos;
    }
    i += this.input.slice(n, this.state.pos++), this.finishToken(134, i);
  }
  jsxReadEntity() {
    const r = ++this.state.pos;
    if (this.codePointAtPos(this.state.pos) === 35) {
      ++this.state.pos;
      let i = 10;
      this.codePointAtPos(this.state.pos) === 120 && (i = 16, ++this.state.pos);
      const n = this.readInt(i, void 0, !1, "bail");
      if (n !== null && this.codePointAtPos(this.state.pos) === 59)
        return ++this.state.pos, String.fromCodePoint(n);
    } else {
      let i = 0, n = !1;
      for (; i++ < 10 && this.state.pos < this.length && !(n = this.codePointAtPos(this.state.pos) === 59); )
        ++this.state.pos;
      if (n) {
        const s = this.input.slice(r, this.state.pos), a = fRt[s];
        if (++this.state.pos, a)
          return a;
      }
    }
    return this.state.pos = r, "&";
  }
  jsxReadWord() {
    let r;
    const i = this.state.pos;
    do
      r = this.input.charCodeAt(++this.state.pos);
    while (Ny(r) || r === 45);
    this.finishToken(141, this.input.slice(i, this.state.pos));
  }
  jsxParseIdentifier() {
    const r = this.startNode();
    return this.match(141) ? r.name = this.state.value : d7(this.state.type) ? r.name = Lh(this.state.type) : this.unexpected(), this.next(), this.finishNode(r, "JSXIdentifier");
  }
  jsxParseNamespacedName() {
    const r = this.state.startLoc, i = this.jsxParseIdentifier();
    if (!this.eat(14))
      return i;
    const n = this.startNodeAt(r);
    return n.namespace = i, n.name = this.jsxParseIdentifier(), this.finishNode(n, "JSXNamespacedName");
  }
  jsxParseElementName() {
    const r = this.state.startLoc;
    let i = this.jsxParseNamespacedName();
    if (i.type === "JSXNamespacedName")
      return i;
    for (; this.eat(16); ) {
      const n = this.startNodeAt(r);
      n.object = i, n.property = this.jsxParseIdentifier(), i = this.finishNode(n, "JSXMemberExpression");
    }
    return i;
  }
  jsxParseAttributeValue() {
    let r;
    switch (this.state.type) {
      case 5:
        return r = this.startNode(), this.setContext(Fi.brace), this.next(), r = this.jsxParseExpressionContainer(r, Fi.j_oTag), r.expression.type === "JSXEmptyExpression" && this.raise(yd.AttributeIsEmpty, r), r;
      case 143:
      case 134:
        return this.parseExprAtom();
      default:
        throw this.raise(yd.UnsupportedJsxValue, this.state.startLoc);
    }
  }
  jsxParseEmptyExpression() {
    const r = this.startNodeAt(this.state.lastTokEndLoc);
    return this.finishNodeAt(r, "JSXEmptyExpression", this.state.startLoc);
  }
  jsxParseSpreadChild(r) {
    return this.next(), r.expression = this.parseExpression(), this.setContext(Fi.j_expr), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(r, "JSXSpreadChild");
  }
  jsxParseExpressionContainer(r, i) {
    if (this.match(8))
      r.expression = this.jsxParseEmptyExpression();
    else {
      const n = this.parseExpression();
      r.expression = n;
    }
    return this.setContext(i), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(r, "JSXExpressionContainer");
  }
  jsxParseAttribute() {
    const r = this.startNode();
    return this.match(5) ? (this.setContext(Fi.brace), this.next(), this.expect(21), r.argument = this.parseMaybeAssignAllowIn(), this.setContext(Fi.j_oTag), this.state.canStartJSXElement = !0, this.expect(8), this.finishNode(r, "JSXSpreadAttribute")) : (r.name = this.jsxParseNamespacedName(), r.value = this.eat(29) ? this.jsxParseAttributeValue() : null, this.finishNode(r, "JSXAttribute"));
  }
  jsxParseOpeningElementAt(r) {
    const i = this.startNodeAt(r);
    return this.eat(144) ? this.finishNode(i, "JSXOpeningFragment") : (i.name = this.jsxParseElementName(), this.jsxParseOpeningElementAfterName(i));
  }
  jsxParseOpeningElementAfterName(r) {
    const i = [];
    for (; !this.match(56) && !this.match(144); )
      i.push(this.jsxParseAttribute());
    return r.attributes = i, r.selfClosing = this.eat(56), this.expect(144), this.finishNode(r, "JSXOpeningElement");
  }
  jsxParseClosingElementAt(r) {
    const i = this.startNodeAt(r);
    return this.eat(144) ? this.finishNode(i, "JSXClosingFragment") : (i.name = this.jsxParseElementName(), this.expect(144), this.finishNode(i, "JSXClosingElement"));
  }
  jsxParseElementAt(r) {
    const i = this.startNodeAt(r), n = [], s = this.jsxParseOpeningElementAt(r);
    let a = null;
    if (!s.selfClosing) {
      e:
        for (; ; )
          switch (this.state.type) {
            case 143:
              if (r = this.state.startLoc, this.next(), this.eat(56)) {
                a = this.jsxParseClosingElementAt(r);
                break e;
              }
              n.push(this.jsxParseElementAt(r));
              break;
            case 142:
              n.push(this.parseLiteral(this.state.value, "JSXText"));
              break;
            case 5: {
              const o = this.startNode();
              this.setContext(Fi.brace), this.next(), this.match(21) ? n.push(this.jsxParseSpreadChild(o)) : n.push(this.jsxParseExpressionContainer(o, Fi.j_expr));
              break;
            }
            default:
              this.unexpected();
          }
      ah(s) && !ah(a) && a !== null ? this.raise(yd.MissingClosingTagFragment, a) : !ah(s) && ah(a) ? this.raise(yd.MissingClosingTagElement, a, {
        openingTagName: gy(s.name)
      }) : !ah(s) && !ah(a) && gy(a.name) !== gy(s.name) && this.raise(yd.MissingClosingTagElement, a, {
        openingTagName: gy(s.name)
      });
    }
    if (ah(s) ? (i.openingFragment = s, i.closingFragment = a) : (i.openingElement = s, i.closingElement = a), i.children = n, this.match(47))
      throw this.raise(yd.UnwrappedAdjacentJSXElements, this.state.startLoc);
    return ah(s) ? this.finishNode(i, "JSXFragment") : this.finishNode(i, "JSXElement");
  }
  jsxParseElement() {
    const r = this.state.startLoc;
    return this.next(), this.jsxParseElementAt(r);
  }
  setContext(r) {
    const {
      context: i
    } = this.state;
    i[i.length - 1] = r;
  }
  parseExprAtom(r) {
    return this.match(143) ? this.jsxParseElement() : this.match(47) && this.input.charCodeAt(this.state.pos) !== 33 ? (this.replaceToken(143), this.jsxParseElement()) : super.parseExprAtom(r);
  }
  skipSpace() {
    this.curContext().preserveSpace || super.skipSpace();
  }
  getTokenFromCode(r) {
    const i = this.curContext();
    if (i === Fi.j_expr) {
      this.jsxReadToken();
      return;
    }
    if (i === Fi.j_oTag || i === Fi.j_cTag) {
      if (of(r)) {
        this.jsxReadWord();
        return;
      }
      if (r === 62) {
        ++this.state.pos, this.finishToken(144);
        return;
      }
      if ((r === 34 || r === 39) && i === Fi.j_oTag) {
        this.jsxReadString(r);
        return;
      }
    }
    if (r === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) {
      ++this.state.pos, this.finishToken(143);
      return;
    }
    super.getTokenFromCode(r);
  }
  updateContext(r) {
    const {
      context: i,
      type: n
    } = this.state;
    if (n === 56 && r === 143)
      i.splice(-2, 2, Fi.j_cTag), this.state.canStartJSXElement = !1;
    else if (n === 143)
      i.push(Fi.j_oTag);
    else if (n === 144) {
      const s = i[i.length - 1];
      s === Fi.j_oTag && r === 56 || s === Fi.j_cTag ? (i.pop(), this.state.canStartJSXElement = i[i.length - 1] === Fi.j_expr) : (this.setContext(Fi.j_expr), this.state.canStartJSXElement = !0);
    } else
      this.state.canStartJSXElement = bMt(n);
  }
};
class dRt extends g7 {
  constructor(...t) {
    super(...t), this.tsNames = /* @__PURE__ */ new Map();
  }
}
class mRt extends b7 {
  constructor(...t) {
    super(...t), this.importsStack = [];
  }
  createScope(t) {
    return this.importsStack.push(/* @__PURE__ */ new Set()), new dRt(t);
  }
  enter(t) {
    t === 256 && this.importsStack.push(/* @__PURE__ */ new Set()), super.enter(t);
  }
  exit() {
    const t = super.exit();
    return t === 256 && this.importsStack.pop(), t;
  }
  hasImport(t, r) {
    const i = this.importsStack.length;
    if (this.importsStack[i - 1].has(t))
      return !0;
    if (!r && i > 1) {
      for (let n = 0; n < i - 1; n++)
        if (this.importsStack[n].has(t))
          return !0;
    }
    return !1;
  }
  declareName(t, r, i) {
    if (r & 4096) {
      this.hasImport(t, !0) && this.parser.raise(et.VarRedeclaration, i, {
        identifierName: t
      }), this.importsStack[this.importsStack.length - 1].add(t);
      return;
    }
    const n = this.currentScope();
    let s = n.tsNames.get(t) || 0;
    if (r & 1024) {
      this.maybeExportDefined(n, t), n.tsNames.set(t, s | 16);
      return;
    }
    super.declareName(t, r, i), r & 2 && (r & 1 || (this.checkRedeclarationInScope(n, t, r, i), this.maybeExportDefined(n, t)), s = s | 1), r & 256 && (s = s | 2), r & 512 && (s = s | 4), r & 128 && (s = s | 8), s && n.tsNames.set(t, s);
  }
  isRedeclaredInScope(t, r, i) {
    const n = t.tsNames.get(r);
    if ((n & 2) > 0) {
      if (i & 256) {
        const s = !!(i & 512), a = (n & 4) > 0;
        return s !== a;
      }
      return !0;
    }
    return i & 128 && (n & 8) > 0 ? t.names.get(r) & 2 ? !!(i & 1) : !1 : i & 2 && (n & 1) > 0 ? !0 : super.isRedeclaredInScope(t, r, i);
  }
  checkLocalExport(t) {
    const {
      name: r
    } = t;
    if (this.hasImport(r))
      return;
    const i = this.scopeStack.length;
    for (let n = i - 1; n >= 0; n--) {
      const a = this.scopeStack[n].tsNames.get(r);
      if ((a & 1) > 0 || (a & 16) > 0)
        return;
    }
    super.checkLocalExport(t);
  }
}
const tge = (e) => e.type === "ParenthesizedExpression" ? tge(e.expression) : e;
class yRt extends sRt {
  toAssignable(t, r = !1) {
    var i, n;
    let s;
    switch ((t.type === "ParenthesizedExpression" || (i = t.extra) != null && i.parenthesized) && (s = tge(t), r ? s.type === "Identifier" ? this.expressionScope.recordArrowParameterBindingError(et.InvalidParenthesizedAssignment, t) : s.type !== "MemberExpression" && !this.isOptionalMemberExpression(s) && this.raise(et.InvalidParenthesizedAssignment, t) : this.raise(et.InvalidParenthesizedAssignment, t)), t.type) {
      case "Identifier":
      case "ObjectPattern":
      case "ArrayPattern":
      case "AssignmentPattern":
      case "RestElement":
        break;
      case "ObjectExpression":
        t.type = "ObjectPattern";
        for (let o = 0, l = t.properties.length, u = l - 1; o < l; o++) {
          var a;
          const c = t.properties[o], f = o === u;
          this.toAssignableObjectExpressionProp(c, f, r), f && c.type === "RestElement" && (a = t.extra) != null && a.trailingCommaLoc && this.raise(et.RestTrailingComma, t.extra.trailingCommaLoc);
        }
        break;
      case "ObjectProperty": {
        const {
          key: o,
          value: l
        } = t;
        this.isPrivateName(o) && this.classScope.usePrivateName(this.getPrivateNameSV(o), o.loc.start), this.toAssignable(l, r);
        break;
      }
      case "SpreadElement":
        throw new Error("Internal @babel/parser error (this is a bug, please report it). SpreadElement should be converted by .toAssignable's caller.");
      case "ArrayExpression":
        t.type = "ArrayPattern", this.toAssignableList(t.elements, (n = t.extra) == null ? void 0 : n.trailingCommaLoc, r);
        break;
      case "AssignmentExpression":
        t.operator !== "=" && this.raise(et.MissingEqInAssignment, t.left.loc.end), t.type = "AssignmentPattern", delete t.operator, this.toAssignable(t.left, r);
        break;
      case "ParenthesizedExpression":
        this.toAssignable(s, r);
        break;
    }
  }
  toAssignableObjectExpressionProp(t, r, i) {
    if (t.type === "ObjectMethod")
      this.raise(t.kind === "get" || t.kind === "set" ? et.PatternHasAccessor : et.PatternHasMethod, t.key);
    else if (t.type === "SpreadElement") {
      t.type = "RestElement";
      const n = t.argument;
      this.checkToRestConversion(n, !1), this.toAssignable(n, i), r || this.raise(et.RestTrailingComma, t);
    } else
      this.toAssignable(t, i);
  }
  toAssignableList(t, r, i) {
    const n = t.length - 1;
    for (let s = 0; s <= n; s++) {
      const a = t[s];
      if (a) {
        if (a.type === "SpreadElement") {
          a.type = "RestElement";
          const o = a.argument;
          this.checkToRestConversion(o, !0), this.toAssignable(o, i);
        } else
          this.toAssignable(a, i);
        a.type === "RestElement" && (s < n ? this.raise(et.RestTrailingComma, a) : r && this.raise(et.RestTrailingComma, r));
      }
    }
  }
  isAssignable(t, r) {
    switch (t.type) {
      case "Identifier":
      case "ObjectPattern":
      case "ArrayPattern":
      case "AssignmentPattern":
      case "RestElement":
        return !0;
      case "ObjectExpression": {
        const i = t.properties.length - 1;
        return t.properties.every((n, s) => n.type !== "ObjectMethod" && (s === i || n.type !== "SpreadElement") && this.isAssignable(n));
      }
      case "ObjectProperty":
        return this.isAssignable(t.value);
      case "SpreadElement":
        return this.isAssignable(t.argument);
      case "ArrayExpression":
        return t.elements.every((i) => i === null || this.isAssignable(i));
      case "AssignmentExpression":
        return t.operator === "=";
      case "ParenthesizedExpression":
        return this.isAssignable(t.expression);
      case "MemberExpression":
      case "OptionalMemberExpression":
        return !r;
      default:
        return !1;
    }
  }
  toReferencedList(t, r) {
    return t;
  }
  toReferencedListDeep(t, r) {
    this.toReferencedList(t, r);
    for (const i of t)
      (i == null ? void 0 : i.type) === "ArrayExpression" && this.toReferencedListDeep(i.elements);
  }
  parseSpread(t) {
    const r = this.startNode();
    return this.next(), r.argument = this.parseMaybeAssignAllowIn(t, void 0), this.finishNode(r, "SpreadElement");
  }
  parseRestBinding() {
    const t = this.startNode();
    return this.next(), t.argument = this.parseBindingAtom(), this.finishNode(t, "RestElement");
  }
  parseBindingAtom() {
    switch (this.state.type) {
      case 0: {
        const t = this.startNode();
        return this.next(), t.elements = this.parseBindingList(3, 93, 1), this.finishNode(t, "ArrayPattern");
      }
      case 5:
        return this.parseObjectLike(8, !0);
    }
    return this.parseIdentifier();
  }
  parseBindingList(t, r, i) {
    const n = i & 1, s = [];
    let a = !0;
    for (; !this.eat(t); )
      if (a ? a = !1 : this.expect(12), n && this.match(12))
        s.push(null);
      else {
        if (this.eat(t))
          break;
        if (this.match(21)) {
          let o = this.parseRestBinding();
          if ((this.hasPlugin("flow") || i & 2) && (o = this.parseFunctionParamType(o)), s.push(o), !this.checkCommaAfterRest(r)) {
            this.expect(t);
            break;
          }
        } else {
          const o = [];
          for (this.match(26) && this.hasPlugin("decorators") && this.raise(et.UnsupportedParameterDecorator, this.state.startLoc); this.match(26); )
            o.push(this.parseDecorator());
          s.push(this.parseAssignableListItem(i, o));
        }
      }
    return s;
  }
  parseBindingRestProperty(t) {
    return this.next(), t.argument = this.parseIdentifier(), this.checkCommaAfterRest(125), this.finishNode(t, "RestElement");
  }
  parseBindingProperty() {
    const {
      type: t,
      startLoc: r
    } = this.state;
    if (t === 21)
      return this.parseBindingRestProperty(this.startNode());
    const i = this.startNode();
    return t === 139 ? (this.expectPlugin("destructuringPrivate", r), this.classScope.usePrivateName(this.state.value, r), i.key = this.parsePrivateName()) : this.parsePropertyName(i), i.method = !1, this.parseObjPropValue(i, r, !1, !1, !0, !1);
  }
  parseAssignableListItem(t, r) {
    const i = this.parseMaybeDefault();
    (this.hasPlugin("flow") || t & 2) && this.parseFunctionParamType(i);
    const n = this.parseMaybeDefault(i.loc.start, i);
    return r.length && (i.decorators = r), n;
  }
  parseFunctionParamType(t) {
    return t;
  }
  parseMaybeDefault(t, r) {
    var i, n;
    if ((i = t) != null || (t = this.state.startLoc), r = (n = r) != null ? n : this.parseBindingAtom(), !this.eat(29))
      return r;
    const s = this.startNodeAt(t);
    return s.left = r, s.right = this.parseMaybeAssignAllowIn(), this.finishNode(s, "AssignmentPattern");
  }
  isValidLVal(t, r, i) {
    switch (t) {
      case "AssignmentPattern":
        return "left";
      case "RestElement":
        return "argument";
      case "ObjectProperty":
        return "value";
      case "ParenthesizedExpression":
        return "expression";
      case "ArrayPattern":
        return "elements";
      case "ObjectPattern":
        return "properties";
    }
    return !1;
  }
  isOptionalMemberExpression(t) {
    return t.type === "OptionalMemberExpression";
  }
  checkLVal(t, r, i = 64, n = !1, s = !1, a = !1) {
    var o;
    const l = t.type;
    if (this.isObjectMethod(t))
      return;
    const u = this.isOptionalMemberExpression(t);
    if (u || l === "MemberExpression") {
      u && (this.expectPlugin("optionalChainingAssign", t.loc.start), r.type !== "AssignmentExpression" && this.raise(et.InvalidLhsOptionalChaining, t, {
        ancestor: r
      })), i !== 64 && this.raise(et.InvalidPropertyBindingPattern, t);
      return;
    }
    if (l === "Identifier") {
      this.checkIdentifier(t, i, s);
      const {
        name: y
      } = t;
      n && (n.has(y) ? this.raise(et.ParamDupe, t) : n.add(y));
      return;
    }
    const c = this.isValidLVal(l, !(a || (o = t.extra) != null && o.parenthesized) && r.type === "AssignmentExpression", i);
    if (c === !0)
      return;
    if (c === !1) {
      const y = i === 64 ? et.InvalidLhs : et.InvalidLhsBinding;
      this.raise(y, t, {
        ancestor: r
      });
      return;
    }
    let f, h;
    typeof c == "string" ? (f = c, h = l === "ParenthesizedExpression") : [f, h] = c;
    const m = l === "ArrayPattern" || l === "ObjectPattern" ? {
      type: l
    } : r, g = t[f];
    if (Array.isArray(g))
      for (const y of g)
        y && this.checkLVal(y, m, i, n, s, h);
    else
      g && this.checkLVal(g, m, i, n, s, h);
  }
  checkIdentifier(t, r, i = !1) {
    this.state.strict && (i ? Yye(t.name, this.inModule) : Gye(t.name)) && (r === 64 ? this.raise(et.StrictEvalArguments, t, {
      referenceName: t.name
    }) : this.raise(et.StrictEvalArgumentsBinding, t, {
      bindingName: t.name
    })), r & 8192 && t.name === "let" && this.raise(et.LetInLexicalBinding, t), r & 64 || this.declareNameFromIdentifier(t, r);
  }
  declareNameFromIdentifier(t, r) {
    this.scope.declareName(t.name, r, t.loc.start);
  }
  checkToRestConversion(t, r) {
    switch (t.type) {
      case "ParenthesizedExpression":
        this.checkToRestConversion(t.expression, r);
        break;
      case "Identifier":
      case "MemberExpression":
        break;
      case "ArrayExpression":
      case "ObjectExpression":
        if (r)
          break;
      default:
        this.raise(et.InvalidRestAssignmentPattern, t);
    }
  }
  checkCommaAfterRest(t) {
    return this.match(12) ? (this.raise(this.lookaheadCharCode() === t ? et.RestTrailingComma : et.ElementAfterRest, this.state.startLoc), !0) : !1;
  }
}
function gRt(e) {
  if (e == null)
    throw new Error("Unexpected ".concat(e, " value."));
  return e;
}
function gZ(e) {
  if (!e)
    throw new Error("Assert fail");
}
var _ae;
const Xt = mf(_ae || (_ae = at(["typescript"])))({
  AbstractMethodHasImplementation: ({
    methodName: e
  }) => "Method '".concat(e, "' cannot have an implementation because it is marked abstract."),
  AbstractPropertyHasInitializer: ({
    propertyName: e
  }) => "Property '".concat(e, "' cannot have an initializer because it is marked abstract."),
  AccessorCannotBeOptional: "An 'accessor' property cannot be declared optional.",
  AccessorCannotDeclareThisParameter: "'get' and 'set' accessors cannot declare 'this' parameters.",
  AccessorCannotHaveTypeParameters: "An accessor cannot have type parameters.",
  ClassMethodHasDeclare: "Class methods cannot have the 'declare' modifier.",
  ClassMethodHasReadonly: "Class methods cannot have the 'readonly' modifier.",
  ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: "A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.",
  ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.",
  DeclareAccessor: ({
    kind: e
  }) => "'declare' is not allowed in ".concat(e, "ters."),
  DeclareClassFieldHasInitializer: "Initializers are not allowed in ambient contexts.",
  DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.",
  DuplicateAccessibilityModifier: ({
    modifier: e
  }) => "Accessibility modifier already seen.",
  DuplicateModifier: ({
    modifier: e
  }) => "Duplicate modifier: '".concat(e, "'."),
  EmptyHeritageClauseType: ({
    token: e
  }) => "'".concat(e, "' list cannot be empty."),
  EmptyTypeArguments: "Type argument list cannot be empty.",
  EmptyTypeParameters: "Type parameter list cannot be empty.",
  ExpectedAmbientAfterExportDeclare: "'export declare' must be followed by an ambient declaration.",
  ImportAliasHasImportType: "An import alias can not use 'import type'.",
  ImportReflectionHasImportType: "An `import module` declaration can not use `type` modifier",
  IncompatibleModifiers: ({
    modifiers: e
  }) => "'".concat(e[0], "' modifier cannot be used with '").concat(e[1], "' modifier."),
  IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier.",
  IndexSignatureHasAccessibility: ({
    modifier: e
  }) => "Index signatures cannot have an accessibility modifier ('".concat(e, "')."),
  IndexSignatureHasDeclare: "Index signatures cannot have the 'declare' modifier.",
  IndexSignatureHasOverride: "'override' modifier cannot appear on an index signature.",
  IndexSignatureHasStatic: "Index signatures cannot have the 'static' modifier.",
  InitializerNotAllowedInAmbientContext: "Initializers are not allowed in ambient contexts.",
  InvalidModifierOnTypeMember: ({
    modifier: e
  }) => "'".concat(e, "' modifier cannot appear on a type member."),
  InvalidModifierOnTypeParameter: ({
    modifier: e
  }) => "'".concat(e, "' modifier cannot appear on a type parameter."),
  InvalidModifierOnTypeParameterPositions: ({
    modifier: e
  }) => "'".concat(e, "' modifier can only appear on a type parameter of a class, interface or type alias."),
  InvalidModifiersOrder: ({
    orderedModifiers: e
  }) => "'".concat(e[0], "' modifier must precede '").concat(e[1], "' modifier."),
  InvalidPropertyAccessAfterInstantiationExpression: "Invalid property access after an instantiation expression. You can either wrap the instantiation expression in parentheses, or delete the type arguments.",
  InvalidTupleMemberLabel: "Tuple members must be labeled with a simple identifier.",
  MissingInterfaceName: "'interface' declarations must be followed by an identifier.",
  NonAbstractClassHasAbstractMethod: "Abstract methods can only appear within an abstract class.",
  NonClassMethodPropertyHasAbstractModifer: "'abstract' modifier can only appear on a class, method, or property declaration.",
  OptionalTypeBeforeRequired: "A required element cannot follow an optional element.",
  OverrideNotInSubClass: "This member cannot have an 'override' modifier because its containing class does not extend another class.",
  PatternIsOptional: "A binding pattern parameter cannot be optional in an implementation signature.",
  PrivateElementHasAbstract: "Private elements cannot have the 'abstract' modifier.",
  PrivateElementHasAccessibility: ({
    modifier: e
  }) => "Private elements cannot have an accessibility modifier ('".concat(e, "')."),
  ReadonlyForMethodSignature: "'readonly' modifier can only appear on a property declaration or index signature.",
  ReservedArrowTypeParam: "This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `<T,>() => ...`.",
  ReservedTypeAssertion: "This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.",
  SetAccessorCannotHaveOptionalParameter: "A 'set' accessor cannot have an optional parameter.",
  SetAccessorCannotHaveRestParameter: "A 'set' accessor cannot have rest parameter.",
  SetAccessorCannotHaveReturnType: "A 'set' accessor cannot have a return type annotation.",
  SingleTypeParameterWithoutTrailingComma: ({
    typeParameterName: e
  }) => "Single type parameter ".concat(e, " should have a trailing comma. Example usage: <").concat(e, ",>."),
  StaticBlockCannotHaveModifier: "Static class blocks cannot have any modifier.",
  TupleOptionalAfterType: "A labeled tuple optional element must be declared using a question mark after the name and before the colon (`name?: type`), rather than after the type (`name: type?`).",
  TypeAnnotationAfterAssign: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",
  TypeImportCannotSpecifyDefaultAndNamed: "A type-only import can specify a default import or named bindings, but not both.",
  TypeModifierIsUsedInTypeExports: "The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.",
  TypeModifierIsUsedInTypeImports: "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.",
  UnexpectedParameterModifier: "A parameter property is only allowed in a constructor implementation.",
  UnexpectedReadonly: "'readonly' type modifier is only permitted on array and tuple literal types.",
  UnexpectedTypeAnnotation: "Did not expect a type annotation here.",
  UnexpectedTypeCastInParameter: "Unexpected type cast in parameter position.",
  UnsupportedImportTypeArgument: "Argument in a type import must be a string literal.",
  UnsupportedParameterPropertyKind: "A parameter property may not be declared using a binding pattern.",
  UnsupportedSignatureParameterKind: ({
    type: e
  }) => "Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ".concat(e, ".")
});
function bRt(e) {
  switch (e) {
    case "any":
      return "TSAnyKeyword";
    case "boolean":
      return "TSBooleanKeyword";
    case "bigint":
      return "TSBigIntKeyword";
    case "never":
      return "TSNeverKeyword";
    case "number":
      return "TSNumberKeyword";
    case "object":
      return "TSObjectKeyword";
    case "string":
      return "TSStringKeyword";
    case "symbol":
      return "TSSymbolKeyword";
    case "undefined":
      return "TSUndefinedKeyword";
    case "unknown":
      return "TSUnknownKeyword";
    default:
      return;
  }
}
function bZ(e) {
  return e === "private" || e === "public" || e === "protected";
}
function vRt(e) {
  return e === "in" || e === "out";
}
var TRt = (e) => class extends e {
  constructor(...r) {
    super(...r), this.tsParseInOutModifiers = this.tsParseModifiers.bind(this, {
      allowedModifiers: ["in", "out"],
      disallowedModifiers: ["const", "public", "private", "protected", "readonly", "declare", "abstract", "override"],
      errorTemplate: Xt.InvalidModifierOnTypeParameter
    }), this.tsParseConstModifier = this.tsParseModifiers.bind(this, {
      allowedModifiers: ["const"],
      disallowedModifiers: ["in", "out"],
      errorTemplate: Xt.InvalidModifierOnTypeParameterPositions
    }), this.tsParseInOutConstModifiers = this.tsParseModifiers.bind(this, {
      allowedModifiers: ["in", "out", "const"],
      disallowedModifiers: ["public", "private", "protected", "readonly", "declare", "abstract", "override"],
      errorTemplate: Xt.InvalidModifierOnTypeParameter
    });
  }
  getScopeHandler() {
    return mRt;
  }
  tsIsIdentifier() {
    return Ei(this.state.type);
  }
  tsTokenCanFollowModifier() {
    return this.match(0) || this.match(5) || this.match(55) || this.match(21) || this.match(139) || this.isLiteralPropertyName();
  }
  tsNextTokenOnSameLineAndCanFollowModifier() {
    return this.next(), this.hasPrecedingLineBreak() ? !1 : this.tsTokenCanFollowModifier();
  }
  tsNextTokenCanFollowModifier() {
    return this.match(106) ? (this.next(), this.tsTokenCanFollowModifier()) : this.tsNextTokenOnSameLineAndCanFollowModifier();
  }
  tsParseModifier(r, i) {
    if (!Ei(this.state.type) && this.state.type !== 58 && this.state.type !== 75)
      return;
    const n = this.state.value;
    if (r.includes(n)) {
      if (i && this.tsIsStartOfStaticBlocks())
        return;
      if (this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))
        return n;
    }
  }
  tsParseModifiers({
    allowedModifiers: r,
    disallowedModifiers: i,
    stopOnStartOfClassStaticBlock: n,
    errorTemplate: s = Xt.InvalidModifierOnTypeMember
  }, a) {
    const o = (u, c, f, h) => {
      c === f && a[h] && this.raise(Xt.InvalidModifiersOrder, u, {
        orderedModifiers: [f, h]
      });
    }, l = (u, c, f, h) => {
      (a[f] && c === h || a[h] && c === f) && this.raise(Xt.IncompatibleModifiers, u, {
        modifiers: [f, h]
      });
    };
    for (; ; ) {
      const {
        startLoc: u
      } = this.state, c = this.tsParseModifier(r.concat(i != null ? i : []), n);
      if (!c)
        break;
      bZ(c) ? a.accessibility ? this.raise(Xt.DuplicateAccessibilityModifier, u, {
        modifier: c
      }) : (o(u, c, c, "override"), o(u, c, c, "static"), o(u, c, c, "readonly"), a.accessibility = c) : vRt(c) ? (a[c] && this.raise(Xt.DuplicateModifier, u, {
        modifier: c
      }), a[c] = !0, o(u, c, "in", "out")) : (hasOwnProperty.call(a, c) ? this.raise(Xt.DuplicateModifier, u, {
        modifier: c
      }) : (o(u, c, "static", "readonly"), o(u, c, "static", "override"), o(u, c, "override", "readonly"), o(u, c, "abstract", "override"), l(u, c, "declare", "override"), l(u, c, "static", "abstract")), a[c] = !0), i != null && i.includes(c) && this.raise(s, u, {
        modifier: c
      });
    }
  }
  tsIsListTerminator(r) {
    switch (r) {
      case "EnumMembers":
      case "TypeMembers":
        return this.match(8);
      case "HeritageClauseElement":
        return this.match(5);
      case "TupleElementTypes":
        return this.match(3);
      case "TypeParametersOrArguments":
        return this.match(48);
    }
  }
  tsParseList(r, i) {
    const n = [];
    for (; !this.tsIsListTerminator(r); )
      n.push(i());
    return n;
  }
  tsParseDelimitedList(r, i, n) {
    return gRt(this.tsParseDelimitedListWorker(r, i, !0, n));
  }
  tsParseDelimitedListWorker(r, i, n, s) {
    const a = [];
    let o = -1;
    for (; !this.tsIsListTerminator(r); ) {
      o = -1;
      const l = i();
      if (l == null)
        return;
      if (a.push(l), this.eat(12)) {
        o = this.state.lastTokStartLoc.index;
        continue;
      }
      if (this.tsIsListTerminator(r))
        break;
      n && this.expect(12);
      return;
    }
    return s && (s.value = o), a;
  }
  tsParseBracketedList(r, i, n, s, a) {
    s || (n ? this.expect(0) : this.expect(47));
    const o = this.tsParseDelimitedList(r, i, a);
    return n ? this.expect(3) : this.expect(48), o;
  }
  tsParseImportType() {
    const r = this.startNode();
    return this.expect(83), this.expect(10), this.match(134) || this.raise(Xt.UnsupportedImportTypeArgument, this.state.startLoc), r.argument = super.parseExprAtom(), this.eat(12) && !this.match(11) ? (r.options = super.parseMaybeAssignAllowIn(), this.eat(12)) : r.options = null, this.expect(11), this.eat(16) && (r.qualifier = this.tsParseEntityName()), this.match(47) && (r.typeParameters = this.tsParseTypeArguments()), this.finishNode(r, "TSImportType");
  }
  tsParseEntityName(r = !0) {
    let i = this.parseIdentifier(r);
    for (; this.eat(16); ) {
      const n = this.startNodeAtNode(i);
      n.left = i, n.right = this.parseIdentifier(r), i = this.finishNode(n, "TSQualifiedName");
    }
    return i;
  }
  tsParseTypeReference() {
    const r = this.startNode();
    return r.typeName = this.tsParseEntityName(), !this.hasPrecedingLineBreak() && this.match(47) && (r.typeParameters = this.tsParseTypeArguments()), this.finishNode(r, "TSTypeReference");
  }
  tsParseThisTypePredicate(r) {
    this.next();
    const i = this.startNodeAtNode(r);
    return i.parameterName = r, i.typeAnnotation = this.tsParseTypeAnnotation(!1), i.asserts = !1, this.finishNode(i, "TSTypePredicate");
  }
  tsParseThisTypeNode() {
    const r = this.startNode();
    return this.next(), this.finishNode(r, "TSThisType");
  }
  tsParseTypeQuery() {
    const r = this.startNode();
    return this.expect(87), this.match(83) ? r.exprName = this.tsParseImportType() : r.exprName = this.tsParseEntityName(), !this.hasPrecedingLineBreak() && this.match(47) && (r.typeParameters = this.tsParseTypeArguments()), this.finishNode(r, "TSTypeQuery");
  }
  tsParseTypeParameter(r) {
    const i = this.startNode();
    return r(i), i.name = this.tsParseTypeParameterName(), i.constraint = this.tsEatThenParseType(81), i.default = this.tsEatThenParseType(29), this.finishNode(i, "TSTypeParameter");
  }
  tsTryParseTypeParameters(r) {
    if (this.match(47))
      return this.tsParseTypeParameters(r);
  }
  tsParseTypeParameters(r) {
    const i = this.startNode();
    this.match(47) || this.match(143) ? this.next() : this.unexpected();
    const n = {
      value: -1
    };
    return i.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this, r), !1, !0, n), i.params.length === 0 && this.raise(Xt.EmptyTypeParameters, i), n.value !== -1 && this.addExtra(i, "trailingComma", n.value), this.finishNode(i, "TSTypeParameterDeclaration");
  }
  tsFillSignature(r, i) {
    const n = r === 19, s = "parameters", a = "typeAnnotation";
    i.typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier), this.expect(10), i[s] = this.tsParseBindingListForSignature(), n ? i[a] = this.tsParseTypeOrTypePredicateAnnotation(r) : this.match(r) && (i[a] = this.tsParseTypeOrTypePredicateAnnotation(r));
  }
  tsParseBindingListForSignature() {
    const r = super.parseBindingList(11, 41, 2);
    for (const i of r) {
      const {
        type: n
      } = i;
      (n === "AssignmentPattern" || n === "TSParameterProperty") && this.raise(Xt.UnsupportedSignatureParameterKind, i, {
        type: n
      });
    }
    return r;
  }
  tsParseTypeMemberSemicolon() {
    !this.eat(12) && !this.isLineTerminator() && this.expect(13);
  }
  tsParseSignatureMember(r, i) {
    return this.tsFillSignature(14, i), this.tsParseTypeMemberSemicolon(), this.finishNode(i, r);
  }
  tsIsUnambiguouslyIndexSignature() {
    return this.next(), Ei(this.state.type) ? (this.next(), this.match(14)) : !1;
  }
  tsTryParseIndexSignature(r) {
    if (!(this.match(0) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))))
      return;
    this.expect(0);
    const i = this.parseIdentifier();
    i.typeAnnotation = this.tsParseTypeAnnotation(), this.resetEndLocation(i), this.expect(3), r.parameters = [i];
    const n = this.tsTryParseTypeAnnotation();
    return n && (r.typeAnnotation = n), this.tsParseTypeMemberSemicolon(), this.finishNode(r, "TSIndexSignature");
  }
  tsParsePropertyOrMethodSignature(r, i) {
    this.eat(17) && (r.optional = !0);
    const n = r;
    if (this.match(10) || this.match(47)) {
      i && this.raise(Xt.ReadonlyForMethodSignature, r);
      const s = n;
      s.kind && this.match(47) && this.raise(Xt.AccessorCannotHaveTypeParameters, this.state.curPosition()), this.tsFillSignature(14, s), this.tsParseTypeMemberSemicolon();
      const a = "parameters", o = "typeAnnotation";
      if (s.kind === "get")
        s[a].length > 0 && (this.raise(et.BadGetterArity, this.state.curPosition()), this.isThisParam(s[a][0]) && this.raise(Xt.AccessorCannotDeclareThisParameter, this.state.curPosition()));
      else if (s.kind === "set") {
        if (s[a].length !== 1)
          this.raise(et.BadSetterArity, this.state.curPosition());
        else {
          const l = s[a][0];
          this.isThisParam(l) && this.raise(Xt.AccessorCannotDeclareThisParameter, this.state.curPosition()), l.type === "Identifier" && l.optional && this.raise(Xt.SetAccessorCannotHaveOptionalParameter, this.state.curPosition()), l.type === "RestElement" && this.raise(Xt.SetAccessorCannotHaveRestParameter, this.state.curPosition());
        }
        s[o] && this.raise(Xt.SetAccessorCannotHaveReturnType, s[o]);
      } else
        s.kind = "method";
      return this.finishNode(s, "TSMethodSignature");
    } else {
      const s = n;
      i && (s.readonly = !0);
      const a = this.tsTryParseTypeAnnotation();
      return a && (s.typeAnnotation = a), this.tsParseTypeMemberSemicolon(), this.finishNode(s, "TSPropertySignature");
    }
  }
  tsParseTypeMember() {
    const r = this.startNode();
    if (this.match(10) || this.match(47))
      return this.tsParseSignatureMember("TSCallSignatureDeclaration", r);
    if (this.match(77)) {
      const n = this.startNode();
      return this.next(), this.match(10) || this.match(47) ? this.tsParseSignatureMember("TSConstructSignatureDeclaration", r) : (r.key = this.createIdentifier(n, "new"), this.tsParsePropertyOrMethodSignature(r, !1));
    }
    this.tsParseModifiers({
      allowedModifiers: ["readonly"],
      disallowedModifiers: ["declare", "abstract", "private", "protected", "public", "static", "override"]
    }, r);
    const i = this.tsTryParseIndexSignature(r);
    return i || (super.parsePropertyName(r), !r.computed && r.key.type === "Identifier" && (r.key.name === "get" || r.key.name === "set") && this.tsTokenCanFollowModifier() && (r.kind = r.key.name, super.parsePropertyName(r)), this.tsParsePropertyOrMethodSignature(r, !!r.readonly));
  }
  tsParseTypeLiteral() {
    const r = this.startNode();
    return r.members = this.tsParseObjectTypeMembers(), this.finishNode(r, "TSTypeLiteral");
  }
  tsParseObjectTypeMembers() {
    this.expect(5);
    const r = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this));
    return this.expect(8), r;
  }
  tsIsStartOfMappedType() {
    return this.next(), this.eat(53) ? this.isContextual(122) : (this.isContextual(122) && this.next(), !this.match(0) || (this.next(), !this.tsIsIdentifier()) ? !1 : (this.next(), this.match(58)));
  }
  tsParseMappedType() {
    const r = this.startNode();
    this.expect(5), this.match(53) ? (r.readonly = this.state.value, this.next(), this.expectContextual(122)) : this.eatContextual(122) && (r.readonly = !0), this.expect(0);
    {
      const i = this.startNode();
      i.name = this.tsParseTypeParameterName(), i.constraint = this.tsExpectThenParseType(58), r.typeParameter = this.finishNode(i, "TSTypeParameter");
    }
    return r.nameType = this.eatContextual(93) ? this.tsParseType() : null, this.expect(3), this.match(53) ? (r.optional = this.state.value, this.next(), this.expect(17)) : this.eat(17) && (r.optional = !0), r.typeAnnotation = this.tsTryParseType(), this.semicolon(), this.expect(8), this.finishNode(r, "TSMappedType");
  }
  tsParseTupleType() {
    const r = this.startNode();
    r.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), !0, !1);
    let i = !1;
    return r.elementTypes.forEach((n) => {
      const {
        type: s
      } = n;
      i && s !== "TSRestType" && s !== "TSOptionalType" && !(s === "TSNamedTupleMember" && n.optional) && this.raise(Xt.OptionalTypeBeforeRequired, n), i || (i = s === "TSNamedTupleMember" && n.optional || s === "TSOptionalType");
    }), this.finishNode(r, "TSTupleType");
  }
  tsParseTupleElementType() {
    const {
      startLoc: r
    } = this.state, i = this.eat(21);
    let n, s, a, o;
    const u = Nc(this.state.type) ? this.lookaheadCharCode() : null;
    if (u === 58)
      n = !0, a = !1, s = this.parseIdentifier(!0), this.expect(14), o = this.tsParseType();
    else if (u === 63) {
      a = !0;
      const c = this.state.startLoc, f = this.state.value, h = this.tsParseNonArrayType();
      this.lookaheadCharCode() === 58 ? (n = !0, s = this.createIdentifier(this.startNodeAt(c), f), this.expect(17), this.expect(14), o = this.tsParseType()) : (n = !1, o = h, this.expect(17));
    } else
      o = this.tsParseType(), a = this.eat(17), n = this.eat(14);
    if (n) {
      let c;
      s ? (c = this.startNodeAtNode(s), c.optional = a, c.label = s, c.elementType = o, this.eat(17) && (c.optional = !0, this.raise(Xt.TupleOptionalAfterType, this.state.lastTokStartLoc))) : (c = this.startNodeAtNode(o), c.optional = a, this.raise(Xt.InvalidTupleMemberLabel, o), c.label = o, c.elementType = this.tsParseType()), o = this.finishNode(c, "TSNamedTupleMember");
    } else if (a) {
      const c = this.startNodeAtNode(o);
      c.typeAnnotation = o, o = this.finishNode(c, "TSOptionalType");
    }
    if (i) {
      const c = this.startNodeAt(r);
      c.typeAnnotation = o, o = this.finishNode(c, "TSRestType");
    }
    return o;
  }
  tsParseParenthesizedType() {
    const r = this.startNode();
    return this.expect(10), r.typeAnnotation = this.tsParseType(), this.expect(11), this.finishNode(r, "TSParenthesizedType");
  }
  tsParseFunctionOrConstructorType(r, i) {
    const n = this.startNode();
    return r === "TSConstructorType" && (n.abstract = !!i, i && this.next(), this.next()), this.tsInAllowConditionalTypesContext(() => this.tsFillSignature(19, n)), this.finishNode(n, r);
  }
  tsParseLiteralTypeNode() {
    const r = this.startNode();
    switch (this.state.type) {
      case 135:
      case 136:
      case 134:
      case 85:
      case 86:
        r.literal = super.parseExprAtom();
        break;
      default:
        this.unexpected();
    }
    return this.finishNode(r, "TSLiteralType");
  }
  tsParseTemplateLiteralType() {
    const r = this.startNode();
    return r.literal = super.parseTemplate(!1), this.finishNode(r, "TSLiteralType");
  }
  parseTemplateSubstitution() {
    return this.state.inType ? this.tsParseType() : super.parseTemplateSubstitution();
  }
  tsParseThisTypeOrThisTypePredicate() {
    const r = this.tsParseThisTypeNode();
    return this.isContextual(116) && !this.hasPrecedingLineBreak() ? this.tsParseThisTypePredicate(r) : r;
  }
  tsParseNonArrayType() {
    switch (this.state.type) {
      case 134:
      case 135:
      case 136:
      case 85:
      case 86:
        return this.tsParseLiteralTypeNode();
      case 53:
        if (this.state.value === "-") {
          const r = this.startNode(), i = this.lookahead();
          return i.type !== 135 && i.type !== 136 && this.unexpected(), r.literal = this.parseMaybeUnary(), this.finishNode(r, "TSLiteralType");
        }
        break;
      case 78:
        return this.tsParseThisTypeOrThisTypePredicate();
      case 87:
        return this.tsParseTypeQuery();
      case 83:
        return this.tsParseImportType();
      case 5:
        return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this)) ? this.tsParseMappedType() : this.tsParseTypeLiteral();
      case 0:
        return this.tsParseTupleType();
      case 10:
        return this.tsParseParenthesizedType();
      case 25:
      case 24:
        return this.tsParseTemplateLiteralType();
      default: {
        const {
          type: r
        } = this.state;
        if (Ei(r) || r === 88 || r === 84) {
          const i = r === 88 ? "TSVoidKeyword" : r === 84 ? "TSNullKeyword" : bRt(this.state.value);
          if (i !== void 0 && this.lookaheadCharCode() !== 46) {
            const n = this.startNode();
            return this.next(), this.finishNode(n, i);
          }
          return this.tsParseTypeReference();
        }
      }
    }
    this.unexpected();
  }
  tsParseArrayTypeOrHigher() {
    let r = this.tsParseNonArrayType();
    for (; !this.hasPrecedingLineBreak() && this.eat(0); )
      if (this.match(3)) {
        const i = this.startNodeAtNode(r);
        i.elementType = r, this.expect(3), r = this.finishNode(i, "TSArrayType");
      } else {
        const i = this.startNodeAtNode(r);
        i.objectType = r, i.indexType = this.tsParseType(), this.expect(3), r = this.finishNode(i, "TSIndexedAccessType");
      }
    return r;
  }
  tsParseTypeOperator() {
    const r = this.startNode(), i = this.state.value;
    return this.next(), r.operator = i, r.typeAnnotation = this.tsParseTypeOperatorOrHigher(), i === "readonly" && this.tsCheckTypeAnnotationForReadOnly(r), this.finishNode(r, "TSTypeOperator");
  }
  tsCheckTypeAnnotationForReadOnly(r) {
    switch (r.typeAnnotation.type) {
      case "TSTupleType":
      case "TSArrayType":
        return;
      default:
        this.raise(Xt.UnexpectedReadonly, r);
    }
  }
  tsParseInferType() {
    const r = this.startNode();
    this.expectContextual(115);
    const i = this.startNode();
    return i.name = this.tsParseTypeParameterName(), i.constraint = this.tsTryParse(() => this.tsParseConstraintForInferType()), r.typeParameter = this.finishNode(i, "TSTypeParameter"), this.finishNode(r, "TSInferType");
  }
  tsParseConstraintForInferType() {
    if (this.eat(81)) {
      const r = this.tsInDisallowConditionalTypesContext(() => this.tsParseType());
      if (this.state.inDisallowConditionalTypesContext || !this.match(17))
        return r;
    }
  }
  tsParseTypeOperatorOrHigher() {
    return PMt(this.state.type) && !this.state.containsEsc ? this.tsParseTypeOperator() : this.isContextual(115) ? this.tsParseInferType() : this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher());
  }
  tsParseUnionOrIntersectionType(r, i, n) {
    const s = this.startNode(), a = this.eat(n), o = [];
    do
      o.push(i());
    while (this.eat(n));
    return o.length === 1 && !a ? o[0] : (s.types = o, this.finishNode(s, r));
  }
  tsParseIntersectionTypeOrHigher() {
    return this.tsParseUnionOrIntersectionType("TSIntersectionType", this.tsParseTypeOperatorOrHigher.bind(this), 45);
  }
  tsParseUnionTypeOrHigher() {
    return this.tsParseUnionOrIntersectionType("TSUnionType", this.tsParseIntersectionTypeOrHigher.bind(this), 43);
  }
  tsIsStartOfFunctionType() {
    return this.match(47) ? !0 : this.match(10) && this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this));
  }
  tsSkipParameterStart() {
    if (Ei(this.state.type) || this.match(78))
      return this.next(), !0;
    if (this.match(5)) {
      const {
        errors: r
      } = this.state, i = r.length;
      try {
        return this.parseObjectLike(8, !0), r.length === i;
      } catch (n) {
        return !1;
      }
    }
    if (this.match(0)) {
      this.next();
      const {
        errors: r
      } = this.state, i = r.length;
      try {
        return super.parseBindingList(3, 93, 1), r.length === i;
      } catch (n) {
        return !1;
      }
    }
    return !1;
  }
  tsIsUnambiguouslyStartOfFunctionType() {
    return this.next(), !!(this.match(11) || this.match(21) || this.tsSkipParameterStart() && (this.match(14) || this.match(12) || this.match(17) || this.match(29) || this.match(11) && (this.next(), this.match(19))));
  }
  tsParseTypeOrTypePredicateAnnotation(r) {
    return this.tsInType(() => {
      const i = this.startNode();
      this.expect(r);
      const n = this.startNode(), s = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));
      if (s && this.match(78)) {
        let l = this.tsParseThisTypeOrThisTypePredicate();
        return l.type === "TSThisType" ? (n.parameterName = l, n.asserts = !0, n.typeAnnotation = null, l = this.finishNode(n, "TSTypePredicate")) : (this.resetStartLocationFromNode(l, n), l.asserts = !0), i.typeAnnotation = l, this.finishNode(i, "TSTypeAnnotation");
      }
      const a = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));
      if (!a)
        return s ? (n.parameterName = this.parseIdentifier(), n.asserts = s, n.typeAnnotation = null, i.typeAnnotation = this.finishNode(n, "TSTypePredicate"), this.finishNode(i, "TSTypeAnnotation")) : this.tsParseTypeAnnotation(!1, i);
      const o = this.tsParseTypeAnnotation(!1);
      return n.parameterName = a, n.typeAnnotation = o, n.asserts = s, i.typeAnnotation = this.finishNode(n, "TSTypePredicate"), this.finishNode(i, "TSTypeAnnotation");
    });
  }
  tsTryParseTypeOrTypePredicateAnnotation() {
    if (this.match(14))
      return this.tsParseTypeOrTypePredicateAnnotation(14);
  }
  tsTryParseTypeAnnotation() {
    if (this.match(14))
      return this.tsParseTypeAnnotation();
  }
  tsTryParseType() {
    return this.tsEatThenParseType(14);
  }
  tsParseTypePredicatePrefix() {
    const r = this.parseIdentifier();
    if (this.isContextual(116) && !this.hasPrecedingLineBreak())
      return this.next(), r;
  }
  tsParseTypePredicateAsserts() {
    if (this.state.type !== 109)
      return !1;
    const r = this.state.containsEsc;
    return this.next(), !Ei(this.state.type) && !this.match(78) ? !1 : (r && this.raise(et.InvalidEscapedReservedWord, this.state.lastTokStartLoc, {
      reservedWord: "asserts"
    }), !0);
  }
  tsParseTypeAnnotation(r = !0, i = this.startNode()) {
    return this.tsInType(() => {
      r && this.expect(14), i.typeAnnotation = this.tsParseType();
    }), this.finishNode(i, "TSTypeAnnotation");
  }
  tsParseType() {
    gZ(this.state.inType);
    const r = this.tsParseNonConditionalType();
    if (this.state.inDisallowConditionalTypesContext || this.hasPrecedingLineBreak() || !this.eat(81))
      return r;
    const i = this.startNodeAtNode(r);
    return i.checkType = r, i.extendsType = this.tsInDisallowConditionalTypesContext(() => this.tsParseNonConditionalType()), this.expect(17), i.trueType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()), this.expect(14), i.falseType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()), this.finishNode(i, "TSConditionalType");
  }
  isAbstractConstructorSignature() {
    return this.isContextual(124) && this.lookahead().type === 77;
  }
  tsParseNonConditionalType() {
    return this.tsIsStartOfFunctionType() ? this.tsParseFunctionOrConstructorType("TSFunctionType") : this.match(77) ? this.tsParseFunctionOrConstructorType("TSConstructorType") : this.isAbstractConstructorSignature() ? this.tsParseFunctionOrConstructorType("TSConstructorType", !0) : this.tsParseUnionTypeOrHigher();
  }
  tsParseTypeAssertion() {
    this.getPluginOption("typescript", "disallowAmbiguousJSXLike") && this.raise(Xt.ReservedTypeAssertion, this.state.startLoc);
    const r = this.startNode();
    return r.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? this.tsParseTypeReference() : this.tsParseType())), this.expect(48), r.expression = this.parseMaybeUnary(), this.finishNode(r, "TSTypeAssertion");
  }
  tsParseHeritageClause(r) {
    const i = this.state.startLoc, n = this.tsParseDelimitedList("HeritageClauseElement", () => {
      const s = this.startNode();
      return s.expression = this.tsParseEntityName(), this.match(47) && (s.typeParameters = this.tsParseTypeArguments()), this.finishNode(s, "TSExpressionWithTypeArguments");
    });
    return n.length || this.raise(Xt.EmptyHeritageClauseType, i, {
      token: r
    }), n;
  }
  tsParseInterfaceDeclaration(r, i = {}) {
    if (this.hasFollowingLineBreak())
      return null;
    this.expectContextual(129), i.declare && (r.declare = !0), Ei(this.state.type) ? (r.id = this.parseIdentifier(), this.checkIdentifier(r.id, 130)) : (r.id = null, this.raise(Xt.MissingInterfaceName, this.state.startLoc)), r.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers), this.eat(81) && (r.extends = this.tsParseHeritageClause("extends"));
    const n = this.startNode();
    return n.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this)), r.body = this.finishNode(n, "TSInterfaceBody"), this.finishNode(r, "TSInterfaceDeclaration");
  }
  tsParseTypeAliasDeclaration(r) {
    return r.id = this.parseIdentifier(), this.checkIdentifier(r.id, 2), r.typeAnnotation = this.tsInType(() => {
      if (r.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers), this.expect(29), this.isContextual(114) && this.lookahead().type !== 16) {
        const i = this.startNode();
        return this.next(), this.finishNode(i, "TSIntrinsicKeyword");
      }
      return this.tsParseType();
    }), this.semicolon(), this.finishNode(r, "TSTypeAliasDeclaration");
  }
  tsInNoContext(r) {
    const i = this.state.context;
    this.state.context = [i[0]];
    try {
      return r();
    } finally {
      this.state.context = i;
    }
  }
  tsInType(r) {
    const i = this.state.inType;
    this.state.inType = !0;
    try {
      return r();
    } finally {
      this.state.inType = i;
    }
  }
  tsInDisallowConditionalTypesContext(r) {
    const i = this.state.inDisallowConditionalTypesContext;
    this.state.inDisallowConditionalTypesContext = !0;
    try {
      return r();
    } finally {
      this.state.inDisallowConditionalTypesContext = i;
    }
  }
  tsInAllowConditionalTypesContext(r) {
    const i = this.state.inDisallowConditionalTypesContext;
    this.state.inDisallowConditionalTypesContext = !1;
    try {
      return r();
    } finally {
      this.state.inDisallowConditionalTypesContext = i;
    }
  }
  tsEatThenParseType(r) {
    if (this.match(r))
      return this.tsNextThenParseType();
  }
  tsExpectThenParseType(r) {
    return this.tsInType(() => (this.expect(r), this.tsParseType()));
  }
  tsNextThenParseType() {
    return this.tsInType(() => (this.next(), this.tsParseType()));
  }
  tsParseEnumMember() {
    const r = this.startNode();
    return r.id = this.match(134) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(!0), this.eat(29) && (r.initializer = super.parseMaybeAssignAllowIn()), this.finishNode(r, "TSEnumMember");
  }
  tsParseEnumDeclaration(r, i = {}) {
    return i.const && (r.const = !0), i.declare && (r.declare = !0), this.expectContextual(126), r.id = this.parseIdentifier(), this.checkIdentifier(r.id, r.const ? 8971 : 8459), this.expect(5), r.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)), this.expect(8), this.finishNode(r, "TSEnumDeclaration");
  }
  tsParseModuleBlock() {
    const r = this.startNode();
    return this.scope.enter(0), this.expect(5), super.parseBlockOrModuleBlockBody(r.body = [], void 0, !0, 8), this.scope.exit(), this.finishNode(r, "TSModuleBlock");
  }
  tsParseModuleOrNamespaceDeclaration(r, i = !1) {
    if (r.id = this.parseIdentifier(), i || this.checkIdentifier(r.id, 1024), this.eat(16)) {
      const n = this.startNode();
      this.tsParseModuleOrNamespaceDeclaration(n, !0), r.body = n;
    } else
      this.scope.enter(256), this.prodParam.enter(0), r.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit();
    return this.finishNode(r, "TSModuleDeclaration");
  }
  tsParseAmbientExternalModuleDeclaration(r) {
    return this.isContextual(112) ? (r.kind = "global", r.global = !0, r.id = this.parseIdentifier()) : this.match(134) ? (r.kind = "module", r.id = super.parseStringLiteral(this.state.value)) : this.unexpected(), this.match(5) ? (this.scope.enter(256), this.prodParam.enter(0), r.body = this.tsParseModuleBlock(), this.prodParam.exit(), this.scope.exit()) : this.semicolon(), this.finishNode(r, "TSModuleDeclaration");
  }
  tsParseImportEqualsDeclaration(r, i, n) {
    r.isExport = n || !1, r.id = i || this.parseIdentifier(), this.checkIdentifier(r.id, 4096), this.expect(29);
    const s = this.tsParseModuleReference();
    return r.importKind === "type" && s.type !== "TSExternalModuleReference" && this.raise(Xt.ImportAliasHasImportType, s), r.moduleReference = s, this.semicolon(), this.finishNode(r, "TSImportEqualsDeclaration");
  }
  tsIsExternalModuleReference() {
    return this.isContextual(119) && this.lookaheadCharCode() === 40;
  }
  tsParseModuleReference() {
    return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(!1);
  }
  tsParseExternalModuleReference() {
    const r = this.startNode();
    return this.expectContextual(119), this.expect(10), this.match(134) || this.unexpected(), r.expression = super.parseExprAtom(), this.expect(11), this.sawUnambiguousESM = !0, this.finishNode(r, "TSExternalModuleReference");
  }
  tsLookAhead(r) {
    const i = this.state.clone(), n = r();
    return this.state = i, n;
  }
  tsTryParseAndCatch(r) {
    const i = this.tryParse((n) => r() || n());
    if (!(i.aborted || !i.node))
      return i.error && (this.state = i.failState), i.node;
  }
  tsTryParse(r) {
    const i = this.state.clone(), n = r();
    if (n !== void 0 && n !== !1)
      return n;
    this.state = i;
  }
  tsTryParseDeclare(r) {
    if (this.isLineTerminator())
      return;
    let i = this.state.type, n;
    return this.isContextual(100) && (i = 74, n = "let"), this.tsInAmbientContext(() => {
      switch (i) {
        case 68:
          return r.declare = !0, super.parseFunctionStatement(r, !1, !1);
        case 80:
          return r.declare = !0, this.parseClass(r, !0, !1);
        case 126:
          return this.tsParseEnumDeclaration(r, {
            declare: !0
          });
        case 112:
          return this.tsParseAmbientExternalModuleDeclaration(r);
        case 75:
        case 74:
          return !this.match(75) || !this.isLookaheadContextual("enum") ? (r.declare = !0, this.parseVarStatement(r, n || this.state.value, !0)) : (this.expect(75), this.tsParseEnumDeclaration(r, {
            const: !0,
            declare: !0
          }));
        case 129: {
          const s = this.tsParseInterfaceDeclaration(r, {
            declare: !0
          });
          if (s)
            return s;
        }
        default:
          if (Ei(i))
            return this.tsParseDeclaration(r, this.state.value, !0, null);
      }
    });
  }
  tsTryParseExportDeclaration() {
    return this.tsParseDeclaration(this.startNode(), this.state.value, !0, null);
  }
  tsParseExpressionStatement(r, i, n) {
    switch (i.name) {
      case "declare": {
        const s = this.tsTryParseDeclare(r);
        return s && (s.declare = !0), s;
      }
      case "global":
        if (this.match(5)) {
          this.scope.enter(256), this.prodParam.enter(0);
          const s = r;
          return s.kind = "global", s.global = !0, s.id = i, s.body = this.tsParseModuleBlock(), this.scope.exit(), this.prodParam.exit(), this.finishNode(s, "TSModuleDeclaration");
        }
        break;
      default:
        return this.tsParseDeclaration(r, i.name, !1, n);
    }
  }
  tsParseDeclaration(r, i, n, s) {
    switch (i) {
      case "abstract":
        if (this.tsCheckLineTerminator(n) && (this.match(80) || Ei(this.state.type)))
          return this.tsParseAbstractDeclaration(r, s);
        break;
      case "module":
        if (this.tsCheckLineTerminator(n)) {
          if (this.match(134))
            return this.tsParseAmbientExternalModuleDeclaration(r);
          if (Ei(this.state.type))
            return r.kind = "module", this.tsParseModuleOrNamespaceDeclaration(r);
        }
        break;
      case "namespace":
        if (this.tsCheckLineTerminator(n) && Ei(this.state.type))
          return r.kind = "namespace", this.tsParseModuleOrNamespaceDeclaration(r);
        break;
      case "type":
        if (this.tsCheckLineTerminator(n) && Ei(this.state.type))
          return this.tsParseTypeAliasDeclaration(r);
        break;
    }
  }
  tsCheckLineTerminator(r) {
    return r ? this.hasFollowingLineBreak() ? !1 : (this.next(), !0) : !this.isLineTerminator();
  }
  tsTryParseGenericAsyncArrowFunction(r) {
    if (!this.match(47))
      return;
    const i = this.state.maybeInArrowParameters;
    this.state.maybeInArrowParameters = !0;
    const n = this.tsTryParseAndCatch(() => {
      const s = this.startNodeAt(r);
      return s.typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier), super.parseFunctionParams(s), s.returnType = this.tsTryParseTypeOrTypePredicateAnnotation(), this.expect(19), s;
    });
    if (this.state.maybeInArrowParameters = i, !!n)
      return super.parseArrowExpression(n, null, !0);
  }
  tsParseTypeArgumentsInExpression() {
    if (this.reScan_lt() === 47)
      return this.tsParseTypeArguments();
  }
  tsParseTypeArguments() {
    const r = this.startNode();
    return r.params = this.tsInType(() => this.tsInNoContext(() => (this.expect(47), this.tsParseDelimitedList("TypeParametersOrArguments", this.tsParseType.bind(this))))), r.params.length === 0 ? this.raise(Xt.EmptyTypeArguments, r) : !this.state.inType && this.curContext() === Fi.brace && this.reScan_lt_gt(), this.expect(48), this.finishNode(r, "TSTypeParameterInstantiation");
  }
  tsIsDeclarationStart() {
    return wMt(this.state.type);
  }
  isExportDefaultSpecifier() {
    return this.tsIsDeclarationStart() ? !1 : super.isExportDefaultSpecifier();
  }
  parseAssignableListItem(r, i) {
    const n = this.state.startLoc, s = {};
    this.tsParseModifiers({
      allowedModifiers: ["public", "private", "protected", "override", "readonly"]
    }, s);
    const a = s.accessibility, o = s.override, l = s.readonly;
    !(r & 4) && (a || l || o) && this.raise(Xt.UnexpectedParameterModifier, n);
    const u = this.parseMaybeDefault();
    r & 2 && this.parseFunctionParamType(u);
    const c = this.parseMaybeDefault(u.loc.start, u);
    if (a || l || o) {
      const f = this.startNodeAt(n);
      return i.length && (f.decorators = i), a && (f.accessibility = a), l && (f.readonly = l), o && (f.override = o), c.type !== "Identifier" && c.type !== "AssignmentPattern" && this.raise(Xt.UnsupportedParameterPropertyKind, f), f.parameter = c, this.finishNode(f, "TSParameterProperty");
    }
    return i.length && (u.decorators = i), c;
  }
  isSimpleParameter(r) {
    return r.type === "TSParameterProperty" && super.isSimpleParameter(r.parameter) || super.isSimpleParameter(r);
  }
  tsDisallowOptionalPattern(r) {
    for (const i of r.params)
      i.type !== "Identifier" && i.optional && !this.state.isAmbientContext && this.raise(Xt.PatternIsOptional, i);
  }
  setArrowFunctionParameters(r, i, n) {
    super.setArrowFunctionParameters(r, i, n), this.tsDisallowOptionalPattern(r);
  }
  parseFunctionBodyAndFinish(r, i, n = !1) {
    this.match(14) && (r.returnType = this.tsParseTypeOrTypePredicateAnnotation(14));
    const s = i === "FunctionDeclaration" ? "TSDeclareFunction" : i === "ClassMethod" || i === "ClassPrivateMethod" ? "TSDeclareMethod" : void 0;
    return s && !this.match(5) && this.isLineTerminator() ? this.finishNode(r, s) : s === "TSDeclareFunction" && this.state.isAmbientContext && (this.raise(Xt.DeclareFunctionHasImplementation, r), r.declare) ? super.parseFunctionBodyAndFinish(r, s, n) : (this.tsDisallowOptionalPattern(r), super.parseFunctionBodyAndFinish(r, i, n));
  }
  registerFunctionStatementId(r) {
    !r.body && r.id ? this.checkIdentifier(r.id, 1024) : super.registerFunctionStatementId(r);
  }
  tsCheckForInvalidTypeCasts(r) {
    r.forEach((i) => {
      (i == null ? void 0 : i.type) === "TSTypeCastExpression" && this.raise(Xt.UnexpectedTypeAnnotation, i.typeAnnotation);
    });
  }
  toReferencedList(r, i) {
    return this.tsCheckForInvalidTypeCasts(r), r;
  }
  parseArrayLike(r, i, n, s) {
    const a = super.parseArrayLike(r, i, n, s);
    return a.type === "ArrayExpression" && this.tsCheckForInvalidTypeCasts(a.elements), a;
  }
  parseSubscript(r, i, n, s) {
    if (!this.hasPrecedingLineBreak() && this.match(35)) {
      this.state.canStartJSXElement = !1, this.next();
      const o = this.startNodeAt(i);
      return o.expression = r, this.finishNode(o, "TSNonNullExpression");
    }
    let a = !1;
    if (this.match(18) && this.lookaheadCharCode() === 60) {
      if (n)
        return s.stop = !0, r;
      s.optionalChainMember = a = !0, this.next();
    }
    if (this.match(47) || this.match(51)) {
      let o;
      const l = this.tsTryParseAndCatch(() => {
        if (!n && this.atPossibleAsyncArrow(r)) {
          const h = this.tsTryParseGenericAsyncArrowFunction(i);
          if (h)
            return h;
        }
        const u = this.tsParseTypeArgumentsInExpression();
        if (!u)
          return;
        if (a && !this.match(10)) {
          o = this.state.curPosition();
          return;
        }
        if (Jw(this.state.type)) {
          const h = super.parseTaggedTemplateExpression(r, i, s);
          return h.typeParameters = u, h;
        }
        if (!n && this.eat(10)) {
          const h = this.startNodeAt(i);
          return h.callee = r, h.arguments = this.parseCallExpressionArguments(11), this.tsCheckForInvalidTypeCasts(h.arguments), h.typeParameters = u, s.optionalChainMember && (h.optional = a), this.finishCallExpression(h, s.optionalChainMember);
        }
        const c = this.state.type;
        if (c === 48 || c === 52 || c !== 10 && g8(c) && !this.hasPrecedingLineBreak())
          return;
        const f = this.startNodeAt(i);
        return f.expression = r, f.typeParameters = u, this.finishNode(f, "TSInstantiationExpression");
      });
      if (o && this.unexpected(o, 10), l)
        return l.type === "TSInstantiationExpression" && (this.match(16) || this.match(18) && this.lookaheadCharCode() !== 40) && this.raise(Xt.InvalidPropertyAccessAfterInstantiationExpression, this.state.startLoc), l;
    }
    return super.parseSubscript(r, i, n, s);
  }
  parseNewCallee(r) {
    var i;
    super.parseNewCallee(r);
    const {
      callee: n
    } = r;
    n.type === "TSInstantiationExpression" && !((i = n.extra) != null && i.parenthesized) && (r.typeParameters = n.typeParameters, r.callee = n.expression);
  }
  parseExprOp(r, i, n) {
    let s;
    if (BP(58) > n && !this.hasPrecedingLineBreak() && (this.isContextual(93) || (s = this.isContextual(120)))) {
      const a = this.startNodeAt(i);
      return a.expression = r, a.typeAnnotation = this.tsInType(() => (this.next(), this.match(75) ? (s && this.raise(et.UnexpectedKeyword, this.state.startLoc, {
        keyword: "const"
      }), this.tsParseTypeReference()) : this.tsParseType())), this.finishNode(a, s ? "TSSatisfiesExpression" : "TSAsExpression"), this.reScan_lt_gt(), this.parseExprOp(a, i, n);
    }
    return super.parseExprOp(r, i, n);
  }
  checkReservedWord(r, i, n, s) {
    this.state.isAmbientContext || super.checkReservedWord(r, i, n, s);
  }
  checkImportReflection(r) {
    super.checkImportReflection(r), r.module && r.importKind !== "value" && this.raise(Xt.ImportReflectionHasImportType, r.specifiers[0].loc.start);
  }
  checkDuplicateExports() {
  }
  isPotentialImportPhase(r) {
    if (super.isPotentialImportPhase(r))
      return !0;
    if (this.isContextual(130)) {
      const i = this.lookaheadCharCode();
      return r ? i === 123 || i === 42 : i !== 61;
    }
    return !r && this.isContextual(87);
  }
  applyImportPhase(r, i, n, s) {
    super.applyImportPhase(r, i, n, s), i ? r.exportKind = n === "type" ? "type" : "value" : r.importKind = n === "type" || n === "typeof" ? n : "value";
  }
  parseImport(r) {
    if (this.match(134))
      return r.importKind = "value", super.parseImport(r);
    let i;
    if (Ei(this.state.type) && this.lookaheadCharCode() === 61)
      return r.importKind = "value", this.tsParseImportEqualsDeclaration(r);
    if (this.isContextual(130)) {
      const n = this.parseMaybeImportPhase(r, !1);
      if (this.lookaheadCharCode() === 61)
        return this.tsParseImportEqualsDeclaration(r, n);
      i = super.parseImportSpecifiersAndAfter(r, n);
    } else
      i = super.parseImport(r);
    return i.importKind === "type" && i.specifiers.length > 1 && i.specifiers[0].type === "ImportDefaultSpecifier" && this.raise(Xt.TypeImportCannotSpecifyDefaultAndNamed, i), i;
  }
  parseExport(r, i) {
    if (this.match(83)) {
      this.next();
      const n = r;
      let s = null;
      return this.isContextual(130) && this.isPotentialImportPhase(!1) ? s = this.parseMaybeImportPhase(n, !1) : n.importKind = "value", this.tsParseImportEqualsDeclaration(n, s, !0);
    } else if (this.eat(29)) {
      const n = r;
      return n.expression = super.parseExpression(), this.semicolon(), this.sawUnambiguousESM = !0, this.finishNode(n, "TSExportAssignment");
    } else if (this.eatContextual(93)) {
      const n = r;
      return this.expectContextual(128), n.id = this.parseIdentifier(), this.semicolon(), this.finishNode(n, "TSNamespaceExportDeclaration");
    } else
      return super.parseExport(r, i);
  }
  isAbstractClass() {
    return this.isContextual(124) && this.lookahead().type === 80;
  }
  parseExportDefaultExpression() {
    if (this.isAbstractClass()) {
      const r = this.startNode();
      return this.next(), r.abstract = !0, this.parseClass(r, !0, !0);
    }
    if (this.match(129)) {
      const r = this.tsParseInterfaceDeclaration(this.startNode());
      if (r)
        return r;
    }
    return super.parseExportDefaultExpression();
  }
  parseVarStatement(r, i, n = !1) {
    const {
      isAmbientContext: s
    } = this.state, a = super.parseVarStatement(r, i, n || s);
    if (!s)
      return a;
    for (const {
      id: o,
      init: l
    } of a.declarations)
      l && (i !== "const" || o.typeAnnotation ? this.raise(Xt.InitializerNotAllowedInAmbientContext, l) : xRt(l, this.hasPlugin("estree")) || this.raise(Xt.ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference, l));
    return a;
  }
  parseStatementContent(r, i) {
    if (this.match(75) && this.isLookaheadContextual("enum")) {
      const n = this.startNode();
      return this.expect(75), this.tsParseEnumDeclaration(n, {
        const: !0
      });
    }
    if (this.isContextual(126))
      return this.tsParseEnumDeclaration(this.startNode());
    if (this.isContextual(129)) {
      const n = this.tsParseInterfaceDeclaration(this.startNode());
      if (n)
        return n;
    }
    return super.parseStatementContent(r, i);
  }
  parseAccessModifier() {
    return this.tsParseModifier(["public", "protected", "private"]);
  }
  tsHasSomeModifiers(r, i) {
    return i.some((n) => bZ(n) ? r.accessibility === n : !!r[n]);
  }
  tsIsStartOfStaticBlocks() {
    return this.isContextual(106) && this.lookaheadCharCode() === 123;
  }
  parseClassMember(r, i, n) {
    const s = ["declare", "private", "public", "protected", "override", "abstract", "readonly", "static"];
    this.tsParseModifiers({
      allowedModifiers: s,
      disallowedModifiers: ["in", "out"],
      stopOnStartOfClassStaticBlock: !0,
      errorTemplate: Xt.InvalidModifierOnTypeParameterPositions
    }, i);
    const a = () => {
      this.tsIsStartOfStaticBlocks() ? (this.next(), this.next(), this.tsHasSomeModifiers(i, s) && this.raise(Xt.StaticBlockCannotHaveModifier, this.state.curPosition()), super.parseClassStaticBlock(r, i)) : this.parseClassMemberWithIsStatic(r, i, n, !!i.static);
    };
    i.declare ? this.tsInAmbientContext(a) : a();
  }
  parseClassMemberWithIsStatic(r, i, n, s) {
    const a = this.tsTryParseIndexSignature(i);
    if (a) {
      r.body.push(a), i.abstract && this.raise(Xt.IndexSignatureHasAbstract, i), i.accessibility && this.raise(Xt.IndexSignatureHasAccessibility, i, {
        modifier: i.accessibility
      }), i.declare && this.raise(Xt.IndexSignatureHasDeclare, i), i.override && this.raise(Xt.IndexSignatureHasOverride, i);
      return;
    }
    !this.state.inAbstractClass && i.abstract && this.raise(Xt.NonAbstractClassHasAbstractMethod, i), i.override && (n.hadSuperClass || this.raise(Xt.OverrideNotInSubClass, i)), super.parseClassMemberWithIsStatic(r, i, n, s);
  }
  parsePostMemberNameModifiers(r) {
    this.eat(17) && (r.optional = !0), r.readonly && this.match(10) && this.raise(Xt.ClassMethodHasReadonly, r), r.declare && this.match(10) && this.raise(Xt.ClassMethodHasDeclare, r);
  }
  parseExpressionStatement(r, i, n) {
    return (i.type === "Identifier" ? this.tsParseExpressionStatement(r, i, n) : void 0) || super.parseExpressionStatement(r, i, n);
  }
  shouldParseExportDeclaration() {
    return this.tsIsDeclarationStart() ? !0 : super.shouldParseExportDeclaration();
  }
  parseConditional(r, i, n) {
    if (!this.state.maybeInArrowParameters || !this.match(17))
      return super.parseConditional(r, i, n);
    const s = this.tryParse(() => super.parseConditional(r, i));
    return s.node ? (s.error && (this.state = s.failState), s.node) : (s.error && super.setOptionalParametersError(n, s.error), r);
  }
  parseParenItem(r, i) {
    const n = super.parseParenItem(r, i);
    if (this.eat(17) && (n.optional = !0, this.resetEndLocation(r)), this.match(14)) {
      const s = this.startNodeAt(i);
      return s.expression = r, s.typeAnnotation = this.tsParseTypeAnnotation(), this.finishNode(s, "TSTypeCastExpression");
    }
    return r;
  }
  parseExportDeclaration(r) {
    if (!this.state.isAmbientContext && this.isContextual(125))
      return this.tsInAmbientContext(() => this.parseExportDeclaration(r));
    const i = this.state.startLoc, n = this.eatContextual(125);
    if (n && (this.isContextual(125) || !this.shouldParseExportDeclaration()))
      throw this.raise(Xt.ExpectedAmbientAfterExportDeclare, this.state.startLoc);
    const a = Ei(this.state.type) && this.tsTryParseExportDeclaration() || super.parseExportDeclaration(r);
    return a ? ((a.type === "TSInterfaceDeclaration" || a.type === "TSTypeAliasDeclaration" || n) && (r.exportKind = "type"), n && (this.resetStartLocation(a, i), a.declare = !0), a) : null;
  }
  parseClassId(r, i, n, s) {
    if ((!i || n) && this.isContextual(113))
      return;
    super.parseClassId(r, i, n, r.declare ? 1024 : 8331);
    const a = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);
    a && (r.typeParameters = a);
  }
  parseClassPropertyAnnotation(r) {
    r.optional || (this.eat(35) ? r.definite = !0 : this.eat(17) && (r.optional = !0));
    const i = this.tsTryParseTypeAnnotation();
    i && (r.typeAnnotation = i);
  }
  parseClassProperty(r) {
    if (this.parseClassPropertyAnnotation(r), this.state.isAmbientContext && !(r.readonly && !r.typeAnnotation) && this.match(29) && this.raise(Xt.DeclareClassFieldHasInitializer, this.state.startLoc), r.abstract && this.match(29)) {
      const {
        key: i
      } = r;
      this.raise(Xt.AbstractPropertyHasInitializer, this.state.startLoc, {
        propertyName: i.type === "Identifier" && !r.computed ? i.name : "[".concat(this.input.slice(this.offsetToSourcePos(i.start), this.offsetToSourcePos(i.end)), "]")
      });
    }
    return super.parseClassProperty(r);
  }
  parseClassPrivateProperty(r) {
    return r.abstract && this.raise(Xt.PrivateElementHasAbstract, r), r.accessibility && this.raise(Xt.PrivateElementHasAccessibility, r, {
      modifier: r.accessibility
    }), this.parseClassPropertyAnnotation(r), super.parseClassPrivateProperty(r);
  }
  parseClassAccessorProperty(r) {
    return this.parseClassPropertyAnnotation(r), r.optional && this.raise(Xt.AccessorCannotBeOptional, r), super.parseClassAccessorProperty(r);
  }
  pushClassMethod(r, i, n, s, a, o) {
    const l = this.tsTryParseTypeParameters(this.tsParseConstModifier);
    l && a && this.raise(Xt.ConstructorHasTypeParameters, l);
    const {
      declare: u = !1,
      kind: c
    } = i;
    u && (c === "get" || c === "set") && this.raise(Xt.DeclareAccessor, i, {
      kind: c
    }), l && (i.typeParameters = l), super.pushClassMethod(r, i, n, s, a, o);
  }
  pushClassPrivateMethod(r, i, n, s) {
    const a = this.tsTryParseTypeParameters(this.tsParseConstModifier);
    a && (i.typeParameters = a), super.pushClassPrivateMethod(r, i, n, s);
  }
  declareClassPrivateMethodInScope(r, i) {
    r.type !== "TSDeclareMethod" && (r.type === "MethodDefinition" && !hasOwnProperty.call(r.value, "body") || super.declareClassPrivateMethodInScope(r, i));
  }
  parseClassSuper(r) {
    super.parseClassSuper(r), r.superClass && (this.match(47) || this.match(51)) && (r.superTypeParameters = this.tsParseTypeArgumentsInExpression()), this.eatContextual(113) && (r.implements = this.tsParseHeritageClause("implements"));
  }
  parseObjPropValue(r, i, n, s, a, o, l) {
    const u = this.tsTryParseTypeParameters(this.tsParseConstModifier);
    return u && (r.typeParameters = u), super.parseObjPropValue(r, i, n, s, a, o, l);
  }
  parseFunctionParams(r, i) {
    const n = this.tsTryParseTypeParameters(this.tsParseConstModifier);
    n && (r.typeParameters = n), super.parseFunctionParams(r, i);
  }
  parseVarId(r, i) {
    super.parseVarId(r, i), r.id.type === "Identifier" && !this.hasPrecedingLineBreak() && this.eat(35) && (r.definite = !0);
    const n = this.tsTryParseTypeAnnotation();
    n && (r.id.typeAnnotation = n, this.resetEndLocation(r.id));
  }
  parseAsyncArrowFromCallExpression(r, i) {
    return this.match(14) && (r.returnType = this.tsParseTypeAnnotation()), super.parseAsyncArrowFromCallExpression(r, i);
  }
  parseMaybeAssign(r, i) {
    var n, s, a, o, l;
    let u, c, f;
    if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) {
      if (u = this.state.clone(), c = this.tryParse(() => super.parseMaybeAssign(r, i), u), !c.error)
        return c.node;
      const {
        context: g
      } = this.state, y = g[g.length - 1];
      (y === Fi.j_oTag || y === Fi.j_expr) && g.pop();
    }
    if (!((n = c) != null && n.error) && !this.match(47))
      return super.parseMaybeAssign(r, i);
    (!u || u === this.state) && (u = this.state.clone());
    let h;
    const m = this.tryParse((g) => {
      var y, v;
      h = this.tsParseTypeParameters(this.tsParseConstModifier);
      const T = super.parseMaybeAssign(r, i);
      return (T.type !== "ArrowFunctionExpression" || (y = T.extra) != null && y.parenthesized) && g(), ((v = h) == null ? void 0 : v.params.length) !== 0 && this.resetStartLocationFromNode(T, h), T.typeParameters = h, T;
    }, u);
    if (!m.error && !m.aborted)
      return h && this.reportReservedArrowTypeParam(h), m.node;
    if (!c && (gZ(!this.hasPlugin("jsx")), f = this.tryParse(() => super.parseMaybeAssign(r, i), u), !f.error))
      return f.node;
    if ((s = c) != null && s.node)
      return this.state = c.failState, c.node;
    if (m.node)
      return this.state = m.failState, h && this.reportReservedArrowTypeParam(h), m.node;
    if ((a = f) != null && a.node)
      return this.state = f.failState, f.node;
    throw ((o = c) == null ? void 0 : o.error) || m.error || ((l = f) == null ? void 0 : l.error);
  }
  reportReservedArrowTypeParam(r) {
    var i;
    r.params.length === 1 && !r.params[0].constraint && !((i = r.extra) != null && i.trailingComma) && this.getPluginOption("typescript", "disallowAmbiguousJSXLike") && this.raise(Xt.ReservedArrowTypeParam, r);
  }
  parseMaybeUnary(r, i) {
    return !this.hasPlugin("jsx") && this.match(47) ? this.tsParseTypeAssertion() : super.parseMaybeUnary(r, i);
  }
  parseArrow(r) {
    if (this.match(14)) {
      const i = this.tryParse((n) => {
        const s = this.tsParseTypeOrTypePredicateAnnotation(14);
        return (this.canInsertSemicolon() || !this.match(19)) && n(), s;
      });
      if (i.aborted)
        return;
      i.thrown || (i.error && (this.state = i.failState), r.returnType = i.node);
    }
    return super.parseArrow(r);
  }
  parseFunctionParamType(r) {
    this.eat(17) && (r.optional = !0);
    const i = this.tsTryParseTypeAnnotation();
    return i && (r.typeAnnotation = i), this.resetEndLocation(r), r;
  }
  isAssignable(r, i) {
    switch (r.type) {
      case "TSTypeCastExpression":
        return this.isAssignable(r.expression, i);
      case "TSParameterProperty":
        return !0;
      default:
        return super.isAssignable(r, i);
    }
  }
  toAssignable(r, i = !1) {
    switch (r.type) {
      case "ParenthesizedExpression":
        this.toAssignableParenthesizedExpression(r, i);
        break;
      case "TSAsExpression":
      case "TSSatisfiesExpression":
      case "TSNonNullExpression":
      case "TSTypeAssertion":
        i ? this.expressionScope.recordArrowParameterBindingError(Xt.UnexpectedTypeCastInParameter, r) : this.raise(Xt.UnexpectedTypeCastInParameter, r), this.toAssignable(r.expression, i);
        break;
      case "AssignmentExpression":
        !i && r.left.type === "TSTypeCastExpression" && (r.left = this.typeCastToParameter(r.left));
      default:
        super.toAssignable(r, i);
    }
  }
  toAssignableParenthesizedExpression(r, i) {
    switch (r.expression.type) {
      case "TSAsExpression":
      case "TSSatisfiesExpression":
      case "TSNonNullExpression":
      case "TSTypeAssertion":
      case "ParenthesizedExpression":
        this.toAssignable(r.expression, i);
        break;
      default:
        super.toAssignable(r, i);
    }
  }
  checkToRestConversion(r, i) {
    switch (r.type) {
      case "TSAsExpression":
      case "TSSatisfiesExpression":
      case "TSTypeAssertion":
      case "TSNonNullExpression":
        this.checkToRestConversion(r.expression, !1);
        break;
      default:
        super.checkToRestConversion(r, i);
    }
  }
  isValidLVal(r, i, n) {
    switch (r) {
      case "TSTypeCastExpression":
        return !0;
      case "TSParameterProperty":
        return "parameter";
      case "TSNonNullExpression":
      case "TSInstantiationExpression":
        return "expression";
      case "TSAsExpression":
      case "TSSatisfiesExpression":
      case "TSTypeAssertion":
        return (n !== 64 || !i) && ["expression", !0];
      default:
        return super.isValidLVal(r, i, n);
    }
  }
  parseBindingAtom() {
    return this.state.type === 78 ? this.parseIdentifier(!0) : super.parseBindingAtom();
  }
  parseMaybeDecoratorArguments(r) {
    if (this.match(47) || this.match(51)) {
      const i = this.tsParseTypeArgumentsInExpression();
      if (this.match(10)) {
        const n = super.parseMaybeDecoratorArguments(r);
        return n.typeParameters = i, n;
      }
      this.unexpected(null, 10);
    }
    return super.parseMaybeDecoratorArguments(r);
  }
  checkCommaAfterRest(r) {
    return this.state.isAmbientContext && this.match(12) && this.lookaheadCharCode() === r ? (this.next(), !1) : super.checkCommaAfterRest(r);
  }
  isClassMethod() {
    return this.match(47) || super.isClassMethod();
  }
  isClassProperty() {
    return this.match(35) || this.match(14) || super.isClassProperty();
  }
  parseMaybeDefault(r, i) {
    const n = super.parseMaybeDefault(r, i);
    return n.type === "AssignmentPattern" && n.typeAnnotation && n.right.start < n.typeAnnotation.start && this.raise(Xt.TypeAnnotationAfterAssign, n.typeAnnotation), n;
  }
  getTokenFromCode(r) {
    if (this.state.inType) {
      if (r === 62) {
        this.finishOp(48, 1);
        return;
      }
      if (r === 60) {
        this.finishOp(47, 1);
        return;
      }
    }
    super.getTokenFromCode(r);
  }
  reScan_lt_gt() {
    const {
      type: r
    } = this.state;
    r === 47 ? (this.state.pos -= 1, this.readToken_lt()) : r === 48 && (this.state.pos -= 1, this.readToken_gt());
  }
  reScan_lt() {
    const {
      type: r
    } = this.state;
    return r === 51 ? (this.state.pos -= 2, this.finishOp(47, 1), 47) : r;
  }
  toAssignableList(r, i, n) {
    for (let s = 0; s < r.length; s++) {
      const a = r[s];
      (a == null ? void 0 : a.type) === "TSTypeCastExpression" && (r[s] = this.typeCastToParameter(a));
    }
    super.toAssignableList(r, i, n);
  }
  typeCastToParameter(r) {
    return r.expression.typeAnnotation = r.typeAnnotation, this.resetEndLocation(r.expression, r.typeAnnotation.loc.end), r.expression;
  }
  shouldParseArrow(r) {
    return this.match(14) ? r.every((i) => this.isAssignable(i, !0)) : super.shouldParseArrow(r);
  }
  shouldParseAsyncArrow() {
    return this.match(14) || super.shouldParseAsyncArrow();
  }
  canHaveLeadingDecorator() {
    return super.canHaveLeadingDecorator() || this.isAbstractClass();
  }
  jsxParseOpeningElementAfterName(r) {
    if (this.match(47) || this.match(51)) {
      const i = this.tsTryParseAndCatch(() => this.tsParseTypeArgumentsInExpression());
      i && (r.typeParameters = i);
    }
    return super.jsxParseOpeningElementAfterName(r);
  }
  getGetterSetterExpectedParamCount(r) {
    const i = super.getGetterSetterExpectedParamCount(r), s = this.getObjectOrClassMethodParams(r)[0];
    return s && this.isThisParam(s) ? i + 1 : i;
  }
  parseCatchClauseParam() {
    const r = super.parseCatchClauseParam(), i = this.tsTryParseTypeAnnotation();
    return i && (r.typeAnnotation = i, this.resetEndLocation(r)), r;
  }
  tsInAmbientContext(r) {
    const {
      isAmbientContext: i,
      strict: n
    } = this.state;
    this.state.isAmbientContext = !0, this.state.strict = !1;
    try {
      return r();
    } finally {
      this.state.isAmbientContext = i, this.state.strict = n;
    }
  }
  parseClass(r, i, n) {
    const s = this.state.inAbstractClass;
    this.state.inAbstractClass = !!r.abstract;
    try {
      return super.parseClass(r, i, n);
    } finally {
      this.state.inAbstractClass = s;
    }
  }
  tsParseAbstractDeclaration(r, i) {
    if (this.match(80))
      return r.abstract = !0, this.maybeTakeDecorators(i, this.parseClass(r, !0, !1));
    if (this.isContextual(129)) {
      if (!this.hasFollowingLineBreak())
        return r.abstract = !0, this.raise(Xt.NonClassMethodPropertyHasAbstractModifer, r), this.tsParseInterfaceDeclaration(r);
    } else
      this.unexpected(null, 80);
  }
  parseMethod(r, i, n, s, a, o, l) {
    const u = super.parseMethod(r, i, n, s, a, o, l);
    if (u.abstract && (this.hasPlugin("estree") ? !!u.value.body : !!u.body)) {
      const {
        key: f
      } = u;
      this.raise(Xt.AbstractMethodHasImplementation, u, {
        methodName: f.type === "Identifier" && !u.computed ? f.name : "[".concat(this.input.slice(this.offsetToSourcePos(f.start), this.offsetToSourcePos(f.end)), "]")
      });
    }
    return u;
  }
  tsParseTypeParameterName() {
    return this.parseIdentifier().name;
  }
  shouldParseAsAmbientContext() {
    return !!this.getPluginOption("typescript", "dts");
  }
  parse() {
    return this.shouldParseAsAmbientContext() && (this.state.isAmbientContext = !0), super.parse();
  }
  getExpression() {
    return this.shouldParseAsAmbientContext() && (this.state.isAmbientContext = !0), super.getExpression();
  }
  parseExportSpecifier(r, i, n, s) {
    return !i && s ? (this.parseTypeOnlyImportExportSpecifier(r, !1, n), this.finishNode(r, "ExportSpecifier")) : (r.exportKind = "value", super.parseExportSpecifier(r, i, n, s));
  }
  parseImportSpecifier(r, i, n, s, a) {
    return !i && s ? (this.parseTypeOnlyImportExportSpecifier(r, !0, n), this.finishNode(r, "ImportSpecifier")) : (r.importKind = "value", super.parseImportSpecifier(r, i, n, s, n ? 4098 : 4096));
  }
  parseTypeOnlyImportExportSpecifier(r, i, n) {
    const s = i ? "imported" : "local", a = i ? "local" : "exported";
    let o = r[s], l, u = !1, c = !0;
    const f = o.loc.start;
    if (this.isContextual(93)) {
      const m = this.parseIdentifier();
      if (this.isContextual(93)) {
        const g = this.parseIdentifier();
        Nc(this.state.type) ? (u = !0, o = m, l = i ? this.parseIdentifier() : this.parseModuleExportName(), c = !1) : (l = g, c = !1);
      } else
        Nc(this.state.type) ? (c = !1, l = i ? this.parseIdentifier() : this.parseModuleExportName()) : (u = !0, o = m);
    } else
      Nc(this.state.type) && (u = !0, i ? (o = this.parseIdentifier(!0), this.isContextual(93) || this.checkReservedWord(o.name, o.loc.start, !0, !0)) : o = this.parseModuleExportName());
    u && n && this.raise(i ? Xt.TypeModifierIsUsedInTypeImports : Xt.TypeModifierIsUsedInTypeExports, f), r[s] = o, r[a] = l;
    const h = i ? "importKind" : "exportKind";
    r[h] = u ? "type" : "value", c && this.eatContextual(93) && (r[a] = i ? this.parseIdentifier() : this.parseModuleExportName()), r[a] || (r[a] = Sf(r[s])), i && this.checkIdentifier(r[a], u ? 4098 : 4096);
  }
};
function SRt(e) {
  if (e.type !== "MemberExpression")
    return !1;
  const {
    computed: t,
    property: r
  } = e;
  return t && r.type !== "StringLiteral" && (r.type !== "TemplateLiteral" || r.expressions.length > 0) ? !1 : ige(e.object);
}
function xRt(e, t) {
  var r;
  const {
    type: i
  } = e;
  if ((r = e.extra) != null && r.parenthesized)
    return !1;
  if (t) {
    if (i === "Literal") {
      const {
        value: n
      } = e;
      if (typeof n == "string" || typeof n == "boolean")
        return !0;
    }
  } else if (i === "StringLiteral" || i === "BooleanLiteral")
    return !0;
  return !!(rge(e, t) || ERt(e, t) || i === "TemplateLiteral" && e.expressions.length === 0 || SRt(e));
}
function rge(e, t) {
  return t ? e.type === "Literal" && (typeof e.value == "number" || "bigint" in e) : e.type === "NumericLiteral" || e.type === "BigIntLiteral";
}
function ERt(e, t) {
  if (e.type === "UnaryExpression") {
    const {
      operator: r,
      argument: i
    } = e;
    if (r === "-" && rge(i, t))
      return !0;
  }
  return !1;
}
function ige(e) {
  return e.type === "Identifier" ? !0 : e.type !== "MemberExpression" || e.computed ? !1 : ige(e.object);
}
var Iae;
const vZ = mf(Iae || (Iae = at(["placeholders"])))({
  ClassNameIsRequired: "A class name is required.",
  UnexpectedSpace: "Unexpected space in placeholder."
});
var PRt = (e) => class extends e {
  parsePlaceholder(r) {
    if (this.match(133)) {
      const i = this.startNode();
      return this.next(), this.assertNoSpace(), i.name = super.parseIdentifier(!0), this.assertNoSpace(), this.expect(133), this.finishPlaceholder(i, r);
    }
  }
  finishPlaceholder(r, i) {
    let n = r;
    return (!n.expectedNode || !n.type) && (n = this.finishNode(n, "Placeholder")), n.expectedNode = i, n;
  }
  getTokenFromCode(r) {
    r === 37 && this.input.charCodeAt(this.state.pos + 1) === 37 ? this.finishOp(133, 2) : super.getTokenFromCode(r);
  }
  parseExprAtom(r) {
    return this.parsePlaceholder("Expression") || super.parseExprAtom(r);
  }
  parseIdentifier(r) {
    return this.parsePlaceholder("Identifier") || super.parseIdentifier(r);
  }
  checkReservedWord(r, i, n, s) {
    r !== void 0 && super.checkReservedWord(r, i, n, s);
  }
  parseBindingAtom() {
    return this.parsePlaceholder("Pattern") || super.parseBindingAtom();
  }
  isValidLVal(r, i, n) {
    return r === "Placeholder" || super.isValidLVal(r, i, n);
  }
  toAssignable(r, i) {
    r && r.type === "Placeholder" && r.expectedNode === "Expression" ? r.expectedNode = "Pattern" : super.toAssignable(r, i);
  }
  chStartsBindingIdentifier(r, i) {
    return !!(super.chStartsBindingIdentifier(r, i) || this.lookahead().type === 133);
  }
  verifyBreakContinue(r, i) {
    r.label && r.label.type === "Placeholder" || super.verifyBreakContinue(r, i);
  }
  parseExpressionStatement(r, i) {
    var n;
    if (i.type !== "Placeholder" || (n = i.extra) != null && n.parenthesized)
      return super.parseExpressionStatement(r, i);
    if (this.match(14)) {
      const a = r;
      return a.label = this.finishPlaceholder(i, "Identifier"), this.next(), a.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration(), this.finishNode(a, "LabeledStatement");
    }
    this.semicolon();
    const s = r;
    return s.name = i.name, this.finishPlaceholder(s, "Statement");
  }
  parseBlock(r, i, n) {
    return this.parsePlaceholder("BlockStatement") || super.parseBlock(r, i, n);
  }
  parseFunctionId(r) {
    return this.parsePlaceholder("Identifier") || super.parseFunctionId(r);
  }
  parseClass(r, i, n) {
    const s = i ? "ClassDeclaration" : "ClassExpression";
    this.next();
    const a = this.state.strict, o = this.parsePlaceholder("Identifier");
    if (o)
      if (this.match(81) || this.match(133) || this.match(5))
        r.id = o;
      else {
        if (n || !i)
          return r.id = null, r.body = this.finishPlaceholder(o, "ClassBody"), this.finishNode(r, s);
        throw this.raise(vZ.ClassNameIsRequired, this.state.startLoc);
      }
    else
      this.parseClassId(r, i, n);
    return super.parseClassSuper(r), r.body = this.parsePlaceholder("ClassBody") || super.parseClassBody(!!r.superClass, a), this.finishNode(r, s);
  }
  parseExport(r, i) {
    const n = this.parsePlaceholder("Identifier");
    if (!n)
      return super.parseExport(r, i);
    const s = r;
    if (!this.isContextual(98) && !this.match(12))
      return s.specifiers = [], s.source = null, s.declaration = this.finishPlaceholder(n, "Declaration"), this.finishNode(s, "ExportNamedDeclaration");
    this.expectPlugin("exportDefaultFrom");
    const a = this.startNode();
    return a.exported = n, s.specifiers = [this.finishNode(a, "ExportDefaultSpecifier")], super.parseExport(s, i);
  }
  isExportDefaultSpecifier() {
    if (this.match(65)) {
      const r = this.nextTokenStart();
      if (this.isUnparsedContextual(r, "from") && this.input.startsWith(Lh(133), this.nextTokenStartSince(r + 4)))
        return !0;
    }
    return super.isExportDefaultSpecifier();
  }
  maybeParseExportDefaultSpecifier(r, i) {
    var n;
    return (n = r.specifiers) != null && n.length ? !0 : super.maybeParseExportDefaultSpecifier(r, i);
  }
  checkExport(r) {
    const {
      specifiers: i
    } = r;
    i != null && i.length && (r.specifiers = i.filter((n) => n.exported.type === "Placeholder")), super.checkExport(r), r.specifiers = i;
  }
  parseImport(r) {
    const i = this.parsePlaceholder("Identifier");
    if (!i)
      return super.parseImport(r);
    if (r.specifiers = [], !this.isContextual(98) && !this.match(12))
      return r.source = this.finishPlaceholder(i, "StringLiteral"), this.semicolon(), this.finishNode(r, "ImportDeclaration");
    const n = this.startNodeAtNode(i);
    return n.local = i, r.specifiers.push(this.finishNode(n, "ImportDefaultSpecifier")), this.eat(12) && (this.maybeParseStarImportSpecifier(r) || this.parseNamedImportSpecifiers(r)), this.expectContextual(98), r.source = this.parseImportSource(), this.semicolon(), this.finishNode(r, "ImportDeclaration");
  }
  parseImportSource() {
    return this.parsePlaceholder("StringLiteral") || super.parseImportSource();
  }
  assertNoSpace() {
    this.state.start > this.offsetToSourcePos(this.state.lastTokEndLoc.index) && this.raise(vZ.UnexpectedSpace, this.state.lastTokEndLoc);
  }
}, wRt = (e) => class extends e {
  parseV8Intrinsic() {
    if (this.match(54)) {
      const r = this.state.startLoc, i = this.startNode();
      if (this.next(), Ei(this.state.type)) {
        const n = this.parseIdentifierName(), s = this.createIdentifier(i, n);
        if (s.type = "V8IntrinsicIdentifier", this.match(10))
          return s;
      }
      this.unexpected(r);
    }
  }
  parseExprAtom(r) {
    return this.parseV8Intrinsic() || super.parseExprAtom(r);
  }
};
const TZ = ["minimal", "fsharp", "hack", "smart"], SZ = ["^^", "@@", "^", "%", "#"];
function ARt(e) {
  if (e.has("decorators")) {
    if (e.has("decorators-legacy"))
      throw new Error("Cannot use the decorators and decorators-legacy plugin together");
    const r = e.get("decorators").decoratorsBeforeExport;
    if (r != null && typeof r != "boolean")
      throw new Error("'decoratorsBeforeExport' must be a boolean, if specified.");
    const i = e.get("decorators").allowCallParenthesized;
    if (i != null && typeof i != "boolean")
      throw new Error("'allowCallParenthesized' must be a boolean.");
  }
  if (e.has("flow") && e.has("typescript"))
    throw new Error("Cannot combine flow and typescript plugins.");
  if (e.has("placeholders") && e.has("v8intrinsic"))
    throw new Error("Cannot combine placeholders and v8intrinsic plugins.");
  if (e.has("pipelineOperator")) {
    var t;
    const r = e.get("pipelineOperator").proposal;
    if (!TZ.includes(r)) {
      const n = TZ.map((s) => '"'.concat(s, '"')).join(", ");
      throw new Error('"pipelineOperator" requires "proposal" option whose value must be one of: '.concat(n, "."));
    }
    const i = ((t = e.get("recordAndTuple")) == null ? void 0 : t.syntaxType) === "hash";
    if (r === "hack") {
      if (e.has("placeholders"))
        throw new Error("Cannot combine placeholders plugin and Hack-style pipes.");
      if (e.has("v8intrinsic"))
        throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes.");
      const n = e.get("pipelineOperator").topicToken;
      if (!SZ.includes(n)) {
        const s = SZ.map((a) => '"'.concat(a, '"')).join(", ");
        throw new Error('"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: '.concat(s, "."));
      }
      if (n === "#" && i)
        throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "hack", topicToken: "#" }]` and `'.concat(JSON.stringify(["recordAndTuple", e.get("recordAndTuple")]), "`."));
    } else if (r === "smart" && i)
      throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "smart" }]` and `'.concat(JSON.stringify(["recordAndTuple", e.get("recordAndTuple")]), "`."));
  }
  if (e.has("moduleAttributes")) {
    if (e.has("deprecatedImportAssert") || e.has("importAssertions"))
      throw new Error("Cannot combine importAssertions, deprecatedImportAssert and moduleAttributes plugins.");
    if (e.get("moduleAttributes").version !== "may-2020")
      throw new Error("The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is 'may-2020'.");
  }
  if (e.has("importAssertions") && e.has("deprecatedImportAssert"))
    throw new Error("Cannot combine importAssertions and deprecatedImportAssert plugins.");
  if (!e.has("deprecatedImportAssert") && e.has("importAttributes") && e.get("importAttributes").deprecatedAssertSyntax && e.set("deprecatedImportAssert", {}), e.has("recordAndTuple")) {
    const r = e.get("recordAndTuple").syntaxType;
    if (r != null) {
      const i = ["hash", "bar"];
      if (!i.includes(r))
        throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: " + i.map((n) => "'".concat(n, "'")).join(", "));
    }
  }
  if (e.has("asyncDoExpressions") && !e.has("doExpressions")) {
    const r = new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.");
    throw r.missingPlugins = "doExpressions", r;
  }
  if (e.has("optionalChainingAssign") && e.get("optionalChainingAssign").version !== "2023-07")
    throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is '2023-07'.");
}
const nge = {
  estree: dMt,
  jsx: hRt,
  flow: pRt,
  typescript: TRt,
  v8intrinsic: wRt,
  placeholders: PRt
}, CRt = Object.keys(nge);
function _Rt() {
  return {
    sourceType: "script",
    sourceFilename: void 0,
    startIndex: 0,
    startColumn: 0,
    startLine: 1,
    allowAwaitOutsideFunction: !1,
    allowReturnOutsideFunction: !1,
    allowNewTargetOutsideFunction: !1,
    allowImportExportEverywhere: !1,
    allowSuperOutsideMethod: !1,
    allowUndeclaredExports: !1,
    plugins: [],
    strictMode: null,
    ranges: !1,
    tokens: !1,
    createImportExpressions: !1,
    createParenthesizedExpressions: !1,
    errorRecovery: !1,
    attachComment: !0,
    annexB: !0
  };
}
function IRt(e) {
  const t = _Rt();
  if (e == null)
    return t;
  if (e.annexB != null && e.annexB !== !1)
    throw new Error("The `annexB` option can only be set to `false`.");
  for (const r of Object.keys(t))
    e[r] != null && (t[r] = e[r]);
  if (t.startLine === 1)
    e.startIndex == null && t.startColumn > 0 ? t.startIndex = t.startColumn : e.startColumn == null && t.startIndex > 0 && (t.startColumn = t.startIndex);
  else if ((e.startColumn == null || e.startIndex == null) && e.startIndex != null)
    throw new Error("With a `startLine > 1` you must also specify `startIndex` and `startColumn`.");
  return t;
}
class kRt extends yRt {
  checkProto(t, r, i, n) {
    if (t.type === "SpreadElement" || this.isObjectMethod(t) || t.computed || t.shorthand)
      return;
    const s = t.key;
    if ((s.type === "Identifier" ? s.name : s.value) === "__proto__") {
      if (r) {
        this.raise(et.RecordNoProto, s);
        return;
      }
      i.used && (n ? n.doubleProtoLoc === null && (n.doubleProtoLoc = s.loc.start) : this.raise(et.DuplicateProto, s)), i.used = !0;
    }
  }
  shouldExitDescending(t, r) {
    return t.type === "ArrowFunctionExpression" && this.offsetToSourcePos(t.start) === r;
  }
  getExpression() {
    this.enterInitialScopes(), this.nextToken();
    const t = this.parseExpression();
    return this.match(140) || this.unexpected(), this.finalizeRemainingComments(), t.comments = this.comments, t.errors = this.state.errors, this.options.tokens && (t.tokens = this.tokens), t;
  }
  parseExpression(t, r) {
    return t ? this.disallowInAnd(() => this.parseExpressionBase(r)) : this.allowInAnd(() => this.parseExpressionBase(r));
  }
  parseExpressionBase(t) {
    const r = this.state.startLoc, i = this.parseMaybeAssign(t);
    if (this.match(12)) {
      const n = this.startNodeAt(r);
      for (n.expressions = [i]; this.eat(12); )
        n.expressions.push(this.parseMaybeAssign(t));
      return this.toReferencedList(n.expressions), this.finishNode(n, "SequenceExpression");
    }
    return i;
  }
  parseMaybeAssignDisallowIn(t, r) {
    return this.disallowInAnd(() => this.parseMaybeAssign(t, r));
  }
  parseMaybeAssignAllowIn(t, r) {
    return this.allowInAnd(() => this.parseMaybeAssign(t, r));
  }
  setOptionalParametersError(t, r) {
    var i;
    t.optionalParametersLoc = (i = r == null ? void 0 : r.loc) != null ? i : this.state.startLoc;
  }
  parseMaybeAssign(t, r) {
    const i = this.state.startLoc;
    if (this.isContextual(108) && this.prodParam.hasYield) {
      let o = this.parseYield();
      return r && (o = r.call(this, o, i)), o;
    }
    let n;
    t ? n = !1 : (t = new jP(), n = !0);
    const {
      type: s
    } = this.state;
    (s === 10 || Ei(s)) && (this.state.potentialArrowAt = this.state.start);
    let a = this.parseMaybeConditional(t);
    if (r && (a = r.call(this, a, i)), vMt(this.state.type)) {
      const o = this.startNodeAt(i), l = this.state.value;
      if (o.operator = l, this.match(29)) {
        this.toAssignable(a, !0), o.left = a;
        const u = i.index;
        t.doubleProtoLoc != null && t.doubleProtoLoc.index >= u && (t.doubleProtoLoc = null), t.shorthandAssignLoc != null && t.shorthandAssignLoc.index >= u && (t.shorthandAssignLoc = null), t.privateKeyLoc != null && t.privateKeyLoc.index >= u && (this.checkDestructuringPrivate(t), t.privateKeyLoc = null);
      } else
        o.left = a;
      return this.next(), o.right = this.parseMaybeAssign(), this.checkLVal(a, this.finishNode(o, "AssignmentExpression")), o;
    } else
      n && this.checkExpressionErrors(t, !0);
    return a;
  }
  parseMaybeConditional(t) {
    const r = this.state.startLoc, i = this.state.potentialArrowAt, n = this.parseExprOps(t);
    return this.shouldExitDescending(n, i) ? n : this.parseConditional(n, r, t);
  }
  parseConditional(t, r, i) {
    if (this.eat(17)) {
      const n = this.startNodeAt(r);
      return n.test = t, n.consequent = this.parseMaybeAssignAllowIn(), this.expect(14), n.alternate = this.parseMaybeAssign(), this.finishNode(n, "ConditionalExpression");
    }
    return t;
  }
  parseMaybeUnaryOrPrivate(t) {
    return this.match(139) ? this.parsePrivateName() : this.parseMaybeUnary(t);
  }
  parseExprOps(t) {
    const r = this.state.startLoc, i = this.state.potentialArrowAt, n = this.parseMaybeUnaryOrPrivate(t);
    return this.shouldExitDescending(n, i) ? n : this.parseExprOp(n, r, -1);
  }
  parseExprOp(t, r, i) {
    if (this.isPrivateName(t)) {
      const s = this.getPrivateNameSV(t);
      (i >= BP(58) || !this.prodParam.hasIn || !this.match(58)) && this.raise(et.PrivateInExpectedIn, t, {
        identifierName: s
      }), this.classScope.usePrivateName(s, t.loc.start);
    }
    const n = this.state.type;
    if (SMt(n) && (this.prodParam.hasIn || !this.match(58))) {
      let s = BP(n);
      if (s > i) {
        if (n === 39) {
          if (this.expectPlugin("pipelineOperator"), this.state.inFSharpPipelineDirectBody)
            return t;
          this.checkPipelineAtInfixOperator(t, r);
        }
        const a = this.startNodeAt(r);
        a.left = t, a.operator = this.state.value;
        const o = n === 41 || n === 42, l = n === 40;
        if (l && (s = BP(42)), this.next(), n === 39 && this.hasPlugin(["pipelineOperator", {
          proposal: "minimal"
        }]) && this.state.type === 96 && this.prodParam.hasAwait)
          throw this.raise(et.UnexpectedAwaitAfterPipelineBody, this.state.startLoc);
        a.right = this.parseExprOpRightExpr(n, s);
        const u = this.finishNode(a, o || l ? "LogicalExpression" : "BinaryExpression"), c = this.state.type;
        if (l && (c === 41 || c === 42) || o && c === 40)
          throw this.raise(et.MixingCoalesceWithLogical, this.state.startLoc);
        return this.parseExprOp(u, r, i);
      }
    }
    return t;
  }
  parseExprOpRightExpr(t, r) {
    const i = this.state.startLoc;
    switch (t) {
      case 39:
        switch (this.getPluginOption("pipelineOperator", "proposal")) {
          case "hack":
            return this.withTopicBindingContext(() => this.parseHackPipeBody());
          case "smart":
            return this.withTopicBindingContext(() => {
              if (this.prodParam.hasYield && this.isContextual(108))
                throw this.raise(et.PipeBodyIsTighter, this.state.startLoc);
              return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(t, r), i);
            });
          case "fsharp":
            return this.withSoloAwaitPermittingContext(() => this.parseFSharpPipelineBody(r));
        }
      default:
        return this.parseExprOpBaseRightExpr(t, r);
    }
  }
  parseExprOpBaseRightExpr(t, r) {
    const i = this.state.startLoc;
    return this.parseExprOp(this.parseMaybeUnaryOrPrivate(), i, AMt(t) ? r - 1 : r);
  }
  parseHackPipeBody() {
    var t;
    const {
      startLoc: r
    } = this.state, i = this.parseMaybeAssign();
    return uMt.has(i.type) && !((t = i.extra) != null && t.parenthesized) && this.raise(et.PipeUnparenthesizedBody, r, {
      type: i.type
    }), this.topicReferenceWasUsedInCurrentContext() || this.raise(et.PipeTopicUnused, r), i;
  }
  checkExponentialAfterUnary(t) {
    this.match(57) && this.raise(et.UnexpectedTokenUnaryExponentiation, t.argument);
  }
  parseMaybeUnary(t, r) {
    const i = this.state.startLoc, n = this.isContextual(96);
    if (n && this.recordAwaitIfAllowed()) {
      this.next();
      const l = this.parseAwait(i);
      return r || this.checkExponentialAfterUnary(l), l;
    }
    const s = this.match(34), a = this.startNode();
    if (EMt(this.state.type)) {
      a.operator = this.state.value, a.prefix = !0, this.match(72) && this.expectPlugin("throwExpressions");
      const l = this.match(89);
      if (this.next(), a.argument = this.parseMaybeUnary(null, !0), this.checkExpressionErrors(t, !0), this.state.strict && l) {
        const u = a.argument;
        u.type === "Identifier" ? this.raise(et.StrictDelete, a) : this.hasPropertyAsPrivateName(u) && this.raise(et.DeletePrivateField, a);
      }
      if (!s)
        return r || this.checkExponentialAfterUnary(a), this.finishNode(a, "UnaryExpression");
    }
    const o = this.parseUpdate(a, s, t);
    if (n) {
      const {
        type: l
      } = this.state;
      if ((this.hasPlugin("v8intrinsic") ? g8(l) : g8(l) && !this.match(54)) && !this.isAmbiguousAwait())
        return this.raiseOverwrite(et.AwaitNotInAsyncContext, i), this.parseAwait(i);
    }
    return o;
  }
  parseUpdate(t, r, i) {
    if (r) {
      const a = t;
      return this.checkLVal(a.argument, this.finishNode(a, "UpdateExpression")), t;
    }
    const n = this.state.startLoc;
    let s = this.parseExprSubscripts(i);
    if (this.checkExpressionErrors(i, !1))
      return s;
    for (; xMt(this.state.type) && !this.canInsertSemicolon(); ) {
      const a = this.startNodeAt(n);
      a.operator = this.state.value, a.prefix = !1, a.argument = s, this.next(), this.checkLVal(s, s = this.finishNode(a, "UpdateExpression"));
    }
    return s;
  }
  parseExprSubscripts(t) {
    const r = this.state.startLoc, i = this.state.potentialArrowAt, n = this.parseExprAtom(t);
    return this.shouldExitDescending(n, i) ? n : this.parseSubscripts(n, r);
  }
  parseSubscripts(t, r, i) {
    const n = {
      optionalChainMember: !1,
      maybeAsyncArrow: this.atPossibleAsyncArrow(t),
      stop: !1
    };
    do
      t = this.parseSubscript(t, r, i, n), n.maybeAsyncArrow = !1;
    while (!n.stop);
    return t;
  }
  parseSubscript(t, r, i, n) {
    const {
      type: s
    } = this.state;
    if (!i && s === 15)
      return this.parseBind(t, r, i, n);
    if (Jw(s))
      return this.parseTaggedTemplateExpression(t, r, n);
    let a = !1;
    if (s === 18) {
      if (i && (this.raise(et.OptionalChainingNoNew, this.state.startLoc), this.lookaheadCharCode() === 40))
        return n.stop = !0, t;
      n.optionalChainMember = a = !0, this.next();
    }
    if (!i && this.match(10))
      return this.parseCoverCallAndAsyncArrowHead(t, r, n, a);
    {
      const o = this.eat(0);
      return o || a || this.eat(16) ? this.parseMember(t, r, n, o, a) : (n.stop = !0, t);
    }
  }
  parseMember(t, r, i, n, s) {
    const a = this.startNodeAt(r);
    return a.object = t, a.computed = n, n ? (a.property = this.parseExpression(), this.expect(3)) : this.match(139) ? (t.type === "Super" && this.raise(et.SuperPrivateField, r), this.classScope.usePrivateName(this.state.value, this.state.startLoc), a.property = this.parsePrivateName()) : a.property = this.parseIdentifier(!0), i.optionalChainMember ? (a.optional = s, this.finishNode(a, "OptionalMemberExpression")) : this.finishNode(a, "MemberExpression");
  }
  parseBind(t, r, i, n) {
    const s = this.startNodeAt(r);
    return s.object = t, this.next(), s.callee = this.parseNoCallExpr(), n.stop = !0, this.parseSubscripts(this.finishNode(s, "BindExpression"), r, i);
  }
  parseCoverCallAndAsyncArrowHead(t, r, i, n) {
    const s = this.state.maybeInArrowParameters;
    let a = null;
    this.state.maybeInArrowParameters = !0, this.next();
    const o = this.startNodeAt(r);
    o.callee = t;
    const {
      maybeAsyncArrow: l,
      optionalChainMember: u
    } = i;
    l && (this.expressionScope.enter(eRt()), a = new jP()), u && (o.optional = n), n ? o.arguments = this.parseCallExpressionArguments(11) : o.arguments = this.parseCallExpressionArguments(11, t.type !== "Super", o, a);
    let c = this.finishCallExpression(o, u);
    return l && this.shouldParseAsyncArrow() && !n ? (i.stop = !0, this.checkDestructuringPrivate(a), this.expressionScope.validateAsPattern(), this.expressionScope.exit(), c = this.parseAsyncArrowFromCallExpression(this.startNodeAt(r), c)) : (l && (this.checkExpressionErrors(a, !0), this.expressionScope.exit()), this.toReferencedArguments(c)), this.state.maybeInArrowParameters = s, c;
  }
  toReferencedArguments(t, r) {
    this.toReferencedListDeep(t.arguments, r);
  }
  parseTaggedTemplateExpression(t, r, i) {
    const n = this.startNodeAt(r);
    return n.tag = t, n.quasi = this.parseTemplate(!0), i.optionalChainMember && this.raise(et.OptionalChainingNoTemplate, r), this.finishNode(n, "TaggedTemplateExpression");
  }
  atPossibleAsyncArrow(t) {
    return t.type === "Identifier" && t.name === "async" && this.state.lastTokEndLoc.index === t.end && !this.canInsertSemicolon() && t.end - t.start === 5 && this.offsetToSourcePos(t.start) === this.state.potentialArrowAt;
  }
  finishCallExpression(t, r) {
    if (t.callee.type === "Import")
      if (t.arguments.length === 0 || t.arguments.length > 2)
        this.raise(et.ImportCallArity, t);
      else
        for (const i of t.arguments)
          i.type === "SpreadElement" && this.raise(et.ImportCallSpreadArgument, i);
    return this.finishNode(t, r ? "OptionalCallExpression" : "CallExpression");
  }
  parseCallExpressionArguments(t, r, i, n) {
    const s = [];
    let a = !0;
    const o = this.state.inFSharpPipelineDirectBody;
    for (this.state.inFSharpPipelineDirectBody = !1; !this.eat(t); ) {
      if (a)
        a = !1;
      else if (this.expect(12), this.match(t)) {
        i && this.addTrailingCommaExtraToNode(i), this.next();
        break;
      }
      s.push(this.parseExprListItem(!1, n, r));
    }
    return this.state.inFSharpPipelineDirectBody = o, s;
  }
  shouldParseAsyncArrow() {
    return this.match(19) && !this.canInsertSemicolon();
  }
  parseAsyncArrowFromCallExpression(t, r) {
    var i;
    return this.resetPreviousNodeTrailingComments(r), this.expect(19), this.parseArrowExpression(t, r.arguments, !0, (i = r.extra) == null ? void 0 : i.trailingCommaLoc), r.innerComments && eT(t, r.innerComments), r.callee.trailingComments && eT(t, r.callee.trailingComments), t;
  }
  parseNoCallExpr() {
    const t = this.state.startLoc;
    return this.parseSubscripts(this.parseExprAtom(), t, !0);
  }
  parseExprAtom(t) {
    let r, i = null;
    const {
      type: n
    } = this.state;
    switch (n) {
      case 79:
        return this.parseSuper();
      case 83:
        return r = this.startNode(), this.next(), this.match(16) ? this.parseImportMetaProperty(r) : this.match(10) ? this.options.createImportExpressions ? this.parseImportCall(r) : this.finishNode(r, "Import") : (this.raise(et.UnsupportedImport, this.state.lastTokStartLoc), this.finishNode(r, "Import"));
      case 78:
        return r = this.startNode(), this.next(), this.finishNode(r, "ThisExpression");
      case 90:
        return this.parseDo(this.startNode(), !1);
      case 56:
      case 31:
        return this.readRegexp(), this.parseRegExpLiteral(this.state.value);
      case 135:
        return this.parseNumericLiteral(this.state.value);
      case 136:
        return this.parseBigIntLiteral(this.state.value);
      case 134:
        return this.parseStringLiteral(this.state.value);
      case 84:
        return this.parseNullLiteral();
      case 85:
        return this.parseBooleanLiteral(!0);
      case 86:
        return this.parseBooleanLiteral(!1);
      case 10: {
        const s = this.state.potentialArrowAt === this.state.start;
        return this.parseParenAndDistinguishExpression(s);
      }
      case 2:
      case 1:
        return this.parseArrayLike(this.state.type === 2 ? 4 : 3, !1, !0);
      case 0:
        return this.parseArrayLike(3, !0, !1, t);
      case 6:
      case 7:
        return this.parseObjectLike(this.state.type === 6 ? 9 : 8, !1, !0);
      case 5:
        return this.parseObjectLike(8, !1, !1, t);
      case 68:
        return this.parseFunctionOrFunctionSent();
      case 26:
        i = this.parseDecorators();
      case 80:
        return this.parseClass(this.maybeTakeDecorators(i, this.startNode()), !1);
      case 77:
        return this.parseNewOrNewTarget();
      case 25:
      case 24:
        return this.parseTemplate(!1);
      case 15: {
        r = this.startNode(), this.next(), r.object = null;
        const s = r.callee = this.parseNoCallExpr();
        if (s.type === "MemberExpression")
          return this.finishNode(r, "BindExpression");
        throw this.raise(et.UnsupportedBind, s);
      }
      case 139:
        return this.raise(et.PrivateInExpectedIn, this.state.startLoc, {
          identifierName: this.state.value
        }), this.parsePrivateName();
      case 33:
        return this.parseTopicReferenceThenEqualsSign(54, "%");
      case 32:
        return this.parseTopicReferenceThenEqualsSign(44, "^");
      case 37:
      case 38:
        return this.parseTopicReference("hack");
      case 44:
      case 54:
      case 27: {
        const s = this.getPluginOption("pipelineOperator", "proposal");
        if (s)
          return this.parseTopicReference(s);
        this.unexpected();
        break;
      }
      case 47: {
        const s = this.input.codePointAt(this.nextTokenStart());
        of(s) || s === 62 ? this.expectOnePlugin(["jsx", "flow", "typescript"]) : this.unexpected();
        break;
      }
      default:
        if (n === 137)
          return this.parseDecimalLiteral(this.state.value);
        if (Ei(n)) {
          if (this.isContextual(127) && this.lookaheadInLineCharCode() === 123)
            return this.parseModuleExpression();
          const s = this.state.potentialArrowAt === this.state.start, a = this.state.containsEsc, o = this.parseIdentifier();
          if (!a && o.name === "async" && !this.canInsertSemicolon()) {
            const {
              type: l
            } = this.state;
            if (l === 68)
              return this.resetPreviousNodeTrailingComments(o), this.next(), this.parseAsyncFunctionExpression(this.startNodeAtNode(o));
            if (Ei(l))
              return this.lookaheadCharCode() === 61 ? this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(o)) : o;
            if (l === 90)
              return this.resetPreviousNodeTrailingComments(o), this.parseDo(this.startNodeAtNode(o), !0);
          }
          return s && this.match(19) && !this.canInsertSemicolon() ? (this.next(), this.parseArrowExpression(this.startNodeAtNode(o), [o], !1)) : o;
        } else
          this.unexpected();
    }
  }
  parseTopicReferenceThenEqualsSign(t, r) {
    const i = this.getPluginOption("pipelineOperator", "proposal");
    if (i)
      return this.state.type = t, this.state.value = r, this.state.pos--, this.state.end--, this.state.endLoc = ca(this.state.endLoc, -1), this.parseTopicReference(i);
    this.unexpected();
  }
  parseTopicReference(t) {
    const r = this.startNode(), i = this.state.startLoc, n = this.state.type;
    return this.next(), this.finishTopicReference(r, i, t, n);
  }
  finishTopicReference(t, r, i, n) {
    if (this.testTopicReferenceConfiguration(i, r, n)) {
      const s = i === "smart" ? "PipelinePrimaryTopicReference" : "TopicReference";
      return this.topicReferenceIsAllowedInCurrentContext() || this.raise(i === "smart" ? et.PrimaryTopicNotAllowed : et.PipeTopicUnbound, r), this.registerTopicReference(), this.finishNode(t, s);
    } else
      throw this.raise(et.PipeTopicUnconfiguredToken, r, {
        token: Lh(n)
      });
  }
  testTopicReferenceConfiguration(t, r, i) {
    switch (t) {
      case "hack":
        return this.hasPlugin(["pipelineOperator", {
          topicToken: Lh(i)
        }]);
      case "smart":
        return i === 27;
      default:
        throw this.raise(et.PipeTopicRequiresHackPipes, r);
    }
  }
  parseAsyncArrowUnaryFunction(t) {
    this.prodParam.enter(FP(!0, this.prodParam.hasYield));
    const r = [this.parseIdentifier()];
    return this.prodParam.exit(), this.hasPrecedingLineBreak() && this.raise(et.LineTerminatorBeforeArrow, this.state.curPosition()), this.expect(19), this.parseArrowExpression(t, r, !0);
  }
  parseDo(t, r) {
    this.expectPlugin("doExpressions"), r && this.expectPlugin("asyncDoExpressions"), t.async = r, this.next();
    const i = this.state.labels;
    return this.state.labels = [], r ? (this.prodParam.enter(2), t.body = this.parseBlock(), this.prodParam.exit()) : t.body = this.parseBlock(), this.state.labels = i, this.finishNode(t, "DoExpression");
  }
  parseSuper() {
    const t = this.startNode();
    return this.next(), this.match(10) && !this.scope.allowDirectSuper && !this.options.allowSuperOutsideMethod ? this.raise(et.SuperNotAllowed, t) : !this.scope.allowSuper && !this.options.allowSuperOutsideMethod && this.raise(et.UnexpectedSuper, t), !this.match(10) && !this.match(0) && !this.match(16) && this.raise(et.UnsupportedSuper, t), this.finishNode(t, "Super");
  }
  parsePrivateName() {
    const t = this.startNode(), r = this.startNodeAt(ca(this.state.startLoc, 1)), i = this.state.value;
    return this.next(), t.id = this.createIdentifier(r, i), this.finishNode(t, "PrivateName");
  }
  parseFunctionOrFunctionSent() {
    const t = this.startNode();
    if (this.next(), this.prodParam.hasYield && this.match(16)) {
      const r = this.createIdentifier(this.startNodeAtNode(t), "function");
      return this.next(), this.match(103) ? this.expectPlugin("functionSent") : this.hasPlugin("functionSent") || this.unexpected(), this.parseMetaProperty(t, r, "sent");
    }
    return this.parseFunction(t);
  }
  parseMetaProperty(t, r, i) {
    t.meta = r;
    const n = this.state.containsEsc;
    return t.property = this.parseIdentifier(!0), (t.property.name !== i || n) && this.raise(et.UnsupportedMetaProperty, t.property, {
      target: r.name,
      onlyValidPropertyName: i
    }), this.finishNode(t, "MetaProperty");
  }
  parseImportMetaProperty(t) {
    const r = this.createIdentifier(this.startNodeAtNode(t), "import");
    if (this.next(), this.isContextual(101))
      this.inModule || this.raise(et.ImportMetaOutsideModule, r), this.sawUnambiguousESM = !0;
    else if (this.isContextual(105) || this.isContextual(97)) {
      const i = this.isContextual(105);
      if (i || this.unexpected(), this.expectPlugin(i ? "sourcePhaseImports" : "deferredImportEvaluation"), !this.options.createImportExpressions)
        throw this.raise(et.DynamicImportPhaseRequiresImportExpressions, this.state.startLoc, {
          phase: this.state.value
        });
      return this.next(), t.phase = i ? "source" : "defer", this.parseImportCall(t);
    }
    return this.parseMetaProperty(t, r, "meta");
  }
  parseLiteralAtNode(t, r, i) {
    return this.addExtra(i, "rawValue", t), this.addExtra(i, "raw", this.input.slice(this.offsetToSourcePos(i.start), this.state.end)), i.value = t, this.next(), this.finishNode(i, r);
  }
  parseLiteral(t, r) {
    const i = this.startNode();
    return this.parseLiteralAtNode(t, r, i);
  }
  parseStringLiteral(t) {
    return this.parseLiteral(t, "StringLiteral");
  }
  parseNumericLiteral(t) {
    return this.parseLiteral(t, "NumericLiteral");
  }
  parseBigIntLiteral(t) {
    return this.parseLiteral(t, "BigIntLiteral");
  }
  parseDecimalLiteral(t) {
    return this.parseLiteral(t, "DecimalLiteral");
  }
  parseRegExpLiteral(t) {
    const r = this.startNode();
    return this.addExtra(r, "raw", this.input.slice(this.offsetToSourcePos(r.start), this.state.end)), r.pattern = t.pattern, r.flags = t.flags, this.next(), this.finishNode(r, "RegExpLiteral");
  }
  parseBooleanLiteral(t) {
    const r = this.startNode();
    return r.value = t, this.next(), this.finishNode(r, "BooleanLiteral");
  }
  parseNullLiteral() {
    const t = this.startNode();
    return this.next(), this.finishNode(t, "NullLiteral");
  }
  parseParenAndDistinguishExpression(t) {
    const r = this.state.startLoc;
    let i;
    this.next(), this.expressionScope.enter(ZMt());
    const n = this.state.maybeInArrowParameters, s = this.state.inFSharpPipelineDirectBody;
    this.state.maybeInArrowParameters = !0, this.state.inFSharpPipelineDirectBody = !1;
    const a = this.state.startLoc, o = [], l = new jP();
    let u = !0, c, f;
    for (; !this.match(11); ) {
      if (u)
        u = !1;
      else if (this.expect(12, l.optionalParametersLoc === null ? null : l.optionalParametersLoc), this.match(11)) {
        f = this.state.startLoc;
        break;
      }
      if (this.match(21)) {
        const g = this.state.startLoc;
        if (c = this.state.startLoc, o.push(this.parseParenItem(this.parseRestBinding(), g)), !this.checkCommaAfterRest(41))
          break;
      } else
        o.push(this.parseMaybeAssignAllowIn(l, this.parseParenItem));
    }
    const h = this.state.lastTokEndLoc;
    this.expect(11), this.state.maybeInArrowParameters = n, this.state.inFSharpPipelineDirectBody = s;
    let m = this.startNodeAt(r);
    return t && this.shouldParseArrow(o) && (m = this.parseArrow(m)) ? (this.checkDestructuringPrivate(l), this.expressionScope.validateAsPattern(), this.expressionScope.exit(), this.parseArrowExpression(m, o, !1), m) : (this.expressionScope.exit(), o.length || this.unexpected(this.state.lastTokStartLoc), f && this.unexpected(f), c && this.unexpected(c), this.checkExpressionErrors(l, !0), this.toReferencedListDeep(o, !0), o.length > 1 ? (i = this.startNodeAt(a), i.expressions = o, this.finishNode(i, "SequenceExpression"), this.resetEndLocation(i, h)) : i = o[0], this.wrapParenthesis(r, i));
  }
  wrapParenthesis(t, r) {
    if (!this.options.createParenthesizedExpressions)
      return this.addExtra(r, "parenthesized", !0), this.addExtra(r, "parenStart", t.index), this.takeSurroundingComments(r, t.index, this.state.lastTokEndLoc.index), r;
    const i = this.startNodeAt(t);
    return i.expression = r, this.finishNode(i, "ParenthesizedExpression");
  }
  shouldParseArrow(t) {
    return !this.canInsertSemicolon();
  }
  parseArrow(t) {
    if (this.eat(19))
      return t;
  }
  parseParenItem(t, r) {
    return t;
  }
  parseNewOrNewTarget() {
    const t = this.startNode();
    if (this.next(), this.match(16)) {
      const r = this.createIdentifier(this.startNodeAtNode(t), "new");
      this.next();
      const i = this.parseMetaProperty(t, r, "target");
      return !this.scope.inNonArrowFunction && !this.scope.inClass && !this.options.allowNewTargetOutsideFunction && this.raise(et.UnexpectedNewTarget, i), i;
    }
    return this.parseNew(t);
  }
  parseNew(t) {
    if (this.parseNewCallee(t), this.eat(10)) {
      const r = this.parseExprList(11);
      this.toReferencedList(r), t.arguments = r;
    } else
      t.arguments = [];
    return this.finishNode(t, "NewExpression");
  }
  parseNewCallee(t) {
    const r = this.match(83), i = this.parseNoCallExpr();
    t.callee = i, r && (i.type === "Import" || i.type === "ImportExpression") && this.raise(et.ImportCallNotNewExpression, i);
  }
  parseTemplateElement(t) {
    const {
      start: r,
      startLoc: i,
      end: n,
      value: s
    } = this.state, a = r + 1, o = this.startNodeAt(ca(i, 1));
    s === null && (t || this.raise(et.InvalidEscapeSequenceTemplate, ca(this.state.firstInvalidTemplateEscapePos, 1)));
    const l = this.match(24), u = l ? -1 : -2, c = n + u;
    o.value = {
      raw: this.input.slice(a, c).replace(/\r\n?/g, "\n"),
      cooked: s === null ? null : s.slice(1, u)
    }, o.tail = l, this.next();
    const f = this.finishNode(o, "TemplateElement");
    return this.resetEndLocation(f, ca(this.state.lastTokEndLoc, u)), f;
  }
  parseTemplate(t) {
    const r = this.startNode();
    let i = this.parseTemplateElement(t);
    const n = [i], s = [];
    for (; !i.tail; )
      s.push(this.parseTemplateSubstitution()), this.readTemplateContinuation(), n.push(i = this.parseTemplateElement(t));
    return r.expressions = s, r.quasis = n, this.finishNode(r, "TemplateLiteral");
  }
  parseTemplateSubstitution() {
    return this.parseExpression();
  }
  parseObjectLike(t, r, i, n) {
    i && this.expectPlugin("recordAndTuple");
    const s = this.state.inFSharpPipelineDirectBody;
    this.state.inFSharpPipelineDirectBody = !1;
    const a = /* @__PURE__ */ Object.create(null);
    let o = !0;
    const l = this.startNode();
    for (l.properties = [], this.next(); !this.match(t); ) {
      if (o)
        o = !1;
      else if (this.expect(12), this.match(t)) {
        this.addTrailingCommaExtraToNode(l);
        break;
      }
      let c;
      r ? c = this.parseBindingProperty() : (c = this.parsePropertyDefinition(n), this.checkProto(c, i, a, n)), i && !this.isObjectProperty(c) && c.type !== "SpreadElement" && this.raise(et.InvalidRecordProperty, c), c.shorthand && this.addExtra(c, "shorthand", !0), l.properties.push(c);
    }
    this.next(), this.state.inFSharpPipelineDirectBody = s;
    let u = "ObjectExpression";
    return r ? u = "ObjectPattern" : i && (u = "RecordExpression"), this.finishNode(l, u);
  }
  addTrailingCommaExtraToNode(t) {
    this.addExtra(t, "trailingComma", this.state.lastTokStartLoc.index), this.addExtra(t, "trailingCommaLoc", this.state.lastTokStartLoc, !1);
  }
  maybeAsyncOrAccessorProp(t) {
    return !t.computed && t.key.type === "Identifier" && (this.isLiteralPropertyName() || this.match(0) || this.match(55));
  }
  parsePropertyDefinition(t) {
    let r = [];
    if (this.match(26))
      for (this.hasPlugin("decorators") && this.raise(et.UnsupportedPropertyDecorator, this.state.startLoc); this.match(26); )
        r.push(this.parseDecorator());
    const i = this.startNode();
    let n = !1, s = !1, a;
    if (this.match(21))
      return r.length && this.unexpected(), this.parseSpread();
    r.length && (i.decorators = r, r = []), i.method = !1, t && (a = this.state.startLoc);
    let o = this.eat(55);
    this.parsePropertyNamePrefixOperator(i);
    const l = this.state.containsEsc;
    if (this.parsePropertyName(i, t), !o && !l && this.maybeAsyncOrAccessorProp(i)) {
      const {
        key: u
      } = i, c = u.name;
      c === "async" && !this.hasPrecedingLineBreak() && (n = !0, this.resetPreviousNodeTrailingComments(u), o = this.eat(55), this.parsePropertyName(i)), (c === "get" || c === "set") && (s = !0, this.resetPreviousNodeTrailingComments(u), i.kind = c, this.match(55) && (o = !0, this.raise(et.AccessorIsGenerator, this.state.curPosition(), {
        kind: c
      }), this.next()), this.parsePropertyName(i));
    }
    return this.parseObjPropValue(i, a, o, n, !1, s, t);
  }
  getGetterSetterExpectedParamCount(t) {
    return t.kind === "get" ? 0 : 1;
  }
  getObjectOrClassMethodParams(t) {
    return t.params;
  }
  checkGetterSetterParams(t) {
    var r;
    const i = this.getGetterSetterExpectedParamCount(t), n = this.getObjectOrClassMethodParams(t);
    n.length !== i && this.raise(t.kind === "get" ? et.BadGetterArity : et.BadSetterArity, t), t.kind === "set" && ((r = n[n.length - 1]) == null ? void 0 : r.type) === "RestElement" && this.raise(et.BadSetterRestParameter, t);
  }
  parseObjectMethod(t, r, i, n, s) {
    if (s) {
      const a = this.parseMethod(t, r, !1, !1, !1, "ObjectMethod");
      return this.checkGetterSetterParams(a), a;
    }
    if (i || r || this.match(10))
      return n && this.unexpected(), t.kind = "method", t.method = !0, this.parseMethod(t, r, i, !1, !1, "ObjectMethod");
  }
  parseObjectProperty(t, r, i, n) {
    if (t.shorthand = !1, this.eat(14))
      return t.value = i ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowIn(n), this.finishNode(t, "ObjectProperty");
    if (!t.computed && t.key.type === "Identifier") {
      if (this.checkReservedWord(t.key.name, t.key.loc.start, !0, !1), i)
        t.value = this.parseMaybeDefault(r, Sf(t.key));
      else if (this.match(29)) {
        const s = this.state.startLoc;
        n != null ? n.shorthandAssignLoc === null && (n.shorthandAssignLoc = s) : this.raise(et.InvalidCoverInitializedName, s), t.value = this.parseMaybeDefault(r, Sf(t.key));
      } else
        t.value = Sf(t.key);
      return t.shorthand = !0, this.finishNode(t, "ObjectProperty");
    }
  }
  parseObjPropValue(t, r, i, n, s, a, o) {
    const l = this.parseObjectMethod(t, i, n, s, a) || this.parseObjectProperty(t, r, s, o);
    return l || this.unexpected(), l;
  }
  parsePropertyName(t, r) {
    if (this.eat(0))
      t.computed = !0, t.key = this.parseMaybeAssignAllowIn(), this.expect(3);
    else {
      const {
        type: i,
        value: n
      } = this.state;
      let s;
      if (Nc(i))
        s = this.parseIdentifier(!0);
      else
        switch (i) {
          case 135:
            s = this.parseNumericLiteral(n);
            break;
          case 134:
            s = this.parseStringLiteral(n);
            break;
          case 136:
            s = this.parseBigIntLiteral(n);
            break;
          case 139: {
            const a = this.state.startLoc;
            r != null ? r.privateKeyLoc === null && (r.privateKeyLoc = a) : this.raise(et.UnexpectedPrivateField, a), s = this.parsePrivateName();
            break;
          }
          default:
            if (i === 137) {
              s = this.parseDecimalLiteral(n);
              break;
            }
            this.unexpected();
        }
      t.key = s, i !== 139 && (t.computed = !1);
    }
  }
  initFunction(t, r) {
    t.id = null, t.generator = !1, t.async = r;
  }
  parseMethod(t, r, i, n, s, a, o = !1) {
    this.initFunction(t, i), t.generator = r, this.scope.enter(18 | (o ? 64 : 0) | (s ? 32 : 0)), this.prodParam.enter(FP(i, t.generator)), this.parseFunctionParams(t, n);
    const l = this.parseFunctionBodyAndFinish(t, a, !0);
    return this.prodParam.exit(), this.scope.exit(), l;
  }
  parseArrayLike(t, r, i, n) {
    i && this.expectPlugin("recordAndTuple");
    const s = this.state.inFSharpPipelineDirectBody;
    this.state.inFSharpPipelineDirectBody = !1;
    const a = this.startNode();
    return this.next(), a.elements = this.parseExprList(t, !i, n, a), this.state.inFSharpPipelineDirectBody = s, this.finishNode(a, i ? "TupleExpression" : "ArrayExpression");
  }
  parseArrowExpression(t, r, i, n) {
    this.scope.enter(6);
    let s = FP(i, !1);
    !this.match(5) && this.prodParam.hasIn && (s |= 8), this.prodParam.enter(s), this.initFunction(t, i);
    const a = this.state.maybeInArrowParameters;
    return r && (this.state.maybeInArrowParameters = !0, this.setArrowFunctionParameters(t, r, n)), this.state.maybeInArrowParameters = !1, this.parseFunctionBody(t, !0), this.prodParam.exit(), this.scope.exit(), this.state.maybeInArrowParameters = a, this.finishNode(t, "ArrowFunctionExpression");
  }
  setArrowFunctionParameters(t, r, i) {
    this.toAssignableList(r, i, !1), t.params = r;
  }
  parseFunctionBodyAndFinish(t, r, i = !1) {
    return this.parseFunctionBody(t, !1, i), this.finishNode(t, r);
  }
  parseFunctionBody(t, r, i = !1) {
    const n = r && !this.match(5);
    if (this.expressionScope.enter(ege()), n)
      t.body = this.parseMaybeAssign(), this.checkParams(t, !1, r, !1);
    else {
      const s = this.state.strict, a = this.state.labels;
      this.state.labels = [], this.prodParam.enter(this.prodParam.currentFlags() | 4), t.body = this.parseBlock(!0, !1, (o) => {
        const l = !this.isSimpleParamList(t.params);
        o && l && this.raise(et.IllegalLanguageModeDirective, (t.kind === "method" || t.kind === "constructor") && t.key ? t.key.loc.end : t);
        const u = !s && this.state.strict;
        this.checkParams(t, !this.state.strict && !r && !i && !l, r, u), this.state.strict && t.id && this.checkIdentifier(t.id, 65, u);
      }), this.prodParam.exit(), this.state.labels = a;
    }
    this.expressionScope.exit();
  }
  isSimpleParameter(t) {
    return t.type === "Identifier";
  }
  isSimpleParamList(t) {
    for (let r = 0, i = t.length; r < i; r++)
      if (!this.isSimpleParameter(t[r]))
        return !1;
    return !0;
  }
  checkParams(t, r, i, n = !0) {
    const s = !r && /* @__PURE__ */ new Set(), a = {
      type: "FormalParameters"
    };
    for (const o of t.params)
      this.checkLVal(o, a, 5, s, n);
  }
  parseExprList(t, r, i, n) {
    const s = [];
    let a = !0;
    for (; !this.eat(t); ) {
      if (a)
        a = !1;
      else if (this.expect(12), this.match(t)) {
        n && this.addTrailingCommaExtraToNode(n), this.next();
        break;
      }
      s.push(this.parseExprListItem(r, i));
    }
    return s;
  }
  parseExprListItem(t, r, i) {
    let n;
    if (this.match(12))
      t || this.raise(et.UnexpectedToken, this.state.curPosition(), {
        unexpected: ","
      }), n = null;
    else if (this.match(21)) {
      const s = this.state.startLoc;
      n = this.parseParenItem(this.parseSpread(r), s);
    } else if (this.match(17)) {
      this.expectPlugin("partialApplication"), i || this.raise(et.UnexpectedArgumentPlaceholder, this.state.startLoc);
      const s = this.startNode();
      this.next(), n = this.finishNode(s, "ArgumentPlaceholder");
    } else
      n = this.parseMaybeAssignAllowIn(r, this.parseParenItem);
    return n;
  }
  parseIdentifier(t) {
    const r = this.startNode(), i = this.parseIdentifierName(t);
    return this.createIdentifier(r, i);
  }
  createIdentifier(t, r) {
    return t.name = r, t.loc.identifierName = r, this.finishNode(t, "Identifier");
  }
  parseIdentifierName(t) {
    let r;
    const {
      startLoc: i,
      type: n
    } = this.state;
    Nc(n) ? r = this.state.value : this.unexpected();
    const s = gMt(n);
    return t ? s && this.replaceToken(132) : this.checkReservedWord(r, i, s, !1), this.next(), r;
  }
  checkReservedWord(t, r, i, n) {
    if (t.length > 10 || !RMt(t))
      return;
    if (i && DMt(t)) {
      this.raise(et.UnexpectedKeyword, r, {
        keyword: t
      });
      return;
    }
    if ((this.state.strict ? n ? Yye : zye : Kye)(t, this.inModule)) {
      this.raise(et.UnexpectedReservedWord, r, {
        reservedWord: t
      });
      return;
    } else if (t === "yield") {
      if (this.prodParam.hasYield) {
        this.raise(et.YieldBindingIdentifier, r);
        return;
      }
    } else if (t === "await") {
      if (this.prodParam.hasAwait) {
        this.raise(et.AwaitBindingIdentifier, r);
        return;
      }
      if (this.scope.inStaticBlock) {
        this.raise(et.AwaitBindingIdentifierInStaticBlock, r);
        return;
      }
      this.expressionScope.recordAsyncArrowParametersError(r);
    } else if (t === "arguments" && this.scope.inClassAndNotInNonArrowFunction) {
      this.raise(et.ArgumentsInClass, r);
      return;
    }
  }
  recordAwaitIfAllowed() {
    const t = this.prodParam.hasAwait || this.options.allowAwaitOutsideFunction && !this.scope.inFunction;
    return t && !this.scope.inFunction && (this.state.hasTopLevelAwait = !0), t;
  }
  parseAwait(t) {
    const r = this.startNodeAt(t);
    return this.expressionScope.recordParameterInitializerError(et.AwaitExpressionFormalParameter, r), this.eat(55) && this.raise(et.ObsoleteAwaitStar, r), !this.scope.inFunction && !this.options.allowAwaitOutsideFunction && (this.isAmbiguousAwait() ? this.ambiguousScriptDifferentAst = !0 : this.sawUnambiguousESM = !0), this.state.soloAwait || (r.argument = this.parseMaybeUnary(null, !0)), this.finishNode(r, "AwaitExpression");
  }
  isAmbiguousAwait() {
    if (this.hasPrecedingLineBreak())
      return !0;
    const {
      type: t
    } = this.state;
    return t === 53 || t === 10 || t === 0 || Jw(t) || t === 102 && !this.state.containsEsc || t === 138 || t === 56 || this.hasPlugin("v8intrinsic") && t === 54;
  }
  parseYield() {
    const t = this.startNode();
    this.expressionScope.recordParameterInitializerError(et.YieldInParameter, t), this.next();
    let r = !1, i = null;
    if (!this.hasPrecedingLineBreak())
      switch (r = this.eat(55), this.state.type) {
        case 13:
        case 140:
        case 8:
        case 11:
        case 3:
        case 9:
        case 14:
        case 12:
          if (!r)
            break;
        default:
          i = this.parseMaybeAssign();
      }
    return t.delegate = r, t.argument = i, this.finishNode(t, "YieldExpression");
  }
  parseImportCall(t) {
    if (this.next(), t.source = this.parseMaybeAssignAllowIn(), t.options = null, this.eat(12) && !this.match(11) && (t.options = this.parseMaybeAssignAllowIn(), this.eat(12) && !this.match(11))) {
      do
        this.parseMaybeAssignAllowIn();
      while (this.eat(12) && !this.match(11));
      this.raise(et.ImportCallArity, t);
    }
    return this.expect(11), this.finishNode(t, "ImportExpression");
  }
  checkPipelineAtInfixOperator(t, r) {
    this.hasPlugin(["pipelineOperator", {
      proposal: "smart"
    }]) && t.type === "SequenceExpression" && this.raise(et.PipelineHeadSequenceExpression, r);
  }
  parseSmartPipelineBodyInStyle(t, r) {
    if (this.isSimpleReference(t)) {
      const i = this.startNodeAt(r);
      return i.callee = t, this.finishNode(i, "PipelineBareFunction");
    } else {
      const i = this.startNodeAt(r);
      return this.checkSmartPipeTopicBodyEarlyErrors(r), i.expression = t, this.finishNode(i, "PipelineTopicExpression");
    }
  }
  isSimpleReference(t) {
    switch (t.type) {
      case "MemberExpression":
        return !t.computed && this.isSimpleReference(t.object);
      case "Identifier":
        return !0;
      default:
        return !1;
    }
  }
  checkSmartPipeTopicBodyEarlyErrors(t) {
    if (this.match(19))
      throw this.raise(et.PipelineBodyNoArrow, this.state.startLoc);
    this.topicReferenceWasUsedInCurrentContext() || this.raise(et.PipelineTopicUnused, t);
  }
  withTopicBindingContext(t) {
    const r = this.state.topicContext;
    this.state.topicContext = {
      maxNumOfResolvableTopics: 1,
      maxTopicIndex: null
    };
    try {
      return t();
    } finally {
      this.state.topicContext = r;
    }
  }
  withSmartMixTopicForbiddingContext(t) {
    if (this.hasPlugin(["pipelineOperator", {
      proposal: "smart"
    }])) {
      const r = this.state.topicContext;
      this.state.topicContext = {
        maxNumOfResolvableTopics: 0,
        maxTopicIndex: null
      };
      try {
        return t();
      } finally {
        this.state.topicContext = r;
      }
    } else
      return t();
  }
  withSoloAwaitPermittingContext(t) {
    const r = this.state.soloAwait;
    this.state.soloAwait = !0;
    try {
      return t();
    } finally {
      this.state.soloAwait = r;
    }
  }
  allowInAnd(t) {
    const r = this.prodParam.currentFlags();
    if (8 & ~r) {
      this.prodParam.enter(r | 8);
      try {
        return t();
      } finally {
        this.prodParam.exit();
      }
    }
    return t();
  }
  disallowInAnd(t) {
    const r = this.prodParam.currentFlags();
    if (8 & r) {
      this.prodParam.enter(r & -9);
      try {
        return t();
      } finally {
        this.prodParam.exit();
      }
    }
    return t();
  }
  registerTopicReference() {
    this.state.topicContext.maxTopicIndex = 0;
  }
  topicReferenceIsAllowedInCurrentContext() {
    return this.state.topicContext.maxNumOfResolvableTopics >= 1;
  }
  topicReferenceWasUsedInCurrentContext() {
    return this.state.topicContext.maxTopicIndex != null && this.state.topicContext.maxTopicIndex >= 0;
  }
  parseFSharpPipelineBody(t) {
    const r = this.state.startLoc;
    this.state.potentialArrowAt = this.state.start;
    const i = this.state.inFSharpPipelineDirectBody;
    this.state.inFSharpPipelineDirectBody = !0;
    const n = this.parseExprOp(this.parseMaybeUnaryOrPrivate(), r, t);
    return this.state.inFSharpPipelineDirectBody = i, n;
  }
  parseModuleExpression() {
    this.expectPlugin("moduleBlocks");
    const t = this.startNode();
    this.next(), this.match(5) || this.unexpected(null, 5);
    const r = this.startNodeAt(this.state.endLoc);
    this.next();
    const i = this.initializeScopes(!0);
    this.enterInitialScopes();
    try {
      t.body = this.parseProgram(r, 8, "module");
    } finally {
      i();
    }
    return this.finishNode(t, "ModuleExpression");
  }
  parsePropertyNamePrefixOperator(t) {
  }
}
const _3 = {
  kind: 1
}, ORt = {
  kind: 2
}, NRt = /[\uD800-\uDFFF]/u, I3 = /in(?:stanceof)?/y;
function DRt(e, t, r) {
  for (let i = 0; i < e.length; i++) {
    const n = e[i], {
      type: s
    } = n;
    if (typeof s == "number") {
      {
        if (s === 139) {
          const {
            loc: a,
            start: o,
            value: l,
            end: u
          } = n, c = o + 1, f = ca(a.start, 1);
          e.splice(i, 1, new dh({
            type: zp(27),
            value: "#",
            start: o,
            end: c,
            startLoc: a.start,
            endLoc: f
          }), new dh({
            type: zp(132),
            value: l,
            start: c,
            end: u,
            startLoc: f,
            endLoc: a.end
          })), i++;
          continue;
        }
        if (Jw(s)) {
          const {
            loc: a,
            start: o,
            value: l,
            end: u
          } = n, c = o + 1, f = ca(a.start, 1);
          let h;
          t.charCodeAt(o - r) === 96 ? h = new dh({
            type: zp(22),
            value: "`",
            start: o,
            end: c,
            startLoc: a.start,
            endLoc: f
          }) : h = new dh({
            type: zp(8),
            value: "}",
            start: o,
            end: c,
            startLoc: a.start,
            endLoc: f
          });
          let m, g, y, v;
          s === 24 ? (g = u - 1, y = ca(a.end, -1), m = l === null ? null : l.slice(1, -1), v = new dh({
            type: zp(22),
            value: "`",
            start: g,
            end: u,
            startLoc: y,
            endLoc: a.end
          })) : (g = u - 2, y = ca(a.end, -2), m = l === null ? null : l.slice(1, -2), v = new dh({
            type: zp(23),
            value: "${",
            start: g,
            end: u,
            startLoc: y,
            endLoc: a.end
          })), e.splice(i, 1, h, new dh({
            type: zp(20),
            value: m,
            start: c,
            end: g,
            startLoc: f,
            endLoc: y
          }), v), i += 2;
          continue;
        }
      }
      n.type = zp(s);
    }
  }
  return e;
}
class LRt extends kRt {
  parseTopLevel(t, r) {
    return t.program = this.parseProgram(r), t.comments = this.comments, this.options.tokens && (t.tokens = DRt(this.tokens, this.input, this.startIndex)), this.finishNode(t, "File");
  }
  parseProgram(t, r = 140, i = this.options.sourceType) {
    if (t.sourceType = i, t.interpreter = this.parseInterpreterDirective(), this.parseBlockBody(t, !0, !0, r), this.inModule) {
      if (!this.options.allowUndeclaredExports && this.scope.undefinedExports.size > 0)
        for (const [s, a] of Array.from(this.scope.undefinedExports))
          this.raise(et.ModuleExportUndefined, a, {
            localName: s
          });
      this.addExtra(t, "topLevelAwait", this.state.hasTopLevelAwait);
    }
    let n;
    return r === 140 ? n = this.finishNode(t, "Program") : n = this.finishNodeAt(t, "Program", ca(this.state.startLoc, -1)), n;
  }
  stmtToDirective(t) {
    const r = t;
    r.type = "Directive", r.value = r.expression, delete r.expression;
    const i = r.value, n = i.value, s = this.input.slice(this.offsetToSourcePos(i.start), this.offsetToSourcePos(i.end)), a = i.value = s.slice(1, -1);
    return this.addExtra(i, "raw", s), this.addExtra(i, "rawValue", a), this.addExtra(i, "expressionValue", n), i.type = "DirectiveLiteral", r;
  }
  parseInterpreterDirective() {
    if (!this.match(28))
      return null;
    const t = this.startNode();
    return t.value = this.state.value, this.next(), this.finishNode(t, "InterpreterDirective");
  }
  isLet() {
    return this.isContextual(100) ? this.hasFollowingBindingAtom() : !1;
  }
  chStartsBindingIdentifier(t, r) {
    if (of(t)) {
      if (I3.lastIndex = r, I3.test(this.input)) {
        const i = this.codePointAtPos(I3.lastIndex);
        if (!Ny(i) && i !== 92)
          return !1;
      }
      return !0;
    } else
      return t === 92;
  }
  chStartsBindingPattern(t) {
    return t === 91 || t === 123;
  }
  hasFollowingBindingAtom() {
    const t = this.nextTokenStart(), r = this.codePointAtPos(t);
    return this.chStartsBindingPattern(r) || this.chStartsBindingIdentifier(r, t);
  }
  hasInLineFollowingBindingIdentifierOrBrace() {
    const t = this.nextTokenInLineStart(), r = this.codePointAtPos(t);
    return r === 123 || this.chStartsBindingIdentifier(r, t);
  }
  startsUsingForOf() {
    const {
      type: t,
      containsEsc: r
    } = this.lookahead();
    if (t === 102 && !r)
      return !1;
    if (Ei(t) && !this.hasFollowingLineBreak())
      return this.expectPlugin("explicitResourceManagement"), !0;
  }
  startsAwaitUsing() {
    let t = this.nextTokenInLineStart();
    if (this.isUnparsedContextual(t, "using")) {
      t = this.nextTokenInLineStartSince(t + 5);
      const r = this.codePointAtPos(t);
      if (this.chStartsBindingIdentifier(r, t))
        return this.expectPlugin("explicitResourceManagement"), !0;
    }
    return !1;
  }
  parseModuleItem() {
    return this.parseStatementLike(15);
  }
  parseStatementListItem() {
    return this.parseStatementLike(6 | (!this.options.annexB || this.state.strict ? 0 : 8));
  }
  parseStatementOrSloppyAnnexBFunctionDeclaration(t = !1) {
    let r = 0;
    return this.options.annexB && !this.state.strict && (r |= 4, t && (r |= 8)), this.parseStatementLike(r);
  }
  parseStatement() {
    return this.parseStatementLike(0);
  }
  parseStatementLike(t) {
    let r = null;
    return this.match(26) && (r = this.parseDecorators(!0)), this.parseStatementContent(t, r);
  }
  parseStatementContent(t, r) {
    const i = this.state.type, n = this.startNode(), s = !!(t & 2), a = !!(t & 4), o = t & 1;
    switch (i) {
      case 60:
        return this.parseBreakContinueStatement(n, !0);
      case 63:
        return this.parseBreakContinueStatement(n, !1);
      case 64:
        return this.parseDebuggerStatement(n);
      case 90:
        return this.parseDoWhileStatement(n);
      case 91:
        return this.parseForStatement(n);
      case 68:
        if (this.lookaheadCharCode() === 46)
          break;
        return a || this.raise(this.state.strict ? et.StrictFunction : this.options.annexB ? et.SloppyFunctionAnnexB : et.SloppyFunction, this.state.startLoc), this.parseFunctionStatement(n, !1, !s && a);
      case 80:
        return s || this.unexpected(), this.parseClass(this.maybeTakeDecorators(r, n), !0);
      case 69:
        return this.parseIfStatement(n);
      case 70:
        return this.parseReturnStatement(n);
      case 71:
        return this.parseSwitchStatement(n);
      case 72:
        return this.parseThrowStatement(n);
      case 73:
        return this.parseTryStatement(n);
      case 96:
        if (!this.state.containsEsc && this.startsAwaitUsing())
          return this.recordAwaitIfAllowed() ? s || this.raise(et.UnexpectedLexicalDeclaration, n) : this.raise(et.AwaitUsingNotInAsyncContext, n), this.next(), this.parseVarStatement(n, "await using");
        break;
      case 107:
        if (this.state.containsEsc || !this.hasInLineFollowingBindingIdentifierOrBrace())
          break;
        return this.expectPlugin("explicitResourceManagement"), !this.scope.inModule && this.scope.inTopLevel ? this.raise(et.UnexpectedUsingDeclaration, this.state.startLoc) : s || this.raise(et.UnexpectedLexicalDeclaration, this.state.startLoc), this.parseVarStatement(n, "using");
      case 100: {
        if (this.state.containsEsc)
          break;
        const c = this.nextTokenStart(), f = this.codePointAtPos(c);
        if (f !== 91 && (!s && this.hasFollowingLineBreak() || !this.chStartsBindingIdentifier(f, c) && f !== 123))
          break;
      }
      case 75:
        s || this.raise(et.UnexpectedLexicalDeclaration, this.state.startLoc);
      case 74: {
        const c = this.state.value;
        return this.parseVarStatement(n, c);
      }
      case 92:
        return this.parseWhileStatement(n);
      case 76:
        return this.parseWithStatement(n);
      case 5:
        return this.parseBlock();
      case 13:
        return this.parseEmptyStatement(n);
      case 83: {
        const c = this.lookaheadCharCode();
        if (c === 40 || c === 46)
          break;
      }
      case 82: {
        !this.options.allowImportExportEverywhere && !o && this.raise(et.UnexpectedImportExport, this.state.startLoc), this.next();
        let c;
        return i === 83 ? (c = this.parseImport(n), c.type === "ImportDeclaration" && (!c.importKind || c.importKind === "value") && (this.sawUnambiguousESM = !0)) : (c = this.parseExport(n, r), (c.type === "ExportNamedDeclaration" && (!c.exportKind || c.exportKind === "value") || c.type === "ExportAllDeclaration" && (!c.exportKind || c.exportKind === "value") || c.type === "ExportDefaultDeclaration") && (this.sawUnambiguousESM = !0)), this.assertModuleNodeAllowed(c), c;
      }
      default:
        if (this.isAsyncFunction())
          return s || this.raise(et.AsyncFunctionInSingleStatementContext, this.state.startLoc), this.next(), this.parseFunctionStatement(n, !0, !s && a);
    }
    const l = this.state.value, u = this.parseExpression();
    return Ei(i) && u.type === "Identifier" && this.eat(14) ? this.parseLabeledStatement(n, l, u, t) : this.parseExpressionStatement(n, u, r);
  }
  assertModuleNodeAllowed(t) {
    !this.options.allowImportExportEverywhere && !this.inModule && this.raise(et.ImportOutsideModule, t);
  }
  decoratorsEnabledBeforeExport() {
    return this.hasPlugin("decorators-legacy") ? !0 : this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") !== !1;
  }
  maybeTakeDecorators(t, r, i) {
    return t && (r.decorators && r.decorators.length > 0 ? (typeof this.getPluginOption("decorators", "decoratorsBeforeExport") != "boolean" && this.raise(et.DecoratorsBeforeAfterExport, r.decorators[0]), r.decorators.unshift(...t)) : r.decorators = t, this.resetStartLocationFromNode(r, t[0]), i && this.resetStartLocationFromNode(i, r)), r;
  }
  canHaveLeadingDecorator() {
    return this.match(80);
  }
  parseDecorators(t) {
    const r = [];
    do
      r.push(this.parseDecorator());
    while (this.match(26));
    if (this.match(82))
      t || this.unexpected(), this.decoratorsEnabledBeforeExport() || this.raise(et.DecoratorExportClass, this.state.startLoc);
    else if (!this.canHaveLeadingDecorator())
      throw this.raise(et.UnexpectedLeadingDecorator, this.state.startLoc);
    return r;
  }
  parseDecorator() {
    this.expectOnePlugin(["decorators", "decorators-legacy"]);
    const t = this.startNode();
    if (this.next(), this.hasPlugin("decorators")) {
      const r = this.state.startLoc;
      let i;
      if (this.match(10)) {
        const n = this.state.startLoc;
        this.next(), i = this.parseExpression(), this.expect(11), i = this.wrapParenthesis(n, i);
        const s = this.state.startLoc;
        t.expression = this.parseMaybeDecoratorArguments(i), this.getPluginOption("decorators", "allowCallParenthesized") === !1 && t.expression !== i && this.raise(et.DecoratorArgumentsOutsideParentheses, s);
      } else {
        for (i = this.parseIdentifier(!1); this.eat(16); ) {
          const n = this.startNodeAt(r);
          n.object = i, this.match(139) ? (this.classScope.usePrivateName(this.state.value, this.state.startLoc), n.property = this.parsePrivateName()) : n.property = this.parseIdentifier(!0), n.computed = !1, i = this.finishNode(n, "MemberExpression");
        }
        t.expression = this.parseMaybeDecoratorArguments(i);
      }
    } else
      t.expression = this.parseExprSubscripts();
    return this.finishNode(t, "Decorator");
  }
  parseMaybeDecoratorArguments(t) {
    if (this.eat(10)) {
      const r = this.startNodeAtNode(t);
      return r.callee = t, r.arguments = this.parseCallExpressionArguments(11), this.toReferencedList(r.arguments), this.finishNode(r, "CallExpression");
    }
    return t;
  }
  parseBreakContinueStatement(t, r) {
    return this.next(), this.isLineTerminator() ? t.label = null : (t.label = this.parseIdentifier(), this.semicolon()), this.verifyBreakContinue(t, r), this.finishNode(t, r ? "BreakStatement" : "ContinueStatement");
  }
  verifyBreakContinue(t, r) {
    let i;
    for (i = 0; i < this.state.labels.length; ++i) {
      const n = this.state.labels[i];
      if ((t.label == null || n.name === t.label.name) && (n.kind != null && (r || n.kind === 1) || t.label && r))
        break;
    }
    if (i === this.state.labels.length) {
      const n = r ? "BreakStatement" : "ContinueStatement";
      this.raise(et.IllegalBreakContinue, t, {
        type: n
      });
    }
  }
  parseDebuggerStatement(t) {
    return this.next(), this.semicolon(), this.finishNode(t, "DebuggerStatement");
  }
  parseHeaderExpression() {
    this.expect(10);
    const t = this.parseExpression();
    return this.expect(11), t;
  }
  parseDoWhileStatement(t) {
    return this.next(), this.state.labels.push(_3), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.state.labels.pop(), this.expect(92), t.test = this.parseHeaderExpression(), this.eat(13), this.finishNode(t, "DoWhileStatement");
  }
  parseForStatement(t) {
    this.next(), this.state.labels.push(_3);
    let r = null;
    if (this.isContextual(96) && this.recordAwaitIfAllowed() && (r = this.state.startLoc, this.next()), this.scope.enter(0), this.expect(10), this.match(13))
      return r !== null && this.unexpected(r), this.parseFor(t, null);
    const i = this.isContextual(100);
    {
      const l = this.isContextual(96) && this.startsAwaitUsing(), u = l || this.isContextual(107) && this.startsUsingForOf(), c = i && this.hasFollowingBindingAtom() || u;
      if (this.match(74) || this.match(75) || c) {
        const f = this.startNode();
        let h;
        l ? (h = "await using", this.recordAwaitIfAllowed() || this.raise(et.AwaitUsingNotInAsyncContext, this.state.startLoc), this.next()) : h = this.state.value, this.next(), this.parseVar(f, !0, h);
        const m = this.finishNode(f, "VariableDeclaration"), g = this.match(58);
        return g && u && this.raise(et.ForInUsing, m), (g || this.isContextual(102)) && m.declarations.length === 1 ? this.parseForIn(t, m, r) : (r !== null && this.unexpected(r), this.parseFor(t, m));
      }
    }
    const n = this.isContextual(95), s = new jP(), a = this.parseExpression(!0, s), o = this.isContextual(102);
    if (o && (i && this.raise(et.ForOfLet, a), r === null && n && a.type === "Identifier" && this.raise(et.ForOfAsync, a)), o || this.match(58)) {
      this.checkDestructuringPrivate(s), this.toAssignable(a, !0);
      const l = o ? "ForOfStatement" : "ForInStatement";
      return this.checkLVal(a, {
        type: l
      }), this.parseForIn(t, a, r);
    } else
      this.checkExpressionErrors(s, !0);
    return r !== null && this.unexpected(r), this.parseFor(t, a);
  }
  parseFunctionStatement(t, r, i) {
    return this.next(), this.parseFunction(t, 1 | (i ? 2 : 0) | (r ? 8 : 0));
  }
  parseIfStatement(t) {
    return this.next(), t.test = this.parseHeaderExpression(), t.consequent = this.parseStatementOrSloppyAnnexBFunctionDeclaration(), t.alternate = this.eat(66) ? this.parseStatementOrSloppyAnnexBFunctionDeclaration() : null, this.finishNode(t, "IfStatement");
  }
  parseReturnStatement(t) {
    return !this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction && this.raise(et.IllegalReturn, this.state.startLoc), this.next(), this.isLineTerminator() ? t.argument = null : (t.argument = this.parseExpression(), this.semicolon()), this.finishNode(t, "ReturnStatement");
  }
  parseSwitchStatement(t) {
    this.next(), t.discriminant = this.parseHeaderExpression();
    const r = t.cases = [];
    this.expect(5), this.state.labels.push(ORt), this.scope.enter(0);
    let i;
    for (let n; !this.match(8); )
      if (this.match(61) || this.match(65)) {
        const s = this.match(61);
        i && this.finishNode(i, "SwitchCase"), r.push(i = this.startNode()), i.consequent = [], this.next(), s ? i.test = this.parseExpression() : (n && this.raise(et.MultipleDefaultsInSwitch, this.state.lastTokStartLoc), n = !0, i.test = null), this.expect(14);
      } else
        i ? i.consequent.push(this.parseStatementListItem()) : this.unexpected();
    return this.scope.exit(), i && this.finishNode(i, "SwitchCase"), this.next(), this.state.labels.pop(), this.finishNode(t, "SwitchStatement");
  }
  parseThrowStatement(t) {
    return this.next(), this.hasPrecedingLineBreak() && this.raise(et.NewlineAfterThrow, this.state.lastTokEndLoc), t.argument = this.parseExpression(), this.semicolon(), this.finishNode(t, "ThrowStatement");
  }
  parseCatchClauseParam() {
    const t = this.parseBindingAtom();
    return this.scope.enter(this.options.annexB && t.type === "Identifier" ? 8 : 0), this.checkLVal(t, {
      type: "CatchClause"
    }, 9), t;
  }
  parseTryStatement(t) {
    if (this.next(), t.block = this.parseBlock(), t.handler = null, this.match(62)) {
      const r = this.startNode();
      this.next(), this.match(10) ? (this.expect(10), r.param = this.parseCatchClauseParam(), this.expect(11)) : (r.param = null, this.scope.enter(0)), r.body = this.withSmartMixTopicForbiddingContext(() => this.parseBlock(!1, !1)), this.scope.exit(), t.handler = this.finishNode(r, "CatchClause");
    }
    return t.finalizer = this.eat(67) ? this.parseBlock() : null, !t.handler && !t.finalizer && this.raise(et.NoCatchOrFinally, t), this.finishNode(t, "TryStatement");
  }
  parseVarStatement(t, r, i = !1) {
    return this.next(), this.parseVar(t, !1, r, i), this.semicolon(), this.finishNode(t, "VariableDeclaration");
  }
  parseWhileStatement(t) {
    return this.next(), t.test = this.parseHeaderExpression(), this.state.labels.push(_3), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.state.labels.pop(), this.finishNode(t, "WhileStatement");
  }
  parseWithStatement(t) {
    return this.state.strict && this.raise(et.StrictWith, this.state.startLoc), this.next(), t.object = this.parseHeaderExpression(), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.finishNode(t, "WithStatement");
  }
  parseEmptyStatement(t) {
    return this.next(), this.finishNode(t, "EmptyStatement");
  }
  parseLabeledStatement(t, r, i, n) {
    for (const a of this.state.labels)
      a.name === r && this.raise(et.LabelRedeclaration, i, {
        labelName: r
      });
    const s = TMt(this.state.type) ? 1 : this.match(71) ? 2 : null;
    for (let a = this.state.labels.length - 1; a >= 0; a--) {
      const o = this.state.labels[a];
      if (o.statementStart === t.start)
        o.statementStart = this.sourceToOffsetPos(this.state.start), o.kind = s;
      else
        break;
    }
    return this.state.labels.push({
      name: r,
      kind: s,
      statementStart: this.sourceToOffsetPos(this.state.start)
    }), t.body = n & 8 ? this.parseStatementOrSloppyAnnexBFunctionDeclaration(!0) : this.parseStatement(), this.state.labels.pop(), t.label = i, this.finishNode(t, "LabeledStatement");
  }
  parseExpressionStatement(t, r, i) {
    return t.expression = r, this.semicolon(), this.finishNode(t, "ExpressionStatement");
  }
  parseBlock(t = !1, r = !0, i) {
    const n = this.startNode();
    return t && this.state.strictErrors.clear(), this.expect(5), r && this.scope.enter(0), this.parseBlockBody(n, t, !1, 8, i), r && this.scope.exit(), this.finishNode(n, "BlockStatement");
  }
  isValidDirective(t) {
    return t.type === "ExpressionStatement" && t.expression.type === "StringLiteral" && !t.expression.extra.parenthesized;
  }
  parseBlockBody(t, r, i, n, s) {
    const a = t.body = [], o = t.directives = [];
    this.parseBlockOrModuleBlockBody(a, r ? o : void 0, i, n, s);
  }
  parseBlockOrModuleBlockBody(t, r, i, n, s) {
    const a = this.state.strict;
    let o = !1, l = !1;
    for (; !this.match(n); ) {
      const u = i ? this.parseModuleItem() : this.parseStatementListItem();
      if (r && !l) {
        if (this.isValidDirective(u)) {
          const c = this.stmtToDirective(u);
          r.push(c), !o && c.value.value === "use strict" && (o = !0, this.setStrict(!0));
          continue;
        }
        l = !0, this.state.strictErrors.clear();
      }
      t.push(u);
    }
    s == null || s.call(this, o), a || this.setStrict(!1), this.next();
  }
  parseFor(t, r) {
    return t.init = r, this.semicolon(!1), t.test = this.match(13) ? null : this.parseExpression(), this.semicolon(!1), t.update = this.match(11) ? null : this.parseExpression(), this.expect(11), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.scope.exit(), this.state.labels.pop(), this.finishNode(t, "ForStatement");
  }
  parseForIn(t, r, i) {
    const n = this.match(58);
    return this.next(), n ? i !== null && this.unexpected(i) : t.await = i !== null, r.type === "VariableDeclaration" && r.declarations[0].init != null && (!n || !this.options.annexB || this.state.strict || r.kind !== "var" || r.declarations[0].id.type !== "Identifier") && this.raise(et.ForInOfLoopInitializer, r, {
      type: n ? "ForInStatement" : "ForOfStatement"
    }), r.type === "AssignmentPattern" && this.raise(et.InvalidLhs, r, {
      ancestor: {
        type: "ForStatement"
      }
    }), t.left = r, t.right = n ? this.parseExpression() : this.parseMaybeAssignAllowIn(), this.expect(11), t.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()), this.scope.exit(), this.state.labels.pop(), this.finishNode(t, n ? "ForInStatement" : "ForOfStatement");
  }
  parseVar(t, r, i, n = !1) {
    const s = t.declarations = [];
    for (t.kind = i; ; ) {
      const a = this.startNode();
      if (this.parseVarId(a, i), a.init = this.eat(29) ? r ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn() : null, a.init === null && !n && (a.id.type !== "Identifier" && !(r && (this.match(58) || this.isContextual(102))) ? this.raise(et.DeclarationMissingInitializer, this.state.lastTokEndLoc, {
        kind: "destructuring"
      }) : (i === "const" || i === "using" || i === "await using") && !(this.match(58) || this.isContextual(102)) && this.raise(et.DeclarationMissingInitializer, this.state.lastTokEndLoc, {
        kind: i
      })), s.push(this.finishNode(a, "VariableDeclarator")), !this.eat(12))
        break;
    }
    return t;
  }
  parseVarId(t, r) {
    const i = this.parseBindingAtom();
    (r === "using" || r === "await using") && (i.type === "ArrayPattern" || i.type === "ObjectPattern") && this.raise(et.UsingDeclarationHasBindingPattern, i.loc.start), this.checkLVal(i, {
      type: "VariableDeclarator"
    }, r === "var" ? 5 : 8201), t.id = i;
  }
  parseAsyncFunctionExpression(t) {
    return this.parseFunction(t, 8);
  }
  parseFunction(t, r = 0) {
    const i = r & 2, n = !!(r & 1), s = n && !(r & 4), a = !!(r & 8);
    this.initFunction(t, a), this.match(55) && (i && this.raise(et.GeneratorInSingleStatementContext, this.state.startLoc), this.next(), t.generator = !0), n && (t.id = this.parseFunctionId(s));
    const o = this.state.maybeInArrowParameters;
    return this.state.maybeInArrowParameters = !1, this.scope.enter(2), this.prodParam.enter(FP(a, t.generator)), n || (t.id = this.parseFunctionId()), this.parseFunctionParams(t, !1), this.withSmartMixTopicForbiddingContext(() => {
      this.parseFunctionBodyAndFinish(t, n ? "FunctionDeclaration" : "FunctionExpression");
    }), this.prodParam.exit(), this.scope.exit(), n && !i && this.registerFunctionStatementId(t), this.state.maybeInArrowParameters = o, t;
  }
  parseFunctionId(t) {
    return t || Ei(this.state.type) ? this.parseIdentifier() : null;
  }
  parseFunctionParams(t, r) {
    this.expect(10), this.expressionScope.enter(QMt()), t.params = this.parseBindingList(11, 41, 2 | (r ? 4 : 0)), this.expressionScope.exit();
  }
  registerFunctionStatementId(t) {
    t.id && this.scope.declareName(t.id.name, !this.options.annexB || this.state.strict || t.generator || t.async ? this.scope.treatFunctionsAsVar ? 5 : 8201 : 17, t.id.loc.start);
  }
  parseClass(t, r, i) {
    this.next();
    const n = this.state.strict;
    return this.state.strict = !0, this.parseClassId(t, r, i), this.parseClassSuper(t), t.body = this.parseClassBody(!!t.superClass, n), this.finishNode(t, r ? "ClassDeclaration" : "ClassExpression");
  }
  isClassProperty() {
    return this.match(29) || this.match(13) || this.match(8);
  }
  isClassMethod() {
    return this.match(10);
  }
  nameIsConstructor(t) {
    return t.type === "Identifier" && t.name === "constructor" || t.type === "StringLiteral" && t.value === "constructor";
  }
  isNonstaticConstructor(t) {
    return !t.computed && !t.static && this.nameIsConstructor(t.key);
  }
  parseClassBody(t, r) {
    this.classScope.enter();
    const i = {
      hadConstructor: !1,
      hadSuperClass: t
    };
    let n = [];
    const s = this.startNode();
    if (s.body = [], this.expect(5), this.withSmartMixTopicForbiddingContext(() => {
      for (; !this.match(8); ) {
        if (this.eat(13)) {
          if (n.length > 0)
            throw this.raise(et.DecoratorSemicolon, this.state.lastTokEndLoc);
          continue;
        }
        if (this.match(26)) {
          n.push(this.parseDecorator());
          continue;
        }
        const a = this.startNode();
        n.length && (a.decorators = n, this.resetStartLocationFromNode(a, n[0]), n = []), this.parseClassMember(s, a, i), a.kind === "constructor" && a.decorators && a.decorators.length > 0 && this.raise(et.DecoratorConstructor, a);
      }
    }), this.state.strict = r, this.next(), n.length)
      throw this.raise(et.TrailingDecorator, this.state.startLoc);
    return this.classScope.exit(), this.finishNode(s, "ClassBody");
  }
  parseClassMemberFromModifier(t, r) {
    const i = this.parseIdentifier(!0);
    if (this.isClassMethod()) {
      const n = r;
      return n.kind = "method", n.computed = !1, n.key = i, n.static = !1, this.pushClassMethod(t, n, !1, !1, !1, !1), !0;
    } else if (this.isClassProperty()) {
      const n = r;
      return n.computed = !1, n.key = i, n.static = !1, t.body.push(this.parseClassProperty(n)), !0;
    }
    return this.resetPreviousNodeTrailingComments(i), !1;
  }
  parseClassMember(t, r, i) {
    const n = this.isContextual(106);
    if (n) {
      if (this.parseClassMemberFromModifier(t, r))
        return;
      if (this.eat(5)) {
        this.parseClassStaticBlock(t, r);
        return;
      }
    }
    this.parseClassMemberWithIsStatic(t, r, i, n);
  }
  parseClassMemberWithIsStatic(t, r, i, n) {
    const s = r, a = r, o = r, l = r, u = r, c = s, f = s;
    if (r.static = n, this.parsePropertyNamePrefixOperator(r), this.eat(55)) {
      c.kind = "method";
      const T = this.match(139);
      if (this.parseClassElementName(c), T) {
        this.pushClassPrivateMethod(t, a, !0, !1);
        return;
      }
      this.isNonstaticConstructor(s) && this.raise(et.ConstructorIsGenerator, s.key), this.pushClassMethod(t, s, !0, !1, !1, !1);
      return;
    }
    const h = !this.state.containsEsc && Ei(this.state.type), m = this.parseClassElementName(r), g = h ? m.name : null, y = this.isPrivateName(m), v = this.state.startLoc;
    if (this.parsePostMemberNameModifiers(f), this.isClassMethod()) {
      if (c.kind = "method", y) {
        this.pushClassPrivateMethod(t, a, !1, !1);
        return;
      }
      const T = this.isNonstaticConstructor(s);
      let S = !1;
      T && (s.kind = "constructor", i.hadConstructor && !this.hasPlugin("typescript") && this.raise(et.DuplicateConstructor, m), T && this.hasPlugin("typescript") && r.override && this.raise(et.OverrideOnConstructor, m), i.hadConstructor = !0, S = i.hadSuperClass), this.pushClassMethod(t, s, !1, !1, T, S);
    } else if (this.isClassProperty())
      y ? this.pushClassPrivateProperty(t, l) : this.pushClassProperty(t, o);
    else if (g === "async" && !this.isLineTerminator()) {
      this.resetPreviousNodeTrailingComments(m);
      const T = this.eat(55);
      f.optional && this.unexpected(v), c.kind = "method";
      const S = this.match(139);
      this.parseClassElementName(c), this.parsePostMemberNameModifiers(f), S ? this.pushClassPrivateMethod(t, a, T, !0) : (this.isNonstaticConstructor(s) && this.raise(et.ConstructorIsAsync, s.key), this.pushClassMethod(t, s, T, !0, !1, !1));
    } else if ((g === "get" || g === "set") && !(this.match(55) && this.isLineTerminator())) {
      this.resetPreviousNodeTrailingComments(m), c.kind = g;
      const T = this.match(139);
      this.parseClassElementName(s), T ? this.pushClassPrivateMethod(t, a, !1, !1) : (this.isNonstaticConstructor(s) && this.raise(et.ConstructorIsAccessor, s.key), this.pushClassMethod(t, s, !1, !1, !1, !1)), this.checkGetterSetterParams(s);
    } else if (g === "accessor" && !this.isLineTerminator()) {
      this.expectPlugin("decoratorAutoAccessors"), this.resetPreviousNodeTrailingComments(m);
      const T = this.match(139);
      this.parseClassElementName(o), this.pushClassAccessorProperty(t, u, T);
    } else
      this.isLineTerminator() ? y ? this.pushClassPrivateProperty(t, l) : this.pushClassProperty(t, o) : this.unexpected();
  }
  parseClassElementName(t) {
    const {
      type: r,
      value: i
    } = this.state;
    if ((r === 132 || r === 134) && t.static && i === "prototype" && this.raise(et.StaticPrototype, this.state.startLoc), r === 139) {
      i === "constructor" && this.raise(et.ConstructorClassPrivateField, this.state.startLoc);
      const n = this.parsePrivateName();
      return t.key = n, n;
    }
    return this.parsePropertyName(t), t.key;
  }
  parseClassStaticBlock(t, r) {
    var i;
    this.scope.enter(208);
    const n = this.state.labels;
    this.state.labels = [], this.prodParam.enter(0);
    const s = r.body = [];
    this.parseBlockOrModuleBlockBody(s, void 0, !1, 8), this.prodParam.exit(), this.scope.exit(), this.state.labels = n, t.body.push(this.finishNode(r, "StaticBlock")), (i = r.decorators) != null && i.length && this.raise(et.DecoratorStaticBlock, r);
  }
  pushClassProperty(t, r) {
    !r.computed && this.nameIsConstructor(r.key) && this.raise(et.ConstructorClassField, r.key), t.body.push(this.parseClassProperty(r));
  }
  pushClassPrivateProperty(t, r) {
    const i = this.parseClassPrivateProperty(r);
    t.body.push(i), this.classScope.declarePrivateName(this.getPrivateNameSV(i.key), 0, i.key.loc.start);
  }
  pushClassAccessorProperty(t, r, i) {
    !i && !r.computed && this.nameIsConstructor(r.key) && this.raise(et.ConstructorClassField, r.key);
    const n = this.parseClassAccessorProperty(r);
    t.body.push(n), i && this.classScope.declarePrivateName(this.getPrivateNameSV(n.key), 0, n.key.loc.start);
  }
  pushClassMethod(t, r, i, n, s, a) {
    t.body.push(this.parseMethod(r, i, n, s, a, "ClassMethod", !0));
  }
  pushClassPrivateMethod(t, r, i, n) {
    const s = this.parseMethod(r, i, n, !1, !1, "ClassPrivateMethod", !0);
    t.body.push(s);
    const a = s.kind === "get" ? s.static ? 6 : 2 : s.kind === "set" ? s.static ? 5 : 1 : 0;
    this.declareClassPrivateMethodInScope(s, a);
  }
  declareClassPrivateMethodInScope(t, r) {
    this.classScope.declarePrivateName(this.getPrivateNameSV(t.key), r, t.key.loc.start);
  }
  parsePostMemberNameModifiers(t) {
  }
  parseClassPrivateProperty(t) {
    return this.parseInitializer(t), this.semicolon(), this.finishNode(t, "ClassPrivateProperty");
  }
  parseClassProperty(t) {
    return this.parseInitializer(t), this.semicolon(), this.finishNode(t, "ClassProperty");
  }
  parseClassAccessorProperty(t) {
    return this.parseInitializer(t), this.semicolon(), this.finishNode(t, "ClassAccessorProperty");
  }
  parseInitializer(t) {
    this.scope.enter(80), this.expressionScope.enter(ege()), this.prodParam.enter(0), t.value = this.eat(29) ? this.parseMaybeAssignAllowIn() : null, this.expressionScope.exit(), this.prodParam.exit(), this.scope.exit();
  }
  parseClassId(t, r, i, n = 8331) {
    if (Ei(this.state.type))
      t.id = this.parseIdentifier(), r && this.declareNameFromIdentifier(t.id, n);
    else if (i || !r)
      t.id = null;
    else
      throw this.raise(et.MissingClassName, this.state.startLoc);
  }
  parseClassSuper(t) {
    t.superClass = this.eat(81) ? this.parseExprSubscripts() : null;
  }
  parseExport(t, r) {
    const i = this.parseMaybeImportPhase(t, !0), n = this.maybeParseExportDefaultSpecifier(t, i), s = !n || this.eat(12), a = s && this.eatExportStar(t), o = a && this.maybeParseExportNamespaceSpecifier(t), l = s && (!o || this.eat(12)), u = n || a;
    if (a && !o) {
      if (n && this.unexpected(), r)
        throw this.raise(et.UnsupportedDecoratorExport, t);
      return this.parseExportFrom(t, !0), this.finishNode(t, "ExportAllDeclaration");
    }
    const c = this.maybeParseExportNamedSpecifiers(t);
    n && s && !a && !c && this.unexpected(null, 5), o && l && this.unexpected(null, 98);
    let f;
    if (u || c) {
      if (f = !1, r)
        throw this.raise(et.UnsupportedDecoratorExport, t);
      this.parseExportFrom(t, u);
    } else
      f = this.maybeParseExportDeclaration(t);
    if (u || c || f) {
      var h;
      const m = t;
      if (this.checkExport(m, !0, !1, !!m.source), ((h = m.declaration) == null ? void 0 : h.type) === "ClassDeclaration")
        this.maybeTakeDecorators(r, m.declaration, m);
      else if (r)
        throw this.raise(et.UnsupportedDecoratorExport, t);
      return this.finishNode(m, "ExportNamedDeclaration");
    }
    if (this.eat(65)) {
      const m = t, g = this.parseExportDefaultExpression();
      if (m.declaration = g, g.type === "ClassDeclaration")
        this.maybeTakeDecorators(r, g, m);
      else if (r)
        throw this.raise(et.UnsupportedDecoratorExport, t);
      return this.checkExport(m, !0, !0), this.finishNode(m, "ExportDefaultDeclaration");
    }
    this.unexpected(null, 5);
  }
  eatExportStar(t) {
    return this.eat(55);
  }
  maybeParseExportDefaultSpecifier(t, r) {
    if (r || this.isExportDefaultSpecifier()) {
      this.expectPlugin("exportDefaultFrom", r == null ? void 0 : r.loc.start);
      const i = r || this.parseIdentifier(!0), n = this.startNodeAtNode(i);
      return n.exported = i, t.specifiers = [this.finishNode(n, "ExportDefaultSpecifier")], !0;
    }
    return !1;
  }
  maybeParseExportNamespaceSpecifier(t) {
    if (this.isContextual(93)) {
      var r, i;
      (i = (r = t).specifiers) != null || (r.specifiers = []);
      const n = this.startNodeAt(this.state.lastTokStartLoc);
      return this.next(), n.exported = this.parseModuleExportName(), t.specifiers.push(this.finishNode(n, "ExportNamespaceSpecifier")), !0;
    }
    return !1;
  }
  maybeParseExportNamedSpecifiers(t) {
    if (this.match(5)) {
      const r = t;
      r.specifiers || (r.specifiers = []);
      const i = r.exportKind === "type";
      return r.specifiers.push(...this.parseExportSpecifiers(i)), r.source = null, r.declaration = null, this.hasPlugin("importAssertions") && (r.assertions = []), !0;
    }
    return !1;
  }
  maybeParseExportDeclaration(t) {
    return this.shouldParseExportDeclaration() ? (t.specifiers = [], t.source = null, this.hasPlugin("importAssertions") && (t.assertions = []), t.declaration = this.parseExportDeclaration(t), !0) : !1;
  }
  isAsyncFunction() {
    if (!this.isContextual(95))
      return !1;
    const t = this.nextTokenInLineStart();
    return this.isUnparsedContextual(t, "function");
  }
  parseExportDefaultExpression() {
    const t = this.startNode();
    if (this.match(68))
      return this.next(), this.parseFunction(t, 5);
    if (this.isAsyncFunction())
      return this.next(), this.next(), this.parseFunction(t, 13);
    if (this.match(80))
      return this.parseClass(t, !0, !0);
    if (this.match(26))
      return this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") === !0 && this.raise(et.DecoratorBeforeExport, this.state.startLoc), this.parseClass(this.maybeTakeDecorators(this.parseDecorators(!1), this.startNode()), !0, !0);
    if (this.match(75) || this.match(74) || this.isLet())
      throw this.raise(et.UnsupportedDefaultExport, this.state.startLoc);
    const r = this.parseMaybeAssignAllowIn();
    return this.semicolon(), r;
  }
  parseExportDeclaration(t) {
    return this.match(80) ? this.parseClass(this.startNode(), !0, !1) : this.parseStatementListItem();
  }
  isExportDefaultSpecifier() {
    const {
      type: t
    } = this.state;
    if (Ei(t)) {
      if (t === 95 && !this.state.containsEsc || t === 100)
        return !1;
      if ((t === 130 || t === 129) && !this.state.containsEsc) {
        const {
          type: n
        } = this.lookahead();
        if (Ei(n) && n !== 98 || n === 5)
          return this.expectOnePlugin(["flow", "typescript"]), !1;
      }
    } else if (!this.match(65))
      return !1;
    const r = this.nextTokenStart(), i = this.isUnparsedContextual(r, "from");
    if (this.input.charCodeAt(r) === 44 || Ei(this.state.type) && i)
      return !0;
    if (this.match(65) && i) {
      const n = this.input.charCodeAt(this.nextTokenStartSince(r + 4));
      return n === 34 || n === 39;
    }
    return !1;
  }
  parseExportFrom(t, r) {
    this.eatContextual(98) ? (t.source = this.parseImportSource(), this.checkExport(t), this.maybeParseImportAttributes(t), this.checkJSONModuleImport(t)) : r && this.unexpected(), this.semicolon();
  }
  shouldParseExportDeclaration() {
    const {
      type: t
    } = this.state;
    return t === 26 && (this.expectOnePlugin(["decorators", "decorators-legacy"]), this.hasPlugin("decorators")) ? (this.getPluginOption("decorators", "decoratorsBeforeExport") === !0 && this.raise(et.DecoratorBeforeExport, this.state.startLoc), !0) : this.isContextual(107) ? (this.raise(et.UsingDeclarationExport, this.state.startLoc), !0) : this.isContextual(96) && this.startsAwaitUsing() ? (this.raise(et.UsingDeclarationExport, this.state.startLoc), !0) : t === 74 || t === 75 || t === 68 || t === 80 || this.isLet() || this.isAsyncFunction();
  }
  checkExport(t, r, i, n) {
    if (r) {
      var s;
      if (i) {
        if (this.checkDuplicateExports(t, "default"), this.hasPlugin("exportDefaultFrom")) {
          var a;
          const o = t.declaration;
          o.type === "Identifier" && o.name === "from" && o.end - o.start === 4 && !((a = o.extra) != null && a.parenthesized) && this.raise(et.ExportDefaultFromAsIdentifier, o);
        }
      } else if ((s = t.specifiers) != null && s.length)
        for (const o of t.specifiers) {
          const {
            exported: l
          } = o, u = l.type === "Identifier" ? l.name : l.value;
          if (this.checkDuplicateExports(o, u), !n && o.local) {
            const {
              local: c
            } = o;
            c.type !== "Identifier" ? this.raise(et.ExportBindingIsString, o, {
              localName: c.value,
              exportName: u
            }) : (this.checkReservedWord(c.name, c.loc.start, !0, !1), this.scope.checkLocalExport(c));
          }
        }
      else if (t.declaration) {
        const o = t.declaration;
        if (o.type === "FunctionDeclaration" || o.type === "ClassDeclaration") {
          const {
            id: l
          } = o;
          if (!l)
            throw new Error("Assertion failure");
          this.checkDuplicateExports(t, l.name);
        } else if (o.type === "VariableDeclaration")
          for (const l of o.declarations)
            this.checkDeclaration(l.id);
      }
    }
  }
  checkDeclaration(t) {
    if (t.type === "Identifier")
      this.checkDuplicateExports(t, t.name);
    else if (t.type === "ObjectPattern")
      for (const r of t.properties)
        this.checkDeclaration(r);
    else if (t.type === "ArrayPattern")
      for (const r of t.elements)
        r && this.checkDeclaration(r);
    else
      t.type === "ObjectProperty" ? this.checkDeclaration(t.value) : t.type === "RestElement" ? this.checkDeclaration(t.argument) : t.type === "AssignmentPattern" && this.checkDeclaration(t.left);
  }
  checkDuplicateExports(t, r) {
    this.exportedIdentifiers.has(r) && (r === "default" ? this.raise(et.DuplicateDefaultExport, t) : this.raise(et.DuplicateExport, t, {
      exportName: r
    })), this.exportedIdentifiers.add(r);
  }
  parseExportSpecifiers(t) {
    const r = [];
    let i = !0;
    for (this.expect(5); !this.eat(8); ) {
      if (i)
        i = !1;
      else if (this.expect(12), this.eat(8))
        break;
      const n = this.isContextual(130), s = this.match(134), a = this.startNode();
      a.local = this.parseModuleExportName(), r.push(this.parseExportSpecifier(a, s, t, n));
    }
    return r;
  }
  parseExportSpecifier(t, r, i, n) {
    return this.eatContextual(93) ? t.exported = this.parseModuleExportName() : r ? t.exported = nRt(t.local) : t.exported || (t.exported = Sf(t.local)), this.finishNode(t, "ExportSpecifier");
  }
  parseModuleExportName() {
    if (this.match(134)) {
      const t = this.parseStringLiteral(this.state.value), r = NRt.exec(t.value);
      return r && this.raise(et.ModuleExportNameHasLoneSurrogate, t, {
        surrogateCharCode: r[0].charCodeAt(0)
      }), t;
    }
    return this.parseIdentifier(!0);
  }
  isJSONModuleImport(t) {
    return t.assertions != null ? t.assertions.some(({
      key: r,
      value: i
    }) => i.value === "json" && (r.type === "Identifier" ? r.name === "type" : r.value === "type")) : !1;
  }
  checkImportReflection(t) {
    const {
      specifiers: r
    } = t, i = r.length === 1 ? r[0].type : null;
    if (t.phase === "source")
      i !== "ImportDefaultSpecifier" && this.raise(et.SourcePhaseImportRequiresDefault, r[0].loc.start);
    else if (t.phase === "defer")
      i !== "ImportNamespaceSpecifier" && this.raise(et.DeferImportRequiresNamespace, r[0].loc.start);
    else if (t.module) {
      var n;
      i !== "ImportDefaultSpecifier" && this.raise(et.ImportReflectionNotBinding, r[0].loc.start), ((n = t.assertions) == null ? void 0 : n.length) > 0 && this.raise(et.ImportReflectionHasAssertion, r[0].loc.start);
    }
  }
  checkJSONModuleImport(t) {
    if (this.isJSONModuleImport(t) && t.type !== "ExportAllDeclaration") {
      const {
        specifiers: r
      } = t;
      if (r != null) {
        const i = r.find((n) => {
          let s;
          if (n.type === "ExportSpecifier" ? s = n.local : n.type === "ImportSpecifier" && (s = n.imported), s !== void 0)
            return s.type === "Identifier" ? s.name !== "default" : s.value !== "default";
        });
        i !== void 0 && this.raise(et.ImportJSONBindingNotDefault, i.loc.start);
      }
    }
  }
  isPotentialImportPhase(t) {
    return t ? !1 : this.isContextual(105) || this.isContextual(97) || this.isContextual(127);
  }
  applyImportPhase(t, r, i, n) {
    r || (i === "module" ? (this.expectPlugin("importReflection", n), t.module = !0) : this.hasPlugin("importReflection") && (t.module = !1), i === "source" ? (this.expectPlugin("sourcePhaseImports", n), t.phase = "source") : i === "defer" ? (this.expectPlugin("deferredImportEvaluation", n), t.phase = "defer") : this.hasPlugin("sourcePhaseImports") && (t.phase = null));
  }
  parseMaybeImportPhase(t, r) {
    if (!this.isPotentialImportPhase(r))
      return this.applyImportPhase(t, r, null), null;
    const i = this.parseIdentifier(!0), {
      type: n
    } = this.state;
    return (Nc(n) ? n !== 98 || this.lookaheadCharCode() === 102 : n !== 12) ? (this.resetPreviousIdentifierLeadingComments(i), this.applyImportPhase(t, r, i.name, i.loc.start), null) : (this.applyImportPhase(t, r, null), i);
  }
  isPrecedingIdImportPhase(t) {
    const {
      type: r
    } = this.state;
    return Ei(r) ? r !== 98 || this.lookaheadCharCode() === 102 : r !== 12;
  }
  parseImport(t) {
    return this.match(134) ? this.parseImportSourceAndAttributes(t) : this.parseImportSpecifiersAndAfter(t, this.parseMaybeImportPhase(t, !1));
  }
  parseImportSpecifiersAndAfter(t, r) {
    t.specifiers = [];
    const n = !this.maybeParseDefaultImportSpecifier(t, r) || this.eat(12), s = n && this.maybeParseStarImportSpecifier(t);
    return n && !s && this.parseNamedImportSpecifiers(t), this.expectContextual(98), this.parseImportSourceAndAttributes(t);
  }
  parseImportSourceAndAttributes(t) {
    var r;
    return (r = t.specifiers) != null || (t.specifiers = []), t.source = this.parseImportSource(), this.maybeParseImportAttributes(t), this.checkImportReflection(t), this.checkJSONModuleImport(t), this.semicolon(), this.finishNode(t, "ImportDeclaration");
  }
  parseImportSource() {
    return this.match(134) || this.unexpected(), this.parseExprAtom();
  }
  parseImportSpecifierLocal(t, r, i) {
    r.local = this.parseIdentifier(), t.specifiers.push(this.finishImportSpecifier(r, i));
  }
  finishImportSpecifier(t, r, i = 8201) {
    return this.checkLVal(t.local, {
      type: r
    }, i), this.finishNode(t, r);
  }
  parseImportAttributes() {
    this.expect(5);
    const t = [], r = /* @__PURE__ */ new Set();
    do {
      if (this.match(8))
        break;
      const i = this.startNode(), n = this.state.value;
      if (r.has(n) && this.raise(et.ModuleAttributesWithDuplicateKeys, this.state.startLoc, {
        key: n
      }), r.add(n), this.match(134) ? i.key = this.parseStringLiteral(n) : i.key = this.parseIdentifier(!0), this.expect(14), !this.match(134))
        throw this.raise(et.ModuleAttributeInvalidValue, this.state.startLoc);
      i.value = this.parseStringLiteral(this.state.value), t.push(this.finishNode(i, "ImportAttribute"));
    } while (this.eat(12));
    return this.expect(8), t;
  }
  parseModuleAttributes() {
    const t = [], r = /* @__PURE__ */ new Set();
    do {
      const i = this.startNode();
      if (i.key = this.parseIdentifier(!0), i.key.name !== "type" && this.raise(et.ModuleAttributeDifferentFromType, i.key), r.has(i.key.name) && this.raise(et.ModuleAttributesWithDuplicateKeys, i.key, {
        key: i.key.name
      }), r.add(i.key.name), this.expect(14), !this.match(134))
        throw this.raise(et.ModuleAttributeInvalidValue, this.state.startLoc);
      i.value = this.parseStringLiteral(this.state.value), t.push(this.finishNode(i, "ImportAttribute"));
    } while (this.eat(12));
    return t;
  }
  maybeParseImportAttributes(t) {
    let r;
    var i = !1;
    if (this.match(76)) {
      if (this.hasPrecedingLineBreak() && this.lookaheadCharCode() === 40)
        return;
      this.next(), this.hasPlugin("moduleAttributes") ? r = this.parseModuleAttributes() : r = this.parseImportAttributes(), i = !0;
    } else
      this.isContextual(94) && !this.hasPrecedingLineBreak() ? (!this.hasPlugin("deprecatedImportAssert") && !this.hasPlugin("importAssertions") && this.raise(et.ImportAttributesUseAssert, this.state.startLoc), this.hasPlugin("importAssertions") || this.addExtra(t, "deprecatedAssertSyntax", !0), this.next(), r = this.parseImportAttributes()) : r = [];
    !i && this.hasPlugin("importAssertions") ? t.assertions = r : t.attributes = r;
  }
  maybeParseDefaultImportSpecifier(t, r) {
    if (r) {
      const i = this.startNodeAtNode(r);
      return i.local = r, t.specifiers.push(this.finishImportSpecifier(i, "ImportDefaultSpecifier")), !0;
    } else if (Nc(this.state.type))
      return this.parseImportSpecifierLocal(t, this.startNode(), "ImportDefaultSpecifier"), !0;
    return !1;
  }
  maybeParseStarImportSpecifier(t) {
    if (this.match(55)) {
      const r = this.startNode();
      return this.next(), this.expectContextual(93), this.parseImportSpecifierLocal(t, r, "ImportNamespaceSpecifier"), !0;
    }
    return !1;
  }
  parseNamedImportSpecifiers(t) {
    let r = !0;
    for (this.expect(5); !this.eat(8); ) {
      if (r)
        r = !1;
      else {
        if (this.eat(14))
          throw this.raise(et.DestructureNamedImport, this.state.startLoc);
        if (this.expect(12), this.eat(8))
          break;
      }
      const i = this.startNode(), n = this.match(134), s = this.isContextual(130);
      i.imported = this.parseModuleExportName();
      const a = this.parseImportSpecifier(i, n, t.importKind === "type" || t.importKind === "typeof", s, void 0);
      t.specifiers.push(a);
    }
  }
  parseImportSpecifier(t, r, i, n, s) {
    if (this.eatContextual(93))
      t.local = this.parseIdentifier();
    else {
      const {
        imported: a
      } = t;
      if (r)
        throw this.raise(et.ImportBindingIsString, t, {
          importName: a.value
        });
      this.checkReservedWord(a.name, t.loc.start, !0, !0), t.local || (t.local = Sf(a));
    }
    return this.finishImportSpecifier(t, "ImportSpecifier", s);
  }
  isThisParam(t) {
    return t.type === "Identifier" && t.name === "this";
  }
}
let sge = class extends LRt {
  constructor(t, r, i) {
    t = IRt(t), super(t, r), this.options = t, this.initializeScopes(), this.plugins = i, this.filename = t.sourceFilename, this.startIndex = t.startIndex;
  }
  getScopeHandler() {
    return b7;
  }
  parse() {
    this.enterInitialScopes();
    const t = this.startNode(), r = this.startNode();
    return this.nextToken(), t.errors = null, this.parseTopLevel(t, r), t.errors = this.state.errors, t.comments.length = this.state.commentsLen, t;
  }
};
function MRt(e, t) {
  var r;
  if (((r = t) == null ? void 0 : r.sourceType) === "unambiguous") {
    t = Object.assign({}, t);
    try {
      t.sourceType = "module";
      const i = O0(t, e), n = i.parse();
      if (i.sawUnambiguousESM)
        return n;
      if (i.ambiguousScriptDifferentAst)
        try {
          return t.sourceType = "script", O0(t, e).parse();
        } catch (s) {
        }
      else
        n.program.sourceType = "script";
      return n;
    } catch (i) {
      try {
        return t.sourceType = "script", O0(t, e).parse();
      } catch (n) {
      }
      throw i;
    }
  } else
    return O0(t, e).parse();
}
function RRt(e, t) {
  const r = O0(t, e);
  return r.options.strictMode && (r.state.strict = !0), r.getExpression();
}
function BRt(e) {
  const t = {};
  for (const r of Object.keys(e))
    t[r] = zp(e[r]);
  return t;
}
const FRt = BRt(yMt);
function O0(e, t) {
  let r = sge;
  const i = /* @__PURE__ */ new Map();
  if (e != null && e.plugins) {
    for (const n of e.plugins) {
      let s, a;
      typeof n == "string" ? s = n : [s, a] = n, i.has(s) || i.set(s, a || {});
    }
    ARt(i), r = jRt(i);
  }
  return new r(e, t, i);
}
const xZ = /* @__PURE__ */ new Map();
function jRt(e) {
  const t = [];
  for (const n of CRt)
    e.has(n) && t.push(n);
  const r = t.join("|");
  let i = xZ.get(r);
  if (!i) {
    i = sge;
    for (const n of t)
      i = nge[n](i);
    xZ.set(r, i);
  }
  return i;
}
cS.parse = MRt;
cS.parseExpression = RRt;
cS.tokTypes = FRt;
Object.defineProperty(PI, "__esModule", {
  value: !0
});
PI.default = ZRt;
var $Rt = Qn(), URt = cS, qRt = am;
const {
  isCallExpression: VRt,
  isExpressionStatement: WRt,
  isFunction: HRt,
  isIdentifier: KRt,
  isJSXIdentifier: zRt,
  isNewExpression: GRt,
  isPlaceholder: w1,
  isStatement: YRt,
  isStringLiteral: EZ,
  removePropertiesDeep: XRt,
  traverse: JRt
} = $Rt, QRt = /^[_$A-Z0-9]+$/;
function ZRt(e, t, r) {
  const {
    placeholderWhitelist: i,
    placeholderPattern: n,
    preserveComments: s,
    syntacticPlaceholders: a
  } = r, o = r3t(t, r.parser, a);
  XRt(o, {
    preserveComments: s
  }), e.validate(o);
  const l = {
    syntactic: {
      placeholders: [],
      placeholderNames: /* @__PURE__ */ new Set()
    },
    legacy: {
      placeholders: [],
      placeholderNames: /* @__PURE__ */ new Set()
    },
    placeholderWhitelist: i,
    placeholderPattern: n,
    syntacticPlaceholders: a
  };
  return JRt(o, e3t, l), Object.assign({
    ast: o
  }, l.syntactic.placeholders.length ? l.syntactic : l.legacy);
}
function e3t(e, t, r) {
  var i;
  let n, s = r.syntactic.placeholders.length > 0;
  if (w1(e)) {
    if (r.syntacticPlaceholders === !1)
      throw new Error("%%foo%%-style placeholders can't be used when '.syntacticPlaceholders' is false.");
    n = e.name.name, s = !0;
  } else {
    if (s || r.syntacticPlaceholders)
      return;
    if (KRt(e) || zRt(e))
      n = e.name;
    else if (EZ(e))
      n = e.value;
    else
      return;
  }
  if (s && (r.placeholderPattern != null || r.placeholderWhitelist != null))
    throw new Error("'.placeholderWhitelist' and '.placeholderPattern' aren't compatible with '.syntacticPlaceholders: true'");
  if (!s && (r.placeholderPattern === !1 || !(r.placeholderPattern || QRt).test(n)) && !((i = r.placeholderWhitelist) != null && i.has(n)))
    return;
  t = t.slice();
  const {
    node: a,
    key: o
  } = t[t.length - 1];
  let l;
  EZ(e) || w1(e, {
    expectedNode: "StringLiteral"
  }) ? l = "string" : GRt(a) && o === "arguments" || VRt(a) && o === "arguments" || HRt(a) && o === "params" ? l = "param" : WRt(a) && !w1(e) ? (l = "statement", t = t.slice(0, -1)) : YRt(e) && w1(e) ? l = "statement" : l = "other";
  const {
    placeholders: u,
    placeholderNames: c
  } = s ? r.syntactic : r.legacy;
  u.push({
    name: n,
    type: l,
    resolve: (f) => t3t(f, t),
    isDuplicate: c.has(n)
  }), c.add(n);
}
function t3t(e, t) {
  let r = e;
  for (let s = 0; s < t.length - 1; s++) {
    const {
      key: a,
      index: o
    } = t[s];
    o === void 0 ? r = r[a] : r = r[a][o];
  }
  const {
    key: i,
    index: n
  } = t[t.length - 1];
  return {
    parent: r,
    key: i,
    index: n
  };
}
function r3t(e, t, r) {
  const i = (t.plugins || []).slice();
  r !== !1 && i.push("placeholders"), t = Object.assign({
    allowReturnOutsideFunction: !0,
    allowSuperOutsideMethod: !0,
    sourceType: "module"
  }, t, {
    plugins: i
  });
  try {
    return (0, URt.parse)(e, t);
  } catch (n) {
    const s = n.loc;
    throw s && (n.message += "\n" + (0, qRt.codeFrameColumns)(e, {
      start: s
    }), n.code = "BABEL_TEMPLATE_PARSE_ERROR"), n;
  }
}
var AI = {};
Object.defineProperty(AI, "__esModule", {
  value: !0
});
AI.default = l3t;
var i3t = Qn();
const {
  blockStatement: n3t,
  cloneNode: T8,
  emptyStatement: s3t,
  expressionStatement: k3,
  identifier: A1,
  isStatement: PZ,
  isStringLiteral: a3t,
  stringLiteral: o3t,
  validate: wZ
} = i3t;
function l3t(e, t) {
  const r = T8(e.ast);
  return t && (e.placeholders.forEach((i) => {
    if (!Object.prototype.hasOwnProperty.call(t, i.name)) {
      const n = i.name;
      throw new Error('Error: No substitution given for "'.concat(n, "\". If this is not meant to be a\n            placeholder you may want to consider passing one of the following options to @babel/template:\n            - { placeholderPattern: false, placeholderWhitelist: new Set(['").concat(n, "'])}\n            - { placeholderPattern: /^").concat(n, "$/ }"));
    }
  }), Object.keys(t).forEach((i) => {
    if (!e.placeholderNames.has(i))
      throw new Error('Unknown substitution "'.concat(i, '" given'));
  })), e.placeholders.slice().reverse().forEach((i) => {
    try {
      u3t(i, r, t && t[i.name] || null);
    } catch (n) {
      throw n.message = '@babel/template placeholder "'.concat(i.name, '": ').concat(n.message), n;
    }
  }), r;
}
function u3t(e, t, r) {
  e.isDuplicate && (Array.isArray(r) ? r = r.map((a) => T8(a)) : typeof r == "object" && (r = T8(r)));
  const {
    parent: i,
    key: n,
    index: s
  } = e.resolve(t);
  if (e.type === "string") {
    if (typeof r == "string" && (r = o3t(r)), !r || !a3t(r))
      throw new Error("Expected string substitution");
  } else if (e.type === "statement")
    s === void 0 ? r ? Array.isArray(r) ? r = n3t(r) : typeof r == "string" ? r = k3(A1(r)) : PZ(r) || (r = k3(r)) : r = s3t() : r && !Array.isArray(r) && (typeof r == "string" && (r = A1(r)), PZ(r) || (r = k3(r)));
  else if (e.type === "param") {
    if (typeof r == "string" && (r = A1(r)), s === void 0)
      throw new Error("Assertion failure.");
  } else if (typeof r == "string" && (r = A1(r)), Array.isArray(r))
    throw new Error("Cannot replace single expression with an array.");
  if (s === void 0)
    wZ(i, n, r), i[n] = r;
  else {
    const a = i[n].slice();
    e.type === "statement" || e.type === "param" ? r == null ? a.splice(s, 1) : Array.isArray(r) ? a.splice(s, 1, ...r) : a[s] = r : a[s] = r, wZ(i, n, a), i[n] = a;
  }
}
Object.defineProperty(o7, "__esModule", {
  value: !0
});
o7.default = h3t;
var c3t = gm, p3t = PI, f3t = AI;
function h3t(e, t, r) {
  t = e.code(t);
  let i;
  return (n) => {
    const s = (0, c3t.normalizeReplacements)(n);
    return i || (i = (0, p3t.default)(e, t, r)), e.unwrap((0, f3t.default)(i, s));
  };
}
var S7 = {};
Object.defineProperty(S7, "__esModule", {
  value: !0
});
S7.default = g3t;
var d3t = gm, m3t = PI, y3t = AI;
function g3t(e, t, r) {
  const {
    metadata: i,
    names: n
  } = b3t(e, t, r);
  return (s) => {
    const a = {};
    return s.forEach((o, l) => {
      a[n[l]] = o;
    }), (o) => {
      const l = (0, d3t.normalizeReplacements)(o);
      return l && Object.keys(l).forEach((u) => {
        if (Object.prototype.hasOwnProperty.call(a, u))
          throw new Error("Unexpected replacement overlap.");
      }), e.unwrap((0, y3t.default)(i, l ? Object.assign(l, a) : a));
    };
  };
}
function b3t(e, t, r) {
  let i = "BABEL_TPL$";
  const n = t.join("");
  do
    i = "$$" + i;
  while (n.includes(i));
  const {
    names: s,
    code: a
  } = v3t(t, i);
  return {
    metadata: (0, m3t.default)(e, e.code(a), {
      parser: r.parser,
      placeholderWhitelist: new Set(s.concat(r.placeholderWhitelist ? Array.from(r.placeholderWhitelist) : [])),
      placeholderPattern: r.placeholderPattern,
      preserveComments: r.preserveComments,
      syntacticPlaceholders: r.syntacticPlaceholders
    }),
    names: s
  };
}
function v3t(e, t) {
  const r = [];
  let i = e[0];
  for (let n = 1; n < e.length; n++) {
    const s = "".concat(t).concat(n - 1);
    r.push(s), i += s + e[n];
  }
  return {
    names: r,
    code: i
  };
}
Object.defineProperty(a7, "__esModule", {
  value: !0
});
a7.default = age;
var Qc = gm, AZ = o7, CZ = S7;
const _Z = (0, Qc.validate)({
  placeholderPattern: !1
});
function age(e, t) {
  const r = /* @__PURE__ */ new WeakMap(), i = /* @__PURE__ */ new WeakMap(), n = t || (0, Qc.validate)(null);
  return Object.assign((s, ...a) => {
    if (typeof s == "string") {
      if (a.length > 1)
        throw new Error("Unexpected extra params.");
      return IZ((0, AZ.default)(e, s, (0, Qc.merge)(n, (0, Qc.validate)(a[0]))));
    } else if (Array.isArray(s)) {
      let o = r.get(s);
      return o || (o = (0, CZ.default)(e, s, n), r.set(s, o)), IZ(o(a));
    } else if (typeof s == "object" && s) {
      if (a.length > 0)
        throw new Error("Unexpected extra params.");
      return age(e, (0, Qc.merge)(n, (0, Qc.validate)(s)));
    }
    throw new Error("Unexpected template param ".concat(typeof s));
  }, {
    ast: (s, ...a) => {
      if (typeof s == "string") {
        if (a.length > 1)
          throw new Error("Unexpected extra params.");
        return (0, AZ.default)(e, s, (0, Qc.merge)((0, Qc.merge)(n, (0, Qc.validate)(a[0])), _Z))();
      } else if (Array.isArray(s)) {
        let o = i.get(s);
        return o || (o = (0, CZ.default)(e, s, (0, Qc.merge)(n, _Z)), i.set(s, o)), o(a)();
      }
      throw new Error("Unexpected template param ".concat(typeof s));
    }
  });
}
function IZ(e) {
  let t = "";
  try {
    throw new Error();
  } catch (r) {
    r.stack && (t = r.stack.split("\n").slice(3).join("\n"));
  }
  return (r) => {
    try {
      return e(r);
    } catch (i) {
      throw i.stack += "\n    =============\n".concat(t), i;
    }
  };
}
Object.defineProperty($a, "__esModule", {
  value: !0
});
$a.statements = $a.statement = $a.smart = $a.program = $a.expression = $a.default = void 0;
var pS = Ll, fS = a7;
const $P = (0, fS.default)(pS.smart);
$a.smart = $P;
const oge = (0, fS.default)(pS.statement);
$a.statement = oge;
const lge = (0, fS.default)(pS.statements);
$a.statements = lge;
const uge = (0, fS.default)(pS.expression);
$a.expression = uge;
const cge = (0, fS.default)(pS.program);
$a.program = cge;
var T3t = Object.assign($P.bind(void 0), {
  smart: $P,
  statement: oge,
  statements: lge,
  expression: uge,
  program: cge,
  ast: $P.ast
});
$a.default = T3t;
Object.defineProperty(n7, "__esModule", {
  value: !0
});
n7.default = U3t;
var pge = $a, S3t = Qn();
const {
  NOT_LOCAL_BINDING: kZ,
  cloneNode: x3t,
  identifier: E3t,
  isAssignmentExpression: P3t,
  isAssignmentPattern: w3t,
  isFunction: fge,
  isIdentifier: OZ,
  isLiteral: NZ,
  isNullLiteral: A3t,
  isObjectMethod: C3t,
  isObjectProperty: _3t,
  isRegExpLiteral: I3t,
  isRestElement: k3t,
  isTemplateLiteral: O3t,
  isVariableDeclarator: N3t,
  toBindingIdentifierName: D3t
} = S3t;
function L3t(e) {
  const t = e.params.findIndex((r) => w3t(r) || k3t(r));
  return t === -1 ? e.params.length : t;
}
const M3t = pge.default.statement("\n  (function (FUNCTION_KEY) {\n    function FUNCTION_ID() {\n      return FUNCTION_KEY.apply(this, arguments);\n    }\n\n    FUNCTION_ID.toString = function () {\n      return FUNCTION_KEY.toString();\n    }\n\n    return FUNCTION_ID;\n  })(FUNCTION)\n"), R3t = pge.default.statement("\n  (function (FUNCTION_KEY) {\n    function* FUNCTION_ID() {\n      return yield* FUNCTION_KEY.apply(this, arguments);\n    }\n\n    FUNCTION_ID.toString = function () {\n      return FUNCTION_KEY.toString();\n    };\n\n    return FUNCTION_ID;\n  })(FUNCTION)\n"), B3t = {
  "ReferencedIdentifier|BindingIdentifier"(e, t) {
    e.node.name !== t.name || e.scope.getBindingIdentifier(t.name) !== t.outerDeclar || (t.selfReference = !0, e.stop());
  }
};
function F3t(e) {
  return A3t(e) ? "null" : I3t(e) ? "_".concat(e.pattern, "_").concat(e.flags) : O3t(e) ? e.quasis.map((t) => t.value.raw).join("") : e.value !== void 0 ? e.value + "" : "";
}
function j3t(e, t, r, i) {
  if (e.selfReference)
    if (i.hasBinding(r.name) && !i.hasGlobal(r.name))
      i.rename(r.name);
    else {
      if (!fge(t))
        return;
      let n = M3t;
      t.generator && (n = R3t);
      const s = n({
        FUNCTION: t,
        FUNCTION_ID: r,
        FUNCTION_KEY: i.generateUidIdentifier(r.name)
      }).expression, a = s.callee.body.body[0].params;
      for (let o = 0, l = L3t(t); o < l; o++)
        a.push(i.generateUidIdentifier("x"));
      return s;
    }
  t.id = r, i.getProgramParent().references[r.name] = !0;
}
function $3t(e, t, r) {
  const i = {
    selfAssignment: !1,
    selfReference: !1,
    outerDeclar: r.getBindingIdentifier(t),
    name: t
  }, n = r.getOwnBinding(t);
  return n ? n.kind === "param" && (i.selfReference = !0) : (i.outerDeclar || r.hasGlobal(t)) && r.traverse(e, B3t, i), i;
}
function U3t({
  node: e,
  parent: t,
  scope: r,
  id: i
}, n = !1, s = !1) {
  if (e.id)
    return;
  if ((_3t(t) || C3t(t, {
    kind: "method"
  })) && (!t.computed || NZ(t.key)))
    i = t.key;
  else if (N3t(t)) {
    if (i = t.id, OZ(i) && !n) {
      const u = r.parent.getBinding(i.name);
      if (u && u.constant && r.getBinding(i.name) === u) {
        e.id = x3t(i), e.id[kZ] = !0;
        return;
      }
    }
  } else if (P3t(t, {
    operator: "="
  }))
    i = t.left;
  else if (!i)
    return;
  let a;
  if (i && NZ(i) ? a = F3t(i) : i && OZ(i) && (a = i.name), a === void 0 || !s && fge(e) && /[\uD800-\uDFFF]/.test(a))
    return;
  a = D3t(a);
  const o = E3t(a);
  o[kZ] = !0;
  const l = $3t(e, a, r);
  return j3t(l, e, o, r) || e;
}
Object.defineProperty(ym, "__esModule", {
  value: !0
});
ym.arrowFunctionToExpression = uBt;
ym.ensureBlock = aBt;
ym.toComputedKey = sBt;
ym.unwrapFunctionEnvironment = oBt;
var q3t = Nr(), x7 = dm, V3t = n7, E7 = Ff;
const {
  arrowFunctionExpression: P7,
  assignmentExpression: xd,
  binaryExpression: S8,
  blockStatement: W3t,
  callExpression: Ly,
  conditionalExpression: H3t,
  expressionStatement: hge,
  identifier: tn,
  isIdentifier: K3t,
  jsxIdentifier: z3t,
  logicalExpression: G3t,
  LOGICAL_OPERATORS: Y3t,
  memberExpression: _c,
  metaProperty: X3t,
  numericLiteral: J3t,
  objectExpression: Q3t,
  restElement: Z3t,
  returnStatement: eBt,
  sequenceExpression: tBt,
  spreadElement: rBt,
  stringLiteral: dge,
  super: x8,
  thisExpression: tT,
  toExpression: iBt,
  unaryExpression: nBt
} = q3t;
function sBt() {
  let e;
  if (this.isMemberExpression())
    e = this.node.property;
  else if (this.isProperty() || this.isMethod())
    e = this.node.key;
  else
    throw new ReferenceError("todo");
  return this.node.computed || K3t(e) && (e = dge(e.name)), e;
}
function aBt() {
  const e = this.get("body"), t = e.node;
  if (Array.isArray(e))
    throw new Error("Can't convert array path to a block statement");
  if (!t)
    throw new Error("Can't convert node without a body");
  if (e.isBlockStatement())
    return t;
  const r = [];
  let i = "body", n, s;
  e.isStatement() ? (s = "body", n = 0, r.push(e.node)) : (i += ".body.0", this.isFunction() ? (n = "argument", r.push(eBt(e.node))) : (n = "expression", r.push(hge(e.node)))), this.node.body = W3t(r);
  const a = this.get(i);
  return e.setup(a, s ? a.node[s] : a.node, s, n), this.node;
}
ym.arrowFunctionToShadowed = function() {
  this.isArrowFunctionExpression() && this.arrowFunctionToExpression();
};
function oBt() {
  if (!this.isArrowFunctionExpression() && !this.isFunctionExpression() && !this.isFunctionDeclaration())
    throw this.buildCodeFrameError("Can only unwrap the environment of a function.");
  mge(this);
}
function lBt(e, t) {
  e.node.type = t;
}
function uBt({
  allowInsertArrow: e = !0,
  allowInsertArrowWithRest: t = e,
  noNewArrows: r = !((i) => (i = arguments[0]) == null ? void 0 : i.specCompliant)()
} = {}) {
  if (!this.isArrowFunctionExpression())
    throw this.buildCodeFrameError("Cannot convert non-arrow function to a function expression.");
  const {
    thisBinding: i,
    fnPath: n
  } = mge(this, r, e, t);
  if (n.ensureBlock(), lBt(n, "FunctionExpression"), !r) {
    const s = i ? null : n.scope.generateUidIdentifier("arrowCheckId");
    return s && n.parentPath.scope.push({
      id: s,
      init: Q3t([])
    }), n.get("body").unshiftContainer("body", hge(Ly(this.hub.addHelper("newArrowCheck"), [tT(), tn(s ? s.name : i)]))), n.replaceWith(Ly(_c((0, V3t.default)(this, !0) || n.node, tn("bind")), [s ? tn(s.name) : tT()])), n.get("callee.object");
  }
  return n;
}
const cBt = (0, E7.merge)([{
  CallExpression(e, {
    allSuperCalls: t
  }) {
    e.get("callee").isSuper() && t.push(e);
  }
}, x7.default]);
function mge(e, t = !0, r = !0, i = !0) {
  let n, s = e.findParent((m) => {
    if (m.isArrowFunctionExpression()) {
      var g;
      return (g = n) != null || (n = m), !1;
    }
    return m.isFunction() || m.isProgram() || m.isClassProperty({
      static: !1
    }) || m.isClassPrivateProperty({
      static: !1
    });
  });
  const a = s.isClassMethod({
    kind: "constructor"
  });
  if (s.isClassProperty() || s.isClassPrivateProperty())
    if (n)
      s = n;
    else if (r)
      e.replaceWith(Ly(P7([], iBt(e.node)), [])), s = e.get("callee"), e = s.get("body");
    else
      throw e.buildCodeFrameError("Unable to transform arrow inside class property");
  const {
    thisPaths: o,
    argumentsPaths: l,
    newTargetPaths: u,
    superProps: c,
    superCalls: f
  } = bBt(e);
  if (a && f.length > 0) {
    if (!r)
      throw f[0].buildCodeFrameError("When using '@babel/plugin-transform-arrow-functions', it's not possible to compile `super()` in an arrow function without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");
    if (!i)
      throw f[0].buildCodeFrameError("When using '@babel/plugin-transform-parameters', it's not possible to compile `super()` in an arrow function with default or rest parameters without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");
    const m = [];
    s.traverse(cBt, {
      allSuperCalls: m
    });
    const g = mBt(s);
    m.forEach((y) => {
      const v = tn(g);
      v.loc = y.node.callee.loc, y.get("callee").replaceWith(v);
    });
  }
  if (l.length > 0) {
    const m = rT(s, "arguments", () => {
      const g = () => tn("arguments");
      return s.scope.path.isProgram() ? H3t(S8("===", nBt("typeof", g()), dge("undefined")), s.scope.buildUndefinedNode(), g()) : g();
    });
    l.forEach((g) => {
      const y = tn(m);
      y.loc = g.node.loc, g.replaceWith(y);
    });
  }
  if (u.length > 0) {
    const m = rT(s, "newtarget", () => X3t(tn("new"), tn("target")));
    u.forEach((g) => {
      const y = tn(m);
      y.loc = g.node.loc, g.replaceWith(y);
    });
  }
  if (c.length > 0) {
    if (!r)
      throw c[0].buildCodeFrameError("When using '@babel/plugin-transform-arrow-functions', it's not possible to compile `super.prop` in an arrow function without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");
    c.reduce((g, y) => g.concat(fBt(y)), []).forEach((g) => {
      const y = g.node.computed ? "" : g.get("property").node.name, v = g.parentPath, T = v.isAssignmentExpression({
        left: g.node
      }), S = v.isCallExpression({
        callee: g.node
      }), P = v.isTaggedTemplateExpression({
        tag: g.node
      }), x = yBt(s, T, y), C = [];
      if (g.node.computed && C.push(g.get("property").node), T) {
        const w = v.node.right;
        C.push(w);
      }
      const D = Ly(tn(x), C);
      S ? (v.unshiftContainer("arguments", tT()), g.replaceWith(_c(D, tn("call"))), o.push(v.get("arguments.0"))) : T ? v.replaceWith(D) : P ? (g.replaceWith(Ly(_c(D, tn("bind"), !1), [tT()])), o.push(g.get("arguments.0"))) : g.replaceWith(D);
    });
  }
  let h;
  return (o.length > 0 || !t) && (h = dBt(s, a), (t || a && yge(s)) && (o.forEach((m) => {
    const g = m.isJSX() ? z3t(h) : tn(h);
    g.loc = m.node.loc, m.replaceWith(g);
  }), t || (h = null))), {
    thisBinding: h,
    fnPath: e
  };
}
function pBt(e) {
  return Y3t.includes(e);
}
function fBt(e) {
  if (e.parentPath.isAssignmentExpression() && e.parentPath.node.operator !== "=") {
    const r = e.parentPath, i = r.node.operator.slice(0, -1), n = r.node.right, s = pBt(i);
    if (e.node.computed) {
      const a = e.scope.generateDeclaredUidIdentifier("tmp"), o = e.node.object, l = e.node.property;
      r.get("left").replaceWith(_c(o, xd("=", a, l), !0)), r.get("right").replaceWith(t(s ? "=" : i, _c(o, tn(a.name), !0), n));
    } else {
      const a = e.node.object, o = e.node.property;
      r.get("left").replaceWith(_c(a, o)), r.get("right").replaceWith(t(s ? "=" : i, _c(a, tn(o.name)), n));
    }
    return s ? r.replaceWith(G3t(i, r.node.left, r.node.right)) : r.node.operator = "=", [r.get("left"), r.get("right").get("left")];
  } else if (e.parentPath.isUpdateExpression()) {
    const r = e.parentPath, i = e.scope.generateDeclaredUidIdentifier("tmp"), n = e.node.computed ? e.scope.generateDeclaredUidIdentifier("prop") : null, s = [xd("=", i, _c(e.node.object, n ? xd("=", n, e.node.property) : e.node.property, e.node.computed)), xd("=", _c(e.node.object, n ? tn(n.name) : e.node.property, e.node.computed), S8(e.parentPath.node.operator[0], tn(i.name), J3t(1)))];
    e.parentPath.node.prefix || s.push(tn(i.name)), r.replaceWith(tBt(s));
    const a = r.get("expressions.0.right"), o = r.get("expressions.1.left");
    return [a, o];
  }
  return [e];
  function t(r, i, n) {
    return r === "=" ? xd("=", i, n) : S8(r, i, n);
  }
}
function yge(e) {
  return e.isClassMethod() && !!e.parentPath.parentPath.node.superClass;
}
const hBt = (0, E7.merge)([{
  CallExpression(e, {
    supers: t,
    thisBinding: r
  }) {
    e.get("callee").isSuper() && (t.has(e.node) || (t.add(e.node), e.replaceWithMultiple([e.node, xd("=", tn(r), tn("this"))])));
  }
}, x7.default]);
function dBt(e, t) {
  return rT(e, "this", (r) => {
    if (!t || !yge(e))
      return tT();
    e.traverse(hBt, {
      supers: /* @__PURE__ */ new WeakSet(),
      thisBinding: r
    });
  });
}
function mBt(e) {
  return rT(e, "supercall", () => {
    const t = e.scope.generateUidIdentifier("args");
    return P7([Z3t(t)], Ly(x8(), [rBt(tn(t.name))]));
  });
}
function yBt(e, t, r) {
  const i = t ? "set" : "get";
  return rT(e, "superprop_".concat(i, ":").concat(r || ""), () => {
    const n = [];
    let s;
    if (r)
      s = _c(x8(), tn(r));
    else {
      const a = e.scope.generateUidIdentifier("prop");
      n.unshift(a), s = _c(x8(), tn(a.name), !0);
    }
    if (t) {
      const a = e.scope.generateUidIdentifier("value");
      n.push(a), s = xd("=", s, tn(a.name));
    }
    return P7(n, s);
  });
}
function rT(e, t, r) {
  const i = "binding:" + t;
  let n = e.getData(i);
  if (!n) {
    const s = e.scope.generateUidIdentifier(t);
    n = s.name, e.setData(i, n), e.scope.push({
      id: s,
      init: r(n)
    });
  }
  return n;
}
const gBt = (0, E7.merge)([{
  ThisExpression(e, {
    thisPaths: t
  }) {
    t.push(e);
  },
  JSXIdentifier(e, {
    thisPaths: t
  }) {
    e.node.name === "this" && (!e.parentPath.isJSXMemberExpression({
      object: e.node
    }) && !e.parentPath.isJSXOpeningElement({
      name: e.node
    }) || t.push(e));
  },
  CallExpression(e, {
    superCalls: t
  }) {
    e.get("callee").isSuper() && t.push(e);
  },
  MemberExpression(e, {
    superProps: t
  }) {
    e.get("object").isSuper() && t.push(e);
  },
  Identifier(e, {
    argumentsPaths: t
  }) {
    if (!e.isReferencedIdentifier({
      name: "arguments"
    }))
      return;
    let r = e.scope;
    do {
      if (r.hasOwnBinding("arguments")) {
        r.rename("arguments");
        return;
      }
      if (r.path.isFunction() && !r.path.isArrowFunctionExpression())
        break;
    } while (r = r.parent);
    t.push(e);
  },
  MetaProperty(e, {
    newTargetPaths: t
  }) {
    e.get("meta").isIdentifier({
      name: "new"
    }) && e.get("property").isIdentifier({
      name: "target"
    }) && t.push(e);
  }
}, x7.default]);
function bBt(e) {
  const t = [], r = [], i = [], n = [], s = [];
  return e.traverse(gBt, {
    thisPaths: t,
    argumentsPaths: r,
    newTargetPaths: i,
    superProps: n,
    superCalls: s
  }), {
    thisPaths: t,
    argumentsPaths: r,
    newTargetPaths: i,
    superProps: n,
    superCalls: s
  };
}
var On = {};
Object.defineProperty(On, "__esModule", {
  value: !0
});
On._guessExecutionStatusRelativeTo = UBt;
On._resolve = HBt;
On.canHaveVariableDeclarationOrExpression = DBt;
On.canSwapBetweenExpressionAndStatement = LBt;
On.equals = OBt;
On.getSource = FBt;
On.has = bge;
On.is = void 0;
On.isCompletionRecord = MBt;
On.isConstantExpression = KBt;
On.isInStrictMode = zBt;
On.isNodeType = NBt;
On.isStatementOrBlock = RBt;
On.isStatic = IBt;
On.isnt = kBt;
On.matchesPattern = _Bt;
On.referencesImport = BBt;
On.resolve = WBt;
On.willIMaybeExecuteBefore = jBt;
var vBt = Nr();
const {
  STATEMENT_OR_BLOCK_KEYS: TBt,
  VISITOR_KEYS: SBt,
  isBlockStatement: gge,
  isExpression: xBt,
  isIdentifier: EBt,
  isLiteral: PBt,
  isStringLiteral: wBt,
  isType: ABt,
  matchesPattern: CBt
} = vBt;
function _Bt(e, t) {
  return CBt(this.node, e, t);
}
function bge(e) {
  const t = this.node && this.node[e];
  return t && Array.isArray(t) ? !!t.length : !!t;
}
function IBt() {
  return this.scope.isStatic(this.node);
}
On.is = bge;
function kBt(e) {
  return !this.has(e);
}
function OBt(e, t) {
  return this.node[e] === t;
}
function NBt(e) {
  return ABt(this.type, e);
}
function DBt() {
  return (this.key === "init" || this.key === "left") && this.parentPath.isFor();
}
function LBt(e) {
  return this.key !== "body" || !this.parentPath.isArrowFunctionExpression() ? !1 : this.isExpression() ? gge(e) : this.isBlockStatement() ? xBt(e) : !1;
}
function MBt(e) {
  let t = this, r = !0;
  do {
    const {
      type: i,
      container: n
    } = t;
    if (!r && (t.isFunction() || i === "StaticBlock"))
      return !!e;
    if (r = !1, Array.isArray(n) && t.key !== n.length - 1)
      return !1;
  } while ((t = t.parentPath) && !t.isProgram() && !t.isDoExpression());
  return !0;
}
function RBt() {
  return this.parentPath.isLabeledStatement() || gge(this.container) ? !1 : TBt.includes(this.key);
}
function BBt(e, t) {
  if (!this.isReferencedIdentifier()) {
    if (this.isJSXMemberExpression() && this.node.property.name === t || (this.isMemberExpression() || this.isOptionalMemberExpression()) && (this.node.computed ? wBt(this.node.property, {
      value: t
    }) : this.node.property.name === t)) {
      const s = this.get("object");
      return s.isReferencedIdentifier() && s.referencesImport(e, "*");
    }
    return !1;
  }
  const r = this.scope.getBinding(this.node.name);
  if (!r || r.kind !== "module")
    return !1;
  const i = r.path, n = i.parentPath;
  if (!n.isImportDeclaration())
    return !1;
  if (n.node.source.value === e) {
    if (!t)
      return !0;
  } else
    return !1;
  return !!(i.isImportDefaultSpecifier() && t === "default" || i.isImportNamespaceSpecifier() && t === "*" || i.isImportSpecifier() && EBt(i.node.imported, {
    name: t
  }));
}
function FBt() {
  const e = this.node;
  if (e.end) {
    const t = this.hub.getCode();
    if (t)
      return t.slice(e.start, e.end);
  }
  return "";
}
function jBt(e) {
  return this._guessExecutionStatusRelativeTo(e) !== "after";
}
function DZ(e) {
  return e.isProgram() ? e : (e.parentPath.scope.getFunctionParent() || e.parentPath.scope.getProgramParent()).path;
}
function $Bt(e, t) {
  switch (e) {
    case "LogicalExpression":
      return t === "right";
    case "ConditionalExpression":
    case "IfStatement":
      return t === "consequent" || t === "alternate";
    case "WhileStatement":
    case "DoWhileStatement":
    case "ForInStatement":
    case "ForOfStatement":
      return t === "body";
    case "ForStatement":
      return t === "body" || t === "update";
    case "SwitchStatement":
      return t === "cases";
    case "TryStatement":
      return t === "handler";
    case "AssignmentPattern":
      return t === "right";
    case "OptionalMemberExpression":
      return t === "property";
    case "OptionalCallExpression":
      return t === "arguments";
    default:
      return !1;
  }
}
function LZ(e, t) {
  for (let r = 0; r < t; r++) {
    const i = e[r];
    if ($Bt(i.parent.type, i.parentKey))
      return !0;
  }
  return !1;
}
const MZ = Symbol();
function UBt(e) {
  return E8(this, e, /* @__PURE__ */ new Map());
}
function E8(e, t, r) {
  const i = {
    this: DZ(e),
    target: DZ(t)
  };
  if (i.target.node !== i.this.node)
    return VBt(e, i.target, r);
  const n = {
    target: t.getAncestry(),
    this: e.getAncestry()
  };
  if (n.target.indexOf(e) >= 0)
    return "after";
  if (n.this.indexOf(t) >= 0)
    return "before";
  let s;
  const a = {
    target: 0,
    this: 0
  };
  for (; !s && a.this < n.this.length; ) {
    const c = n.this[a.this];
    a.target = n.target.indexOf(c), a.target >= 0 ? s = c : a.this++;
  }
  if (!s)
    throw new Error("Internal Babel error - The two compared nodes don't appear to belong to the same program.");
  if (LZ(n.this, a.this - 1) || LZ(n.target, a.target - 1))
    return "unknown";
  const o = {
    this: n.this[a.this - 1],
    target: n.target[a.target - 1]
  };
  if (o.target.listKey && o.this.listKey && o.target.container === o.this.container)
    return o.target.key > o.this.key ? "before" : "after";
  const l = SBt[s.type], u = {
    this: l.indexOf(o.this.parentKey),
    target: l.indexOf(o.target.parentKey)
  };
  return u.target > u.this ? "before" : "after";
}
function qBt(e, t, r) {
  if (t.isFunctionDeclaration()) {
    if (t.parentPath.isExportDeclaration())
      return "unknown";
  } else
    return E8(e, t, r) === "before" ? "before" : "unknown";
  const i = t.scope.getBinding(t.node.id.name);
  if (!i.references)
    return "before";
  const n = i.referencePaths;
  let s;
  for (const a of n) {
    if (!!a.find((u) => u.node === t.node))
      continue;
    if (a.key !== "callee" || !a.parentPath.isCallExpression())
      return "unknown";
    const l = E8(e, a, r);
    if (s && s !== l)
      return "unknown";
    s = l;
  }
  return s;
}
function VBt(e, t, r) {
  let i = r.get(e.node), n;
  if (!i)
    r.set(e.node, i = /* @__PURE__ */ new Map());
  else if (n = i.get(t.node))
    return n === MZ ? "unknown" : n;
  i.set(t.node, MZ);
  const s = qBt(e, t, r);
  return i.set(t.node, s), s;
}
function WBt(e, t) {
  return this._resolve(e, t) || this;
}
function HBt(e, t) {
  if (!(t && t.indexOf(this) >= 0))
    if (t = t || [], t.push(this), this.isVariableDeclarator()) {
      if (this.get("id").isIdentifier())
        return this.get("init").resolve(e, t);
    } else if (this.isReferencedIdentifier()) {
      const r = this.scope.getBinding(this.node.name);
      if (!r || !r.constant || r.kind === "module")
        return;
      if (r.path !== this) {
        const i = r.path.resolve(e, t);
        return this.find((n) => n.node === i.node) ? void 0 : i;
      }
    } else {
      if (this.isTypeCastExpression())
        return this.get("expression").resolve(e, t);
      if (e && this.isMemberExpression()) {
        const r = this.toComputedKey();
        if (!PBt(r))
          return;
        const i = r.value, n = this.get("object").resolve(e, t);
        if (n.isObjectExpression()) {
          const s = n.get("properties");
          for (const a of s) {
            if (!a.isProperty())
              continue;
            const o = a.get("key");
            let l = a.isnt("computed") && o.isIdentifier({
              name: i
            });
            if (l = l || o.isLiteral({
              value: i
            }), l)
              return a.get("value").resolve(e, t);
          }
        } else if (n.isArrayExpression() && !isNaN(+i)) {
          const a = n.get("elements")[i];
          if (a)
            return a.resolve(e, t);
        }
      }
    }
}
function KBt() {
  if (this.isIdentifier()) {
    const e = this.scope.getBinding(this.node.name);
    return e ? e.constant : !1;
  }
  if (this.isLiteral())
    return this.isRegExpLiteral() ? !1 : this.isTemplateLiteral() ? this.get("expressions").every((e) => e.isConstantExpression()) : !0;
  if (this.isUnaryExpression())
    return this.node.operator !== "void" ? !1 : this.get("argument").isConstantExpression();
  if (this.isBinaryExpression()) {
    const {
      operator: e
    } = this.node;
    return e !== "in" && e !== "instanceof" && this.get("left").isConstantExpression() && this.get("right").isConstantExpression();
  }
  return !1;
}
function zBt() {
  return !!(this.isProgram() ? this : this.parentPath).find((r) => {
    if (r.isProgram({
      sourceType: "module"
    }) || r.isClass())
      return !0;
    if (r.isArrowFunctionExpression() && !r.get("body").isBlockStatement())
      return !1;
    let i;
    if (r.isFunction())
      i = r.node.body;
    else if (r.isProgram())
      i = r.node;
    else
      return !1;
    for (const n of i.directives)
      if (n.value.value === "use strict")
        return !0;
  });
}
var pn = {}, RZ;
function GBt() {
  if (RZ)
    return pn;
  RZ = 1, Object.defineProperty(pn, "__esModule", {
    value: !0
  }), pn._call = i, pn._getQueueContexts = D, pn._resyncKey = g, pn._resyncList = y, pn._resyncParent = m, pn._resyncRemoved = v, pn.call = r, pn.isBlacklisted = pn.isDenylisted = n, pn.popContext = T, pn.pushContext = S, pn.requeue = C, pn.resync = h, pn.setContext = f, pn.setKey = x, pn.setScope = c, pn.setup = P, pn.skip = o, pn.skipKey = l, pn.stop = u, pn.visit = a;
  var e = w7(), t = bm();
  function r(w) {
    const A = this.opts;
    if (this.debug(w), this.node && this._call(A[w]))
      return !0;
    if (this.node) {
      var I;
      return this._call((I = A[this.node.type]) == null ? void 0 : I[w]);
    }
    return !1;
  }
  function i(w) {
    if (!w)
      return !1;
    for (const A of w) {
      if (!A)
        continue;
      const I = this.node;
      if (!I)
        return !0;
      const L = A.call(this.state, this, this.state);
      if (L && typeof L == "object" && typeof L.then == "function")
        throw new Error("You appear to be using a plugin with an async traversal visitor, which your current version of Babel does not support. If you're using a published plugin, you may need to upgrade your @babel/core version.");
      if (L)
        throw new Error("Unexpected return value from visitor method ".concat(A));
      if (this.node !== I || this._traverseFlags > 0)
        return !0;
    }
    return !1;
  }
  function n() {
    var w;
    const A = (w = this.opts.denylist) != null ? w : this.opts.blacklist;
    return A && A.indexOf(this.node.type) > -1;
  }
  function s(w, A) {
    w.context !== A && (w.context = A, w.state = A.state, w.opts = A.opts);
  }
  function a() {
    var w, A;
    if (!this.node || this.isDenylisted() || (w = (A = this.opts).shouldSkip) != null && w.call(A, this))
      return !1;
    const I = this.context;
    return this.shouldSkip || this.call("enter") ? (this.debug("Skip..."), this.shouldStop) : (s(this, I), this.debug("Recursing into..."), this.shouldStop = (0, e.traverseNode)(this.node, this.opts, this.scope, this.state, this, this.skipKeys), s(this, I), this.call("exit"), this.shouldStop);
  }
  function o() {
    this.shouldSkip = !0;
  }
  function l(w) {
    this.skipKeys == null && (this.skipKeys = {}), this.skipKeys[w] = !0;
  }
  function u() {
    this._traverseFlags |= t.SHOULD_SKIP | t.SHOULD_STOP;
  }
  function c() {
    var w, A;
    if ((w = this.opts) != null && w.noScope)
      return;
    let I = this.parentPath;
    ((this.key === "key" || this.listKey === "decorators") && I.isMethod() || this.key === "discriminant" && I.isSwitchStatement()) && (I = I.parentPath);
    let L;
    for (; I && !L; ) {
      var O;
      if ((O = I.opts) != null && O.noScope)
        return;
      L = I.scope, I = I.parentPath;
    }
    this.scope = this.getScope(L), (A = this.scope) == null || A.init();
  }
  function f(w) {
    return this.skipKeys != null && (this.skipKeys = {}), this._traverseFlags = 0, w && (this.context = w, this.state = w.state, this.opts = w.opts), this.setScope(), this;
  }
  function h() {
    this.removed || (this._resyncParent(), this._resyncList(), this._resyncKey());
  }
  function m() {
    this.parentPath && (this.parent = this.parentPath.node);
  }
  function g() {
    if (this.container && this.node !== this.container[this.key]) {
      if (Array.isArray(this.container)) {
        for (let w = 0; w < this.container.length; w++)
          if (this.container[w] === this.node) {
            this.setKey(w);
            return;
          }
      } else
        for (const w of Object.keys(this.container))
          if (this.container[w] === this.node) {
            this.setKey(w);
            return;
          }
      this.key = null;
    }
  }
  function y() {
    if (!this.parent || !this.inList)
      return;
    const w = this.parent[this.listKey];
    this.container !== w && (this.container = w || null);
  }
  function v() {
    (this.key == null || !this.container || this.container[this.key] !== this.node) && this._markRemoved();
  }
  function T() {
    this.contexts.pop(), this.contexts.length > 0 ? this.setContext(this.contexts[this.contexts.length - 1]) : this.setContext(void 0);
  }
  function S(w) {
    this.contexts.push(w), this.setContext(w);
  }
  function P(w, A, I, L) {
    this.listKey = I, this.container = A, this.parentPath = w || this.parentPath, this.setKey(L);
  }
  function x(w) {
    var A;
    this.key = w, this.node = this.container[this.key], this.type = (A = this.node) == null ? void 0 : A.type;
  }
  function C(w = this) {
    if (w.removed)
      return;
    const A = this.contexts;
    for (const I of A)
      I.maybeQueue(w);
  }
  function D() {
    let w = this, A = this.contexts;
    for (; !A.length && (w = w.parentPath, !!w); )
      A = w.contexts;
    return A;
  }
  return pn;
}
var Up = {}, CI = {};
Object.defineProperty(CI, "__esModule", {
  value: !0
});
CI.hooks = void 0;
CI.hooks = [function(e, t) {
  if (e.key === "test" && (t.isWhile() || t.isSwitchCase()) || e.key === "declaration" && t.isExportDeclaration() || e.key === "body" && t.isLabeledStatement() || e.listKey === "declarations" && t.isVariableDeclaration() && t.node.declarations.length === 1 || e.key === "expression" && t.isExpressionStatement())
    return t.remove(), !0;
}, function(e, t) {
  if (t.isSequenceExpression() && t.node.expressions.length === 1)
    return t.replaceWith(t.node.expressions[0]), !0;
}, function(e, t) {
  if (t.isBinary())
    return e.key === "left" ? t.replaceWith(t.node.right) : t.replaceWith(t.node.left), !0;
}, function(e, t) {
  if (t.isIfStatement() && e.key === "consequent" || e.key === "body" && (t.isLoop() || t.isArrowFunctionExpression()))
    return e.replaceWith({
      type: "BlockStatement",
      body: []
    }), !0;
}];
var BZ;
function YBt() {
  if (BZ)
    return Up;
  BZ = 1, Object.defineProperty(Up, "__esModule", {
    value: !0
  }), Up._assertUnremoved = c, Up._callRemovalHooks = o, Up._markRemoved = u, Up._remove = l, Up._removeFromScope = a, Up.remove = s;
  var e = CI, t = as, r = bm(), i = Nr();
  const {
    getBindingIdentifiers: n
  } = i;
  function s() {
    var f;
    if (this._assertUnremoved(), this.resync(), (f = this.opts) != null && f.noScope || this._removeFromScope(), this._callRemovalHooks()) {
      this._markRemoved();
      return;
    }
    this.shareCommentsWithSiblings(), this._remove(), this._markRemoved();
  }
  function a() {
    const f = n(this.node, !1, !1, !0);
    Object.keys(f).forEach((h) => this.scope.removeBinding(h));
  }
  function o() {
    for (const f of e.hooks)
      if (f(this, this.parentPath))
        return !0;
  }
  function l() {
    Array.isArray(this.container) ? (this.container.splice(this.key, 1), this.updateSiblingKeys(this.key, -1)) : this._replaceWith(null);
  }
  function u() {
    this._traverseFlags |= r.SHOULD_SKIP | r.REMOVED, this.parent && (0, t.getCachedPaths)(this.hub, this.parent).delete(this.node), this.node = null;
  }
  function c() {
    if (this.removed)
      throw this.buildCodeFrameError("NodePath has been removed so is read-only.");
  }
  return Up;
}
var fo = {}, _I = {};
Object.defineProperty(_I, "__esModule", {
  value: !0
});
_I.default = void 0;
var vge = Nr(), XBt = vge;
const {
  react: JBt
} = vge, {
  cloneNode: QBt,
  jsxExpressionContainer: ZBt,
  variableDeclaration: eFt,
  variableDeclarator: tFt
} = XBt, rFt = {
  ReferencedIdentifier(e, t) {
    if (e.isJSXIdentifier() && JBt.isCompatTag(e.node.name) && !e.parentPath.isJSXMemberExpression())
      return;
    if (e.node.name === "this") {
      let i = e.scope;
      do
        if (i.path.isFunction() && !i.path.isArrowFunctionExpression())
          break;
      while (i = i.parent);
      i && t.breakOnScopePaths.push(i.path);
    }
    const r = e.scope.getBinding(e.node.name);
    if (r) {
      for (const i of r.constantViolations)
        if (i.scope !== r.path.scope) {
          t.mutableBinding = !0, e.stop();
          return;
        }
      r === t.scope.getBinding(e.node.name) && (t.bindings[e.node.name] = r);
    }
  }
};
class iFt {
  constructor(t, r) {
    this.breakOnScopePaths = void 0, this.bindings = void 0, this.mutableBinding = void 0, this.scopes = void 0, this.scope = void 0, this.path = void 0, this.attachAfter = void 0, this.breakOnScopePaths = [], this.bindings = {}, this.mutableBinding = !1, this.scopes = [], this.scope = r, this.path = t, this.attachAfter = !1;
  }
  isCompatibleScope(t) {
    for (const r of Object.keys(this.bindings)) {
      const i = this.bindings[r];
      if (!t.bindingIdentifierEquals(r, i.identifier))
        return !1;
    }
    return !0;
  }
  getCompatibleScopes() {
    let t = this.path.scope;
    do {
      if (this.isCompatibleScope(t))
        this.scopes.push(t);
      else
        break;
      if (this.breakOnScopePaths.indexOf(t.path) >= 0)
        break;
    } while (t = t.parent);
  }
  getAttachmentPath() {
    let t = this._getAttachmentPath();
    if (!t)
      return;
    let r = t.scope;
    if (r.path === t && (r = t.scope.parent), r.path.isProgram() || r.path.isFunction())
      for (const i of Object.keys(this.bindings)) {
        if (!r.hasOwnBinding(i))
          continue;
        const n = this.bindings[i];
        if (n.kind === "param" || n.path.parentKey === "params")
          continue;
        if (this.getAttachmentParentForPath(n.path).key >= t.key) {
          this.attachAfter = !0, t = n.path;
          for (const a of n.constantViolations)
            this.getAttachmentParentForPath(a).key > t.key && (t = a);
        }
      }
    return t;
  }
  _getAttachmentPath() {
    const r = this.scopes.pop();
    if (r) {
      if (r.path.isFunction())
        if (this.hasOwnParamBindings(r)) {
          if (this.scope === r)
            return;
          const i = r.path.get("body").get("body");
          for (let n = 0; n < i.length; n++)
            if (!i[n].node._blockHoist)
              return i[n];
        } else
          return this.getNextScopeAttachmentParent();
      else if (r.path.isProgram())
        return this.getNextScopeAttachmentParent();
    }
  }
  getNextScopeAttachmentParent() {
    const t = this.scopes.pop();
    if (t)
      return this.getAttachmentParentForPath(t.path);
  }
  getAttachmentParentForPath(t) {
    do
      if (!t.parentPath || Array.isArray(t.container) && t.isStatement())
        return t;
    while (t = t.parentPath);
  }
  hasOwnParamBindings(t) {
    for (const r of Object.keys(this.bindings)) {
      if (!t.hasOwnBinding(r))
        continue;
      const i = this.bindings[r];
      if (i.kind === "param" && i.constant)
        return !0;
    }
    return !1;
  }
  run() {
    if (this.path.traverse(rFt, this), this.mutableBinding)
      return;
    this.getCompatibleScopes();
    const t = this.getAttachmentPath();
    if (!t || t.getFunctionParent() === this.path.getFunctionParent())
      return;
    let r = t.scope.generateUidIdentifier("ref");
    const i = tFt(r, this.path.node), n = this.attachAfter ? "insertAfter" : "insertBefore", [s] = t[n]([t.isVariableDeclarator() ? i : eFt("var", [i])]), a = this.path.parentPath;
    return a.isJSXElement() && this.path.container === a.node.children && (r = ZBt(r)), this.path.replaceWith(QBt(r)), t.isVariableDeclarator() ? s.get("init") : s.get("declarations.0.init");
  }
}
_I.default = iFt;
var FZ;
function nFt() {
  if (FZ)
    return fo;
  FZ = 1, Object.defineProperty(fo, "__esModule", {
    value: !0
  }), fo._containerInsert = x, fo._containerInsertAfter = D, fo._containerInsertBefore = C, fo._verifyNodeList = F, fo.hoist = N, fo.insertAfter = L, fo.insertBefore = P, fo.pushContainer = j, fo.unshiftContainer = q, fo.updateSiblingKeys = O;
  var e = as, t = _I, r = bm(), i = Nr();
  const {
    arrowFunctionExpression: n,
    assertExpression: s,
    assignmentExpression: a,
    blockStatement: o,
    callExpression: l,
    cloneNode: u,
    expressionStatement: c,
    isAssignmentExpression: f,
    isCallExpression: h,
    isExportNamedDeclaration: m,
    isExpression: g,
    isIdentifier: y,
    isSequenceExpression: v,
    isSuper: T,
    thisExpression: S
  } = i;
  function P(M) {
    this._assertUnremoved();
    const R = this._verifyNodeList(M), {
      parentPath: $,
      parent: V
    } = this;
    if ($.isExpressionStatement() || $.isLabeledStatement() || m(V) || $.isExportDefaultDeclaration() && this.isDeclaration())
      return $.insertBefore(R);
    if (this.isNodeType("Expression") && !this.isJSXElement() || $.isForStatement() && this.key === "init")
      return this.node && R.push(this.node), this.replaceExpressionWithStatements(R);
    if (Array.isArray(this.container))
      return this._containerInsertBefore(R);
    if (this.isStatementOrBlock()) {
      const K = this.node, z = K && (!this.isExpressionStatement() || K.expression != null);
      return this.replaceWith(o(z ? [K] : [])), this.unshiftContainer("body", R);
    } else
      throw new Error("We don't know what to do with this node type. We were previously a Statement but we can't fit in here?");
  }
  function x(M, R) {
    this.updateSiblingKeys(M, R.length);
    const $ = [];
    this.container.splice(M, 0, ...R);
    for (let z = 0; z < R.length; z++) {
      var V;
      const W = M + z, Y = this.getSibling(W);
      $.push(Y), (V = this.context) != null && V.queue && Y.pushContext(this.context);
    }
    const K = this._getQueueContexts();
    for (const z of $) {
      z.setScope(), z.debug("Inserted.");
      for (const W of K)
        W.maybeQueue(z, !0);
    }
    return $;
  }
  function C(M) {
    return this._containerInsert(this.key, M);
  }
  function D(M) {
    return this._containerInsert(this.key + 1, M);
  }
  const w = (M) => M[M.length - 1];
  function A(M) {
    return v(M.parent) && (w(M.parent.expressions) !== M.node || A(M.parentPath));
  }
  function I(M, R) {
    if (!f(M) || !y(M.left))
      return !1;
    const $ = R.getBlockParent();
    return $.hasOwnBinding(M.left.name) && $.getOwnBinding(M.left.name).constantViolations.length <= 1;
  }
  function L(M) {
    if (this._assertUnremoved(), this.isSequenceExpression())
      return w(this.get("expressions")).insertAfter(M);
    const R = this._verifyNodeList(M), {
      parentPath: $,
      parent: V
    } = this;
    if ($.isExpressionStatement() || $.isLabeledStatement() || m(V) || $.isExportDefaultDeclaration() && this.isDeclaration())
      return $.insertAfter(R.map((K) => g(K) ? c(K) : K));
    if (this.isNodeType("Expression") && !this.isJSXElement() && !$.isJSXElement() || $.isForStatement() && this.key === "init") {
      if (this.node) {
        const K = this.node;
        let {
          scope: z
        } = this;
        if (z.path.isPattern())
          return s(K), this.replaceWith(l(n([], K), [])), this.get("callee.body").insertAfter(R), [this];
        if (A(this))
          R.unshift(K);
        else if (h(K) && T(K.callee))
          R.unshift(K), R.push(S());
        else if (I(K, z))
          R.unshift(K), R.push(u(K.left));
        else if (z.isPure(K, !0))
          R.push(K);
        else {
          $.isMethod({
            computed: !0,
            key: K
          }) && (z = z.parent);
          const W = z.generateDeclaredUidIdentifier();
          R.unshift(c(a("=", u(W), K))), R.push(c(u(W)));
        }
      }
      return this.replaceExpressionWithStatements(R);
    } else {
      if (Array.isArray(this.container))
        return this._containerInsertAfter(R);
      if (this.isStatementOrBlock()) {
        const K = this.node, z = K && (!this.isExpressionStatement() || K.expression != null);
        return this.replaceWith(o(z ? [K] : [])), this.pushContainer("body", R);
      } else
        throw new Error("We don't know what to do with this node type. We were previously a Statement but we can't fit in here?");
    }
  }
  function O(M, R) {
    if (!this.parent)
      return;
    const $ = (0, e.getCachedPaths)(this.hub, this.parent) || [];
    for (const [, V] of $)
      typeof V.key == "number" && V.key >= M && (V.key += R);
  }
  function F(M) {
    if (!M)
      return [];
    Array.isArray(M) || (M = [M]);
    for (let R = 0; R < M.length; R++) {
      const $ = M[R];
      let V;
      if ($ ? typeof $ != "object" ? V = "contains a non-object node" : $.type ? $ instanceof r.default && (V = "has a NodePath when it expected a raw object") : V = "without a type" : V = "has falsy node", V) {
        const K = Array.isArray($) ? "array" : typeof $;
        throw new Error("Node list ".concat(V, " with the index of ").concat(R, " and type of ").concat(K));
      }
    }
    return M;
  }
  function q(M, R) {
    return this._assertUnremoved(), R = this._verifyNodeList(R), r.default.get({
      parentPath: this,
      parent: this.node,
      container: this.node[M],
      listKey: M,
      key: 0
    }).setContext(this.context)._containerInsertBefore(R);
  }
  function j(M, R) {
    this._assertUnremoved();
    const $ = this._verifyNodeList(R), V = this.node[M];
    return r.default.get({
      parentPath: this,
      parent: this.node,
      container: V,
      listKey: M,
      key: V.length
    }).setContext(this.context).replaceWithMultiple($);
  }
  function N(M = this.scope) {
    return new t.default(this, M).run();
  }
  return fo;
}
var ys = {}, jZ;
function sFt() {
  if (jZ)
    return ys;
  jZ = 1, Object.defineProperty(ys, "__esModule", {
    value: !0
  }), ys._getKey = I, ys._getPattern = L, ys.get = A, ys.getAllNextSiblings = D, ys.getAllPrevSiblings = w, ys.getBindingIdentifierPaths = q, ys.getBindingIdentifiers = O, ys.getCompletionRecords = S, ys.getNextSibling = C, ys.getOpposite = f, ys.getOuterBindingIdentifierPaths = j, ys.getOuterBindingIdentifiers = F, ys.getPrevSibling = x, ys.getSibling = P;
  var e = bm(), t = Nr();
  const {
    getBindingIdentifiers: r,
    getOuterBindingIdentifiers: i,
    isDeclaration: n,
    numericLiteral: s,
    unaryExpression: a
  } = t, o = 0, l = 1;
  function u(N) {
    return {
      type: o,
      path: N
    };
  }
  function c(N) {
    return {
      type: l,
      path: N
    };
  }
  function f() {
    return this.key === "left" ? this.getSibling("right") : this.key === "right" ? this.getSibling("left") : null;
  }
  function h(N, M, R) {
    return N && M.push(...T(N, R)), M;
  }
  function m(N, M, R) {
    let $ = [];
    for (let V = 0; V < N.length; V++) {
      const K = N[V], z = T(K, R), W = [], Y = [];
      for (const G of z)
        G.type === o && W.push(G), G.type === l && Y.push(G);
      W.length && ($ = W), M.push(...Y);
    }
    return M.push(...$), M;
  }
  function g(N) {
    N.forEach((M) => {
      M.type = l;
    });
  }
  function y(N, M) {
    N.forEach((R) => {
      R.path.isBreakStatement({
        label: null
      }) && (M ? R.path.replaceWith(a("void", s(0))) : R.path.remove());
    });
  }
  function v(N, M) {
    const R = [];
    if (M.canHaveBreak) {
      let $ = [];
      for (let V = 0; V < N.length; V++) {
        const K = N[V], z = Object.assign({}, M, {
          inCaseClause: !1
        });
        K.isBlockStatement() && (M.inCaseClause || M.shouldPopulateBreak) ? z.shouldPopulateBreak = !0 : z.shouldPopulateBreak = !1;
        const W = T(K, z);
        if (W.length > 0 && W.every((Y) => Y.type === l)) {
          $.length > 0 && W.every((Y) => Y.path.isBreakStatement({
            label: null
          })) ? (g($), R.push(...$), $.some((Y) => Y.path.isDeclaration()) && (R.push(...W), y(W, !0)), y(W, !1)) : (R.push(...W), M.shouldPopulateBreak || y(W, !0));
          break;
        }
        if (V === N.length - 1)
          R.push(...W);
        else {
          $ = [];
          for (let Y = 0; Y < W.length; Y++) {
            const G = W[Y];
            G.type === l && R.push(G), G.type === o && $.push(G);
          }
        }
      }
    } else if (N.length)
      for (let $ = N.length - 1; $ >= 0; $--) {
        const V = T(N[$], M);
        if (V.length > 1 || V.length === 1 && !V[0].path.isVariableDeclaration()) {
          R.push(...V);
          break;
        }
      }
    return R;
  }
  function T(N, M) {
    let R = [];
    if (N.isIfStatement())
      R = h(N.get("consequent"), R, M), R = h(N.get("alternate"), R, M);
    else {
      if (N.isDoExpression() || N.isFor() || N.isWhile() || N.isLabeledStatement())
        return h(N.get("body"), R, M);
      if (N.isProgram() || N.isBlockStatement())
        return v(N.get("body"), M);
      if (N.isFunction())
        return T(N.get("body"), M);
      if (N.isTryStatement())
        R = h(N.get("block"), R, M), R = h(N.get("handler"), R, M);
      else {
        if (N.isCatchClause())
          return h(N.get("body"), R, M);
        if (N.isSwitchStatement())
          return m(N.get("cases"), R, M);
        if (N.isSwitchCase())
          return v(N.get("consequent"), {
            canHaveBreak: !0,
            shouldPopulateBreak: !1,
            inCaseClause: !0
          });
        N.isBreakStatement() ? R.push(c(N)) : R.push(u(N));
      }
    }
    return R;
  }
  function S() {
    return T(this, {
      canHaveBreak: !1,
      shouldPopulateBreak: !1,
      inCaseClause: !1
    }).map((M) => M.path);
  }
  function P(N) {
    return e.default.get({
      parentPath: this.parentPath,
      parent: this.parent,
      container: this.container,
      listKey: this.listKey,
      key: N
    }).setContext(this.context);
  }
  function x() {
    return this.getSibling(this.key - 1);
  }
  function C() {
    return this.getSibling(this.key + 1);
  }
  function D() {
    let N = this.key, M = this.getSibling(++N);
    const R = [];
    for (; M.node; )
      R.push(M), M = this.getSibling(++N);
    return R;
  }
  function w() {
    let N = this.key, M = this.getSibling(--N);
    const R = [];
    for (; M.node; )
      R.push(M), M = this.getSibling(--N);
    return R;
  }
  function A(N, M = !0) {
    M === !0 && (M = this.context);
    const R = N.split(".");
    return R.length === 1 ? this._getKey(N, M) : this._getPattern(R, M);
  }
  function I(N, M) {
    const R = this.node, $ = R[N];
    return Array.isArray($) ? $.map((V, K) => e.default.get({
      listKey: N,
      parentPath: this,
      parent: R,
      container: $,
      key: K
    }).setContext(M)) : e.default.get({
      parentPath: this,
      parent: R,
      container: R,
      key: N
    }).setContext(M);
  }
  function L(N, M) {
    let R = this;
    for (const $ of N)
      $ === "." ? R = R.parentPath : Array.isArray(R) ? R = R[$] : R = R.get($, M);
    return R;
  }
  function O(N) {
    return r(this.node, N);
  }
  function F(N) {
    return i(this.node, N);
  }
  function q(N = !1, M = !1) {
    const $ = [this], V = /* @__PURE__ */ Object.create(null);
    for (; $.length; ) {
      const K = $.shift();
      if (!K || !K.node)
        continue;
      const z = r.keys[K.node.type];
      if (K.isIdentifier()) {
        N ? (V[K.node.name] = V[K.node.name] || []).push(K) : V[K.node.name] = K;
        continue;
      }
      if (K.isExportDeclaration()) {
        const W = K.get("declaration");
        n(W) && $.push(W);
        continue;
      }
      if (M) {
        if (K.isFunctionDeclaration()) {
          $.push(K.get("id"));
          continue;
        }
        if (K.isFunctionExpression())
          continue;
      }
      if (z)
        for (let W = 0; W < z.length; W++) {
          const Y = z[W], G = K.get(Y);
          Array.isArray(G) ? $.push(...G) : G.node && $.push(G);
        }
    }
    return V;
  }
  function j(N = !1) {
    return this.getBindingIdentifierPaths(N, !0);
  }
  return ys;
}
var hS = {};
Object.defineProperty(hS, "__esModule", {
  value: !0
});
hS.addComment = cFt;
hS.addComments = pFt;
hS.shareCommentsWithSiblings = uFt;
var aFt = Nr();
const {
  addComment: oFt,
  addComments: lFt
} = aFt;
function uFt() {
  if (typeof this.key == "string")
    return;
  const e = this.node;
  if (!e)
    return;
  const t = e.trailingComments, r = e.leadingComments;
  if (!t && !r)
    return;
  const i = this.getSibling(this.key - 1), n = this.getSibling(this.key + 1), s = !!i.node, a = !!n.node;
  s && (r && i.addComments("trailing", $Z(r, i.node.trailingComments)), t && !a && i.addComments("trailing", t)), a && (t && n.addComments("leading", $Z(t, n.node.leadingComments)), r && !s && n.addComments("leading", r));
}
function $Z(e, t) {
  if (!(t != null && t.length))
    return e;
  const r = new Set(t);
  return e.filter((i) => !r.has(i));
}
function cFt(e, t, r) {
  oFt(this.node, e, t, r);
}
function pFt(e, t) {
  lFt(this.node, e, t);
}
var UZ;
function bm() {
  if (UZ)
    return Ec;
  UZ = 1, Object.defineProperty(Ec, "__esModule", {
    value: !0
  }), Ec.default = Ec.SHOULD_STOP = Ec.SHOULD_SKIP = Ec.REMOVED = void 0;
  var e = qr, t = Yhe(), r = dS(), i = zme(), n = Nr(), s = n, a = as, o = dI, l = Yl, u = Gh, c = jLt(), f = EI, h = ym, m = On, g = GBt(), y = YBt(), v = nFt(), T = sFt(), S = hS, P = Mn;
  const {
    validate: x
  } = n, C = t("babel"), D = Ec.REMOVED = 1 << 0, w = Ec.SHOULD_STOP = 1 << 1, A = Ec.SHOULD_SKIP = 1 << 2;
  class I {
    constructor(O, F) {
      this.contexts = [], this.state = null, this.opts = null, this._traverseFlags = 0, this.skipKeys = null, this.parentPath = null, this.container = null, this.listKey = null, this.key = null, this.node = null, this.type = null, this.parent = F, this.hub = O, this.data = null, this.context = null, this.scope = null;
    }
    static get({
      hub: O,
      parentPath: F,
      parent: q,
      container: j,
      listKey: N,
      key: M
    }) {
      if (!O && F && (O = F.hub), !q)
        throw new Error("To get a node path the parent needs to exist");
      const R = j[M], $ = a.getOrCreateCachedPaths(O, q);
      let V = $.get(R);
      return V || (V = new I(O, q), R && $.set(R, V)), V.setup(F, j, N, M), V;
    }
    getScope(O) {
      return this.isScope() ? new i.default(this) : O;
    }
    setData(O, F) {
      return this.data == null && (this.data = /* @__PURE__ */ Object.create(null)), this.data[O] = F;
    }
    getData(O, F) {
      this.data == null && (this.data = /* @__PURE__ */ Object.create(null));
      let q = this.data[O];
      return q === void 0 && F !== void 0 && (q = this.data[O] = F), q;
    }
    hasNode() {
      return this.node != null;
    }
    buildCodeFrameError(O, F = SyntaxError) {
      return this.hub.buildError(this.node, O, F);
    }
    traverse(O, F) {
      (0, r.default)(this.node, O, this.scope, F, this);
    }
    set(O, F) {
      x(this.node, O, F), this.node[O] = F;
    }
    getPathLocation() {
      const O = [];
      let F = this;
      do {
        let q = F.key;
        F.inList && (q = "".concat(F.listKey, "[").concat(q, "]")), O.unshift(q);
      } while (F = F.parentPath);
      return O.join(".");
    }
    debug(O) {
      C.enabled && C("".concat(this.getPathLocation(), " ").concat(this.type, ": ").concat(O));
    }
    toString() {
      return (0, o.default)(this.node).code;
    }
    get inList() {
      return !!this.listKey;
    }
    set inList(O) {
      O || (this.listKey = null);
    }
    get parentKey() {
      return this.listKey || this.key;
    }
    get shouldSkip() {
      return !!(this._traverseFlags & A);
    }
    set shouldSkip(O) {
      O ? this._traverseFlags |= A : this._traverseFlags &= ~A;
    }
    get shouldStop() {
      return !!(this._traverseFlags & w);
    }
    set shouldStop(O) {
      O ? this._traverseFlags |= w : this._traverseFlags &= ~w;
    }
    get removed() {
      return !!(this._traverseFlags & D);
    }
    set removed(O) {
      O ? this._traverseFlags |= D : this._traverseFlags &= ~D;
    }
  }
  Object.assign(I.prototype, l, u, c, f, h, m, g, y, v, T, S), I.prototype._guessExecutionStatusRelativeToDifferentFunctions = m._guessExecutionStatusRelativeTo;
  for (const L of s.TYPES) {
    const O = "is".concat(L), F = s[O];
    I.prototype[O] = function(q) {
      return F(this.node, q);
    }, I.prototype["assert".concat(L)] = function(q) {
      if (!F(this.node, q))
        throw new TypeError("Expected node path of type ".concat(L));
    };
  }
  Object.assign(I.prototype, P);
  for (const L of Object.keys(e))
    L[0] !== "_" && (s.TYPES.includes(L) || s.TYPES.push(L));
  return Ec.default = I, Ec;
}
var qZ;
function fFt() {
  if (qZ)
    return Zb;
  qZ = 1, Object.defineProperty(Zb, "__esModule", {
    value: !0
  }), Zb.default = void 0;
  var e = bm(), t = Nr();
  const {
    VISITOR_KEYS: r
  } = t;
  class i {
    constructor(s, a, o, l) {
      this.queue = null, this.priorityQueue = null, this.parentPath = l, this.scope = s, this.state = o, this.opts = a;
    }
    shouldVisit(s) {
      const a = this.opts;
      if (a.enter || a.exit || a[s.type])
        return !0;
      const o = r[s.type];
      if (!(o != null && o.length))
        return !1;
      for (const l of o)
        if (s[l])
          return !0;
      return !1;
    }
    create(s, a, o, l) {
      return e.default.get({
        parentPath: this.parentPath,
        parent: s,
        container: a,
        key: o,
        listKey: l
      });
    }
    maybeQueue(s, a) {
      this.queue && (a ? this.queue.push(s) : this.priorityQueue.push(s));
    }
    visitMultiple(s, a, o) {
      if (s.length === 0)
        return !1;
      const l = [];
      for (let u = 0; u < s.length; u++) {
        const c = s[u];
        c && this.shouldVisit(c) && l.push(this.create(a, s, u, o));
      }
      return this.visitQueue(l);
    }
    visitSingle(s, a) {
      return this.shouldVisit(s[a]) ? this.visitQueue([this.create(s, s, a)]) : !1;
    }
    visitQueue(s) {
      this.queue = s, this.priorityQueue = [];
      const a = /* @__PURE__ */ new WeakSet();
      let o = !1;
      for (const l of s) {
        if (l.resync(), (l.contexts.length === 0 || l.contexts[l.contexts.length - 1] !== this) && l.pushContext(this), l.key === null)
          continue;
        const {
          node: u
        } = l;
        if (!a.has(u)) {
          if (u && a.add(u), l.visit()) {
            o = !0;
            break;
          }
          if (this.priorityQueue.length && (o = this.visitQueue(this.priorityQueue), this.priorityQueue = [], this.queue = s, o))
            break;
        }
      }
      for (const l of s)
        l.popContext();
      return this.queue = null, o;
    }
    visit(s, a) {
      const o = s[a];
      return o ? Array.isArray(o) ? this.visitMultiple(o, s, a) : this.visitSingle(s, a) : !1;
    }
  }
  return Zb.default = i, Zb;
}
var VZ;
function w7() {
  if (VZ)
    return T1;
  VZ = 1, Object.defineProperty(T1, "__esModule", {
    value: !0
  }), T1.traverseNode = i;
  var e = fFt(), t = Nr();
  const {
    VISITOR_KEYS: r
  } = t;
  function i(n, s, a, o, l, u, c) {
    const f = r[n.type];
    if (!f)
      return !1;
    const h = new e.default(a, s, o, l);
    if (c)
      return u != null && u[l.parentKey] ? !1 : h.visitQueue([l]);
    for (const m of f)
      if (!(u != null && u[m]) && h.visit(n, m))
        return !0;
    return !1;
  }
  return T1;
}
var II = {};
Object.defineProperty(II, "__esModule", {
  value: !0
});
II.default = void 0;
class hFt {
  getCode() {
  }
  getScope() {
  }
  addHelper() {
    throw new Error("Helpers are not supported by the default hub.");
  }
  buildError(t, r, i = TypeError) {
    return new i(r);
  }
}
II.default = hFt;
var WZ;
function dS() {
  return WZ || (WZ = 1, function(e) {
    Object.defineProperty(e, "__esModule", {
      value: !0
    }), Object.defineProperty(e, "Hub", {
      enumerable: !0,
      get: function() {
        return o.default;
      }
    }), Object.defineProperty(e, "NodePath", {
      enumerable: !0,
      get: function() {
        return s.default;
      }
    }), Object.defineProperty(e, "Scope", {
      enumerable: !0,
      get: function() {
        return a.default;
      }
    }), e.visitors = e.default = void 0;
    var t = Ff;
    e.visitors = t;
    var r = Nr(), i = as, n = w7(), s = bm(), a = zme(), o = II;
    const {
      VISITOR_KEYS: l,
      removeProperties: u,
      traverseFast: c
    } = r;
    function f(m, g = {}, y, v, T, S) {
      if (m) {
        if (!g.noScope && !y && m.type !== "Program" && m.type !== "File")
          throw new Error("You must pass a scope and parentPath unless traversing a Program/File. " + "Instead of that you tried to traverse a ".concat(m.type, " node without ") + "passing scope and parentPath.");
        if (!T && S)
          throw new Error("visitSelf can only be used when providing a NodePath.");
        l[m.type] && (t.explode(g), (0, n.traverseNode)(m, g, y, v, T, null, S));
      }
    }
    e.default = f, f.visitors = t, f.verify = t.verify, f.explode = t.explode, f.cheap = function(m, g) {
      c(m, g);
    }, f.node = function(m, g, y, v, T, S) {
      (0, n.traverseNode)(m, g, y, v, T, S);
    }, f.clearNode = function(m, g) {
      u(m, g);
    }, f.removeProperties = function(m, g) {
      return c(m, f.clearNode, g), m;
    };
    function h(m, g) {
      m.node.type === g.type && (g.has = !0, m.stop());
    }
    f.hasType = function(m, g, y) {
      if (y != null && y.includes(m.type))
        return !1;
      if (m.type === g)
        return !0;
      const v = {
        has: !1,
        type: g
      };
      return f(m, {
        noScope: !0,
        denylist: y,
        enter: h
      }, null, v), v.has;
    }, f.cache = i;
  }(y3)), y3;
}
var kae, Oae;
(function(e) {
  Object.defineProperty(e, "__esModule", {
    value: !0
  }), e.default = void 0, Object.defineProperty(e, "environmentVisitor", {
    enumerable: !0,
    get: function() {
      return t.default;
    }
  }), Object.defineProperty(e, "skipAllButComputedKey", {
    enumerable: !0,
    get: function() {
      return t.skipAllButComputedKey;
    }
  });
  var t = Io, r = fI, i = sS, n = rn, s = dS(), a = Qn();
  const {
    assignmentExpression: o,
    booleanLiteral: l,
    callExpression: u,
    cloneNode: c,
    identifier: f,
    memberExpression: h,
    sequenceExpression: m,
    stringLiteral: g,
    thisExpression: y
  } = a;
  function v(D, w, A, I) {
    D = c(D);
    const L = w || I ? D : h(D, f("prototype"));
    return u(A.addHelper("getPrototypeOf"), [L]);
  }
  const T = s.default.visitors.merge([t.default, {
    Super(D, w) {
      const {
        node: A,
        parentPath: I
      } = D;
      I.isMemberExpression({
        object: A
      }) && w.handle(I);
    }
  }]), S = s.default.visitors.merge([t.default, {
    Scopable(D, {
      refName: w
    }) {
      const A = D.scope.getOwnBinding(w);
      A && A.identifier.name === w && D.scope.rename(w);
    }
  }]), P = {
    memoise(D, w) {
      const {
        scope: A,
        node: I
      } = D, {
        computed: L,
        property: O
      } = I;
      if (!L)
        return;
      const F = A.maybeGenerateMemoised(O);
      F && this.memoiser.set(O, F, w);
    },
    prop(D) {
      const {
        computed: w,
        property: A
      } = D.node;
      return this.memoiser.has(A) ? c(this.memoiser.get(A)) : w ? c(A) : g(A.name);
    },
    get(D) {
      return this._get(D, this._getThisRefs());
    },
    _get(D, w) {
      const A = v(this.getObjectRef(), this.isStatic, this.file, this.isPrivateMethod);
      return u(this.file.addHelper("get"), [
        w.memo ? m([w.memo, A]) : A,
        this.prop(D),
        w.this
      ]);
    },
    _getThisRefs() {
      if (!this.isDerivedConstructor)
        return {
          this: y()
        };
      const D = this.scope.generateDeclaredUidIdentifier("thisSuper");
      return {
        memo: o("=", D, y()),
        this: c(D)
      };
    },
    set(D, w) {
      const A = this._getThisRefs(), I = v(this.getObjectRef(), this.isStatic, this.file, this.isPrivateMethod);
      return u(this.file.addHelper("set"), [
        A.memo ? m([A.memo, I]) : I,
        this.prop(D),
        w,
        A.this,
        l(D.isInStrictMode())
      ]);
    },
    destructureSet(D) {
      throw D.buildCodeFrameError("Destructuring to a super field is not supported yet.");
    },
    call(D, w) {
      const A = this._getThisRefs();
      return (0, i.default)(this._get(D, A), c(A.this), w, !1);
    },
    optionalCall(D, w) {
      const A = this._getThisRefs();
      return (0, i.default)(this._get(D, A), c(A.this), w, !0);
    },
    delete(D) {
      return D.node.computed ? m([u(this.file.addHelper("toPropertyKey"), [c(D.node.property)]), n.default.expression.ast(kae || (kae = at(["\n          function () { throw new ReferenceError(\"'delete super[expr]' is invalid\"); }()\n        "])))]) : n.default.expression.ast(Oae || (Oae = at(["\n        function () { throw new ReferenceError(\"'delete super.prop' is invalid\"); }()\n      "])));
    }
  }, x = Object.assign({}, P, {
    prop(D) {
      const {
        property: w
      } = D.node;
      return this.memoiser.has(w) ? c(this.memoiser.get(w)) : c(w);
    },
    get(D) {
      const {
        isStatic: w,
        getSuperRef: A
      } = this, {
        computed: I
      } = D.node, L = this.prop(D);
      let O;
      if (w) {
        var F;
        O = (F = A()) != null ? F : h(f("Function"), f("prototype"));
      } else {
        var q;
        O = h((q = A()) != null ? q : f("Object"), f("prototype"));
      }
      return h(O, L, I);
    },
    set(D, w) {
      const {
        computed: A
      } = D.node, I = this.prop(D);
      return o("=", h(y(), I, A), w);
    },
    destructureSet(D) {
      const {
        computed: w
      } = D.node, A = this.prop(D);
      return h(y(), A, w);
    },
    call(D, w) {
      return (0, i.default)(this.get(D), y(), w, !1);
    },
    optionalCall(D, w) {
      return (0, i.default)(this.get(D), y(), w, !0);
    }
  });
  class C {
    constructor(w) {
      var A;
      const I = w.methodPath;
      this.methodPath = I, this.isDerivedConstructor = I.isClassMethod({
        kind: "constructor"
      }) && !!w.superRef, this.isStatic = I.isObjectMethod() || I.node.static || (I.isStaticBlock == null ? void 0 : I.isStaticBlock()), this.isPrivateMethod = I.isPrivate() && I.isMethod(), this.file = w.file, this.constantSuper = (A = w.constantSuper) != null ? A : w.isLoose, this.opts = w;
    }
    getObjectRef() {
      return c(this.opts.objectRef || this.opts.getObjectRef());
    }
    getSuperRef() {
      if (this.opts.superRef)
        return c(this.opts.superRef);
      if (this.opts.getSuperRef)
        return c(this.opts.getSuperRef());
    }
    replace() {
      this.opts.refToPreserve && this.methodPath.traverse(S, {
        refName: this.opts.refToPreserve.name
      });
      const w = this.constantSuper ? x : P;
      (0, r.default)(this.methodPath, T, Object.assign({
        file: this.file,
        scope: this.methodPath.scope,
        isDerivedConstructor: this.isDerivedConstructor,
        isStatic: this.isStatic,
        isPrivateMethod: this.isPrivateMethod,
        getObjectRef: this.getObjectRef.bind(this),
        getSuperRef: this.getSuperRef.bind(this),
        boundGet: w.get
      }, w));
    }
  }
  e.default = C;
})(B5);
var vm = {};
Object.defineProperty(vm, "__esModule", {
  value: !0
});
vm.default = void 0;
vm.requeueComputedKeyAndDecorators = P8;
vm.skipAllButComputedKey = dFt;
function dFt(e) {
  e.skip(), e.node.computed && e.context.maybeQueue(e.get("key"));
}
function P8(e) {
  const {
    context: t,
    node: r
  } = e;
  if (r.computed && t.maybeQueue(e.get("key")), r.decorators)
    for (const i of e.get("decorators"))
      t.maybeQueue(i);
}
const mFt = {
  FunctionParent(e) {
    e.isArrowFunctionExpression() || (e.skip(), e.isMethod() && P8(e));
  },
  Property(e) {
    e.isObjectProperty() || (e.skip(), P8(e));
  }
};
var yFt = mFt;
vm.default = yFt;
var Tge = {};
(function(e) {
  Object.defineProperty(e, "__esModule", { value: !0 });
  var t = Qn();
  function r(j) {
    if (j && j.__esModule)
      return j;
    var N = /* @__PURE__ */ Object.create(null);
    return j && Object.keys(j).forEach(function(M) {
      if (M !== "default") {
        var R = Object.getOwnPropertyDescriptor(j, M);
        Object.defineProperty(N, M, R.get ? R : {
          enumerable: !0,
          get: function() {
            return j[M];
          }
        });
      }
    }), N.default = j, Object.freeze(N);
  }
  var i = /* @__PURE__ */ r(t);
  function n(j) {
    const N = j, {
      node: M,
      parentPath: R
    } = N;
    if (R.isLogicalExpression()) {
      const {
        operator: $,
        right: V
      } = R.node;
      if ($ === "&&" || $ === "||" || $ === "??" && M === V)
        return n(R);
    }
    if (R.isSequenceExpression()) {
      const {
        expressions: $
      } = R.node;
      return $[$.length - 1] === M ? n(R) : !0;
    }
    return R.isConditional({
      test: M
    }) || R.isUnaryExpression({
      operator: "!"
    }) || R.isLoop({
      test: M
    });
  }
  const {
    LOGICAL_OPERATORS: s,
    arrowFunctionExpression: a,
    assignmentExpression: o,
    binaryExpression: l,
    booleanLiteral: u,
    callExpression: c,
    cloneNode: f,
    conditionalExpression: h,
    identifier: m,
    isMemberExpression: g,
    isOptionalCallExpression: y,
    isOptionalMemberExpression: v,
    isUpdateExpression: T,
    logicalExpression: S,
    memberExpression: P,
    nullLiteral: x,
    optionalCallExpression: C,
    optionalMemberExpression: D,
    sequenceExpression: w,
    updateExpression: A
  } = i;
  class I {
    constructor() {
      this._map = void 0, this._map = /* @__PURE__ */ new WeakMap();
    }
    has(N) {
      return this._map.has(N);
    }
    get(N) {
      if (!this.has(N))
        return;
      const M = this._map.get(N), {
        value: R
      } = M;
      return M.count--, M.count === 0 ? o("=", R, N) : R;
    }
    set(N, M, R) {
      return this._map.set(N, {
        count: R,
        value: M
      });
    }
  }
  function L(j, N) {
    const {
      node: M
    } = j;
    if (v(M))
      return P(N, M.property, M.computed);
    if (j.isOptionalCallExpression()) {
      const R = j.get("callee");
      if (j.node.optional && R.isOptionalMemberExpression()) {
        const $ = R.node.object, V = j.scope.maybeGenerateMemoised($);
        return R.get("object").replaceWith(o("=", V, $)), c(P(N, m("call")), [V, ...j.node.arguments]);
      }
      return c(N, j.node.arguments);
    }
    return j.node;
  }
  function O(j) {
    for (; j && !j.isProgram(); ) {
      const {
        parentPath: N,
        container: M,
        listKey: R
      } = j, $ = N.node;
      if (R) {
        if (M !== $[R])
          return !0;
      } else if (M !== $)
        return !0;
      j = N;
    }
    return !1;
  }
  const F = {
    memoise() {
    },
    handle(j, N) {
      const {
        node: M,
        parent: R,
        parentPath: $,
        scope: V
      } = j;
      if (j.isOptionalMemberExpression()) {
        if (O(j))
          return;
        const K = j.find(({
          node: ve,
          parent: Xe
        }) => v(Xe) ? Xe.optional || Xe.object !== ve : y(Xe) ? ve !== j.node && Xe.optional || Xe.callee !== ve : !0);
        if (V.path.isPattern()) {
          K.replaceWith(c(a([], K.node), []));
          return;
        }
        const z = n(K), W = K.parentPath;
        if (W.isUpdateExpression({
          argument: M
        }) || W.isAssignmentExpression({
          left: M
        }))
          throw j.buildCodeFrameError("can't handle assignment");
        const Y = W.isUnaryExpression({
          operator: "delete"
        });
        if (Y && K.isOptionalMemberExpression() && K.get("property").isPrivateName())
          throw j.buildCodeFrameError("can't delete a private class element");
        let G = j;
        for (; ; ) {
          if (G.isOptionalMemberExpression()) {
            if (G.node.optional)
              break;
            G = G.get("object");
            continue;
          } else if (G.isOptionalCallExpression()) {
            if (G.node.optional)
              break;
            G = G.get("callee");
            continue;
          }
          throw new Error("Internal error: unexpected ".concat(G.node.type));
        }
        const le = G.isOptionalMemberExpression() ? G.node.object : G.node.callee, ne = V.maybeGenerateMemoised(le), ae = ne != null ? ne : le, be = $.isOptionalCallExpression({
          callee: M
        }), ye = (ve) => be, fe = $.isCallExpression({
          callee: M
        });
        G.replaceWith(L(G, ae)), ye() ? R.optional ? $.replaceWith(this.optionalCall(j, R.arguments)) : $.replaceWith(this.call(j, R.arguments)) : fe ? j.replaceWith(this.boundGet(j)) : this.delete && $.isUnaryExpression({
          operator: "delete"
        }) ? $.replaceWith(this.delete(j)) : j.replaceWith(this.get(j));
        let Z = j.node;
        for (let ve = j; ve !== K; ) {
          const Xe = ve.parentPath;
          if (Xe === K && ye() && R.optional) {
            Z = Xe.node;
            break;
          }
          Z = L(Xe, Z), ve = Xe;
        }
        let ue;
        const me = K.parentPath;
        if (g(Z) && me.isOptionalCallExpression({
          callee: K.node,
          optional: !0
        })) {
          const {
            object: ve
          } = Z;
          ue = j.scope.maybeGenerateMemoised(ve), ue && (Z.object = o("=", ue, ve));
        }
        let xe = K;
        Y && (xe = me, Z = me.node);
        const Pe = ne ? o("=", f(ae), f(le)) : f(ae);
        if (z) {
          let ve;
          N ? ve = l("!=", Pe, x()) : ve = S("&&", l("!==", Pe, x()), l("!==", f(ae), V.buildUndefinedNode())), xe.replaceWith(S("&&", ve, Z));
        } else {
          let ve;
          N ? ve = l("==", Pe, x()) : ve = S("||", l("===", Pe, x()), l("===", f(ae), V.buildUndefinedNode())), xe.replaceWith(h(ve, Y ? u(!0) : V.buildUndefinedNode(), Z));
        }
        if (ue) {
          const ve = me.node;
          me.replaceWith(C(D(ve.callee, m("call"), !1, !0), [f(ue), ...ve.arguments], !1));
        }
        return;
      }
      if (T(R, {
        argument: M
      })) {
        if (this.simpleSet) {
          j.replaceWith(this.simpleSet(j));
          return;
        }
        const {
          operator: K,
          prefix: z
        } = R;
        this.memoise(j, 2);
        const W = V.generateUidIdentifierBasedOnNode(M);
        V.push({
          id: W
        });
        const Y = [o("=", f(W), this.get(j))];
        if (z) {
          Y.push(A(K, f(W), z));
          const G = w(Y);
          $.replaceWith(this.set(j, G));
          return;
        } else {
          const G = V.generateUidIdentifierBasedOnNode(M);
          V.push({
            id: G
          }), Y.push(o("=", f(G), A(K, f(W), z)), f(W));
          const le = w(Y);
          $.replaceWith(w([this.set(j, le), f(G)]));
          return;
        }
      }
      if ($.isAssignmentExpression({
        left: M
      })) {
        if (this.simpleSet) {
          j.replaceWith(this.simpleSet(j));
          return;
        }
        const {
          operator: K,
          right: z
        } = $.node;
        if (K === "=")
          $.replaceWith(this.set(j, z));
        else {
          const W = K.slice(0, -1);
          s.includes(W) ? (this.memoise(j, 1), $.replaceWith(S(W, this.get(j), this.set(j, z)))) : (this.memoise(j, 2), $.replaceWith(this.set(j, l(W, this.get(j), z))));
        }
        return;
      }
      if ($.isCallExpression({
        callee: M
      })) {
        $.replaceWith(this.call(j, $.node.arguments));
        return;
      }
      if ($.isOptionalCallExpression({
        callee: M
      })) {
        if (V.path.isPattern()) {
          $.replaceWith(c(a([], $.node), []));
          return;
        }
        $.replaceWith(this.optionalCall(j, $.node.arguments));
        return;
      }
      if (this.delete && $.isUnaryExpression({
        operator: "delete"
      })) {
        $.replaceWith(this.delete(j));
        return;
      }
      if ($.isForXStatement({
        left: M
      }) || $.isObjectProperty({
        value: M
      }) && $.parentPath.isObjectPattern() || $.isAssignmentPattern({
        left: M
      }) && $.parentPath.isObjectProperty({
        value: R
      }) && $.parentPath.parentPath.isObjectPattern() || $.isArrayPattern() || $.isAssignmentPattern({
        left: M
      }) && $.parentPath.isArrayPattern() || $.isRestElement()) {
        j.replaceWith(this.destructureSet(j));
        return;
      }
      $.isTaggedTemplateExpression() ? j.replaceWith(this.boundGet(j)) : j.replaceWith(this.get(j));
    }
  };
  function q(j, N, M) {
    j.traverse(N, Object.assign({}, F, M, {
      memoiser: new I()
    }));
  }
  e.default = q;
})(Tge);
var A7 = {};
Object.defineProperty(A7, "__esModule", {
  value: !0
});
A7.default = TFt;
var gFt = Qn();
const {
  callExpression: HZ,
  identifier: C1,
  isIdentifier: bFt,
  isSpreadElement: vFt,
  memberExpression: KZ,
  optionalCallExpression: zZ,
  optionalMemberExpression: GZ
} = gFt;
function TFt(e, t, r, i) {
  return r.length === 1 && vFt(r[0]) && bFt(r[0].argument, {
    name: "arguments"
  }) ? i ? zZ(GZ(e, C1("apply"), !1, !0), [t, r[0].argument], !1) : HZ(KZ(e, C1("apply")), [t, r[0].argument]) : i ? zZ(GZ(e, C1("call"), !1, !0), [t, ...r], !1) : HZ(KZ(e, C1("call")), [t, ...r]);
}
var kI = {};
Object.defineProperty(kI, "__esModule", {
  value: !0
});
kI.default = wFt;
var SFt = sn();
const {
  addComment: xFt
} = SFt, EFt = "#__PURE__", PFt = ({
  leadingComments: e
}) => !!e && e.some((t) => /[@#]__PURE__/.test(t.value));
function wFt(e) {
  const t = e.node || e;
  PFt(t) || xFt(t, "leading", EFt);
}
var mS = {};
Object.defineProperty(mS, "__esModule", {
  value: !0
});
mS.isTransparentExprWrapper = C7;
mS.skipTransparentExprWrapperNodes = LFt;
mS.skipTransparentExprWrappers = DFt;
var AFt = Qn();
const {
  isParenthesizedExpression: CFt,
  isTSAsExpression: _Ft,
  isTSNonNullExpression: IFt,
  isTSSatisfiesExpression: kFt,
  isTSTypeAssertion: OFt,
  isTypeCastExpression: NFt
} = AFt;
function C7(e) {
  return _Ft(e) || kFt(e) || OFt(e) || IFt(e) || NFt(e) || CFt(e);
}
function DFt(e) {
  for (; C7(e.node); )
    e = e.get("expression");
  return e;
}
function LFt(e) {
  for (; C7(e); )
    e = e.expression;
  return e;
}
var OI = {};
Object.defineProperty(OI, "__esModule", {
  value: !0
});
OI.assertFieldTransformed = MFt;
function MFt(e) {
  if (e.node.declare)
    throw e.buildCodeFrameError("TypeScript 'declare' fields must first be transformed by @babel/plugin-transform-typescript.\nIf you have already enabled that plugin (or '@babel/preset-typescript'), make sure that it runs before any plugin related to additional class features:\n - @babel/plugin-proposal-class-properties\n - @babel/plugin-proposal-private-methods\n - @babel/plugin-proposal-decorators");
}
Object.defineProperty(hm, "__esModule", {
  value: !0
});
hm.buildCheckInRHS = UP;
hm.buildFieldsInitNodes = n8t;
hm.buildPrivateNamesMap = UFt;
hm.buildPrivateNamesNodes = qFt;
hm.transformPrivateNamesUsage = zFt;
var dt = js(), RFt = B5, Sge = vm, BFt = Tge, YZ = A7, FFt = kI, jFt = mS, $Ft = OI;
function UFt(e) {
  const t = /* @__PURE__ */ new Map();
  for (const r of e)
    if (r.isPrivate()) {
      const {
        name: i
      } = r.node.key.id, n = t.has(i) ? t.get(i) : {
        id: r.scope.generateUidIdentifier(i),
        static: r.node.static,
        method: !r.isProperty()
      };
      r.isClassPrivateMethod() && (r.node.kind === "get" ? n.getId = r.scope.generateUidIdentifier("get_".concat(i)) : r.node.kind === "set" ? n.setId = r.scope.generateUidIdentifier("set_".concat(i)) : r.node.kind === "method" && (n.methodId = r.scope.generateUidIdentifier(i))), t.set(i, n);
    }
  return t;
}
var Nae;
function qFt(e, t, r, i) {
  const n = [];
  for (const [s, a] of e) {
    const {
      static: o,
      method: l,
      getId: u,
      setId: c
    } = a, f = u || c, h = dt.types.cloneNode(a.id);
    let m;
    t ? m = dt.types.callExpression(i.addHelper("classPrivateFieldLooseKey"), [dt.types.stringLiteral(s)]) : r ? m = dt.types.callExpression(dt.types.identifier("Symbol"), [dt.types.stringLiteral(s)]) : o || (m = dt.types.newExpression(dt.types.identifier(!l || f ? "WeakMap" : "WeakSet"), [])), m && ((0, FFt.default)(m), n.push(dt.template.statement.ast(Nae || (Nae = at(["var ", " = ", ""])), h, m)));
  }
  return n;
}
function xge(e) {
  const t = dt.traverse.visitors.merge([Object.assign({}, e), Sge.default]), r = Object.assign({}, e, {
    Class(i) {
      const {
        privateNamesMap: n
      } = this, s = i.get("body.body"), a = new Map(n), o = [];
      for (const l of s) {
        if (!l.isPrivate())
          continue;
        const {
          name: u
        } = l.node.key.id;
        a.delete(u), o.push(u);
      }
      o.length && (i.get("body").traverse(t, Object.assign({}, this, {
        redeclared: o
      })), i.traverse(r, Object.assign({}, this, {
        privateNamesMap: a
      })), i.skipKey("body"));
    }
  });
  return r;
}
const VFt = xge({
  PrivateName(e, {
    noDocumentAll: t
  }) {
    const {
      privateNamesMap: r,
      redeclared: i
    } = this, {
      node: n,
      parentPath: s
    } = e;
    if (!s.isMemberExpression({
      property: n
    }) && !s.isOptionalMemberExpression({
      property: n
    }))
      return;
    const {
      name: a
    } = n.id;
    r.has(a) && (i && i.includes(a) || this.handle(s, t));
  }
});
function Ege(e, t, r) {
  for (; (i = t) != null && i.hasBinding(e) && !t.bindingIdentifierEquals(e, r); ) {
    var i;
    t.rename(e), t = t.parent;
  }
}
function UP(e, t, r) {
  return r || !(t.availableHelper != null && t.availableHelper("checkInRHS")) ? e : dt.types.callExpression(t.addHelper("checkInRHS"), [e]);
}
var Dae, Lae, Mae;
const WFt = xge({
  BinaryExpression(e, {
    file: t
  }) {
    const {
      operator: r,
      left: i,
      right: n
    } = e.node;
    if (r !== "in" || !dt.types.isPrivateName(i))
      return;
    const {
      privateFieldsAsProperties: s,
      privateNamesMap: a,
      redeclared: o
    } = this, {
      name: l
    } = i.id;
    if (!a.has(l) || o && o.includes(l))
      return;
    if (Ege(this.classRef.name, e.scope, this.innerBinding), s) {
      const {
        id: f
      } = a.get(l);
      e.replaceWith(dt.template.expression.ast(Dae || (Dae = at(["\n        Object.prototype.hasOwnProperty.call(", ", ", ")\n      "])), UP(n, t), dt.types.cloneNode(f)));
      return;
    }
    const {
      id: u,
      static: c
    } = a.get(l);
    if (c) {
      e.replaceWith(dt.template.expression.ast(Lae || (Lae = at(["", " === ", ""])), UP(n, t), dt.types.cloneNode(this.classRef)));
      return;
    }
    e.replaceWith(dt.template.expression.ast(Mae || (Mae = at(["", ".has(", ")"])), dt.types.cloneNode(u), UP(n, t)));
  }
}), HFt = {
  memoise(e, t) {
    const {
      scope: r
    } = e, {
      object: i
    } = e.node, n = r.maybeGenerateMemoised(i);
    n && this.memoiser.set(i, n, t);
  },
  receiver(e) {
    const {
      object: t
    } = e.node;
    return this.memoiser.has(t) ? dt.types.cloneNode(this.memoiser.get(t)) : dt.types.cloneNode(t);
  },
  get(e) {
    const {
      classRef: t,
      privateNamesMap: r,
      file: i,
      innerBinding: n
    } = this, {
      name: s
    } = e.node.property.id, {
      id: a,
      static: o,
      method: l,
      methodId: u,
      getId: c,
      setId: f
    } = r.get(s), h = c || f;
    if (o) {
      const m = l && !h ? "classStaticPrivateMethodGet" : "classStaticPrivateFieldSpecGet";
      return Ege(t.name, e.scope, n), dt.types.callExpression(i.addHelper(m), [this.receiver(e), dt.types.cloneNode(t), dt.types.cloneNode(a)]);
    }
    if (l) {
      if (h) {
        if (!c && f) {
          if (i.availableHelper("writeOnlyError"))
            return dt.types.sequenceExpression([this.receiver(e), dt.types.callExpression(i.addHelper("writeOnlyError"), [dt.types.stringLiteral("#".concat(s))])]);
          console.warn("@babel/helpers is outdated, update it to silence this warning.");
        }
        return dt.types.callExpression(i.addHelper("classPrivateFieldGet"), [this.receiver(e), dt.types.cloneNode(a)]);
      }
      return dt.types.callExpression(i.addHelper("classPrivateMethodGet"), [this.receiver(e), dt.types.cloneNode(a), dt.types.cloneNode(u)]);
    }
    return dt.types.callExpression(i.addHelper("classPrivateFieldGet"), [this.receiver(e), dt.types.cloneNode(a)]);
  },
  boundGet(e) {
    return this.memoise(e, 1), dt.types.callExpression(dt.types.memberExpression(this.get(e), dt.types.identifier("bind")), [this.receiver(e)]);
  },
  set(e, t) {
    const {
      classRef: r,
      privateNamesMap: i,
      file: n
    } = this, {
      name: s
    } = e.node.property.id, {
      id: a,
      static: o,
      method: l,
      setId: u,
      getId: c
    } = i.get(s), f = c || u;
    if (o) {
      const h = l && !f ? "classStaticPrivateMethodSet" : "classStaticPrivateFieldSpecSet";
      return dt.types.callExpression(n.addHelper(h), [this.receiver(e), dt.types.cloneNode(r), dt.types.cloneNode(a), t]);
    }
    return l ? u ? dt.types.callExpression(n.addHelper("classPrivateFieldSet"), [this.receiver(e), dt.types.cloneNode(a), t]) : dt.types.sequenceExpression([this.receiver(e), t, dt.types.callExpression(n.addHelper("readOnlyError"), [dt.types.stringLiteral("#".concat(s))])]) : dt.types.callExpression(n.addHelper("classPrivateFieldSet"), [this.receiver(e), dt.types.cloneNode(a), t]);
  },
  destructureSet(e) {
    const {
      classRef: t,
      privateNamesMap: r,
      file: i
    } = this, {
      name: n
    } = e.node.property.id, {
      id: s,
      static: a
    } = r.get(n);
    if (a) {
      try {
        var o = i.addHelper("classStaticPrivateFieldDestructureSet");
      } catch (l) {
        throw new Error("Babel can not transpile `[C.#p] = [0]` with @babel/helpers < 7.13.10, \nplease update @babel/helpers to the latest version.");
      }
      return dt.types.memberExpression(dt.types.callExpression(o, [this.receiver(e), dt.types.cloneNode(t), dt.types.cloneNode(s)]), dt.types.identifier("value"));
    }
    return dt.types.memberExpression(dt.types.callExpression(i.addHelper("classPrivateFieldDestructureSet"), [this.receiver(e), dt.types.cloneNode(s)]), dt.types.identifier("value"));
  },
  call(e, t) {
    return this.memoise(e, 1), (0, YZ.default)(this.get(e), this.receiver(e), t, !1);
  },
  optionalCall(e, t) {
    return this.memoise(e, 1), (0, YZ.default)(this.get(e), this.receiver(e), t, !0);
  }
};
var Rae;
const KFt = {
  get(e) {
    const {
      privateNamesMap: t,
      file: r
    } = this, {
      object: i
    } = e.node, {
      name: n
    } = e.node.property.id;
    return dt.template.expression(Rae || (Rae = at(["BASE(REF, PROP)[PROP]"])))({
      BASE: r.addHelper("classPrivateFieldLooseBase"),
      REF: dt.types.cloneNode(i),
      PROP: dt.types.cloneNode(t.get(n).id)
    });
  },
  set() {
    throw new Error("private name handler with loose = true don't need set()");
  },
  boundGet(e) {
    return dt.types.callExpression(dt.types.memberExpression(this.get(e), dt.types.identifier("bind")), [dt.types.cloneNode(e.node.object)]);
  },
  simpleSet(e) {
    return this.get(e);
  },
  destructureSet(e) {
    return this.get(e);
  },
  call(e, t) {
    return dt.types.callExpression(this.get(e), t);
  },
  optionalCall(e, t) {
    return dt.types.optionalCallExpression(this.get(e), t, !0);
  }
};
function zFt(e, t, r, {
  privateFieldsAsProperties: i,
  noDocumentAll: n,
  innerBinding: s
}, a) {
  if (!r.size)
    return;
  const o = t.get("body"), l = i ? KFt : HFt;
  (0, BFt.default)(o, VFt, Object.assign({
    privateNamesMap: r,
    classRef: e,
    file: a
  }, l, {
    noDocumentAll: n,
    innerBinding: s
  })), o.traverse(WFt, {
    privateNamesMap: r,
    classRef: e,
    file: a,
    privateFieldsAsProperties: i,
    innerBinding: s
  });
}
var Bae;
function XZ(e, t, r) {
  const {
    id: i
  } = r.get(t.node.key.id.name), n = t.node.value || t.scope.buildUndefinedNode();
  return bs(dt.template.statement.ast(Bae || (Bae = at(["\n      Object.defineProperty(", ", ", ", {\n        // configurable is false by default\n        // enumerable is false by default\n        writable: true,\n        value: ", "\n      });\n    "])), e, dt.types.cloneNode(i), n), t);
}
var Fae, jae;
function GFt(e, t, r, i) {
  const {
    id: n
  } = r.get(t.node.key.id.name), s = t.node.value || t.scope.buildUndefinedNode();
  if (!i.availableHelper("classPrivateFieldInitSpec"))
    return bs(dt.template.statement.ast(Fae || (Fae = at(["", ".set(", ", {\n          // configurable is always false for private elements\n          // enumerable is always false for private elements\n          writable: true,\n          value: ", ",\n        })"])), dt.types.cloneNode(n), e, s), t);
  const a = i.addHelper("classPrivateFieldInitSpec");
  return bs(dt.template.statement.ast(jae || (jae = at(["", "(\n      ", ",\n      ", ",\n      {\n        writable: true,\n        value: ", "\n      },\n    )"])), a, dt.types.thisExpression(), dt.types.cloneNode(n), s), t);
}
var $ae, Uae;
function JZ(e, t) {
  const r = t.get(e.node.key.id.name), {
    id: i,
    getId: n,
    setId: s,
    initAdded: a
  } = r, o = n || s;
  if (!e.isProperty() && (a || !o))
    return;
  if (o)
    return t.set(e.node.key.id.name, Object.assign({}, r, {
      initAdded: !0
    })), bs(dt.template.statement.ast($ae || ($ae = at(["\n        var ", " = {\n          // configurable is false by default\n          // enumerable is false by default\n          // writable is false by default\n          get: ", ",\n          set: ", "\n        }\n      "])), dt.types.cloneNode(i), n ? n.name : e.scope.buildUndefinedNode(), s ? s.name : e.scope.buildUndefinedNode()), e);
  const l = e.node.value || e.scope.buildUndefinedNode();
  return bs(dt.template.statement.ast(Uae || (Uae = at(["\n      var ", " = {\n        // configurable is false by default\n        // enumerable is false by default\n        writable: true,\n        value: ", "\n      };\n    "])), dt.types.cloneNode(i), l), e);
}
var qae, Vae;
function YFt(e, t, r) {
  const i = r.get(t.node.key.id.name), {
    methodId: n,
    id: s,
    getId: a,
    setId: o,
    initAdded: l
  } = i;
  if (l)
    return;
  if (n)
    return bs(dt.template.statement.ast(qae || (qae = at(["\n        Object.defineProperty(", ", ", ", {\n          // configurable is false by default\n          // enumerable is false by default\n          // writable is false by default\n          value: ", "\n        });\n      "])), e, s, n.name), t);
  if (a || o)
    return r.set(t.node.key.id.name, Object.assign({}, i, {
      initAdded: !0
    })), bs(dt.template.statement.ast(Vae || (Vae = at(["\n        Object.defineProperty(", ", ", ", {\n          // configurable is false by default\n          // enumerable is false by default\n          // writable is false by default\n          get: ", ",\n          set: ", "\n        });\n      "])), e, s, a ? a.name : t.scope.buildUndefinedNode(), o ? o.name : t.scope.buildUndefinedNode()), t);
}
function XFt(e, t, r, i) {
  const n = r.get(t.node.key.id.name), {
    getId: s,
    setId: a,
    initAdded: o
  } = n;
  return o ? void 0 : s || a ? JFt(e, t, r, i) : QFt(e, t, r, i);
}
var Wae, Hae;
function JFt(e, t, r, i) {
  const n = r.get(t.node.key.id.name), {
    id: s,
    getId: a,
    setId: o
  } = n;
  if (r.set(t.node.key.id.name, Object.assign({}, n, {
    initAdded: !0
  })), !i.availableHelper("classPrivateFieldInitSpec"))
    return bs(dt.template.statement.ast(Wae || (Wae = at(["\n          ", ".set(", ", {\n            get: ", ",\n            set: ", "\n          });\n        "])), s, e, a ? a.name : t.scope.buildUndefinedNode(), o ? o.name : t.scope.buildUndefinedNode()), t);
  const l = i.addHelper("classPrivateFieldInitSpec");
  return bs(dt.template.statement.ast(Hae || (Hae = at(["", "(\n      ", ",\n      ", ",\n      {\n        get: ", ",\n        set: ", "\n      },\n    )"])), l, dt.types.thisExpression(), dt.types.cloneNode(s), a ? a.name : t.scope.buildUndefinedNode(), o ? o.name : t.scope.buildUndefinedNode()), t);
}
var Kae, zae;
function QFt(e, t, r, i) {
  const n = r.get(t.node.key.id.name), {
    id: s
  } = n;
  if (!i.availableHelper("classPrivateMethodInitSpec"))
    return bs(dt.template.statement.ast(Kae || (Kae = at(["", ".add(", ")"])), s, e), t);
  const a = i.addHelper("classPrivateMethodInitSpec");
  return bs(dt.template.statement.ast(zae || (zae = at(["", "(\n      ", ",\n      ", "\n    )"])), a, dt.types.thisExpression(), dt.types.cloneNode(s)), t);
}
function QZ(e, t) {
  const {
    key: r,
    computed: i
  } = t.node, n = t.node.value || t.scope.buildUndefinedNode();
  return bs(dt.types.expressionStatement(dt.types.assignmentExpression("=", dt.types.memberExpression(e, r, i || dt.types.isLiteral(r)), n)), t);
}
function ZZ(e, t, r) {
  const {
    key: i,
    computed: n
  } = t.node, s = t.node.value || t.scope.buildUndefinedNode();
  return bs(dt.types.expressionStatement(dt.types.callExpression(r.addHelper("defineProperty"), [e, n || dt.types.isLiteral(i) ? i : dt.types.stringLiteral(i.name), s])), t);
}
var Gae, Yae;
function ZFt(e, t, r, i) {
  const n = i.get(t.node.key.id.name), {
    id: s,
    methodId: a,
    getId: o,
    setId: l,
    initAdded: u
  } = n;
  return u ? void 0 : o || l ? (i.set(t.node.key.id.name, Object.assign({}, n, {
    initAdded: !0
  })), bs(dt.template.statement.ast(Gae || (Gae = at(["\n        Object.defineProperty(", ", ", ", {\n          // configurable is false by default\n          // enumerable is false by default\n          // writable is false by default\n          get: ", ",\n          set: ", "\n        })\n      "])), e, s, o ? o.name : t.scope.buildUndefinedNode(), l ? l.name : t.scope.buildUndefinedNode()), t)) : bs(dt.template.statement.ast(Yae || (Yae = at(["\n      Object.defineProperty(", ", ", ", {\n        // configurable is false by default\n        // enumerable is false by default\n        // writable is false by default\n        value: ", "\n      });\n    "])), e, s, a.name), t);
}
function _1(e, t, r = !1) {
  const i = t.get(e.node.key.id.name), {
    id: n,
    methodId: s,
    getId: a,
    setId: o,
    getterDeclared: l,
    setterDeclared: u,
    static: c
  } = i, {
    params: f,
    body: h,
    generator: m,
    async: g
  } = e.node, y = a && !l && f.length === 0, v = o && !u && f.length > 0;
  let T = s;
  return y ? (t.set(e.node.key.id.name, Object.assign({}, i, {
    getterDeclared: !0
  })), T = a) : v ? (t.set(e.node.key.id.name, Object.assign({}, i, {
    setterDeclared: !0
  })), T = o) : c && !r && (T = n), bs(dt.types.functionDeclaration(dt.types.cloneNode(T), f, h, m, g), e);
}
const e8t = dt.traverse.visitors.merge([{
  ThisExpression(e, t) {
    const r = e.findParent((i) => !(0, jFt.isTransparentExprWrapper)(i.node));
    if (dt.types.isUnaryExpression(r.node, {
      operator: "delete"
    })) {
      e.parentPath.replaceWith(dt.types.booleanLiteral(!0));
      return;
    }
    t.needsClassRef = !0, e.replaceWith(dt.types.cloneNode(t.classRef));
  },
  MetaProperty(e) {
    const t = e.get("meta"), r = e.get("property"), {
      scope: i
    } = e;
    t.isIdentifier({
      name: "new"
    }) && r.isIdentifier({
      name: "target"
    }) && e.replaceWith(i.buildUndefinedNode());
  }
}, Sge.default]), t8t = {
  ReferencedIdentifier(e, t) {
    e.scope.bindingIdentifierEquals(e.node.name, t.innerBinding) && (t.needsClassRef = !0, e.node.name = t.classRef.name);
  }
};
function r8t(e, t, r, i, n, s, a) {
  var o;
  const l = {
    classRef: t,
    needsClassRef: !1,
    innerBinding: a
  };
  return new RFt.default({
    methodPath: e,
    constantSuper: s,
    file: i,
    refToPreserve: t,
    getSuperRef: r,
    getObjectRef() {
      return l.needsClassRef = !0, dt.types.isStaticBlock != null && dt.types.isStaticBlock(e.node) || e.node.static ? t : dt.types.memberExpression(t, dt.types.identifier("prototype"));
    }
  }).replace(), (n || e.isProperty()) && e.traverse(e8t, l), a != null && (o = l.classRef) != null && o.name && l.classRef.name !== (a == null ? void 0 : a.name) && e.traverse(t8t, l), l.needsClassRef;
}
function i8t({
  key: e,
  computed: t
}) {
  return e.type === "Identifier" ? !t && (e.name === "name" || e.name === "length") : e.type === "StringLiteral" ? e.value === "name" || e.value === "length" : !1;
}
function bs(e, t) {
  return dt.types.inheritLeadingComments(e, t.node), dt.types.inheritInnerComments(e, t.node), e;
}
var Xae;
function n8t(e, t, r, i, n, s, a, o, l) {
  let u = !1, c;
  const f = [], h = [], m = [], g = dt.types.isIdentifier(t) ? () => t : () => {
    var y;
    return (y = c) != null || (c = r[0].scope.generateUidIdentifierBasedOnNode(t)), c;
  };
  for (const y of r) {
    y.isClassProperty() && $Ft.assertFieldTransformed(y);
    const v = !(dt.types.isStaticBlock != null && dt.types.isStaticBlock(y.node)) && y.node.static, T = !v, S = y.isPrivate(), P = !S, x = y.isProperty(), C = !x, D = y.isStaticBlock == null ? void 0 : y.isStaticBlock();
    if (v || C && S || D) {
      const w = r8t(y, e, g, n, D, o, l);
      u = u || w;
    }
    switch (!0) {
      case D: {
        const w = y.node.body;
        w.length === 1 && dt.types.isExpressionStatement(w[0]) ? f.push(bs(w[0], y)) : f.push(dt.types.inheritsComments(dt.template.statement.ast(Xae || (Xae = at(["(() => { ", " })()"])), w), y.node));
        break;
      }
      case (v && S && x && a):
        u = !0, f.push(XZ(dt.types.cloneNode(e), y, i));
        break;
      case (v && S && x && !a):
        u = !0, f.push(JZ(y, i));
        break;
      case (v && P && x && s):
        if (!i8t(y.node)) {
          u = !0, f.push(QZ(dt.types.cloneNode(e), y));
          break;
        }
      case (v && P && x && !s):
        u = !0, f.push(ZZ(dt.types.cloneNode(e), y, n));
        break;
      case (T && S && x && a):
        h.push(XZ(dt.types.thisExpression(), y, i));
        break;
      case (T && S && x && !a):
        h.push(GFt(dt.types.thisExpression(), y, i, n));
        break;
      case (T && S && C && a):
        h.unshift(YFt(dt.types.thisExpression(), y, i)), m.push(_1(y, i, a));
        break;
      case (T && S && C && !a):
        h.unshift(XFt(dt.types.thisExpression(), y, i, n)), m.push(_1(y, i, a));
        break;
      case (v && S && C && !a):
        u = !0, f.unshift(JZ(y, i)), m.push(_1(y, i, a));
        break;
      case (v && S && C && a):
        u = !0, f.unshift(ZFt(dt.types.cloneNode(e), y, n, i)), m.push(_1(y, i, a));
        break;
      case (T && P && x && s):
        h.push(QZ(dt.types.thisExpression(), y));
        break;
      case (T && P && x && !s):
        h.push(ZZ(dt.types.thisExpression(), y, n));
        break;
      default:
        throw new Error("Unreachable.");
    }
  }
  return {
    staticNodes: f.filter(Boolean),
    instanceNodes: h.filter(Boolean),
    pureStaticNodes: m.filter(Boolean),
    wrapClass(y) {
      for (const v of r)
        v.remove();
      return c && (y.scope.push({
        id: dt.types.cloneNode(c)
      }), y.set("superClass", dt.types.assignmentExpression("=", c, y.node.superClass))), u && (y.isClassExpression() ? (y.scope.push({
        id: e
      }), y.replaceWith(dt.types.assignmentExpression("=", dt.types.cloneNode(e), y.node))) : y.node.id || (y.node.id = e)), y;
    }
  };
}
var Rg = {};
Object.defineProperty(Rg, "__esModule", {
  value: !0
});
Rg.buildDecoratedClass = f8t;
Rg.hasDecorators = o8t;
Rg.hasOwnDecorators = w8;
var Hi = js(), s8t = B5, a8t = pI;
function w8(e) {
  return !!(e.decorators && e.decorators.length);
}
function o8t(e) {
  return w8(e) || e.body.body.some(w8);
}
function Vm(e, t) {
  return t ? Hi.types.objectProperty(Hi.types.identifier(e), t) : null;
}
function l8t(e, t) {
  return Hi.types.objectMethod("method", Hi.types.identifier(e), [], Hi.types.blockStatement(t));
}
function Pge(e) {
  let t;
  return e.decorators && e.decorators.length > 0 && (t = Hi.types.arrayExpression(e.decorators.map((r) => r.expression))), e.decorators = void 0, t;
}
function u8t(e) {
  return e.computed ? e.key : Hi.types.isIdentifier(e.key) ? Hi.types.stringLiteral(e.key.name) : Hi.types.stringLiteral(String(e.key.value));
}
var Jae;
function c8t(e, t, r, i) {
  const n = i.isClassMethod();
  if (i.isPrivate())
    throw i.buildCodeFrameError("Private ".concat(n ? "methods" : "fields", " in decorated classes are not supported yet."));
  if (i.node.type === "ClassAccessorProperty")
    throw i.buildCodeFrameError('Accessor properties are not supported in 2018-09 decorator transform, please specify { "version": "2021-12" } instead.');
  if (i.node.type === "StaticBlock")
    throw i.buildCodeFrameError('Static blocks are not supported in 2018-09 decorator transform, please specify { "version": "2021-12" } instead.');
  const {
    node: s,
    scope: a
  } = i;
  i.isTSDeclareMethod() || new s8t.default({
    methodPath: i,
    objectRef: t,
    superRef: r,
    file: e,
    refToPreserve: t
  }).replace();
  const o = [Vm("kind", Hi.types.stringLiteral(Hi.types.isClassMethod(s) ? s.kind : "field")), Vm("decorators", Pge(s)), Vm("static", s.static && Hi.types.booleanLiteral(!0)), Vm("key", u8t(s))].filter(Boolean);
  if (Hi.types.isClassMethod(s)) {
    const l = s.computed ? null : s.key, u = Hi.types.toExpression(s);
    o.push(Vm("value", (0, a8t.default)({
      node: u,
      id: l,
      scope: a
    }) || u));
  } else
    Hi.types.isClassProperty(s) && s.value ? o.push(l8t("value", Hi.template.statements.ast(Jae || (Jae = at(["return ", ""])), s.value))) : o.push(Vm("value", a.buildUndefinedNode()));
  return i.remove(), Hi.types.objectExpression(o);
}
function p8t(e) {
  return e.addHelper("decorate");
}
var Qae, Zae, eoe;
function f8t(e, t, r, i) {
  const {
    node: n,
    scope: s
  } = t, a = s.generateUidIdentifier("initialize"), o = n.id && t.isDeclaration(), l = t.isInStrictMode(), {
    superClass: u
  } = n;
  n.type = "ClassDeclaration", n.id || (n.id = Hi.types.cloneNode(e));
  let c;
  u && (c = s.generateUidIdentifierBasedOnNode(n.superClass, "super"), n.superClass = c);
  const f = Pge(n), h = Hi.types.arrayExpression(r.filter((v) => !v.node.abstract && v.node.type !== "TSIndexSignature").map((v) => c8t(i, n.id, c, v))), m = Hi.template.expression.ast(Qae || (Qae = at(["\n    ", "(\n      ", ",\n      function (", ", ", ") {\n        ", "\n        return { F: ", ", d: ", " };\n      },\n      ", "\n    )\n  "])), p8t(i), f || Hi.types.nullLiteral(), a, u ? Hi.types.cloneNode(c) : null, n, Hi.types.cloneNode(n.id), h, u);
  l || m.arguments[1].body.directives.push(Hi.types.directive(Hi.types.directiveLiteral("use strict")));
  let g = m, y = "arguments.1.body.body.0";
  return o && (g = Hi.template.statement.ast(Zae || (Zae = at(["let ", " = ", ""])), e, m), y = "declarations.0.init." + y), {
    instanceNodes: [Hi.template.statement.ast(eoe || (eoe = at(["", "(this)"])), Hi.types.cloneNode(a))],
    wrapClass(v) {
      return v.replaceWith(g), v.get(y);
    }
  };
}
var NI = {};
Object.defineProperty(NI, "__esModule", {
  value: !0
});
NI.extractComputedKeys = b8t;
NI.injectInitialization = g8t;
var na = js(), h8t = vm;
const d8t = na.traverse.visitors.merge([{
  Super(e) {
    const {
      node: t,
      parentPath: r
    } = e;
    r.isCallExpression({
      callee: t
    }) && this.push(r);
  }
}, h8t.default]), m8t = {
  "TSTypeAnnotation|TypeAnnotation"(e) {
    e.skip();
  },
  ReferencedIdentifier(e, {
    scope: t
  }) {
    t.hasOwnBinding(e.node.name) && (t.rename(e.node.name), e.skip());
  }
};
function wge(e, t) {
  if (t.classBinding && t.classBinding === e.scope.getBinding(e.node.name)) {
    const r = t.file.addHelper("classNameTDZError"), i = na.types.callExpression(r, [na.types.stringLiteral(e.node.name)]);
    e.replaceWith(na.types.sequenceExpression([i, e.node])), e.skip();
  }
}
const y8t = {
  ReferencedIdentifier: wge
};
var toe;
function g8t(e, t, r, i) {
  if (!r.length)
    return;
  const n = !!e.node.superClass;
  if (!t) {
    const s = na.types.classMethod("constructor", na.types.identifier("constructor"), [], na.types.blockStatement([]));
    n && (s.params = [na.types.restElement(na.types.identifier("args"))], s.body.body.push(na.template.statement.ast(toe || (toe = at(["super(...args)"]))))), [t] = e.get("body").unshiftContainer("body", s);
  }
  if (i && i(m8t, {
    scope: t.scope
  }), n) {
    const s = [];
    t.traverse(d8t, s);
    let a = !0;
    for (const o of s)
      a ? (o.insertAfter(r), a = !1) : o.insertAfter(r.map((l) => na.types.cloneNode(l)));
  } else
    t.get("body").unshiftContainer("body", r);
}
function b8t(e, t, r) {
  const i = [], n = {
    classBinding: e.node.id && e.scope.getBinding(e.node.id.name),
    file: r
  };
  for (const s of t) {
    const a = s.get("key");
    a.isReferencedIdentifier() ? wge(a, n) : a.traverse(y8t, n);
    const o = s.node;
    if (!a.isConstantExpression()) {
      const l = e.scope.generateUidIdentifierBasedOnNode(o.key);
      e.scope.push({
        id: l,
        kind: "let"
      }), i.push(na.types.expressionStatement(na.types.assignmentExpression("=", na.types.cloneNode(l), o.key))), o.key = na.types.cloneNode(l);
    }
  }
  return i;
}
var Tm = {};
Object.defineProperty(Tm, "__esModule", {
  value: !0
});
Tm.FEATURES = void 0;
Tm.enableFeature = v8t;
Tm.isLoose = C8;
Tm.shouldTransform = T8t;
var eee = Rg;
const tp = Object.freeze({
  fields: 1 << 1,
  privateMethods: 1 << 2,
  decorators: 1 << 3,
  privateIn: 1 << 4,
  staticBlocks: 1 << 5
});
Tm.FEATURES = tp;
const tee = /* @__PURE__ */ new Map([[tp.fields, "@babel/plugin-proposal-class-properties"], [tp.privateMethods, "@babel/plugin-proposal-private-methods"], [tp.privateIn, "@babel/plugin-proposal-private-property-in-object"]]), A8 = "@babel/plugin-class-features/featuresKey", N0 = "@babel/plugin-class-features/looseKey", Od = "@babel/plugin-class-features/looseLowPriorityKey/#__internal__@babel/preset-env__please-overwrite-loose-instead-of-throwing";
function v8t(e, t, r) {
  (!ef(e, t) || ree(e, t)) && (e.set(A8, e.get(A8) | t), r === "#__internal__@babel/preset-env__prefer-true-but-false-is-ok-if-it-prevents-an-error" ? (I1(e, t, !0), e.set(Od, e.get(Od) | t)) : r === "#__internal__@babel/preset-env__prefer-false-but-true-is-ok-if-it-prevents-an-error" ? (I1(e, t, !1), e.set(Od, e.get(Od) | t)) : I1(e, t, r));
  let i, n;
  for (const [s, a] of tee) {
    if (!ef(e, s))
      continue;
    const o = C8(e, s);
    if (!ree(e, s)) {
      if (i === !o)
        throw new Error("'loose' mode configuration must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled).");
      i = o, n = a;
    }
  }
  if (i !== void 0)
    for (const [s, a] of tee)
      ef(e, s) && C8(e, s) !== i && (I1(e, s, i), console.warn('Though the "loose" option was set to "'.concat(!i, '" in your @babel/preset-env ') + "config, it will not be used for ".concat(a, ' since the "loose" mode option was set to ') + '"'.concat(i, '" for ').concat(n, '.\nThe "loose" option must be the ') + "same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding\n" + '	["'.concat(a, '", { "loose": ').concat(i, " }]\n") + 'to the "plugins" section of your Babel config.'));
}
function ef(e, t) {
  return !!(e.get(A8) & t);
}
function C8(e, t) {
  return !!(e.get(N0) & t);
}
function I1(e, t, r) {
  r ? e.set(N0, e.get(N0) | t) : e.set(N0, e.get(N0) & ~t), e.set(Od, e.get(Od) & ~t);
}
function ree(e, t) {
  return !!(e.get(Od) & t);
}
function T8t(e, t) {
  let r = null, i = null, n = null, s = null, a = null;
  (0, eee.hasOwnDecorators)(e.node) && (r = e.get("decorators.0"));
  for (const o of e.get("body.body"))
    !r && (0, eee.hasOwnDecorators)(o.node) && (r = o.get("decorators.0")), !i && o.isClassProperty() && (i = o), !n && o.isClassPrivateProperty() && (n = o), !s && o.isClassPrivateMethod != null && o.isClassPrivateMethod() && (s = o), !a && o.isStaticBlock != null && o.isStaticBlock() && (a = o);
  if (r && n)
    throw n.buildCodeFrameError("Private fields in decorated classes are not supported yet.");
  if (r && s)
    throw s.buildCodeFrameError("Private methods in decorated classes are not supported yet.");
  if (r && !ef(t, tp.decorators))
    throw e.buildCodeFrameError('Decorators are not enabled.\nIf you are using ["@babel/plugin-proposal-decorators", { "version": "legacy" }], make sure it comes *before* "@babel/plugin-proposal-class-properties" and enable loose mode, like so:\n	["@babel/plugin-proposal-decorators", { "version": "legacy" }]\n	["@babel/plugin-proposal-class-properties", { "loose": true }]');
  if (s && !ef(t, tp.privateMethods))
    throw s.buildCodeFrameError("Class private methods are not enabled. Please add `@babel/plugin-proposal-private-methods` to your configuration.");
  if ((i || n) && !ef(t, tp.fields) && !ef(t, tp.privateMethods))
    throw e.buildCodeFrameError("Class fields are not enabled. Please add `@babel/plugin-proposal-class-properties` to your configuration.");
  if (a && !ef(t, tp.staticBlocks))
    throw e.buildCodeFrameError("Static class blocks are not enabled. Please add `@babel/plugin-proposal-class-static-block` to your configuration.");
  return !!(r || s || a || (i || n) && ef(t, tp.fields));
}
(function(e) {
  Object.defineProperty(e, "__esModule", {
    value: !0
  }), Object.defineProperty(e, "FEATURES", {
    enumerable: !0,
    get: function() {
      return o.FEATURES;
    }
  }), Object.defineProperty(e, "buildCheckInRHS", {
    enumerable: !0,
    get: function() {
      return n.buildCheckInRHS;
    }
  }), e.createClassFeaturePlugin = f, Object.defineProperty(e, "enableFeature", {
    enumerable: !0,
    get: function() {
      return o.enableFeature;
    }
  }), Object.defineProperty(e, "injectInitialization", {
    enumerable: !0,
    get: function() {
      return a.injectInitialization;
    }
  });
  var t = js(), r = pI, i = R5, n = hm, s = Rg, a = NI, o = Tm, l = OI;
  const u = "7.21.0".split(".").reduce((h, m) => h * 1e5 + +m, 0), c = "@babel/plugin-class-features/version";
  function f({
    name: h,
    feature: m,
    loose: g,
    manipulateOptions: y,
    api: v = {
      assumption: () => {
      }
    },
    inherits: T
  }) {
    const S = v.assumption("setPublicClassFields"), P = v.assumption("privateFieldsAsSymbols"), x = v.assumption("privateFieldsAsProperties"), C = v.assumption("constantSuper"), D = v.assumption("noDocumentAll");
    if (x && P)
      throw new Error('Cannot enable both the "privateFieldsAsProperties" and "privateFieldsAsSymbols" assumptions as the same time.');
    const w = x || P;
    if (g === !0) {
      const A = [];
      S !== void 0 && A.push('"setPublicClassFields"'), x !== void 0 && A.push('"privateFieldsAsProperties"'), P !== void 0 && A.push('"privateFieldsAsSymbols"'), A.length !== 0 && console.warn("[".concat(h, ']: You are using the "loose: true" option and you are') + " explicitly setting a value for the ".concat(A.join(" and ")) + " assumption".concat(A.length > 1 ? "s" : "", '. The "loose" option') + ' can cause incompatibilities with the other class features plugins, so it\'s recommended that you replace it with the following top-level option:\n	"assumptions": {\n		"setPublicClassFields": true,\n		"privateFieldsAsSymbols": true\n	}');
    }
    return {
      name: h,
      manipulateOptions: y,
      inherits: T,
      pre(A) {
        (0, o.enableFeature)(A, m, g), (!A.get(c) || A.get(c) < u) && A.set(c, u);
      },
      visitor: {
        Class(A, {
          file: I
        }) {
          if (I.get(c) !== u || !(0, o.shouldTransform)(A, I))
            return;
          A.isClassDeclaration() && (0, l.assertFieldTransformed)(A);
          const L = (0, o.isLoose)(I, m);
          let O;
          const F = (0, s.hasDecorators)(A.node), q = [], j = [], N = [], M = /* @__PURE__ */ new Set(), R = A.get("body");
          for (const be of R.get("body")) {
            if ((be.isClassProperty() || be.isClassMethod()) && be.node.computed && N.push(be), be.isPrivate()) {
              const {
                name: ye
              } = be.node.key.id, fe = "get ".concat(ye), Z = "set ".concat(ye);
              if (be.isClassPrivateMethod()) {
                if (be.node.kind === "get") {
                  if (M.has(fe) || M.has(ye) && !M.has(Z))
                    throw be.buildCodeFrameError("Duplicate private field");
                  M.add(fe).add(ye);
                } else if (be.node.kind === "set") {
                  if (M.has(Z) || M.has(ye) && !M.has(fe))
                    throw be.buildCodeFrameError("Duplicate private field");
                  M.add(Z).add(ye);
                }
              } else {
                if (M.has(ye) && !M.has(fe) && !M.has(Z) || M.has(ye) && (M.has(fe) || M.has(Z)))
                  throw be.buildCodeFrameError("Duplicate private field");
                M.add(ye);
              }
            }
            be.isClassMethod({
              kind: "constructor"
            }) ? O = be : (j.push(be), (be.isProperty() || be.isPrivate() || be.isStaticBlock != null && be.isStaticBlock()) && q.push(be));
          }
          if (!q.length && !F)
            return;
          const $ = A.node.id;
          let V;
          !$ || A.isClassExpression() ? ((0, r.default)(A), V = A.scope.generateUidIdentifier("class")) : V = t.types.cloneNode(A.node.id);
          const K = (0, n.buildPrivateNamesMap)(q), z = (0, n.buildPrivateNamesNodes)(K, x != null ? x : L, P != null ? P : !1, I);
          (0, n.transformPrivateNamesUsage)(V, A, K, {
            privateFieldsAsProperties: w != null ? w : L,
            noDocumentAll: D,
            innerBinding: $
          }, I);
          let W, Y, G, le, ne;
          F ? (Y = le = W = [], {
            instanceNodes: G,
            wrapClass: ne
          } = (0, s.buildDecoratedClass)(V, A, j, I)) : (W = (0, a.extractComputedKeys)(A, N, I), {
            staticNodes: Y,
            pureStaticNodes: le,
            instanceNodes: G,
            wrapClass: ne
          } = (0, n.buildFieldsInitNodes)(V, A.node.superClass, q, K, I, S != null ? S : L, w != null ? w : L, C != null ? C : L, $)), G.length > 0 && (0, a.injectInitialization)(A, O, G, (be, ye) => {
            if (!F)
              for (const fe of q)
                t.types.isStaticBlock != null && t.types.isStaticBlock(fe.node) || fe.node.static || fe.traverse(be, ye);
          });
          const ae = ne(A);
          ae.insertBefore([...z, ...W]), Y.length > 0 && ae.insertAfter(Y), le.length > 0 && ae.find((be) => be.isStatement() || be.isDeclaration()).insertAfter(le);
        },
        ExportDefaultDeclaration(A, {
          file: I
        }) {
          {
            if (I.get(c) !== u)
              return;
            const L = A.get("declaration");
            L.isClassDeclaration() && (0, s.hasDecorators)(L.node) && (L.node.id ? (0, i.default)(A) : L.node.type = "ClassExpression");
          }
        }
      }
    };
  }
})(Rme);
var _7 = {}, yS = {};
Object.defineProperty(yS, "__esModule", {
  value: !0
});
yS.default = P8t;
yS.translateEnumValues = _ge;
var My = js(), S8t = Af(), x8t = kI;
const Age = /* @__PURE__ */ new WeakMap(), E8t = My.template.expression("\n    (function (ID) {\n      ASSIGNMENTS;\n      return ID;\n    })(INIT)\n  ");
function P8t(e, t) {
  const {
    node: r,
    parentPath: i
  } = e;
  if (r.declare) {
    e.remove();
    return;
  }
  const n = r.id.name, {
    fill: s,
    data: a,
    isPure: o
  } = _8t(e, t, r.id);
  switch (i.type) {
    case "BlockStatement":
    case "ExportNamedDeclaration":
    case "Program": {
      const u = t.isProgram(e.parent), c = l(i);
      let f = t.objectExpression([]);
      (c || u) && (f = t.logicalExpression("||", t.cloneNode(s.ID), f));
      const h = E8t(Object.assign({}, s, {
        INIT: f
      }));
      o && (0, x8t.default)(h), c ? (i.isExportDeclaration() ? i : e).replaceWith(t.expressionStatement(t.assignmentExpression("=", t.cloneNode(r.id), h))) : e.scope.registerDeclaration(e.replaceWith(t.variableDeclaration(u ? "var" : "let", [t.variableDeclarator(r.id, h)]))[0]), Age.set(e.scope.getBindingIdentifier(n), a);
      break;
    }
    default:
      throw new Error("Unexpected enum parent '".concat(e.parent.type));
  }
  function l(u) {
    return u.isExportDeclaration() ? l(u.parentPath) : u.getData(n) ? !0 : (u.setData(n, !0), !1);
  }
}
const w8t = (0, My.template)('\n  ENUM["NAME"] = VALUE;\n'), A8t = (0, My.template)('\n  ENUM[ENUM["NAME"] = VALUE] = "NAME";\n'), C8t = (e, t) => (e ? w8t : A8t)(t);
function _8t(e, t, r) {
  const {
    enumValues: i,
    data: n,
    isPure: s
  } = _ge(e, t), a = i.map(([o, l]) => C8t(t.isStringLiteral(l), {
    ENUM: t.cloneNode(r),
    NAME: o,
    VALUE: l
  }));
  return {
    fill: {
      ID: t.cloneNode(r),
      ASSIGNMENTS: a
    },
    data: n,
    isPure: s
  };
}
function Cge(e, t) {
  const {
    seen: r,
    path: i,
    t: n
  } = t, s = e.node.name;
  r.has(s) && !e.scope.hasOwnBinding(s) && (e.replaceWith(n.memberExpression(n.cloneNode(i.node.id), n.cloneNode(e.node))), e.skip());
}
const I8t = {
  ReferencedIdentifier: Cge
};
function _ge(e, t) {
  const r = /* @__PURE__ */ new Map();
  let i = -1, n, s = !0;
  const a = e.get("members").map((o) => {
    const l = o.node, u = t.isIdentifier(l.id) ? l.id.name : l.id.value, c = o.get("initializer"), f = l.initializer;
    let h;
    if (f)
      i = Ige(c, r), i !== void 0 ? (r.set(u, i), typeof i == "number" ? h = t.numericLiteral(i) : (S8t(typeof i == "string"), h = t.stringLiteral(i))) : (s && (s = c.isPure()), c.isReferencedIdentifier() ? Cge(c, {
        t,
        seen: r,
        path: e
      }) : c.traverse(I8t, {
        t,
        seen: r,
        path: e
      }), h = c.node, r.set(u, void 0));
    else if (typeof i == "number")
      i += 1, h = t.numericLiteral(i), r.set(u, i);
    else {
      if (typeof i == "string")
        throw e.buildCodeFrameError("Enum member must have initializer.");
      {
        const m = t.memberExpression(t.cloneNode(e.node.id), t.stringLiteral(n), !0);
        h = t.binaryExpression("+", t.numericLiteral(1), m), r.set(u, void 0);
      }
    }
    return n = u, [u, h];
  });
  return {
    isPure: s,
    data: r,
    enumValues: a
  };
}
function Ige(e, t, r = /* @__PURE__ */ new Set()) {
  return i(e);
  function i(o) {
    const l = o.node;
    switch (l.type) {
      case "MemberExpression":
        return n(o, t, r);
      case "StringLiteral":
        return l.value;
      case "UnaryExpression":
        return s(o);
      case "BinaryExpression":
        return a(o);
      case "NumericLiteral":
        return l.value;
      case "ParenthesizedExpression":
        return i(o.get("expression"));
      case "Identifier":
        return n(o, t, r);
      case "TemplateLiteral": {
        if (l.quasis.length === 1)
          return l.quasis[0].value.cooked;
        const u = o.get("expressions"), c = l.quasis;
        let f = "";
        for (let h = 0; h < c.length; h++)
          if (f += c[h].value.cooked, h + 1 < c.length) {
            const m = n(u[h], t, r);
            if (m === void 0)
              return;
            f += m;
          }
        return f;
      }
      default:
        return;
    }
  }
  function n(o, l, u) {
    if (o.isMemberExpression()) {
      const c = o.node, f = c.object, h = c.property;
      if (!My.types.isIdentifier(f) || (c.computed ? !My.types.isStringLiteral(h) : !My.types.isIdentifier(h)))
        return;
      const m = o.scope.getBindingIdentifier(f.name), g = Age.get(m);
      return g ? g.get(h.computed ? h.value : h.name) : void 0;
    } else if (o.isIdentifier()) {
      const c = o.node.name;
      let f = l == null ? void 0 : l.get(c);
      if (f !== void 0)
        return f;
      if (u.has(o.node))
        return;
      const h = o.resolve();
      if (h)
        return u.add(o.node), f = Ige(h, void 0, u), l == null || l.set(c, f), f;
    }
  }
  function s(o) {
    const l = i(o.get("argument"));
    if (l !== void 0)
      switch (o.node.operator) {
        case "+":
          return l;
        case "-":
          return -l;
        case "~":
          return ~l;
        default:
          return;
      }
  }
  function a(o) {
    const l = i(o.get("left"));
    if (l === void 0)
      return;
    const u = i(o.get("right"));
    if (u !== void 0)
      switch (o.node.operator) {
        case "|":
          return l | u;
        case "&":
          return l & u;
        case ">>":
          return l >> u;
        case ">>>":
          return l >>> u;
        case "<<":
          return l << u;
        case "^":
          return l ^ u;
        case "*":
          return l * u;
        case "/":
          return l / u;
        case "+":
          return l + u;
        case "-":
          return l - u;
        case "%":
          return l % u;
        case "**":
          return Math.pow(l, u);
        default:
          return;
      }
  }
}
Object.defineProperty(_7, "__esModule", {
  value: !0
});
_7.default = O8t;
var k8t = yS;
function O8t(e, t) {
  const {
    name: r
  } = e.node.id, i = e.parentPath.isExportNamedDeclaration();
  let n = i;
  !n && t.isProgram(e.parent) && (n = e.parent.body.some((o) => t.isExportNamedDeclaration(o) && o.exportKind !== "type" && !o.source && o.specifiers.some((l) => t.isExportSpecifier(l) && l.exportKind !== "type" && l.local.name === r)));
  const {
    enumValues: s
  } = (0, k8t.translateEnumValues)(e, t);
  if (n) {
    const o = t.objectExpression(s.map(([l, u]) => t.objectProperty(t.isValidIdentifier(l) ? t.identifier(l) : t.stringLiteral(l), u)));
    e.scope.hasOwnBinding(r) ? (i ? e.parentPath : e).replaceWith(t.expressionStatement(t.callExpression(t.memberExpression(t.identifier("Object"), t.identifier("assign")), [e.node.id, o]))) : (e.replaceWith(t.variableDeclaration("var", [t.variableDeclarator(e.node.id, o)])), e.scope.registerDeclaration(e));
    return;
  }
  const a = new Map(s);
  e.scope.path.traverse({
    Scope(o) {
      o.scope.hasOwnBinding(r) && o.skip();
    },
    MemberExpression(o) {
      if (!t.isIdentifier(o.node.object, {
        name: r
      }))
        return;
      let l;
      if (o.node.computed)
        if (t.isStringLiteral(o.node.property))
          l = o.node.property.value;
        else
          return;
      else if (t.isIdentifier(o.node.property))
        l = o.node.property.name;
      else
        return;
      a.has(l) && o.replaceWith(t.cloneNode(a.get(l)));
    }
  }), e.remove();
}
var I7 = {};
Object.defineProperty(I7, "__esModule", {
  value: !0
});
I7.default = N8t;
var Ti = js();
function N8t(e, t) {
  if (e.node.declare || e.node.id.type === "StringLiteral") {
    e.remove();
    return;
  }
  if (!t)
    throw e.get("id").buildCodeFrameError("Namespace not marked type-only declare. Non-declarative namespaces are only supported experimentally in Babel. To enable and review caveats see: https://babeljs.io/docs/en/babel-plugin-transform-typescript");
  const r = e.node.id.name, i = I8(e, Ti.types.cloneNode(e.node, !0)), n = e.scope.hasOwnBinding(r);
  e.parent.type === "ExportNamedDeclaration" ? n ? e.parentPath.replaceWith(i) : (e.parentPath.insertAfter(i), e.replaceWith(Zw(r)), e.scope.registerDeclaration(e.parentPath)) : n ? e.replaceWith(i) : e.scope.registerDeclaration(e.replaceWithMultiple([Zw(r), i])[0]);
}
function Zw(e) {
  return Ti.types.variableDeclaration("let", [Ti.types.variableDeclarator(Ti.types.identifier(e))]);
}
function _8(e, t) {
  return Ti.types.memberExpression(Ti.types.identifier(e), Ti.types.identifier(t));
}
function D8t(e, t, r) {
  if (e.kind !== "const")
    throw r.file.buildCodeFrameError(e, "Namespaces exporting non-const are not supported by Babel. Change to const or see: https://babeljs.io/docs/en/babel-plugin-transform-typescript");
  const {
    declarations: i
  } = e;
  if (i.every((a) => Ti.types.isIdentifier(a.id))) {
    for (const a of i)
      a.init = Ti.types.assignmentExpression("=", _8(t, a.id.name), a.init);
    return [e];
  }
  const n = Ti.types.getBindingIdentifiers(e), s = [];
  for (const a in n)
    s.push(Ti.types.assignmentExpression("=", _8(t, a), Ti.types.cloneNode(n[a])));
  return [e, Ti.types.expressionStatement(Ti.types.sequenceExpression(s))];
}
function iee(e, t) {
  return e.hub.buildError(t, "Ambient modules cannot be nested in other modules or namespaces.", Error);
}
var roe, ioe;
function I8(e, t, r) {
  const i = /* @__PURE__ */ new Set(), n = t.id;
  Ti.types.assertIdentifier(n);
  const s = e.scope.generateUid(n.name), a = Ti.types.isTSModuleBlock(t.body) ? t.body.body : [Ti.types.exportNamedDeclaration(t.body)];
  for (let l = 0; l < a.length; l++) {
    const u = a[l];
    switch (u.type) {
      case "TSModuleDeclaration": {
        if (!Ti.types.isIdentifier(u.id))
          throw iee(e, u);
        const c = I8(e, u), f = u.id.name;
        i.has(f) ? a[l] = c : (i.add(f), a.splice(l++, 1, Zw(f), c));
        continue;
      }
      case "TSEnumDeclaration":
      case "FunctionDeclaration":
      case "ClassDeclaration":
        i.add(u.id.name);
        continue;
      case "VariableDeclaration": {
        for (const c in Ti.types.getBindingIdentifiers(u))
          i.add(c);
        continue;
      }
      default:
        continue;
      case "ExportNamedDeclaration":
    }
    if (!("declare" in u.declaration && u.declaration.declare))
      switch (u.declaration.type) {
        case "TSEnumDeclaration":
        case "FunctionDeclaration":
        case "ClassDeclaration": {
          const c = u.declaration.id.name;
          i.add(c), a.splice(l++, 1, u.declaration, Ti.types.expressionStatement(Ti.types.assignmentExpression("=", _8(s, c), Ti.types.identifier(c))));
          break;
        }
        case "VariableDeclaration": {
          const c = D8t(u.declaration, s, e.hub);
          a.splice(l, c.length, ...c), l += c.length - 1;
          break;
        }
        case "TSModuleDeclaration": {
          if (!Ti.types.isIdentifier(u.declaration.id))
            throw iee(e, u.declaration);
          const c = I8(e, u.declaration, Ti.types.identifier(s)), f = u.declaration.id.name;
          i.has(f) ? a[l] = c : (i.add(f), a.splice(l++, 1, Zw(f), c));
        }
      }
  }
  let o = Ti.types.objectExpression([]);
  if (r) {
    const l = Ti.types.memberExpression(r, n);
    o = Ti.template.expression.ast(roe || (roe = at(["\n      ", " ||\n        (", " = ", ")\n    "])), Ti.types.cloneNode(l), Ti.types.cloneNode(l), o);
  }
  return Ti.template.statement.ast(ioe || (ioe = at(["\n    (function (", ") {\n      ", "\n    })(", " || (", " = ", "));\n  "])), Ti.types.identifier(s), a, n, Ti.types.cloneNode(n), o);
}
Object.defineProperty(M5, "__esModule", {
  value: !0
});
var kge = M5.default = void 0, L8t = Mg, M8t = cI, R8t = Rme, B8t = _7, F8t = yS, j8t = I7;
function $8t(e) {
  switch (e.parent.type) {
    case "TSTypeReference":
    case "TSExpressionWithTypeArguments":
    case "TSTypeQuery":
      return !0;
    case "TSQualifiedName":
      return e.parentPath.findParent((t) => t.type !== "TSQualifiedName").type !== "TSImportEqualsDeclaration";
    case "ExportSpecifier":
      return e.parent.exportKind === "type" || e.parentPath.parent.exportKind === "type";
    default:
      return !1;
  }
}
const eA = /* @__PURE__ */ new WeakMap(), ml = /* @__PURE__ */ new WeakMap(), nee = /* @__PURE__ */ new WeakSet();
function O3({
  scope: e
}, t) {
  return e.hasBinding(t) ? !1 : eA.get(e).has(t) ? !0 : (console.warn('The exported identifier "'.concat(t, "\" is not declared in Babel's scope tracker\n") + 'as a JavaScript value binding, and "@babel/plugin-transform-typescript"\nnever encountered it as a TypeScript type declaration.\nIt will be treated as a JavaScript value.\n\nThis problem is likely caused by another plugin injecting\n' + '"'.concat(t, '" without registering it in the scope tracker. If you are the author\n') + ' of that plugin, please use "scope.registerDeclaration(declarationPath)".'), !1);
}
function k1(e, t) {
  eA.get(e).add(t);
}
function O1(e) {
  const t = e.getBindingIdentifiers();
  for (const r of Object.keys(t)) {
    const i = e.scope.getBinding(r);
    i && i.identifier === t[r] && i.scope.removeBinding(r);
  }
  e.opts.noScope = !0, e.remove(), e.opts.noScope = !1;
}
var noe, U8t = (0, L8t.declare)((e, t) => {
  const {
    types: r,
    template: i
  } = e;
  e.assertVersion(7);
  const n = /\*?\s*@jsx((?:Frag)?)\s+([^\s]+)/, {
    allowNamespaces: s = !0,
    jsxPragma: a = "React.createElement",
    jsxPragmaFrag: o = "React.Fragment",
    onlyRemoveTypeImports: l = !1,
    optimizeConstEnums: u = !1
  } = t;
  var {
    allowDeclareFields: c = !1
  } = t;
  const f = {
    field(y) {
      const {
        node: v
      } = y;
      if (!c && v.declare)
        throw y.buildCodeFrameError("The 'declare' modifier is only allowed when the 'allowDeclareFields' option of @babel/plugin-transform-typescript or @babel/preset-typescript is enabled.");
      if (v.declare) {
        if (v.value)
          throw y.buildCodeFrameError("Fields with the 'declare' modifier cannot be initialized here, but only in the constructor");
        v.decorators || y.remove();
      } else if (v.definite) {
        if (v.value)
          throw y.buildCodeFrameError("Definitely assigned fields cannot be initialized here, but only in the constructor");
        !c && !v.decorators && !r.isClassPrivateProperty(v) && y.remove();
      } else
        (v.abstract || !c && !v.value && !v.decorators && !r.isClassPrivateProperty(v)) && y.remove();
      v.accessibility && (v.accessibility = null), v.abstract && (v.abstract = null), v.readonly && (v.readonly = null), v.optional && (v.optional = null), v.typeAnnotation && (v.typeAnnotation = null), v.definite && (v.definite = null), v.declare && (v.declare = null), v.override && (v.override = null);
    },
    method({
      node: y
    }) {
      y.accessibility && (y.accessibility = null), y.abstract && (y.abstract = null), y.optional && (y.optional = null), y.override && (y.override = null);
    },
    constructor(y, v) {
      y.node.accessibility && (y.node.accessibility = null);
      const T = [], {
        scope: S
      } = y;
      for (const P of y.get("params")) {
        const x = P.node;
        if (x.type === "TSParameterProperty") {
          const C = x.parameter;
          if (nee.has(C))
            continue;
          nee.add(C);
          let D;
          if (r.isIdentifier(C))
            D = C;
          else if (r.isAssignmentPattern(C) && r.isIdentifier(C.left))
            D = C.left;
          else
            throw P.buildCodeFrameError("Parameter properties can not be destructuring patterns.");
          T.push(i.statement.ast(noe || (noe = at(["\n          this.", " = ", ""])), r.cloneNode(D), r.cloneNode(D))), P.replaceWith(P.get("parameter")), S.registerBinding("param", P);
        }
      }
      (0, R8t.injectInitialization)(v, y, T);
    }
  };
  return {
    name: "transform-typescript",
    inherits: M8t.default,
    visitor: {
      Pattern: m,
      Identifier: m,
      RestElement: m,
      Program: {
        enter(y, v) {
          const {
            file: T
          } = v;
          let S = null, P = null;
          const x = y.scope;
          if (eA.has(x) || eA.set(x, /* @__PURE__ */ new Set()), T.ast.comments)
            for (const w of T.ast.comments) {
              const A = n.exec(w.value);
              A && (A[1] ? P = A[2] : S = A[2]);
            }
          let C = S || a;
          C && ([C] = C.split("."));
          let D = P || o;
          D && ([D] = D.split("."));
          for (let w of y.get("body")) {
            if (w.isImportDeclaration()) {
              if (ml.has(v.file.ast.program) || ml.set(v.file.ast.program, !0), w.node.importKind === "type") {
                for (const O of w.node.specifiers)
                  k1(x, O.local.name);
                w.remove();
                continue;
              }
              const A = /* @__PURE__ */ new Set(), I = w.node.specifiers.length, L = () => I > 0 && I === A.size;
              for (const O of w.node.specifiers)
                if (O.type === "ImportSpecifier" && O.importKind === "type") {
                  k1(x, O.local.name);
                  const F = w.scope.getBinding(O.local.name);
                  F && A.add(F.path);
                }
              if (l)
                ml.set(y.node, !1);
              else {
                if (w.node.specifiers.length === 0) {
                  ml.set(y.node, !1);
                  continue;
                }
                for (const O of w.node.specifiers) {
                  const F = w.scope.getBinding(O.local.name);
                  F && !A.has(F.path) && (g({
                    binding: F,
                    programPath: y,
                    pragmaImportName: C,
                    pragmaFragImportName: D
                  }) ? A.add(F.path) : ml.set(y.node, !1));
                }
              }
              if (L() && !l)
                w.remove();
              else
                for (const O of A)
                  O.remove();
              continue;
            }
            if (w.isExportDeclaration() && (w = w.get("declaration")), w.isVariableDeclaration({
              declare: !0
            }))
              for (const A of Object.keys(w.getBindingIdentifiers()))
                k1(x, A);
            else
              (w.isTSTypeAliasDeclaration() || w.isTSDeclareFunction() && w.get("id").isIdentifier() || w.isTSInterfaceDeclaration() || w.isClassDeclaration({
                declare: !0
              }) || w.isTSEnumDeclaration({
                declare: !0
              }) || w.isTSModuleDeclaration({
                declare: !0
              }) && w.get("id").isIdentifier()) && k1(x, w.node.id.name);
          }
        },
        exit(y) {
          y.node.sourceType === "module" && ml.get(y.node) && y.pushContainer("body", r.exportNamedDeclaration());
        }
      },
      ExportNamedDeclaration(y, v) {
        if (ml.has(v.file.ast.program) || ml.set(v.file.ast.program, !0), y.node.exportKind === "type") {
          y.remove();
          return;
        }
        if (y.node.source && y.node.specifiers.length > 0 && y.node.specifiers.every((T) => T.type === "ExportSpecifier" && T.exportKind === "type")) {
          y.remove();
          return;
        }
        if (!y.node.source && y.node.specifiers.length > 0 && y.node.specifiers.every((T) => r.isExportSpecifier(T) && O3(y, T.local.name))) {
          y.remove();
          return;
        }
        ml.set(v.file.ast.program, !1);
      },
      ExportAllDeclaration(y) {
        y.node.exportKind === "type" && y.remove();
      },
      ExportSpecifier(y) {
        (!y.parent.source && O3(y, y.node.local.name) || y.node.exportKind === "type") && y.remove();
      },
      ExportDefaultDeclaration(y, v) {
        if (ml.has(v.file.ast.program) || ml.set(v.file.ast.program, !0), r.isIdentifier(y.node.declaration) && O3(y, y.node.declaration.name)) {
          y.remove();
          return;
        }
        ml.set(v.file.ast.program, !1);
      },
      TSDeclareFunction(y) {
        O1(y);
      },
      TSDeclareMethod(y) {
        O1(y);
      },
      VariableDeclaration(y) {
        y.node.declare && O1(y);
      },
      VariableDeclarator({
        node: y
      }) {
        y.definite && (y.definite = null);
      },
      TSIndexSignature(y) {
        y.remove();
      },
      ClassDeclaration(y) {
        const {
          node: v
        } = y;
        v.declare && O1(y);
      },
      Class(y) {
        const {
          node: v
        } = y;
        v.typeParameters && (v.typeParameters = null), v.superTypeParameters && (v.superTypeParameters = null), v.implements && (v.implements = null), v.abstract && (v.abstract = null), y.get("body.body").forEach((T) => {
          T.isClassMethod() || T.isClassPrivateMethod() ? T.node.kind === "constructor" ? f.constructor(T, y) : f.method(T) : (T.isClassProperty() || T.isClassPrivateProperty() || T.isClassAccessorProperty()) && f.field(T);
        });
      },
      Function(y) {
        const {
          node: v
        } = y;
        v.typeParameters && (v.typeParameters = null), v.returnType && (v.returnType = null);
        const T = v.params;
        T.length > 0 && r.isIdentifier(T[0], {
          name: "this"
        }) && T.shift();
      },
      TSModuleDeclaration(y) {
        (0, j8t.default)(y, s);
      },
      TSInterfaceDeclaration(y) {
        y.remove();
      },
      TSTypeAliasDeclaration(y) {
        y.remove();
      },
      TSEnumDeclaration(y) {
        u && y.node.const ? (0, B8t.default)(y, r) : (0, F8t.default)(y, r);
      },
      TSImportEqualsDeclaration(y) {
        if (r.isTSExternalModuleReference(y.node.moduleReference))
          throw y.buildCodeFrameError("`import ".concat(y.node.id.name, " = require('").concat(y.node.moduleReference.expression.value, "')` ") + "is not supported by @babel/plugin-transform-typescript\nPlease consider using " + "`import ".concat(y.node.id.name, " from '").concat(y.node.moduleReference.expression.value, "';` alongside ") + "Typescript's --allowSyntheticDefaultImports option.");
        y.replaceWith(r.variableDeclaration("var", [r.variableDeclarator(y.node.id, h(y.node.moduleReference))])), y.scope.registerDeclaration(y);
      },
      TSExportAssignment(y) {
        throw y.buildCodeFrameError("`export =` is not supported by @babel/plugin-transform-typescript\nPlease consider using `export <value>;`.");
      },
      TSTypeAssertion(y) {
        y.replaceWith(y.node.expression);
      },
      ["TSAsExpression".concat(r.tsSatisfiesExpression ? "|TSSatisfiesExpression" : "")](y) {
        let {
          node: v
        } = y;
        do
          v = v.expression;
        while (r.isTSAsExpression(v) || r.isTSSatisfiesExpression != null && r.isTSSatisfiesExpression(v));
        y.replaceWith(v);
      },
      [e.types.tsInstantiationExpression ? "TSNonNullExpression|TSInstantiationExpression" : "TSNonNullExpression"](y) {
        y.replaceWith(y.node.expression);
      },
      CallExpression(y) {
        y.node.typeParameters = null;
      },
      OptionalCallExpression(y) {
        y.node.typeParameters = null;
      },
      NewExpression(y) {
        y.node.typeParameters = null;
      },
      JSXOpeningElement(y) {
        y.node.typeParameters = null;
      },
      TaggedTemplateExpression(y) {
        y.node.typeParameters = null;
      }
    }
  };
  function h(y) {
    return r.isTSQualifiedName(y) ? r.memberExpression(h(y.left), y.right) : y;
  }
  function m({
    node: y
  }) {
    y.typeAnnotation && (y.typeAnnotation = null), r.isIdentifier(y) && y.optional && (y.optional = null);
  }
  function g({
    binding: y,
    programPath: v,
    pragmaImportName: T,
    pragmaFragImportName: S
  }) {
    for (const x of y.referencePaths)
      if (!$8t(x))
        return !1;
    if (y.identifier.name !== T && y.identifier.name !== S)
      return !0;
    let P = !1;
    return v.traverse({
      "JSXElement|JSXFragment"(x) {
        P = !0, x.stop();
      }
    }), !P;
  }
});
kge = M5.default = U8t;
var k7 = {};
Object.defineProperty(k7, "__esModule", {
  value: !0
});
var Oge = k7.default = void 0, q8t = Hh, V8t = (0, q8t.declare)((e) => (e.assertVersion(7), {
  name: "syntax-import-meta",
  manipulateOptions(t, r) {
    r.plugins.push("importMeta");
  }
}));
Oge = k7.default = V8t;
var O7 = {}, gS = {};
Object.defineProperty(gS, "__esModule", {
  value: !0
});
gS.default = void 0;
var W8t = Hh, H8t = (0, W8t.declare)((e, t) => {
  e.assertVersion(7);
  let {
    version: r
  } = t;
  {
    const {
      legacy: n
    } = t;
    if (n !== void 0) {
      if (typeof n != "boolean")
        throw new Error(".legacy must be a boolean.");
      if (r !== void 0)
        throw new Error("You can either use the .legacy or the .version option, not both.");
    }
    if (r === void 0)
      r = n ? "legacy" : "2018-09";
    else if (r !== "2023-05" && r !== "2023-01" && r !== "2022-03" && r !== "2021-12" && r !== "2018-09" && r !== "legacy")
      throw new Error("Unsupported decorators version: " + r);
    var {
      decoratorsBeforeExport: i
    } = t;
    if (i === void 0) {
      if (r === "2021-12" || r === "2022-03")
        i = !1;
      else if (r === "2018-09")
        throw new Error("The decorators plugin, when .version is '2018-09' or not specified, requires a 'decoratorsBeforeExport' option, whose value must be a boolean.");
    } else {
      if (r === "legacy" || r === "2022-03" || r === "2023-01")
        throw new Error("'decoratorsBeforeExport' can't be used with ".concat(r, " decorators."));
      if (typeof i != "boolean")
        throw new Error("'decoratorsBeforeExport' must be a boolean.");
    }
  }
  return {
    name: "syntax-decorators",
    manipulateOptions({
      generatorOpts: n
    }, s) {
      r === "legacy" ? s.plugins.push("decorators-legacy") : r === "2023-01" || r === "2023-05" ? s.plugins.push(["decorators", {
        allowCallParenthesized: !1
      }], "decoratorAutoAccessors") : r === "2022-03" ? s.plugins.push(["decorators", {
        decoratorsBeforeExport: !1,
        allowCallParenthesized: !1
      }], "decoratorAutoAccessors") : r === "2021-12" ? (s.plugins.push(["decorators", {
        decoratorsBeforeExport: i
      }], "decoratorAutoAccessors"), n.decoratorsBeforeExport = i) : r === "2018-09" && (s.plugins.push(["decorators", {
        decoratorsBeforeExport: i
      }]), n.decoratorsBeforeExport = i);
    }
  };
});
gS.default = H8t;
var Nge = {}, k8 = { exports: {} };
(function(e, t) {
  t = e.exports = C;
  var r;
  typeof process == "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? r = function() {
    var ie = Array.prototype.slice.call(arguments, 0);
    ie.unshift("SEMVER"), console.log.apply(console, ie);
  } : r = function() {
  }, t.SEMVER_SPEC_VERSION = "2.0.0";
  var i = 256, n = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */
  9007199254740991, s = 16, a = t.re = [], o = t.safeRe = [], l = t.src = [], u = t.tokens = {}, c = 0;
  function f(ie) {
    u[ie] = c++;
  }
  f("NUMERICIDENTIFIER"), l[u.NUMERICIDENTIFIER] = "0|[1-9]\\d*", f("NUMERICIDENTIFIERLOOSE"), l[u.NUMERICIDENTIFIERLOOSE] = "[0-9]+", f("NONNUMERICIDENTIFIER"), l[u.NONNUMERICIDENTIFIER] = "\\d*[a-zA-Z-][a-zA-Z0-9-]*", f("MAINVERSION"), l[u.MAINVERSION] = "(" + l[u.NUMERICIDENTIFIER] + ")\\.(" + l[u.NUMERICIDENTIFIER] + ")\\.(" + l[u.NUMERICIDENTIFIER] + ")", f("MAINVERSIONLOOSE"), l[u.MAINVERSIONLOOSE] = "(" + l[u.NUMERICIDENTIFIERLOOSE] + ")\\.(" + l[u.NUMERICIDENTIFIERLOOSE] + ")\\.(" + l[u.NUMERICIDENTIFIERLOOSE] + ")", f("PRERELEASEIDENTIFIER"), l[u.PRERELEASEIDENTIFIER] = "(?:" + l[u.NUMERICIDENTIFIER] + "|" + l[u.NONNUMERICIDENTIFIER] + ")", f("PRERELEASEIDENTIFIERLOOSE"), l[u.PRERELEASEIDENTIFIERLOOSE] = "(?:" + l[u.NUMERICIDENTIFIERLOOSE] + "|" + l[u.NONNUMERICIDENTIFIER] + ")", f("PRERELEASE"), l[u.PRERELEASE] = "(?:-(" + l[u.PRERELEASEIDENTIFIER] + "(?:\\." + l[u.PRERELEASEIDENTIFIER] + ")*))", f("PRERELEASELOOSE"), l[u.PRERELEASELOOSE] = "(?:-?(" + l[u.PRERELEASEIDENTIFIERLOOSE] + "(?:\\." + l[u.PRERELEASEIDENTIFIERLOOSE] + ")*))", f("BUILDIDENTIFIER"), l[u.BUILDIDENTIFIER] = "[0-9A-Za-z-]+", f("BUILD"), l[u.BUILD] = "(?:\\+(" + l[u.BUILDIDENTIFIER] + "(?:\\." + l[u.BUILDIDENTIFIER] + ")*))", f("FULL"), f("FULLPLAIN"), l[u.FULLPLAIN] = "v?" + l[u.MAINVERSION] + l[u.PRERELEASE] + "?" + l[u.BUILD] + "?", l[u.FULL] = "^" + l[u.FULLPLAIN] + "$", f("LOOSEPLAIN"), l[u.LOOSEPLAIN] = "[v=\\s]*" + l[u.MAINVERSIONLOOSE] + l[u.PRERELEASELOOSE] + "?" + l[u.BUILD] + "?", f("LOOSE"), l[u.LOOSE] = "^" + l[u.LOOSEPLAIN] + "$", f("GTLT"), l[u.GTLT] = "((?:<|>)?=?)", f("XRANGEIDENTIFIERLOOSE"), l[u.XRANGEIDENTIFIERLOOSE] = l[u.NUMERICIDENTIFIERLOOSE] + "|x|X|\\*", f("XRANGEIDENTIFIER"), l[u.XRANGEIDENTIFIER] = l[u.NUMERICIDENTIFIER] + "|x|X|\\*", f("XRANGEPLAIN"), l[u.XRANGEPLAIN] = "[v=\\s]*(" + l[u.XRANGEIDENTIFIER] + ")(?:\\.(" + l[u.XRANGEIDENTIFIER] + ")(?:\\.(" + l[u.XRANGEIDENTIFIER] + ")(?:" + l[u.PRERELEASE] + ")?" + l[u.BUILD] + "?)?)?", f("XRANGEPLAINLOOSE"), l[u.XRANGEPLAINLOOSE] = "[v=\\s]*(" + l[u.XRANGEIDENTIFIERLOOSE] + ")(?:\\.(" + l[u.XRANGEIDENTIFIERLOOSE] + ")(?:\\.(" + l[u.XRANGEIDENTIFIERLOOSE] + ")(?:" + l[u.PRERELEASELOOSE] + ")?" + l[u.BUILD] + "?)?)?", f("XRANGE"), l[u.XRANGE] = "^" + l[u.GTLT] + "\\s*" + l[u.XRANGEPLAIN] + "$", f("XRANGELOOSE"), l[u.XRANGELOOSE] = "^" + l[u.GTLT] + "\\s*" + l[u.XRANGEPLAINLOOSE] + "$", f("COERCE"), l[u.COERCE] = "(^|[^\\d])(\\d{1," + s + "})(?:\\.(\\d{1," + s + "}))?(?:\\.(\\d{1," + s + "}))?(?:$|[^\\d])", f("COERCERTL"), a[u.COERCERTL] = new RegExp(l[u.COERCE], "g"), f("LONETILDE"), l[u.LONETILDE] = "(?:~>?)", f("TILDETRIM"), l[u.TILDETRIM] = "(\\s*)" + l[u.LONETILDE] + "\\s+", a[u.TILDETRIM] = new RegExp(l[u.TILDETRIM], "g");
  var h = "$1~";
  f("TILDE"), l[u.TILDE] = "^" + l[u.LONETILDE] + l[u.XRANGEPLAIN] + "$", f("TILDELOOSE"), l[u.TILDELOOSE] = "^" + l[u.LONETILDE] + l[u.XRANGEPLAINLOOSE] + "$", f("LONECARET"), l[u.LONECARET] = "(?:\\^)", f("CARETTRIM"), l[u.CARETTRIM] = "(\\s*)" + l[u.LONECARET] + "\\s+", a[u.CARETTRIM] = new RegExp(l[u.CARETTRIM], "g");
  var m = "$1^";
  f("CARET"), l[u.CARET] = "^" + l[u.LONECARET] + l[u.XRANGEPLAIN] + "$", f("CARETLOOSE"), l[u.CARETLOOSE] = "^" + l[u.LONECARET] + l[u.XRANGEPLAINLOOSE] + "$", f("COMPARATORLOOSE"), l[u.COMPARATORLOOSE] = "^" + l[u.GTLT] + "\\s*(" + l[u.LOOSEPLAIN] + ")$|^$", f("COMPARATOR"), l[u.COMPARATOR] = "^" + l[u.GTLT] + "\\s*(" + l[u.FULLPLAIN] + ")$|^$", f("COMPARATORTRIM"), l[u.COMPARATORTRIM] = "(\\s*)" + l[u.GTLT] + "\\s*(" + l[u.LOOSEPLAIN] + "|" + l[u.XRANGEPLAIN] + ")", a[u.COMPARATORTRIM] = new RegExp(l[u.COMPARATORTRIM], "g");
  var g = "$1$2$3";
  f("HYPHENRANGE"), l[u.HYPHENRANGE] = "^\\s*(" + l[u.XRANGEPLAIN] + ")\\s+-\\s+(" + l[u.XRANGEPLAIN] + ")\\s*$", f("HYPHENRANGELOOSE"), l[u.HYPHENRANGELOOSE] = "^\\s*(" + l[u.XRANGEPLAINLOOSE] + ")\\s+-\\s+(" + l[u.XRANGEPLAINLOOSE] + ")\\s*$", f("STAR"), l[u.STAR] = "(<|>)?=?\\s*\\*";
  for (var y = 0; y < c; y++)
    r(y, l[y]), a[y] || (a[y] = new RegExp(l[y]));
  for (var v = 0; v < a.length; v++) {
    var T = a[v].source.split("\\s*").join("\\s{0,1}").split("\\s+").join("\\s");
    o[v] = new RegExp(T, a[v].flags);
  }
  t.parse = S;
  function S(ie, Q) {
    if ((!Q || typeof Q != "object") && (Q = {
      loose: !!Q,
      includePrerelease: !1
    }), ie instanceof C)
      return ie;
    if (typeof ie != "string" || ie.length > i)
      return null;
    var X = Q.loose ? o[u.LOOSE] : o[u.FULL];
    if (!X.test(ie))
      return null;
    try {
      return new C(ie, Q);
    } catch (ce) {
      return null;
    }
  }
  t.valid = P;
  function P(ie, Q) {
    var X = S(ie, Q);
    return X ? X.version : null;
  }
  t.clean = x;
  function x(ie, Q) {
    var X = S(ie.trim().replace(/^[=v]+/, ""), Q);
    return X ? X.version : null;
  }
  t.SemVer = C;
  function C(ie, Q) {
    if ((!Q || typeof Q != "object") && (Q = {
      loose: !!Q,
      includePrerelease: !1
    }), ie instanceof C) {
      if (ie.loose === Q.loose)
        return ie;
      ie = ie.version;
    } else if (typeof ie != "string")
      throw new TypeError("Invalid Version: " + ie);
    if (ie.length > i)
      throw new TypeError("version is longer than " + i + " characters");
    if (!(this instanceof C))
      return new C(ie, Q);
    r("SemVer", ie, Q), this.options = Q, this.loose = !!Q.loose;
    var X = ie.trim().match(Q.loose ? o[u.LOOSE] : o[u.FULL]);
    if (!X)
      throw new TypeError("Invalid Version: " + ie);
    if (this.raw = ie, this.major = +X[1], this.minor = +X[2], this.patch = +X[3], this.major > n || this.major < 0)
      throw new TypeError("Invalid major version");
    if (this.minor > n || this.minor < 0)
      throw new TypeError("Invalid minor version");
    if (this.patch > n || this.patch < 0)
      throw new TypeError("Invalid patch version");
    X[4] ? this.prerelease = X[4].split(".").map(function(ce) {
      if (/^[0-9]+$/.test(ce)) {
        var U = +ce;
        if (U >= 0 && U < n)
          return U;
      }
      return ce;
    }) : this.prerelease = [], this.build = X[5] ? X[5].split(".") : [], this.format();
  }
  C.prototype.format = function() {
    return this.version = this.major + "." + this.minor + "." + this.patch, this.prerelease.length && (this.version += "-" + this.prerelease.join(".")), this.version;
  }, C.prototype.toString = function() {
    return this.version;
  }, C.prototype.compare = function(ie) {
    return r("SemVer.compare", this.version, this.options, ie), ie instanceof C || (ie = new C(ie, this.options)), this.compareMain(ie) || this.comparePre(ie);
  }, C.prototype.compareMain = function(ie) {
    return ie instanceof C || (ie = new C(ie, this.options)), I(this.major, ie.major) || I(this.minor, ie.minor) || I(this.patch, ie.patch);
  }, C.prototype.comparePre = function(ie) {
    if (ie instanceof C || (ie = new C(ie, this.options)), this.prerelease.length && !ie.prerelease.length)
      return -1;
    if (!this.prerelease.length && ie.prerelease.length)
      return 1;
    if (!this.prerelease.length && !ie.prerelease.length)
      return 0;
    var Q = 0;
    do {
      var X = this.prerelease[Q], ce = ie.prerelease[Q];
      if (r("prerelease compare", Q, X, ce), X === void 0 && ce === void 0)
        return 0;
      if (ce === void 0)
        return 1;
      if (X === void 0)
        return -1;
      if (X === ce)
        continue;
      return I(X, ce);
    } while (++Q);
  }, C.prototype.compareBuild = function(ie) {
    ie instanceof C || (ie = new C(ie, this.options));
    var Q = 0;
    do {
      var X = this.build[Q], ce = ie.build[Q];
      if (r("prerelease compare", Q, X, ce), X === void 0 && ce === void 0)
        return 0;
      if (ce === void 0)
        return 1;
      if (X === void 0)
        return -1;
      if (X === ce)
        continue;
      return I(X, ce);
    } while (++Q);
  }, C.prototype.inc = function(ie, Q) {
    switch (ie) {
      case "premajor":
        this.prerelease.length = 0, this.patch = 0, this.minor = 0, this.major++, this.inc("pre", Q);
        break;
      case "preminor":
        this.prerelease.length = 0, this.patch = 0, this.minor++, this.inc("pre", Q);
        break;
      case "prepatch":
        this.prerelease.length = 0, this.inc("patch", Q), this.inc("pre", Q);
        break;
      case "prerelease":
        this.prerelease.length === 0 && this.inc("patch", Q), this.inc("pre", Q);
        break;
      case "major":
        (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) && this.major++, this.minor = 0, this.patch = 0, this.prerelease = [];
        break;
      case "minor":
        (this.patch !== 0 || this.prerelease.length === 0) && this.minor++, this.patch = 0, this.prerelease = [];
        break;
      case "patch":
        this.prerelease.length === 0 && this.patch++, this.prerelease = [];
        break;
      case "pre":
        if (this.prerelease.length === 0)
          this.prerelease = [0];
        else {
          for (var X = this.prerelease.length; --X >= 0; )
            typeof this.prerelease[X] == "number" && (this.prerelease[X]++, X = -2);
          X === -1 && this.prerelease.push(0);
        }
        Q && (this.prerelease[0] === Q ? isNaN(this.prerelease[1]) && (this.prerelease = [Q, 0]) : this.prerelease = [Q, 0]);
        break;
      default:
        throw new Error("invalid increment argument: " + ie);
    }
    return this.format(), this.raw = this.version, this;
  }, t.inc = D;
  function D(ie, Q, X, ce) {
    typeof X == "string" && (ce = X, X = void 0);
    try {
      return new C(ie, X).inc(Q, ce).version;
    } catch (U) {
      return null;
    }
  }
  t.diff = w;
  function w(ie, Q) {
    if (W(ie, Q))
      return null;
    var X = S(ie), ce = S(Q), U = "";
    if (X.prerelease.length || ce.prerelease.length) {
      U = "pre";
      var Ee = "prerelease";
    }
    for (var Qe in X)
      if ((Qe === "major" || Qe === "minor" || Qe === "patch") && X[Qe] !== ce[Qe])
        return U + Qe;
    return Ee;
  }
  t.compareIdentifiers = I;
  var A = /^[0-9]+$/;
  function I(ie, Q) {
    var X = A.test(ie), ce = A.test(Q);
    return X && ce && (ie = +ie, Q = +Q), ie === Q ? 0 : X && !ce ? -1 : ce && !X ? 1 : ie < Q ? -1 : 1;
  }
  t.rcompareIdentifiers = L;
  function L(ie, Q) {
    return I(Q, ie);
  }
  t.major = O;
  function O(ie, Q) {
    return new C(ie, Q).major;
  }
  t.minor = F;
  function F(ie, Q) {
    return new C(ie, Q).minor;
  }
  t.patch = q;
  function q(ie, Q) {
    return new C(ie, Q).patch;
  }
  t.compare = j;
  function j(ie, Q, X) {
    return new C(ie, X).compare(new C(Q, X));
  }
  t.compareLoose = N;
  function N(ie, Q) {
    return j(ie, Q, !0);
  }
  t.compareBuild = M;
  function M(ie, Q, X) {
    var ce = new C(ie, X), U = new C(Q, X);
    return ce.compare(U) || ce.compareBuild(U);
  }
  t.rcompare = R;
  function R(ie, Q, X) {
    return j(Q, ie, X);
  }
  t.sort = $;
  function $(ie, Q) {
    return ie.sort(function(X, ce) {
      return t.compareBuild(X, ce, Q);
    });
  }
  t.rsort = V;
  function V(ie, Q) {
    return ie.sort(function(X, ce) {
      return t.compareBuild(ce, X, Q);
    });
  }
  t.gt = K;
  function K(ie, Q, X) {
    return j(ie, Q, X) > 0;
  }
  t.lt = z;
  function z(ie, Q, X) {
    return j(ie, Q, X) < 0;
  }
  t.eq = W;
  function W(ie, Q, X) {
    return j(ie, Q, X) === 0;
  }
  t.neq = Y;
  function Y(ie, Q, X) {
    return j(ie, Q, X) !== 0;
  }
  t.gte = G;
  function G(ie, Q, X) {
    return j(ie, Q, X) >= 0;
  }
  t.lte = le;
  function le(ie, Q, X) {
    return j(ie, Q, X) <= 0;
  }
  t.cmp = ne;
  function ne(ie, Q, X, ce) {
    switch (Q) {
      case "===":
        return typeof ie == "object" && (ie = ie.version), typeof X == "object" && (X = X.version), ie === X;
      case "!==":
        return typeof ie == "object" && (ie = ie.version), typeof X == "object" && (X = X.version), ie !== X;
      case "":
      case "=":
      case "==":
        return W(ie, X, ce);
      case "!=":
        return Y(ie, X, ce);
      case ">":
        return K(ie, X, ce);
      case ">=":
        return G(ie, X, ce);
      case "<":
        return z(ie, X, ce);
      case "<=":
        return le(ie, X, ce);
      default:
        throw new TypeError("Invalid operator: " + Q);
    }
  }
  t.Comparator = ae;
  function ae(ie, Q) {
    if ((!Q || typeof Q != "object") && (Q = {
      loose: !!Q,
      includePrerelease: !1
    }), ie instanceof ae) {
      if (ie.loose === !!Q.loose)
        return ie;
      ie = ie.value;
    }
    if (!(this instanceof ae))
      return new ae(ie, Q);
    ie = ie.trim().split(/\s+/).join(" "), r("comparator", ie, Q), this.options = Q, this.loose = !!Q.loose, this.parse(ie), this.semver === be ? this.value = "" : this.value = this.operator + this.semver.version, r("comp", this);
  }
  var be = {};
  ae.prototype.parse = function(ie) {
    var Q = this.options.loose ? o[u.COMPARATORLOOSE] : o[u.COMPARATOR], X = ie.match(Q);
    if (!X)
      throw new TypeError("Invalid comparator: " + ie);
    this.operator = X[1] !== void 0 ? X[1] : "", this.operator === "=" && (this.operator = ""), X[2] ? this.semver = new C(X[2], this.options.loose) : this.semver = be;
  }, ae.prototype.toString = function() {
    return this.value;
  }, ae.prototype.test = function(ie) {
    if (r("Comparator.test", ie, this.options.loose), this.semver === be || ie === be)
      return !0;
    if (typeof ie == "string")
      try {
        ie = new C(ie, this.options);
      } catch (Q) {
        return !1;
      }
    return ne(ie, this.operator, this.semver, this.options);
  }, ae.prototype.intersects = function(ie, Q) {
    if (!(ie instanceof ae))
      throw new TypeError("a Comparator is required");
    (!Q || typeof Q != "object") && (Q = {
      loose: !!Q,
      includePrerelease: !1
    });
    var X;
    if (this.operator === "")
      return this.value === "" ? !0 : (X = new ye(ie.value, Q), re(this.value, X, Q));
    if (ie.operator === "")
      return ie.value === "" ? !0 : (X = new ye(this.value, Q), re(ie.semver, X, Q));
    var ce = (this.operator === ">=" || this.operator === ">") && (ie.operator === ">=" || ie.operator === ">"), U = (this.operator === "<=" || this.operator === "<") && (ie.operator === "<=" || ie.operator === "<"), Ee = this.semver.version === ie.semver.version, Qe = (this.operator === ">=" || this.operator === "<=") && (ie.operator === ">=" || ie.operator === "<="), ft = ne(this.semver, "<", ie.semver, Q) && (this.operator === ">=" || this.operator === ">") && (ie.operator === "<=" || ie.operator === "<"), ht = ne(this.semver, ">", ie.semver, Q) && (this.operator === "<=" || this.operator === "<") && (ie.operator === ">=" || ie.operator === ">");
    return ce || U || Ee && Qe || ft || ht;
  }, t.Range = ye;
  function ye(ie, Q) {
    if ((!Q || typeof Q != "object") && (Q = {
      loose: !!Q,
      includePrerelease: !1
    }), ie instanceof ye)
      return ie.loose === !!Q.loose && ie.includePrerelease === !!Q.includePrerelease ? ie : new ye(ie.raw, Q);
    if (ie instanceof ae)
      return new ye(ie.value, Q);
    if (!(this instanceof ye))
      return new ye(ie, Q);
    if (this.options = Q, this.loose = !!Q.loose, this.includePrerelease = !!Q.includePrerelease, this.raw = ie.trim().split(/\s+/).join(" "), this.set = this.raw.split(/\s*\|\|\s*/).map(function(X) {
      return this.parseRange(X);
    }, this).filter(function(X) {
      return X.length;
    }), !this.set.length)
      throw new TypeError("Invalid SemVer Range: " + this.raw);
    this.format();
  }
  ye.prototype.format = function() {
    return this.range = this.set.map(function(ie) {
      return ie.join(" ").trim();
    }).join("||").trim(), this.range;
  }, ye.prototype.toString = function() {
    return this.range;
  }, ye.prototype.parseRange = function(ie) {
    var Q = this.options.loose, X = Q ? o[u.HYPHENRANGELOOSE] : o[u.HYPHENRANGE];
    ie = ie.replace(X, te), r("hyphen replace", ie), ie = ie.replace(o[u.COMPARATORTRIM], g), r("comparator trim", ie, o[u.COMPARATORTRIM]), ie = ie.replace(o[u.TILDETRIM], h), ie = ie.replace(o[u.CARETTRIM], m);
    var ce = Q ? o[u.COMPARATORLOOSE] : o[u.COMPARATOR], U = ie.split(" ").map(function(Ee) {
      return ue(Ee, this.options);
    }, this).join(" ").split(/\s+/);
    return this.options.loose && (U = U.filter(function(Ee) {
      return !!Ee.match(ce);
    })), U = U.map(function(Ee) {
      return new ae(Ee, this.options);
    }, this), U;
  }, ye.prototype.intersects = function(ie, Q) {
    if (!(ie instanceof ye))
      throw new TypeError("a Range is required");
    return this.set.some(function(X) {
      return fe(X, Q) && ie.set.some(function(ce) {
        return fe(ce, Q) && X.every(function(U) {
          return ce.every(function(Ee) {
            return U.intersects(Ee, Q);
          });
        });
      });
    });
  };
  function fe(ie, Q) {
    for (var X = !0, ce = ie.slice(), U = ce.pop(); X && ce.length; )
      X = ce.every(function(Ee) {
        return U.intersects(Ee, Q);
      }), U = ce.pop();
    return X;
  }
  t.toComparators = Z;
  function Z(ie, Q) {
    return new ye(ie, Q).set.map(function(X) {
      return X.map(function(ce) {
        return ce.value;
      }).join(" ").trim().split(" ");
    });
  }
  function ue(ie, Q) {
    return r("comp", ie, Q), ie = ve(ie, Q), r("caret", ie), ie = xe(ie, Q), r("tildes", ie), ie = st(ie, Q), r("xrange", ie), ie = oe(ie, Q), r("stars", ie), ie;
  }
  function me(ie) {
    return !ie || ie.toLowerCase() === "x" || ie === "*";
  }
  function xe(ie, Q) {
    return ie.trim().split(/\s+/).map(function(X) {
      return Pe(X, Q);
    }).join(" ");
  }
  function Pe(ie, Q) {
    var X = Q.loose ? o[u.TILDELOOSE] : o[u.TILDE];
    return ie.replace(X, function(ce, U, Ee, Qe, ft) {
      r("tilde", ie, ce, U, Ee, Qe, ft);
      var ht;
      return me(U) ? ht = "" : me(Ee) ? ht = ">=" + U + ".0.0 <" + (+U + 1) + ".0.0" : me(Qe) ? ht = ">=" + U + "." + Ee + ".0 <" + U + "." + (+Ee + 1) + ".0" : ft ? (r("replaceTilde pr", ft), ht = ">=" + U + "." + Ee + "." + Qe + "-" + ft + " <" + U + "." + (+Ee + 1) + ".0") : ht = ">=" + U + "." + Ee + "." + Qe + " <" + U + "." + (+Ee + 1) + ".0", r("tilde return", ht), ht;
    });
  }
  function ve(ie, Q) {
    return ie.trim().split(/\s+/).map(function(X) {
      return Xe(X, Q);
    }).join(" ");
  }
  function Xe(ie, Q) {
    r("caret", ie, Q);
    var X = Q.loose ? o[u.CARETLOOSE] : o[u.CARET];
    return ie.replace(X, function(ce, U, Ee, Qe, ft) {
      r("caret", ie, ce, U, Ee, Qe, ft);
      var ht;
      return me(U) ? ht = "" : me(Ee) ? ht = ">=" + U + ".0.0 <" + (+U + 1) + ".0.0" : me(Qe) ? U === "0" ? ht = ">=" + U + "." + Ee + ".0 <" + U + "." + (+Ee + 1) + ".0" : ht = ">=" + U + "." + Ee + ".0 <" + (+U + 1) + ".0.0" : ft ? (r("replaceCaret pr", ft), U === "0" ? Ee === "0" ? ht = ">=" + U + "." + Ee + "." + Qe + "-" + ft + " <" + U + "." + Ee + "." + (+Qe + 1) : ht = ">=" + U + "." + Ee + "." + Qe + "-" + ft + " <" + U + "." + (+Ee + 1) + ".0" : ht = ">=" + U + "." + Ee + "." + Qe + "-" + ft + " <" + (+U + 1) + ".0.0") : (r("no pr"), U === "0" ? Ee === "0" ? ht = ">=" + U + "." + Ee + "." + Qe + " <" + U + "." + Ee + "." + (+Qe + 1) : ht = ">=" + U + "." + Ee + "." + Qe + " <" + U + "." + (+Ee + 1) + ".0" : ht = ">=" + U + "." + Ee + "." + Qe + " <" + (+U + 1) + ".0.0"), r("caret return", ht), ht;
    });
  }
  function st(ie, Q) {
    return r("replaceXRanges", ie, Q), ie.split(/\s+/).map(function(X) {
      return Se(X, Q);
    }).join(" ");
  }
  function Se(ie, Q) {
    ie = ie.trim();
    var X = Q.loose ? o[u.XRANGELOOSE] : o[u.XRANGE];
    return ie.replace(X, function(ce, U, Ee, Qe, ft, ht) {
      r("xRange", ie, ce, U, Ee, Qe, ft, ht);
      var Rt = me(Ee), Ot = Rt || me(Qe), Tt = Ot || me(ft), lt = Tt;
      return U === "=" && lt && (U = ""), ht = Q.includePrerelease ? "-0" : "", Rt ? U === ">" || U === "<" ? ce = "<0.0.0-0" : ce = "*" : U && lt ? (Ot && (Qe = 0), ft = 0, U === ">" ? (U = ">=", Ot ? (Ee = +Ee + 1, Qe = 0, ft = 0) : (Qe = +Qe + 1, ft = 0)) : U === "<=" && (U = "<", Ot ? Ee = +Ee + 1 : Qe = +Qe + 1), ce = U + Ee + "." + Qe + "." + ft + ht) : Ot ? ce = ">=" + Ee + ".0.0" + ht + " <" + (+Ee + 1) + ".0.0" + ht : Tt && (ce = ">=" + Ee + "." + Qe + ".0" + ht + " <" + Ee + "." + (+Qe + 1) + ".0" + ht), r("xRange return", ce), ce;
    });
  }
  function oe(ie, Q) {
    return r("replaceStars", ie, Q), ie.trim().replace(o[u.STAR], "");
  }
  function te(ie, Q, X, ce, U, Ee, Qe, ft, ht, Rt, Ot, Tt, lt) {
    return me(X) ? Q = "" : me(ce) ? Q = ">=" + X + ".0.0" : me(U) ? Q = ">=" + X + "." + ce + ".0" : Q = ">=" + Q, me(ht) ? ft = "" : me(Rt) ? ft = "<" + (+ht + 1) + ".0.0" : me(Ot) ? ft = "<" + ht + "." + (+Rt + 1) + ".0" : Tt ? ft = "<=" + ht + "." + Rt + "." + Ot + "-" + Tt : ft = "<=" + ft, (Q + " " + ft).trim();
  }
  ye.prototype.test = function(ie) {
    if (!ie)
      return !1;
    if (typeof ie == "string")
      try {
        ie = new C(ie, this.options);
      } catch (X) {
        return !1;
      }
    for (var Q = 0; Q < this.set.length; Q++)
      if (se(this.set[Q], ie, this.options))
        return !0;
    return !1;
  };
  function se(ie, Q, X) {
    for (var ce = 0; ce < ie.length; ce++)
      if (!ie[ce].test(Q))
        return !1;
    if (Q.prerelease.length && !X.includePrerelease) {
      for (ce = 0; ce < ie.length; ce++)
        if (r(ie[ce].semver), ie[ce].semver !== be && ie[ce].semver.prerelease.length > 0) {
          var U = ie[ce].semver;
          if (U.major === Q.major && U.minor === Q.minor && U.patch === Q.patch)
            return !0;
        }
      return !1;
    }
    return !0;
  }
  t.satisfies = re;
  function re(ie, Q, X) {
    try {
      Q = new ye(Q, X);
    } catch (ce) {
      return !1;
    }
    return Q.test(ie);
  }
  t.maxSatisfying = Te;
  function Te(ie, Q, X) {
    var ce = null, U = null;
    try {
      var Ee = new ye(Q, X);
    } catch (Qe) {
      return null;
    }
    return ie.forEach(function(Qe) {
      Ee.test(Qe) && (!ce || U.compare(Qe) === -1) && (ce = Qe, U = new C(ce, X));
    }), ce;
  }
  t.minSatisfying = ze;
  function ze(ie, Q, X) {
    var ce = null, U = null;
    try {
      var Ee = new ye(Q, X);
    } catch (Qe) {
      return null;
    }
    return ie.forEach(function(Qe) {
      Ee.test(Qe) && (!ce || U.compare(Qe) === 1) && (ce = Qe, U = new C(ce, X));
    }), ce;
  }
  t.minVersion = Ze;
  function Ze(ie, Q) {
    ie = new ye(ie, Q);
    var X = new C("0.0.0");
    if (ie.test(X) || (X = new C("0.0.0-0"), ie.test(X)))
      return X;
    X = null;
    for (var ce = 0; ce < ie.set.length; ++ce) {
      var U = ie.set[ce];
      U.forEach(function(Ee) {
        var Qe = new C(Ee.semver.version);
        switch (Ee.operator) {
          case ">":
            Qe.prerelease.length === 0 ? Qe.patch++ : Qe.prerelease.push(0), Qe.raw = Qe.format();
          case "":
          case ">=":
            (!X || K(X, Qe)) && (X = Qe);
            break;
          case "<":
          case "<=":
            break;
          default:
            throw new Error("Unexpected operation: " + Ee.operator);
        }
      });
    }
    return X && ie.test(X) ? X : null;
  }
  t.validRange = pt;
  function pt(ie, Q) {
    try {
      return new ye(ie, Q).range || "*";
    } catch (X) {
      return null;
    }
  }
  t.ltr = ut;
  function ut(ie, Q, X) {
    return vt(ie, Q, "<", X);
  }
  t.gtr = bt;
  function bt(ie, Q, X) {
    return vt(ie, Q, ">", X);
  }
  t.outside = vt;
  function vt(ie, Q, X, ce) {
    ie = new C(ie, ce), Q = new ye(Q, ce);
    var U, Ee, Qe, ft, ht;
    switch (X) {
      case ">":
        U = K, Ee = le, Qe = z, ft = ">", ht = ">=";
        break;
      case "<":
        U = z, Ee = G, Qe = K, ft = "<", ht = "<=";
        break;
      default:
        throw new TypeError('Must provide a hilo val of "<" or ">"');
    }
    if (re(ie, Q, ce))
      return !1;
    for (var Rt = 0; Rt < Q.set.length; ++Rt) {
      var Ot = Q.set[Rt], Tt = null, lt = null;
      if (Ot.forEach(function(lr) {
        lr.semver === be && (lr = new ae(">=0.0.0")), Tt = Tt || lr, lt = lt || lr, U(lr.semver, Tt.semver, ce) ? Tt = lr : Qe(lr.semver, lt.semver, ce) && (lt = lr);
      }), Tt.operator === ft || Tt.operator === ht || (!lt.operator || lt.operator === ft) && Ee(ie, lt.semver))
        return !1;
      if (lt.operator === ht && Qe(ie, lt.semver))
        return !1;
    }
    return !0;
  }
  t.prerelease = ge;
  function ge(ie, Q) {
    var X = S(ie, Q);
    return X && X.prerelease.length ? X.prerelease : null;
  }
  t.intersects = pe;
  function pe(ie, Q, X) {
    return ie = new ye(ie, X), Q = new ye(Q, X), ie.intersects(Q);
  }
  t.coerce = $e;
  function $e(ie, Q) {
    if (ie instanceof C)
      return ie;
    if (typeof ie == "number" && (ie = String(ie)), typeof ie != "string")
      return null;
    Q = Q || {};
    var X = null;
    if (!Q.rtl)
      X = ie.match(o[u.COERCE]);
    else {
      for (var ce; (ce = o[u.COERCERTL].exec(ie)) && (!X || X.index + X[0].length !== ie.length); )
        (!X || ce.index + ce[0].length !== X.index + X[0].length) && (X = ce), o[u.COERCERTL].lastIndex = ce.index + ce[1].length + ce[2].length;
      o[u.COERCERTL].lastIndex = -1;
    }
    return X === null ? null : S(X[2] + "." + (X[3] || "0") + "." + (X[4] || "0"), Q);
  }
})(k8, k8.exports);
var K8t = k8.exports, Sm = {}, jh = {};
Object.defineProperty(jh, "__esModule", {
  value: !0
});
jh.default = void 0;
var Dge = Io, z8t = fI, tA = sS, see = rn, Lge = dS(), G8t = sn();
const {
  assignmentExpression: Mge,
  booleanLiteral: Y8t,
  callExpression: qP,
  cloneNode: _l,
  identifier: D0,
  memberExpression: sy,
  sequenceExpression: N3,
  stringLiteral: X8t,
  thisExpression: by
} = G8t;
{
  const e = Io;
  jh.environmentVisitor = e.default, jh.skipAllButComputedKey = e.skipAllButComputedKey;
}
function aee(e, t, r, i) {
  e = _l(e);
  const n = t || i ? e : sy(e, D0("prototype"));
  return qP(r.addHelper("getPrototypeOf"), [n]);
}
const J8t = Lge.default.visitors.merge([Dge.default, {
  Super(e, t) {
    const {
      node: r,
      parentPath: i
    } = e;
    i.isMemberExpression({
      object: r
    }) && t.handle(i);
  }
}]), Q8t = Lge.default.visitors.merge([Dge.default, {
  Scopable(e, {
    refName: t
  }) {
    const r = e.scope.getOwnBinding(t);
    r && r.identifier.name === t && e.scope.rename(t);
  }
}]);
var soe, aoe;
const Rge = {
  memoise(e, t) {
    const {
      scope: r,
      node: i
    } = e, {
      computed: n,
      property: s
    } = i;
    if (!n)
      return;
    const a = r.maybeGenerateMemoised(s);
    a && this.memoiser.set(s, a, t);
  },
  prop(e) {
    const {
      computed: t,
      property: r
    } = e.node;
    return this.memoiser.has(r) ? _l(this.memoiser.get(r)) : t ? _l(r) : X8t(r.name);
  },
  get(e) {
    return this._get(e, this._getThisRefs());
  },
  _get(e, t) {
    const r = aee(this.getObjectRef(), this.isStatic, this.file, this.isPrivateMethod);
    return qP(this.file.addHelper("get"), [t.memo ? N3([t.memo, r]) : r, this.prop(e), t.this]);
  },
  _getThisRefs() {
    if (!this.isDerivedConstructor)
      return {
        this: by()
      };
    const e = this.scope.generateDeclaredUidIdentifier("thisSuper");
    return {
      memo: Mge("=", e, by()),
      this: _l(e)
    };
  },
  set(e, t) {
    const r = this._getThisRefs(), i = aee(this.getObjectRef(), this.isStatic, this.file, this.isPrivateMethod);
    return qP(this.file.addHelper("set"), [r.memo ? N3([r.memo, i]) : i, this.prop(e), t, r.this, Y8t(e.isInStrictMode())]);
  },
  destructureSet(e) {
    throw e.buildCodeFrameError("Destructuring to a super field is not supported yet.");
  },
  call(e, t) {
    const r = this._getThisRefs();
    return (0, tA.default)(this._get(e, r), _l(r.this), t, !1);
  },
  optionalCall(e, t) {
    const r = this._getThisRefs();
    return (0, tA.default)(this._get(e, r), _l(r.this), t, !0);
  },
  delete(e) {
    return e.node.computed ? N3([qP(this.file.addHelper("toPropertyKey"), [_l(e.node.property)]), see.default.expression.ast(soe || (soe = at(["\n          function () { throw new ReferenceError(\"'delete super[expr]' is invalid\"); }()\n        "])))]) : see.default.expression.ast(aoe || (aoe = at(["\n        function () { throw new ReferenceError(\"'delete super.prop' is invalid\"); }()\n      "])));
  }
}, Z8t = Object.assign({}, Rge, {
  prop(e) {
    const {
      property: t
    } = e.node;
    return this.memoiser.has(t) ? _l(this.memoiser.get(t)) : _l(t);
  },
  get(e) {
    const {
      isStatic: t,
      getSuperRef: r
    } = this, {
      computed: i
    } = e.node, n = this.prop(e);
    let s;
    if (t) {
      var a;
      s = (a = r()) != null ? a : sy(D0("Function"), D0("prototype"));
    } else {
      var o;
      s = sy((o = r()) != null ? o : D0("Object"), D0("prototype"));
    }
    return sy(s, n, i);
  },
  set(e, t) {
    const {
      computed: r
    } = e.node, i = this.prop(e);
    return Mge("=", sy(by(), i, r), t);
  },
  destructureSet(e) {
    const {
      computed: t
    } = e.node, r = this.prop(e);
    return sy(by(), r, t);
  },
  call(e, t) {
    return (0, tA.default)(this.get(e), by(), t, !1);
  },
  optionalCall(e, t) {
    return (0, tA.default)(this.get(e), by(), t, !0);
  }
});
class ejt {
  constructor(t) {
    var r;
    const i = t.methodPath;
    this.methodPath = i, this.isDerivedConstructor = i.isClassMethod({
      kind: "constructor"
    }) && !!t.superRef, this.isStatic = i.isObjectMethod() || i.node.static || (i.isStaticBlock == null ? void 0 : i.isStaticBlock()), this.isPrivateMethod = i.isPrivate() && i.isMethod(), this.file = t.file, this.constantSuper = (r = t.constantSuper) != null ? r : t.isLoose, this.opts = t;
  }
  getObjectRef() {
    return _l(this.opts.objectRef || this.opts.getObjectRef());
  }
  getSuperRef() {
    if (this.opts.superRef)
      return _l(this.opts.superRef);
    if (this.opts.getSuperRef)
      return _l(this.opts.getSuperRef());
  }
  replace() {
    this.opts.refToPreserve && this.methodPath.traverse(Q8t, {
      refName: this.opts.refToPreserve.name
    });
    const t = this.constantSuper ? Z8t : Rge;
    (0, z8t.default)(this.methodPath, J8t, Object.assign({
      file: this.file,
      scope: this.methodPath.scope,
      isDerivedConstructor: this.isDerivedConstructor,
      isStatic: this.isStatic,
      isPrivateMethod: this.isPrivateMethod,
      getObjectRef: this.getObjectRef.bind(this),
      getSuperRef: this.getSuperRef.bind(this),
      boundGet: t.get
    }, t));
  }
}
jh.default = ejt;
var N7 = {};
Object.defineProperty(N7, "__esModule", {
  value: !0
});
N7.default = sjt;
var tjt = Qn();
const {
  addComment: rjt
} = tjt, ijt = "#__PURE__", njt = ({
  leadingComments: e
}) => !!e && e.some((t) => /[@#]__PURE__/.test(t.value));
function sjt(e) {
  const t = e.node || e;
  njt(t) || rjt(t, "leading", ijt);
}
var bS = {};
Object.defineProperty(bS, "__esModule", {
  value: !0
});
bS.isTransparentExprWrapper = D7;
bS.skipTransparentExprWrapperNodes = djt;
bS.skipTransparentExprWrappers = hjt;
var ajt = Qn();
const {
  isParenthesizedExpression: ojt,
  isTSAsExpression: ljt,
  isTSNonNullExpression: ujt,
  isTSSatisfiesExpression: cjt,
  isTSTypeAssertion: pjt,
  isTypeCastExpression: fjt
} = ajt;
function D7(e) {
  return ljt(e) || cjt(e) || pjt(e) || ujt(e) || fjt(e) || ojt(e);
}
function hjt(e) {
  for (; D7(e.node); )
    e = e.get("expression");
  return e;
}
function djt(e) {
  for (; D7(e); )
    e = e.expression;
  return e;
}
var DI = {};
Object.defineProperty(DI, "__esModule", {
  value: !0
});
DI.assertFieldTransformed = mjt;
function mjt(e) {
  if (e.node.declare)
    throw e.buildCodeFrameError("TypeScript 'declare' fields must first be transformed by @babel/plugin-transform-typescript.\nIf you have already enabled that plugin (or '@babel/preset-typescript'), make sure that it runs before any plugin related to additional class features:\n - @babel/plugin-transform-class-properties\n - @babel/plugin-transform-private-methods\n - @babel/plugin-proposal-decorators");
}
Object.defineProperty(Sm, "__esModule", {
  value: !0
});
Sm.buildCheckInRHS = VP;
Sm.buildFieldsInitNodes = Fjt;
Sm.buildPrivateNamesMap = Sjt;
Sm.buildPrivateNamesNodes = xjt;
Sm.transformPrivateNamesUsage = Cjt;
var mt = js(), yjt = jh, Bge = Io, gjt = fI, oee = sS, bjt = N7, vjt = bS, Tjt = DI;
function Sjt(e) {
  const t = /* @__PURE__ */ new Map();
  for (const r of e)
    if (r.isPrivate()) {
      const {
        name: i
      } = r.node.key.id, n = t.has(i) ? t.get(i) : {
        id: r.scope.generateUidIdentifier(i),
        static: r.node.static,
        method: !r.isProperty()
      };
      r.isClassPrivateMethod() && (r.node.kind === "get" ? n.getId = r.scope.generateUidIdentifier("get_".concat(i)) : r.node.kind === "set" ? n.setId = r.scope.generateUidIdentifier("set_".concat(i)) : r.node.kind === "method" && (n.methodId = r.scope.generateUidIdentifier(i))), t.set(i, n);
    }
  return t;
}
var ooe;
function xjt(e, t, r, i) {
  const n = [];
  for (const [s, a] of e) {
    const {
      static: o,
      method: l,
      getId: u,
      setId: c
    } = a, f = u || c, h = mt.types.cloneNode(a.id);
    let m;
    t ? m = mt.types.callExpression(i.addHelper("classPrivateFieldLooseKey"), [mt.types.stringLiteral(s)]) : r ? m = mt.types.callExpression(mt.types.identifier("Symbol"), [mt.types.stringLiteral(s)]) : o || (m = mt.types.newExpression(mt.types.identifier(!l || f ? "WeakMap" : "WeakSet"), [])), m && ((0, bjt.default)(m), n.push(mt.template.statement.ast(ooe || (ooe = at(["var ", " = ", ""])), h, m)));
  }
  return n;
}
function Fge(e) {
  const t = mt.traverse.visitors.merge([Object.assign({}, e), Bge.default]), r = Object.assign({}, e, {
    Class(i) {
      const {
        privateNamesMap: n
      } = this, s = i.get("body.body"), a = new Map(n), o = [];
      for (const l of s) {
        if (!l.isPrivate())
          continue;
        const {
          name: u
        } = l.node.key.id;
        a.delete(u), o.push(u);
      }
      o.length && (i.get("body").traverse(t, Object.assign({}, this, {
        redeclared: o
      })), i.traverse(r, Object.assign({}, this, {
        privateNamesMap: a
      })), i.skipKey("body"));
    }
  });
  return r;
}
const Ejt = Fge({
  PrivateName(e, {
    noDocumentAll: t
  }) {
    const {
      privateNamesMap: r,
      redeclared: i
    } = this, {
      node: n,
      parentPath: s
    } = e;
    if (!s.isMemberExpression({
      property: n
    }) && !s.isOptionalMemberExpression({
      property: n
    }))
      return;
    const {
      name: a
    } = n.id;
    r.has(a) && (i && i.includes(a) || this.handle(s, t));
  }
});
function jge(e, t, r) {
  for (; (i = t) != null && i.hasBinding(e) && !t.bindingIdentifierEquals(e, r); ) {
    var i;
    t.rename(e), t = t.parent;
  }
}
function VP(e, t, r) {
  return r || !(t.availableHelper != null && t.availableHelper("checkInRHS")) ? e : mt.types.callExpression(t.addHelper("checkInRHS"), [e]);
}
var loe, uoe, coe;
const Pjt = Fge({
  BinaryExpression(e, {
    file: t
  }) {
    const {
      operator: r,
      left: i,
      right: n
    } = e.node;
    if (r !== "in" || !mt.types.isPrivateName(i))
      return;
    const {
      privateFieldsAsProperties: s,
      privateNamesMap: a,
      redeclared: o
    } = this, {
      name: l
    } = i.id;
    if (!a.has(l) || o && o.includes(l))
      return;
    if (jge(this.classRef.name, e.scope, this.innerBinding), s) {
      const {
        id: f
      } = a.get(l);
      e.replaceWith(mt.template.expression.ast(loe || (loe = at(["\n        Object.prototype.hasOwnProperty.call(", ", ", ")\n      "])), VP(n, t), mt.types.cloneNode(f)));
      return;
    }
    const {
      id: u,
      static: c
    } = a.get(l);
    if (c) {
      e.replaceWith(mt.template.expression.ast(uoe || (uoe = at(["", " === ", ""])), VP(n, t), mt.types.cloneNode(this.classRef)));
      return;
    }
    e.replaceWith(mt.template.expression.ast(coe || (coe = at(["", ".has(", ")"])), mt.types.cloneNode(u), VP(n, t)));
  }
}), wjt = {
  memoise(e, t) {
    const {
      scope: r
    } = e, {
      object: i
    } = e.node, n = r.maybeGenerateMemoised(i);
    n && this.memoiser.set(i, n, t);
  },
  receiver(e) {
    const {
      object: t
    } = e.node;
    return this.memoiser.has(t) ? mt.types.cloneNode(this.memoiser.get(t)) : mt.types.cloneNode(t);
  },
  get(e) {
    const {
      classRef: t,
      privateNamesMap: r,
      file: i,
      innerBinding: n
    } = this, {
      name: s
    } = e.node.property.id, {
      id: a,
      static: o,
      method: l,
      methodId: u,
      getId: c,
      setId: f
    } = r.get(s), h = c || f;
    if (o) {
      const m = l && !h ? "classStaticPrivateMethodGet" : "classStaticPrivateFieldSpecGet";
      return jge(t.name, e.scope, n), mt.types.callExpression(i.addHelper(m), [this.receiver(e), mt.types.cloneNode(t), mt.types.cloneNode(a)]);
    }
    if (l) {
      if (h) {
        if (!c && f) {
          if (i.availableHelper("writeOnlyError"))
            return mt.types.sequenceExpression([this.receiver(e), mt.types.callExpression(i.addHelper("writeOnlyError"), [mt.types.stringLiteral("#".concat(s))])]);
          console.warn("@babel/helpers is outdated, update it to silence this warning.");
        }
        return mt.types.callExpression(i.addHelper("classPrivateFieldGet"), [this.receiver(e), mt.types.cloneNode(a)]);
      }
      return mt.types.callExpression(i.addHelper("classPrivateMethodGet"), [this.receiver(e), mt.types.cloneNode(a), mt.types.cloneNode(u)]);
    }
    return mt.types.callExpression(i.addHelper("classPrivateFieldGet"), [this.receiver(e), mt.types.cloneNode(a)]);
  },
  boundGet(e) {
    return this.memoise(e, 1), mt.types.callExpression(mt.types.memberExpression(this.get(e), mt.types.identifier("bind")), [this.receiver(e)]);
  },
  set(e, t) {
    const {
      classRef: r,
      privateNamesMap: i,
      file: n
    } = this, {
      name: s
    } = e.node.property.id, {
      id: a,
      static: o,
      method: l,
      setId: u,
      getId: c
    } = i.get(s), f = c || u;
    if (o) {
      const h = l && !f ? "classStaticPrivateMethodSet" : "classStaticPrivateFieldSpecSet";
      return mt.types.callExpression(n.addHelper(h), [this.receiver(e), mt.types.cloneNode(r), mt.types.cloneNode(a), t]);
    }
    return l ? u ? mt.types.callExpression(n.addHelper("classPrivateFieldSet"), [this.receiver(e), mt.types.cloneNode(a), t]) : mt.types.sequenceExpression([this.receiver(e), t, mt.types.callExpression(n.addHelper("readOnlyError"), [mt.types.stringLiteral("#".concat(s))])]) : mt.types.callExpression(n.addHelper("classPrivateFieldSet"), [this.receiver(e), mt.types.cloneNode(a), t]);
  },
  destructureSet(e) {
    const {
      classRef: t,
      privateNamesMap: r,
      file: i
    } = this, {
      name: n
    } = e.node.property.id, {
      id: s,
      static: a
    } = r.get(n);
    if (a) {
      try {
        var o = i.addHelper("classStaticPrivateFieldDestructureSet");
      } catch (l) {
        throw new Error("Babel can not transpile `[C.#p] = [0]` with @babel/helpers < 7.13.10, \nplease update @babel/helpers to the latest version.");
      }
      return mt.types.memberExpression(mt.types.callExpression(o, [this.receiver(e), mt.types.cloneNode(t), mt.types.cloneNode(s)]), mt.types.identifier("value"));
    }
    return mt.types.memberExpression(mt.types.callExpression(i.addHelper("classPrivateFieldDestructureSet"), [this.receiver(e), mt.types.cloneNode(s)]), mt.types.identifier("value"));
  },
  call(e, t) {
    return this.memoise(e, 1), (0, oee.default)(this.get(e), this.receiver(e), t, !1);
  },
  optionalCall(e, t) {
    return this.memoise(e, 1), (0, oee.default)(this.get(e), this.receiver(e), t, !0);
  },
  delete() {
    throw new Error("Internal Babel error: deleting private elements is a parsing error.");
  }
};
var poe;
const Ajt = {
  get(e) {
    const {
      privateNamesMap: t,
      file: r
    } = this, {
      object: i
    } = e.node, {
      name: n
    } = e.node.property.id;
    return mt.template.expression(poe || (poe = at(["BASE(REF, PROP)[PROP]"])))({
      BASE: r.addHelper("classPrivateFieldLooseBase"),
      REF: mt.types.cloneNode(i),
      PROP: mt.types.cloneNode(t.get(n).id)
    });
  },
  set() {
    throw new Error("private name handler with loose = true don't need set()");
  },
  boundGet(e) {
    return mt.types.callExpression(mt.types.memberExpression(this.get(e), mt.types.identifier("bind")), [mt.types.cloneNode(e.node.object)]);
  },
  simpleSet(e) {
    return this.get(e);
  },
  destructureSet(e) {
    return this.get(e);
  },
  call(e, t) {
    return mt.types.callExpression(this.get(e), t);
  },
  optionalCall(e, t) {
    return mt.types.optionalCallExpression(this.get(e), t, !0);
  },
  delete() {
    throw new Error("Internal Babel error: deleting private elements is a parsing error.");
  }
};
function Cjt(e, t, r, {
  privateFieldsAsProperties: i,
  noDocumentAll: n,
  innerBinding: s
}, a) {
  if (!r.size)
    return;
  const o = t.get("body"), l = i ? Ajt : wjt;
  (0, gjt.default)(o, Ejt, Object.assign({
    privateNamesMap: r,
    classRef: e,
    file: a
  }, l, {
    noDocumentAll: n,
    innerBinding: s
  })), o.traverse(Pjt, {
    privateNamesMap: r,
    classRef: e,
    file: a,
    privateFieldsAsProperties: i,
    innerBinding: s
  });
}
var foe;
function lee(e, t, r) {
  const {
    id: i
  } = r.get(t.node.key.id.name), n = t.node.value || t.scope.buildUndefinedNode();
  return vs(mt.template.statement.ast(foe || (foe = at(["\n      Object.defineProperty(", ", ", ", {\n        // configurable is false by default\n        // enumerable is false by default\n        writable: true,\n        value: ", "\n      });\n    "])), e, mt.types.cloneNode(i), n), t);
}
var hoe, doe;
function _jt(e, t, r, i) {
  const {
    id: n
  } = r.get(t.node.key.id.name), s = t.node.value || t.scope.buildUndefinedNode();
  if (!i.availableHelper("classPrivateFieldInitSpec"))
    return vs(mt.template.statement.ast(hoe || (hoe = at(["", ".set(", ", {\n          // configurable is always false for private elements\n          // enumerable is always false for private elements\n          writable: true,\n          value: ", ",\n        })"])), mt.types.cloneNode(n), e, s), t);
  const a = i.addHelper("classPrivateFieldInitSpec");
  return vs(mt.template.statement.ast(doe || (doe = at(["", "(\n      ", ",\n      ", ",\n      {\n        writable: true,\n        value: ", "\n      },\n    )"])), a, mt.types.thisExpression(), mt.types.cloneNode(n), s), t);
}
var moe, yoe;
function uee(e, t) {
  const r = t.get(e.node.key.id.name), {
    id: i,
    getId: n,
    setId: s,
    initAdded: a
  } = r, o = n || s;
  if (!e.isProperty() && (a || !o))
    return;
  if (o)
    return t.set(e.node.key.id.name, Object.assign({}, r, {
      initAdded: !0
    })), vs(mt.template.statement.ast(moe || (moe = at(["\n        var ", " = {\n          // configurable is false by default\n          // enumerable is false by default\n          // writable is false by default\n          get: ", ",\n          set: ", "\n        }\n      "])), mt.types.cloneNode(i), n ? n.name : e.scope.buildUndefinedNode(), s ? s.name : e.scope.buildUndefinedNode()), e);
  const l = e.node.value || e.scope.buildUndefinedNode();
  return vs(mt.template.statement.ast(yoe || (yoe = at(["\n      var ", " = {\n        // configurable is false by default\n        // enumerable is false by default\n        writable: true,\n        value: ", "\n      };\n    "])), mt.types.cloneNode(i), l), e);
}
var goe, boe;
function Ijt(e, t, r) {
  const i = r.get(t.node.key.id.name), {
    methodId: n,
    id: s,
    getId: a,
    setId: o,
    initAdded: l
  } = i;
  if (l)
    return;
  if (n)
    return vs(mt.template.statement.ast(goe || (goe = at(["\n        Object.defineProperty(", ", ", ", {\n          // configurable is false by default\n          // enumerable is false by default\n          // writable is false by default\n          value: ", "\n        });\n      "])), e, s, n.name), t);
  if (a || o)
    return r.set(t.node.key.id.name, Object.assign({}, i, {
      initAdded: !0
    })), vs(mt.template.statement.ast(boe || (boe = at(["\n        Object.defineProperty(", ", ", ", {\n          // configurable is false by default\n          // enumerable is false by default\n          // writable is false by default\n          get: ", ",\n          set: ", "\n        });\n      "])), e, s, a ? a.name : t.scope.buildUndefinedNode(), o ? o.name : t.scope.buildUndefinedNode()), t);
}
function kjt(e, t, r, i) {
  const n = r.get(t.node.key.id.name), {
    getId: s,
    setId: a,
    initAdded: o
  } = n;
  return o ? void 0 : s || a ? Ojt(e, t, r, i) : Njt(e, t, r, i);
}
var voe, Toe;
function Ojt(e, t, r, i) {
  const n = r.get(t.node.key.id.name), {
    id: s,
    getId: a,
    setId: o
  } = n;
  if (r.set(t.node.key.id.name, Object.assign({}, n, {
    initAdded: !0
  })), !i.availableHelper("classPrivateFieldInitSpec"))
    return vs(mt.template.statement.ast(voe || (voe = at(["\n          ", ".set(", ", {\n            get: ", ",\n            set: ", "\n          });\n        "])), s, e, a ? a.name : t.scope.buildUndefinedNode(), o ? o.name : t.scope.buildUndefinedNode()), t);
  const l = i.addHelper("classPrivateFieldInitSpec");
  return vs(mt.template.statement.ast(Toe || (Toe = at(["", "(\n      ", ",\n      ", ",\n      {\n        get: ", ",\n        set: ", "\n      },\n    )"])), l, mt.types.thisExpression(), mt.types.cloneNode(s), a ? a.name : t.scope.buildUndefinedNode(), o ? o.name : t.scope.buildUndefinedNode()), t);
}
var Soe, xoe;
function Njt(e, t, r, i) {
  const n = r.get(t.node.key.id.name), {
    id: s
  } = n;
  if (!i.availableHelper("classPrivateMethodInitSpec"))
    return vs(mt.template.statement.ast(Soe || (Soe = at(["", ".add(", ")"])), s, e), t);
  const a = i.addHelper("classPrivateMethodInitSpec");
  return vs(mt.template.statement.ast(xoe || (xoe = at(["", "(\n      ", ",\n      ", "\n    )"])), a, mt.types.thisExpression(), mt.types.cloneNode(s)), t);
}
function cee(e, t) {
  const {
    key: r,
    computed: i
  } = t.node, n = t.node.value || t.scope.buildUndefinedNode();
  return vs(mt.types.expressionStatement(mt.types.assignmentExpression("=", mt.types.memberExpression(e, r, i || mt.types.isLiteral(r)), n)), t);
}
function pee(e, t, r) {
  const {
    key: i,
    computed: n
  } = t.node, s = t.node.value || t.scope.buildUndefinedNode();
  return vs(mt.types.expressionStatement(mt.types.callExpression(r.addHelper("defineProperty"), [e, n || mt.types.isLiteral(i) ? i : mt.types.stringLiteral(i.name), s])), t);
}
var Eoe, Poe;
function Djt(e, t, r, i) {
  const n = i.get(t.node.key.id.name), {
    id: s,
    methodId: a,
    getId: o,
    setId: l,
    initAdded: u
  } = n;
  return u ? void 0 : o || l ? (i.set(t.node.key.id.name, Object.assign({}, n, {
    initAdded: !0
  })), vs(mt.template.statement.ast(Eoe || (Eoe = at(["\n        Object.defineProperty(", ", ", ", {\n          // configurable is false by default\n          // enumerable is false by default\n          // writable is false by default\n          get: ", ",\n          set: ", "\n        })\n      "])), e, s, o ? o.name : t.scope.buildUndefinedNode(), l ? l.name : t.scope.buildUndefinedNode()), t)) : vs(mt.template.statement.ast(Poe || (Poe = at(["\n      Object.defineProperty(", ", ", ", {\n        // configurable is false by default\n        // enumerable is false by default\n        // writable is false by default\n        value: ", "\n      });\n    "])), e, s, a.name), t);
}
function N1(e, t, r = !1) {
  const i = t.get(e.node.key.id.name), {
    id: n,
    methodId: s,
    getId: a,
    setId: o,
    getterDeclared: l,
    setterDeclared: u,
    static: c
  } = i, {
    params: f,
    body: h,
    generator: m,
    async: g
  } = e.node, y = a && !l && f.length === 0, v = o && !u && f.length > 0;
  let T = s;
  return y ? (t.set(e.node.key.id.name, Object.assign({}, i, {
    getterDeclared: !0
  })), T = a) : v ? (t.set(e.node.key.id.name, Object.assign({}, i, {
    setterDeclared: !0
  })), T = o) : c && !r && (T = n), vs(mt.types.functionDeclaration(mt.types.cloneNode(T), f, h, m, g), e);
}
const Ljt = mt.traverse.visitors.merge([{
  UnaryExpression(e) {
    const {
      node: t
    } = e;
    if (t.operator === "delete") {
      const r = (0, vjt.skipTransparentExprWrapperNodes)(t.argument);
      mt.types.isThisExpression(r) && e.replaceWith(mt.types.booleanLiteral(!0));
    }
  },
  ThisExpression(e, t) {
    t.needsClassRef = !0, e.replaceWith(mt.types.cloneNode(t.classRef));
  },
  MetaProperty(e) {
    const {
      node: t,
      scope: r
    } = e;
    t.meta.name === "new" && t.property.name === "target" && e.replaceWith(r.buildUndefinedNode());
  }
}, Bge.default]), Mjt = {
  ReferencedIdentifier(e, t) {
    e.scope.bindingIdentifierEquals(e.node.name, t.innerBinding) && (t.needsClassRef = !0, e.node.name = t.classRef.name);
  }
};
function Rjt(e, t, r, i, n, s, a) {
  var o;
  const l = {
    classRef: t,
    needsClassRef: !1,
    innerBinding: a
  };
  return new yjt.default({
    methodPath: e,
    constantSuper: s,
    file: i,
    refToPreserve: t,
    getSuperRef: r,
    getObjectRef() {
      return l.needsClassRef = !0, mt.types.isStaticBlock != null && mt.types.isStaticBlock(e.node) || e.node.static ? t : mt.types.memberExpression(t, mt.types.identifier("prototype"));
    }
  }).replace(), (n || e.isProperty()) && e.traverse(Ljt, l), a != null && (o = l.classRef) != null && o.name && l.classRef.name !== (a == null ? void 0 : a.name) && e.traverse(Mjt, l), l.needsClassRef;
}
function Bjt({
  key: e,
  computed: t
}) {
  return e.type === "Identifier" ? !t && (e.name === "name" || e.name === "length") : e.type === "StringLiteral" ? e.value === "name" || e.value === "length" : !1;
}
function vs(e, t) {
  return mt.types.inheritLeadingComments(e, t.node), mt.types.inheritInnerComments(e, t.node), e;
}
var woe;
function Fjt(e, t, r, i, n, s, a, o, l) {
  let u = !1, c;
  const f = [], h = [], m = [], g = mt.types.isIdentifier(t) ? () => t : () => {
    var y;
    return (y = c) != null || (c = r[0].scope.generateUidIdentifierBasedOnNode(t)), c;
  };
  for (const y of r) {
    y.isClassProperty() && Tjt.assertFieldTransformed(y);
    const v = !(mt.types.isStaticBlock != null && mt.types.isStaticBlock(y.node)) && y.node.static, T = !v, S = y.isPrivate(), P = !S, x = y.isProperty(), C = !x, D = y.isStaticBlock == null ? void 0 : y.isStaticBlock();
    if (v || C && S || D) {
      const w = Rjt(y, e, g, n, D, o, l);
      u = u || w;
    }
    switch (!0) {
      case D: {
        const w = y.node.body;
        w.length === 1 && mt.types.isExpressionStatement(w[0]) ? f.push(vs(w[0], y)) : f.push(mt.types.inheritsComments(mt.template.statement.ast(woe || (woe = at(["(() => { ", " })()"])), w), y.node));
        break;
      }
      case (v && S && x && a):
        u = !0, f.push(lee(mt.types.cloneNode(e), y, i));
        break;
      case (v && S && x && !a):
        u = !0, f.push(uee(y, i));
        break;
      case (v && P && x && s):
        if (!Bjt(y.node)) {
          u = !0, f.push(cee(mt.types.cloneNode(e), y));
          break;
        }
      case (v && P && x && !s):
        u = !0, f.push(pee(mt.types.cloneNode(e), y, n));
        break;
      case (T && S && x && a):
        h.push(lee(mt.types.thisExpression(), y, i));
        break;
      case (T && S && x && !a):
        h.push(_jt(mt.types.thisExpression(), y, i, n));
        break;
      case (T && S && C && a):
        h.unshift(Ijt(mt.types.thisExpression(), y, i)), m.push(N1(y, i, a));
        break;
      case (T && S && C && !a):
        h.unshift(kjt(mt.types.thisExpression(), y, i, n)), m.push(N1(y, i, a));
        break;
      case (v && S && C && !a):
        u = !0, f.unshift(uee(y, i)), m.push(N1(y, i, a));
        break;
      case (v && S && C && a):
        u = !0, f.unshift(Djt(mt.types.cloneNode(e), y, n, i)), m.push(N1(y, i, a));
        break;
      case (T && P && x && s):
        h.push(cee(mt.types.thisExpression(), y));
        break;
      case (T && P && x && !s):
        h.push(pee(mt.types.thisExpression(), y, n));
        break;
      default:
        throw new Error("Unreachable.");
    }
  }
  return {
    staticNodes: f.filter(Boolean),
    instanceNodes: h.filter(Boolean),
    pureStaticNodes: m.filter(Boolean),
    wrapClass(y) {
      for (const v of r)
        v.node.leadingComments = null, v.remove();
      return c && (y.scope.push({
        id: mt.types.cloneNode(c)
      }), y.set("superClass", mt.types.assignmentExpression("=", c, y.node.superClass))), u && (y.isClassExpression() ? (y.scope.push({
        id: e
      }), y.replaceWith(mt.types.assignmentExpression("=", mt.types.cloneNode(e), y.node))) : y.node.id || (y.node.id = e)), y;
    }
  };
}
var Bg = {};
Object.defineProperty(Bg, "__esModule", {
  value: !0
});
Bg.buildDecoratedClass = Kjt;
Bg.hasDecorators = Ujt;
Bg.hasOwnDecorators = O8;
var Ki = js(), jjt = jh, $jt = iS;
function O8(e) {
  return !!(e.decorators && e.decorators.length);
}
function Ujt(e) {
  return O8(e) || e.body.body.some(O8);
}
function Wm(e, t) {
  return t ? Ki.types.objectProperty(Ki.types.identifier(e), t) : null;
}
function qjt(e, t) {
  return Ki.types.objectMethod("method", Ki.types.identifier(e), [], Ki.types.blockStatement(t));
}
function $ge(e) {
  let t;
  return e.decorators && e.decorators.length > 0 && (t = Ki.types.arrayExpression(e.decorators.map((r) => r.expression))), e.decorators = void 0, t;
}
function Vjt(e) {
  return e.computed ? e.key : Ki.types.isIdentifier(e.key) ? Ki.types.stringLiteral(e.key.name) : Ki.types.stringLiteral(String(e.key.value));
}
var Aoe;
function Wjt(e, t, r, i) {
  const n = i.isClassMethod();
  if (i.isPrivate())
    throw i.buildCodeFrameError("Private ".concat(n ? "methods" : "fields", " in decorated classes are not supported yet."));
  if (i.node.type === "ClassAccessorProperty")
    throw i.buildCodeFrameError('Accessor properties are not supported in 2018-09 decorator transform, please specify { "version": "2021-12" } instead.');
  if (i.node.type === "StaticBlock")
    throw i.buildCodeFrameError('Static blocks are not supported in 2018-09 decorator transform, please specify { "version": "2021-12" } instead.');
  const {
    node: s,
    scope: a
  } = i;
  i.isTSDeclareMethod() || new jjt.default({
    methodPath: i,
    objectRef: t,
    superRef: r,
    file: e,
    refToPreserve: t
  }).replace();
  const o = [Wm("kind", Ki.types.stringLiteral(Ki.types.isClassMethod(s) ? s.kind : "field")), Wm("decorators", $ge(s)), Wm("static", s.static && Ki.types.booleanLiteral(!0)), Wm("key", Vjt(s))].filter(Boolean);
  if (Ki.types.isClassMethod(s)) {
    const l = s.computed ? null : s.key, u = Ki.types.toExpression(s);
    o.push(Wm("value", (0, $jt.default)({
      node: u,
      id: l,
      scope: a
    }) || u));
  } else
    Ki.types.isClassProperty(s) && s.value ? o.push(qjt("value", Ki.template.statements.ast(Aoe || (Aoe = at(["return ", ""])), s.value))) : o.push(Wm("value", a.buildUndefinedNode()));
  return i.remove(), Ki.types.objectExpression(o);
}
function Hjt(e) {
  return e.addHelper("decorate");
}
var Coe, _oe, Ioe;
function Kjt(e, t, r, i) {
  const {
    node: n,
    scope: s
  } = t, a = s.generateUidIdentifier("initialize"), o = n.id && t.isDeclaration(), l = t.isInStrictMode(), {
    superClass: u
  } = n;
  n.type = "ClassDeclaration", n.id || (n.id = Ki.types.cloneNode(e));
  let c;
  u && (c = s.generateUidIdentifierBasedOnNode(n.superClass, "super"), n.superClass = c);
  const f = $ge(n), h = Ki.types.arrayExpression(r.filter((v) => !v.node.abstract && v.node.type !== "TSIndexSignature").map((v) => Wjt(i, n.id, c, v))), m = Ki.template.expression.ast(Coe || (Coe = at(["\n    ", "(\n      ", ",\n      function (", ", ", ") {\n        ", "\n        return { F: ", ", d: ", " };\n      },\n      ", "\n    )\n  "])), Hjt(i), f || Ki.types.nullLiteral(), a, u ? Ki.types.cloneNode(c) : null, n, Ki.types.cloneNode(n.id), h, u);
  l || m.arguments[1].body.directives.push(Ki.types.directive(Ki.types.directiveLiteral("use strict")));
  let g = m, y = "arguments.1.body.body.0";
  return o && (g = Ki.template.statement.ast(_oe || (_oe = at(["let ", " = ", ""])), e, m), y = "declarations.0.init." + y), {
    instanceNodes: [Ki.template.statement.ast(Ioe || (Ioe = at(["", "(this)"])), Ki.types.cloneNode(a))],
    wrapClass(v) {
      return v.replaceWith(g), v.get(y);
    }
  };
}
var LI = {};
Object.defineProperty(LI, "__esModule", {
  value: !0
});
LI.extractComputedKeys = Qjt;
LI.injectInitialization = Jjt;
var sa = js(), zjt = Io;
const Gjt = sa.traverse.visitors.merge([{
  Super(e) {
    const {
      node: t,
      parentPath: r
    } = e;
    r.isCallExpression({
      callee: t
    }) && this.push(r);
  }
}, zjt.default]), Yjt = {
  "TSTypeAnnotation|TypeAnnotation"(e) {
    e.skip();
  },
  ReferencedIdentifier(e, {
    scope: t
  }) {
    t.hasOwnBinding(e.node.name) && (t.rename(e.node.name), e.skip());
  }
};
function Uge(e, t) {
  if (t.classBinding && t.classBinding === e.scope.getBinding(e.node.name)) {
    const r = t.file.addHelper("classNameTDZError"), i = sa.types.callExpression(r, [sa.types.stringLiteral(e.node.name)]);
    e.replaceWith(sa.types.sequenceExpression([i, e.node])), e.skip();
  }
}
const Xjt = {
  ReferencedIdentifier: Uge
};
var koe;
function Jjt(e, t, r, i) {
  if (!r.length)
    return;
  const n = !!e.node.superClass;
  if (!t) {
    const s = sa.types.classMethod("constructor", sa.types.identifier("constructor"), [], sa.types.blockStatement([]));
    n && (s.params = [sa.types.restElement(sa.types.identifier("args"))], s.body.body.push(sa.template.statement.ast(koe || (koe = at(["super(...args)"]))))), [t] = e.get("body").unshiftContainer("body", s);
  }
  if (i && i(Yjt, {
    scope: t.scope
  }), n) {
    const s = [];
    t.traverse(Gjt, s);
    let a = !0;
    for (const o of s)
      a ? (o.insertAfter(r), a = !1) : o.insertAfter(r.map((l) => sa.types.cloneNode(l)));
  } else
    t.get("body").unshiftContainer("body", r);
}
function Qjt(e, t, r) {
  const i = [], n = {
    classBinding: e.node.id && e.scope.getBinding(e.node.id.name),
    file: r
  };
  for (const s of t) {
    const a = s.get("key");
    a.isReferencedIdentifier() ? Uge(a, n) : a.traverse(Xjt, n);
    const o = s.node;
    if (!a.isConstantExpression()) {
      const l = e.scope.generateUidIdentifierBasedOnNode(o.key);
      e.scope.push({
        id: l,
        kind: "let"
      }), i.push(sa.types.expressionStatement(sa.types.assignmentExpression("=", sa.types.cloneNode(l), o.key))), o.key = sa.types.cloneNode(l);
    }
  }
  return i;
}
var xm = {};
Object.defineProperty(xm, "__esModule", {
  value: !0
});
xm.FEATURES = void 0;
xm.enableFeature = Zjt;
xm.isLoose = D8;
xm.shouldTransform = e4t;
var fee = Bg;
const rp = Object.freeze({
  fields: 1 << 1,
  privateMethods: 1 << 2,
  decorators: 1 << 3,
  privateIn: 1 << 4,
  staticBlocks: 1 << 5
});
xm.FEATURES = rp;
const hee = /* @__PURE__ */ new Map([[rp.fields, "@babel/plugin-transform-class-properties"], [rp.privateMethods, "@babel/plugin-transform-private-methods"], [rp.privateIn, "@babel/plugin-transform-private-property-in-object"]]), N8 = "@babel/plugin-class-features/featuresKey", L0 = "@babel/plugin-class-features/looseKey", Nd = "@babel/plugin-class-features/looseLowPriorityKey/#__internal__@babel/preset-env__please-overwrite-loose-instead-of-throwing";
function Zjt(e, t, r) {
  (!tf(e, t) || dee(e, t)) && (e.set(N8, e.get(N8) | t), r === "#__internal__@babel/preset-env__prefer-true-but-false-is-ok-if-it-prevents-an-error" ? (D1(e, t, !0), e.set(Nd, e.get(Nd) | t)) : r === "#__internal__@babel/preset-env__prefer-false-but-true-is-ok-if-it-prevents-an-error" ? (D1(e, t, !1), e.set(Nd, e.get(Nd) | t)) : D1(e, t, r));
  let i, n;
  for (const [s, a] of hee) {
    if (!tf(e, s))
      continue;
    const o = D8(e, s);
    if (!dee(e, s)) {
      if (i === !o)
        throw new Error("'loose' mode configuration must be the same for @babel/plugin-transform-class-properties, @babel/plugin-transform-private-methods and @babel/plugin-transform-private-property-in-object (when they are enabled).");
      i = o, n = a;
    }
  }
  if (i !== void 0)
    for (const [s, a] of hee)
      tf(e, s) && D8(e, s) !== i && (D1(e, s, i), console.warn('Though the "loose" option was set to "'.concat(!i, '" in your @babel/preset-env ') + "config, it will not be used for ".concat(a, ' since the "loose" mode option was set to ') + '"'.concat(i, '" for ').concat(n, '.\nThe "loose" option must be the ') + "same for @babel/plugin-transform-class-properties, @babel/plugin-transform-private-methods and @babel/plugin-transform-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding\n" + '	["'.concat(a, '", { "loose": ').concat(i, " }]\n") + 'to the "plugins" section of your Babel config.'));
}
function tf(e, t) {
  return !!(e.get(N8) & t);
}
function D8(e, t) {
  return !!(e.get(L0) & t);
}
function D1(e, t, r) {
  r ? e.set(L0, e.get(L0) | t) : e.set(L0, e.get(L0) & ~t), e.set(Nd, e.get(Nd) & ~t);
}
function dee(e, t) {
  return !!(e.get(Nd) & t);
}
function e4t(e, t) {
  let r = null, i = null, n = null, s = null, a = null;
  (0, fee.hasOwnDecorators)(e.node) && (r = e.get("decorators.0"));
  for (const o of e.get("body.body"))
    !r && (0, fee.hasOwnDecorators)(o.node) && (r = o.get("decorators.0")), !i && o.isClassProperty() && (i = o), !n && o.isClassPrivateProperty() && (n = o), !s && o.isClassPrivateMethod != null && o.isClassPrivateMethod() && (s = o), !a && o.isStaticBlock != null && o.isStaticBlock() && (a = o);
  if (r && n)
    throw n.buildCodeFrameError("Private fields in decorated classes are not supported yet.");
  if (r && s)
    throw s.buildCodeFrameError("Private methods in decorated classes are not supported yet.");
  if (r && !tf(t, rp.decorators))
    throw e.buildCodeFrameError('Decorators are not enabled.\nIf you are using ["@babel/plugin-proposal-decorators", { "version": "legacy" }], make sure it comes *before* "@babel/plugin-transform-class-properties" and enable loose mode, like so:\n	["@babel/plugin-proposal-decorators", { "version": "legacy" }]\n	["@babel/plugin-transform-class-properties", { "loose": true }]');
  if (s && !tf(t, rp.privateMethods))
    throw s.buildCodeFrameError("Class private methods are not enabled. Please add `@babel/plugin-transform-private-methods` to your configuration.");
  if ((i || n) && !tf(t, rp.fields) && !tf(t, rp.privateMethods))
    throw e.buildCodeFrameError("Class fields are not enabled. Please add `@babel/plugin-transform-class-properties` to your configuration.");
  if (a && !tf(t, rp.staticBlocks))
    throw e.buildCodeFrameError("Static class blocks are not enabled. Please add `@babel/plugin-transform-class-static-block` to your configuration.");
  return !!(r || s || a || (i || n) && tf(t, rp.fields));
}
(function(e) {
  Object.defineProperty(e, "__esModule", {
    value: !0
  }), Object.defineProperty(e, "FEATURES", {
    enumerable: !0,
    get: function() {
      return l.FEATURES;
    }
  }), Object.defineProperty(e, "buildCheckInRHS", {
    enumerable: !0,
    get: function() {
      return s.buildCheckInRHS;
    }
  }), e.createClassFeaturePlugin = f, Object.defineProperty(e, "enableFeature", {
    enumerable: !0,
    get: function() {
      return l.enableFeature;
    }
  }), Object.defineProperty(e, "injectInitialization", {
    enumerable: !0,
    get: function() {
      return o.injectInitialization;
    }
  });
  var t = js(), r = iS, i = um, n = K8t, s = Sm, a = Bg, o = LI, l = xm, u = DI;
  const c = "@babel/plugin-class-features/version";
  function f({
    name: h,
    feature: m,
    loose: g,
    manipulateOptions: y,
    api: v,
    inherits: T
  }) {
    {
      var S;
      (S = v) != null || (v = {
        assumption: () => {
        }
      });
    }
    const P = v.assumption("setPublicClassFields"), x = v.assumption("privateFieldsAsSymbols"), C = v.assumption("privateFieldsAsProperties"), D = v.assumption("constantSuper"), w = v.assumption("noDocumentAll");
    if (C && x)
      throw new Error('Cannot enable both the "privateFieldsAsProperties" and "privateFieldsAsSymbols" assumptions as the same time.');
    const A = C || x;
    if (g === !0) {
      const I = [];
      P !== void 0 && I.push('"setPublicClassFields"'), C !== void 0 && I.push('"privateFieldsAsProperties"'), x !== void 0 && I.push('"privateFieldsAsSymbols"'), I.length !== 0 && console.warn("[".concat(h, ']: You are using the "loose: true" option and you are') + " explicitly setting a value for the ".concat(I.join(" and ")) + " assumption".concat(I.length > 1 ? "s" : "", '. The "loose" option') + ' can cause incompatibilities with the other class features plugins, so it\'s recommended that you replace it with the following top-level option:\n	"assumptions": {\n		"setPublicClassFields": true,\n		"privateFieldsAsSymbols": true\n	}');
    }
    return {
      name: h,
      manipulateOptions: y,
      inherits: T,
      pre(I) {
        if ((0, l.enableFeature)(I, m, g), typeof I.get(c) == "number") {
          I.set(c, "7.22.6");
          return;
        }
        (!I.get(c) || n.lt(I.get(c), "7.22.6")) && I.set(c, "7.22.6");
      },
      visitor: {
        Class(I, {
          file: L
        }) {
          if (L.get(c) !== "7.22.6" || !(0, l.shouldTransform)(I, L))
            return;
          I.isClassDeclaration() && (0, u.assertFieldTransformed)(I);
          const O = (0, l.isLoose)(L, m);
          let F;
          const q = (0, a.hasDecorators)(I.node), j = [], N = [], M = [], R = /* @__PURE__ */ new Set(), $ = I.get("body");
          for (const ye of $.get("body")) {
            if ((ye.isClassProperty() || ye.isClassMethod()) && ye.node.computed && M.push(ye), ye.isPrivate()) {
              const {
                name: fe
              } = ye.node.key.id, Z = "get ".concat(fe), ue = "set ".concat(fe);
              if (ye.isClassPrivateMethod()) {
                if (ye.node.kind === "get") {
                  if (R.has(Z) || R.has(fe) && !R.has(ue))
                    throw ye.buildCodeFrameError("Duplicate private field");
                  R.add(Z).add(fe);
                } else if (ye.node.kind === "set") {
                  if (R.has(ue) || R.has(fe) && !R.has(Z))
                    throw ye.buildCodeFrameError("Duplicate private field");
                  R.add(ue).add(fe);
                }
              } else {
                if (R.has(fe) && !R.has(Z) && !R.has(ue) || R.has(fe) && (R.has(Z) || R.has(ue)))
                  throw ye.buildCodeFrameError("Duplicate private field");
                R.add(fe);
              }
            }
            ye.isClassMethod({
              kind: "constructor"
            }) ? F = ye : (N.push(ye), (ye.isProperty() || ye.isPrivate() || ye.isStaticBlock != null && ye.isStaticBlock()) && j.push(ye));
          }
          if (!j.length && !q)
            return;
          const V = I.node.id;
          let K;
          !V || I.isClassExpression() ? ((0, r.default)(I), K = I.scope.generateUidIdentifier("class")) : K = t.types.cloneNode(I.node.id);
          const z = (0, s.buildPrivateNamesMap)(j), W = (0, s.buildPrivateNamesNodes)(z, C != null ? C : O, x != null ? x : !1, L);
          (0, s.transformPrivateNamesUsage)(K, I, z, {
            privateFieldsAsProperties: A != null ? A : O,
            noDocumentAll: w,
            innerBinding: V
          }, L);
          let Y, G, le, ne, ae;
          q ? (G = ne = Y = [], {
            instanceNodes: le,
            wrapClass: ae
          } = (0, a.buildDecoratedClass)(K, I, N, L)) : (Y = (0, o.extractComputedKeys)(I, M, L), {
            staticNodes: G,
            pureStaticNodes: ne,
            instanceNodes: le,
            wrapClass: ae
          } = (0, s.buildFieldsInitNodes)(K, I.node.superClass, j, z, L, P != null ? P : O, A != null ? A : O, D != null ? D : O, V)), le.length > 0 && (0, o.injectInitialization)(I, F, le, (ye, fe) => {
            if (!q)
              for (const Z of j)
                t.types.isStaticBlock != null && t.types.isStaticBlock(Z.node) || Z.node.static || Z.traverse(ye, fe);
          });
          const be = ae(I);
          be.insertBefore([...W, ...Y]), G.length > 0 && be.insertAfter(G), ne.length > 0 && be.find((ye) => ye.isStatement() || ye.isDeclaration()).insertAfter(ne);
        },
        ExportDefaultDeclaration(I, {
          file: L
        }) {
          {
            if (L.get(c) !== "7.22.6")
              return;
            const O = I.get("declaration");
            O.isClassDeclaration() && (0, a.hasDecorators)(O.node) && (O.node.id ? (0, i.default)(I) : O.node.type = "ClassExpression");
          }
        }
      }
    };
  }
})(Nge);
var MI = {};
Object.defineProperty(MI, "__esModule", {
  value: !0
});
MI.default = void 0;
var qt = js();
const t4t = qt.template.statement("\n  DECORATOR(CLASS_REF = INNER) || CLASS_REF;\n"), r4t = (0, qt.template)("\n  CLASS_REF.prototype;\n"), i4t = (0, qt.template)("\n    Object.getOwnPropertyDescriptor(TARGET, PROPERTY);\n"), n4t = (0, qt.template)("\n    (TEMP = Object.getOwnPropertyDescriptor(TARGET, PROPERTY), (TEMP = TEMP ? TEMP.value : undefined), {\n        enumerable: true,\n        configurable: true,\n        writable: true,\n        initializer: function(){\n            return TEMP;\n        }\n    })\n"), L8 = /* @__PURE__ */ new WeakSet();
function mee(e) {
  const r = (e.isClass() ? [e, ...e.get("body.body")] : e.get("properties")).reduce((i, n) => i.concat(n.node.decorators || []), []).filter((i) => !qt.types.isIdentifier(i.expression));
  if (r.length !== 0)
    return qt.types.sequenceExpression(r.map((i) => {
      const n = i.expression, s = i.expression = e.scope.generateDeclaredUidIdentifier("dec");
      return qt.types.assignmentExpression("=", s, n);
    }).concat([e.node]));
}
function s4t(e) {
  if (!qge(e.node))
    return;
  const t = e.node.decorators || [];
  e.node.decorators = null;
  const r = e.scope.generateDeclaredUidIdentifier("class");
  return t.map((i) => i.expression).reverse().reduce(function(i, n) {
    return t4t({
      CLASS_REF: qt.types.cloneNode(r),
      DECORATOR: qt.types.cloneNode(n),
      INNER: i
    }).expression;
  }, e.node);
}
function qge(e) {
  return !!(e.decorators && e.decorators.length);
}
function a4t(e, t) {
  if (L7(e.node.body.body))
    return Vge(e, t, e.node.body.body);
}
function L7(e) {
  return e.some((t) => {
    var r;
    return (r = t.decorators) == null ? void 0 : r.length;
  });
}
function o4t(e, t) {
  if (L7(e.node.properties))
    return Vge(e, t, e.node.properties.filter((r) => r.type !== "SpreadElement"));
}
function Vge(e, t, r) {
  const i = e.scope.generateDeclaredUidIdentifier(e.isClass() ? "class" : "obj"), n = r.reduce(function(s, a) {
    let o = [];
    if (a.decorators != null && (o = a.decorators, a.decorators = null), o.length === 0)
      return s;
    if (a.computed)
      throw e.buildCodeFrameError("Computed method/property decorators are not yet supported.");
    const l = qt.types.isLiteral(a.key) ? a.key : qt.types.stringLiteral(a.key.name), u = e.isClass() && !a.static ? r4t({
      CLASS_REF: i
    }).expression : i;
    if (qt.types.isClassProperty(a, {
      static: !1
    })) {
      const c = e.scope.generateDeclaredUidIdentifier("descriptor"), f = a.value ? qt.types.functionExpression(null, [], qt.types.blockStatement([qt.types.returnStatement(a.value)])) : qt.types.nullLiteral();
      a.value = qt.types.callExpression(t.addHelper("initializerWarningHelper"), [c, qt.types.thisExpression()]), L8.add(a.value), s.push(qt.types.assignmentExpression("=", qt.types.cloneNode(c), qt.types.callExpression(t.addHelper("applyDecoratedDescriptor"), [qt.types.cloneNode(u), qt.types.cloneNode(l), qt.types.arrayExpression(o.map((h) => qt.types.cloneNode(h.expression))), qt.types.objectExpression([qt.types.objectProperty(qt.types.identifier("configurable"), qt.types.booleanLiteral(!0)), qt.types.objectProperty(qt.types.identifier("enumerable"), qt.types.booleanLiteral(!0)), qt.types.objectProperty(qt.types.identifier("writable"), qt.types.booleanLiteral(!0)), qt.types.objectProperty(qt.types.identifier("initializer"), f)])])));
    } else
      s.push(qt.types.callExpression(t.addHelper("applyDecoratedDescriptor"), [qt.types.cloneNode(u), qt.types.cloneNode(l), qt.types.arrayExpression(o.map((c) => qt.types.cloneNode(c.expression))), qt.types.isObjectProperty(a) || qt.types.isClassProperty(a, {
        static: !0
      }) ? n4t({
        TEMP: e.scope.generateDeclaredUidIdentifier("init"),
        TARGET: qt.types.cloneNode(u),
        PROPERTY: qt.types.cloneNode(l)
      }).expression : i4t({
        TARGET: qt.types.cloneNode(u),
        PROPERTY: qt.types.cloneNode(l)
      }).expression, qt.types.cloneNode(u)]));
    return s;
  }, []);
  return qt.types.sequenceExpression([qt.types.assignmentExpression("=", qt.types.cloneNode(i), e.node), qt.types.sequenceExpression(n), qt.types.cloneNode(i)]);
}
function yee({
  node: e,
  scope: t
}) {
  if (!qge(e) && !L7(e.body.body))
    return;
  const r = e.id ? qt.types.cloneNode(e.id) : t.generateUidIdentifier("class");
  return qt.types.variableDeclaration("let", [qt.types.variableDeclarator(r, qt.types.toExpression(e))]);
}
const l4t = {
  ExportDefaultDeclaration(e) {
    const t = e.get("declaration");
    if (!t.isClassDeclaration())
      return;
    const r = yee(t);
    if (r) {
      const [i] = e.replaceWithMultiple([r, qt.types.exportNamedDeclaration(null, [qt.types.exportSpecifier(qt.types.cloneNode(r.declarations[0].id), qt.types.identifier("default"))])]);
      t.node.id || e.scope.registerDeclaration(i);
    }
  },
  ClassDeclaration(e) {
    const t = yee(e);
    if (t) {
      const [r] = e.replaceWith(t), i = r.get("declarations.0"), n = i.node.id, s = e.scope.getOwnBinding(n.name);
      s.identifier = n, s.path = i;
    }
  },
  ClassExpression(e, t) {
    const r = mee(e) || s4t(e) || a4t(e, t);
    r && e.replaceWith(r);
  },
  ObjectExpression(e, t) {
    const r = mee(e) || o4t(e, t);
    r && e.replaceWith(r);
  },
  AssignmentExpression(e, t) {
    L8.has(e.node.right) && e.replaceWith(qt.types.callExpression(t.addHelper("initializerDefineProperty"), [qt.types.cloneNode(e.get("left.object").node), qt.types.stringLiteral(e.get("left.property").node.name || e.get("left.property").node.value), qt.types.cloneNode(e.get("right.arguments")[0].node), qt.types.cloneNode(e.get("right.arguments")[1].node)]));
  },
  CallExpression(e, t) {
    e.node.arguments.length === 3 && L8.has(e.node.arguments[2]) && e.node.callee.name === t.addHelper("defineProperty").name && e.replaceWith(qt.types.callExpression(t.addHelper("initializerDefineProperty"), [qt.types.cloneNode(e.get("arguments")[0].node), qt.types.cloneNode(e.get("arguments")[1].node), qt.types.cloneNode(e.get("arguments.2.arguments")[0].node), qt.types.cloneNode(e.get("arguments.2.arguments")[1].node)]));
  }
};
var u4t = l4t;
MI.default = u4t;
var M7 = {};
Object.defineProperty(M7, "__esModule", {
  value: !0
});
M7.default = k4t;
var ot = js(), c4t = gS, p4t = jh, f4t = um;
function Wge(e, t = e.length - 1) {
  if (t === -1) {
    e.unshift(65);
    return;
  }
  const r = e[t];
  r === 90 ? e[t] = 97 : r === 122 ? (e[t] = 65, Wge(e, t - 1)) : e[t] = r + 1;
}
function h4t(e) {
  const t = [], r = /* @__PURE__ */ new Set();
  return e.traverse({
    PrivateName(i) {
      r.add(i.node.id.name);
    }
  }), () => {
    let i;
    do
      Wge(t), i = String.fromCharCode(...t);
    while (r.has(i));
    return ot.types.privateName(ot.types.identifier(i));
  };
}
function d4t(e) {
  let t;
  return () => (t || (t = h4t(e)), t());
}
function m4t(e) {
  if (e.type === "ClassDeclaration") {
    const t = e.scope.generateUidIdentifierBasedOnNode(e.node.id), r = ot.types.identifier(e.node.id.name);
    return e.scope.rename(r.name, t.name), e.insertBefore(ot.types.variableDeclaration("let", [ot.types.variableDeclarator(t)])), e.get("id").replaceWith(r), [ot.types.cloneNode(t), e];
  } else {
    let t, r;
    e.node.id ? (t = e.node.id.name, r = e.scope.parent.generateDeclaredUidIdentifier(t), e.scope.rename(t, r.name)) : e.parentPath.node.type === "VariableDeclarator" && e.parentPath.node.id.type === "Identifier" ? (t = e.parentPath.node.id.name, r = e.scope.parent.generateDeclaredUidIdentifier(t)) : r = e.scope.parent.generateDeclaredUidIdentifier("decorated_class");
    const i = ot.types.classExpression(t && ot.types.identifier(t), e.node.superClass, e.node.body), [n] = e.replaceWith(ot.types.sequenceExpression([i, r]));
    return [ot.types.cloneNode(r), n.get("expressions.0")];
  }
}
function gee(e, t, r) {
  return e.type === "PrivateName" ? ot.types.classPrivateProperty(e, t, void 0, r) : ot.types.classProperty(e, t, void 0, void 0, r);
}
function bee(e, t, r, i, n, s = !1) {
  const {
    static: a
  } = t.node, o = n === "2023-05" && a ? e : ot.types.thisExpression(), l = ot.types.blockStatement([ot.types.returnStatement(ot.types.memberExpression(ot.types.cloneNode(o), ot.types.cloneNode(i)))]), u = ot.types.blockStatement([ot.types.expressionStatement(ot.types.assignmentExpression("=", ot.types.memberExpression(ot.types.cloneNode(o), ot.types.cloneNode(i)), ot.types.identifier("v")))]);
  let c, f;
  r.type === "PrivateName" ? (c = ot.types.classPrivateMethod("get", ot.types.cloneNode(r), [], l, a), f = ot.types.classPrivateMethod("set", ot.types.cloneNode(r), [ot.types.identifier("v")], u, a)) : (c = ot.types.classMethod("get", ot.types.cloneNode(r), [], l, s, a), f = ot.types.classMethod("set", ot.types.cloneNode(r), [ot.types.identifier("v")], u, s, a)), t.insertAfter(f), t.insertAfter(c);
}
var Ooe, Noe, Doe, Loe;
function vee(e, t) {
  return t !== "2023-05" && t !== "2023-01" ? [ot.template.expression.ast(Ooe || (Ooe = at(["\n        function () {\n          return this.", ";\n        }\n      "])), ot.types.cloneNode(e)), ot.template.expression.ast(Noe || (Noe = at(["\n        function (value) {\n          this.", " = value;\n        }\n      "])), ot.types.cloneNode(e))] : [ot.template.expression.ast(Doe || (Doe = at(["\n      o => o.", "\n    "])), ot.types.cloneNode(e)), ot.template.expression.ast(Loe || (Loe = at(["\n      (o, v) => o.", " = v\n    "])), ot.types.cloneNode(e))];
}
const Ry = 0, iT = 1, y4t = 2, Hge = 3, rA = 4, g4t = 5, b4t = 8, v4t = 16;
function T4t(e) {
  switch (e.node.type) {
    case "ClassProperty":
    case "ClassPrivateProperty":
      return Ry;
    case "ClassAccessorProperty":
      return iT;
    case "ClassMethod":
    case "ClassPrivateMethod":
      return e.node.kind === "get" ? Hge : e.node.kind === "set" ? rA : y4t;
  }
}
function S4t(e) {
  return "decorators" in e;
}
function Kge(e) {
  const t = e.filter(S4t);
  return [...t.filter((r) => r.isStatic && r.kind >= iT && r.kind <= rA), ...t.filter((r) => !r.isStatic && r.kind >= iT && r.kind <= rA), ...t.filter((r) => r.isStatic && r.kind === Ry), ...t.filter((r) => !r.isStatic && r.kind === Ry)];
}
function zge(e, t, r) {
  const i = e.length, n = t.some(Boolean), s = [];
  for (let a = 0; a < i; a++)
    r === "2023-05" && n && s.push(t[a] || ot.types.unaryExpression("void", ot.types.numericLiteral(0))), s.push(e[a]);
  return {
    hasThis: n,
    decs: s
  };
}
function x4t(e, t) {
  return ot.types.arrayExpression(Kge(e).map((r) => {
    const {
      decs: i,
      hasThis: n
    } = zge(r.decorators, r.decoratorsThis, t);
    let s = r.kind;
    return r.isStatic && (s += t === "2023-05" ? b4t : g4t), n && (s += v4t), ot.types.arrayExpression([i.length === 1 ? i[0] : ot.types.arrayExpression(i), ot.types.numericLiteral(s), r.name, ...r.privateMethods || []]);
  }));
}
function E4t(e) {
  const t = [];
  for (const r of Kge(e)) {
    const {
      locals: i
    } = r;
    Array.isArray(i) ? t.push(...i) : i !== void 0 && t.push(i);
  }
  return t;
}
function P4t(e, t, r, i) {
  e.insertAfter(ot.types.classPrivateMethod("get", ot.types.cloneNode(t), [], ot.types.blockStatement([ot.types.returnStatement(ot.types.callExpression(ot.types.cloneNode(r), [ot.types.thisExpression()]))]))), e.insertAfter(ot.types.classPrivateMethod("set", ot.types.cloneNode(t), [ot.types.identifier("v")], ot.types.blockStatement([ot.types.expressionStatement(ot.types.callExpression(ot.types.cloneNode(i), [ot.types.thisExpression(), ot.types.identifier("v")]))])));
}
function w4t(e) {
  return e.type !== "TSParameterProperty";
}
function A4t(e, t, r, i) {
  let n, s;
  e.node.kind === "set" ? (n = [ot.types.identifier("v")], s = [ot.types.expressionStatement(ot.types.callExpression(r, [ot.types.thisExpression(), ot.types.identifier("v")]))]) : (n = [], s = [ot.types.returnStatement(ot.types.callExpression(r, [ot.types.thisExpression()]))]), e.replaceWith(ot.types.classPrivateMethod(e.node.kind, ot.types.cloneNode(t), n, ot.types.blockStatement(s), i));
}
function Tee(e) {
  const {
    type: t
  } = e;
  return t !== "TSDeclareMethod" && t !== "TSIndexSignature" && t !== "StaticBlock";
}
function See(e) {
  return ot.types.callExpression(ot.types.arrowFunctionExpression([], ot.types.blockStatement(e.body)), []);
}
function C4t(e) {
  return e.length === 0 ? ot.types.unaryExpression("void", ot.types.numericLiteral(0)) : e.length === 1 ? e[0] : ot.types.sequenceExpression(e);
}
var Moe;
function _4t(e, t, r, i) {
  const n = e.get("body.body"), s = e.node.decorators;
  let a = !1;
  const o = d4t(e);
  for (const R of n)
    if (Tee(R)) {
      if (R.node.decorators && R.node.decorators.length > 0)
        a = !0;
      else if (R.node.type === "ClassAccessorProperty") {
        const {
          key: $,
          value: V,
          static: K,
          computed: z
        } = R.node, W = o(), Y = V ? ot.types.cloneNode(V) : void 0, G = gee(W, Y, K), [le] = R.replaceWith(G);
        bee(e.node.id, le, $, W, i, z);
      }
    }
  if (!s && !a)
    return;
  const l = [];
  let u, c, f = !1, h = !1;
  const m = /* @__PURE__ */ new Set();
  let g, y, v, T;
  const S = [], P = e.scope.parent, x = (R, $) => {
    const V = P.generateDeclaredUidIdentifier($);
    return S.push(ot.types.assignmentExpression("=", V, R)), ot.types.cloneNode(V);
  }, C = /* @__PURE__ */ new Map(), D = (R) => {
    const {
      expression: $
    } = R;
    if (i === "2023-05" && ot.types.isMemberExpression($)) {
      let V;
      ot.types.isSuper($.object) || ot.types.isThisExpression($.object) ? V = x(ot.types.thisExpression(), "obj") : P.isStatic($.object) ? V = $.object : (V = x($.object, "obj"), $.object = V), C.set(R, ot.types.cloneNode(V));
    }
    P.isStatic($) || (R.expression = x($, "dec"));
  };
  if (s) {
    v = P.generateDeclaredUidIdentifier("initClass");
    const [R, $] = m4t(e);
    e = $, T = R, e.node.decorators = null;
    for (const V of s)
      D(V);
  } else
    e.node.id || (e.node.id = e.scope.generateUidIdentifier("Class")), T = ot.types.cloneNode(e.node.id);
  let w, A = !1;
  if (a)
    for (const R of n) {
      if (!Tee(R))
        continue;
      const {
        node: $
      } = R, V = R.get("decorators"), K = Array.isArray(V) && V.length > 0;
      if (K)
        for (const ae of V)
          D(ae.node);
      const z = "computed" in R.node && R.node.computed === !0;
      z && (P.isStatic($.key) || ($.key = x($.key, "computedKey")));
      const W = T4t(R), {
        key: Y
      } = $, G = Y.type === "PrivateName", le = !!R.node.static;
      let ne = "computedKey";
      if (G ? ne = Y.id.name : !z && Y.type === "Identifier" && (ne = Y.name), G && !le && (K && (A = !0), (ot.types.isClassPrivateProperty($) || !w) && (w = Y)), R.isClassMethod({
        kind: "constructor"
      }) && (c = R), K) {
        let ae, be;
        if (W === iT) {
          const {
            value: fe
          } = R.node, Z = [ot.types.thisExpression()];
          fe && Z.push(ot.types.cloneNode(fe));
          const ue = o(), me = R.scope.parent.generateDeclaredUidIdentifier("init_".concat(ne)), xe = ot.types.callExpression(ot.types.cloneNode(me), Z), Pe = gee(ue, xe, le), [ve] = R.replaceWith(Pe);
          if (G) {
            be = vee(ue, i);
            const Xe = ve.scope.parent.generateDeclaredUidIdentifier("get_".concat(ne)), st = ve.scope.parent.generateDeclaredUidIdentifier("set_".concat(ne));
            P4t(ve, Y, Xe, st), ae = [me, Xe, st];
          } else
            bee(e.node.id, ve, Y, ue, i, z), ae = me;
        } else if (W === Ry) {
          const fe = R.scope.parent.generateDeclaredUidIdentifier("init_".concat(ne)), Z = R.get("value");
          Z.replaceWith(ot.types.callExpression(ot.types.cloneNode(fe), [ot.types.thisExpression(), Z.node].filter((ue) => ue))), ae = fe, G && (be = vee(Y, i));
        } else if (G) {
          ae = R.scope.parent.generateDeclaredUidIdentifier("call_".concat(ne)), new p4t.default({
            constantSuper: r,
            methodPath: R,
            objectRef: T,
            superRef: e.node.superClass,
            file: t.file,
            refToPreserve: T
          }).replace();
          const {
            params: Z,
            body: ue,
            async: me
          } = R.node;
          if (be = [ot.types.functionExpression(void 0, Z.filter(w4t), ue, me)], W === Hge || W === rA)
            A4t(R, ot.types.cloneNode(Y), ot.types.cloneNode(ae), le);
          else {
            const xe = R.node;
            e.node.body.body.unshift(ot.types.classPrivateProperty(Y, ot.types.cloneNode(ae), [], xe.static)), m.add(Y.id.name), R.remove();
          }
        }
        let ye;
        z ? ye = ot.types.cloneNode(Y) : Y.type === "PrivateName" ? ye = ot.types.stringLiteral(Y.id.name) : Y.type === "Identifier" ? ye = ot.types.stringLiteral(Y.name) : ye = ot.types.cloneNode(Y), l.push({
          kind: W,
          decorators: V.map((fe) => fe.node.expression),
          decoratorsThis: V.map((fe) => C.get(fe.node)),
          name: ye,
          isStatic: le,
          privateMethods: be,
          locals: ae
        }), W !== Ry && (le ? h = !0 : f = !0), R.node && (R.node.decorators = null), !u && !le && (W === Ry || W === iT) && (u = R);
      }
    }
  const I = x4t(l, i);
  let L = 0, O = [];
  if (s) {
    const {
      hasThis: R,
      decs: $
    } = zge(s.map((V) => V.expression), s.map((V) => C.get(V)), i);
    L = R ? 1 : 0, O = $;
  }
  const F = E4t(l);
  if (f) {
    g = P.generateDeclaredUidIdentifier("initProto"), F.push(g);
    const R = ot.types.callExpression(ot.types.cloneNode(g), [ot.types.thisExpression()]);
    if (u) {
      const $ = u.get("value"), V = [R];
      $.node && V.push($.node), $.replaceWith(ot.types.sequenceExpression(V));
    } else if (c)
      e.node.superClass ? e.traverse({
        CallExpression: {
          exit($) {
            $.get("callee").isSuper() && ($.replaceWith(ot.types.callExpression(ot.types.cloneNode(g), [$.node])), $.skip());
          }
        }
      }) : c.node.body.body.unshift(ot.types.expressionStatement(R));
    else {
      const $ = [ot.types.expressionStatement(R)];
      e.node.superClass && $.unshift(ot.types.expressionStatement(ot.types.callExpression(ot.types.super(), [ot.types.spreadElement(ot.types.identifier("args"))]))), e.node.body.body.unshift(ot.types.classMethod("constructor", ot.types.identifier("constructor"), [ot.types.restElement(ot.types.identifier("args"))], ot.types.blockStatement($)));
    }
  }
  h && (y = P.generateDeclaredUidIdentifier("initStatic"), F.push(y)), m.size > 0 && e.traverse({
    PrivateName(R) {
      if (!m.has(R.node.id.name))
        return;
      const $ = R.parentPath, V = $.parentPath;
      if (V.node.type === "AssignmentExpression" && V.node.left === $.node || V.node.type === "UpdateExpression" || V.node.type === "RestElement" || V.node.type === "ArrayPattern" || V.node.type === "ObjectProperty" && V.node.value === $.node && V.parentPath.type === "ObjectPattern" || V.node.type === "ForOfStatement" && V.node.left === $.node)
        throw R.buildCodeFrameError('Decorated private methods are not updatable, but "#'.concat(R.node.id.name, '" is updated via this expression.'));
    }
  });
  const q = [];
  let j = !1;
  const N = v && ot.types.callExpression(ot.types.cloneNode(v), []), M = e.node;
  if (s) {
    q.push(T, v);
    const R = [];
    let $ = [];
    if (e.get("body.body").forEach((V) => {
      if (V.isStaticBlock()) {
        $.push(V.node), V.remove();
        return;
      }
      const K = V.isClassProperty() || V.isClassPrivateProperty();
      if ((K || V.isClassPrivateMethod()) && V.node.static) {
        if (K && $.length > 0) {
          const z = $.map(See);
          V.node.value && z.push(V.node.value), V.node.value = C4t(z), $ = [];
        }
        V.node.static = !1, R.push(V.node), V.remove();
      }
    }), R.length > 0 || $.length > 0) {
      const V = ot.template.expression.ast(Moe || (Moe = at(["\n        class extends ", " {}\n      "])), t.addHelper("identity"));
      V.body.body = [ot.types.staticBlock([ot.types.toStatement(M, !0) || ot.types.expressionStatement(M)]), ...R];
      const K = [], z = ot.types.newExpression(V, []);
      $.length > 0 && K.push(...$.map(See)), N && (j = !0, K.push(N)), K.length > 0 ? (K.unshift(ot.types.callExpression(ot.types.super(), [ot.types.cloneNode(T)])), V.body.body.push(ot.types.classMethod("constructor", ot.types.identifier("constructor"), [], ot.types.blockStatement([ot.types.expressionStatement(ot.types.sequenceExpression(K))])))) : z.arguments.push(ot.types.cloneNode(T)), e.replaceWith(z);
    }
  }
  return !j && N && e.node.body.body.push(ot.types.staticBlock([ot.types.expressionStatement(N)])), M.body.body.unshift(ot.types.staticBlock([ot.types.expressionStatement(I4t(F, q, I, ot.types.arrayExpression(O), ot.types.numericLiteral(L), A ? w : null, t, i)), h && ot.types.expressionStatement(ot.types.callExpression(ot.types.cloneNode(y), [ot.types.thisExpression()]))].filter(Boolean))), e.insertBefore(S.map((R) => ot.types.expressionStatement(R))), e.scope.crawl(), e;
}
var Roe, Boe;
function I4t(e, t, r, i, n, s, a, o) {
  let l, u;
  const c = [ot.types.thisExpression(), r, i];
  if (o === "2021-12" || o === "2022-03" && !a.availableHelper("applyDecs2203R")) {
    const f = ot.types.arrayPattern([...e, ...t]), h = ot.types.callExpression(a.addHelper(o === "2021-12" ? "applyDecs" : "applyDecs2203"), c);
    return ot.types.assignmentExpression("=", f, h);
  }
  return o === "2023-05" ? ((s || n.value !== 0) && c.push(n), s && c.push(ot.template.expression.ast(Roe || (Roe = at(["\n            _ => ", " in _\n          "])), ot.types.cloneNode(s))), u = ot.types.callExpression(a.addHelper("applyDecs2305"), c)) : o === "2023-01" ? (s && c.push(ot.template.expression.ast(Boe || (Boe = at(["\n            _ => ", " in _\n          "])), ot.types.cloneNode(s))), u = ot.types.callExpression(a.addHelper("applyDecs2301"), c)) : u = ot.types.callExpression(a.addHelper("applyDecs2203R"), c), e.length > 0 ? t.length > 0 ? l = ot.types.objectPattern([ot.types.objectProperty(ot.types.identifier("e"), ot.types.arrayPattern(e)), ot.types.objectProperty(ot.types.identifier("c"), ot.types.arrayPattern(t))]) : (l = ot.types.arrayPattern(e), u = ot.types.memberExpression(u, ot.types.identifier("e"), !1, !1)) : (l = ot.types.arrayPattern(t), u = ot.types.memberExpression(u, ot.types.identifier("c"), !1, !1)), ot.types.assignmentExpression("=", l, u);
}
function k4t({
  assertVersion: e,
  assumption: t
}, {
  loose: r
}, i) {
  var n;
  e(i === "2023-05" || i === "2023-01" ? "^7.21.0" : i === "2021-12" ? "^7.16.0" : "^7.19.0");
  const s = /* @__PURE__ */ new WeakSet(), a = (n = t("constantSuper")) != null ? n : r;
  return {
    name: "proposal-decorators",
    inherits: c4t.default,
    visitor: {
      "ExportNamedDeclaration|ExportDefaultDeclaration"(o) {
        var l;
        const {
          declaration: u
        } = o.node;
        (u == null ? void 0 : u.type) === "ClassDeclaration" && ((l = u.decorators) == null ? void 0 : l.length) > 0 && (0, f4t.default)(o);
      },
      Class(o, l) {
        if (s.has(o))
          return;
        const u = _4t(o, l, a, i);
        u && s.add(u);
      }
    }
  };
}
Object.defineProperty(O7, "__esModule", {
  value: !0
});
var Gge = O7.default = void 0, O4t = Hh, xee = gS, Eee = Nge, N4t = MI, D4t = M7, L4t = (0, O4t.declare)((e, t) => {
  e.assertVersion(7);
  var {
    legacy: r
  } = t;
  const {
    version: i
  } = t;
  return r || i === "legacy" ? {
    name: "proposal-decorators",
    inherits: xee.default,
    visitor: N4t.default
  } : i === "2021-12" || i === "2022-03" || i === "2023-01" || i === "2023-05" ? (0, D4t.default)(e, t, i) : (e.assertVersion("^7.0.2"), (0, Eee.createClassFeaturePlugin)({
    name: "proposal-decorators",
    api: e,
    feature: Eee.FEATURES.decorators,
    inherits: xee.default
  }));
});
Gge = O7.default = L4t;
function M4t(e, t, r) {
  const i = new IT(e), n = uQ.parse(e, {
    babelrc: !1,
    comments: !0,
    configFile: !1,
    plugins: [
      Oge,
      [Tnt, {}],
      [kge, { isTSX: !0, allowExtensions: !0 }],
      [Gge, { legacy: !0 }]
    ]
  });
  return uQ.traverse(n, {
    enter({ node: s }) {
      var l, u, c;
      const a = ((u = (l = s == null ? void 0 : s.openingElement) == null ? void 0 : l.name) == null ? void 0 : u.name) || "", o = ((c = s == null ? void 0 : s.openingElement) == null ? void 0 : c.attributes) || [];
      if (s.type === "JSXElement" && a && !PC(r, a)) {
        if (o.some(
          (y) => {
            var v;
            return y.type !== "JSXSpreadAttribute" && ((v = y.name) == null ? void 0 : v.name) === fa;
          }
        ))
          return;
        const f = s.openingElement.end - (s.openingElement.selfClosing ? 2 : 1), { line: h, column: m } = s.loc.start, g = " ".concat(fa, '="').concat(t, ":").concat(h, ":").concat(m + 1, ":").concat(a, '"').concat(s.openingElement.attributes.length ? " " : "");
        i.prependLeft(f, g);
      }
    }
  }), i.toString();
}
var R4t = [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, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 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, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 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, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239], Yge = [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, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 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, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 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, 16, 0, 30, 2, 3, 0, 15, 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, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 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, 4153, 7, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938, 6, 4191], B4t = "‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࢘-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-ᫎᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏０-９＿", Xge = "ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢎࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೝೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꟊꟐꟑꟓꟕ-ꟙꟲ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ﬀ-ﬆﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼＡ-Ｚａ-ｚｦ-ﾾￂ-ￇￊ-ￏￒ-ￗￚ-ￜ", D3 = {
  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"
}, L3 = "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", F4t = {
  5: L3,
  "5module": L3 + " export import",
  6: L3 + " const class extends export import super"
}, j4t = /^in(stanceof)?$/, $4t = new RegExp("[" + Xge + "]"), U4t = new RegExp("[" + Xge + B4t + "]");
function M8(e, t) {
  for (var r = 65536, i = 0; i < t.length; i += 2) {
    if (r += t[i], r > e)
      return !1;
    if (r += t[i + 1], r >= e)
      return !0;
  }
  return !1;
}
function Fc(e, t) {
  return e < 65 ? e === 36 : e < 91 ? !0 : e < 97 ? e === 95 : e < 123 ? !0 : e <= 65535 ? e >= 170 && $4t.test(String.fromCharCode(e)) : t === !1 ? !1 : M8(e, Yge);
}
function Xd(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 && U4t.test(String.fromCharCode(e)) : t === !1 ? !1 : M8(e, Yge) || M8(e, R4t);
}
var di = function(t, r) {
  r === void 0 && (r = {}), this.label = t, this.keyword = r.keyword, this.beforeExpr = !!r.beforeExpr, this.startsExpr = !!r.startsExpr, this.isLoop = !!r.isLoop, this.isAssign = !!r.isAssign, this.prefix = !!r.prefix, this.postfix = !!r.postfix, this.binop = r.binop || null, this.updateContext = null;
};
function yl(e, t) {
  return new di(e, { beforeExpr: !0, binop: t });
}
var gl = { beforeExpr: !0 }, Da = { startsExpr: !0 }, R7 = {};
function ui(e, t) {
  return t === void 0 && (t = {}), t.keyword = e, R7[e] = new di(e, t);
}
var ke = {
  num: new di("num", Da),
  regexp: new di("regexp", Da),
  string: new di("string", Da),
  name: new di("name", Da),
  privateId: new di("privateId", Da),
  eof: new di("eof"),
  // Punctuation token types.
  bracketL: new di("[", { beforeExpr: !0, startsExpr: !0 }),
  bracketR: new di("]"),
  braceL: new di("{", { beforeExpr: !0, startsExpr: !0 }),
  braceR: new di("}"),
  parenL: new di("(", { beforeExpr: !0, startsExpr: !0 }),
  parenR: new di(")"),
  comma: new di(",", gl),
  semi: new di(";", gl),
  colon: new di(":", gl),
  dot: new di("."),
  question: new di("?", gl),
  questionDot: new di("?."),
  arrow: new di("=>", gl),
  template: new di("template"),
  invalidTemplate: new di("invalidTemplate"),
  ellipsis: new di("...", gl),
  backQuote: new di("`", Da),
  dollarBraceL: new di("${", { beforeExpr: !0, startsExpr: !0 }),
  // Operators. These carry several kinds of properties to help the
  // parser use them properly (the presence of these properties is
  // what categorizes them as operators).
  //
  // `binop`, when present, specifies that this operator is a binary
  // operator, and will refer to its precedence.
  //
  // `prefix` and `postfix` mark the operator as a prefix or postfix
  // unary operator.
  //
  // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as
  // binary operators with a very low precedence, that should result
  // in AssignmentExpression nodes.
  eq: new di("=", { beforeExpr: !0, isAssign: !0 }),
  assign: new di("_=", { beforeExpr: !0, isAssign: !0 }),
  incDec: new di("++/--", { prefix: !0, postfix: !0, startsExpr: !0 }),
  prefix: new di("!/~", { beforeExpr: !0, prefix: !0, startsExpr: !0 }),
  logicalOR: yl("||", 1),
  logicalAND: yl("&&", 2),
  bitwiseOR: yl("|", 3),
  bitwiseXOR: yl("^", 4),
  bitwiseAND: yl("&", 5),
  equality: yl("==/!=/===/!==", 6),
  relational: yl("</>/<=/>=", 7),
  bitShift: yl("<</>>/>>>", 8),
  plusMin: new di("+/-", { beforeExpr: !0, binop: 9, prefix: !0, startsExpr: !0 }),
  modulo: yl("%", 10),
  star: yl("*", 10),
  slash: yl("/", 10),
  starstar: new di("**", { beforeExpr: !0 }),
  coalesce: yl("??", 1),
  // Keyword token types.
  _break: ui("break"),
  _case: ui("case", gl),
  _catch: ui("catch"),
  _continue: ui("continue"),
  _debugger: ui("debugger"),
  _default: ui("default", gl),
  _do: ui("do", { isLoop: !0, beforeExpr: !0 }),
  _else: ui("else", gl),
  _finally: ui("finally"),
  _for: ui("for", { isLoop: !0 }),
  _function: ui("function", Da),
  _if: ui("if"),
  _return: ui("return", gl),
  _switch: ui("switch"),
  _throw: ui("throw", gl),
  _try: ui("try"),
  _var: ui("var"),
  _const: ui("const"),
  _while: ui("while", { isLoop: !0 }),
  _with: ui("with"),
  _new: ui("new", { beforeExpr: !0, startsExpr: !0 }),
  _this: ui("this", Da),
  _super: ui("super", Da),
  _class: ui("class", Da),
  _extends: ui("extends", gl),
  _export: ui("export"),
  _import: ui("import", Da),
  _null: ui("null", Da),
  _true: ui("true", Da),
  _false: ui("false", Da),
  _in: ui("in", { beforeExpr: !0, binop: 7 }),
  _instanceof: ui("instanceof", { beforeExpr: !0, binop: 7 }),
  _typeof: ui("typeof", { beforeExpr: !0, prefix: !0, startsExpr: !0 }),
  _void: ui("void", { beforeExpr: !0, prefix: !0, startsExpr: !0 }),
  _delete: ui("delete", { beforeExpr: !0, prefix: !0, startsExpr: !0 })
}, Xl = /\r\n?|\n|\u2028|\u2029/, q4t = new RegExp(Xl.source, "g");
function Fg(e) {
  return e === 10 || e === 13 || e === 8232 || e === 8233;
}
function Jge(e, t, r) {
  r === void 0 && (r = e.length);
  for (var i = t; i < r; i++) {
    var n = e.charCodeAt(i);
    if (Fg(n))
      return i < r - 1 && n === 13 && e.charCodeAt(i + 1) === 10 ? i + 2 : i + 1;
  }
  return -1;
}
var Qge = /[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/, Il = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g, Zge = Object.prototype, V4t = Zge.hasOwnProperty, W4t = Zge.toString, vS = Object.hasOwn || function(e, t) {
  return V4t.call(e, t);
}, Pee = Array.isArray || function(e) {
  return W4t.call(e) === "[object Array]";
};
function Eh(e) {
  return new RegExp("^(?:" + e.replace(/ /g, "|") + ")$");
}
function $h(e) {
  return e <= 65535 ? String.fromCharCode(e) : (e -= 65536, String.fromCharCode((e >> 10) + 55296, (e & 1023) + 56320));
}
var H4t = /(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/, nT = function(t, r) {
  this.line = t, this.column = r;
};
nT.prototype.offset = function(t) {
  return new nT(this.line, this.column + t);
};
var RI = function(t, r, i) {
  this.start = r, this.end = i, t.sourceFile !== null && (this.source = t.sourceFile);
};
function ebe(e, t) {
  for (var r = 1, i = 0; ; ) {
    var n = Jge(e, i, t);
    if (n < 0)
      return new nT(r, t - i);
    ++r, i = n;
  }
}
var R8 = {
  // `ecmaVersion` indicates the ECMAScript version to parse. Must be
  // either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10
  // (2019), 11 (2020), 12 (2021), 13 (2022), 14 (2023), or `"latest"`
  // (the latest version the library supports). This influences
  // support for strict mode, the set of reserved words, and support
  // for new syntax features.
  ecmaVersion: null,
  // `sourceType` indicates the mode the code should be parsed in.
  // Can be either `"script"` or `"module"`. This influences global
  // strict mode and parsing of `import` and `export` declarations.
  sourceType: "script",
  // `onInsertedSemicolon` can be a callback that will be called
  // when a semicolon is automatically inserted. It will be passed
  // the position of the comma as an offset, and if `locations` is
  // enabled, it is given the location as a `{line, column}` object
  // as second argument.
  onInsertedSemicolon: null,
  // `onTrailingComma` is similar to `onInsertedSemicolon`, but for
  // trailing commas.
  onTrailingComma: null,
  // By default, reserved words are only enforced if ecmaVersion >= 5.
  // Set `allowReserved` to a boolean value to explicitly turn this on
  // an off. When this option has the value "never", reserved words
  // and keywords can also not be used as property names.
  allowReserved: null,
  // When enabled, a return at the top level is not considered an
  // error.
  allowReturnOutsideFunction: !1,
  // When enabled, import/export statements are not constrained to
  // appearing at the top of the program, and an import.meta expression
  // in a script isn't considered an error.
  allowImportExportEverywhere: !1,
  // By default, await identifiers are allowed to appear at the top-level scope only if ecmaVersion >= 2022.
  // When enabled, await identifiers are allowed to appear at the top-level scope,
  // but they are still not allowed in non-async functions.
  allowAwaitOutsideFunction: null,
  // When enabled, super identifiers are not constrained to
  // appearing in methods and do not raise an error when they appear elsewhere.
  allowSuperOutsideMethod: null,
  // When enabled, hashbang directive in the beginning of file is
  // allowed and treated as a line comment. Enabled by default when
  // `ecmaVersion` >= 2023.
  allowHashBang: !1,
  // By default, the parser will verify that private properties are
  // only used in places where they are valid and have been declared.
  // Set this to false to turn such checks off.
  checkPrivateFields: !0,
  // When `locations` is on, `loc` properties holding objects with
  // `start` and `end` properties in `{line, column}` form (with
  // line being 1-based and column 0-based) will be attached to the
  // nodes.
  locations: !1,
  // A function can be passed as `onToken` option, which will
  // cause Acorn to call that function with object in the same
  // format as tokens returned from `tokenizer().getToken()`. Note
  // that you are not allowed to call the parser from the
  // callback—that will corrupt its internal state.
  onToken: null,
  // A function can be passed as `onComment` option, which will
  // cause Acorn to call that function with `(block, text, start,
  // end)` parameters whenever a comment is skipped. `block` is a
  // boolean indicating whether this is a block (`/* */`) comment,
  // `text` is the content of the comment, and `start` and `end` are
  // character offsets that denote the start and end of the comment.
  // When the `locations` option is on, two more parameters are
  // passed, the full `{line, column}` locations of the start and
  // end of the comments. Note that you are not allowed to call the
  // parser from the callback—that will corrupt its internal state.
  onComment: null,
  // Nodes have their start and end characters offsets recorded in
  // `start` and `end` properties (directly on the node, rather than
  // the `loc` object, which holds line/column data. To also add a
  // [semi-standardized][range] `range` property holding a `[start,
  // end]` array with the same numbers, set the `ranges` option to
  // `true`.
  //
  // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678
  ranges: !1,
  // It is possible to parse multiple files into a single AST by
  // passing the tree produced by parsing the first file as
  // `program` option in subsequent parses. This will add the
  // toplevel forms of the parsed file to the `Program` (top) node
  // of an existing parse tree.
  program: null,
  // When `locations` is on, you can pass this to record the source
  // file in every node's `loc` object.
  sourceFile: null,
  // This value, if given, is stored in every node, whether
  // `locations` is on or off.
  directSourceFile: null,
  // When enabled, parenthesized expressions are represented by
  // (non-standard) ParenthesizedExpression nodes
  preserveParens: !1
}, wee = !1;
function K4t(e) {
  var t = {};
  for (var r in R8)
    t[r] = e && vS(e, r) ? e[r] : R8[r];
  if (t.ecmaVersion === "latest" ? t.ecmaVersion = 1e8 : t.ecmaVersion == null ? (!wee && typeof console == "object" && console.warn && (wee = !0, console.warn("Since Acorn 8.0.0, options.ecmaVersion is required.\nDefaulting to 2020, but this will stop working in the future.")), t.ecmaVersion = 11) : t.ecmaVersion >= 2015 && (t.ecmaVersion -= 2009), t.allowReserved == null && (t.allowReserved = t.ecmaVersion < 5), (!e || e.allowHashBang == null) && (t.allowHashBang = t.ecmaVersion >= 14), Pee(t.onToken)) {
    var i = t.onToken;
    t.onToken = function(n) {
      return i.push(n);
    };
  }
  return Pee(t.onComment) && (t.onComment = z4t(t, t.onComment)), t;
}
function z4t(e, t) {
  return function(r, i, n, s, a, o) {
    var l = {
      type: r ? "Block" : "Line",
      value: i,
      start: n,
      end: s
    };
    e.locations && (l.loc = new RI(this, a, o)), e.ranges && (l.range = [n, s]), t.push(l);
  };
}
var sT = 1, jg = 2, B7 = 4, tbe = 8, rbe = 16, ibe = 32, F7 = 64, nbe = 128, TS = 256, j7 = sT | jg | TS;
function $7(e, t) {
  return jg | (e ? B7 : 0) | (t ? tbe : 0);
}
var iA = 0, U7 = 1, $f = 2, sbe = 3, abe = 4, obe = 5, os = function(t, r, i) {
  this.options = t = K4t(t), this.sourceFile = t.sourceFile, this.keywords = Eh(F4t[t.ecmaVersion >= 6 ? 6 : t.sourceType === "module" ? "5module" : 5]);
  var n = "";
  t.allowReserved !== !0 && (n = D3[t.ecmaVersion >= 6 ? 6 : t.ecmaVersion === 5 ? 5 : 3], t.sourceType === "module" && (n += " await")), this.reservedWords = Eh(n);
  var s = (n ? n + " " : "") + D3.strict;
  this.reservedWordsStrict = Eh(s), this.reservedWordsStrictBind = Eh(s + " " + D3.strictBind), this.input = String(r), this.containsEsc = !1, i ? (this.pos = i, this.lineStart = this.input.lastIndexOf("\n", i - 1) + 1, this.curLine = this.input.slice(0, this.lineStart).split(Xl).length) : (this.pos = this.lineStart = 0, this.curLine = 1), this.type = ke.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(sT), this.regexpState = null, this.privateNameStack = [];
}, Tp = { 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 } };
os.prototype.parse = function() {
  var t = this.options.program || this.startNode();
  return this.nextToken(), this.parseTopLevel(t);
};
Tp.inFunction.get = function() {
  return (this.currentVarScope().flags & jg) > 0;
};
Tp.inGenerator.get = function() {
  return (this.currentVarScope().flags & tbe) > 0 && !this.currentVarScope().inClassFieldInit;
};
Tp.inAsync.get = function() {
  return (this.currentVarScope().flags & B7) > 0 && !this.currentVarScope().inClassFieldInit;
};
Tp.canAwait.get = function() {
  for (var e = this.scopeStack.length - 1; e >= 0; e--) {
    var t = this.scopeStack[e];
    if (t.inClassFieldInit || t.flags & TS)
      return !1;
    if (t.flags & jg)
      return (t.flags & B7) > 0;
  }
  return this.inModule && this.options.ecmaVersion >= 13 || this.options.allowAwaitOutsideFunction;
};
Tp.allowSuper.get = function() {
  var e = this.currentThisScope(), t = e.flags, r = e.inClassFieldInit;
  return (t & F7) > 0 || r || this.options.allowSuperOutsideMethod;
};
Tp.allowDirectSuper.get = function() {
  return (this.currentThisScope().flags & nbe) > 0;
};
Tp.treatFunctionsAsVar.get = function() {
  return this.treatFunctionsAsVarInScope(this.currentScope());
};
Tp.allowNewDotTarget.get = function() {
  var e = this.currentThisScope(), t = e.flags, r = e.inClassFieldInit;
  return (t & (jg | TS)) > 0 || r;
};
Tp.inClassStaticBlock.get = function() {
  return (this.currentVarScope().flags & TS) > 0;
};
os.extend = function() {
  for (var t = [], r = arguments.length; r--; )
    t[r] = arguments[r];
  for (var i = this, n = 0; n < t.length; n++)
    i = t[n](i);
  return i;
};
os.parse = function(t, r) {
  return new this(r, t).parse();
};
os.parseExpressionAt = function(t, r, i) {
  var n = new this(i, t, r);
  return n.nextToken(), n.parseExpression();
};
os.tokenizer = function(t, r) {
  return new this(r, t);
};
Object.defineProperties(os.prototype, Tp);
var ha = os.prototype, G4t = /^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/;
ha.strictDirective = function(e) {
  if (this.options.ecmaVersion < 5)
    return !1;
  for (; ; ) {
    Il.lastIndex = e, e += Il.exec(this.input)[0].length;
    var t = G4t.exec(this.input.slice(e));
    if (!t)
      return !1;
    if ((t[1] || t[2]) === "use strict") {
      Il.lastIndex = e + t[0].length;
      var r = Il.exec(this.input), i = r.index + r[0].length, n = this.input.charAt(i);
      return n === ";" || n === "}" || Xl.test(r[0]) && !(/[(`.[+\-/*%<>=,?^&]/.test(n) || n === "!" && this.input.charAt(i + 1) === "=");
    }
    e += t[0].length, Il.lastIndex = e, e += Il.exec(this.input)[0].length, this.input[e] === ";" && e++;
  }
};
ha.eat = function(e) {
  return this.type === e ? (this.next(), !0) : !1;
};
ha.isContextual = function(e) {
  return this.type === ke.name && this.value === e && !this.containsEsc;
};
ha.eatContextual = function(e) {
  return this.isContextual(e) ? (this.next(), !0) : !1;
};
ha.expectContextual = function(e) {
  this.eatContextual(e) || this.unexpected();
};
ha.canInsertSemicolon = function() {
  return this.type === ke.eof || this.type === ke.braceR || Xl.test(this.input.slice(this.lastTokEnd, this.start));
};
ha.insertSemicolon = function() {
  if (this.canInsertSemicolon())
    return this.options.onInsertedSemicolon && this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc), !0;
};
ha.semicolon = function() {
  !this.eat(ke.semi) && !this.insertSemicolon() && this.unexpected();
};
ha.afterTrailingComma = function(e, t) {
  if (this.type === e)
    return this.options.onTrailingComma && this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc), t || this.next(), !0;
};
ha.expect = function(e) {
  this.eat(e) || this.unexpected();
};
ha.unexpected = function(e) {
  this.raise(e != null ? e : this.start, "Unexpected token");
};
var BI = function() {
  this.shorthandAssign = this.trailingComma = this.parenthesizedAssign = this.parenthesizedBind = this.doubleProto = -1;
};
ha.checkPatternErrors = function(e, t) {
  if (e) {
    e.trailingComma > -1 && this.raiseRecoverable(e.trailingComma, "Comma is not permitted after the rest element");
    var r = t ? e.parenthesizedAssign : e.parenthesizedBind;
    r > -1 && this.raiseRecoverable(r, t ? "Assigning to rvalue" : "Parenthesized pattern");
  }
};
ha.checkExpressionErrors = function(e, t) {
  if (!e)
    return !1;
  var r = e.shorthandAssign, i = e.doubleProto;
  if (!t)
    return r >= 0 || i >= 0;
  r >= 0 && this.raise(r, "Shorthand property assignments are valid only in destructuring patterns"), i >= 0 && this.raiseRecoverable(i, "Redefinition of __proto__ property");
};
ha.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");
};
ha.isSimpleAssignTarget = function(e) {
  return e.type === "ParenthesizedExpression" ? this.isSimpleAssignTarget(e.expression) : e.type === "Identifier" || e.type === "MemberExpression";
};
var or = os.prototype;
or.parseTopLevel = function(e) {
  var t = /* @__PURE__ */ Object.create(null);
  for (e.body || (e.body = []); this.type !== ke.eof; ) {
    var r = this.parseStatement(null, !0, t);
    e.body.push(r);
  }
  if (this.inModule)
    for (var i = 0, n = Object.keys(this.undefinedExports); i < n.length; i += 1) {
      var s = n[i];
      this.raiseRecoverable(this.undefinedExports[s].start, "Export '" + s + "' is not defined");
    }
  return this.adaptDirectivePrologue(e.body), this.next(), e.sourceType = this.options.sourceType, this.finishNode(e, "Program");
};
var q7 = { kind: "loop" }, Y4t = { kind: "switch" };
or.isLet = function(e) {
  if (this.options.ecmaVersion < 6 || !this.isContextual("let"))
    return !1;
  Il.lastIndex = this.pos;
  var t = Il.exec(this.input), r = this.pos + t[0].length, i = this.input.charCodeAt(r);
  if (i === 91 || i === 92)
    return !0;
  if (e)
    return !1;
  if (i === 123 || i > 55295 && i < 56320)
    return !0;
  if (Fc(i, !0)) {
    for (var n = r + 1; Xd(i = this.input.charCodeAt(n), !0); )
      ++n;
    if (i === 92 || i > 55295 && i < 56320)
      return !0;
    var s = this.input.slice(r, n);
    if (!j4t.test(s))
      return !0;
  }
  return !1;
};
or.isAsyncFunction = function() {
  if (this.options.ecmaVersion < 8 || !this.isContextual("async"))
    return !1;
  Il.lastIndex = this.pos;
  var e = Il.exec(this.input), t = this.pos + e[0].length, r;
  return !Xl.test(this.input.slice(this.pos, t)) && this.input.slice(t, t + 8) === "function" && (t + 8 === this.input.length || !(Xd(r = this.input.charCodeAt(t + 8)) || r > 55295 && r < 56320));
};
or.parseStatement = function(e, t, r) {
  var i = this.type, n = this.startNode(), s;
  switch (this.isLet(e) && (i = ke._var, s = "let"), i) {
    case ke._break:
    case ke._continue:
      return this.parseBreakContinueStatement(n, i.keyword);
    case ke._debugger:
      return this.parseDebuggerStatement(n);
    case ke._do:
      return this.parseDoStatement(n);
    case ke._for:
      return this.parseForStatement(n);
    case ke._function:
      return e && (this.strict || e !== "if" && e !== "label") && this.options.ecmaVersion >= 6 && this.unexpected(), this.parseFunctionStatement(n, !1, !e);
    case ke._class:
      return e && this.unexpected(), this.parseClass(n, !0);
    case ke._if:
      return this.parseIfStatement(n);
    case ke._return:
      return this.parseReturnStatement(n);
    case ke._switch:
      return this.parseSwitchStatement(n);
    case ke._throw:
      return this.parseThrowStatement(n);
    case ke._try:
      return this.parseTryStatement(n);
    case ke._const:
    case ke._var:
      return s = s || this.value, e && s !== "var" && this.unexpected(), this.parseVarStatement(n, s);
    case ke._while:
      return this.parseWhileStatement(n);
    case ke._with:
      return this.parseWithStatement(n);
    case ke.braceL:
      return this.parseBlock(!0, n);
    case ke.semi:
      return this.parseEmptyStatement(n);
    case ke._export:
    case ke._import:
      if (this.options.ecmaVersion > 10 && i === ke._import) {
        Il.lastIndex = this.pos;
        var a = Il.exec(this.input), o = this.pos + a[0].length, l = this.input.charCodeAt(o);
        if (l === 40 || l === 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'")), i === ke._import ? this.parseImport(n) : this.parseExport(n, r);
    default:
      if (this.isAsyncFunction())
        return e && this.unexpected(), this.next(), this.parseFunctionStatement(n, !0, !e);
      var u = this.value, c = this.parseExpression();
      return i === ke.name && c.type === "Identifier" && this.eat(ke.colon) ? this.parseLabeledStatement(n, u, c, e) : this.parseExpressionStatement(n, c);
  }
};
or.parseBreakContinueStatement = function(e, t) {
  var r = t === "break";
  this.next(), this.eat(ke.semi) || this.insertSemicolon() ? e.label = null : this.type !== ke.name ? this.unexpected() : (e.label = this.parseIdent(), this.semicolon());
  for (var i = 0; i < this.labels.length; ++i) {
    var n = this.labels[i];
    if ((e.label == null || n.name === e.label.name) && (n.kind != null && (r || n.kind === "loop") || e.label && r))
      break;
  }
  return i === this.labels.length && this.raise(e.start, "Unsyntactic " + t), this.finishNode(e, r ? "BreakStatement" : "ContinueStatement");
};
or.parseDebuggerStatement = function(e) {
  return this.next(), this.semicolon(), this.finishNode(e, "DebuggerStatement");
};
or.parseDoStatement = function(e) {
  return this.next(), this.labels.push(q7), e.body = this.parseStatement("do"), this.labels.pop(), this.expect(ke._while), e.test = this.parseParenExpression(), this.options.ecmaVersion >= 6 ? this.eat(ke.semi) : this.semicolon(), this.finishNode(e, "DoWhileStatement");
};
or.parseForStatement = function(e) {
  this.next();
  var t = this.options.ecmaVersion >= 9 && this.canAwait && this.eatContextual("await") ? this.lastTokStart : -1;
  if (this.labels.push(q7), this.enterScope(0), this.expect(ke.parenL), this.type === ke.semi)
    return t > -1 && this.unexpected(t), this.parseFor(e, null);
  var r = this.isLet();
  if (this.type === ke._var || this.type === ke._const || r) {
    var i = this.startNode(), n = r ? "let" : this.value;
    return this.next(), this.parseVar(i, !0, n), this.finishNode(i, "VariableDeclaration"), (this.type === ke._in || this.options.ecmaVersion >= 6 && this.isContextual("of")) && i.declarations.length === 1 ? (this.options.ecmaVersion >= 9 && (this.type === ke._in ? t > -1 && this.unexpected(t) : e.await = t > -1), this.parseForIn(e, i)) : (t > -1 && this.unexpected(t), this.parseFor(e, i));
  }
  var s = this.isContextual("let"), a = !1, o = new BI(), l = this.parseExpression(t > -1 ? "await" : !0, o);
  return this.type === ke._in || (a = this.options.ecmaVersion >= 6 && this.isContextual("of")) ? (this.options.ecmaVersion >= 9 && (this.type === ke._in ? t > -1 && this.unexpected(t) : e.await = t > -1), s && a && this.raise(l.start, "The left-hand side of a for-of loop may not start with 'let'."), this.toAssignable(l, !1, o), this.checkLValPattern(l), this.parseForIn(e, l)) : (this.checkExpressionErrors(o, !0), t > -1 && this.unexpected(t), this.parseFor(e, l));
};
or.parseFunctionStatement = function(e, t, r) {
  return this.next(), this.parseFunction(e, av | (r ? 0 : B8), !1, t);
};
or.parseIfStatement = function(e) {
  return this.next(), e.test = this.parseParenExpression(), e.consequent = this.parseStatement("if"), e.alternate = this.eat(ke._else) ? this.parseStatement("if") : null, this.finishNode(e, "IfStatement");
};
or.parseReturnStatement = function(e) {
  return !this.inFunction && !this.options.allowReturnOutsideFunction && this.raise(this.start, "'return' outside of function"), this.next(), this.eat(ke.semi) || this.insertSemicolon() ? e.argument = null : (e.argument = this.parseExpression(), this.semicolon()), this.finishNode(e, "ReturnStatement");
};
or.parseSwitchStatement = function(e) {
  this.next(), e.discriminant = this.parseParenExpression(), e.cases = [], this.expect(ke.braceL), this.labels.push(Y4t), this.enterScope(0);
  for (var t, r = !1; this.type !== ke.braceR; )
    if (this.type === ke._case || this.type === ke._default) {
      var i = this.type === ke._case;
      t && this.finishNode(t, "SwitchCase"), e.cases.push(t = this.startNode()), t.consequent = [], this.next(), i ? t.test = this.parseExpression() : (r && this.raiseRecoverable(this.lastTokStart, "Multiple default clauses"), r = !0, t.test = null), this.expect(ke.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");
};
or.parseThrowStatement = function(e) {
  return this.next(), Xl.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 X4t = [];
or.parseCatchClauseParam = function() {
  var e = this.parseBindingAtom(), t = e.type === "Identifier";
  return this.enterScope(t ? ibe : 0), this.checkLValPattern(e, t ? abe : $f), this.expect(ke.parenR), e;
};
or.parseTryStatement = function(e) {
  if (this.next(), e.block = this.parseBlock(), e.handler = null, this.type === ke._catch) {
    var t = this.startNode();
    this.next(), this.eat(ke.parenL) ? t.param = this.parseCatchClauseParam() : (this.options.ecmaVersion < 10 && this.unexpected(), t.param = null, this.enterScope(0)), t.body = this.parseBlock(!1), this.exitScope(), e.handler = this.finishNode(t, "CatchClause");
  }
  return e.finalizer = this.eat(ke._finally) ? this.parseBlock() : null, !e.handler && !e.finalizer && this.raise(e.start, "Missing catch or finally clause"), this.finishNode(e, "TryStatement");
};
or.parseVarStatement = function(e, t, r) {
  return this.next(), this.parseVar(e, !1, t, r), this.semicolon(), this.finishNode(e, "VariableDeclaration");
};
or.parseWhileStatement = function(e) {
  return this.next(), e.test = this.parseParenExpression(), this.labels.push(q7), e.body = this.parseStatement("while"), this.labels.pop(), this.finishNode(e, "WhileStatement");
};
or.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");
};
or.parseEmptyStatement = function(e) {
  return this.next(), this.finishNode(e, "EmptyStatement");
};
or.parseLabeledStatement = function(e, t, r, i) {
  for (var n = 0, s = this.labels; n < s.length; n += 1) {
    var a = s[n];
    a.name === t && this.raise(r.start, "Label '" + t + "' is already declared");
  }
  for (var o = this.type.isLoop ? "loop" : this.type === ke._switch ? "switch" : null, l = this.labels.length - 1; l >= 0; l--) {
    var u = this.labels[l];
    if (u.statementStart === e.start)
      u.statementStart = this.start, u.kind = o;
    else
      break;
  }
  return this.labels.push({ name: t, kind: o, statementStart: this.start }), e.body = this.parseStatement(i ? i.indexOf("label") === -1 ? i + "label" : i : "label"), this.labels.pop(), e.label = r, this.finishNode(e, "LabeledStatement");
};
or.parseExpressionStatement = function(e, t) {
  return e.expression = t, this.semicolon(), this.finishNode(e, "ExpressionStatement");
};
or.parseBlock = function(e, t, r) {
  for (e === void 0 && (e = !0), t === void 0 && (t = this.startNode()), t.body = [], this.expect(ke.braceL), e && this.enterScope(0); this.type !== ke.braceR; ) {
    var i = this.parseStatement(null);
    t.body.push(i);
  }
  return r && (this.strict = !1), this.next(), e && this.exitScope(), this.finishNode(t, "BlockStatement");
};
or.parseFor = function(e, t) {
  return e.init = t, this.expect(ke.semi), e.test = this.type === ke.semi ? null : this.parseExpression(), this.expect(ke.semi), e.update = this.type === ke.parenR ? null : this.parseExpression(), this.expect(ke.parenR), e.body = this.parseStatement("for"), this.exitScope(), this.labels.pop(), this.finishNode(e, "ForStatement");
};
or.parseForIn = function(e, t) {
  var r = this.type === ke._in;
  return this.next(), t.type === "VariableDeclaration" && t.declarations[0].init != null && (!r || this.options.ecmaVersion < 8 || this.strict || t.kind !== "var" || t.declarations[0].id.type !== "Identifier") && this.raise(
    t.start,
    (r ? "for-in" : "for-of") + " loop variable declaration may not have an initializer"
  ), e.left = t, e.right = r ? this.parseExpression() : this.parseMaybeAssign(), this.expect(ke.parenR), e.body = this.parseStatement("for"), this.exitScope(), this.labels.pop(), this.finishNode(e, r ? "ForInStatement" : "ForOfStatement");
};
or.parseVar = function(e, t, r, i) {
  for (e.declarations = [], e.kind = r; ; ) {
    var n = this.startNode();
    if (this.parseVarId(n, r), this.eat(ke.eq) ? n.init = this.parseMaybeAssign(t) : !i && r === "const" && !(this.type === ke._in || this.options.ecmaVersion >= 6 && this.isContextual("of")) ? this.unexpected() : !i && n.id.type !== "Identifier" && !(t && (this.type === ke._in || this.isContextual("of"))) ? this.raise(this.lastTokEnd, "Complex binding patterns require an initialization value") : n.init = null, e.declarations.push(this.finishNode(n, "VariableDeclarator")), !this.eat(ke.comma))
      break;
  }
  return e;
};
or.parseVarId = function(e, t) {
  e.id = this.parseBindingAtom(), this.checkLValPattern(e.id, t === "var" ? U7 : $f, !1);
};
var av = 1, B8 = 2, lbe = 4;
or.parseFunction = function(e, t, r, i, n) {
  this.initFunction(e), (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !i) && (this.type === ke.star && t & B8 && this.unexpected(), e.generator = this.eat(ke.star)), this.options.ecmaVersion >= 8 && (e.async = !!i), t & av && (e.id = t & lbe && this.type !== ke.name ? null : this.parseIdent(), e.id && !(t & B8) && this.checkLValSimple(e.id, this.strict || e.generator || e.async ? this.treatFunctionsAsVar ? U7 : $f : sbe));
  var s = this.yieldPos, a = this.awaitPos, o = this.awaitIdentPos;
  return this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0, this.enterScope($7(e.async, e.generator)), t & av || (e.id = this.type === ke.name ? this.parseIdent() : null), this.parseFunctionParams(e), this.parseFunctionBody(e, r, !1, n), this.yieldPos = s, this.awaitPos = a, this.awaitIdentPos = o, this.finishNode(e, t & av ? "FunctionDeclaration" : "FunctionExpression");
};
or.parseFunctionParams = function(e) {
  this.expect(ke.parenL), e.params = this.parseBindingList(ke.parenR, !1, this.options.ecmaVersion >= 8), this.checkYieldAwaitInDefaultParams();
};
or.parseClass = function(e, t) {
  this.next();
  var r = this.strict;
  this.strict = !0, this.parseClassId(e, t), this.parseClassSuper(e);
  var i = this.enterClassBody(), n = this.startNode(), s = !1;
  for (n.body = [], this.expect(ke.braceL); this.type !== ke.braceR; ) {
    var a = this.parseClassElement(e.superClass !== null);
    a && (n.body.push(a), a.type === "MethodDefinition" && a.kind === "constructor" ? (s && this.raiseRecoverable(a.start, "Duplicate constructor in the same class"), s = !0) : a.key && a.key.type === "PrivateIdentifier" && J4t(i, a) && this.raiseRecoverable(a.key.start, "Identifier '#" + a.key.name + "' has already been declared"));
  }
  return this.strict = r, this.next(), e.body = this.finishNode(n, "ClassBody"), this.exitClassBody(), this.finishNode(e, t ? "ClassDeclaration" : "ClassExpression");
};
or.parseClassElement = function(e) {
  if (this.eat(ke.semi))
    return null;
  var t = this.options.ecmaVersion, r = this.startNode(), i = "", n = !1, s = !1, a = "method", o = !1;
  if (this.eatContextual("static")) {
    if (t >= 13 && this.eat(ke.braceL))
      return this.parseClassStaticBlock(r), r;
    this.isClassElementNameStart() || this.type === ke.star ? o = !0 : i = "static";
  }
  if (r.static = o, !i && t >= 8 && this.eatContextual("async") && ((this.isClassElementNameStart() || this.type === ke.star) && !this.canInsertSemicolon() ? s = !0 : i = "async"), !i && (t >= 9 || !s) && this.eat(ke.star) && (n = !0), !i && !s && !n) {
    var l = this.value;
    (this.eatContextual("get") || this.eatContextual("set")) && (this.isClassElementNameStart() ? a = l : i = l);
  }
  if (i ? (r.computed = !1, r.key = this.startNodeAt(this.lastTokStart, this.lastTokStartLoc), r.key.name = i, this.finishNode(r.key, "Identifier")) : this.parseClassElementName(r), t < 13 || this.type === ke.parenL || a !== "method" || n || s) {
    var u = !r.static && nA(r, "constructor"), c = u && e;
    u && a !== "method" && this.raise(r.key.start, "Constructor can't have get/set modifier"), r.kind = u ? "constructor" : a, this.parseClassMethod(r, n, s, c);
  } else
    this.parseClassField(r);
  return r;
};
or.isClassElementNameStart = function() {
  return this.type === ke.name || this.type === ke.privateId || this.type === ke.num || this.type === ke.string || this.type === ke.bracketL || this.type.keyword;
};
or.parseClassElementName = function(e) {
  this.type === ke.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);
};
or.parseClassMethod = function(e, t, r, i) {
  var n = e.key;
  e.kind === "constructor" ? (t && this.raise(n.start, "Constructor can't be a generator"), r && this.raise(n.start, "Constructor can't be an async method")) : e.static && nA(e, "prototype") && this.raise(n.start, "Classes may not have a static property named prototype");
  var s = e.value = this.parseMethod(t, r, i);
  return e.kind === "get" && s.params.length !== 0 && this.raiseRecoverable(s.start, "getter should have no params"), e.kind === "set" && s.params.length !== 1 && this.raiseRecoverable(s.start, "setter should have exactly one param"), e.kind === "set" && s.params[0].type === "RestElement" && this.raiseRecoverable(s.params[0].start, "Setter cannot use rest params"), this.finishNode(e, "MethodDefinition");
};
or.parseClassField = function(e) {
  if (nA(e, "constructor") ? this.raise(e.key.start, "Classes can't have a field named 'constructor'") : e.static && nA(e, "prototype") && this.raise(e.key.start, "Classes can't have a static field named 'prototype'"), this.eat(ke.eq)) {
    var t = this.currentThisScope(), r = t.inClassFieldInit;
    t.inClassFieldInit = !0, e.value = this.parseMaybeAssign(), t.inClassFieldInit = r;
  } else
    e.value = null;
  return this.semicolon(), this.finishNode(e, "PropertyDefinition");
};
or.parseClassStaticBlock = function(e) {
  e.body = [];
  var t = this.labels;
  for (this.labels = [], this.enterScope(TS | F7); this.type !== ke.braceR; ) {
    var r = this.parseStatement(null);
    e.body.push(r);
  }
  return this.next(), this.exitScope(), this.labels = t, this.finishNode(e, "StaticBlock");
};
or.parseClassId = function(e, t) {
  this.type === ke.name ? (e.id = this.parseIdent(), t && this.checkLValSimple(e.id, $f, !1)) : (t === !0 && this.unexpected(), e.id = null);
};
or.parseClassSuper = function(e) {
  e.superClass = this.eat(ke._extends) ? this.parseExprSubscripts(null, !1) : null;
};
or.enterClassBody = function() {
  var e = { declared: /* @__PURE__ */ Object.create(null), used: [] };
  return this.privateNameStack.push(e), e.declared;
};
or.exitClassBody = function() {
  var e = this.privateNameStack.pop(), t = e.declared, r = e.used;
  if (this.options.checkPrivateFields)
    for (var i = this.privateNameStack.length, n = i === 0 ? null : this.privateNameStack[i - 1], s = 0; s < r.length; ++s) {
      var a = r[s];
      vS(t, a.name) || (n ? n.used.push(a) : this.raiseRecoverable(a.start, "Private field '#" + a.name + "' must be declared in an enclosing class"));
    }
};
function J4t(e, t) {
  var r = t.key.name, i = e[r], n = "true";
  return t.type === "MethodDefinition" && (t.kind === "get" || t.kind === "set") && (n = (t.static ? "s" : "i") + t.kind), i === "iget" && n === "iset" || i === "iset" && n === "iget" || i === "sget" && n === "sset" || i === "sset" && n === "sget" ? (e[r] = "true", !1) : i ? !0 : (e[r] = n, !1);
}
function nA(e, t) {
  var r = e.computed, i = e.key;
  return !r && (i.type === "Identifier" && i.name === t || i.type === "Literal" && i.value === t);
}
or.parseExportAllDeclaration = function(e, t) {
  return this.options.ecmaVersion >= 11 && (this.eatContextual("as") ? (e.exported = this.parseModuleExportName(), this.checkExport(t, e.exported, this.lastTokStart)) : e.exported = null), this.expectContextual("from"), this.type !== ke.string && this.unexpected(), e.source = this.parseExprAtom(), this.semicolon(), this.finishNode(e, "ExportAllDeclaration");
};
or.parseExport = function(e, t) {
  if (this.next(), this.eat(ke.star))
    return this.parseExportAllDeclaration(e, t);
  if (this.eat(ke._default))
    return this.checkExport(t, "default", this.lastTokStart), e.declaration = this.parseExportDefaultDeclaration(), this.finishNode(e, "ExportDefaultDeclaration");
  if (this.shouldParseExportStatement())
    e.declaration = this.parseExportDeclaration(e), e.declaration.type === "VariableDeclaration" ? this.checkVariableExport(t, e.declaration.declarations) : this.checkExport(t, e.declaration.id, e.declaration.id.start), e.specifiers = [], e.source = null;
  else {
    if (e.declaration = null, e.specifiers = this.parseExportSpecifiers(t), this.eatContextual("from"))
      this.type !== ke.string && this.unexpected(), e.source = this.parseExprAtom();
    else {
      for (var r = 0, i = e.specifiers; r < i.length; r += 1) {
        var n = i[r];
        this.checkUnreserved(n.local), this.checkLocalExport(n.local), n.local.type === "Literal" && this.raise(n.local.start, "A string literal cannot be used as an exported binding without `from`.");
      }
      e.source = null;
    }
    this.semicolon();
  }
  return this.finishNode(e, "ExportNamedDeclaration");
};
or.parseExportDeclaration = function(e) {
  return this.parseStatement(null);
};
or.parseExportDefaultDeclaration = function() {
  var e;
  if (this.type === ke._function || (e = this.isAsyncFunction())) {
    var t = this.startNode();
    return this.next(), e && this.next(), this.parseFunction(t, av | lbe, !1, e);
  } else if (this.type === ke._class) {
    var r = this.startNode();
    return this.parseClass(r, "nullableID");
  } else {
    var i = this.parseMaybeAssign();
    return this.semicolon(), i;
  }
};
or.checkExport = function(e, t, r) {
  e && (typeof t != "string" && (t = t.type === "Identifier" ? t.name : t.value), vS(e, t) && this.raiseRecoverable(r, "Duplicate export '" + t + "'"), e[t] = !0);
};
or.checkPatternExport = function(e, t) {
  var r = t.type;
  if (r === "Identifier")
    this.checkExport(e, t, t.start);
  else if (r === "ObjectPattern")
    for (var i = 0, n = t.properties; i < n.length; i += 1) {
      var s = n[i];
      this.checkPatternExport(e, s);
    }
  else if (r === "ArrayPattern")
    for (var a = 0, o = t.elements; a < o.length; a += 1) {
      var l = o[a];
      l && this.checkPatternExport(e, l);
    }
  else
    r === "Property" ? this.checkPatternExport(e, t.value) : r === "AssignmentPattern" ? this.checkPatternExport(e, t.left) : r === "RestElement" ? this.checkPatternExport(e, t.argument) : r === "ParenthesizedExpression" && this.checkPatternExport(e, t.expression);
};
or.checkVariableExport = function(e, t) {
  if (e)
    for (var r = 0, i = t; r < i.length; r += 1) {
      var n = i[r];
      this.checkPatternExport(e, n.id);
    }
};
or.shouldParseExportStatement = function() {
  return this.type.keyword === "var" || this.type.keyword === "const" || this.type.keyword === "class" || this.type.keyword === "function" || this.isLet() || this.isAsyncFunction();
};
or.parseExportSpecifier = function(e) {
  var t = this.startNode();
  return t.local = this.parseModuleExportName(), t.exported = this.eatContextual("as") ? this.parseModuleExportName() : t.local, this.checkExport(
    e,
    t.exported,
    t.exported.start
  ), this.finishNode(t, "ExportSpecifier");
};
or.parseExportSpecifiers = function(e) {
  var t = [], r = !0;
  for (this.expect(ke.braceL); !this.eat(ke.braceR); ) {
    if (r)
      r = !1;
    else if (this.expect(ke.comma), this.afterTrailingComma(ke.braceR))
      break;
    t.push(this.parseExportSpecifier(e));
  }
  return t;
};
or.parseImport = function(e) {
  return this.next(), this.type === ke.string ? (e.specifiers = X4t, e.source = this.parseExprAtom()) : (e.specifiers = this.parseImportSpecifiers(), this.expectContextual("from"), e.source = this.type === ke.string ? this.parseExprAtom() : this.unexpected()), this.semicolon(), this.finishNode(e, "ImportDeclaration");
};
or.parseImportSpecifier = function() {
  var e = this.startNode();
  return e.imported = this.parseModuleExportName(), this.eatContextual("as") ? e.local = this.parseIdent() : (this.checkUnreserved(e.imported), e.local = e.imported), this.checkLValSimple(e.local, $f), this.finishNode(e, "ImportSpecifier");
};
or.parseImportDefaultSpecifier = function() {
  var e = this.startNode();
  return e.local = this.parseIdent(), this.checkLValSimple(e.local, $f), this.finishNode(e, "ImportDefaultSpecifier");
};
or.parseImportNamespaceSpecifier = function() {
  var e = this.startNode();
  return this.next(), this.expectContextual("as"), e.local = this.parseIdent(), this.checkLValSimple(e.local, $f), this.finishNode(e, "ImportNamespaceSpecifier");
};
or.parseImportSpecifiers = function() {
  var e = [], t = !0;
  if (this.type === ke.name && (e.push(this.parseImportDefaultSpecifier()), !this.eat(ke.comma)))
    return e;
  if (this.type === ke.star)
    return e.push(this.parseImportNamespaceSpecifier()), e;
  for (this.expect(ke.braceL); !this.eat(ke.braceR); ) {
    if (t)
      t = !1;
    else if (this.expect(ke.comma), this.afterTrailingComma(ke.braceR))
      break;
    e.push(this.parseImportSpecifier());
  }
  return e;
};
or.parseModuleExportName = function() {
  if (this.options.ecmaVersion >= 13 && this.type === ke.string) {
    var e = this.parseLiteral(this.value);
    return H4t.test(e.value) && this.raise(e.start, "An export name cannot include a lone surrogate."), e;
  }
  return this.parseIdent(!0);
};
or.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);
};
or.isDirectiveCandidate = function(e) {
  return this.options.ecmaVersion >= 5 && e.type === "ExpressionStatement" && e.expression.type === "Literal" && typeof e.expression.value == "string" && // Reject parenthesized strings.
  (this.input[e.start] === '"' || this.input[e.start] === "'");
};
var Jl = os.prototype;
Jl.toAssignable = function(e, t, r) {
  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", r && this.checkPatternErrors(r, !0);
        for (var i = 0, n = e.properties; i < n.length; i += 1) {
          var s = n[i];
          this.toAssignable(s, t), s.type === "RestElement" && (s.argument.type === "ArrayPattern" || s.argument.type === "ObjectPattern") && this.raise(s.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", r && this.checkPatternErrors(r, !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, r);
        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
    r && this.checkPatternErrors(r, !0);
  return e;
};
Jl.toAssignableList = function(e, t) {
  for (var r = e.length, i = 0; i < r; i++) {
    var n = e[i];
    n && this.toAssignable(n, t);
  }
  if (r) {
    var s = e[r - 1];
    this.options.ecmaVersion === 6 && t && s && s.type === "RestElement" && s.argument.type !== "Identifier" && this.unexpected(s.argument.start);
  }
  return e;
};
Jl.parseSpread = function(e) {
  var t = this.startNode();
  return this.next(), t.argument = this.parseMaybeAssign(!1, e), this.finishNode(t, "SpreadElement");
};
Jl.parseRestBinding = function() {
  var e = this.startNode();
  return this.next(), this.options.ecmaVersion === 6 && this.type !== ke.name && this.unexpected(), e.argument = this.parseBindingAtom(), this.finishNode(e, "RestElement");
};
Jl.parseBindingAtom = function() {
  if (this.options.ecmaVersion >= 6)
    switch (this.type) {
      case ke.bracketL:
        var e = this.startNode();
        return this.next(), e.elements = this.parseBindingList(ke.bracketR, !0, !0), this.finishNode(e, "ArrayPattern");
      case ke.braceL:
        return this.parseObj(!0);
    }
  return this.parseIdent();
};
Jl.parseBindingList = function(e, t, r, i) {
  for (var n = [], s = !0; !this.eat(e); )
    if (s ? s = !1 : this.expect(ke.comma), t && this.type === ke.comma)
      n.push(null);
    else {
      if (r && this.afterTrailingComma(e))
        break;
      if (this.type === ke.ellipsis) {
        var a = this.parseRestBinding();
        this.parseBindingListItem(a), n.push(a), this.type === ke.comma && this.raiseRecoverable(this.start, "Comma is not permitted after the rest element"), this.expect(e);
        break;
      } else
        n.push(this.parseAssignableListItem(i));
    }
  return n;
};
Jl.parseAssignableListItem = function(e) {
  var t = this.parseMaybeDefault(this.start, this.startLoc);
  return this.parseBindingListItem(t), t;
};
Jl.parseBindingListItem = function(e) {
  return e;
};
Jl.parseMaybeDefault = function(e, t, r) {
  if (r = r || this.parseBindingAtom(), this.options.ecmaVersion < 6 || !this.eat(ke.eq))
    return r;
  var i = this.startNodeAt(e, t);
  return i.left = r, i.right = this.parseMaybeAssign(), this.finishNode(i, "AssignmentPattern");
};
Jl.checkLValSimple = function(e, t, r) {
  t === void 0 && (t = iA);
  var i = t !== iA;
  switch (e.type) {
    case "Identifier":
      this.strict && this.reservedWordsStrictBind.test(e.name) && this.raiseRecoverable(e.start, (i ? "Binding " : "Assigning to ") + e.name + " in strict mode"), i && (t === $f && e.name === "let" && this.raiseRecoverable(e.start, "let is disallowed as a lexically bound name"), r && (vS(r, e.name) && this.raiseRecoverable(e.start, "Argument name clash"), r[e.name] = !0), t !== obe && 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":
      i && this.raiseRecoverable(e.start, "Binding member expression");
      break;
    case "ParenthesizedExpression":
      return i && this.raiseRecoverable(e.start, "Binding parenthesized expression"), this.checkLValSimple(e.expression, t, r);
    default:
      this.raise(e.start, (i ? "Binding" : "Assigning to") + " rvalue");
  }
};
Jl.checkLValPattern = function(e, t, r) {
  switch (t === void 0 && (t = iA), e.type) {
    case "ObjectPattern":
      for (var i = 0, n = e.properties; i < n.length; i += 1) {
        var s = n[i];
        this.checkLValInnerPattern(s, t, r);
      }
      break;
    case "ArrayPattern":
      for (var a = 0, o = e.elements; a < o.length; a += 1) {
        var l = o[a];
        l && this.checkLValInnerPattern(l, t, r);
      }
      break;
    default:
      this.checkLValSimple(e, t, r);
  }
};
Jl.checkLValInnerPattern = function(e, t, r) {
  switch (t === void 0 && (t = iA), e.type) {
    case "Property":
      this.checkLValInnerPattern(e.value, t, r);
      break;
    case "AssignmentPattern":
      this.checkLValPattern(e.left, t, r);
      break;
    case "RestElement":
      this.checkLValPattern(e.argument, t, r);
      break;
    default:
      this.checkLValPattern(e, t, r);
  }
};
var Pc = function(t, r, i, n, s) {
  this.token = t, this.isExpr = !!r, this.preserveSpace = !!i, this.override = n, this.generator = !!s;
}, hn = {
  b_stat: new Pc("{", !1),
  b_expr: new Pc("{", !0),
  b_tmpl: new Pc("${", !1),
  p_stat: new Pc("(", !1),
  p_expr: new Pc("(", !0),
  q_tmpl: new Pc("`", !0, !0, function(e) {
    return e.tryReadTemplateToken();
  }),
  f_stat: new Pc("function", !1),
  f_expr: new Pc("function", !0),
  f_expr_gen: new Pc("function", !0, !1, null, !0),
  f_gen: new Pc("function", !1, !1, null, !0)
}, $g = os.prototype;
$g.initialContext = function() {
  return [hn.b_stat];
};
$g.curContext = function() {
  return this.context[this.context.length - 1];
};
$g.braceIsBlock = function(e) {
  var t = this.curContext();
  return t === hn.f_expr || t === hn.f_stat ? !0 : e === ke.colon && (t === hn.b_stat || t === hn.b_expr) ? !t.isExpr : e === ke._return || e === ke.name && this.exprAllowed ? Xl.test(this.input.slice(this.lastTokEnd, this.start)) : e === ke._else || e === ke.semi || e === ke.eof || e === ke.parenR || e === ke.arrow ? !0 : e === ke.braceL ? t === hn.b_stat : e === ke._var || e === ke._const || e === ke.name ? !1 : !this.exprAllowed;
};
$g.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;
};
$g.updateContext = function(e) {
  var t, r = this.type;
  r.keyword && e === ke.dot ? this.exprAllowed = !1 : (t = r.updateContext) ? t.call(this, e) : this.exprAllowed = r.beforeExpr;
};
$g.overrideContext = function(e) {
  this.curContext() !== e && (this.context[this.context.length - 1] = e);
};
ke.parenR.updateContext = ke.braceR.updateContext = function() {
  if (this.context.length === 1) {
    this.exprAllowed = !0;
    return;
  }
  var e = this.context.pop();
  e === hn.b_stat && this.curContext().token === "function" && (e = this.context.pop()), this.exprAllowed = !e.isExpr;
};
ke.braceL.updateContext = function(e) {
  this.context.push(this.braceIsBlock(e) ? hn.b_stat : hn.b_expr), this.exprAllowed = !0;
};
ke.dollarBraceL.updateContext = function() {
  this.context.push(hn.b_tmpl), this.exprAllowed = !0;
};
ke.parenL.updateContext = function(e) {
  var t = e === ke._if || e === ke._for || e === ke._with || e === ke._while;
  this.context.push(t ? hn.p_stat : hn.p_expr), this.exprAllowed = !0;
};
ke.incDec.updateContext = function() {
};
ke._function.updateContext = ke._class.updateContext = function(e) {
  e.beforeExpr && e !== ke._else && !(e === ke.semi && this.curContext() !== hn.p_stat) && !(e === ke._return && Xl.test(this.input.slice(this.lastTokEnd, this.start))) && !((e === ke.colon || e === ke.braceL) && this.curContext() === hn.b_stat) ? this.context.push(hn.f_expr) : this.context.push(hn.f_stat), this.exprAllowed = !1;
};
ke.backQuote.updateContext = function() {
  this.curContext() === hn.q_tmpl ? this.context.pop() : this.context.push(hn.q_tmpl), this.exprAllowed = !1;
};
ke.star.updateContext = function(e) {
  if (e === ke._function) {
    var t = this.context.length - 1;
    this.context[t] === hn.f_expr ? this.context[t] = hn.f_expr_gen : this.context[t] = hn.f_gen;
  }
  this.exprAllowed = !0;
};
ke.name.updateContext = function(e) {
  var t = !1;
  this.options.ecmaVersion >= 6 && e !== ke.dot && (this.value === "of" && !this.exprAllowed || this.value === "yield" && this.inGeneratorContext()) && (t = !0), this.exprAllowed = t;
};
var wr = os.prototype;
wr.checkPropClash = function(e, t, r) {
  if (!(this.options.ecmaVersion >= 9 && e.type === "SpreadElement") && !(this.options.ecmaVersion >= 6 && (e.computed || e.method || e.shorthand))) {
    var i = e.key, n;
    switch (i.type) {
      case "Identifier":
        n = i.name;
        break;
      case "Literal":
        n = String(i.value);
        break;
      default:
        return;
    }
    var s = e.kind;
    if (this.options.ecmaVersion >= 6) {
      n === "__proto__" && s === "init" && (t.proto && (r ? r.doubleProto < 0 && (r.doubleProto = i.start) : this.raiseRecoverable(i.start, "Redefinition of __proto__ property")), t.proto = !0);
      return;
    }
    n = "$" + n;
    var a = t[n];
    if (a) {
      var o;
      s === "init" ? o = this.strict && a.init || a.get || a.set : o = a.init || a[s], o && this.raiseRecoverable(i.start, "Redefinition of property");
    } else
      a = t[n] = {
        init: !1,
        get: !1,
        set: !1
      };
    a[s] = !0;
  }
};
wr.parseExpression = function(e, t) {
  var r = this.start, i = this.startLoc, n = this.parseMaybeAssign(e, t);
  if (this.type === ke.comma) {
    var s = this.startNodeAt(r, i);
    for (s.expressions = [n]; this.eat(ke.comma); )
      s.expressions.push(this.parseMaybeAssign(e, t));
    return this.finishNode(s, "SequenceExpression");
  }
  return n;
};
wr.parseMaybeAssign = function(e, t, r) {
  if (this.isContextual("yield")) {
    if (this.inGenerator)
      return this.parseYield(e);
    this.exprAllowed = !1;
  }
  var i = !1, n = -1, s = -1, a = -1;
  t ? (n = t.parenthesizedAssign, s = t.trailingComma, a = t.doubleProto, t.parenthesizedAssign = t.trailingComma = -1) : (t = new BI(), i = !0);
  var o = this.start, l = this.startLoc;
  (this.type === ke.parenL || this.type === ke.name) && (this.potentialArrowAt = this.start, this.potentialArrowInForAwait = e === "await");
  var u = this.parseMaybeConditional(e, t);
  if (r && (u = r.call(this, u, o, l)), this.type.isAssign) {
    var c = this.startNodeAt(o, l);
    return c.operator = this.value, this.type === ke.eq && (u = this.toAssignable(u, !1, t)), i || (t.parenthesizedAssign = t.trailingComma = t.doubleProto = -1), t.shorthandAssign >= u.start && (t.shorthandAssign = -1), this.type === ke.eq ? this.checkLValPattern(u) : this.checkLValSimple(u), c.left = u, this.next(), c.right = this.parseMaybeAssign(e), a > -1 && (t.doubleProto = a), this.finishNode(c, "AssignmentExpression");
  } else
    i && this.checkExpressionErrors(t, !0);
  return n > -1 && (t.parenthesizedAssign = n), s > -1 && (t.trailingComma = s), u;
};
wr.parseMaybeConditional = function(e, t) {
  var r = this.start, i = this.startLoc, n = this.parseExprOps(e, t);
  if (this.checkExpressionErrors(t))
    return n;
  if (this.eat(ke.question)) {
    var s = this.startNodeAt(r, i);
    return s.test = n, s.consequent = this.parseMaybeAssign(), this.expect(ke.colon), s.alternate = this.parseMaybeAssign(e), this.finishNode(s, "ConditionalExpression");
  }
  return n;
};
wr.parseExprOps = function(e, t) {
  var r = this.start, i = this.startLoc, n = this.parseMaybeUnary(t, !1, !1, e);
  return this.checkExpressionErrors(t) || n.start === r && n.type === "ArrowFunctionExpression" ? n : this.parseExprOp(n, r, i, -1, e);
};
wr.parseExprOp = function(e, t, r, i, n) {
  var s = this.type.binop;
  if (s != null && (!n || this.type !== ke._in) && s > i) {
    var a = this.type === ke.logicalOR || this.type === ke.logicalAND, o = this.type === ke.coalesce;
    o && (s = ke.logicalAND.binop);
    var l = this.value;
    this.next();
    var u = this.start, c = this.startLoc, f = this.parseExprOp(this.parseMaybeUnary(null, !1, !1, n), u, c, s, n), h = this.buildBinary(t, r, e, f, l, a || o);
    return (a && this.type === ke.coalesce || o && (this.type === ke.logicalOR || this.type === ke.logicalAND)) && this.raiseRecoverable(this.start, "Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"), this.parseExprOp(h, t, r, i, n);
  }
  return e;
};
wr.buildBinary = function(e, t, r, i, n, s) {
  i.type === "PrivateIdentifier" && this.raise(i.start, "Private identifier can only be left side of binary expression");
  var a = this.startNodeAt(e, t);
  return a.left = r, a.operator = n, a.right = i, this.finishNode(a, s ? "LogicalExpression" : "BinaryExpression");
};
wr.parseMaybeUnary = function(e, t, r, i) {
  var n = this.start, s = this.startLoc, a;
  if (this.isContextual("await") && this.canAwait)
    a = this.parseAwait(i), t = !0;
  else if (this.type.prefix) {
    var o = this.startNode(), l = this.type === ke.incDec;
    o.operator = this.value, o.prefix = !0, this.next(), o.argument = this.parseMaybeUnary(null, !0, l, i), this.checkExpressionErrors(e, !0), l ? this.checkLValSimple(o.argument) : this.strict && o.operator === "delete" && o.argument.type === "Identifier" ? this.raiseRecoverable(o.start, "Deleting local variable in strict mode") : o.operator === "delete" && ube(o.argument) ? this.raiseRecoverable(o.start, "Private fields can not be deleted") : t = !0, a = this.finishNode(o, l ? "UpdateExpression" : "UnaryExpression");
  } else if (!t && this.type === ke.privateId)
    (i || this.privateNameStack.length === 0) && this.options.checkPrivateFields && this.unexpected(), a = this.parsePrivateIdent(), this.type !== ke._in && this.unexpected();
  else {
    if (a = this.parseExprSubscripts(e, i), this.checkExpressionErrors(e))
      return a;
    for (; this.type.postfix && !this.canInsertSemicolon(); ) {
      var u = this.startNodeAt(n, s);
      u.operator = this.value, u.prefix = !1, u.argument = a, this.checkLValSimple(a), this.next(), a = this.finishNode(u, "UpdateExpression");
    }
  }
  if (!r && this.eat(ke.starstar))
    if (t)
      this.unexpected(this.lastTokStart);
    else
      return this.buildBinary(n, s, a, this.parseMaybeUnary(null, !1, !1, i), "**", !1);
  else
    return a;
};
function ube(e) {
  return e.type === "MemberExpression" && e.property.type === "PrivateIdentifier" || e.type === "ChainExpression" && ube(e.expression);
}
wr.parseExprSubscripts = function(e, t) {
  var r = this.start, i = this.startLoc, n = this.parseExprAtom(e, t);
  if (n.type === "ArrowFunctionExpression" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== ")")
    return n;
  var s = this.parseSubscripts(n, r, i, !1, t);
  return e && s.type === "MemberExpression" && (e.parenthesizedAssign >= s.start && (e.parenthesizedAssign = -1), e.parenthesizedBind >= s.start && (e.parenthesizedBind = -1), e.trailingComma >= s.start && (e.trailingComma = -1)), s;
};
wr.parseSubscripts = function(e, t, r, i, n) {
  for (var s = 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 o = this.parseSubscript(e, t, r, i, s, a, n);
    if (o.optional && (a = !0), o === e || o.type === "ArrowFunctionExpression") {
      if (a) {
        var l = this.startNodeAt(t, r);
        l.expression = o, o = this.finishNode(l, "ChainExpression");
      }
      return o;
    }
    e = o;
  }
};
wr.shouldParseAsyncArrow = function() {
  return !this.canInsertSemicolon() && this.eat(ke.arrow);
};
wr.parseSubscriptAsyncArrow = function(e, t, r, i) {
  return this.parseArrowExpression(this.startNodeAt(e, t), r, !0, i);
};
wr.parseSubscript = function(e, t, r, i, n, s, a) {
  var o = this.options.ecmaVersion >= 11, l = o && this.eat(ke.questionDot);
  i && l && this.raise(this.lastTokStart, "Optional chaining cannot appear in the callee of new expressions");
  var u = this.eat(ke.bracketL);
  if (u || l && this.type !== ke.parenL && this.type !== ke.backQuote || this.eat(ke.dot)) {
    var c = this.startNodeAt(t, r);
    c.object = e, u ? (c.property = this.parseExpression(), this.expect(ke.bracketR)) : this.type === ke.privateId && e.type !== "Super" ? c.property = this.parsePrivateIdent() : c.property = this.parseIdent(this.options.allowReserved !== "never"), c.computed = !!u, o && (c.optional = l), e = this.finishNode(c, "MemberExpression");
  } else if (!i && this.eat(ke.parenL)) {
    var f = new BI(), h = this.yieldPos, m = this.awaitPos, g = this.awaitIdentPos;
    this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0;
    var y = this.parseExprList(ke.parenR, this.options.ecmaVersion >= 8, !1, f);
    if (n && !l && this.shouldParseAsyncArrow())
      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 = h, this.awaitPos = m, this.awaitIdentPos = g, this.parseSubscriptAsyncArrow(t, r, y, a);
    this.checkExpressionErrors(f, !0), this.yieldPos = h || this.yieldPos, this.awaitPos = m || this.awaitPos, this.awaitIdentPos = g || this.awaitIdentPos;
    var v = this.startNodeAt(t, r);
    v.callee = e, v.arguments = y, o && (v.optional = l), e = this.finishNode(v, "CallExpression");
  } else if (this.type === ke.backQuote) {
    (l || s) && this.raise(this.start, "Optional chaining cannot appear in the tag of tagged template expressions");
    var T = this.startNodeAt(t, r);
    T.tag = e, T.quasi = this.parseTemplate({ isTagged: !0 }), e = this.finishNode(T, "TaggedTemplateExpression");
  }
  return e;
};
wr.parseExprAtom = function(e, t, r) {
  this.type === ke.slash && this.readRegexp();
  var i, n = this.potentialArrowAt === this.start;
  switch (this.type) {
    case ke._super:
      return this.allowSuper || this.raise(this.start, "'super' keyword outside a method"), i = this.startNode(), this.next(), this.type === ke.parenL && !this.allowDirectSuper && this.raise(i.start, "super() call outside constructor of a subclass"), this.type !== ke.dot && this.type !== ke.bracketL && this.type !== ke.parenL && this.unexpected(), this.finishNode(i, "Super");
    case ke._this:
      return i = this.startNode(), this.next(), this.finishNode(i, "ThisExpression");
    case ke.name:
      var s = this.start, a = this.startLoc, o = this.containsEsc, l = this.parseIdent(!1);
      if (this.options.ecmaVersion >= 8 && !o && l.name === "async" && !this.canInsertSemicolon() && this.eat(ke._function))
        return this.overrideContext(hn.f_expr), this.parseFunction(this.startNodeAt(s, a), 0, !1, !0, t);
      if (n && !this.canInsertSemicolon()) {
        if (this.eat(ke.arrow))
          return this.parseArrowExpression(this.startNodeAt(s, a), [l], !1, t);
        if (this.options.ecmaVersion >= 8 && l.name === "async" && this.type === ke.name && !o && (!this.potentialArrowInForAwait || this.value !== "of" || this.containsEsc))
          return l = this.parseIdent(!1), (this.canInsertSemicolon() || !this.eat(ke.arrow)) && this.unexpected(), this.parseArrowExpression(this.startNodeAt(s, a), [l], !0, t);
      }
      return l;
    case ke.regexp:
      var u = this.value;
      return i = this.parseLiteral(u.value), i.regex = { pattern: u.pattern, flags: u.flags }, i;
    case ke.num:
    case ke.string:
      return this.parseLiteral(this.value);
    case ke._null:
    case ke._true:
    case ke._false:
      return i = this.startNode(), i.value = this.type === ke._null ? null : this.type === ke._true, i.raw = this.type.keyword, this.next(), this.finishNode(i, "Literal");
    case ke.parenL:
      var c = this.start, f = this.parseParenAndDistinguishExpression(n, t);
      return e && (e.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(f) && (e.parenthesizedAssign = c), e.parenthesizedBind < 0 && (e.parenthesizedBind = c)), f;
    case ke.bracketL:
      return i = this.startNode(), this.next(), i.elements = this.parseExprList(ke.bracketR, !0, !0, e), this.finishNode(i, "ArrayExpression");
    case ke.braceL:
      return this.overrideContext(hn.b_expr), this.parseObj(!1, e);
    case ke._function:
      return i = this.startNode(), this.next(), this.parseFunction(i, 0);
    case ke._class:
      return this.parseClass(this.startNode(), !1);
    case ke._new:
      return this.parseNew();
    case ke.backQuote:
      return this.parseTemplate();
    case ke._import:
      return this.options.ecmaVersion >= 11 ? this.parseExprImport(r) : this.unexpected();
    default:
      return this.parseExprAtomDefault();
  }
};
wr.parseExprAtomDefault = function() {
  this.unexpected();
};
wr.parseExprImport = function(e) {
  var t = this.startNode();
  this.containsEsc && this.raiseRecoverable(this.start, "Escape sequence in keyword import");
  var r = this.parseIdent(!0);
  if (this.type === ke.parenL && !e)
    return this.parseDynamicImport(t);
  if (this.type === ke.dot)
    return t.meta = r, this.parseImportMeta(t);
  this.unexpected();
};
wr.parseDynamicImport = function(e) {
  if (this.next(), e.source = this.parseMaybeAssign(), !this.eat(ke.parenR)) {
    var t = this.start;
    this.eat(ke.comma) && this.eat(ke.parenR) ? this.raiseRecoverable(t, "Trailing comma is not allowed in import()") : this.unexpected(t);
  }
  return this.finishNode(e, "ImportExpression");
};
wr.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");
};
wr.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");
};
wr.parseParenExpression = function() {
  this.expect(ke.parenL);
  var e = this.parseExpression();
  return this.expect(ke.parenR), e;
};
wr.shouldParseArrow = function(e) {
  return !this.canInsertSemicolon();
};
wr.parseParenAndDistinguishExpression = function(e, t) {
  var r = this.start, i = this.startLoc, n, s = this.options.ecmaVersion >= 8;
  if (this.options.ecmaVersion >= 6) {
    this.next();
    var a = this.start, o = this.startLoc, l = [], u = !0, c = !1, f = new BI(), h = this.yieldPos, m = this.awaitPos, g;
    for (this.yieldPos = 0, this.awaitPos = 0; this.type !== ke.parenR; )
      if (u ? u = !1 : this.expect(ke.comma), s && this.afterTrailingComma(ke.parenR, !0)) {
        c = !0;
        break;
      } else if (this.type === ke.ellipsis) {
        g = this.start, l.push(this.parseParenItem(this.parseRestBinding())), this.type === ke.comma && this.raiseRecoverable(
          this.start,
          "Comma is not permitted after the rest element"
        );
        break;
      } else
        l.push(this.parseMaybeAssign(!1, f, this.parseParenItem));
    var y = this.lastTokEnd, v = this.lastTokEndLoc;
    if (this.expect(ke.parenR), e && this.shouldParseArrow(l) && this.eat(ke.arrow))
      return this.checkPatternErrors(f, !1), this.checkYieldAwaitInDefaultParams(), this.yieldPos = h, this.awaitPos = m, this.parseParenArrowList(r, i, l, t);
    (!l.length || c) && this.unexpected(this.lastTokStart), g && this.unexpected(g), this.checkExpressionErrors(f, !0), this.yieldPos = h || this.yieldPos, this.awaitPos = m || this.awaitPos, l.length > 1 ? (n = this.startNodeAt(a, o), n.expressions = l, this.finishNodeAt(n, "SequenceExpression", y, v)) : n = l[0];
  } else
    n = this.parseParenExpression();
  if (this.options.preserveParens) {
    var T = this.startNodeAt(r, i);
    return T.expression = n, this.finishNode(T, "ParenthesizedExpression");
  } else
    return n;
};
wr.parseParenItem = function(e) {
  return e;
};
wr.parseParenArrowList = function(e, t, r, i) {
  return this.parseArrowExpression(this.startNodeAt(e, t), r, !1, i);
};
var Q4t = [];
wr.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(ke.dot)) {
    e.meta = t;
    var r = 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'"), r && 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 i = this.start, n = this.startLoc;
  return e.callee = this.parseSubscripts(this.parseExprAtom(null, !1, !0), i, n, !0, !1), this.eat(ke.parenL) ? e.arguments = this.parseExprList(ke.parenR, this.options.ecmaVersion >= 8, !1) : e.arguments = Q4t, this.finishNode(e, "NewExpression");
};
wr.parseTemplateElement = function(e) {
  var t = e.isTagged, r = this.startNode();
  return this.type === ke.invalidTemplate ? (t || this.raiseRecoverable(this.start, "Bad escape sequence in untagged template literal"), r.value = {
    raw: this.value,
    cooked: null
  }) : r.value = {
    raw: this.input.slice(this.start, this.end).replace(/\r\n?/g, "\n"),
    cooked: this.value
  }, this.next(), r.tail = this.type === ke.backQuote, this.finishNode(r, "TemplateElement");
};
wr.parseTemplate = function(e) {
  e === void 0 && (e = {});
  var t = e.isTagged;
  t === void 0 && (t = !1);
  var r = this.startNode();
  this.next(), r.expressions = [];
  var i = this.parseTemplateElement({ isTagged: t });
  for (r.quasis = [i]; !i.tail; )
    this.type === ke.eof && this.raise(this.pos, "Unterminated template literal"), this.expect(ke.dollarBraceL), r.expressions.push(this.parseExpression()), this.expect(ke.braceR), r.quasis.push(i = this.parseTemplateElement({ isTagged: t }));
  return this.next(), this.finishNode(r, "TemplateLiteral");
};
wr.isAsyncProp = function(e) {
  return !e.computed && e.key.type === "Identifier" && e.key.name === "async" && (this.type === ke.name || this.type === ke.num || this.type === ke.string || this.type === ke.bracketL || this.type.keyword || this.options.ecmaVersion >= 9 && this.type === ke.star) && !Xl.test(this.input.slice(this.lastTokEnd, this.start));
};
wr.parseObj = function(e, t) {
  var r = this.startNode(), i = !0, n = {};
  for (r.properties = [], this.next(); !this.eat(ke.braceR); ) {
    if (i)
      i = !1;
    else if (this.expect(ke.comma), this.options.ecmaVersion >= 5 && this.afterTrailingComma(ke.braceR))
      break;
    var s = this.parseProperty(e, t);
    e || this.checkPropClash(s, n, t), r.properties.push(s);
  }
  return this.finishNode(r, e ? "ObjectPattern" : "ObjectExpression");
};
wr.parseProperty = function(e, t) {
  var r = this.startNode(), i, n, s, a;
  if (this.options.ecmaVersion >= 9 && this.eat(ke.ellipsis))
    return e ? (r.argument = this.parseIdent(!1), this.type === ke.comma && this.raiseRecoverable(this.start, "Comma is not permitted after the rest element"), this.finishNode(r, "RestElement")) : (r.argument = this.parseMaybeAssign(!1, t), this.type === ke.comma && t && t.trailingComma < 0 && (t.trailingComma = this.start), this.finishNode(r, "SpreadElement"));
  this.options.ecmaVersion >= 6 && (r.method = !1, r.shorthand = !1, (e || t) && (s = this.start, a = this.startLoc), e || (i = this.eat(ke.star)));
  var o = this.containsEsc;
  return this.parsePropertyName(r), !e && !o && this.options.ecmaVersion >= 8 && !i && this.isAsyncProp(r) ? (n = !0, i = this.options.ecmaVersion >= 9 && this.eat(ke.star), this.parsePropertyName(r)) : n = !1, this.parsePropertyValue(r, e, i, n, s, a, t, o), this.finishNode(r, "Property");
};
wr.parseGetterSetter = function(e) {
  e.kind = e.key.name, this.parsePropertyName(e), e.value = this.parseMethod(!1);
  var t = e.kind === "get" ? 0 : 1;
  if (e.value.params.length !== t) {
    var r = e.value.start;
    e.kind === "get" ? this.raiseRecoverable(r, "getter should have no params") : this.raiseRecoverable(r, "setter should have exactly one param");
  } else
    e.kind === "set" && e.value.params[0].type === "RestElement" && this.raiseRecoverable(e.value.params[0].start, "Setter cannot use rest params");
};
wr.parsePropertyValue = function(e, t, r, i, n, s, a, o) {
  (r || i) && this.type === ke.colon && this.unexpected(), this.eat(ke.colon) ? (e.value = t ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(!1, a), e.kind = "init") : this.options.ecmaVersion >= 6 && this.type === ke.parenL ? (t && this.unexpected(), e.kind = "init", e.method = !0, e.value = this.parseMethod(r, i)) : !t && !o && this.options.ecmaVersion >= 5 && !e.computed && e.key.type === "Identifier" && (e.key.name === "get" || e.key.name === "set") && this.type !== ke.comma && this.type !== ke.braceR && this.type !== ke.eq ? ((r || i) && this.unexpected(), this.parseGetterSetter(e)) : this.options.ecmaVersion >= 6 && !e.computed && e.key.type === "Identifier" ? ((r || i) && this.unexpected(), this.checkUnreserved(e.key), e.key.name === "await" && !this.awaitIdentPos && (this.awaitIdentPos = n), e.kind = "init", t ? e.value = this.parseMaybeDefault(n, s, this.copyNode(e.key)) : this.type === ke.eq && a ? (a.shorthandAssign < 0 && (a.shorthandAssign = this.start), e.value = this.parseMaybeDefault(n, s, this.copyNode(e.key))) : e.value = this.copyNode(e.key), e.shorthand = !0) : this.unexpected();
};
wr.parsePropertyName = function(e) {
  if (this.options.ecmaVersion >= 6) {
    if (this.eat(ke.bracketL))
      return e.computed = !0, e.key = this.parseMaybeAssign(), this.expect(ke.bracketR), e.key;
    e.computed = !1;
  }
  return e.key = this.type === ke.num || this.type === ke.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never");
};
wr.initFunction = function(e) {
  e.id = null, this.options.ecmaVersion >= 6 && (e.generator = e.expression = !1), this.options.ecmaVersion >= 8 && (e.async = !1);
};
wr.parseMethod = function(e, t, r) {
  var i = this.startNode(), n = this.yieldPos, s = this.awaitPos, a = this.awaitIdentPos;
  return this.initFunction(i), this.options.ecmaVersion >= 6 && (i.generator = e), this.options.ecmaVersion >= 8 && (i.async = !!t), this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0, this.enterScope($7(t, i.generator) | F7 | (r ? nbe : 0)), this.expect(ke.parenL), i.params = this.parseBindingList(ke.parenR, !1, this.options.ecmaVersion >= 8), this.checkYieldAwaitInDefaultParams(), this.parseFunctionBody(i, !1, !0, !1), this.yieldPos = n, this.awaitPos = s, this.awaitIdentPos = a, this.finishNode(i, "FunctionExpression");
};
wr.parseArrowExpression = function(e, t, r, i) {
  var n = this.yieldPos, s = this.awaitPos, a = this.awaitIdentPos;
  return this.enterScope($7(r, !1) | rbe), this.initFunction(e), this.options.ecmaVersion >= 8 && (e.async = !!r), this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0, e.params = this.toAssignableList(t, !0), this.parseFunctionBody(e, !0, !1, i), this.yieldPos = n, this.awaitPos = s, this.awaitIdentPos = a, this.finishNode(e, "ArrowFunctionExpression");
};
wr.parseFunctionBody = function(e, t, r, i) {
  var n = t && this.type !== ke.braceL, s = this.strict, a = !1;
  if (n)
    e.body = this.parseMaybeAssign(i), e.expression = !0, this.checkParams(e, !1);
  else {
    var o = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(e.params);
    (!s || o) && (a = this.strictDirective(this.end), a && o && this.raiseRecoverable(e.start, "Illegal 'use strict' directive in function with non-simple parameter list"));
    var l = this.labels;
    this.labels = [], a && (this.strict = !0), this.checkParams(e, !s && !a && !t && !r && this.isSimpleParamList(e.params)), this.strict && e.id && this.checkLValSimple(e.id, obe), e.body = this.parseBlock(!1, void 0, a && !s), e.expression = !1, this.adaptDirectivePrologue(e.body.body), this.labels = l;
  }
  this.exitScope();
};
wr.isSimpleParamList = function(e) {
  for (var t = 0, r = e; t < r.length; t += 1) {
    var i = r[t];
    if (i.type !== "Identifier")
      return !1;
  }
  return !0;
};
wr.checkParams = function(e, t) {
  for (var r = /* @__PURE__ */ Object.create(null), i = 0, n = e.params; i < n.length; i += 1) {
    var s = n[i];
    this.checkLValInnerPattern(s, U7, t ? null : r);
  }
};
wr.parseExprList = function(e, t, r, i) {
  for (var n = [], s = !0; !this.eat(e); ) {
    if (s)
      s = !1;
    else if (this.expect(ke.comma), t && this.afterTrailingComma(e))
      break;
    var a = void 0;
    r && this.type === ke.comma ? a = null : this.type === ke.ellipsis ? (a = this.parseSpread(i), i && this.type === ke.comma && i.trailingComma < 0 && (i.trailingComma = this.start)) : a = this.parseMaybeAssign(!1, i), n.push(a);
  }
  return n;
};
wr.checkUnreserved = function(e) {
  var t = e.start, r = e.end, i = e.name;
  if (this.inGenerator && i === "yield" && this.raiseRecoverable(t, "Cannot use 'yield' as identifier inside a generator"), this.inAsync && i === "await" && this.raiseRecoverable(t, "Cannot use 'await' as identifier inside an async function"), this.currentThisScope().inClassFieldInit && i === "arguments" && this.raiseRecoverable(t, "Cannot use 'arguments' in class field initializer"), this.inClassStaticBlock && (i === "arguments" || i === "await") && this.raise(t, "Cannot use " + i + " in class static initialization block"), this.keywords.test(i) && this.raise(t, "Unexpected keyword '" + i + "'"), !(this.options.ecmaVersion < 6 && this.input.slice(t, r).indexOf("\\") !== -1)) {
    var n = this.strict ? this.reservedWordsStrict : this.reservedWords;
    n.test(i) && (!this.inAsync && i === "await" && this.raiseRecoverable(t, "Cannot use keyword 'await' outside an async function"), this.raiseRecoverable(t, "The keyword '" + i + "' is reserved"));
  }
};
wr.parseIdent = function(e) {
  var t = this.parseIdentNode();
  return this.next(!!e), this.finishNode(t, "Identifier"), e || (this.checkUnreserved(t), t.name === "await" && !this.awaitIdentPos && (this.awaitIdentPos = t.start)), t;
};
wr.parseIdentNode = function() {
  var e = this.startNode();
  return this.type === ke.name ? e.name = this.value : this.type.keyword ? (e.name = this.type.keyword, (e.name === "class" || e.name === "function") && (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46) && this.context.pop()) : this.unexpected(), e;
};
wr.parsePrivateIdent = function() {
  var e = this.startNode();
  return this.type === ke.privateId ? e.name = this.value : this.unexpected(), this.next(), this.finishNode(e, "PrivateIdentifier"), this.options.checkPrivateFields && (this.privateNameStack.length === 0 ? this.raise(e.start, "Private field '#" + e.name + "' must be declared in an enclosing class") : this.privateNameStack[this.privateNameStack.length - 1].used.push(e)), e;
};
wr.parseYield = function(e) {
  this.yieldPos || (this.yieldPos = this.start);
  var t = this.startNode();
  return this.next(), this.type === ke.semi || this.canInsertSemicolon() || this.type !== ke.star && !this.type.startsExpr ? (t.delegate = !1, t.argument = null) : (t.delegate = this.eat(ke.star), t.argument = this.parseMaybeAssign(e)), this.finishNode(t, "YieldExpression");
};
wr.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 sA = os.prototype;
sA.raise = function(e, t) {
  var r = ebe(this.input, e);
  t += " (" + r.line + ":" + r.column + ")";
  var i = new SyntaxError(t);
  throw i.pos = e, i.loc = r, i.raisedAt = this.pos, i;
};
sA.raiseRecoverable = sA.raise;
sA.curPosition = function() {
  if (this.options.locations)
    return new nT(this.curLine, this.pos - this.lineStart);
};
var Yh = os.prototype, Z4t = function(t) {
  this.flags = t, this.var = [], this.lexical = [], this.functions = [], this.inClassFieldInit = !1;
};
Yh.enterScope = function(e) {
  this.scopeStack.push(new Z4t(e));
};
Yh.exitScope = function() {
  this.scopeStack.pop();
};
Yh.treatFunctionsAsVarInScope = function(e) {
  return e.flags & jg || !this.inModule && e.flags & sT;
};
Yh.declareName = function(e, t, r) {
  var i = !1;
  if (t === $f) {
    var n = this.currentScope();
    i = n.lexical.indexOf(e) > -1 || n.functions.indexOf(e) > -1 || n.var.indexOf(e) > -1, n.lexical.push(e), this.inModule && n.flags & sT && delete this.undefinedExports[e];
  } else if (t === abe) {
    var s = this.currentScope();
    s.lexical.push(e);
  } else if (t === sbe) {
    var a = this.currentScope();
    this.treatFunctionsAsVar ? i = a.lexical.indexOf(e) > -1 : i = a.lexical.indexOf(e) > -1 || a.var.indexOf(e) > -1, a.functions.push(e);
  } else
    for (var o = this.scopeStack.length - 1; o >= 0; --o) {
      var l = this.scopeStack[o];
      if (l.lexical.indexOf(e) > -1 && !(l.flags & ibe && l.lexical[0] === e) || !this.treatFunctionsAsVarInScope(l) && l.functions.indexOf(e) > -1) {
        i = !0;
        break;
      }
      if (l.var.push(e), this.inModule && l.flags & sT && delete this.undefinedExports[e], l.flags & j7)
        break;
    }
  i && this.raiseRecoverable(r, "Identifier '" + e + "' has already been declared");
};
Yh.checkLocalExport = function(e) {
  this.scopeStack[0].lexical.indexOf(e.name) === -1 && this.scopeStack[0].var.indexOf(e.name) === -1 && (this.undefinedExports[e.name] = e);
};
Yh.currentScope = function() {
  return this.scopeStack[this.scopeStack.length - 1];
};
Yh.currentVarScope = function() {
  for (var e = this.scopeStack.length - 1; ; e--) {
    var t = this.scopeStack[e];
    if (t.flags & j7)
      return t;
  }
};
Yh.currentThisScope = function() {
  for (var e = this.scopeStack.length - 1; ; e--) {
    var t = this.scopeStack[e];
    if (t.flags & j7 && !(t.flags & rbe))
      return t;
  }
};
var FI = function(t, r, i) {
  this.type = "", this.start = r, this.end = 0, t.options.locations && (this.loc = new RI(t, i)), t.options.directSourceFile && (this.sourceFile = t.options.directSourceFile), t.options.ranges && (this.range = [r, 0]);
}, SS = os.prototype;
SS.startNode = function() {
  return new FI(this, this.start, this.startLoc);
};
SS.startNodeAt = function(e, t) {
  return new FI(this, e, t);
};
function cbe(e, t, r, i) {
  return e.type = t, e.end = r, this.options.locations && (e.loc.end = i), this.options.ranges && (e.range[1] = r), e;
}
SS.finishNode = function(e, t) {
  return cbe.call(this, e, t, this.lastTokEnd, this.lastTokEndLoc);
};
SS.finishNodeAt = function(e, t, r, i) {
  return cbe.call(this, e, t, r, i);
};
SS.copyNode = function(e) {
  var t = new FI(this, e.start, this.startLoc);
  for (var r in e)
    t[r] = e[r];
  return t;
};
var pbe = "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", fbe = pbe + " Extended_Pictographic", hbe = fbe, dbe = hbe + " EBase EComp EMod EPres ExtPict", mbe = dbe, e$t = mbe, t$t = {
  9: pbe,
  10: fbe,
  11: hbe,
  12: dbe,
  13: mbe,
  14: e$t
}, r$t = "Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji", i$t = {
  9: "",
  10: "",
  11: "",
  12: "",
  13: "",
  14: r$t
}, Aee = "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", ybe = "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", gbe = ybe + " Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd", bbe = gbe + " Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho", vbe = bbe + " Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi", Tbe = vbe + " Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith", n$t = Tbe + " Hrkt Katakana_Or_Hiragana Kawi Nag_Mundari Nagm Unknown Zzzz", s$t = {
  9: ybe,
  10: gbe,
  11: bbe,
  12: vbe,
  13: Tbe,
  14: n$t
}, Sbe = {};
function a$t(e) {
  var t = Sbe[e] = {
    binary: Eh(t$t[e] + " " + Aee),
    binaryOfStrings: Eh(i$t[e]),
    nonBinary: {
      General_Category: Eh(Aee),
      Script: Eh(s$t[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 M3 = 0, Cee = [9, 10, 11, 12, 13, 14]; M3 < Cee.length; M3 += 1) {
  var o$t = Cee[M3];
  a$t(o$t);
}
var er = os.prototype, Sp = function(t) {
  this.parser = t, this.validFlags = "gim" + (t.options.ecmaVersion >= 6 ? "uy" : "") + (t.options.ecmaVersion >= 9 ? "s" : "") + (t.options.ecmaVersion >= 13 ? "d" : "") + (t.options.ecmaVersion >= 15 ? "v" : ""), this.unicodeProperties = Sbe[t.options.ecmaVersion >= 14 ? 14 : t.options.ecmaVersion], this.source = "", this.flags = "", this.start = 0, this.switchU = !1, this.switchV = !1, this.switchN = !1, this.pos = 0, this.lastIntValue = 0, this.lastStringValue = "", this.lastAssertionIsQuantifiable = !1, this.numCapturingParens = 0, this.maxBackReference = 0, this.groupNames = [], this.backReferenceNames = [];
};
Sp.prototype.reset = function(t, r, i) {
  var n = i.indexOf("v") !== -1, s = i.indexOf("u") !== -1;
  this.start = t | 0, this.source = r + "", this.flags = i, n && this.parser.options.ecmaVersion >= 15 ? (this.switchU = !0, this.switchV = !0, this.switchN = !0) : (this.switchU = s && this.parser.options.ecmaVersion >= 6, this.switchV = !1, this.switchN = s && this.parser.options.ecmaVersion >= 9);
};
Sp.prototype.raise = function(t) {
  this.parser.raiseRecoverable(this.start, "Invalid regular expression: /" + this.source + "/: " + t);
};
Sp.prototype.at = function(t, r) {
  r === void 0 && (r = !1);
  var i = this.source, n = i.length;
  if (t >= n)
    return -1;
  var s = i.charCodeAt(t);
  if (!(r || this.switchU) || s <= 55295 || s >= 57344 || t + 1 >= n)
    return s;
  var a = i.charCodeAt(t + 1);
  return a >= 56320 && a <= 57343 ? (s << 10) + a - 56613888 : s;
};
Sp.prototype.nextIndex = function(t, r) {
  r === void 0 && (r = !1);
  var i = this.source, n = i.length;
  if (t >= n)
    return n;
  var s = i.charCodeAt(t), a;
  return !(r || this.switchU) || s <= 55295 || s >= 57344 || t + 1 >= n || (a = i.charCodeAt(t + 1)) < 56320 || a > 57343 ? t + 1 : t + 2;
};
Sp.prototype.current = function(t) {
  return t === void 0 && (t = !1), this.at(this.pos, t);
};
Sp.prototype.lookahead = function(t) {
  return t === void 0 && (t = !1), this.at(this.nextIndex(this.pos, t), t);
};
Sp.prototype.advance = function(t) {
  t === void 0 && (t = !1), this.pos = this.nextIndex(this.pos, t);
};
Sp.prototype.eat = function(t, r) {
  return r === void 0 && (r = !1), this.current(r) === t ? (this.advance(r), !0) : !1;
};
Sp.prototype.eatChars = function(t, r) {
  r === void 0 && (r = !1);
  for (var i = this.pos, n = 0, s = t; n < s.length; n += 1) {
    var a = s[n], o = this.at(i, r);
    if (o === -1 || o !== a)
      return !1;
    i = this.nextIndex(i, r);
  }
  return this.pos = i, !0;
};
er.validateRegExpFlags = function(e) {
  for (var t = e.validFlags, r = e.flags, i = !1, n = !1, s = 0; s < r.length; s++) {
    var a = r.charAt(s);
    t.indexOf(a) === -1 && this.raise(e.start, "Invalid regular expression flag"), r.indexOf(a, s + 1) > -1 && this.raise(e.start, "Duplicate regular expression flag"), a === "u" && (i = !0), a === "v" && (n = !0);
  }
  this.options.ecmaVersion >= 15 && i && n && this.raise(e.start, "Invalid regular expression flag");
};
er.validateRegExpPattern = function(e) {
  this.regexp_pattern(e), !e.switchN && this.options.ecmaVersion >= 9 && e.groupNames.length > 0 && (e.switchN = !0, this.regexp_pattern(e));
};
er.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, r = e.backReferenceNames; t < r.length; t += 1) {
    var i = r[t];
    e.groupNames.indexOf(i) === -1 && e.raise("Invalid named capture referenced");
  }
};
er.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");
};
er.regexp_alternative = function(e) {
  for (; e.pos < e.source.length && this.regexp_eatTerm(e); )
    ;
};
er.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;
};
er.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
      /* B */
    ) || e.eat(
      98
      /* b */
    ))
      return !0;
    e.pos = t;
  }
  if (e.eat(
    40
    /* ( */
  ) && e.eat(
    63
    /* ? */
  )) {
    var r = !1;
    if (this.options.ecmaVersion >= 9 && (r = e.eat(
      60
      /* < */
    )), e.eat(
      61
      /* = */
    ) || e.eat(
      33
      /* ! */
    ))
      return this.regexp_disjunction(e), e.eat(
        41
        /* ) */
      ) || e.raise("Unterminated group"), e.lastAssertionIsQuantifiable = !r, !0;
  }
  return e.pos = t, !1;
};
er.regexp_eatQuantifier = function(e, t) {
  return t === void 0 && (t = !1), this.regexp_eatQuantifierPrefix(e, t) ? (e.eat(
    63
    /* ? */
  ), !0) : !1;
};
er.regexp_eatQuantifierPrefix = function(e, t) {
  return e.eat(
    42
    /* * */
  ) || e.eat(
    43
    /* + */
  ) || e.eat(
    63
    /* ? */
  ) || this.regexp_eatBracedQuantifier(e, t);
};
er.regexp_eatBracedQuantifier = function(e, t) {
  var r = e.pos;
  if (e.eat(
    123
    /* { */
  )) {
    var i = 0, n = -1;
    if (this.regexp_eatDecimalDigits(e) && (i = e.lastIntValue, e.eat(
      44
      /* , */
    ) && this.regexp_eatDecimalDigits(e) && (n = e.lastIntValue), e.eat(
      125
      /* } */
    )))
      return n !== -1 && n < i && !t && e.raise("numbers out of order in {} quantifier"), !0;
    e.switchU && !t && e.raise("Incomplete quantifier"), e.pos = r;
  }
  return !1;
};
er.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);
};
er.regexp_eatReverseSolidusAtomEscape = function(e) {
  var t = e.pos;
  if (e.eat(
    92
    /* \ */
  )) {
    if (this.regexp_eatAtomEscape(e))
      return !0;
    e.pos = t;
  }
  return !1;
};
er.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;
};
er.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;
};
er.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);
};
er.regexp_eatInvalidBracedQuantifier = function(e) {
  return this.regexp_eatBracedQuantifier(e, !0) && e.raise("Nothing to repeat"), !1;
};
er.regexp_eatSyntaxCharacter = function(e) {
  var t = e.current();
  return xbe(t) ? (e.lastIntValue = t, e.advance(), !0) : !1;
};
function xbe(e) {
  return e === 36 || e >= 40 && e <= 43 || e === 46 || e === 63 || e >= 91 && e <= 94 || e >= 123 && e <= 125;
}
er.regexp_eatPatternCharacters = function(e) {
  for (var t = e.pos, r = 0; (r = e.current()) !== -1 && !xbe(r); )
    e.advance();
  return e.pos !== t;
};
er.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;
};
er.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");
  }
};
er.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;
};
er.regexp_eatRegExpIdentifierName = function(e) {
  if (e.lastStringValue = "", this.regexp_eatRegExpIdentifierStart(e)) {
    for (e.lastStringValue += $h(e.lastIntValue); this.regexp_eatRegExpIdentifierPart(e); )
      e.lastStringValue += $h(e.lastIntValue);
    return !0;
  }
  return !1;
};
er.regexp_eatRegExpIdentifierStart = function(e) {
  var t = e.pos, r = this.options.ecmaVersion >= 11, i = e.current(r);
  return e.advance(r), i === 92 && this.regexp_eatRegExpUnicodeEscapeSequence(e, r) && (i = e.lastIntValue), l$t(i) ? (e.lastIntValue = i, !0) : (e.pos = t, !1);
};
function l$t(e) {
  return Fc(e, !0) || e === 36 || e === 95;
}
er.regexp_eatRegExpIdentifierPart = function(e) {
  var t = e.pos, r = this.options.ecmaVersion >= 11, i = e.current(r);
  return e.advance(r), i === 92 && this.regexp_eatRegExpUnicodeEscapeSequence(e, r) && (i = e.lastIntValue), u$t(i) ? (e.lastIntValue = i, !0) : (e.pos = t, !1);
};
function u$t(e) {
  return Xd(e, !0) || e === 36 || e === 95 || e === 8204 || e === 8205;
}
er.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);
};
er.regexp_eatBackReference = function(e) {
  var t = e.pos;
  if (this.regexp_eatDecimalEscape(e)) {
    var r = e.lastIntValue;
    if (e.switchU)
      return r > e.maxBackReference && (e.maxBackReference = r), !0;
    if (r <= e.numCapturingParens)
      return !0;
    e.pos = t;
  }
  return !1;
};
er.regexp_eatKGroupName = function(e) {
  if (e.eat(
    107
    /* k */
  )) {
    if (this.regexp_eatGroupName(e))
      return e.backReferenceNames.push(e.lastStringValue), !0;
    e.raise("Invalid named reference");
  }
  return !1;
};
er.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);
};
er.regexp_eatCControlLetter = function(e) {
  var t = e.pos;
  if (e.eat(
    99
    /* c */
  )) {
    if (this.regexp_eatControlLetter(e))
      return !0;
    e.pos = t;
  }
  return !1;
};
er.regexp_eatZero = function(e) {
  return e.current() === 48 && !jI(e.lookahead()) ? (e.lastIntValue = 0, e.advance(), !0) : !1;
};
er.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;
};
er.regexp_eatControlLetter = function(e) {
  var t = e.current();
  return Ebe(t) ? (e.lastIntValue = t % 32, e.advance(), !0) : !1;
};
function Ebe(e) {
  return e >= 65 && e <= 90 || e >= 97 && e <= 122;
}
er.regexp_eatRegExpUnicodeEscapeSequence = function(e, t) {
  t === void 0 && (t = !1);
  var r = e.pos, i = t || e.switchU;
  if (e.eat(
    117
    /* u */
  )) {
    if (this.regexp_eatFixedHexDigits(e, 4)) {
      var n = e.lastIntValue;
      if (i && n >= 55296 && n <= 56319) {
        var s = e.pos;
        if (e.eat(
          92
          /* \ */
        ) && e.eat(
          117
          /* u */
        ) && 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 = s, e.lastIntValue = n;
      }
      return !0;
    }
    if (i && e.eat(
      123
      /* { */
    ) && this.regexp_eatHexDigits(e) && e.eat(
      125
      /* } */
    ) && c$t(e.lastIntValue))
      return !0;
    i && e.raise("Invalid unicode escape"), e.pos = r;
  }
  return !1;
};
function c$t(e) {
  return e >= 0 && e <= 1114111;
}
er.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;
};
er.regexp_eatDecimalEscape = function(e) {
  e.lastIntValue = 0;
  var t = e.current();
  if (t >= 49 && t <= 57) {
    do
      e.lastIntValue = 10 * e.lastIntValue + (t - 48), e.advance();
    while ((t = e.current()) >= 48 && t <= 57);
    return !0;
  }
  return !1;
};
var Pbe = 0, Cf = 1, Ml = 2;
er.regexp_eatCharacterClassEscape = function(e) {
  var t = e.current();
  if (p$t(t))
    return e.lastIntValue = -1, e.advance(), Cf;
  var r = !1;
  if (e.switchU && this.options.ecmaVersion >= 9 && ((r = t === 80) || t === 112)) {
    e.lastIntValue = -1, e.advance();
    var i;
    if (e.eat(
      123
      /* { */
    ) && (i = this.regexp_eatUnicodePropertyValueExpression(e)) && e.eat(
      125
      /* } */
    ))
      return r && i === Ml && e.raise("Invalid property name"), i;
    e.raise("Invalid property name");
  }
  return Pbe;
};
function p$t(e) {
  return e === 100 || e === 68 || e === 115 || e === 83 || e === 119 || e === 87;
}
er.regexp_eatUnicodePropertyValueExpression = function(e) {
  var t = e.pos;
  if (this.regexp_eatUnicodePropertyName(e) && e.eat(
    61
    /* = */
  )) {
    var r = e.lastStringValue;
    if (this.regexp_eatUnicodePropertyValue(e)) {
      var i = e.lastStringValue;
      return this.regexp_validateUnicodePropertyNameAndValue(e, r, i), Cf;
    }
  }
  if (e.pos = t, this.regexp_eatLoneUnicodePropertyNameOrValue(e)) {
    var n = e.lastStringValue;
    return this.regexp_validateUnicodePropertyNameOrValue(e, n);
  }
  return Pbe;
};
er.regexp_validateUnicodePropertyNameAndValue = function(e, t, r) {
  vS(e.unicodeProperties.nonBinary, t) || e.raise("Invalid property name"), e.unicodeProperties.nonBinary[t].test(r) || e.raise("Invalid property value");
};
er.regexp_validateUnicodePropertyNameOrValue = function(e, t) {
  if (e.unicodeProperties.binary.test(t))
    return Cf;
  if (e.switchV && e.unicodeProperties.binaryOfStrings.test(t))
    return Ml;
  e.raise("Invalid property name");
};
er.regexp_eatUnicodePropertyName = function(e) {
  var t = 0;
  for (e.lastStringValue = ""; wbe(t = e.current()); )
    e.lastStringValue += $h(t), e.advance();
  return e.lastStringValue !== "";
};
function wbe(e) {
  return Ebe(e) || e === 95;
}
er.regexp_eatUnicodePropertyValue = function(e) {
  var t = 0;
  for (e.lastStringValue = ""; f$t(t = e.current()); )
    e.lastStringValue += $h(t), e.advance();
  return e.lastStringValue !== "";
};
function f$t(e) {
  return wbe(e) || jI(e);
}
er.regexp_eatLoneUnicodePropertyNameOrValue = function(e) {
  return this.regexp_eatUnicodePropertyValue(e);
};
er.regexp_eatCharacterClass = function(e) {
  if (e.eat(
    91
    /* [ */
  )) {
    var t = e.eat(
      94
      /* ^ */
    ), r = this.regexp_classContents(e);
    return e.eat(
      93
      /* ] */
    ) || e.raise("Unterminated character class"), t && r === Ml && e.raise("Negated character class may contain strings"), !0;
  }
  return !1;
};
er.regexp_classContents = function(e) {
  return e.current() === 93 ? Cf : e.switchV ? this.regexp_classSetExpression(e) : (this.regexp_nonEmptyClassRanges(e), Cf);
};
er.regexp_nonEmptyClassRanges = function(e) {
  for (; this.regexp_eatClassAtom(e); ) {
    var t = e.lastIntValue;
    if (e.eat(
      45
      /* - */
    ) && this.regexp_eatClassAtom(e)) {
      var r = e.lastIntValue;
      e.switchU && (t === -1 || r === -1) && e.raise("Invalid character class"), t !== -1 && r !== -1 && t > r && e.raise("Range out of order in character class");
    }
  }
};
er.regexp_eatClassAtom = function(e) {
  var t = e.pos;
  if (e.eat(
    92
    /* \ */
  )) {
    if (this.regexp_eatClassEscape(e))
      return !0;
    if (e.switchU) {
      var r = e.current();
      (r === 99 || _be(r)) && e.raise("Invalid class escape"), e.raise("Invalid escape");
    }
    e.pos = t;
  }
  var i = e.current();
  return i !== 93 ? (e.lastIntValue = i, e.advance(), !0) : !1;
};
er.regexp_eatClassEscape = function(e) {
  var t = e.pos;
  if (e.eat(
    98
    /* b */
  ))
    return e.lastIntValue = 8, !0;
  if (e.switchU && e.eat(
    45
    /* - */
  ))
    return e.lastIntValue = 45, !0;
  if (!e.switchU && e.eat(
    99
    /* c */
  )) {
    if (this.regexp_eatClassControlLetter(e))
      return !0;
    e.pos = t;
  }
  return this.regexp_eatCharacterClassEscape(e) || this.regexp_eatCharacterEscape(e);
};
er.regexp_classSetExpression = function(e) {
  var t = Cf, r;
  if (!this.regexp_eatClassSetRange(e))
    if (r = this.regexp_eatClassSetOperand(e)) {
      r === Ml && (t = Ml);
      for (var i = e.pos; e.eatChars(
        [38, 38]
        /* && */
      ); ) {
        if (e.current() !== 38 && (r = this.regexp_eatClassSetOperand(e))) {
          r !== Ml && (t = Cf);
          continue;
        }
        e.raise("Invalid character in character class");
      }
      if (i !== e.pos)
        return t;
      for (; e.eatChars(
        [45, 45]
        /* -- */
      ); )
        this.regexp_eatClassSetOperand(e) || e.raise("Invalid character in character class");
      if (i !== e.pos)
        return t;
    } else
      e.raise("Invalid character in character class");
  for (; ; )
    if (!this.regexp_eatClassSetRange(e)) {
      if (r = this.regexp_eatClassSetOperand(e), !r)
        return t;
      r === Ml && (t = Ml);
    }
};
er.regexp_eatClassSetRange = function(e) {
  var t = e.pos;
  if (this.regexp_eatClassSetCharacter(e)) {
    var r = e.lastIntValue;
    if (e.eat(
      45
      /* - */
    ) && this.regexp_eatClassSetCharacter(e)) {
      var i = e.lastIntValue;
      return r !== -1 && i !== -1 && r > i && e.raise("Range out of order in character class"), !0;
    }
    e.pos = t;
  }
  return !1;
};
er.regexp_eatClassSetOperand = function(e) {
  return this.regexp_eatClassSetCharacter(e) ? Cf : this.regexp_eatClassStringDisjunction(e) || this.regexp_eatNestedClass(e);
};
er.regexp_eatNestedClass = function(e) {
  var t = e.pos;
  if (e.eat(
    91
    /* [ */
  )) {
    var r = e.eat(
      94
      /* ^ */
    ), i = this.regexp_classContents(e);
    if (e.eat(
      93
      /* ] */
    ))
      return r && i === Ml && e.raise("Negated character class may contain strings"), i;
    e.pos = t;
  }
  if (e.eat(
    92
    /* \ */
  )) {
    var n = this.regexp_eatCharacterClassEscape(e);
    if (n)
      return n;
    e.pos = t;
  }
  return null;
};
er.regexp_eatClassStringDisjunction = function(e) {
  var t = e.pos;
  if (e.eatChars(
    [92, 113]
    /* \q */
  )) {
    if (e.eat(
      123
      /* { */
    )) {
      var r = this.regexp_classStringDisjunctionContents(e);
      if (e.eat(
        125
        /* } */
      ))
        return r;
    } else
      e.raise("Invalid escape");
    e.pos = t;
  }
  return null;
};
er.regexp_classStringDisjunctionContents = function(e) {
  for (var t = this.regexp_classString(e); e.eat(
    124
    /* | */
  ); )
    this.regexp_classString(e) === Ml && (t = Ml);
  return t;
};
er.regexp_classString = function(e) {
  for (var t = 0; this.regexp_eatClassSetCharacter(e); )
    t++;
  return t === 1 ? Cf : Ml;
};
er.regexp_eatClassSetCharacter = function(e) {
  var t = e.pos;
  if (e.eat(
    92
    /* \ */
  ))
    return this.regexp_eatCharacterEscape(e) || this.regexp_eatClassSetReservedPunctuator(e) ? !0 : e.eat(
      98
      /* b */
    ) ? (e.lastIntValue = 8, !0) : (e.pos = t, !1);
  var r = e.current();
  return r < 0 || r === e.lookahead() && h$t(r) || d$t(r) ? !1 : (e.advance(), e.lastIntValue = r, !0);
};
function h$t(e) {
  return e === 33 || e >= 35 && e <= 38 || e >= 42 && e <= 44 || e === 46 || e >= 58 && e <= 64 || e === 94 || e === 96 || e === 126;
}
function d$t(e) {
  return e === 40 || e === 41 || e === 45 || e === 47 || e >= 91 && e <= 93 || e >= 123 && e <= 125;
}
er.regexp_eatClassSetReservedPunctuator = function(e) {
  var t = e.current();
  return m$t(t) ? (e.lastIntValue = t, e.advance(), !0) : !1;
};
function m$t(e) {
  return e === 33 || e === 35 || e === 37 || e === 38 || e === 44 || e === 45 || e >= 58 && e <= 62 || e === 64 || e === 96 || e === 126;
}
er.regexp_eatClassControlLetter = function(e) {
  var t = e.current();
  return jI(t) || t === 95 ? (e.lastIntValue = t % 32, e.advance(), !0) : !1;
};
er.regexp_eatHexEscapeSequence = function(e) {
  var t = e.pos;
  if (e.eat(
    120
    /* x */
  )) {
    if (this.regexp_eatFixedHexDigits(e, 2))
      return !0;
    e.switchU && e.raise("Invalid escape"), e.pos = t;
  }
  return !1;
};
er.regexp_eatDecimalDigits = function(e) {
  var t = e.pos, r = 0;
  for (e.lastIntValue = 0; jI(r = e.current()); )
    e.lastIntValue = 10 * e.lastIntValue + (r - 48), e.advance();
  return e.pos !== t;
};
function jI(e) {
  return e >= 48 && e <= 57;
}
er.regexp_eatHexDigits = function(e) {
  var t = e.pos, r = 0;
  for (e.lastIntValue = 0; Abe(r = e.current()); )
    e.lastIntValue = 16 * e.lastIntValue + Cbe(r), e.advance();
  return e.pos !== t;
};
function Abe(e) {
  return e >= 48 && e <= 57 || e >= 65 && e <= 70 || e >= 97 && e <= 102;
}
function Cbe(e) {
  return e >= 65 && e <= 70 ? 10 + (e - 65) : e >= 97 && e <= 102 ? 10 + (e - 97) : e - 48;
}
er.regexp_eatLegacyOctalEscapeSequence = function(e) {
  if (this.regexp_eatOctalDigit(e)) {
    var t = e.lastIntValue;
    if (this.regexp_eatOctalDigit(e)) {
      var r = e.lastIntValue;
      t <= 3 && this.regexp_eatOctalDigit(e) ? e.lastIntValue = t * 64 + r * 8 + e.lastIntValue : e.lastIntValue = t * 8 + r;
    } else
      e.lastIntValue = t;
    return !0;
  }
  return !1;
};
er.regexp_eatOctalDigit = function(e) {
  var t = e.current();
  return _be(t) ? (e.lastIntValue = t - 48, e.advance(), !0) : (e.lastIntValue = 0, !1);
};
function _be(e) {
  return e >= 48 && e <= 55;
}
er.regexp_eatFixedHexDigits = function(e, t) {
  var r = e.pos;
  e.lastIntValue = 0;
  for (var i = 0; i < t; ++i) {
    var n = e.current();
    if (!Abe(n))
      return e.pos = r, !1;
    e.lastIntValue = 16 * e.lastIntValue + Cbe(n), e.advance();
  }
  return !0;
};
var V7 = function(t) {
  this.type = t.type, this.value = t.value, this.start = t.start, this.end = t.end, t.options.locations && (this.loc = new RI(t, t.startLoc, t.endLoc)), t.options.ranges && (this.range = [t.start, t.end]);
}, Qr = os.prototype;
Qr.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 V7(this)), this.lastTokEnd = this.end, this.lastTokStart = this.start, this.lastTokEndLoc = this.endLoc, this.lastTokStartLoc = this.startLoc, this.nextToken();
};
Qr.getToken = function() {
  return this.next(), new V7(this);
};
typeof Symbol != "undefined" && (Qr[Symbol.iterator] = function() {
  var e = this;
  return {
    next: function() {
      var t = e.getToken();
      return {
        done: t.type === ke.eof,
        value: t
      };
    }
  };
});
Qr.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(ke.eof);
  if (e.override)
    return e.override(this);
  this.readToken(this.fullCharCodeAtPos());
};
Qr.readToken = function(e) {
  return Fc(e, this.options.ecmaVersion >= 6) || e === 92 ? this.readWord() : this.getTokenFromCode(e);
};
Qr.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;
};
Qr.skipBlockComment = function() {
  var e = this.options.onComment && this.curPosition(), t = this.pos, r = this.input.indexOf("*/", this.pos += 2);
  if (r === -1 && this.raise(this.pos - 2, "Unterminated comment"), this.pos = r + 2, this.options.locations)
    for (var i = void 0, n = t; (i = Jge(this.input, n, this.pos)) > -1; )
      ++this.curLine, n = this.lineStart = i;
  this.options.onComment && this.options.onComment(
    !0,
    this.input.slice(t + 2, r),
    t,
    this.pos,
    e,
    this.curPosition()
  );
};
Qr.skipLineComment = function(e) {
  for (var t = this.pos, r = this.options.onComment && this.curPosition(), i = this.input.charCodeAt(this.pos += e); this.pos < this.input.length && !Fg(i); )
    i = this.input.charCodeAt(++this.pos);
  this.options.onComment && this.options.onComment(
    !1,
    this.input.slice(t + e, this.pos),
    t,
    this.pos,
    r,
    this.curPosition()
  );
};
Qr.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 && Qge.test(String.fromCharCode(e)))
            ++this.pos;
          else
            break e;
      }
    }
};
Qr.finishToken = function(e, t) {
  this.end = this.pos, this.options.locations && (this.endLoc = this.curPosition());
  var r = this.type;
  this.type = e, this.value = t, this.updateContext(r);
};
Qr.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(ke.ellipsis)) : (++this.pos, this.finishToken(ke.dot));
};
Qr.readToken_slash = function() {
  var e = this.input.charCodeAt(this.pos + 1);
  return this.exprAllowed ? (++this.pos, this.readRegexp()) : e === 61 ? this.finishOp(ke.assign, 2) : this.finishOp(ke.slash, 1);
};
Qr.readToken_mult_modulo_exp = function(e) {
  var t = this.input.charCodeAt(this.pos + 1), r = 1, i = e === 42 ? ke.star : ke.modulo;
  return this.options.ecmaVersion >= 7 && e === 42 && t === 42 && (++r, i = ke.starstar, t = this.input.charCodeAt(this.pos + 2)), t === 61 ? this.finishOp(ke.assign, r + 1) : this.finishOp(i, r);
};
Qr.readToken_pipe_amp = function(e) {
  var t = this.input.charCodeAt(this.pos + 1);
  if (t === e) {
    if (this.options.ecmaVersion >= 12) {
      var r = this.input.charCodeAt(this.pos + 2);
      if (r === 61)
        return this.finishOp(ke.assign, 3);
    }
    return this.finishOp(e === 124 ? ke.logicalOR : ke.logicalAND, 2);
  }
  return t === 61 ? this.finishOp(ke.assign, 2) : this.finishOp(e === 124 ? ke.bitwiseOR : ke.bitwiseAND, 1);
};
Qr.readToken_caret = function() {
  var e = this.input.charCodeAt(this.pos + 1);
  return e === 61 ? this.finishOp(ke.assign, 2) : this.finishOp(ke.bitwiseXOR, 1);
};
Qr.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 || Xl.test(this.input.slice(this.lastTokEnd, this.pos))) ? (this.skipLineComment(3), this.skipSpace(), this.nextToken()) : this.finishOp(ke.incDec, 2) : t === 61 ? this.finishOp(ke.assign, 2) : this.finishOp(ke.plusMin, 1);
};
Qr.readToken_lt_gt = function(e) {
  var t = this.input.charCodeAt(this.pos + 1), r = 1;
  return t === e ? (r = e === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2, this.input.charCodeAt(this.pos + r) === 61 ? this.finishOp(ke.assign, r + 1) : this.finishOp(ke.bitShift, r)) : 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 && (r = 2), this.finishOp(ke.relational, r));
};
Qr.readToken_eq_excl = function(e) {
  var t = this.input.charCodeAt(this.pos + 1);
  return t === 61 ? this.finishOp(ke.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) : e === 61 && t === 62 && this.options.ecmaVersion >= 6 ? (this.pos += 2, this.finishToken(ke.arrow)) : this.finishOp(e === 61 ? ke.eq : ke.prefix, 1);
};
Qr.readToken_question = function() {
  var e = this.options.ecmaVersion;
  if (e >= 11) {
    var t = this.input.charCodeAt(this.pos + 1);
    if (t === 46) {
      var r = this.input.charCodeAt(this.pos + 2);
      if (r < 48 || r > 57)
        return this.finishOp(ke.questionDot, 2);
    }
    if (t === 63) {
      if (e >= 12) {
        var i = this.input.charCodeAt(this.pos + 2);
        if (i === 61)
          return this.finishOp(ke.assign, 3);
      }
      return this.finishOp(ke.coalesce, 2);
    }
  }
  return this.finishOp(ke.question, 1);
};
Qr.readToken_numberSign = function() {
  var e = this.options.ecmaVersion, t = 35;
  if (e >= 13 && (++this.pos, t = this.fullCharCodeAtPos(), Fc(t, !0) || t === 92))
    return this.finishToken(ke.privateId, this.readWord1());
  this.raise(this.pos, "Unexpected character '" + $h(t) + "'");
};
Qr.getTokenFromCode = function(e) {
  switch (e) {
    case 46:
      return this.readToken_dot();
    case 40:
      return ++this.pos, this.finishToken(ke.parenL);
    case 41:
      return ++this.pos, this.finishToken(ke.parenR);
    case 59:
      return ++this.pos, this.finishToken(ke.semi);
    case 44:
      return ++this.pos, this.finishToken(ke.comma);
    case 91:
      return ++this.pos, this.finishToken(ke.bracketL);
    case 93:
      return ++this.pos, this.finishToken(ke.bracketR);
    case 123:
      return ++this.pos, this.finishToken(ke.braceL);
    case 125:
      return ++this.pos, this.finishToken(ke.braceR);
    case 58:
      return ++this.pos, this.finishToken(ke.colon);
    case 96:
      if (this.options.ecmaVersion < 6)
        break;
      return ++this.pos, this.finishToken(ke.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(ke.prefix, 1);
    case 35:
      return this.readToken_numberSign();
  }
  this.raise(this.pos, "Unexpected character '" + $h(e) + "'");
};
Qr.finishOp = function(e, t) {
  var r = this.input.slice(this.pos, this.pos + t);
  return this.pos += t, this.finishToken(e, r);
};
Qr.readRegexp = function() {
  for (var e, t, r = this.pos; ; ) {
    this.pos >= this.input.length && this.raise(r, "Unterminated regular expression");
    var i = this.input.charAt(this.pos);
    if (Xl.test(i) && this.raise(r, "Unterminated regular expression"), e)
      e = !1;
    else {
      if (i === "[")
        t = !0;
      else if (i === "]" && t)
        t = !1;
      else if (i === "/" && !t)
        break;
      e = i === "\\";
    }
    ++this.pos;
  }
  var n = this.input.slice(r, this.pos);
  ++this.pos;
  var s = this.pos, a = this.readWord1();
  this.containsEsc && this.unexpected(s);
  var o = this.regexpState || (this.regexpState = new Sp(this));
  o.reset(r, n, a), this.validateRegExpFlags(o), this.validateRegExpPattern(o);
  var l = null;
  try {
    l = new RegExp(n, a);
  } catch (u) {
  }
  return this.finishToken(ke.regexp, { pattern: n, flags: a, value: l });
};
Qr.readInt = function(e, t, r) {
  for (var i = this.options.ecmaVersion >= 12 && t === void 0, n = r && this.input.charCodeAt(this.pos) === 48, s = this.pos, a = 0, o = 0, l = 0, u = t == null ? 1 / 0 : t; l < u; ++l, ++this.pos) {
    var c = this.input.charCodeAt(this.pos), f = void 0;
    if (i && c === 95) {
      n && this.raiseRecoverable(this.pos, "Numeric separator is not allowed in legacy octal numeric literals"), o === 95 && this.raiseRecoverable(this.pos, "Numeric separator must be exactly one underscore"), l === 0 && this.raiseRecoverable(this.pos, "Numeric separator is not allowed at the first of digits"), o = c;
      continue;
    }
    if (c >= 97 ? f = c - 97 + 10 : c >= 65 ? f = c - 65 + 10 : c >= 48 && c <= 57 ? f = c - 48 : f = 1 / 0, f >= e)
      break;
    o = c, a = a * e + f;
  }
  return i && o === 95 && this.raiseRecoverable(this.pos - 1, "Numeric separator is not allowed at the last of digits"), this.pos === s || t != null && this.pos - s !== t ? null : a;
};
function y$t(e, t) {
  return t ? parseInt(e, 8) : parseFloat(e.replace(/_/g, ""));
}
function Ibe(e) {
  return typeof BigInt != "function" ? null : BigInt(e.replace(/_/g, ""));
}
Qr.readRadixNumber = function(e) {
  var t = this.pos;
  this.pos += 2;
  var r = this.readInt(e);
  return r == null && this.raise(this.start + 2, "Expected number in radix " + e), this.options.ecmaVersion >= 11 && this.input.charCodeAt(this.pos) === 110 ? (r = Ibe(this.input.slice(t, this.pos)), ++this.pos) : Fc(this.fullCharCodeAtPos()) && this.raise(this.pos, "Identifier directly after number"), this.finishToken(ke.num, r);
};
Qr.readNumber = function(e) {
  var t = this.pos;
  !e && this.readInt(10, void 0, !0) === null && this.raise(t, "Invalid number");
  var r = this.pos - t >= 2 && this.input.charCodeAt(t) === 48;
  r && this.strict && this.raise(t, "Invalid number");
  var i = this.input.charCodeAt(this.pos);
  if (!r && !e && this.options.ecmaVersion >= 11 && i === 110) {
    var n = Ibe(this.input.slice(t, this.pos));
    return ++this.pos, Fc(this.fullCharCodeAtPos()) && this.raise(this.pos, "Identifier directly after number"), this.finishToken(ke.num, n);
  }
  r && /[89]/.test(this.input.slice(t, this.pos)) && (r = !1), i === 46 && !r && (++this.pos, this.readInt(10), i = this.input.charCodeAt(this.pos)), (i === 69 || i === 101) && !r && (i = this.input.charCodeAt(++this.pos), (i === 43 || i === 45) && ++this.pos, this.readInt(10) === null && this.raise(t, "Invalid number")), Fc(this.fullCharCodeAtPos()) && this.raise(this.pos, "Identifier directly after number");
  var s = y$t(this.input.slice(t, this.pos), r);
  return this.finishToken(ke.num, s);
};
Qr.readCodePoint = function() {
  var e = this.input.charCodeAt(this.pos), t;
  if (e === 123) {
    this.options.ecmaVersion < 6 && this.unexpected();
    var r = ++this.pos;
    t = this.readHexChar(this.input.indexOf("}", this.pos) - this.pos), ++this.pos, t > 1114111 && this.invalidStringToken(r, "Code point out of bounds");
  } else
    t = this.readHexChar(4);
  return t;
};
Qr.readString = function(e) {
  for (var t = "", r = ++this.pos; ; ) {
    this.pos >= this.input.length && this.raise(this.start, "Unterminated string constant");
    var i = this.input.charCodeAt(this.pos);
    if (i === e)
      break;
    i === 92 ? (t += this.input.slice(r, this.pos), t += this.readEscapedChar(!1), r = this.pos) : i === 8232 || i === 8233 ? (this.options.ecmaVersion < 10 && this.raise(this.start, "Unterminated string constant"), ++this.pos, this.options.locations && (this.curLine++, this.lineStart = this.pos)) : (Fg(i) && this.raise(this.start, "Unterminated string constant"), ++this.pos);
  }
  return t += this.input.slice(r, this.pos++), this.finishToken(ke.string, t);
};
var kbe = {};
Qr.tryReadTemplateToken = function() {
  this.inTemplateElement = !0;
  try {
    this.readTmplToken();
  } catch (e) {
    if (e === kbe)
      this.readInvalidTemplateToken();
    else
      throw e;
  }
  this.inTemplateElement = !1;
};
Qr.invalidStringToken = function(e, t) {
  if (this.inTemplateElement && this.options.ecmaVersion >= 9)
    throw kbe;
  this.raise(e, t);
};
Qr.readTmplToken = function() {
  for (var e = "", t = this.pos; ; ) {
    this.pos >= this.input.length && this.raise(this.start, "Unterminated template");
    var r = this.input.charCodeAt(this.pos);
    if (r === 96 || r === 36 && this.input.charCodeAt(this.pos + 1) === 123)
      return this.pos === this.start && (this.type === ke.template || this.type === ke.invalidTemplate) ? r === 36 ? (this.pos += 2, this.finishToken(ke.dollarBraceL)) : (++this.pos, this.finishToken(ke.backQuote)) : (e += this.input.slice(t, this.pos), this.finishToken(ke.template, e));
    if (r === 92)
      e += this.input.slice(t, this.pos), e += this.readEscapedChar(!0), t = this.pos;
    else if (Fg(r)) {
      switch (e += this.input.slice(t, this.pos), ++this.pos, r) {
        case 13:
          this.input.charCodeAt(this.pos) === 10 && ++this.pos;
        case 10:
          e += "\n";
          break;
        default:
          e += String.fromCharCode(r);
          break;
      }
      this.options.locations && (++this.curLine, this.lineStart = this.pos), t = this.pos;
    } else
      ++this.pos;
  }
};
Qr.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(ke.invalidTemplate, this.input.slice(this.start, this.pos));
    }
  this.raise(this.start, "Unterminated template");
};
Qr.readEscapedChar = function(e) {
  var t = this.input.charCodeAt(++this.pos);
  switch (++this.pos, t) {
    case 110:
      return "\n";
    case 114:
      return "\r";
    case 120:
      return String.fromCharCode(this.readHexChar(2));
    case 117:
      return $h(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 r = this.pos - 1;
        this.invalidStringToken(
          r,
          "Invalid escape sequence in template string"
        );
      }
    default:
      if (t >= 48 && t <= 55) {
        var i = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0], n = parseInt(i, 8);
        return n > 255 && (i = i.slice(0, -1), n = parseInt(i, 8)), this.pos += i.length - 1, t = this.input.charCodeAt(this.pos), (i !== "0" || t === 56 || t === 57) && (this.strict || e) && this.invalidStringToken(
          this.pos - 1 - i.length,
          e ? "Octal literal in template string" : "Octal literal in strict mode"
        ), String.fromCharCode(n);
      }
      return Fg(t) ? "" : String.fromCharCode(t);
  }
};
Qr.readHexChar = function(e) {
  var t = this.pos, r = this.readInt(16, e);
  return r === null && this.invalidStringToken(t, "Bad character escape sequence"), r;
};
Qr.readWord1 = function() {
  this.containsEsc = !1;
  for (var e = "", t = !0, r = this.pos, i = this.options.ecmaVersion >= 6; this.pos < this.input.length; ) {
    var n = this.fullCharCodeAtPos();
    if (Xd(n, i))
      this.pos += n <= 65535 ? 1 : 2;
    else if (n === 92) {
      this.containsEsc = !0, e += this.input.slice(r, this.pos);
      var s = this.pos;
      this.input.charCodeAt(++this.pos) !== 117 && this.invalidStringToken(this.pos, "Expecting Unicode escape sequence \\uXXXX"), ++this.pos;
      var a = this.readCodePoint();
      (t ? Fc : Xd)(a, i) || this.invalidStringToken(s, "Invalid Unicode escape"), e += $h(a), r = this.pos;
    } else
      break;
    t = !1;
  }
  return e + this.input.slice(r, this.pos);
};
Qr.readWord = function() {
  var e = this.readWord1(), t = ke.name;
  return this.keywords.test(e) && (t = R7[e]), this.finishToken(t, e);
};
var g$t = "8.10.0";
os.acorn = {
  Parser: os,
  version: g$t,
  defaultOptions: R8,
  Position: nT,
  SourceLocation: RI,
  getLineInfo: ebe,
  Node: FI,
  TokenType: di,
  tokTypes: ke,
  keywordTypes: R7,
  TokContext: Pc,
  tokContexts: hn,
  isIdentifierChar: Xd,
  isIdentifierStart: Fc,
  Token: V7,
  isNewLine: Fg,
  lineBreak: Xl,
  lineBreakG: q4t,
  nonASCIIwhitespace: Qge
};
const Ph = /\s/, b$t = /^[ \t\r\n]*/, v$t = /[ \t\r\n]*$/, Obe = /[^\n]/g, T$t = /^\s*svelte-ignore\s+([\s\S]+)\s*$/m;
function S$t(e) {
  const t = T$t.exec(e);
  return t ? t[1].split(Ph).map((r) => r.trim()).filter(Boolean) : [];
}
function x$t(e, t) {
  const i = new C$t(t).get(e);
  return i && i[0] && i[0][0] > 0.7 ? i[0][1] : null;
}
const R3 = 2, B3 = 3;
function E$t(e, t) {
  if (e === null && t === null)
    throw "Trying to compare two null values";
  return e === null || t === null ? 0 : (e = String(e), t = String(t), 1 - P$t(e, t) / Math.max(e.length, t.length));
}
function P$t(e, t) {
  const r = [];
  let i, n;
  for (let s = 0; s <= t.length; s++)
    for (let a = 0; a <= e.length; a++)
      s && a ? e.charAt(a - 1) === t.charAt(s - 1) ? n = i : n = Math.min(r[a], r[a - 1], i) + 1 : n = s + a, i = r[a], r[a] = n;
  return r.pop();
}
const w$t = /[^\w, ]+/;
function A$t(e, t = 2) {
  const r = "-" + e.toLowerCase().replace(w$t, "") + "-", i = t - r.length, n = [];
  if (i > 0)
    for (let s = 0; s < i; ++s)
      e += "-";
  for (let s = 0; s < r.length - t + 1; ++s)
    n.push(r.slice(s, s + t));
  return n;
}
function _ee(e, t = 2) {
  const r = {}, i = A$t(e, t);
  let n = 0;
  for (n; n < i.length; ++n)
    i[n] in r ? r[i[n]] += 1 : r[i[n]] = 1;
  return r;
}
function Iee(e, t) {
  return t[0] - e[0];
}
class C$t {
  /**
   * @param {string[]} arr
   */
  constructor(t) {
    ti(this, "exact_set", {});
    ti(this, "match_dict", {});
    ti(this, "items", {});
    for (let r = R3; r < B3 + 1; ++r)
      this.items[r] = [];
    for (let r = 0; r < t.length; ++r)
      this.add(t[r]);
  }
  /**
   * @param {string} value
   */
  add(t) {
    if (t.toLowerCase() in this.exact_set)
      return !1;
    let i = R3;
    for (i; i < B3 + 1; ++i)
      this._add(t, i);
  }
  /**
   * @param {string} value
   * @param {number} gram_size
   */
  _add(t, r) {
    const i = t.toLowerCase(), n = this.items[r] || [], s = n.length;
    n.push(0);
    const a = _ee(i, r);
    let o = 0, l, u;
    for (l in a)
      u = a[l], o += Math.pow(u, 2), l in this.match_dict ? this.match_dict[l].push([s, u]) : this.match_dict[l] = [[s, u]];
    const c = Math.sqrt(o);
    n[s] = [c, i], this.items[r] = n, this.exact_set[i] = t;
  }
  /**
   * @param {string} value
   */
  get(t) {
    const r = t.toLowerCase(), i = this.exact_set[r];
    if (i)
      return [[1, i]];
    let n = [];
    for (let s = B3; s >= R3; --s)
      if (n = this.__get(t, s), n)
        return n;
    return null;
  }
  /**
   * @param {string} value
   * @param {number} gram_size
   */
  __get(t, r) {
    const i = t.toLowerCase(), n = {}, s = _ee(i, r), a = this.items[r];
    let o = 0, l, u, c, f, h;
    for (l in s)
      if (u = s[l], o += Math.pow(u, 2), l in this.match_dict)
        for (c = 0; c < this.match_dict[l].length; ++c)
          f = this.match_dict[l][c][0], h = this.match_dict[l][c][1], f in n ? n[f] += u * h : n[f] = u * h;
    const m = Math.sqrt(o);
    let g = [], y;
    for (const S in n)
      y = n[S], g.push([y / (m * a[S][0]), a[S][1]]);
    g.sort(Iee);
    let v = [];
    const T = Math.min(50, g.length);
    for (let S = 0; S < T; ++S)
      v.push([E$t(g[S][1], i), g[S][1]]);
    g = v, g.sort(Iee), v = [];
    for (let S = 0; S < g.length; ++S)
      g[S][0] == g[0][0] && v.push([g[S][0], this.exact_set[g[S][1]]]);
    return v;
  }
}
const _$t = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;
function kee(e) {
  return _$t.test(e) || e.toLowerCase() === "!doctype";
}
function I$t(e, t = "or") {
  return e.length === 1 ? e[0] : "".concat(e.slice(0, -1).join(", "), " ").concat(t, " ").concat(e[e.length - 1]);
}
const ar = {
  /**
   * @param {string} message
   */
  css_syntax_error: (e) => ({
    code: "css-syntax-error",
    message: e
  }),
  duplicate_attribute: {
    code: "duplicate-attribute",
    message: "Attributes need to be unique"
  },
  /**
   * @param {string} slug
   * @param {string} name
   */
  duplicate_element: (e, t) => ({
    code: "duplicate-".concat(e),
    message: "A component can only have one <".concat(t, "> tag")
  }),
  duplicate_style: {
    code: "duplicate-style",
    message: "You can only have one top-level <style> tag per component"
  },
  empty_attribute_shorthand: {
    code: "empty-attribute-shorthand",
    message: "Attribute shorthand cannot be empty"
  },
  /**
   * @param {string} type
   */
  empty_directive_name: (e) => ({
    code: "empty-directive-name",
    message: "".concat(e, " name cannot be empty")
  }),
  empty_global_selector: {
    code: "css-syntax-error",
    message: ":global() must contain a selector"
  },
  expected_block_type: {
    code: "expected-block-type",
    message: "Expected if, each or await"
  },
  expected_name: {
    code: "expected-name",
    message: "Expected name"
  },
  /** @param {string} block */
  invalid_catch_placement_unclosed_block: (e) => ({
    code: "invalid-catch-placement",
    message: "Expected to close ".concat(e, " before seeing {:catch} block")
  }),
  invalid_catch_placement_without_await: {
    code: "invalid-catch-placement",
    message: "Cannot have an {:catch} block outside an {#await ...} block"
  },
  invalid_component_definition: {
    code: "invalid-component-definition",
    message: "invalid component definition"
  },
  /**
   * @param {string} name
   */
  invalid_closing_tag_unopened: (e) => ({
    code: "invalid-closing-tag",
    message: "</".concat(e, "> attempted to close an element that was not open")
  }),
  /**
   * @param {string} name
   * @param {string} reason
   */
  invalid_closing_tag_autoclosed: (e, t) => ({
    code: "invalid-closing-tag",
    message: "</".concat(e, "> attempted to close <").concat(e, "> that was already automatically closed by <").concat(t, ">")
  }),
  invalid_debug_args: {
    code: "invalid-debug-args",
    message: "{@debug ...} arguments must be identifiers, not arbitrary expressions"
  },
  invalid_declaration: {
    code: "invalid-declaration",
    message: "Declaration cannot be empty"
  },
  invalid_directive_value: {
    code: "invalid-directive-value",
    message: "Directive value must be a JavaScript expression enclosed in curly braces"
  },
  invalid_elseif: {
    code: "invalid-elseif",
    message: "'elseif' should be 'else if'"
  },
  invalid_elseif_placement_outside_if: {
    code: "invalid-elseif-placement",
    message: "Cannot have an {:else if ...} block outside an {#if ...} block"
  },
  /**
   * @param {string} block
   */
  invalid_elseif_placement_unclosed_block: (e) => ({
    code: "invalid-elseif-placement",
    message: "Expected to close ".concat(e, " before seeing {:else if ...} block")
  }),
  invalid_else_placement_outside_if: {
    code: "invalid-else-placement",
    message: "Cannot have an {:else} block outside an {#if ...} or {#each ...} block"
  },
  /**
   * @param {string} block
   */
  invalid_else_placement_unclosed_block: (e) => ({
    code: "invalid-else-placement",
    message: "Expected to close ".concat(e, " before seeing {:else} block")
  }),
  /**
   * @param {string} slug
   * @param {string} name
   */
  invalid_element_content: (e, t) => ({
    code: "invalid-".concat(e, "-content"),
    message: "<".concat(t, "> cannot have children")
  }),
  invalid_element_definition: {
    code: "invalid-element-definition",
    message: "Invalid element definition"
  },
  /**
   * @param {string} slug
   * @param {string} name
   */
  invalid_element_placement: (e, t) => ({
    code: "invalid-".concat(e, "-placement"),
    message: "<".concat(t, "> tags cannot be inside elements or blocks")
  }),
  /**
   * @param {string} location
   * @param {string} name
   */
  invalid_logic_block_placement: (e, t) => ({
    code: "invalid-logic-block-placement",
    message: "{#".concat(t, "} logic block cannot be ").concat(e)
  }),
  /**
   * @param {string} location
   * @param {string} name
   */
  invalid_tag_placement: (e, t) => ({
    code: "invalid-tag-placement",
    message: "{@".concat(t, "} tag cannot be ").concat(e)
  }),
  /**
   * @param {string} name
   */
  invalid_ref_directive: (e) => ({
    code: "invalid-ref-directive",
    message: "The ref directive is no longer supported — use `bind:this={".concat(e, "}` instead")
  }),
  invalid_ref_selector: {
    code: "invalid-ref-selector",
    message: "ref selectors are no longer supported"
  },
  invalid_self_placement: {
    code: "invalid-self-placement",
    message: "<svelte:self> components can only exist inside {#if} blocks, {#each} blocks, or slots passed to components"
  },
  invalid_script_instance: {
    code: "invalid-script",
    message: "A component can only have one instance-level <script> element"
  },
  invalid_script_module: {
    code: "invalid-script",
    message: 'A component can only have one <script context="module"> element'
  },
  invalid_script_context_attribute: {
    code: "invalid-script",
    message: "context attribute must be static"
  },
  invalid_script_context_value: {
    code: "invalid-script",
    message: 'If the context attribute is supplied, its value must be "module"'
  },
  invalid_tag_name: {
    code: "invalid-tag-name",
    message: "Expected valid tag name"
  },
  /**
   * @param {string[]} tags
   * @param {string} match
   */
  invalid_tag_name_svelte_element: (e, t) => ({
    code: "invalid-tag-name",
    message: "Valid <svelte:...> tag names are ".concat(I$t(e)).concat(t ? " (did you mean " + t + "?)" : "")
  }),
  /** @param {string} block */
  invalid_then_placement_unclosed_block: (e) => ({
    code: "invalid-then-placement",
    message: "Expected to close ".concat(e, " before seeing {:then} block")
  }),
  invalid_then_placement_without_await: {
    code: "invalid-then-placement",
    message: "Cannot have an {:then} block outside an {#await ...} block"
  },
  /**
   * @param {string} name
   */
  invalid_void_content: (e) => ({
    code: "invalid-void-content",
    message: "<".concat(e, "> is a void element and cannot have children, or a closing tag")
  }),
  missing_component_definition: {
    code: "missing-component-definition",
    message: "<svelte:component> must have a 'this' attribute"
  },
  missing_attribute_value: {
    code: "missing-attribute-value",
    message: "Expected value for the attribute"
  },
  missing_element_definition: {
    code: "missing-element-definition",
    message: "<svelte:element> must have a 'this' attribute"
  },
  unclosed_script: {
    code: "unclosed-script",
    message: "<script> must have a closing tag"
  },
  unclosed_style: {
    code: "unclosed-style",
    message: "<style> must have a closing tag"
  },
  unclosed_comment: {
    code: "unclosed-comment",
    message: "comment was left open, expected -->"
  },
  /**
   * @param {string} token
   */
  unclosed_attribute_value: (e) => ({
    code: "unclosed-attribute-value",
    message: "Expected to close the attribute value with ".concat(e)
  }),
  unexpected_block_close: {
    code: "unexpected-block-close",
    message: "Unexpected block closing tag"
  },
  unexpected_eof: {
    code: "unexpected-eof",
    message: "Unexpected end of input"
  },
  /**
   * @param {string} token
   */
  unexpected_eof_token: (e) => ({
    code: "unexpected-eof",
    message: "Unexpected ".concat(e)
  }),
  /**
   * @param {string} token
   */
  unexpected_token: (e) => ({
    code: "unexpected-token",
    message: "Expected ".concat(e)
  }),
  unexpected_token_destructure: {
    code: "unexpected-token",
    message: "Expected identifier or destructure pattern"
  }
};
var k$t = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 80, 3, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 343, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 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, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 726, 6, 110, 6, 6, 9, 4759, 9, 787719, 239], Nbe = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 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, 39, 27, 10, 22, 251, 41, 7, 1, 17, 2, 60, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 42, 9, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 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, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 496, 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, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191], O$t = "‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࢗ-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-ᫎᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‌‍‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯・꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏０-９＿･", Dbe = "ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢎࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೝೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲊᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꟍꟐꟑꟓꟕ-Ƛꟲ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ﬀ-ﬆﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼＡ-Ｚａ-ｚｦ-ﾾￂ-ￇￊ-ￏￒ-ￗￚ-ￜ", F3 = {
  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"
}, j3 = "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", N$t = {
  5: j3,
  "5module": j3 + " export import",
  6: j3 + " const class extends export import super"
}, D$t = /^in(stanceof)?$/, L$t = new RegExp("[" + Dbe + "]"), M$t = new RegExp("[" + Dbe + O$t + "]");
function F8(e, t) {
  for (var r = 65536, i = 0; i < t.length; i += 2) {
    if (r += t[i], r > e)
      return !1;
    if (r += t[i + 1], r >= e)
      return !0;
  }
  return !1;
}
function _f(e, t) {
  return e < 65 ? e === 36 : e < 91 ? !0 : e < 97 ? e === 95 : e < 123 ? !0 : e <= 65535 ? e >= 170 && L$t.test(String.fromCharCode(e)) : t === !1 ? !1 : F8(e, Nbe);
}
function tg(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 && M$t.test(String.fromCharCode(e)) : t === !1 ? !1 : F8(e, Nbe) || F8(e, k$t);
}
var mi = function(t, r) {
  r === void 0 && (r = {}), this.label = t, this.keyword = r.keyword, this.beforeExpr = !!r.beforeExpr, this.startsExpr = !!r.startsExpr, this.isLoop = !!r.isLoop, this.isAssign = !!r.isAssign, this.prefix = !!r.prefix, this.postfix = !!r.postfix, this.binop = r.binop || null, this.updateContext = null;
};
function bl(e, t) {
  return new mi(e, { beforeExpr: !0, binop: t });
}
var vl = { beforeExpr: !0 }, La = { startsExpr: !0 }, W7 = {};
function ci(e, t) {
  return t === void 0 && (t = {}), t.keyword = e, W7[e] = new mi(e, t);
}
var Ae = {
  num: new mi("num", La),
  regexp: new mi("regexp", La),
  string: new mi("string", La),
  name: new mi("name", La),
  privateId: new mi("privateId", La),
  eof: new mi("eof"),
  // Punctuation token types.
  bracketL: new mi("[", { beforeExpr: !0, startsExpr: !0 }),
  bracketR: new mi("]"),
  braceL: new mi("{", { beforeExpr: !0, startsExpr: !0 }),
  braceR: new mi("}"),
  parenL: new mi("(", { beforeExpr: !0, startsExpr: !0 }),
  parenR: new mi(")"),
  comma: new mi(",", vl),
  semi: new mi(";", vl),
  colon: new mi(":", vl),
  dot: new mi("."),
  question: new mi("?", vl),
  questionDot: new mi("?."),
  arrow: new mi("=>", vl),
  template: new mi("template"),
  invalidTemplate: new mi("invalidTemplate"),
  ellipsis: new mi("...", vl),
  backQuote: new mi("`", La),
  dollarBraceL: new mi("${", { beforeExpr: !0, startsExpr: !0 }),
  // Operators. These carry several kinds of properties to help the
  // parser use them properly (the presence of these properties is
  // what categorizes them as operators).
  //
  // `binop`, when present, specifies that this operator is a binary
  // operator, and will refer to its precedence.
  //
  // `prefix` and `postfix` mark the operator as a prefix or postfix
  // unary operator.
  //
  // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as
  // binary operators with a very low precedence, that should result
  // in AssignmentExpression nodes.
  eq: new mi("=", { beforeExpr: !0, isAssign: !0 }),
  assign: new mi("_=", { beforeExpr: !0, isAssign: !0 }),
  incDec: new mi("++/--", { prefix: !0, postfix: !0, startsExpr: !0 }),
  prefix: new mi("!/~", { beforeExpr: !0, prefix: !0, startsExpr: !0 }),
  logicalOR: bl("||", 1),
  logicalAND: bl("&&", 2),
  bitwiseOR: bl("|", 3),
  bitwiseXOR: bl("^", 4),
  bitwiseAND: bl("&", 5),
  equality: bl("==/!=/===/!==", 6),
  relational: bl("</>/<=/>=", 7),
  bitShift: bl("<</>>/>>>", 8),
  plusMin: new mi("+/-", { beforeExpr: !0, binop: 9, prefix: !0, startsExpr: !0 }),
  modulo: bl("%", 10),
  star: bl("*", 10),
  slash: bl("/", 10),
  starstar: new mi("**", { beforeExpr: !0 }),
  coalesce: bl("??", 1),
  // Keyword token types.
  _break: ci("break"),
  _case: ci("case", vl),
  _catch: ci("catch"),
  _continue: ci("continue"),
  _debugger: ci("debugger"),
  _default: ci("default", vl),
  _do: ci("do", { isLoop: !0, beforeExpr: !0 }),
  _else: ci("else", vl),
  _finally: ci("finally"),
  _for: ci("for", { isLoop: !0 }),
  _function: ci("function", La),
  _if: ci("if"),
  _return: ci("return", vl),
  _switch: ci("switch"),
  _throw: ci("throw", vl),
  _try: ci("try"),
  _var: ci("var"),
  _const: ci("const"),
  _while: ci("while", { isLoop: !0 }),
  _with: ci("with"),
  _new: ci("new", { beforeExpr: !0, startsExpr: !0 }),
  _this: ci("this", La),
  _super: ci("super", La),
  _class: ci("class", La),
  _extends: ci("extends", vl),
  _export: ci("export"),
  _import: ci("import", La),
  _null: ci("null", La),
  _true: ci("true", La),
  _false: ci("false", La),
  _in: ci("in", { beforeExpr: !0, binop: 7 }),
  _instanceof: ci("instanceof", { beforeExpr: !0, binop: 7 }),
  _typeof: ci("typeof", { beforeExpr: !0, prefix: !0, startsExpr: !0 }),
  _void: ci("void", { beforeExpr: !0, prefix: !0, startsExpr: !0 }),
  _delete: ci("delete", { beforeExpr: !0, prefix: !0, startsExpr: !0 })
}, Ql = /\r\n?|\n|\u2028|\u2029/, R$t = new RegExp(Ql.source, "g");
function Ug(e) {
  return e === 10 || e === 13 || e === 8232 || e === 8233;
}
function Lbe(e, t, r) {
  r === void 0 && (r = e.length);
  for (var i = t; i < r; i++) {
    var n = e.charCodeAt(i);
    if (Ug(n))
      return i < r - 1 && n === 13 && e.charCodeAt(i + 1) === 10 ? i + 2 : i + 1;
  }
  return -1;
}
var Mbe = /[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/, kl = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g, Rbe = Object.prototype, B$t = Rbe.hasOwnProperty, F$t = Rbe.toString, qg = Object.hasOwn || function(e, t) {
  return B$t.call(e, t);
}, Oee = Array.isArray || function(e) {
  return F$t.call(e) === "[object Array]";
}, Nee = /* @__PURE__ */ Object.create(null);
function wh(e) {
  return Nee[e] || (Nee[e] = new RegExp("^(?:" + e.replace(/ /g, "|") + ")$"));
}
function If(e) {
  return e <= 65535 ? String.fromCharCode(e) : (e -= 65536, String.fromCharCode((e >> 10) + 55296, (e & 1023) + 56320));
}
var j$t = /(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/, aT = function(t, r) {
  this.line = t, this.column = r;
};
aT.prototype.offset = function(t) {
  return new aT(this.line, this.column + t);
};
var $I = function(t, r, i) {
  this.start = r, this.end = i, t.sourceFile !== null && (this.source = t.sourceFile);
};
function Bbe(e, t) {
  for (var r = 1, i = 0; ; ) {
    var n = Lbe(e, i, t);
    if (n < 0)
      return new aT(r, t - i);
    ++r, i = n;
  }
}
var j8 = {
  // `ecmaVersion` indicates the ECMAScript version to parse. Must be
  // either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10
  // (2019), 11 (2020), 12 (2021), 13 (2022), 14 (2023), or `"latest"`
  // (the latest version the library supports). This influences
  // support for strict mode, the set of reserved words, and support
  // for new syntax features.
  ecmaVersion: null,
  // `sourceType` indicates the mode the code should be parsed in.
  // Can be either `"script"` or `"module"`. This influences global
  // strict mode and parsing of `import` and `export` declarations.
  sourceType: "script",
  // `onInsertedSemicolon` can be a callback that will be called when
  // a semicolon is automatically inserted. It will be passed the
  // position of the inserted semicolon as an offset, and if
  // `locations` is enabled, it is given the location as a `{line,
  // column}` object as second argument.
  onInsertedSemicolon: null,
  // `onTrailingComma` is similar to `onInsertedSemicolon`, but for
  // trailing commas.
  onTrailingComma: null,
  // By default, reserved words are only enforced if ecmaVersion >= 5.
  // Set `allowReserved` to a boolean value to explicitly turn this on
  // an off. When this option has the value "never", reserved words
  // and keywords can also not be used as property names.
  allowReserved: null,
  // When enabled, a return at the top level is not considered an
  // error.
  allowReturnOutsideFunction: !1,
  // When enabled, import/export statements are not constrained to
  // appearing at the top of the program, and an import.meta expression
  // in a script isn't considered an error.
  allowImportExportEverywhere: !1,
  // By default, await identifiers are allowed to appear at the top-level scope only if ecmaVersion >= 2022.
  // When enabled, await identifiers are allowed to appear at the top-level scope,
  // but they are still not allowed in non-async functions.
  allowAwaitOutsideFunction: null,
  // When enabled, super identifiers are not constrained to
  // appearing in methods and do not raise an error when they appear elsewhere.
  allowSuperOutsideMethod: null,
  // When enabled, hashbang directive in the beginning of file is
  // allowed and treated as a line comment. Enabled by default when
  // `ecmaVersion` >= 2023.
  allowHashBang: !1,
  // By default, the parser will verify that private properties are
  // only used in places where they are valid and have been declared.
  // Set this to false to turn such checks off.
  checkPrivateFields: !0,
  // When `locations` is on, `loc` properties holding objects with
  // `start` and `end` properties in `{line, column}` form (with
  // line being 1-based and column 0-based) will be attached to the
  // nodes.
  locations: !1,
  // A function can be passed as `onToken` option, which will
  // cause Acorn to call that function with object in the same
  // format as tokens returned from `tokenizer().getToken()`. Note
  // that you are not allowed to call the parser from the
  // callback—that will corrupt its internal state.
  onToken: null,
  // A function can be passed as `onComment` option, which will
  // cause Acorn to call that function with `(block, text, start,
  // end)` parameters whenever a comment is skipped. `block` is a
  // boolean indicating whether this is a block (`/* */`) comment,
  // `text` is the content of the comment, and `start` and `end` are
  // character offsets that denote the start and end of the comment.
  // When the `locations` option is on, two more parameters are
  // passed, the full `{line, column}` locations of the start and
  // end of the comments. Note that you are not allowed to call the
  // parser from the callback—that will corrupt its internal state.
  // When this option has an array as value, objects representing the
  // comments are pushed to it.
  onComment: null,
  // Nodes have their start and end characters offsets recorded in
  // `start` and `end` properties (directly on the node, rather than
  // the `loc` object, which holds line/column data. To also add a
  // [semi-standardized][range] `range` property holding a `[start,
  // end]` array with the same numbers, set the `ranges` option to
  // `true`.
  //
  // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678
  ranges: !1,
  // It is possible to parse multiple files into a single AST by
  // passing the tree produced by parsing the first file as
  // `program` option in subsequent parses. This will add the
  // toplevel forms of the parsed file to the `Program` (top) node
  // of an existing parse tree.
  program: null,
  // When `locations` is on, you can pass this to record the source
  // file in every node's `loc` object.
  sourceFile: null,
  // This value, if given, is stored in every node, whether
  // `locations` is on or off.
  directSourceFile: null,
  // When enabled, parenthesized expressions are represented by
  // (non-standard) ParenthesizedExpression nodes
  preserveParens: !1
}, Dee = !1;
function $$t(e) {
  var t = {};
  for (var r in j8)
    t[r] = e && qg(e, r) ? e[r] : j8[r];
  if (t.ecmaVersion === "latest" ? t.ecmaVersion = 1e8 : t.ecmaVersion == null ? (!Dee && typeof console == "object" && console.warn && (Dee = !0, console.warn("Since Acorn 8.0.0, options.ecmaVersion is required.\nDefaulting to 2020, but this will stop working in the future.")), t.ecmaVersion = 11) : t.ecmaVersion >= 2015 && (t.ecmaVersion -= 2009), t.allowReserved == null && (t.allowReserved = t.ecmaVersion < 5), (!e || e.allowHashBang == null) && (t.allowHashBang = t.ecmaVersion >= 14), Oee(t.onToken)) {
    var i = t.onToken;
    t.onToken = function(n) {
      return i.push(n);
    };
  }
  return Oee(t.onComment) && (t.onComment = U$t(t, t.onComment)), t;
}
function U$t(e, t) {
  return function(r, i, n, s, a, o) {
    var l = {
      type: r ? "Block" : "Line",
      value: i,
      start: n,
      end: s
    };
    e.locations && (l.loc = new $I(this, a, o)), e.ranges && (l.range = [n, s]), t.push(l);
  };
}
var oT = 1, Vg = 2, H7 = 4, Fbe = 8, jbe = 16, $be = 32, K7 = 64, Ube = 128, xS = 256, z7 = oT | Vg | xS;
function G7(e, t) {
  return Vg | (e ? H7 : 0) | (t ? Fbe : 0);
}
var aA = 0, Y7 = 1, Uf = 2, qbe = 3, Vbe = 4, Wbe = 5, Wn = function(t, r, i) {
  this.options = t = $$t(t), this.sourceFile = t.sourceFile, this.keywords = wh(N$t[t.ecmaVersion >= 6 ? 6 : t.sourceType === "module" ? "5module" : 5]);
  var n = "";
  t.allowReserved !== !0 && (n = F3[t.ecmaVersion >= 6 ? 6 : t.ecmaVersion === 5 ? 5 : 3], t.sourceType === "module" && (n += " await")), this.reservedWords = wh(n);
  var s = (n ? n + " " : "") + F3.strict;
  this.reservedWordsStrict = wh(s), this.reservedWordsStrictBind = wh(s + " " + F3.strictBind), this.input = String(r), this.containsEsc = !1, i ? (this.pos = i, this.lineStart = this.input.lastIndexOf("\n", i - 1) + 1, this.curLine = this.input.slice(0, this.lineStart).split(Ql).length) : (this.pos = this.lineStart = 0, this.curLine = 1), this.type = Ae.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(oT), this.regexpState = null, this.privateNameStack = [];
}, xp = { 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 } };
Wn.prototype.parse = function() {
  var t = this.options.program || this.startNode();
  return this.nextToken(), this.parseTopLevel(t);
};
xp.inFunction.get = function() {
  return (this.currentVarScope().flags & Vg) > 0;
};
xp.inGenerator.get = function() {
  return (this.currentVarScope().flags & Fbe) > 0 && !this.currentVarScope().inClassFieldInit;
};
xp.inAsync.get = function() {
  return (this.currentVarScope().flags & H7) > 0 && !this.currentVarScope().inClassFieldInit;
};
xp.canAwait.get = function() {
  for (var e = this.scopeStack.length - 1; e >= 0; e--) {
    var t = this.scopeStack[e];
    if (t.inClassFieldInit || t.flags & xS)
      return !1;
    if (t.flags & Vg)
      return (t.flags & H7) > 0;
  }
  return this.inModule && this.options.ecmaVersion >= 13 || this.options.allowAwaitOutsideFunction;
};
xp.allowSuper.get = function() {
  var e = this.currentThisScope(), t = e.flags, r = e.inClassFieldInit;
  return (t & K7) > 0 || r || this.options.allowSuperOutsideMethod;
};
xp.allowDirectSuper.get = function() {
  return (this.currentThisScope().flags & Ube) > 0;
};
xp.treatFunctionsAsVar.get = function() {
  return this.treatFunctionsAsVarInScope(this.currentScope());
};
xp.allowNewDotTarget.get = function() {
  var e = this.currentThisScope(), t = e.flags, r = e.inClassFieldInit;
  return (t & (Vg | xS)) > 0 || r;
};
xp.inClassStaticBlock.get = function() {
  return (this.currentVarScope().flags & xS) > 0;
};
Wn.extend = function() {
  for (var t = [], r = arguments.length; r--; )
    t[r] = arguments[r];
  for (var i = this, n = 0; n < t.length; n++)
    i = t[n](i);
  return i;
};
Wn.parse = function(t, r) {
  return new this(r, t).parse();
};
Wn.parseExpressionAt = function(t, r, i) {
  var n = new this(i, t, r);
  return n.nextToken(), n.parseExpression();
};
Wn.tokenizer = function(t, r) {
  return new this(r, t);
};
Object.defineProperties(Wn.prototype, xp);
var da = Wn.prototype, q$t = /^(?:'((?:\\[^]|[^'\\])*?)'|"((?:\\[^]|[^"\\])*?)")/;
da.strictDirective = function(e) {
  if (this.options.ecmaVersion < 5)
    return !1;
  for (; ; ) {
    kl.lastIndex = e, e += kl.exec(this.input)[0].length;
    var t = q$t.exec(this.input.slice(e));
    if (!t)
      return !1;
    if ((t[1] || t[2]) === "use strict") {
      kl.lastIndex = e + t[0].length;
      var r = kl.exec(this.input), i = r.index + r[0].length, n = this.input.charAt(i);
      return n === ";" || n === "}" || Ql.test(r[0]) && !(/[(`.[+\-/*%<>=,?^&]/.test(n) || n === "!" && this.input.charAt(i + 1) === "=");
    }
    e += t[0].length, kl.lastIndex = e, e += kl.exec(this.input)[0].length, this.input[e] === ";" && e++;
  }
};
da.eat = function(e) {
  return this.type === e ? (this.next(), !0) : !1;
};
da.isContextual = function(e) {
  return this.type === Ae.name && this.value === e && !this.containsEsc;
};
da.eatContextual = function(e) {
  return this.isContextual(e) ? (this.next(), !0) : !1;
};
da.expectContextual = function(e) {
  this.eatContextual(e) || this.unexpected();
};
da.canInsertSemicolon = function() {
  return this.type === Ae.eof || this.type === Ae.braceR || Ql.test(this.input.slice(this.lastTokEnd, this.start));
};
da.insertSemicolon = function() {
  if (this.canInsertSemicolon())
    return this.options.onInsertedSemicolon && this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc), !0;
};
da.semicolon = function() {
  !this.eat(Ae.semi) && !this.insertSemicolon() && this.unexpected();
};
da.afterTrailingComma = function(e, t) {
  if (this.type === e)
    return this.options.onTrailingComma && this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc), t || this.next(), !0;
};
da.expect = function(e) {
  this.eat(e) || this.unexpected();
};
da.unexpected = function(e) {
  this.raise(e != null ? e : this.start, "Unexpected token");
};
var UI = function() {
  this.shorthandAssign = this.trailingComma = this.parenthesizedAssign = this.parenthesizedBind = this.doubleProto = -1;
};
da.checkPatternErrors = function(e, t) {
  if (e) {
    e.trailingComma > -1 && this.raiseRecoverable(e.trailingComma, "Comma is not permitted after the rest element");
    var r = t ? e.parenthesizedAssign : e.parenthesizedBind;
    r > -1 && this.raiseRecoverable(r, t ? "Assigning to rvalue" : "Parenthesized pattern");
  }
};
da.checkExpressionErrors = function(e, t) {
  if (!e)
    return !1;
  var r = e.shorthandAssign, i = e.doubleProto;
  if (!t)
    return r >= 0 || i >= 0;
  r >= 0 && this.raise(r, "Shorthand property assignments are valid only in destructuring patterns"), i >= 0 && this.raiseRecoverable(i, "Redefinition of __proto__ property");
};
da.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");
};
da.isSimpleAssignTarget = function(e) {
  return e.type === "ParenthesizedExpression" ? this.isSimpleAssignTarget(e.expression) : e.type === "Identifier" || e.type === "MemberExpression";
};
var tr = Wn.prototype;
tr.parseTopLevel = function(e) {
  var t = /* @__PURE__ */ Object.create(null);
  for (e.body || (e.body = []); this.type !== Ae.eof; ) {
    var r = this.parseStatement(null, !0, t);
    e.body.push(r);
  }
  if (this.inModule)
    for (var i = 0, n = Object.keys(this.undefinedExports); i < n.length; i += 1) {
      var s = n[i];
      this.raiseRecoverable(this.undefinedExports[s].start, "Export '" + s + "' is not defined");
    }
  return this.adaptDirectivePrologue(e.body), this.next(), e.sourceType = this.options.sourceType, this.finishNode(e, "Program");
};
var X7 = { kind: "loop" }, V$t = { kind: "switch" };
tr.isLet = function(e) {
  if (this.options.ecmaVersion < 6 || !this.isContextual("let"))
    return !1;
  kl.lastIndex = this.pos;
  var t = kl.exec(this.input), r = this.pos + t[0].length, i = this.input.charCodeAt(r);
  if (i === 91 || i === 92)
    return !0;
  if (e)
    return !1;
  if (i === 123 || i > 55295 && i < 56320)
    return !0;
  if (_f(i, !0)) {
    for (var n = r + 1; tg(i = this.input.charCodeAt(n), !0); )
      ++n;
    if (i === 92 || i > 55295 && i < 56320)
      return !0;
    var s = this.input.slice(r, n);
    if (!D$t.test(s))
      return !0;
  }
  return !1;
};
tr.isAsyncFunction = function() {
  if (this.options.ecmaVersion < 8 || !this.isContextual("async"))
    return !1;
  kl.lastIndex = this.pos;
  var e = kl.exec(this.input), t = this.pos + e[0].length, r;
  return !Ql.test(this.input.slice(this.pos, t)) && this.input.slice(t, t + 8) === "function" && (t + 8 === this.input.length || !(tg(r = this.input.charCodeAt(t + 8)) || r > 55295 && r < 56320));
};
tr.parseStatement = function(e, t, r) {
  var i = this.type, n = this.startNode(), s;
  switch (this.isLet(e) && (i = Ae._var, s = "let"), i) {
    case Ae._break:
    case Ae._continue:
      return this.parseBreakContinueStatement(n, i.keyword);
    case Ae._debugger:
      return this.parseDebuggerStatement(n);
    case Ae._do:
      return this.parseDoStatement(n);
    case Ae._for:
      return this.parseForStatement(n);
    case Ae._function:
      return e && (this.strict || e !== "if" && e !== "label") && this.options.ecmaVersion >= 6 && this.unexpected(), this.parseFunctionStatement(n, !1, !e);
    case Ae._class:
      return e && this.unexpected(), this.parseClass(n, !0);
    case Ae._if:
      return this.parseIfStatement(n);
    case Ae._return:
      return this.parseReturnStatement(n);
    case Ae._switch:
      return this.parseSwitchStatement(n);
    case Ae._throw:
      return this.parseThrowStatement(n);
    case Ae._try:
      return this.parseTryStatement(n);
    case Ae._const:
    case Ae._var:
      return s = s || this.value, e && s !== "var" && this.unexpected(), this.parseVarStatement(n, s);
    case Ae._while:
      return this.parseWhileStatement(n);
    case Ae._with:
      return this.parseWithStatement(n);
    case Ae.braceL:
      return this.parseBlock(!0, n);
    case Ae.semi:
      return this.parseEmptyStatement(n);
    case Ae._export:
    case Ae._import:
      if (this.options.ecmaVersion > 10 && i === Ae._import) {
        kl.lastIndex = this.pos;
        var a = kl.exec(this.input), o = this.pos + a[0].length, l = this.input.charCodeAt(o);
        if (l === 40 || l === 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'")), i === Ae._import ? this.parseImport(n) : this.parseExport(n, r);
    default:
      if (this.isAsyncFunction())
        return e && this.unexpected(), this.next(), this.parseFunctionStatement(n, !0, !e);
      var u = this.value, c = this.parseExpression();
      return i === Ae.name && c.type === "Identifier" && this.eat(Ae.colon) ? this.parseLabeledStatement(n, u, c, e) : this.parseExpressionStatement(n, c);
  }
};
tr.parseBreakContinueStatement = function(e, t) {
  var r = t === "break";
  this.next(), this.eat(Ae.semi) || this.insertSemicolon() ? e.label = null : this.type !== Ae.name ? this.unexpected() : (e.label = this.parseIdent(), this.semicolon());
  for (var i = 0; i < this.labels.length; ++i) {
    var n = this.labels[i];
    if ((e.label == null || n.name === e.label.name) && (n.kind != null && (r || n.kind === "loop") || e.label && r))
      break;
  }
  return i === this.labels.length && this.raise(e.start, "Unsyntactic " + t), this.finishNode(e, r ? "BreakStatement" : "ContinueStatement");
};
tr.parseDebuggerStatement = function(e) {
  return this.next(), this.semicolon(), this.finishNode(e, "DebuggerStatement");
};
tr.parseDoStatement = function(e) {
  return this.next(), this.labels.push(X7), e.body = this.parseStatement("do"), this.labels.pop(), this.expect(Ae._while), e.test = this.parseParenExpression(), this.options.ecmaVersion >= 6 ? this.eat(Ae.semi) : this.semicolon(), this.finishNode(e, "DoWhileStatement");
};
tr.parseForStatement = function(e) {
  this.next();
  var t = this.options.ecmaVersion >= 9 && this.canAwait && this.eatContextual("await") ? this.lastTokStart : -1;
  if (this.labels.push(X7), this.enterScope(0), this.expect(Ae.parenL), this.type === Ae.semi)
    return t > -1 && this.unexpected(t), this.parseFor(e, null);
  var r = this.isLet();
  if (this.type === Ae._var || this.type === Ae._const || r) {
    var i = this.startNode(), n = r ? "let" : this.value;
    return this.next(), this.parseVar(i, !0, n), this.finishNode(i, "VariableDeclaration"), (this.type === Ae._in || this.options.ecmaVersion >= 6 && this.isContextual("of")) && i.declarations.length === 1 ? (this.options.ecmaVersion >= 9 && (this.type === Ae._in ? t > -1 && this.unexpected(t) : e.await = t > -1), this.parseForIn(e, i)) : (t > -1 && this.unexpected(t), this.parseFor(e, i));
  }
  var s = this.isContextual("let"), a = !1, o = this.containsEsc, l = new UI(), u = this.start, c = t > -1 ? this.parseExprSubscripts(l, "await") : this.parseExpression(!0, l);
  return this.type === Ae._in || (a = this.options.ecmaVersion >= 6 && this.isContextual("of")) ? (t > -1 ? (this.type === Ae._in && this.unexpected(t), e.await = !0) : a && this.options.ecmaVersion >= 8 && (c.start === u && !o && c.type === "Identifier" && c.name === "async" ? this.unexpected() : this.options.ecmaVersion >= 9 && (e.await = !1)), s && a && this.raise(c.start, "The left-hand side of a for-of loop may not start with 'let'."), this.toAssignable(c, !1, l), this.checkLValPattern(c), this.parseForIn(e, c)) : (this.checkExpressionErrors(l, !0), t > -1 && this.unexpected(t), this.parseFor(e, c));
};
tr.parseFunctionStatement = function(e, t, r) {
  return this.next(), this.parseFunction(e, ov | (r ? 0 : $8), !1, t);
};
tr.parseIfStatement = function(e) {
  return this.next(), e.test = this.parseParenExpression(), e.consequent = this.parseStatement("if"), e.alternate = this.eat(Ae._else) ? this.parseStatement("if") : null, this.finishNode(e, "IfStatement");
};
tr.parseReturnStatement = function(e) {
  return !this.inFunction && !this.options.allowReturnOutsideFunction && this.raise(this.start, "'return' outside of function"), this.next(), this.eat(Ae.semi) || this.insertSemicolon() ? e.argument = null : (e.argument = this.parseExpression(), this.semicolon()), this.finishNode(e, "ReturnStatement");
};
tr.parseSwitchStatement = function(e) {
  this.next(), e.discriminant = this.parseParenExpression(), e.cases = [], this.expect(Ae.braceL), this.labels.push(V$t), this.enterScope(0);
  for (var t, r = !1; this.type !== Ae.braceR; )
    if (this.type === Ae._case || this.type === Ae._default) {
      var i = this.type === Ae._case;
      t && this.finishNode(t, "SwitchCase"), e.cases.push(t = this.startNode()), t.consequent = [], this.next(), i ? t.test = this.parseExpression() : (r && this.raiseRecoverable(this.lastTokStart, "Multiple default clauses"), r = !0, t.test = null), this.expect(Ae.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");
};
tr.parseThrowStatement = function(e) {
  return this.next(), Ql.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 W$t = [];
tr.parseCatchClauseParam = function() {
  var e = this.parseBindingAtom(), t = e.type === "Identifier";
  return this.enterScope(t ? $be : 0), this.checkLValPattern(e, t ? Vbe : Uf), this.expect(Ae.parenR), e;
};
tr.parseTryStatement = function(e) {
  if (this.next(), e.block = this.parseBlock(), e.handler = null, this.type === Ae._catch) {
    var t = this.startNode();
    this.next(), this.eat(Ae.parenL) ? t.param = this.parseCatchClauseParam() : (this.options.ecmaVersion < 10 && this.unexpected(), t.param = null, this.enterScope(0)), t.body = this.parseBlock(!1), this.exitScope(), e.handler = this.finishNode(t, "CatchClause");
  }
  return e.finalizer = this.eat(Ae._finally) ? this.parseBlock() : null, !e.handler && !e.finalizer && this.raise(e.start, "Missing catch or finally clause"), this.finishNode(e, "TryStatement");
};
tr.parseVarStatement = function(e, t, r) {
  return this.next(), this.parseVar(e, !1, t, r), this.semicolon(), this.finishNode(e, "VariableDeclaration");
};
tr.parseWhileStatement = function(e) {
  return this.next(), e.test = this.parseParenExpression(), this.labels.push(X7), e.body = this.parseStatement("while"), this.labels.pop(), this.finishNode(e, "WhileStatement");
};
tr.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");
};
tr.parseEmptyStatement = function(e) {
  return this.next(), this.finishNode(e, "EmptyStatement");
};
tr.parseLabeledStatement = function(e, t, r, i) {
  for (var n = 0, s = this.labels; n < s.length; n += 1) {
    var a = s[n];
    a.name === t && this.raise(r.start, "Label '" + t + "' is already declared");
  }
  for (var o = this.type.isLoop ? "loop" : this.type === Ae._switch ? "switch" : null, l = this.labels.length - 1; l >= 0; l--) {
    var u = this.labels[l];
    if (u.statementStart === e.start)
      u.statementStart = this.start, u.kind = o;
    else
      break;
  }
  return this.labels.push({ name: t, kind: o, statementStart: this.start }), e.body = this.parseStatement(i ? i.indexOf("label") === -1 ? i + "label" : i : "label"), this.labels.pop(), e.label = r, this.finishNode(e, "LabeledStatement");
};
tr.parseExpressionStatement = function(e, t) {
  return e.expression = t, this.semicolon(), this.finishNode(e, "ExpressionStatement");
};
tr.parseBlock = function(e, t, r) {
  for (e === void 0 && (e = !0), t === void 0 && (t = this.startNode()), t.body = [], this.expect(Ae.braceL), e && this.enterScope(0); this.type !== Ae.braceR; ) {
    var i = this.parseStatement(null);
    t.body.push(i);
  }
  return r && (this.strict = !1), this.next(), e && this.exitScope(), this.finishNode(t, "BlockStatement");
};
tr.parseFor = function(e, t) {
  return e.init = t, this.expect(Ae.semi), e.test = this.type === Ae.semi ? null : this.parseExpression(), this.expect(Ae.semi), e.update = this.type === Ae.parenR ? null : this.parseExpression(), this.expect(Ae.parenR), e.body = this.parseStatement("for"), this.exitScope(), this.labels.pop(), this.finishNode(e, "ForStatement");
};
tr.parseForIn = function(e, t) {
  var r = this.type === Ae._in;
  return this.next(), t.type === "VariableDeclaration" && t.declarations[0].init != null && (!r || this.options.ecmaVersion < 8 || this.strict || t.kind !== "var" || t.declarations[0].id.type !== "Identifier") && this.raise(
    t.start,
    (r ? "for-in" : "for-of") + " loop variable declaration may not have an initializer"
  ), e.left = t, e.right = r ? this.parseExpression() : this.parseMaybeAssign(), this.expect(Ae.parenR), e.body = this.parseStatement("for"), this.exitScope(), this.labels.pop(), this.finishNode(e, r ? "ForInStatement" : "ForOfStatement");
};
tr.parseVar = function(e, t, r, i) {
  for (e.declarations = [], e.kind = r; ; ) {
    var n = this.startNode();
    if (this.parseVarId(n, r), this.eat(Ae.eq) ? n.init = this.parseMaybeAssign(t) : !i && r === "const" && !(this.type === Ae._in || this.options.ecmaVersion >= 6 && this.isContextual("of")) ? this.unexpected() : !i && n.id.type !== "Identifier" && !(t && (this.type === Ae._in || this.isContextual("of"))) ? this.raise(this.lastTokEnd, "Complex binding patterns require an initialization value") : n.init = null, e.declarations.push(this.finishNode(n, "VariableDeclarator")), !this.eat(Ae.comma))
      break;
  }
  return e;
};
tr.parseVarId = function(e, t) {
  e.id = this.parseBindingAtom(), this.checkLValPattern(e.id, t === "var" ? Y7 : Uf, !1);
};
var ov = 1, $8 = 2, Hbe = 4;
tr.parseFunction = function(e, t, r, i, n) {
  this.initFunction(e), (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !i) && (this.type === Ae.star && t & $8 && this.unexpected(), e.generator = this.eat(Ae.star)), this.options.ecmaVersion >= 8 && (e.async = !!i), t & ov && (e.id = t & Hbe && this.type !== Ae.name ? null : this.parseIdent(), e.id && !(t & $8) && this.checkLValSimple(e.id, this.strict || e.generator || e.async ? this.treatFunctionsAsVar ? Y7 : Uf : qbe));
  var s = this.yieldPos, a = this.awaitPos, o = this.awaitIdentPos;
  return this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0, this.enterScope(G7(e.async, e.generator)), t & ov || (e.id = this.type === Ae.name ? this.parseIdent() : null), this.parseFunctionParams(e), this.parseFunctionBody(e, r, !1, n), this.yieldPos = s, this.awaitPos = a, this.awaitIdentPos = o, this.finishNode(e, t & ov ? "FunctionDeclaration" : "FunctionExpression");
};
tr.parseFunctionParams = function(e) {
  this.expect(Ae.parenL), e.params = this.parseBindingList(Ae.parenR, !1, this.options.ecmaVersion >= 8), this.checkYieldAwaitInDefaultParams();
};
tr.parseClass = function(e, t) {
  this.next();
  var r = this.strict;
  this.strict = !0, this.parseClassId(e, t), this.parseClassSuper(e);
  var i = this.enterClassBody(), n = this.startNode(), s = !1;
  for (n.body = [], this.expect(Ae.braceL); this.type !== Ae.braceR; ) {
    var a = this.parseClassElement(e.superClass !== null);
    a && (n.body.push(a), a.type === "MethodDefinition" && a.kind === "constructor" ? (s && this.raiseRecoverable(a.start, "Duplicate constructor in the same class"), s = !0) : a.key && a.key.type === "PrivateIdentifier" && H$t(i, a) && this.raiseRecoverable(a.key.start, "Identifier '#" + a.key.name + "' has already been declared"));
  }
  return this.strict = r, this.next(), e.body = this.finishNode(n, "ClassBody"), this.exitClassBody(), this.finishNode(e, t ? "ClassDeclaration" : "ClassExpression");
};
tr.parseClassElement = function(e) {
  if (this.eat(Ae.semi))
    return null;
  var t = this.options.ecmaVersion, r = this.startNode(), i = "", n = !1, s = !1, a = "method", o = !1;
  if (this.eatContextual("static")) {
    if (t >= 13 && this.eat(Ae.braceL))
      return this.parseClassStaticBlock(r), r;
    this.isClassElementNameStart() || this.type === Ae.star ? o = !0 : i = "static";
  }
  if (r.static = o, !i && t >= 8 && this.eatContextual("async") && ((this.isClassElementNameStart() || this.type === Ae.star) && !this.canInsertSemicolon() ? s = !0 : i = "async"), !i && (t >= 9 || !s) && this.eat(Ae.star) && (n = !0), !i && !s && !n) {
    var l = this.value;
    (this.eatContextual("get") || this.eatContextual("set")) && (this.isClassElementNameStart() ? a = l : i = l);
  }
  if (i ? (r.computed = !1, r.key = this.startNodeAt(this.lastTokStart, this.lastTokStartLoc), r.key.name = i, this.finishNode(r.key, "Identifier")) : this.parseClassElementName(r), t < 13 || this.type === Ae.parenL || a !== "method" || n || s) {
    var u = !r.static && oA(r, "constructor"), c = u && e;
    u && a !== "method" && this.raise(r.key.start, "Constructor can't have get/set modifier"), r.kind = u ? "constructor" : a, this.parseClassMethod(r, n, s, c);
  } else
    this.parseClassField(r);
  return r;
};
tr.isClassElementNameStart = function() {
  return this.type === Ae.name || this.type === Ae.privateId || this.type === Ae.num || this.type === Ae.string || this.type === Ae.bracketL || this.type.keyword;
};
tr.parseClassElementName = function(e) {
  this.type === Ae.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);
};
tr.parseClassMethod = function(e, t, r, i) {
  var n = e.key;
  e.kind === "constructor" ? (t && this.raise(n.start, "Constructor can't be a generator"), r && this.raise(n.start, "Constructor can't be an async method")) : e.static && oA(e, "prototype") && this.raise(n.start, "Classes may not have a static property named prototype");
  var s = e.value = this.parseMethod(t, r, i);
  return e.kind === "get" && s.params.length !== 0 && this.raiseRecoverable(s.start, "getter should have no params"), e.kind === "set" && s.params.length !== 1 && this.raiseRecoverable(s.start, "setter should have exactly one param"), e.kind === "set" && s.params[0].type === "RestElement" && this.raiseRecoverable(s.params[0].start, "Setter cannot use rest params"), this.finishNode(e, "MethodDefinition");
};
tr.parseClassField = function(e) {
  if (oA(e, "constructor") ? this.raise(e.key.start, "Classes can't have a field named 'constructor'") : e.static && oA(e, "prototype") && this.raise(e.key.start, "Classes can't have a static field named 'prototype'"), this.eat(Ae.eq)) {
    var t = this.currentThisScope(), r = t.inClassFieldInit;
    t.inClassFieldInit = !0, e.value = this.parseMaybeAssign(), t.inClassFieldInit = r;
  } else
    e.value = null;
  return this.semicolon(), this.finishNode(e, "PropertyDefinition");
};
tr.parseClassStaticBlock = function(e) {
  e.body = [];
  var t = this.labels;
  for (this.labels = [], this.enterScope(xS | K7); this.type !== Ae.braceR; ) {
    var r = this.parseStatement(null);
    e.body.push(r);
  }
  return this.next(), this.exitScope(), this.labels = t, this.finishNode(e, "StaticBlock");
};
tr.parseClassId = function(e, t) {
  this.type === Ae.name ? (e.id = this.parseIdent(), t && this.checkLValSimple(e.id, Uf, !1)) : (t === !0 && this.unexpected(), e.id = null);
};
tr.parseClassSuper = function(e) {
  e.superClass = this.eat(Ae._extends) ? this.parseExprSubscripts(null, !1) : null;
};
tr.enterClassBody = function() {
  var e = { declared: /* @__PURE__ */ Object.create(null), used: [] };
  return this.privateNameStack.push(e), e.declared;
};
tr.exitClassBody = function() {
  var e = this.privateNameStack.pop(), t = e.declared, r = e.used;
  if (this.options.checkPrivateFields)
    for (var i = this.privateNameStack.length, n = i === 0 ? null : this.privateNameStack[i - 1], s = 0; s < r.length; ++s) {
      var a = r[s];
      qg(t, a.name) || (n ? n.used.push(a) : this.raiseRecoverable(a.start, "Private field '#" + a.name + "' must be declared in an enclosing class"));
    }
};
function H$t(e, t) {
  var r = t.key.name, i = e[r], n = "true";
  return t.type === "MethodDefinition" && (t.kind === "get" || t.kind === "set") && (n = (t.static ? "s" : "i") + t.kind), i === "iget" && n === "iset" || i === "iset" && n === "iget" || i === "sget" && n === "sset" || i === "sset" && n === "sget" ? (e[r] = "true", !1) : i ? !0 : (e[r] = n, !1);
}
function oA(e, t) {
  var r = e.computed, i = e.key;
  return !r && (i.type === "Identifier" && i.name === t || i.type === "Literal" && i.value === t);
}
tr.parseExportAllDeclaration = function(e, t) {
  return this.options.ecmaVersion >= 11 && (this.eatContextual("as") ? (e.exported = this.parseModuleExportName(), this.checkExport(t, e.exported, this.lastTokStart)) : e.exported = null), this.expectContextual("from"), this.type !== Ae.string && this.unexpected(), e.source = this.parseExprAtom(), this.options.ecmaVersion >= 16 && (e.attributes = this.parseWithClause()), this.semicolon(), this.finishNode(e, "ExportAllDeclaration");
};
tr.parseExport = function(e, t) {
  if (this.next(), this.eat(Ae.star))
    return this.parseExportAllDeclaration(e, t);
  if (this.eat(Ae._default))
    return this.checkExport(t, "default", this.lastTokStart), e.declaration = this.parseExportDefaultDeclaration(), this.finishNode(e, "ExportDefaultDeclaration");
  if (this.shouldParseExportStatement())
    e.declaration = this.parseExportDeclaration(e), e.declaration.type === "VariableDeclaration" ? this.checkVariableExport(t, e.declaration.declarations) : this.checkExport(t, e.declaration.id, e.declaration.id.start), e.specifiers = [], e.source = null;
  else {
    if (e.declaration = null, e.specifiers = this.parseExportSpecifiers(t), this.eatContextual("from"))
      this.type !== Ae.string && this.unexpected(), e.source = this.parseExprAtom(), this.options.ecmaVersion >= 16 && (e.attributes = this.parseWithClause());
    else {
      for (var r = 0, i = e.specifiers; r < i.length; r += 1) {
        var n = i[r];
        this.checkUnreserved(n.local), this.checkLocalExport(n.local), n.local.type === "Literal" && this.raise(n.local.start, "A string literal cannot be used as an exported binding without `from`.");
      }
      e.source = null;
    }
    this.semicolon();
  }
  return this.finishNode(e, "ExportNamedDeclaration");
};
tr.parseExportDeclaration = function(e) {
  return this.parseStatement(null);
};
tr.parseExportDefaultDeclaration = function() {
  var e;
  if (this.type === Ae._function || (e = this.isAsyncFunction())) {
    var t = this.startNode();
    return this.next(), e && this.next(), this.parseFunction(t, ov | Hbe, !1, e);
  } else if (this.type === Ae._class) {
    var r = this.startNode();
    return this.parseClass(r, "nullableID");
  } else {
    var i = this.parseMaybeAssign();
    return this.semicolon(), i;
  }
};
tr.checkExport = function(e, t, r) {
  e && (typeof t != "string" && (t = t.type === "Identifier" ? t.name : t.value), qg(e, t) && this.raiseRecoverable(r, "Duplicate export '" + t + "'"), e[t] = !0);
};
tr.checkPatternExport = function(e, t) {
  var r = t.type;
  if (r === "Identifier")
    this.checkExport(e, t, t.start);
  else if (r === "ObjectPattern")
    for (var i = 0, n = t.properties; i < n.length; i += 1) {
      var s = n[i];
      this.checkPatternExport(e, s);
    }
  else if (r === "ArrayPattern")
    for (var a = 0, o = t.elements; a < o.length; a += 1) {
      var l = o[a];
      l && this.checkPatternExport(e, l);
    }
  else
    r === "Property" ? this.checkPatternExport(e, t.value) : r === "AssignmentPattern" ? this.checkPatternExport(e, t.left) : r === "RestElement" && this.checkPatternExport(e, t.argument);
};
tr.checkVariableExport = function(e, t) {
  if (e)
    for (var r = 0, i = t; r < i.length; r += 1) {
      var n = i[r];
      this.checkPatternExport(e, n.id);
    }
};
tr.shouldParseExportStatement = function() {
  return this.type.keyword === "var" || this.type.keyword === "const" || this.type.keyword === "class" || this.type.keyword === "function" || this.isLet() || this.isAsyncFunction();
};
tr.parseExportSpecifier = function(e) {
  var t = this.startNode();
  return t.local = this.parseModuleExportName(), t.exported = this.eatContextual("as") ? this.parseModuleExportName() : t.local, this.checkExport(
    e,
    t.exported,
    t.exported.start
  ), this.finishNode(t, "ExportSpecifier");
};
tr.parseExportSpecifiers = function(e) {
  var t = [], r = !0;
  for (this.expect(Ae.braceL); !this.eat(Ae.braceR); ) {
    if (r)
      r = !1;
    else if (this.expect(Ae.comma), this.afterTrailingComma(Ae.braceR))
      break;
    t.push(this.parseExportSpecifier(e));
  }
  return t;
};
tr.parseImport = function(e) {
  return this.next(), this.type === Ae.string ? (e.specifiers = W$t, e.source = this.parseExprAtom()) : (e.specifiers = this.parseImportSpecifiers(), this.expectContextual("from"), e.source = this.type === Ae.string ? this.parseExprAtom() : this.unexpected()), this.options.ecmaVersion >= 16 && (e.attributes = this.parseWithClause()), this.semicolon(), this.finishNode(e, "ImportDeclaration");
};
tr.parseImportSpecifier = function() {
  var e = this.startNode();
  return e.imported = this.parseModuleExportName(), this.eatContextual("as") ? e.local = this.parseIdent() : (this.checkUnreserved(e.imported), e.local = e.imported), this.checkLValSimple(e.local, Uf), this.finishNode(e, "ImportSpecifier");
};
tr.parseImportDefaultSpecifier = function() {
  var e = this.startNode();
  return e.local = this.parseIdent(), this.checkLValSimple(e.local, Uf), this.finishNode(e, "ImportDefaultSpecifier");
};
tr.parseImportNamespaceSpecifier = function() {
  var e = this.startNode();
  return this.next(), this.expectContextual("as"), e.local = this.parseIdent(), this.checkLValSimple(e.local, Uf), this.finishNode(e, "ImportNamespaceSpecifier");
};
tr.parseImportSpecifiers = function() {
  var e = [], t = !0;
  if (this.type === Ae.name && (e.push(this.parseImportDefaultSpecifier()), !this.eat(Ae.comma)))
    return e;
  if (this.type === Ae.star)
    return e.push(this.parseImportNamespaceSpecifier()), e;
  for (this.expect(Ae.braceL); !this.eat(Ae.braceR); ) {
    if (t)
      t = !1;
    else if (this.expect(Ae.comma), this.afterTrailingComma(Ae.braceR))
      break;
    e.push(this.parseImportSpecifier());
  }
  return e;
};
tr.parseWithClause = function() {
  var e = [];
  if (!this.eat(Ae._with))
    return e;
  this.expect(Ae.braceL);
  for (var t = {}, r = !0; !this.eat(Ae.braceR); ) {
    if (r)
      r = !1;
    else if (this.expect(Ae.comma), this.afterTrailingComma(Ae.braceR))
      break;
    var i = this.parseImportAttribute(), n = i.key.type === "Identifier" ? i.key.name : i.key.value;
    qg(t, n) && this.raiseRecoverable(i.key.start, "Duplicate attribute key '" + n + "'"), t[n] = !0, e.push(i);
  }
  return e;
};
tr.parseImportAttribute = function() {
  var e = this.startNode();
  return e.key = this.type === Ae.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never"), this.expect(Ae.colon), this.type !== Ae.string && this.unexpected(), e.value = this.parseExprAtom(), this.finishNode(e, "ImportAttribute");
};
tr.parseModuleExportName = function() {
  if (this.options.ecmaVersion >= 13 && this.type === Ae.string) {
    var e = this.parseLiteral(this.value);
    return j$t.test(e.value) && this.raise(e.start, "An export name cannot include a lone surrogate."), e;
  }
  return this.parseIdent(!0);
};
tr.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);
};
tr.isDirectiveCandidate = function(e) {
  return this.options.ecmaVersion >= 5 && e.type === "ExpressionStatement" && e.expression.type === "Literal" && typeof e.expression.value == "string" && // Reject parenthesized strings.
  (this.input[e.start] === '"' || this.input[e.start] === "'");
};
var Zl = Wn.prototype;
Zl.toAssignable = function(e, t, r) {
  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", r && this.checkPatternErrors(r, !0);
        for (var i = 0, n = e.properties; i < n.length; i += 1) {
          var s = n[i];
          this.toAssignable(s, t), s.type === "RestElement" && (s.argument.type === "ArrayPattern" || s.argument.type === "ObjectPattern") && this.raise(s.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", r && this.checkPatternErrors(r, !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, r);
        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
    r && this.checkPatternErrors(r, !0);
  return e;
};
Zl.toAssignableList = function(e, t) {
  for (var r = e.length, i = 0; i < r; i++) {
    var n = e[i];
    n && this.toAssignable(n, t);
  }
  if (r) {
    var s = e[r - 1];
    this.options.ecmaVersion === 6 && t && s && s.type === "RestElement" && s.argument.type !== "Identifier" && this.unexpected(s.argument.start);
  }
  return e;
};
Zl.parseSpread = function(e) {
  var t = this.startNode();
  return this.next(), t.argument = this.parseMaybeAssign(!1, e), this.finishNode(t, "SpreadElement");
};
Zl.parseRestBinding = function() {
  var e = this.startNode();
  return this.next(), this.options.ecmaVersion === 6 && this.type !== Ae.name && this.unexpected(), e.argument = this.parseBindingAtom(), this.finishNode(e, "RestElement");
};
Zl.parseBindingAtom = function() {
  if (this.options.ecmaVersion >= 6)
    switch (this.type) {
      case Ae.bracketL:
        var e = this.startNode();
        return this.next(), e.elements = this.parseBindingList(Ae.bracketR, !0, !0), this.finishNode(e, "ArrayPattern");
      case Ae.braceL:
        return this.parseObj(!0);
    }
  return this.parseIdent();
};
Zl.parseBindingList = function(e, t, r, i) {
  for (var n = [], s = !0; !this.eat(e); )
    if (s ? s = !1 : this.expect(Ae.comma), t && this.type === Ae.comma)
      n.push(null);
    else {
      if (r && this.afterTrailingComma(e))
        break;
      if (this.type === Ae.ellipsis) {
        var a = this.parseRestBinding();
        this.parseBindingListItem(a), n.push(a), this.type === Ae.comma && this.raiseRecoverable(this.start, "Comma is not permitted after the rest element"), this.expect(e);
        break;
      } else
        n.push(this.parseAssignableListItem(i));
    }
  return n;
};
Zl.parseAssignableListItem = function(e) {
  var t = this.parseMaybeDefault(this.start, this.startLoc);
  return this.parseBindingListItem(t), t;
};
Zl.parseBindingListItem = function(e) {
  return e;
};
Zl.parseMaybeDefault = function(e, t, r) {
  if (r = r || this.parseBindingAtom(), this.options.ecmaVersion < 6 || !this.eat(Ae.eq))
    return r;
  var i = this.startNodeAt(e, t);
  return i.left = r, i.right = this.parseMaybeAssign(), this.finishNode(i, "AssignmentPattern");
};
Zl.checkLValSimple = function(e, t, r) {
  t === void 0 && (t = aA);
  var i = t !== aA;
  switch (e.type) {
    case "Identifier":
      this.strict && this.reservedWordsStrictBind.test(e.name) && this.raiseRecoverable(e.start, (i ? "Binding " : "Assigning to ") + e.name + " in strict mode"), i && (t === Uf && e.name === "let" && this.raiseRecoverable(e.start, "let is disallowed as a lexically bound name"), r && (qg(r, e.name) && this.raiseRecoverable(e.start, "Argument name clash"), r[e.name] = !0), t !== Wbe && 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":
      i && this.raiseRecoverable(e.start, "Binding member expression");
      break;
    case "ParenthesizedExpression":
      return i && this.raiseRecoverable(e.start, "Binding parenthesized expression"), this.checkLValSimple(e.expression, t, r);
    default:
      this.raise(e.start, (i ? "Binding" : "Assigning to") + " rvalue");
  }
};
Zl.checkLValPattern = function(e, t, r) {
  switch (t === void 0 && (t = aA), e.type) {
    case "ObjectPattern":
      for (var i = 0, n = e.properties; i < n.length; i += 1) {
        var s = n[i];
        this.checkLValInnerPattern(s, t, r);
      }
      break;
    case "ArrayPattern":
      for (var a = 0, o = e.elements; a < o.length; a += 1) {
        var l = o[a];
        l && this.checkLValInnerPattern(l, t, r);
      }
      break;
    default:
      this.checkLValSimple(e, t, r);
  }
};
Zl.checkLValInnerPattern = function(e, t, r) {
  switch (t === void 0 && (t = aA), e.type) {
    case "Property":
      this.checkLValInnerPattern(e.value, t, r);
      break;
    case "AssignmentPattern":
      this.checkLValPattern(e.left, t, r);
      break;
    case "RestElement":
      this.checkLValPattern(e.argument, t, r);
      break;
    default:
      this.checkLValPattern(e, t, r);
  }
};
var wc = function(t, r, i, n, s) {
  this.token = t, this.isExpr = !!r, this.preserveSpace = !!i, this.override = n, this.generator = !!s;
}, dn = {
  b_stat: new wc("{", !1),
  b_expr: new wc("{", !0),
  b_tmpl: new wc("${", !1),
  p_stat: new wc("(", !1),
  p_expr: new wc("(", !0),
  q_tmpl: new wc("`", !0, !0, function(e) {
    return e.tryReadTemplateToken();
  }),
  f_stat: new wc("function", !1),
  f_expr: new wc("function", !0),
  f_expr_gen: new wc("function", !0, !1, null, !0),
  f_gen: new wc("function", !1, !1, null, !0)
}, Wg = Wn.prototype;
Wg.initialContext = function() {
  return [dn.b_stat];
};
Wg.curContext = function() {
  return this.context[this.context.length - 1];
};
Wg.braceIsBlock = function(e) {
  var t = this.curContext();
  return t === dn.f_expr || t === dn.f_stat ? !0 : e === Ae.colon && (t === dn.b_stat || t === dn.b_expr) ? !t.isExpr : e === Ae._return || e === Ae.name && this.exprAllowed ? Ql.test(this.input.slice(this.lastTokEnd, this.start)) : e === Ae._else || e === Ae.semi || e === Ae.eof || e === Ae.parenR || e === Ae.arrow ? !0 : e === Ae.braceL ? t === dn.b_stat : e === Ae._var || e === Ae._const || e === Ae.name ? !1 : !this.exprAllowed;
};
Wg.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;
};
Wg.updateContext = function(e) {
  var t, r = this.type;
  r.keyword && e === Ae.dot ? this.exprAllowed = !1 : (t = r.updateContext) ? t.call(this, e) : this.exprAllowed = r.beforeExpr;
};
Wg.overrideContext = function(e) {
  this.curContext() !== e && (this.context[this.context.length - 1] = e);
};
Ae.parenR.updateContext = Ae.braceR.updateContext = function() {
  if (this.context.length === 1) {
    this.exprAllowed = !0;
    return;
  }
  var e = this.context.pop();
  e === dn.b_stat && this.curContext().token === "function" && (e = this.context.pop()), this.exprAllowed = !e.isExpr;
};
Ae.braceL.updateContext = function(e) {
  this.context.push(this.braceIsBlock(e) ? dn.b_stat : dn.b_expr), this.exprAllowed = !0;
};
Ae.dollarBraceL.updateContext = function() {
  this.context.push(dn.b_tmpl), this.exprAllowed = !0;
};
Ae.parenL.updateContext = function(e) {
  var t = e === Ae._if || e === Ae._for || e === Ae._with || e === Ae._while;
  this.context.push(t ? dn.p_stat : dn.p_expr), this.exprAllowed = !0;
};
Ae.incDec.updateContext = function() {
};
Ae._function.updateContext = Ae._class.updateContext = function(e) {
  e.beforeExpr && e !== Ae._else && !(e === Ae.semi && this.curContext() !== dn.p_stat) && !(e === Ae._return && Ql.test(this.input.slice(this.lastTokEnd, this.start))) && !((e === Ae.colon || e === Ae.braceL) && this.curContext() === dn.b_stat) ? this.context.push(dn.f_expr) : this.context.push(dn.f_stat), this.exprAllowed = !1;
};
Ae.colon.updateContext = function() {
  this.curContext().token === "function" && this.context.pop(), this.exprAllowed = !0;
};
Ae.backQuote.updateContext = function() {
  this.curContext() === dn.q_tmpl ? this.context.pop() : this.context.push(dn.q_tmpl), this.exprAllowed = !1;
};
Ae.star.updateContext = function(e) {
  if (e === Ae._function) {
    var t = this.context.length - 1;
    this.context[t] === dn.f_expr ? this.context[t] = dn.f_expr_gen : this.context[t] = dn.f_gen;
  }
  this.exprAllowed = !0;
};
Ae.name.updateContext = function(e) {
  var t = !1;
  this.options.ecmaVersion >= 6 && e !== Ae.dot && (this.value === "of" && !this.exprAllowed || this.value === "yield" && this.inGeneratorContext()) && (t = !0), this.exprAllowed = t;
};
var Ar = Wn.prototype;
Ar.checkPropClash = function(e, t, r) {
  if (!(this.options.ecmaVersion >= 9 && e.type === "SpreadElement") && !(this.options.ecmaVersion >= 6 && (e.computed || e.method || e.shorthand))) {
    var i = e.key, n;
    switch (i.type) {
      case "Identifier":
        n = i.name;
        break;
      case "Literal":
        n = String(i.value);
        break;
      default:
        return;
    }
    var s = e.kind;
    if (this.options.ecmaVersion >= 6) {
      n === "__proto__" && s === "init" && (t.proto && (r ? r.doubleProto < 0 && (r.doubleProto = i.start) : this.raiseRecoverable(i.start, "Redefinition of __proto__ property")), t.proto = !0);
      return;
    }
    n = "$" + n;
    var a = t[n];
    if (a) {
      var o;
      s === "init" ? o = this.strict && a.init || a.get || a.set : o = a.init || a[s], o && this.raiseRecoverable(i.start, "Redefinition of property");
    } else
      a = t[n] = {
        init: !1,
        get: !1,
        set: !1
      };
    a[s] = !0;
  }
};
Ar.parseExpression = function(e, t) {
  var r = this.start, i = this.startLoc, n = this.parseMaybeAssign(e, t);
  if (this.type === Ae.comma) {
    var s = this.startNodeAt(r, i);
    for (s.expressions = [n]; this.eat(Ae.comma); )
      s.expressions.push(this.parseMaybeAssign(e, t));
    return this.finishNode(s, "SequenceExpression");
  }
  return n;
};
Ar.parseMaybeAssign = function(e, t, r) {
  if (this.isContextual("yield")) {
    if (this.inGenerator)
      return this.parseYield(e);
    this.exprAllowed = !1;
  }
  var i = !1, n = -1, s = -1, a = -1;
  t ? (n = t.parenthesizedAssign, s = t.trailingComma, a = t.doubleProto, t.parenthesizedAssign = t.trailingComma = -1) : (t = new UI(), i = !0);
  var o = this.start, l = this.startLoc;
  (this.type === Ae.parenL || this.type === Ae.name) && (this.potentialArrowAt = this.start, this.potentialArrowInForAwait = e === "await");
  var u = this.parseMaybeConditional(e, t);
  if (r && (u = r.call(this, u, o, l)), this.type.isAssign) {
    var c = this.startNodeAt(o, l);
    return c.operator = this.value, this.type === Ae.eq && (u = this.toAssignable(u, !1, t)), i || (t.parenthesizedAssign = t.trailingComma = t.doubleProto = -1), t.shorthandAssign >= u.start && (t.shorthandAssign = -1), this.type === Ae.eq ? this.checkLValPattern(u) : this.checkLValSimple(u), c.left = u, this.next(), c.right = this.parseMaybeAssign(e), a > -1 && (t.doubleProto = a), this.finishNode(c, "AssignmentExpression");
  } else
    i && this.checkExpressionErrors(t, !0);
  return n > -1 && (t.parenthesizedAssign = n), s > -1 && (t.trailingComma = s), u;
};
Ar.parseMaybeConditional = function(e, t) {
  var r = this.start, i = this.startLoc, n = this.parseExprOps(e, t);
  if (this.checkExpressionErrors(t))
    return n;
  if (this.eat(Ae.question)) {
    var s = this.startNodeAt(r, i);
    return s.test = n, s.consequent = this.parseMaybeAssign(), this.expect(Ae.colon), s.alternate = this.parseMaybeAssign(e), this.finishNode(s, "ConditionalExpression");
  }
  return n;
};
Ar.parseExprOps = function(e, t) {
  var r = this.start, i = this.startLoc, n = this.parseMaybeUnary(t, !1, !1, e);
  return this.checkExpressionErrors(t) || n.start === r && n.type === "ArrowFunctionExpression" ? n : this.parseExprOp(n, r, i, -1, e);
};
Ar.parseExprOp = function(e, t, r, i, n) {
  var s = this.type.binop;
  if (s != null && (!n || this.type !== Ae._in) && s > i) {
    var a = this.type === Ae.logicalOR || this.type === Ae.logicalAND, o = this.type === Ae.coalesce;
    o && (s = Ae.logicalAND.binop);
    var l = this.value;
    this.next();
    var u = this.start, c = this.startLoc, f = this.parseExprOp(this.parseMaybeUnary(null, !1, !1, n), u, c, s, n), h = this.buildBinary(t, r, e, f, l, a || o);
    return (a && this.type === Ae.coalesce || o && (this.type === Ae.logicalOR || this.type === Ae.logicalAND)) && this.raiseRecoverable(this.start, "Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"), this.parseExprOp(h, t, r, i, n);
  }
  return e;
};
Ar.buildBinary = function(e, t, r, i, n, s) {
  i.type === "PrivateIdentifier" && this.raise(i.start, "Private identifier can only be left side of binary expression");
  var a = this.startNodeAt(e, t);
  return a.left = r, a.operator = n, a.right = i, this.finishNode(a, s ? "LogicalExpression" : "BinaryExpression");
};
Ar.parseMaybeUnary = function(e, t, r, i) {
  var n = this.start, s = this.startLoc, a;
  if (this.isContextual("await") && this.canAwait)
    a = this.parseAwait(i), t = !0;
  else if (this.type.prefix) {
    var o = this.startNode(), l = this.type === Ae.incDec;
    o.operator = this.value, o.prefix = !0, this.next(), o.argument = this.parseMaybeUnary(null, !0, l, i), this.checkExpressionErrors(e, !0), l ? this.checkLValSimple(o.argument) : this.strict && o.operator === "delete" && Kbe(o.argument) ? this.raiseRecoverable(o.start, "Deleting local variable in strict mode") : o.operator === "delete" && U8(o.argument) ? this.raiseRecoverable(o.start, "Private fields can not be deleted") : t = !0, a = this.finishNode(o, l ? "UpdateExpression" : "UnaryExpression");
  } else if (!t && this.type === Ae.privateId)
    (i || this.privateNameStack.length === 0) && this.options.checkPrivateFields && this.unexpected(), a = this.parsePrivateIdent(), this.type !== Ae._in && this.unexpected();
  else {
    if (a = this.parseExprSubscripts(e, i), this.checkExpressionErrors(e))
      return a;
    for (; this.type.postfix && !this.canInsertSemicolon(); ) {
      var u = this.startNodeAt(n, s);
      u.operator = this.value, u.prefix = !1, u.argument = a, this.checkLValSimple(a), this.next(), a = this.finishNode(u, "UpdateExpression");
    }
  }
  if (!r && this.eat(Ae.starstar))
    if (t)
      this.unexpected(this.lastTokStart);
    else
      return this.buildBinary(n, s, a, this.parseMaybeUnary(null, !1, !1, i), "**", !1);
  else
    return a;
};
function Kbe(e) {
  return e.type === "Identifier" || e.type === "ParenthesizedExpression" && Kbe(e.expression);
}
function U8(e) {
  return e.type === "MemberExpression" && e.property.type === "PrivateIdentifier" || e.type === "ChainExpression" && U8(e.expression) || e.type === "ParenthesizedExpression" && U8(e.expression);
}
Ar.parseExprSubscripts = function(e, t) {
  var r = this.start, i = this.startLoc, n = this.parseExprAtom(e, t);
  if (n.type === "ArrowFunctionExpression" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== ")")
    return n;
  var s = this.parseSubscripts(n, r, i, !1, t);
  return e && s.type === "MemberExpression" && (e.parenthesizedAssign >= s.start && (e.parenthesizedAssign = -1), e.parenthesizedBind >= s.start && (e.parenthesizedBind = -1), e.trailingComma >= s.start && (e.trailingComma = -1)), s;
};
Ar.parseSubscripts = function(e, t, r, i, n) {
  for (var s = 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 o = this.parseSubscript(e, t, r, i, s, a, n);
    if (o.optional && (a = !0), o === e || o.type === "ArrowFunctionExpression") {
      if (a) {
        var l = this.startNodeAt(t, r);
        l.expression = o, o = this.finishNode(l, "ChainExpression");
      }
      return o;
    }
    e = o;
  }
};
Ar.shouldParseAsyncArrow = function() {
  return !this.canInsertSemicolon() && this.eat(Ae.arrow);
};
Ar.parseSubscriptAsyncArrow = function(e, t, r, i) {
  return this.parseArrowExpression(this.startNodeAt(e, t), r, !0, i);
};
Ar.parseSubscript = function(e, t, r, i, n, s, a) {
  var o = this.options.ecmaVersion >= 11, l = o && this.eat(Ae.questionDot);
  i && l && this.raise(this.lastTokStart, "Optional chaining cannot appear in the callee of new expressions");
  var u = this.eat(Ae.bracketL);
  if (u || l && this.type !== Ae.parenL && this.type !== Ae.backQuote || this.eat(Ae.dot)) {
    var c = this.startNodeAt(t, r);
    c.object = e, u ? (c.property = this.parseExpression(), this.expect(Ae.bracketR)) : this.type === Ae.privateId && e.type !== "Super" ? c.property = this.parsePrivateIdent() : c.property = this.parseIdent(this.options.allowReserved !== "never"), c.computed = !!u, o && (c.optional = l), e = this.finishNode(c, "MemberExpression");
  } else if (!i && this.eat(Ae.parenL)) {
    var f = new UI(), h = this.yieldPos, m = this.awaitPos, g = this.awaitIdentPos;
    this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0;
    var y = this.parseExprList(Ae.parenR, this.options.ecmaVersion >= 8, !1, f);
    if (n && !l && this.shouldParseAsyncArrow())
      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 = h, this.awaitPos = m, this.awaitIdentPos = g, this.parseSubscriptAsyncArrow(t, r, y, a);
    this.checkExpressionErrors(f, !0), this.yieldPos = h || this.yieldPos, this.awaitPos = m || this.awaitPos, this.awaitIdentPos = g || this.awaitIdentPos;
    var v = this.startNodeAt(t, r);
    v.callee = e, v.arguments = y, o && (v.optional = l), e = this.finishNode(v, "CallExpression");
  } else if (this.type === Ae.backQuote) {
    (l || s) && this.raise(this.start, "Optional chaining cannot appear in the tag of tagged template expressions");
    var T = this.startNodeAt(t, r);
    T.tag = e, T.quasi = this.parseTemplate({ isTagged: !0 }), e = this.finishNode(T, "TaggedTemplateExpression");
  }
  return e;
};
Ar.parseExprAtom = function(e, t, r) {
  this.type === Ae.slash && this.readRegexp();
  var i, n = this.potentialArrowAt === this.start;
  switch (this.type) {
    case Ae._super:
      return this.allowSuper || this.raise(this.start, "'super' keyword outside a method"), i = this.startNode(), this.next(), this.type === Ae.parenL && !this.allowDirectSuper && this.raise(i.start, "super() call outside constructor of a subclass"), this.type !== Ae.dot && this.type !== Ae.bracketL && this.type !== Ae.parenL && this.unexpected(), this.finishNode(i, "Super");
    case Ae._this:
      return i = this.startNode(), this.next(), this.finishNode(i, "ThisExpression");
    case Ae.name:
      var s = this.start, a = this.startLoc, o = this.containsEsc, l = this.parseIdent(!1);
      if (this.options.ecmaVersion >= 8 && !o && l.name === "async" && !this.canInsertSemicolon() && this.eat(Ae._function))
        return this.overrideContext(dn.f_expr), this.parseFunction(this.startNodeAt(s, a), 0, !1, !0, t);
      if (n && !this.canInsertSemicolon()) {
        if (this.eat(Ae.arrow))
          return this.parseArrowExpression(this.startNodeAt(s, a), [l], !1, t);
        if (this.options.ecmaVersion >= 8 && l.name === "async" && this.type === Ae.name && !o && (!this.potentialArrowInForAwait || this.value !== "of" || this.containsEsc))
          return l = this.parseIdent(!1), (this.canInsertSemicolon() || !this.eat(Ae.arrow)) && this.unexpected(), this.parseArrowExpression(this.startNodeAt(s, a), [l], !0, t);
      }
      return l;
    case Ae.regexp:
      var u = this.value;
      return i = this.parseLiteral(u.value), i.regex = { pattern: u.pattern, flags: u.flags }, i;
    case Ae.num:
    case Ae.string:
      return this.parseLiteral(this.value);
    case Ae._null:
    case Ae._true:
    case Ae._false:
      return i = this.startNode(), i.value = this.type === Ae._null ? null : this.type === Ae._true, i.raw = this.type.keyword, this.next(), this.finishNode(i, "Literal");
    case Ae.parenL:
      var c = this.start, f = this.parseParenAndDistinguishExpression(n, t);
      return e && (e.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(f) && (e.parenthesizedAssign = c), e.parenthesizedBind < 0 && (e.parenthesizedBind = c)), f;
    case Ae.bracketL:
      return i = this.startNode(), this.next(), i.elements = this.parseExprList(Ae.bracketR, !0, !0, e), this.finishNode(i, "ArrayExpression");
    case Ae.braceL:
      return this.overrideContext(dn.b_expr), this.parseObj(!1, e);
    case Ae._function:
      return i = this.startNode(), this.next(), this.parseFunction(i, 0);
    case Ae._class:
      return this.parseClass(this.startNode(), !1);
    case Ae._new:
      return this.parseNew();
    case Ae.backQuote:
      return this.parseTemplate();
    case Ae._import:
      return this.options.ecmaVersion >= 11 ? this.parseExprImport(r) : this.unexpected();
    default:
      return this.parseExprAtomDefault();
  }
};
Ar.parseExprAtomDefault = function() {
  this.unexpected();
};
Ar.parseExprImport = function(e) {
  var t = this.startNode();
  if (this.containsEsc && this.raiseRecoverable(this.start, "Escape sequence in keyword import"), this.next(), this.type === Ae.parenL && !e)
    return this.parseDynamicImport(t);
  if (this.type === Ae.dot) {
    var r = this.startNodeAt(t.start, t.loc && t.loc.start);
    return r.name = "import", t.meta = this.finishNode(r, "Identifier"), this.parseImportMeta(t);
  } else
    this.unexpected();
};
Ar.parseDynamicImport = function(e) {
  if (this.next(), e.source = this.parseMaybeAssign(), this.options.ecmaVersion >= 16)
    this.eat(Ae.parenR) ? e.options = null : (this.expect(Ae.comma), this.afterTrailingComma(Ae.parenR) ? e.options = null : (e.options = this.parseMaybeAssign(), this.eat(Ae.parenR) || (this.expect(Ae.comma), this.afterTrailingComma(Ae.parenR) || this.unexpected())));
  else if (!this.eat(Ae.parenR)) {
    var t = this.start;
    this.eat(Ae.comma) && this.eat(Ae.parenR) ? this.raiseRecoverable(t, "Trailing comma is not allowed in import()") : this.unexpected(t);
  }
  return this.finishNode(e, "ImportExpression");
};
Ar.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");
};
Ar.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");
};
Ar.parseParenExpression = function() {
  this.expect(Ae.parenL);
  var e = this.parseExpression();
  return this.expect(Ae.parenR), e;
};
Ar.shouldParseArrow = function(e) {
  return !this.canInsertSemicolon();
};
Ar.parseParenAndDistinguishExpression = function(e, t) {
  var r = this.start, i = this.startLoc, n, s = this.options.ecmaVersion >= 8;
  if (this.options.ecmaVersion >= 6) {
    this.next();
    var a = this.start, o = this.startLoc, l = [], u = !0, c = !1, f = new UI(), h = this.yieldPos, m = this.awaitPos, g;
    for (this.yieldPos = 0, this.awaitPos = 0; this.type !== Ae.parenR; )
      if (u ? u = !1 : this.expect(Ae.comma), s && this.afterTrailingComma(Ae.parenR, !0)) {
        c = !0;
        break;
      } else if (this.type === Ae.ellipsis) {
        g = this.start, l.push(this.parseParenItem(this.parseRestBinding())), this.type === Ae.comma && this.raiseRecoverable(
          this.start,
          "Comma is not permitted after the rest element"
        );
        break;
      } else
        l.push(this.parseMaybeAssign(!1, f, this.parseParenItem));
    var y = this.lastTokEnd, v = this.lastTokEndLoc;
    if (this.expect(Ae.parenR), e && this.shouldParseArrow(l) && this.eat(Ae.arrow))
      return this.checkPatternErrors(f, !1), this.checkYieldAwaitInDefaultParams(), this.yieldPos = h, this.awaitPos = m, this.parseParenArrowList(r, i, l, t);
    (!l.length || c) && this.unexpected(this.lastTokStart), g && this.unexpected(g), this.checkExpressionErrors(f, !0), this.yieldPos = h || this.yieldPos, this.awaitPos = m || this.awaitPos, l.length > 1 ? (n = this.startNodeAt(a, o), n.expressions = l, this.finishNodeAt(n, "SequenceExpression", y, v)) : n = l[0];
  } else
    n = this.parseParenExpression();
  if (this.options.preserveParens) {
    var T = this.startNodeAt(r, i);
    return T.expression = n, this.finishNode(T, "ParenthesizedExpression");
  } else
    return n;
};
Ar.parseParenItem = function(e) {
  return e;
};
Ar.parseParenArrowList = function(e, t, r, i) {
  return this.parseArrowExpression(this.startNodeAt(e, t), r, !1, i);
};
var K$t = [];
Ar.parseNew = function() {
  this.containsEsc && this.raiseRecoverable(this.start, "Escape sequence in keyword new");
  var e = this.startNode();
  if (this.next(), this.options.ecmaVersion >= 6 && this.type === Ae.dot) {
    var t = this.startNodeAt(e.start, e.loc && e.loc.start);
    t.name = "new", e.meta = this.finishNode(t, "Identifier"), this.next();
    var r = 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'"), r && 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 i = this.start, n = this.startLoc;
  return e.callee = this.parseSubscripts(this.parseExprAtom(null, !1, !0), i, n, !0, !1), this.eat(Ae.parenL) ? e.arguments = this.parseExprList(Ae.parenR, this.options.ecmaVersion >= 8, !1) : e.arguments = K$t, this.finishNode(e, "NewExpression");
};
Ar.parseTemplateElement = function(e) {
  var t = e.isTagged, r = this.startNode();
  return this.type === Ae.invalidTemplate ? (t || this.raiseRecoverable(this.start, "Bad escape sequence in untagged template literal"), r.value = {
    raw: this.value.replace(/\r\n?/g, "\n"),
    cooked: null
  }) : r.value = {
    raw: this.input.slice(this.start, this.end).replace(/\r\n?/g, "\n"),
    cooked: this.value
  }, this.next(), r.tail = this.type === Ae.backQuote, this.finishNode(r, "TemplateElement");
};
Ar.parseTemplate = function(e) {
  e === void 0 && (e = {});
  var t = e.isTagged;
  t === void 0 && (t = !1);
  var r = this.startNode();
  this.next(), r.expressions = [];
  var i = this.parseTemplateElement({ isTagged: t });
  for (r.quasis = [i]; !i.tail; )
    this.type === Ae.eof && this.raise(this.pos, "Unterminated template literal"), this.expect(Ae.dollarBraceL), r.expressions.push(this.parseExpression()), this.expect(Ae.braceR), r.quasis.push(i = this.parseTemplateElement({ isTagged: t }));
  return this.next(), this.finishNode(r, "TemplateLiteral");
};
Ar.isAsyncProp = function(e) {
  return !e.computed && e.key.type === "Identifier" && e.key.name === "async" && (this.type === Ae.name || this.type === Ae.num || this.type === Ae.string || this.type === Ae.bracketL || this.type.keyword || this.options.ecmaVersion >= 9 && this.type === Ae.star) && !Ql.test(this.input.slice(this.lastTokEnd, this.start));
};
Ar.parseObj = function(e, t) {
  var r = this.startNode(), i = !0, n = {};
  for (r.properties = [], this.next(); !this.eat(Ae.braceR); ) {
    if (i)
      i = !1;
    else if (this.expect(Ae.comma), this.options.ecmaVersion >= 5 && this.afterTrailingComma(Ae.braceR))
      break;
    var s = this.parseProperty(e, t);
    e || this.checkPropClash(s, n, t), r.properties.push(s);
  }
  return this.finishNode(r, e ? "ObjectPattern" : "ObjectExpression");
};
Ar.parseProperty = function(e, t) {
  var r = this.startNode(), i, n, s, a;
  if (this.options.ecmaVersion >= 9 && this.eat(Ae.ellipsis))
    return e ? (r.argument = this.parseIdent(!1), this.type === Ae.comma && this.raiseRecoverable(this.start, "Comma is not permitted after the rest element"), this.finishNode(r, "RestElement")) : (r.argument = this.parseMaybeAssign(!1, t), this.type === Ae.comma && t && t.trailingComma < 0 && (t.trailingComma = this.start), this.finishNode(r, "SpreadElement"));
  this.options.ecmaVersion >= 6 && (r.method = !1, r.shorthand = !1, (e || t) && (s = this.start, a = this.startLoc), e || (i = this.eat(Ae.star)));
  var o = this.containsEsc;
  return this.parsePropertyName(r), !e && !o && this.options.ecmaVersion >= 8 && !i && this.isAsyncProp(r) ? (n = !0, i = this.options.ecmaVersion >= 9 && this.eat(Ae.star), this.parsePropertyName(r)) : n = !1, this.parsePropertyValue(r, e, i, n, s, a, t, o), this.finishNode(r, "Property");
};
Ar.parseGetterSetter = function(e) {
  e.kind = e.key.name, this.parsePropertyName(e), e.value = this.parseMethod(!1);
  var t = e.kind === "get" ? 0 : 1;
  if (e.value.params.length !== t) {
    var r = e.value.start;
    e.kind === "get" ? this.raiseRecoverable(r, "getter should have no params") : this.raiseRecoverable(r, "setter should have exactly one param");
  } else
    e.kind === "set" && e.value.params[0].type === "RestElement" && this.raiseRecoverable(e.value.params[0].start, "Setter cannot use rest params");
};
Ar.parsePropertyValue = function(e, t, r, i, n, s, a, o) {
  (r || i) && this.type === Ae.colon && this.unexpected(), this.eat(Ae.colon) ? (e.value = t ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(!1, a), e.kind = "init") : this.options.ecmaVersion >= 6 && this.type === Ae.parenL ? (t && this.unexpected(), e.kind = "init", e.method = !0, e.value = this.parseMethod(r, i)) : !t && !o && this.options.ecmaVersion >= 5 && !e.computed && e.key.type === "Identifier" && (e.key.name === "get" || e.key.name === "set") && this.type !== Ae.comma && this.type !== Ae.braceR && this.type !== Ae.eq ? ((r || i) && this.unexpected(), this.parseGetterSetter(e)) : this.options.ecmaVersion >= 6 && !e.computed && e.key.type === "Identifier" ? ((r || i) && this.unexpected(), this.checkUnreserved(e.key), e.key.name === "await" && !this.awaitIdentPos && (this.awaitIdentPos = n), e.kind = "init", t ? e.value = this.parseMaybeDefault(n, s, this.copyNode(e.key)) : this.type === Ae.eq && a ? (a.shorthandAssign < 0 && (a.shorthandAssign = this.start), e.value = this.parseMaybeDefault(n, s, this.copyNode(e.key))) : e.value = this.copyNode(e.key), e.shorthand = !0) : this.unexpected();
};
Ar.parsePropertyName = function(e) {
  if (this.options.ecmaVersion >= 6) {
    if (this.eat(Ae.bracketL))
      return e.computed = !0, e.key = this.parseMaybeAssign(), this.expect(Ae.bracketR), e.key;
    e.computed = !1;
  }
  return e.key = this.type === Ae.num || this.type === Ae.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never");
};
Ar.initFunction = function(e) {
  e.id = null, this.options.ecmaVersion >= 6 && (e.generator = e.expression = !1), this.options.ecmaVersion >= 8 && (e.async = !1);
};
Ar.parseMethod = function(e, t, r) {
  var i = this.startNode(), n = this.yieldPos, s = this.awaitPos, a = this.awaitIdentPos;
  return this.initFunction(i), this.options.ecmaVersion >= 6 && (i.generator = e), this.options.ecmaVersion >= 8 && (i.async = !!t), this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0, this.enterScope(G7(t, i.generator) | K7 | (r ? Ube : 0)), this.expect(Ae.parenL), i.params = this.parseBindingList(Ae.parenR, !1, this.options.ecmaVersion >= 8), this.checkYieldAwaitInDefaultParams(), this.parseFunctionBody(i, !1, !0, !1), this.yieldPos = n, this.awaitPos = s, this.awaitIdentPos = a, this.finishNode(i, "FunctionExpression");
};
Ar.parseArrowExpression = function(e, t, r, i) {
  var n = this.yieldPos, s = this.awaitPos, a = this.awaitIdentPos;
  return this.enterScope(G7(r, !1) | jbe), this.initFunction(e), this.options.ecmaVersion >= 8 && (e.async = !!r), this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0, e.params = this.toAssignableList(t, !0), this.parseFunctionBody(e, !0, !1, i), this.yieldPos = n, this.awaitPos = s, this.awaitIdentPos = a, this.finishNode(e, "ArrowFunctionExpression");
};
Ar.parseFunctionBody = function(e, t, r, i) {
  var n = t && this.type !== Ae.braceL, s = this.strict, a = !1;
  if (n)
    e.body = this.parseMaybeAssign(i), e.expression = !0, this.checkParams(e, !1);
  else {
    var o = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(e.params);
    (!s || o) && (a = this.strictDirective(this.end), a && o && this.raiseRecoverable(e.start, "Illegal 'use strict' directive in function with non-simple parameter list"));
    var l = this.labels;
    this.labels = [], a && (this.strict = !0), this.checkParams(e, !s && !a && !t && !r && this.isSimpleParamList(e.params)), this.strict && e.id && this.checkLValSimple(e.id, Wbe), e.body = this.parseBlock(!1, void 0, a && !s), e.expression = !1, this.adaptDirectivePrologue(e.body.body), this.labels = l;
  }
  this.exitScope();
};
Ar.isSimpleParamList = function(e) {
  for (var t = 0, r = e; t < r.length; t += 1) {
    var i = r[t];
    if (i.type !== "Identifier")
      return !1;
  }
  return !0;
};
Ar.checkParams = function(e, t) {
  for (var r = /* @__PURE__ */ Object.create(null), i = 0, n = e.params; i < n.length; i += 1) {
    var s = n[i];
    this.checkLValInnerPattern(s, Y7, t ? null : r);
  }
};
Ar.parseExprList = function(e, t, r, i) {
  for (var n = [], s = !0; !this.eat(e); ) {
    if (s)
      s = !1;
    else if (this.expect(Ae.comma), t && this.afterTrailingComma(e))
      break;
    var a = void 0;
    r && this.type === Ae.comma ? a = null : this.type === Ae.ellipsis ? (a = this.parseSpread(i), i && this.type === Ae.comma && i.trailingComma < 0 && (i.trailingComma = this.start)) : a = this.parseMaybeAssign(!1, i), n.push(a);
  }
  return n;
};
Ar.checkUnreserved = function(e) {
  var t = e.start, r = e.end, i = e.name;
  if (this.inGenerator && i === "yield" && this.raiseRecoverable(t, "Cannot use 'yield' as identifier inside a generator"), this.inAsync && i === "await" && this.raiseRecoverable(t, "Cannot use 'await' as identifier inside an async function"), this.currentThisScope().inClassFieldInit && i === "arguments" && this.raiseRecoverable(t, "Cannot use 'arguments' in class field initializer"), this.inClassStaticBlock && (i === "arguments" || i === "await") && this.raise(t, "Cannot use " + i + " in class static initialization block"), this.keywords.test(i) && this.raise(t, "Unexpected keyword '" + i + "'"), !(this.options.ecmaVersion < 6 && this.input.slice(t, r).indexOf("\\") !== -1)) {
    var n = this.strict ? this.reservedWordsStrict : this.reservedWords;
    n.test(i) && (!this.inAsync && i === "await" && this.raiseRecoverable(t, "Cannot use keyword 'await' outside an async function"), this.raiseRecoverable(t, "The keyword '" + i + "' is reserved"));
  }
};
Ar.parseIdent = function(e) {
  var t = this.parseIdentNode();
  return this.next(!!e), this.finishNode(t, "Identifier"), e || (this.checkUnreserved(t), t.name === "await" && !this.awaitIdentPos && (this.awaitIdentPos = t.start)), t;
};
Ar.parseIdentNode = function() {
  var e = this.startNode();
  return this.type === Ae.name ? e.name = this.value : this.type.keyword ? (e.name = this.type.keyword, (e.name === "class" || e.name === "function") && (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46) && this.context.pop(), this.type = Ae.name) : this.unexpected(), e;
};
Ar.parsePrivateIdent = function() {
  var e = this.startNode();
  return this.type === Ae.privateId ? e.name = this.value : this.unexpected(), this.next(), this.finishNode(e, "PrivateIdentifier"), this.options.checkPrivateFields && (this.privateNameStack.length === 0 ? this.raise(e.start, "Private field '#" + e.name + "' must be declared in an enclosing class") : this.privateNameStack[this.privateNameStack.length - 1].used.push(e)), e;
};
Ar.parseYield = function(e) {
  this.yieldPos || (this.yieldPos = this.start);
  var t = this.startNode();
  return this.next(), this.type === Ae.semi || this.canInsertSemicolon() || this.type !== Ae.star && !this.type.startsExpr ? (t.delegate = !1, t.argument = null) : (t.delegate = this.eat(Ae.star), t.argument = this.parseMaybeAssign(e)), this.finishNode(t, "YieldExpression");
};
Ar.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 lA = Wn.prototype;
lA.raise = function(e, t) {
  var r = Bbe(this.input, e);
  t += " (" + r.line + ":" + r.column + ")";
  var i = new SyntaxError(t);
  throw i.pos = e, i.loc = r, i.raisedAt = this.pos, i;
};
lA.raiseRecoverable = lA.raise;
lA.curPosition = function() {
  if (this.options.locations)
    return new aT(this.curLine, this.pos - this.lineStart);
};
var Xh = Wn.prototype, z$t = function(t) {
  this.flags = t, this.var = [], this.lexical = [], this.functions = [], this.inClassFieldInit = !1;
};
Xh.enterScope = function(e) {
  this.scopeStack.push(new z$t(e));
};
Xh.exitScope = function() {
  this.scopeStack.pop();
};
Xh.treatFunctionsAsVarInScope = function(e) {
  return e.flags & Vg || !this.inModule && e.flags & oT;
};
Xh.declareName = function(e, t, r) {
  var i = !1;
  if (t === Uf) {
    var n = this.currentScope();
    i = n.lexical.indexOf(e) > -1 || n.functions.indexOf(e) > -1 || n.var.indexOf(e) > -1, n.lexical.push(e), this.inModule && n.flags & oT && delete this.undefinedExports[e];
  } else if (t === Vbe) {
    var s = this.currentScope();
    s.lexical.push(e);
  } else if (t === qbe) {
    var a = this.currentScope();
    this.treatFunctionsAsVar ? i = a.lexical.indexOf(e) > -1 : i = a.lexical.indexOf(e) > -1 || a.var.indexOf(e) > -1, a.functions.push(e);
  } else
    for (var o = this.scopeStack.length - 1; o >= 0; --o) {
      var l = this.scopeStack[o];
      if (l.lexical.indexOf(e) > -1 && !(l.flags & $be && l.lexical[0] === e) || !this.treatFunctionsAsVarInScope(l) && l.functions.indexOf(e) > -1) {
        i = !0;
        break;
      }
      if (l.var.push(e), this.inModule && l.flags & oT && delete this.undefinedExports[e], l.flags & z7)
        break;
    }
  i && this.raiseRecoverable(r, "Identifier '" + e + "' has already been declared");
};
Xh.checkLocalExport = function(e) {
  this.scopeStack[0].lexical.indexOf(e.name) === -1 && this.scopeStack[0].var.indexOf(e.name) === -1 && (this.undefinedExports[e.name] = e);
};
Xh.currentScope = function() {
  return this.scopeStack[this.scopeStack.length - 1];
};
Xh.currentVarScope = function() {
  for (var e = this.scopeStack.length - 1; ; e--) {
    var t = this.scopeStack[e];
    if (t.flags & z7)
      return t;
  }
};
Xh.currentThisScope = function() {
  for (var e = this.scopeStack.length - 1; ; e--) {
    var t = this.scopeStack[e];
    if (t.flags & z7 && !(t.flags & jbe))
      return t;
  }
};
var qI = function(t, r, i) {
  this.type = "", this.start = r, this.end = 0, t.options.locations && (this.loc = new $I(t, i)), t.options.directSourceFile && (this.sourceFile = t.options.directSourceFile), t.options.ranges && (this.range = [r, 0]);
}, ES = Wn.prototype;
ES.startNode = function() {
  return new qI(this, this.start, this.startLoc);
};
ES.startNodeAt = function(e, t) {
  return new qI(this, e, t);
};
function zbe(e, t, r, i) {
  return e.type = t, e.end = r, this.options.locations && (e.loc.end = i), this.options.ranges && (e.range[1] = r), e;
}
ES.finishNode = function(e, t) {
  return zbe.call(this, e, t, this.lastTokEnd, this.lastTokEndLoc);
};
ES.finishNodeAt = function(e, t, r, i) {
  return zbe.call(this, e, t, r, i);
};
ES.copyNode = function(e) {
  var t = new qI(this, e.start, this.startLoc);
  for (var r in e)
    t[r] = e[r];
  return t;
};
var G$t = "Gara Garay Gukh Gurung_Khema Hrkt Katakana_Or_Hiragana Kawi Kirat_Rai Krai Nag_Mundari Nagm Ol_Onal Onao Sunu Sunuwar Todhri Todr Tulu_Tigalari Tutg Unknown Zzzz", Gbe = "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", Ybe = Gbe + " Extended_Pictographic", Xbe = Ybe, Jbe = Xbe + " EBase EComp EMod EPres ExtPict", Qbe = Jbe, Y$t = Qbe, X$t = {
  9: Gbe,
  10: Ybe,
  11: Xbe,
  12: Jbe,
  13: Qbe,
  14: Y$t
}, J$t = "Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji", Q$t = {
  9: "",
  10: "",
  11: "",
  12: "",
  13: "",
  14: J$t
}, Lee = "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", Zbe = "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", e0e = Zbe + " Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd", t0e = e0e + " Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho", r0e = t0e + " Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi", i0e = r0e + " Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith", Z$t = i0e + " " + G$t, e6t = {
  9: Zbe,
  10: e0e,
  11: t0e,
  12: r0e,
  13: i0e,
  14: Z$t
}, n0e = {};
function t6t(e) {
  var t = n0e[e] = {
    binary: wh(X$t[e] + " " + Lee),
    binaryOfStrings: wh(Q$t[e]),
    nonBinary: {
      General_Category: wh(Lee),
      Script: wh(e6t[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 $3 = 0, Mee = [9, 10, 11, 12, 13, 14]; $3 < Mee.length; $3 += 1) {
  var r6t = Mee[$3];
  t6t(r6t);
}
var Jt = Wn.prototype, uA = function(t, r) {
  this.parent = t, this.base = r || this;
};
uA.prototype.separatedFrom = function(t) {
  for (var r = this; r; r = r.parent)
    for (var i = t; i; i = i.parent)
      if (r.base === i.base && r !== i)
        return !0;
  return !1;
};
uA.prototype.sibling = function() {
  return new uA(this.parent, this.base);
};
var Ep = function(t) {
  this.parser = t, this.validFlags = "gim" + (t.options.ecmaVersion >= 6 ? "uy" : "") + (t.options.ecmaVersion >= 9 ? "s" : "") + (t.options.ecmaVersion >= 13 ? "d" : "") + (t.options.ecmaVersion >= 15 ? "v" : ""), this.unicodeProperties = n0e[t.options.ecmaVersion >= 14 ? 14 : t.options.ecmaVersion], this.source = "", this.flags = "", this.start = 0, this.switchU = !1, this.switchV = !1, this.switchN = !1, this.pos = 0, this.lastIntValue = 0, this.lastStringValue = "", this.lastAssertionIsQuantifiable = !1, this.numCapturingParens = 0, this.maxBackReference = 0, this.groupNames = /* @__PURE__ */ Object.create(null), this.backReferenceNames = [], this.branchID = null;
};
Ep.prototype.reset = function(t, r, i) {
  var n = i.indexOf("v") !== -1, s = i.indexOf("u") !== -1;
  this.start = t | 0, this.source = r + "", this.flags = i, n && this.parser.options.ecmaVersion >= 15 ? (this.switchU = !0, this.switchV = !0, this.switchN = !0) : (this.switchU = s && this.parser.options.ecmaVersion >= 6, this.switchV = !1, this.switchN = s && this.parser.options.ecmaVersion >= 9);
};
Ep.prototype.raise = function(t) {
  this.parser.raiseRecoverable(this.start, "Invalid regular expression: /" + this.source + "/: " + t);
};
Ep.prototype.at = function(t, r) {
  r === void 0 && (r = !1);
  var i = this.source, n = i.length;
  if (t >= n)
    return -1;
  var s = i.charCodeAt(t);
  if (!(r || this.switchU) || s <= 55295 || s >= 57344 || t + 1 >= n)
    return s;
  var a = i.charCodeAt(t + 1);
  return a >= 56320 && a <= 57343 ? (s << 10) + a - 56613888 : s;
};
Ep.prototype.nextIndex = function(t, r) {
  r === void 0 && (r = !1);
  var i = this.source, n = i.length;
  if (t >= n)
    return n;
  var s = i.charCodeAt(t), a;
  return !(r || this.switchU) || s <= 55295 || s >= 57344 || t + 1 >= n || (a = i.charCodeAt(t + 1)) < 56320 || a > 57343 ? t + 1 : t + 2;
};
Ep.prototype.current = function(t) {
  return t === void 0 && (t = !1), this.at(this.pos, t);
};
Ep.prototype.lookahead = function(t) {
  return t === void 0 && (t = !1), this.at(this.nextIndex(this.pos, t), t);
};
Ep.prototype.advance = function(t) {
  t === void 0 && (t = !1), this.pos = this.nextIndex(this.pos, t);
};
Ep.prototype.eat = function(t, r) {
  return r === void 0 && (r = !1), this.current(r) === t ? (this.advance(r), !0) : !1;
};
Ep.prototype.eatChars = function(t, r) {
  r === void 0 && (r = !1);
  for (var i = this.pos, n = 0, s = t; n < s.length; n += 1) {
    var a = s[n], o = this.at(i, r);
    if (o === -1 || o !== a)
      return !1;
    i = this.nextIndex(i, r);
  }
  return this.pos = i, !0;
};
Jt.validateRegExpFlags = function(e) {
  for (var t = e.validFlags, r = e.flags, i = !1, n = !1, s = 0; s < r.length; s++) {
    var a = r.charAt(s);
    t.indexOf(a) === -1 && this.raise(e.start, "Invalid regular expression flag"), r.indexOf(a, s + 1) > -1 && this.raise(e.start, "Duplicate regular expression flag"), a === "u" && (i = !0), a === "v" && (n = !0);
  }
  this.options.ecmaVersion >= 15 && i && n && this.raise(e.start, "Invalid regular expression flag");
};
function i6t(e) {
  for (var t in e)
    return !0;
  return !1;
}
Jt.validateRegExpPattern = function(e) {
  this.regexp_pattern(e), !e.switchN && this.options.ecmaVersion >= 9 && i6t(e.groupNames) && (e.switchN = !0, this.regexp_pattern(e));
};
Jt.regexp_pattern = function(e) {
  e.pos = 0, e.lastIntValue = 0, e.lastStringValue = "", e.lastAssertionIsQuantifiable = !1, e.numCapturingParens = 0, e.maxBackReference = 0, e.groupNames = /* @__PURE__ */ Object.create(null), e.backReferenceNames.length = 0, e.branchID = null, this.regexp_disjunction(e), e.pos !== e.source.length && (e.eat(
    41
    /* ) */
  ) && e.raise("Unmatched ')'"), (e.eat(
    93
    /* ] */
  ) || e.eat(
    125
    /* } */
  )) && e.raise("Lone quantifier brackets")), e.maxBackReference > e.numCapturingParens && e.raise("Invalid escape");
  for (var t = 0, r = e.backReferenceNames; t < r.length; t += 1) {
    var i = r[t];
    e.groupNames[i] || e.raise("Invalid named capture referenced");
  }
};
Jt.regexp_disjunction = function(e) {
  var t = this.options.ecmaVersion >= 16;
  for (t && (e.branchID = new uA(e.branchID, null)), this.regexp_alternative(e); e.eat(
    124
    /* | */
  ); )
    t && (e.branchID = e.branchID.sibling()), this.regexp_alternative(e);
  t && (e.branchID = e.branchID.parent), this.regexp_eatQuantifier(e, !0) && e.raise("Nothing to repeat"), e.eat(
    123
    /* { */
  ) && e.raise("Lone quantifier brackets");
};
Jt.regexp_alternative = function(e) {
  for (; e.pos < e.source.length && this.regexp_eatTerm(e); )
    ;
};
Jt.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;
};
Jt.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
      /* B */
    ) || e.eat(
      98
      /* b */
    ))
      return !0;
    e.pos = t;
  }
  if (e.eat(
    40
    /* ( */
  ) && e.eat(
    63
    /* ? */
  )) {
    var r = !1;
    if (this.options.ecmaVersion >= 9 && (r = e.eat(
      60
      /* < */
    )), e.eat(
      61
      /* = */
    ) || e.eat(
      33
      /* ! */
    ))
      return this.regexp_disjunction(e), e.eat(
        41
        /* ) */
      ) || e.raise("Unterminated group"), e.lastAssertionIsQuantifiable = !r, !0;
  }
  return e.pos = t, !1;
};
Jt.regexp_eatQuantifier = function(e, t) {
  return t === void 0 && (t = !1), this.regexp_eatQuantifierPrefix(e, t) ? (e.eat(
    63
    /* ? */
  ), !0) : !1;
};
Jt.regexp_eatQuantifierPrefix = function(e, t) {
  return e.eat(
    42
    /* * */
  ) || e.eat(
    43
    /* + */
  ) || e.eat(
    63
    /* ? */
  ) || this.regexp_eatBracedQuantifier(e, t);
};
Jt.regexp_eatBracedQuantifier = function(e, t) {
  var r = e.pos;
  if (e.eat(
    123
    /* { */
  )) {
    var i = 0, n = -1;
    if (this.regexp_eatDecimalDigits(e) && (i = e.lastIntValue, e.eat(
      44
      /* , */
    ) && this.regexp_eatDecimalDigits(e) && (n = e.lastIntValue), e.eat(
      125
      /* } */
    )))
      return n !== -1 && n < i && !t && e.raise("numbers out of order in {} quantifier"), !0;
    e.switchU && !t && e.raise("Incomplete quantifier"), e.pos = r;
  }
  return !1;
};
Jt.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);
};
Jt.regexp_eatReverseSolidusAtomEscape = function(e) {
  var t = e.pos;
  if (e.eat(
    92
    /* \ */
  )) {
    if (this.regexp_eatAtomEscape(e))
      return !0;
    e.pos = t;
  }
  return !1;
};
Jt.regexp_eatUncapturingGroup = function(e) {
  var t = e.pos;
  if (e.eat(
    40
    /* ( */
  )) {
    if (e.eat(
      63
      /* ? */
    )) {
      if (this.options.ecmaVersion >= 16) {
        var r = this.regexp_eatModifiers(e), i = e.eat(
          45
          /* - */
        );
        if (r || i) {
          for (var n = 0; n < r.length; n++) {
            var s = r.charAt(n);
            r.indexOf(s, n + 1) > -1 && e.raise("Duplicate regular expression modifiers");
          }
          if (i) {
            var a = this.regexp_eatModifiers(e);
            !r && !a && e.current() === 58 && e.raise("Invalid regular expression modifiers");
            for (var o = 0; o < a.length; o++) {
              var l = a.charAt(o);
              (a.indexOf(l, o + 1) > -1 || r.indexOf(l) > -1) && e.raise("Duplicate regular expression modifiers");
            }
          }
        }
      }
      if (e.eat(
        58
        /* : */
      )) {
        if (this.regexp_disjunction(e), e.eat(
          41
          /* ) */
        ))
          return !0;
        e.raise("Unterminated group");
      }
    }
    e.pos = t;
  }
  return !1;
};
Jt.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;
};
Jt.regexp_eatModifiers = function(e) {
  for (var t = "", r = 0; (r = e.current()) !== -1 && n6t(r); )
    t += If(r), e.advance();
  return t;
};
function n6t(e) {
  return e === 105 || e === 109 || e === 115;
}
Jt.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);
};
Jt.regexp_eatInvalidBracedQuantifier = function(e) {
  return this.regexp_eatBracedQuantifier(e, !0) && e.raise("Nothing to repeat"), !1;
};
Jt.regexp_eatSyntaxCharacter = function(e) {
  var t = e.current();
  return s0e(t) ? (e.lastIntValue = t, e.advance(), !0) : !1;
};
function s0e(e) {
  return e === 36 || e >= 40 && e <= 43 || e === 46 || e === 63 || e >= 91 && e <= 94 || e >= 123 && e <= 125;
}
Jt.regexp_eatPatternCharacters = function(e) {
  for (var t = e.pos, r = 0; (r = e.current()) !== -1 && !s0e(r); )
    e.advance();
  return e.pos !== t;
};
Jt.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;
};
Jt.regexp_groupSpecifier = function(e) {
  if (e.eat(
    63
    /* ? */
  )) {
    this.regexp_eatGroupName(e) || e.raise("Invalid group");
    var t = this.options.ecmaVersion >= 16, r = e.groupNames[e.lastStringValue];
    if (r)
      if (t)
        for (var i = 0, n = r; i < n.length; i += 1) {
          var s = n[i];
          s.separatedFrom(e.branchID) || e.raise("Duplicate capture group name");
        }
      else
        e.raise("Duplicate capture group name");
    t ? (r || (e.groupNames[e.lastStringValue] = [])).push(e.branchID) : e.groupNames[e.lastStringValue] = !0;
  }
};
Jt.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;
};
Jt.regexp_eatRegExpIdentifierName = function(e) {
  if (e.lastStringValue = "", this.regexp_eatRegExpIdentifierStart(e)) {
    for (e.lastStringValue += If(e.lastIntValue); this.regexp_eatRegExpIdentifierPart(e); )
      e.lastStringValue += If(e.lastIntValue);
    return !0;
  }
  return !1;
};
Jt.regexp_eatRegExpIdentifierStart = function(e) {
  var t = e.pos, r = this.options.ecmaVersion >= 11, i = e.current(r);
  return e.advance(r), i === 92 && this.regexp_eatRegExpUnicodeEscapeSequence(e, r) && (i = e.lastIntValue), s6t(i) ? (e.lastIntValue = i, !0) : (e.pos = t, !1);
};
function s6t(e) {
  return _f(e, !0) || e === 36 || e === 95;
}
Jt.regexp_eatRegExpIdentifierPart = function(e) {
  var t = e.pos, r = this.options.ecmaVersion >= 11, i = e.current(r);
  return e.advance(r), i === 92 && this.regexp_eatRegExpUnicodeEscapeSequence(e, r) && (i = e.lastIntValue), a6t(i) ? (e.lastIntValue = i, !0) : (e.pos = t, !1);
};
function a6t(e) {
  return tg(e, !0) || e === 36 || e === 95 || e === 8204 || e === 8205;
}
Jt.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);
};
Jt.regexp_eatBackReference = function(e) {
  var t = e.pos;
  if (this.regexp_eatDecimalEscape(e)) {
    var r = e.lastIntValue;
    if (e.switchU)
      return r > e.maxBackReference && (e.maxBackReference = r), !0;
    if (r <= e.numCapturingParens)
      return !0;
    e.pos = t;
  }
  return !1;
};
Jt.regexp_eatKGroupName = function(e) {
  if (e.eat(
    107
    /* k */
  )) {
    if (this.regexp_eatGroupName(e))
      return e.backReferenceNames.push(e.lastStringValue), !0;
    e.raise("Invalid named reference");
  }
  return !1;
};
Jt.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);
};
Jt.regexp_eatCControlLetter = function(e) {
  var t = e.pos;
  if (e.eat(
    99
    /* c */
  )) {
    if (this.regexp_eatControlLetter(e))
      return !0;
    e.pos = t;
  }
  return !1;
};
Jt.regexp_eatZero = function(e) {
  return e.current() === 48 && !VI(e.lookahead()) ? (e.lastIntValue = 0, e.advance(), !0) : !1;
};
Jt.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;
};
Jt.regexp_eatControlLetter = function(e) {
  var t = e.current();
  return a0e(t) ? (e.lastIntValue = t % 32, e.advance(), !0) : !1;
};
function a0e(e) {
  return e >= 65 && e <= 90 || e >= 97 && e <= 122;
}
Jt.regexp_eatRegExpUnicodeEscapeSequence = function(e, t) {
  t === void 0 && (t = !1);
  var r = e.pos, i = t || e.switchU;
  if (e.eat(
    117
    /* u */
  )) {
    if (this.regexp_eatFixedHexDigits(e, 4)) {
      var n = e.lastIntValue;
      if (i && n >= 55296 && n <= 56319) {
        var s = e.pos;
        if (e.eat(
          92
          /* \ */
        ) && e.eat(
          117
          /* u */
        ) && 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 = s, e.lastIntValue = n;
      }
      return !0;
    }
    if (i && e.eat(
      123
      /* { */
    ) && this.regexp_eatHexDigits(e) && e.eat(
      125
      /* } */
    ) && o6t(e.lastIntValue))
      return !0;
    i && e.raise("Invalid unicode escape"), e.pos = r;
  }
  return !1;
};
function o6t(e) {
  return e >= 0 && e <= 1114111;
}
Jt.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;
};
Jt.regexp_eatDecimalEscape = function(e) {
  e.lastIntValue = 0;
  var t = e.current();
  if (t >= 49 && t <= 57) {
    do
      e.lastIntValue = 10 * e.lastIntValue + (t - 48), e.advance();
    while ((t = e.current()) >= 48 && t <= 57);
    return !0;
  }
  return !1;
};
var o0e = 0, kf = 1, Rl = 2;
Jt.regexp_eatCharacterClassEscape = function(e) {
  var t = e.current();
  if (l6t(t))
    return e.lastIntValue = -1, e.advance(), kf;
  var r = !1;
  if (e.switchU && this.options.ecmaVersion >= 9 && ((r = t === 80) || t === 112)) {
    e.lastIntValue = -1, e.advance();
    var i;
    if (e.eat(
      123
      /* { */
    ) && (i = this.regexp_eatUnicodePropertyValueExpression(e)) && e.eat(
      125
      /* } */
    ))
      return r && i === Rl && e.raise("Invalid property name"), i;
    e.raise("Invalid property name");
  }
  return o0e;
};
function l6t(e) {
  return e === 100 || e === 68 || e === 115 || e === 83 || e === 119 || e === 87;
}
Jt.regexp_eatUnicodePropertyValueExpression = function(e) {
  var t = e.pos;
  if (this.regexp_eatUnicodePropertyName(e) && e.eat(
    61
    /* = */
  )) {
    var r = e.lastStringValue;
    if (this.regexp_eatUnicodePropertyValue(e)) {
      var i = e.lastStringValue;
      return this.regexp_validateUnicodePropertyNameAndValue(e, r, i), kf;
    }
  }
  if (e.pos = t, this.regexp_eatLoneUnicodePropertyNameOrValue(e)) {
    var n = e.lastStringValue;
    return this.regexp_validateUnicodePropertyNameOrValue(e, n);
  }
  return o0e;
};
Jt.regexp_validateUnicodePropertyNameAndValue = function(e, t, r) {
  qg(e.unicodeProperties.nonBinary, t) || e.raise("Invalid property name"), e.unicodeProperties.nonBinary[t].test(r) || e.raise("Invalid property value");
};
Jt.regexp_validateUnicodePropertyNameOrValue = function(e, t) {
  if (e.unicodeProperties.binary.test(t))
    return kf;
  if (e.switchV && e.unicodeProperties.binaryOfStrings.test(t))
    return Rl;
  e.raise("Invalid property name");
};
Jt.regexp_eatUnicodePropertyName = function(e) {
  var t = 0;
  for (e.lastStringValue = ""; l0e(t = e.current()); )
    e.lastStringValue += If(t), e.advance();
  return e.lastStringValue !== "";
};
function l0e(e) {
  return a0e(e) || e === 95;
}
Jt.regexp_eatUnicodePropertyValue = function(e) {
  var t = 0;
  for (e.lastStringValue = ""; u6t(t = e.current()); )
    e.lastStringValue += If(t), e.advance();
  return e.lastStringValue !== "";
};
function u6t(e) {
  return l0e(e) || VI(e);
}
Jt.regexp_eatLoneUnicodePropertyNameOrValue = function(e) {
  return this.regexp_eatUnicodePropertyValue(e);
};
Jt.regexp_eatCharacterClass = function(e) {
  if (e.eat(
    91
    /* [ */
  )) {
    var t = e.eat(
      94
      /* ^ */
    ), r = this.regexp_classContents(e);
    return e.eat(
      93
      /* ] */
    ) || e.raise("Unterminated character class"), t && r === Rl && e.raise("Negated character class may contain strings"), !0;
  }
  return !1;
};
Jt.regexp_classContents = function(e) {
  return e.current() === 93 ? kf : e.switchV ? this.regexp_classSetExpression(e) : (this.regexp_nonEmptyClassRanges(e), kf);
};
Jt.regexp_nonEmptyClassRanges = function(e) {
  for (; this.regexp_eatClassAtom(e); ) {
    var t = e.lastIntValue;
    if (e.eat(
      45
      /* - */
    ) && this.regexp_eatClassAtom(e)) {
      var r = e.lastIntValue;
      e.switchU && (t === -1 || r === -1) && e.raise("Invalid character class"), t !== -1 && r !== -1 && t > r && e.raise("Range out of order in character class");
    }
  }
};
Jt.regexp_eatClassAtom = function(e) {
  var t = e.pos;
  if (e.eat(
    92
    /* \ */
  )) {
    if (this.regexp_eatClassEscape(e))
      return !0;
    if (e.switchU) {
      var r = e.current();
      (r === 99 || p0e(r)) && e.raise("Invalid class escape"), e.raise("Invalid escape");
    }
    e.pos = t;
  }
  var i = e.current();
  return i !== 93 ? (e.lastIntValue = i, e.advance(), !0) : !1;
};
Jt.regexp_eatClassEscape = function(e) {
  var t = e.pos;
  if (e.eat(
    98
    /* b */
  ))
    return e.lastIntValue = 8, !0;
  if (e.switchU && e.eat(
    45
    /* - */
  ))
    return e.lastIntValue = 45, !0;
  if (!e.switchU && e.eat(
    99
    /* c */
  )) {
    if (this.regexp_eatClassControlLetter(e))
      return !0;
    e.pos = t;
  }
  return this.regexp_eatCharacterClassEscape(e) || this.regexp_eatCharacterEscape(e);
};
Jt.regexp_classSetExpression = function(e) {
  var t = kf, r;
  if (!this.regexp_eatClassSetRange(e))
    if (r = this.regexp_eatClassSetOperand(e)) {
      r === Rl && (t = Rl);
      for (var i = e.pos; e.eatChars(
        [38, 38]
        /* && */
      ); ) {
        if (e.current() !== 38 && (r = this.regexp_eatClassSetOperand(e))) {
          r !== Rl && (t = kf);
          continue;
        }
        e.raise("Invalid character in character class");
      }
      if (i !== e.pos)
        return t;
      for (; e.eatChars(
        [45, 45]
        /* -- */
      ); )
        this.regexp_eatClassSetOperand(e) || e.raise("Invalid character in character class");
      if (i !== e.pos)
        return t;
    } else
      e.raise("Invalid character in character class");
  for (; ; )
    if (!this.regexp_eatClassSetRange(e)) {
      if (r = this.regexp_eatClassSetOperand(e), !r)
        return t;
      r === Rl && (t = Rl);
    }
};
Jt.regexp_eatClassSetRange = function(e) {
  var t = e.pos;
  if (this.regexp_eatClassSetCharacter(e)) {
    var r = e.lastIntValue;
    if (e.eat(
      45
      /* - */
    ) && this.regexp_eatClassSetCharacter(e)) {
      var i = e.lastIntValue;
      return r !== -1 && i !== -1 && r > i && e.raise("Range out of order in character class"), !0;
    }
    e.pos = t;
  }
  return !1;
};
Jt.regexp_eatClassSetOperand = function(e) {
  return this.regexp_eatClassSetCharacter(e) ? kf : this.regexp_eatClassStringDisjunction(e) || this.regexp_eatNestedClass(e);
};
Jt.regexp_eatNestedClass = function(e) {
  var t = e.pos;
  if (e.eat(
    91
    /* [ */
  )) {
    var r = e.eat(
      94
      /* ^ */
    ), i = this.regexp_classContents(e);
    if (e.eat(
      93
      /* ] */
    ))
      return r && i === Rl && e.raise("Negated character class may contain strings"), i;
    e.pos = t;
  }
  if (e.eat(
    92
    /* \ */
  )) {
    var n = this.regexp_eatCharacterClassEscape(e);
    if (n)
      return n;
    e.pos = t;
  }
  return null;
};
Jt.regexp_eatClassStringDisjunction = function(e) {
  var t = e.pos;
  if (e.eatChars(
    [92, 113]
    /* \q */
  )) {
    if (e.eat(
      123
      /* { */
    )) {
      var r = this.regexp_classStringDisjunctionContents(e);
      if (e.eat(
        125
        /* } */
      ))
        return r;
    } else
      e.raise("Invalid escape");
    e.pos = t;
  }
  return null;
};
Jt.regexp_classStringDisjunctionContents = function(e) {
  for (var t = this.regexp_classString(e); e.eat(
    124
    /* | */
  ); )
    this.regexp_classString(e) === Rl && (t = Rl);
  return t;
};
Jt.regexp_classString = function(e) {
  for (var t = 0; this.regexp_eatClassSetCharacter(e); )
    t++;
  return t === 1 ? kf : Rl;
};
Jt.regexp_eatClassSetCharacter = function(e) {
  var t = e.pos;
  if (e.eat(
    92
    /* \ */
  ))
    return this.regexp_eatCharacterEscape(e) || this.regexp_eatClassSetReservedPunctuator(e) ? !0 : e.eat(
      98
      /* b */
    ) ? (e.lastIntValue = 8, !0) : (e.pos = t, !1);
  var r = e.current();
  return r < 0 || r === e.lookahead() && c6t(r) || p6t(r) ? !1 : (e.advance(), e.lastIntValue = r, !0);
};
function c6t(e) {
  return e === 33 || e >= 35 && e <= 38 || e >= 42 && e <= 44 || e === 46 || e >= 58 && e <= 64 || e === 94 || e === 96 || e === 126;
}
function p6t(e) {
  return e === 40 || e === 41 || e === 45 || e === 47 || e >= 91 && e <= 93 || e >= 123 && e <= 125;
}
Jt.regexp_eatClassSetReservedPunctuator = function(e) {
  var t = e.current();
  return f6t(t) ? (e.lastIntValue = t, e.advance(), !0) : !1;
};
function f6t(e) {
  return e === 33 || e === 35 || e === 37 || e === 38 || e === 44 || e === 45 || e >= 58 && e <= 62 || e === 64 || e === 96 || e === 126;
}
Jt.regexp_eatClassControlLetter = function(e) {
  var t = e.current();
  return VI(t) || t === 95 ? (e.lastIntValue = t % 32, e.advance(), !0) : !1;
};
Jt.regexp_eatHexEscapeSequence = function(e) {
  var t = e.pos;
  if (e.eat(
    120
    /* x */
  )) {
    if (this.regexp_eatFixedHexDigits(e, 2))
      return !0;
    e.switchU && e.raise("Invalid escape"), e.pos = t;
  }
  return !1;
};
Jt.regexp_eatDecimalDigits = function(e) {
  var t = e.pos, r = 0;
  for (e.lastIntValue = 0; VI(r = e.current()); )
    e.lastIntValue = 10 * e.lastIntValue + (r - 48), e.advance();
  return e.pos !== t;
};
function VI(e) {
  return e >= 48 && e <= 57;
}
Jt.regexp_eatHexDigits = function(e) {
  var t = e.pos, r = 0;
  for (e.lastIntValue = 0; u0e(r = e.current()); )
    e.lastIntValue = 16 * e.lastIntValue + c0e(r), e.advance();
  return e.pos !== t;
};
function u0e(e) {
  return e >= 48 && e <= 57 || e >= 65 && e <= 70 || e >= 97 && e <= 102;
}
function c0e(e) {
  return e >= 65 && e <= 70 ? 10 + (e - 65) : e >= 97 && e <= 102 ? 10 + (e - 97) : e - 48;
}
Jt.regexp_eatLegacyOctalEscapeSequence = function(e) {
  if (this.regexp_eatOctalDigit(e)) {
    var t = e.lastIntValue;
    if (this.regexp_eatOctalDigit(e)) {
      var r = e.lastIntValue;
      t <= 3 && this.regexp_eatOctalDigit(e) ? e.lastIntValue = t * 64 + r * 8 + e.lastIntValue : e.lastIntValue = t * 8 + r;
    } else
      e.lastIntValue = t;
    return !0;
  }
  return !1;
};
Jt.regexp_eatOctalDigit = function(e) {
  var t = e.current();
  return p0e(t) ? (e.lastIntValue = t - 48, e.advance(), !0) : (e.lastIntValue = 0, !1);
};
function p0e(e) {
  return e >= 48 && e <= 55;
}
Jt.regexp_eatFixedHexDigits = function(e, t) {
  var r = e.pos;
  e.lastIntValue = 0;
  for (var i = 0; i < t; ++i) {
    var n = e.current();
    if (!u0e(n))
      return e.pos = r, !1;
    e.lastIntValue = 16 * e.lastIntValue + c0e(n), e.advance();
  }
  return !0;
};
var J7 = function(t) {
  this.type = t.type, this.value = t.value, this.start = t.start, this.end = t.end, t.options.locations && (this.loc = new $I(t, t.startLoc, t.endLoc)), t.options.ranges && (this.range = [t.start, t.end]);
}, Zr = Wn.prototype;
Zr.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 J7(this)), this.lastTokEnd = this.end, this.lastTokStart = this.start, this.lastTokEndLoc = this.endLoc, this.lastTokStartLoc = this.startLoc, this.nextToken();
};
Zr.getToken = function() {
  return this.next(), new J7(this);
};
typeof Symbol != "undefined" && (Zr[Symbol.iterator] = function() {
  var e = this;
  return {
    next: function() {
      var t = e.getToken();
      return {
        done: t.type === Ae.eof,
        value: t
      };
    }
  };
});
Zr.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(Ae.eof);
  if (e.override)
    return e.override(this);
  this.readToken(this.fullCharCodeAtPos());
};
Zr.readToken = function(e) {
  return _f(e, this.options.ecmaVersion >= 6) || e === 92 ? this.readWord() : this.getTokenFromCode(e);
};
Zr.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;
};
Zr.skipBlockComment = function() {
  var e = this.options.onComment && this.curPosition(), t = this.pos, r = this.input.indexOf("*/", this.pos += 2);
  if (r === -1 && this.raise(this.pos - 2, "Unterminated comment"), this.pos = r + 2, this.options.locations)
    for (var i = void 0, n = t; (i = Lbe(this.input, n, this.pos)) > -1; )
      ++this.curLine, n = this.lineStart = i;
  this.options.onComment && this.options.onComment(
    !0,
    this.input.slice(t + 2, r),
    t,
    this.pos,
    e,
    this.curPosition()
  );
};
Zr.skipLineComment = function(e) {
  for (var t = this.pos, r = this.options.onComment && this.curPosition(), i = this.input.charCodeAt(this.pos += e); this.pos < this.input.length && !Ug(i); )
    i = this.input.charCodeAt(++this.pos);
  this.options.onComment && this.options.onComment(
    !1,
    this.input.slice(t + e, this.pos),
    t,
    this.pos,
    r,
    this.curPosition()
  );
};
Zr.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 && Mbe.test(String.fromCharCode(e)))
            ++this.pos;
          else
            break e;
      }
    }
};
Zr.finishToken = function(e, t) {
  this.end = this.pos, this.options.locations && (this.endLoc = this.curPosition());
  var r = this.type;
  this.type = e, this.value = t, this.updateContext(r);
};
Zr.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(Ae.ellipsis)) : (++this.pos, this.finishToken(Ae.dot));
};
Zr.readToken_slash = function() {
  var e = this.input.charCodeAt(this.pos + 1);
  return this.exprAllowed ? (++this.pos, this.readRegexp()) : e === 61 ? this.finishOp(Ae.assign, 2) : this.finishOp(Ae.slash, 1);
};
Zr.readToken_mult_modulo_exp = function(e) {
  var t = this.input.charCodeAt(this.pos + 1), r = 1, i = e === 42 ? Ae.star : Ae.modulo;
  return this.options.ecmaVersion >= 7 && e === 42 && t === 42 && (++r, i = Ae.starstar, t = this.input.charCodeAt(this.pos + 2)), t === 61 ? this.finishOp(Ae.assign, r + 1) : this.finishOp(i, r);
};
Zr.readToken_pipe_amp = function(e) {
  var t = this.input.charCodeAt(this.pos + 1);
  if (t === e) {
    if (this.options.ecmaVersion >= 12) {
      var r = this.input.charCodeAt(this.pos + 2);
      if (r === 61)
        return this.finishOp(Ae.assign, 3);
    }
    return this.finishOp(e === 124 ? Ae.logicalOR : Ae.logicalAND, 2);
  }
  return t === 61 ? this.finishOp(Ae.assign, 2) : this.finishOp(e === 124 ? Ae.bitwiseOR : Ae.bitwiseAND, 1);
};
Zr.readToken_caret = function() {
  var e = this.input.charCodeAt(this.pos + 1);
  return e === 61 ? this.finishOp(Ae.assign, 2) : this.finishOp(Ae.bitwiseXOR, 1);
};
Zr.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 || Ql.test(this.input.slice(this.lastTokEnd, this.pos))) ? (this.skipLineComment(3), this.skipSpace(), this.nextToken()) : this.finishOp(Ae.incDec, 2) : t === 61 ? this.finishOp(Ae.assign, 2) : this.finishOp(Ae.plusMin, 1);
};
Zr.readToken_lt_gt = function(e) {
  var t = this.input.charCodeAt(this.pos + 1), r = 1;
  return t === e ? (r = e === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2, this.input.charCodeAt(this.pos + r) === 61 ? this.finishOp(Ae.assign, r + 1) : this.finishOp(Ae.bitShift, r)) : 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 && (r = 2), this.finishOp(Ae.relational, r));
};
Zr.readToken_eq_excl = function(e) {
  var t = this.input.charCodeAt(this.pos + 1);
  return t === 61 ? this.finishOp(Ae.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) : e === 61 && t === 62 && this.options.ecmaVersion >= 6 ? (this.pos += 2, this.finishToken(Ae.arrow)) : this.finishOp(e === 61 ? Ae.eq : Ae.prefix, 1);
};
Zr.readToken_question = function() {
  var e = this.options.ecmaVersion;
  if (e >= 11) {
    var t = this.input.charCodeAt(this.pos + 1);
    if (t === 46) {
      var r = this.input.charCodeAt(this.pos + 2);
      if (r < 48 || r > 57)
        return this.finishOp(Ae.questionDot, 2);
    }
    if (t === 63) {
      if (e >= 12) {
        var i = this.input.charCodeAt(this.pos + 2);
        if (i === 61)
          return this.finishOp(Ae.assign, 3);
      }
      return this.finishOp(Ae.coalesce, 2);
    }
  }
  return this.finishOp(Ae.question, 1);
};
Zr.readToken_numberSign = function() {
  var e = this.options.ecmaVersion, t = 35;
  if (e >= 13 && (++this.pos, t = this.fullCharCodeAtPos(), _f(t, !0) || t === 92))
    return this.finishToken(Ae.privateId, this.readWord1());
  this.raise(this.pos, "Unexpected character '" + If(t) + "'");
};
Zr.getTokenFromCode = function(e) {
  switch (e) {
    case 46:
      return this.readToken_dot();
    case 40:
      return ++this.pos, this.finishToken(Ae.parenL);
    case 41:
      return ++this.pos, this.finishToken(Ae.parenR);
    case 59:
      return ++this.pos, this.finishToken(Ae.semi);
    case 44:
      return ++this.pos, this.finishToken(Ae.comma);
    case 91:
      return ++this.pos, this.finishToken(Ae.bracketL);
    case 93:
      return ++this.pos, this.finishToken(Ae.bracketR);
    case 123:
      return ++this.pos, this.finishToken(Ae.braceL);
    case 125:
      return ++this.pos, this.finishToken(Ae.braceR);
    case 58:
      return ++this.pos, this.finishToken(Ae.colon);
    case 96:
      if (this.options.ecmaVersion < 6)
        break;
      return ++this.pos, this.finishToken(Ae.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(Ae.prefix, 1);
    case 35:
      return this.readToken_numberSign();
  }
  this.raise(this.pos, "Unexpected character '" + If(e) + "'");
};
Zr.finishOp = function(e, t) {
  var r = this.input.slice(this.pos, this.pos + t);
  return this.pos += t, this.finishToken(e, r);
};
Zr.readRegexp = function() {
  for (var e, t, r = this.pos; ; ) {
    this.pos >= this.input.length && this.raise(r, "Unterminated regular expression");
    var i = this.input.charAt(this.pos);
    if (Ql.test(i) && this.raise(r, "Unterminated regular expression"), e)
      e = !1;
    else {
      if (i === "[")
        t = !0;
      else if (i === "]" && t)
        t = !1;
      else if (i === "/" && !t)
        break;
      e = i === "\\";
    }
    ++this.pos;
  }
  var n = this.input.slice(r, this.pos);
  ++this.pos;
  var s = this.pos, a = this.readWord1();
  this.containsEsc && this.unexpected(s);
  var o = this.regexpState || (this.regexpState = new Ep(this));
  o.reset(r, n, a), this.validateRegExpFlags(o), this.validateRegExpPattern(o);
  var l = null;
  try {
    l = new RegExp(n, a);
  } catch (u) {
  }
  return this.finishToken(Ae.regexp, { pattern: n, flags: a, value: l });
};
Zr.readInt = function(e, t, r) {
  for (var i = this.options.ecmaVersion >= 12 && t === void 0, n = r && this.input.charCodeAt(this.pos) === 48, s = this.pos, a = 0, o = 0, l = 0, u = t == null ? 1 / 0 : t; l < u; ++l, ++this.pos) {
    var c = this.input.charCodeAt(this.pos), f = void 0;
    if (i && c === 95) {
      n && this.raiseRecoverable(this.pos, "Numeric separator is not allowed in legacy octal numeric literals"), o === 95 && this.raiseRecoverable(this.pos, "Numeric separator must be exactly one underscore"), l === 0 && this.raiseRecoverable(this.pos, "Numeric separator is not allowed at the first of digits"), o = c;
      continue;
    }
    if (c >= 97 ? f = c - 97 + 10 : c >= 65 ? f = c - 65 + 10 : c >= 48 && c <= 57 ? f = c - 48 : f = 1 / 0, f >= e)
      break;
    o = c, a = a * e + f;
  }
  return i && o === 95 && this.raiseRecoverable(this.pos - 1, "Numeric separator is not allowed at the last of digits"), this.pos === s || t != null && this.pos - s !== t ? null : a;
};
function h6t(e, t) {
  return t ? parseInt(e, 8) : parseFloat(e.replace(/_/g, ""));
}
function f0e(e) {
  return typeof BigInt != "function" ? null : BigInt(e.replace(/_/g, ""));
}
Zr.readRadixNumber = function(e) {
  var t = this.pos;
  this.pos += 2;
  var r = this.readInt(e);
  return r == null && this.raise(this.start + 2, "Expected number in radix " + e), this.options.ecmaVersion >= 11 && this.input.charCodeAt(this.pos) === 110 ? (r = f0e(this.input.slice(t, this.pos)), ++this.pos) : _f(this.fullCharCodeAtPos()) && this.raise(this.pos, "Identifier directly after number"), this.finishToken(Ae.num, r);
};
Zr.readNumber = function(e) {
  var t = this.pos;
  !e && this.readInt(10, void 0, !0) === null && this.raise(t, "Invalid number");
  var r = this.pos - t >= 2 && this.input.charCodeAt(t) === 48;
  r && this.strict && this.raise(t, "Invalid number");
  var i = this.input.charCodeAt(this.pos);
  if (!r && !e && this.options.ecmaVersion >= 11 && i === 110) {
    var n = f0e(this.input.slice(t, this.pos));
    return ++this.pos, _f(this.fullCharCodeAtPos()) && this.raise(this.pos, "Identifier directly after number"), this.finishToken(Ae.num, n);
  }
  r && /[89]/.test(this.input.slice(t, this.pos)) && (r = !1), i === 46 && !r && (++this.pos, this.readInt(10), i = this.input.charCodeAt(this.pos)), (i === 69 || i === 101) && !r && (i = this.input.charCodeAt(++this.pos), (i === 43 || i === 45) && ++this.pos, this.readInt(10) === null && this.raise(t, "Invalid number")), _f(this.fullCharCodeAtPos()) && this.raise(this.pos, "Identifier directly after number");
  var s = h6t(this.input.slice(t, this.pos), r);
  return this.finishToken(Ae.num, s);
};
Zr.readCodePoint = function() {
  var e = this.input.charCodeAt(this.pos), t;
  if (e === 123) {
    this.options.ecmaVersion < 6 && this.unexpected();
    var r = ++this.pos;
    t = this.readHexChar(this.input.indexOf("}", this.pos) - this.pos), ++this.pos, t > 1114111 && this.invalidStringToken(r, "Code point out of bounds");
  } else
    t = this.readHexChar(4);
  return t;
};
Zr.readString = function(e) {
  for (var t = "", r = ++this.pos; ; ) {
    this.pos >= this.input.length && this.raise(this.start, "Unterminated string constant");
    var i = this.input.charCodeAt(this.pos);
    if (i === e)
      break;
    i === 92 ? (t += this.input.slice(r, this.pos), t += this.readEscapedChar(!1), r = this.pos) : i === 8232 || i === 8233 ? (this.options.ecmaVersion < 10 && this.raise(this.start, "Unterminated string constant"), ++this.pos, this.options.locations && (this.curLine++, this.lineStart = this.pos)) : (Ug(i) && this.raise(this.start, "Unterminated string constant"), ++this.pos);
  }
  return t += this.input.slice(r, this.pos++), this.finishToken(Ae.string, t);
};
var h0e = {};
Zr.tryReadTemplateToken = function() {
  this.inTemplateElement = !0;
  try {
    this.readTmplToken();
  } catch (e) {
    if (e === h0e)
      this.readInvalidTemplateToken();
    else
      throw e;
  }
  this.inTemplateElement = !1;
};
Zr.invalidStringToken = function(e, t) {
  if (this.inTemplateElement && this.options.ecmaVersion >= 9)
    throw h0e;
  this.raise(e, t);
};
Zr.readTmplToken = function() {
  for (var e = "", t = this.pos; ; ) {
    this.pos >= this.input.length && this.raise(this.start, "Unterminated template");
    var r = this.input.charCodeAt(this.pos);
    if (r === 96 || r === 36 && this.input.charCodeAt(this.pos + 1) === 123)
      return this.pos === this.start && (this.type === Ae.template || this.type === Ae.invalidTemplate) ? r === 36 ? (this.pos += 2, this.finishToken(Ae.dollarBraceL)) : (++this.pos, this.finishToken(Ae.backQuote)) : (e += this.input.slice(t, this.pos), this.finishToken(Ae.template, e));
    if (r === 92)
      e += this.input.slice(t, this.pos), e += this.readEscapedChar(!0), t = this.pos;
    else if (Ug(r)) {
      switch (e += this.input.slice(t, this.pos), ++this.pos, r) {
        case 13:
          this.input.charCodeAt(this.pos) === 10 && ++this.pos;
        case 10:
          e += "\n";
          break;
        default:
          e += String.fromCharCode(r);
          break;
      }
      this.options.locations && (++this.curLine, this.lineStart = this.pos), t = this.pos;
    } else
      ++this.pos;
  }
};
Zr.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(Ae.invalidTemplate, this.input.slice(this.start, this.pos));
      case "\r":
        this.input[this.pos + 1] === "\n" && ++this.pos;
      case "\n":
      case "\u2028":
      case "\u2029":
        ++this.curLine, this.lineStart = this.pos + 1;
        break;
    }
  this.raise(this.start, "Unterminated template");
};
Zr.readEscapedChar = function(e) {
  var t = this.input.charCodeAt(++this.pos);
  switch (++this.pos, t) {
    case 110:
      return "\n";
    case 114:
      return "\r";
    case 120:
      return String.fromCharCode(this.readHexChar(2));
    case 117:
      return If(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 r = this.pos - 1;
        this.invalidStringToken(
          r,
          "Invalid escape sequence in template string"
        );
      }
    default:
      if (t >= 48 && t <= 55) {
        var i = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0], n = parseInt(i, 8);
        return n > 255 && (i = i.slice(0, -1), n = parseInt(i, 8)), this.pos += i.length - 1, t = this.input.charCodeAt(this.pos), (i !== "0" || t === 56 || t === 57) && (this.strict || e) && this.invalidStringToken(
          this.pos - 1 - i.length,
          e ? "Octal literal in template string" : "Octal literal in strict mode"
        ), String.fromCharCode(n);
      }
      return Ug(t) ? (this.options.locations && (this.lineStart = this.pos, ++this.curLine), "") : String.fromCharCode(t);
  }
};
Zr.readHexChar = function(e) {
  var t = this.pos, r = this.readInt(16, e);
  return r === null && this.invalidStringToken(t, "Bad character escape sequence"), r;
};
Zr.readWord1 = function() {
  this.containsEsc = !1;
  for (var e = "", t = !0, r = this.pos, i = this.options.ecmaVersion >= 6; this.pos < this.input.length; ) {
    var n = this.fullCharCodeAtPos();
    if (tg(n, i))
      this.pos += n <= 65535 ? 1 : 2;
    else if (n === 92) {
      this.containsEsc = !0, e += this.input.slice(r, this.pos);
      var s = this.pos;
      this.input.charCodeAt(++this.pos) !== 117 && this.invalidStringToken(this.pos, "Expecting Unicode escape sequence \\uXXXX"), ++this.pos;
      var a = this.readCodePoint();
      (t ? _f : tg)(a, i) || this.invalidStringToken(s, "Invalid Unicode escape"), e += If(a), r = this.pos;
    } else
      break;
    t = !1;
  }
  return e + this.input.slice(r, this.pos);
};
Zr.readWord = function() {
  var e = this.readWord1(), t = Ae.name;
  return this.keywords.test(e) && (t = W7[e]), this.finishToken(t, e);
};
var d6t = "8.14.0";
Wn.acorn = {
  Parser: Wn,
  version: d6t,
  defaultOptions: j8,
  Position: aT,
  SourceLocation: $I,
  getLineInfo: Bbe,
  Node: qI,
  TokenType: mi,
  tokTypes: Ae,
  keywordTypes: W7,
  TokContext: wc,
  tokContexts: dn,
  isIdentifierChar: tg,
  isIdentifierStart: _f,
  Token: J7,
  isNewLine: Ug,
  lineBreak: Ql,
  lineBreakG: R$t,
  nonASCIIwhitespace: Mbe
};
function m6t(e, t) {
  return Wn.parse(e, t);
}
function d0e(e, t, r) {
  return Wn.parseExpressionAt(e, t, r);
}
class y6t {
  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
    };
  }
  /**
   * @template {Node} Parent
   * @param {Parent | null | undefined} parent
   * @param {keyof Parent | null | undefined} prop
   * @param {number | null | undefined} index
   * @param {Node} node
   */
  replace(t, r, i, n) {
    t && r && (i != null ? t[r][i] = n : t[r] = n);
  }
  /**
   * @template {Node} Parent
   * @param {Parent | null | undefined} parent
   * @param {keyof Parent | null | undefined} prop
   * @param {number | null | undefined} index
   */
  remove(t, r, i) {
    t && r && (i != null ? t[r].splice(i, 1) : delete t[r]);
  }
}
class g6t extends y6t {
  /**
   *
   * @param {SyncHandler} [enter]
   * @param {SyncHandler} [leave]
   */
  constructor(t, r) {
    super(), this.should_skip = !1, this.should_remove = !1, this.replacement = null, this.context = {
      skip: () => this.should_skip = !0,
      remove: () => this.should_remove = !0,
      replace: (i) => this.replacement = i
    }, this.enter = t, this.leave = r;
  }
  /**
   * @template {Node} Parent
   * @param {Node} node
   * @param {Parent | null} parent
   * @param {keyof Parent} [prop]
   * @param {number | null} [index]
   * @returns {Node | null}
   */
  visit(t, r, i, n) {
    if (t) {
      if (this.enter) {
        const a = this.should_skip, o = this.should_remove, l = this.replacement;
        this.should_skip = !1, this.should_remove = !1, this.replacement = null, this.enter.call(this.context, t, r, i, n), this.replacement && (t = this.replacement, this.replace(r, i, n, t)), this.should_remove && this.remove(r, i, n);
        const u = this.should_skip, c = this.should_remove;
        if (this.should_skip = a, this.should_remove = o, this.replacement = l, u)
          return t;
        if (c)
          return null;
      }
      let s;
      for (s in t) {
        const a = t[s];
        if (a && typeof a == "object")
          if (Array.isArray(a)) {
            const o = (
              /** @type {Array<unknown>} */
              a
            );
            for (let l = 0; l < o.length; l += 1) {
              const u = o[l];
              Ree(u) && (this.visit(u, t, s, l) || l--);
            }
          } else
            Ree(a) && this.visit(a, t, s, null);
      }
      if (this.leave) {
        const a = this.replacement, o = this.should_remove;
        this.replacement = null, this.should_remove = !1, this.leave.call(this.context, t, r, i, n), this.replacement && (t = this.replacement, this.replace(r, i, n, t)), this.should_remove && this.remove(r, i, n);
        const l = this.should_remove;
        if (this.replacement = a, this.should_remove = o, l)
          return null;
      }
    }
    return t;
  }
}
function Ree(e) {
  return e !== null && typeof e == "object" && "type" in e && typeof e.type == "string";
}
function PS(e, { enter: t, leave: r }) {
  return new g6t(t, r).visit(e, null);
}
const q8 = Math.round(Math.random() * 1e20).toString(36), Zc = new RegExp("_".concat(q8, "_(?:(\\d+)|(AT)|(HASH))_(\\w+)?"), "g"), WI = (e, t) => ({
  // pass to acorn options
  /**
   * @param {boolean} block
   * @param {string} value
   * @param {number} start
   * @param {number} end
   */
  onComment: (r, i, n, s) => {
    if (r && /\n/.test(i)) {
      let a = n;
      for (; a > 0 && t[a - 1] !== "\n"; )
        a -= 1;
      let o = a;
      for (; /[ \t]/.test(t[o]); )
        o += 1;
      const l = t.slice(a, o);
      i = i.replace(new RegExp("^".concat(l), "gm"), "");
    }
    e.push({ type: r ? "Block" : "Line", value: i, start: n, end: s });
  },
  // pass to estree-walker options
  /** @param {NodeWithLocation} node */
  enter(r) {
    let i;
    for (; e[0] && e[0].start < r.start; ) {
      i = e.shift(), i.value = i.value.replace(
        Zc,
        (s, a, o, l, u) => l ? "#".concat(u) : o ? "@".concat(u) : s
      );
      const n = e[0] || r;
      i.has_trailing_newline = i.type === "Line" || /\n/.test(t.slice(i.end, n.start)), (r.leadingComments || (r.leadingComments = [])).push(i);
    }
  },
  /** @param {NodeWithLocation} node */
  leave(r) {
    if (e[0]) {
      const i = t.slice(r.end, e[0].start);
      /^[,) \t]*$/.test(i) && (r.trailingComments = [e.shift()]);
    }
  }
}), b6t = {
  "@": "AT",
  "#": "HASH"
}, v6t = (e) => {
  let t = e[0];
  for (let r = 1; r < e.length; r += 1)
    t += "_".concat(q8, "_").concat(r - 1, "_").concat(e[r]);
  return t.replace(
    /([@#])(\w+)/g,
    (r, i, n) => "_".concat(q8, "_").concat(b6t[i], "_").concat(n)
  );
}, V8 = (e, t) => {
  for (let r = 0; r < e.length; r += 1) {
    const i = e[r];
    if (Array.isArray(i)) {
      V8(i, t);
      continue;
    }
    if (i.type === "ExpressionStatement") {
      if (i.expression === Dd)
        continue;
      if (Array.isArray(i.expression)) {
        let n = i.expression[0];
        for (; Array.isArray(n); )
          n = n[0];
        n && (n.leadingComments = i.leadingComments), V8(i.expression, t);
        continue;
      }
      if (/(Expression|Literal)$/.test(i.expression.type)) {
        t.push(i);
        continue;
      }
      i.leadingComments && (i.expression.leadingComments = i.leadingComments), i.trailingComments && (i.expression.trailingComments = i.trailingComments), t.push(i.expression);
      continue;
    }
    t.push(i);
  }
  return t;
}, m0e = (e, t) => {
  for (let r = 0; r < e.length; r += 1) {
    const i = e[r];
    if (i.value !== Dd) {
      if (i.key === i.value && Array.isArray(i.key)) {
        m0e(i.key, t);
        continue;
      }
      t.push(i);
    }
  }
  return t;
}, M0 = (e, t) => {
  for (let r = 0; r < e.length; r += 1) {
    const i = e[r];
    if (i !== Dd) {
      if (Array.isArray(i)) {
        M0(i, t);
        continue;
      }
      t.push(i);
    }
  }
  return t;
}, Dd = { type: "Empty" }, T6t = (e, t) => {
  const { onComment: r } = WI(e, t);
  return {
    ecmaVersion: 2022,
    sourceType: "module",
    allowAwaitOutsideFunction: !0,
    allowImportExportEverywhere: !0,
    allowReturnOutsideFunction: !0,
    onComment: r
  };
}, S6t = (e, t, r, i) => {
  i.forEach((a) => {
    a.value = a.value.replace(
      Zc,
      (o, l) => +l in r ? r[+l] : o
    );
  });
  const { enter: n, leave: s } = WI(i, e);
  return PS(t, {
    enter: n,
    /** @param {any} node */
    leave(a) {
      if (a.type === "Identifier") {
        Zc.lastIndex = 0;
        const o = Zc.exec(a.name);
        if (o)
          if (o[1]) {
            if (+o[1] in r) {
              let l = r[+o[1]];
              typeof l == "string" ? l = {
                type: "Identifier",
                name: l,
                leadingComments: a.leadingComments,
                trailingComments: a.trailingComments
              } : typeof l == "number" && (l = {
                type: "Literal",
                value: l,
                leadingComments: a.leadingComments,
                trailingComments: a.trailingComments
              }), this.replace(l || Dd);
            }
          } else
            a.name = "".concat(o[2] ? "@" : "#").concat(o[4]);
      }
      if (a.type === "Literal" && typeof a.value == "string") {
        Zc.lastIndex = 0;
        const o = (
          /** @type {string} */
          a.value.replace(
            Zc,
            (u, c) => +c in r ? r[+c] : u
          )
        ), l = o !== a.value;
        a.value = o, l && a.raw && (a.raw = "".concat(a.raw[0]).concat(JSON.stringify(a.value).slice(
          1,
          -1
        )).concat(a.raw[a.raw.length - 1]));
      }
      a.type === "TemplateElement" && (Zc.lastIndex = 0, a.value.raw = /** @type {string} */
      a.value.raw.replace(
        Zc,
        (o, l) => +l in r ? r[+l] : o
      )), (a.type === "Program" || a.type === "BlockStatement") && (a.body = V8(a.body, [])), (a.type === "ObjectExpression" || a.type === "ObjectPattern") && (a.properties = m0e(a.properties, [])), (a.type === "ArrayExpression" || a.type === "ArrayPattern") && (a.elements = M0(a.elements, [])), (a.type === "FunctionExpression" || a.type === "FunctionDeclaration" || a.type === "ArrowFunctionExpression") && (a.params = M0(a.params, [])), (a.type === "CallExpression" || a.type === "NewExpression") && (a.arguments = M0(a.arguments, [])), (a.type === "ImportDeclaration" || a.type === "ExportNamedDeclaration") && (a.specifiers = M0(a.specifiers, [])), a.type === "ForStatement" && (a.init = a.init === Dd ? null : a.init, a.test = a.test === Dd ? null : a.test, a.update = a.update === Dd ? null : a.update), s(a);
    }
  });
};
function y0e(e, ...t) {
  const r = v6t(e), i = [];
  try {
    let n = (
      /** @type {Expression & { start: Number, end: number }} */
      d0e(r, 0, T6t(i, r))
    );
    const s = /\S+/.exec(r.slice(n.end));
    if (s)
      throw new Error("Unexpected token '".concat(s[0], "'"));
    return n = /** @type {Expression & { start: Number, end: number }} */
    S6t(r, n, t, i), n;
  } catch (n) {
    x6t(r, n);
  }
}
function x6t(e, t) {
  throw Zc.lastIndex = 0, e = e.replace(Zc, (r, i, n, s, a) => n ? "@".concat(a) : s ? "#".concat(a) : "${...}"), console.log("failed to parse:\n".concat(e)), t;
}
const E6t = (e, t) => {
  const r = [], { onComment: i, enter: n, leave: s } = WI(r, e), a = (
    /** @type {any} */
    m6t(e, $t({ onComment: i }, t))
  );
  return PS(a, { enter: n, leave: s }), a;
}, P6t = (e, t, r) => {
  const i = [], { onComment: n, enter: s, leave: a } = WI(i, e), o = (
    /** @type {any} */
    d0e(e, t, $t({ onComment: n }, r))
  );
  return PS(o, { enter: s, leave: a }), o;
}, w6t = (e) => E6t(e, {
  sourceType: "module",
  ecmaVersion: 13,
  locations: !0
}), g0e = (e, t) => P6t(e, t, {
  sourceType: "module",
  ecmaVersion: 13,
  locations: !0
});
function Yp(e) {
  try {
    const t = g0e(e.template, e.index);
    let r = 0;
    for (let n = e.index; n < t.start; n += 1)
      e.template[n] === "(" && (r += 1);
    let i = t.end;
    for (; r > 0; ) {
      const n = e.template[i];
      n === ")" ? r -= 1 : Ph.test(n) || e.error(ar.unexpected_token(")"), i), i += 1;
    }
    return e.index = i, t;
  } catch (t) {
    e.acorn_error(t);
  }
}
const A6t = /<\/script\s*>/, C6t = /^<\/script\s*>/;
function _6t(e, t, r) {
  const i = t.find((s) => s.name === "context");
  if (!i)
    return "default";
  (i.value.length !== 1 || i.value[0].type !== "Text") && e.error(ar.invalid_script_context_attribute, r);
  const n = i.value[0].data;
  return n !== "module" && e.error(ar.invalid_script_context_value, i.start), n;
}
function I6t(e, t, r) {
  const i = e.index, n = e.read_until(A6t, ar.unclosed_script);
  e.index >= e.template.length && e.error(ar.unclosed_script);
  const s = e.template.slice(0, i).replace(Obe, " ") + n;
  e.read(C6t);
  let a;
  try {
    a = w6t(s);
  } catch (o) {
    e.acorn_error(o);
  }
  return a.start = i, {
    type: "Script",
    start: t,
    end: e.index,
    context: _6t(e, r, t),
    content: a
  };
}
const WP = 0, Nt = 1, Vr = 2, $n = 3, Ji = 4, Pp = 5, HI = 6, Ls = 7, Ra = 8, Cr = 9, yr = 10, wn = 11, Gr = 12, Zi = 13, wS = 14, Ba = 15, Rn = 16, Ua = 17, wp = 18, ko = 19, jc = 20, vn = 21, Wr = 22, Ts = 23, Hl = 24, Ss = 25, k6t = 0;
function ss(e) {
  return e >= 48 && e <= 57;
}
function Uh(e) {
  return ss(e) || // 0 .. 9
  e >= 65 && e <= 70 || // A .. F
  e >= 97 && e <= 102;
}
function Q7(e) {
  return e >= 65 && e <= 90;
}
function O6t(e) {
  return e >= 97 && e <= 122;
}
function N6t(e) {
  return Q7(e) || O6t(e);
}
function D6t(e) {
  return e >= 128;
}
function cA(e) {
  return N6t(e) || D6t(e) || e === 95;
}
function b0e(e) {
  return cA(e) || ss(e) || e === 45;
}
function L6t(e) {
  return e >= 0 && e <= 8 || e === 11 || e >= 14 && e <= 31 || e === 127;
}
function pA(e) {
  return e === 10 || e === 13 || e === 12;
}
function Jd(e) {
  return pA(e) || e === 32 || e === 9;
}
function up(e, t) {
  return !(e !== 92 || pA(t) || t === k6t);
}
function HP(e, t, r) {
  return e === 45 ? cA(t) || t === 45 || up(t, r) : cA(e) ? !0 : e === 92 ? up(e, t) : !1;
}
function U3(e, t, r) {
  return e === 43 || e === 45 ? ss(t) ? 2 : t === 46 && ss(r) ? 3 : 0 : e === 46 ? ss(t) ? 2 : 0 : ss(e) ? 1 : 0;
}
function v0e(e) {
  return e === 65279 || e === 65534 ? 1 : 0;
}
const W8 = new Array(128), M6t = 128, KP = 130, T0e = 131, Z7 = 132, S0e = 133;
for (let e = 0; e < W8.length; e++)
  W8[e] = Jd(e) && KP || ss(e) && T0e || cA(e) && Z7 || L6t(e) && S0e || e || M6t;
function q3(e) {
  return e < 128 ? W8[e] : Z7;
}
function By(e, t) {
  return t < e.length ? e.charCodeAt(t) : 0;
}
function H8(e, t, r) {
  return r === 13 && By(e, t + 1) === 10 ? 2 : 1;
}
function Fy(e, t, r) {
  let i = e.charCodeAt(t);
  return Q7(i) && (i = i | 32), i === r;
}
function lT(e, t, r, i) {
  if (r - t !== i.length || t < 0 || r > e.length)
    return !1;
  for (let n = t; n < r; n++) {
    const s = i.charCodeAt(n - t);
    let a = e.charCodeAt(n);
    if (Q7(a) && (a = a | 32), a !== s)
      return !1;
  }
  return !0;
}
function R6t(e, t) {
  for (; t >= 0 && Jd(e.charCodeAt(t)); t--)
    ;
  return t + 1;
}
function L1(e, t) {
  for (; t < e.length && Jd(e.charCodeAt(t)); t++)
    ;
  return t;
}
function V3(e, t) {
  for (; t < e.length && ss(e.charCodeAt(t)); t++)
    ;
  return t;
}
function rg(e, t) {
  if (t += 2, Uh(By(e, t - 1))) {
    for (const i = Math.min(e.length, t + 5); t < i && Uh(By(e, t)); t++)
      ;
    const r = By(e, t);
    Jd(r) && (t += H8(e, t, r));
  }
  return t;
}
function M1(e, t) {
  for (; t < e.length; t++) {
    const r = e.charCodeAt(t);
    if (!b0e(r)) {
      if (up(r, By(e, t + 1))) {
        t = rg(e, t) - 1;
        continue;
      }
      break;
    }
  }
  return t;
}
function KI(e, t) {
  let r = e.charCodeAt(t);
  if ((r === 43 || r === 45) && (r = e.charCodeAt(t += 1)), ss(r) && (t = V3(e, t + 1), r = e.charCodeAt(t)), r === 46 && ss(e.charCodeAt(t + 1)) && (t += 2, t = V3(e, t)), Fy(
    e,
    t,
    101
    /* e */
  )) {
    let i = 0;
    r = e.charCodeAt(t + 1), (r === 45 || r === 43) && (i = 1, r = e.charCodeAt(t + 2)), ss(r) && (t = V3(e, t + 1 + i + 1));
  }
  return t;
}
function W3(e, t) {
  for (; t < e.length; t++) {
    const r = e.charCodeAt(t);
    if (r === 41) {
      t++;
      break;
    }
    up(r, By(e, t + 1)) && (t = rg(e, t));
  }
  return t;
}
function x0e(e) {
  if (e.length === 1 && !Uh(e.charCodeAt(0)))
    return e[0];
  let t = parseInt(e, 16);
  return (t === 0 || // If this number is zero,
  t >= 55296 && t <= 57343 || // or is for a surrogate,
  t > 1114111) && (t = 65533), String.fromCodePoint(t);
}
const E0e = [
  "EOF-token",
  "ident-token",
  "function-token",
  "at-keyword-token",
  "hash-token",
  "string-token",
  "bad-string-token",
  "url-token",
  "bad-url-token",
  "delim-token",
  "number-token",
  "percentage-token",
  "dimension-token",
  "whitespace-token",
  "CDO-token",
  "CDC-token",
  "colon-token",
  "semicolon-token",
  "comma-token",
  "[-token",
  "]-token",
  "(-token",
  ")-token",
  "{-token",
  "}-token"
], B6t = 16 * 1024;
function fA(e = null, t) {
  return e === null || e.length < t ? new Uint32Array(Math.max(t + 1024, B6t)) : e;
}
const Bee = 10, F6t = 12, Fee = 13;
function jee(e) {
  const t = e.source, r = t.length, i = t.length > 0 ? v0e(t.charCodeAt(0)) : 0, n = fA(e.lines, r), s = fA(e.columns, r);
  let a = e.startLine, o = e.startColumn;
  for (let l = i; l < r; l++) {
    const u = t.charCodeAt(l);
    n[l] = a, s[l] = o++, (u === Bee || u === Fee || u === F6t) && (u === Fee && l + 1 < r && t.charCodeAt(l + 1) === Bee && (l++, n[l] = a, s[l] = o), a++, o = 1);
  }
  n[r] = a, s[r] = o, e.lines = n, e.columns = s, e.computed = !0;
}
class j6t {
  constructor() {
    this.lines = null, this.columns = null, this.computed = !1;
  }
  setSource(t, r = 0, i = 1, n = 1) {
    this.source = t, this.startOffset = r, this.startLine = i, this.startColumn = n, this.computed = !1;
  }
  getLocation(t, r) {
    return this.computed || jee(this), {
      source: r,
      offset: this.startOffset + t,
      line: this.lines[t],
      column: this.columns[t]
    };
  }
  getLocationRange(t, r, i) {
    return this.computed || jee(this), {
      source: i,
      start: {
        offset: this.startOffset + t,
        line: this.lines[t],
        column: this.columns[t]
      },
      end: {
        offset: this.startOffset + r,
        line: this.lines[r],
        column: this.columns[r]
      }
    };
  }
}
const Tl = 16777215, oh = 24, $6t = /* @__PURE__ */ new Map([
  [Vr, Wr],
  [vn, Wr],
  [ko, jc],
  [Ts, Hl]
]);
let U6t = class {
  constructor(t, r) {
    this.setSource(t, r);
  }
  reset() {
    this.eof = !1, this.tokenIndex = -1, this.tokenType = 0, this.tokenStart = this.firstCharOffset, this.tokenEnd = this.firstCharOffset;
  }
  setSource(t = "", r = () => {
  }) {
    t = String(t || "");
    const i = t.length, n = fA(this.offsetAndType, t.length + 1), s = fA(this.balance, t.length + 1);
    let a = 0, o = 0, l = 0, u = -1;
    for (this.offsetAndType = null, this.balance = null, r(t, (c, f, h) => {
      switch (c) {
        default:
          s[a] = i;
          break;
        case o: {
          let m = l & Tl;
          for (l = s[m], o = l >> oh, s[a] = m, s[m++] = a; m < a; m++)
            s[m] === i && (s[m] = a);
          break;
        }
        case vn:
        case Vr:
        case ko:
        case Ts:
          s[a] = l, o = $6t.get(c), l = o << oh | a;
          break;
      }
      n[a++] = c << oh | h, u === -1 && (u = f);
    }), n[a] = WP << oh | i, s[a] = i, s[i] = i; l !== 0; ) {
      const c = l & Tl;
      l = s[c], s[c] = i;
    }
    this.source = t, this.firstCharOffset = u === -1 ? 0 : u, this.tokenCount = a, this.offsetAndType = n, this.balance = s, this.reset(), this.next();
  }
  lookupType(t) {
    return t += this.tokenIndex, t < this.tokenCount ? this.offsetAndType[t] >> oh : WP;
  }
  lookupOffset(t) {
    return t += this.tokenIndex, t < this.tokenCount ? this.offsetAndType[t - 1] & Tl : this.source.length;
  }
  lookupValue(t, r) {
    return t += this.tokenIndex, t < this.tokenCount ? lT(
      this.source,
      this.offsetAndType[t - 1] & Tl,
      this.offsetAndType[t] & Tl,
      r
    ) : !1;
  }
  getTokenStart(t) {
    return t === this.tokenIndex ? this.tokenStart : t > 0 ? t < this.tokenCount ? this.offsetAndType[t - 1] & Tl : this.offsetAndType[this.tokenCount] & Tl : this.firstCharOffset;
  }
  substrToCursor(t) {
    return this.source.substring(t, this.tokenStart);
  }
  isBalanceEdge(t) {
    return this.balance[this.tokenIndex] < t;
  }
  isDelim(t, r) {
    return r ? this.lookupType(r) === Cr && this.source.charCodeAt(this.lookupOffset(r)) === t : this.tokenType === Cr && this.source.charCodeAt(this.tokenStart) === t;
  }
  skip(t) {
    let r = this.tokenIndex + t;
    r < this.tokenCount ? (this.tokenIndex = r, this.tokenStart = this.offsetAndType[r - 1] & Tl, r = this.offsetAndType[r], this.tokenType = r >> oh, this.tokenEnd = r & Tl) : (this.tokenIndex = this.tokenCount, this.next());
  }
  next() {
    let t = this.tokenIndex + 1;
    t < this.tokenCount ? (this.tokenIndex = t, this.tokenStart = this.tokenEnd, t = this.offsetAndType[t], this.tokenType = t >> oh, this.tokenEnd = t & Tl) : (this.eof = !0, this.tokenIndex = this.tokenCount, this.tokenType = WP, this.tokenStart = this.tokenEnd = this.source.length);
  }
  skipSC() {
    for (; this.tokenType === Zi || this.tokenType === Ss; )
      this.next();
  }
  skipUntilBalanced(t, r) {
    let i = t, n, s;
    e:
      for (; i < this.tokenCount; i++) {
        if (n = this.balance[i], n < t)
          break e;
        switch (s = i > 0 ? this.offsetAndType[i - 1] & Tl : this.firstCharOffset, r(this.source.charCodeAt(s))) {
          case 1:
            break e;
          case 2:
            i++;
            break e;
          default:
            this.balance[n] === i && (i = n);
        }
      }
    this.skip(i - this.tokenIndex);
  }
  forEachToken(t) {
    for (let r = 0, i = this.firstCharOffset; r < this.tokenCount; r++) {
      const n = i, s = this.offsetAndType[r], a = s & Tl, o = s >> oh;
      i = a, t(o, n, a, r);
    }
  }
  dump() {
    const t = new Array(this.tokenCount);
    return this.forEachToken((r, i, n, s) => {
      t[s] = {
        idx: s,
        type: E0e[r],
        chunk: this.source.substring(i, n),
        balance: this.balance[s]
      };
    }), t;
  }
};
function zI(e, t) {
  function r(f) {
    return f < o ? e.charCodeAt(f) : 0;
  }
  function i() {
    if (u = KI(e, u), HP(r(u), r(u + 1), r(u + 2))) {
      c = Gr, u = M1(e, u);
      return;
    }
    if (r(u) === 37) {
      c = wn, u++;
      return;
    }
    c = yr;
  }
  function n() {
    const f = u;
    if (u = M1(e, u), lT(e, f, u, "url") && r(u) === 40) {
      if (u = L1(e, u + 1), r(u) === 34 || r(u) === 39) {
        c = Vr, u = f + 4;
        return;
      }
      a();
      return;
    }
    if (r(u) === 40) {
      c = Vr, u++;
      return;
    }
    c = Nt;
  }
  function s(f) {
    for (f || (f = r(u++)), c = Pp; u < e.length; u++) {
      const h = e.charCodeAt(u);
      switch (q3(h)) {
        case f:
          u++;
          return;
        case KP:
          if (pA(h)) {
            u += H8(e, u, h), c = HI;
            return;
          }
          break;
        case 92:
          if (u === e.length - 1)
            break;
          const m = r(u + 1);
          pA(m) ? u += H8(e, u + 1, m) : up(h, m) && (u = rg(e, u) - 1);
          break;
      }
    }
  }
  function a() {
    for (c = Ls, u = L1(e, u); u < e.length; u++) {
      const f = e.charCodeAt(u);
      switch (q3(f)) {
        case 41:
          u++;
          return;
        case KP:
          if (u = L1(e, u), r(u) === 41 || u >= e.length) {
            u < e.length && u++;
            return;
          }
          u = W3(e, u), c = Ra;
          return;
        case 34:
        case 39:
        case 40:
        case S0e:
          u = W3(e, u), c = Ra;
          return;
        case 92:
          if (up(f, r(u + 1))) {
            u = rg(e, u) - 1;
            break;
          }
          u = W3(e, u), c = Ra;
          return;
      }
    }
  }
  e = String(e || "");
  const o = e.length;
  let l = v0e(r(0)), u = l, c;
  for (; u < o; ) {
    const f = e.charCodeAt(u);
    switch (q3(f)) {
      case KP:
        c = Zi, u = L1(e, u + 1);
        break;
      case 34:
        s();
        break;
      case 35:
        b0e(r(u + 1)) || up(r(u + 1), r(u + 2)) ? (c = Ji, u = M1(e, u + 1)) : (c = Cr, u++);
        break;
      case 39:
        s();
        break;
      case 40:
        c = vn, u++;
        break;
      case 41:
        c = Wr, u++;
        break;
      case 43:
        U3(f, r(u + 1), r(u + 2)) ? i() : (c = Cr, u++);
        break;
      case 44:
        c = wp, u++;
        break;
      case 45:
        U3(f, r(u + 1), r(u + 2)) ? i() : r(u + 1) === 45 && r(u + 2) === 62 ? (c = Ba, u = u + 3) : HP(f, r(u + 1), r(u + 2)) ? n() : (c = Cr, u++);
        break;
      case 46:
        U3(f, r(u + 1), r(u + 2)) ? i() : (c = Cr, u++);
        break;
      case 47:
        r(u + 1) === 42 ? (c = Ss, u = e.indexOf("*/", u + 2), u = u === -1 ? e.length : u + 2) : (c = Cr, u++);
        break;
      case 58:
        c = Rn, u++;
        break;
      case 59:
        c = Ua, u++;
        break;
      case 60:
        r(u + 1) === 33 && r(u + 2) === 45 && r(u + 3) === 45 ? (c = wS, u = u + 4) : (c = Cr, u++);
        break;
      case 64:
        HP(r(u + 1), r(u + 2), r(u + 3)) ? (c = $n, u = M1(e, u + 1)) : (c = Cr, u++);
        break;
      case 91:
        c = ko, u++;
        break;
      case 92:
        up(f, r(u + 1)) ? n() : (c = Cr, u++);
        break;
      case 93:
        c = jc, u++;
        break;
      case 123:
        c = Ts, u++;
        break;
      case 125:
        c = Hl, u++;
        break;
      case T0e:
        i();
        break;
      case Z7:
        n();
        break;
      default:
        c = Cr, u++;
    }
    t(c, l, l = u);
  }
}
let Hm = null;
class ns {
  static createItem(t) {
    return {
      prev: null,
      next: null,
      data: t
    };
  }
  constructor() {
    this.head = null, this.tail = null, this.cursor = null;
  }
  createItem(t) {
    return ns.createItem(t);
  }
  // cursor helpers
  allocateCursor(t, r) {
    let i;
    return Hm !== null ? (i = Hm, Hm = Hm.cursor, i.prev = t, i.next = r, i.cursor = this.cursor) : i = {
      prev: t,
      next: r,
      cursor: this.cursor
    }, this.cursor = i, i;
  }
  releaseCursor() {
    const { cursor: t } = this;
    this.cursor = t.cursor, t.prev = null, t.next = null, t.cursor = Hm, Hm = t;
  }
  updateCursors(t, r, i, n) {
    let { cursor: s } = this;
    for (; s !== null; )
      s.prev === t && (s.prev = r), s.next === i && (s.next = n), s = s.cursor;
  }
  *[Symbol.iterator]() {
    for (let t = this.head; t !== null; t = t.next)
      yield t.data;
  }
  // getters
  get size() {
    let t = 0;
    for (let r = this.head; r !== null; r = r.next)
      t++;
    return t;
  }
  get isEmpty() {
    return this.head === null;
  }
  get first() {
    return this.head && this.head.data;
  }
  get last() {
    return this.tail && this.tail.data;
  }
  // convertors
  fromArray(t) {
    let r = null;
    this.head = null;
    for (let i of t) {
      const n = ns.createItem(i);
      r !== null ? r.next = n : this.head = n, n.prev = r, r = n;
    }
    return this.tail = r, this;
  }
  toArray() {
    return [...this];
  }
  toJSON() {
    return [...this];
  }
  // array-like methods
  forEach(t, r = this) {
    const i = this.allocateCursor(null, this.head);
    for (; i.next !== null; ) {
      const n = i.next;
      i.next = n.next, t.call(r, n.data, n, this);
    }
    this.releaseCursor();
  }
  forEachRight(t, r = this) {
    const i = this.allocateCursor(this.tail, null);
    for (; i.prev !== null; ) {
      const n = i.prev;
      i.prev = n.prev, t.call(r, n.data, n, this);
    }
    this.releaseCursor();
  }
  reduce(t, r, i = this) {
    let n = this.allocateCursor(null, this.head), s = r, a;
    for (; n.next !== null; )
      a = n.next, n.next = a.next, s = t.call(i, s, a.data, a, this);
    return this.releaseCursor(), s;
  }
  reduceRight(t, r, i = this) {
    let n = this.allocateCursor(this.tail, null), s = r, a;
    for (; n.prev !== null; )
      a = n.prev, n.prev = a.prev, s = t.call(i, s, a.data, a, this);
    return this.releaseCursor(), s;
  }
  some(t, r = this) {
    for (let i = this.head; i !== null; i = i.next)
      if (t.call(r, i.data, i, this))
        return !0;
    return !1;
  }
  map(t, r = this) {
    const i = new ns();
    for (let n = this.head; n !== null; n = n.next)
      i.appendData(t.call(r, n.data, n, this));
    return i;
  }
  filter(t, r = this) {
    const i = new ns();
    for (let n = this.head; n !== null; n = n.next)
      t.call(r, n.data, n, this) && i.appendData(n.data);
    return i;
  }
  nextUntil(t, r, i = this) {
    if (t === null)
      return;
    const n = this.allocateCursor(null, t);
    for (; n.next !== null; ) {
      const s = n.next;
      if (n.next = s.next, r.call(i, s.data, s, this))
        break;
    }
    this.releaseCursor();
  }
  prevUntil(t, r, i = this) {
    if (t === null)
      return;
    const n = this.allocateCursor(t, null);
    for (; n.prev !== null; ) {
      const s = n.prev;
      if (n.prev = s.prev, r.call(i, s.data, s, this))
        break;
    }
    this.releaseCursor();
  }
  // mutation
  clear() {
    this.head = null, this.tail = null;
  }
  copy() {
    const t = new ns();
    for (let r of this)
      t.appendData(r);
    return t;
  }
  prepend(t) {
    return this.updateCursors(null, t, this.head, t), this.head !== null ? (this.head.prev = t, t.next = this.head) : this.tail = t, this.head = t, this;
  }
  prependData(t) {
    return this.prepend(ns.createItem(t));
  }
  append(t) {
    return this.insert(t);
  }
  appendData(t) {
    return this.insert(ns.createItem(t));
  }
  insert(t, r = null) {
    if (r !== null)
      if (this.updateCursors(r.prev, t, r, t), r.prev === null) {
        if (this.head !== r)
          throw new Error("before doesn't belong to list");
        this.head = t, r.prev = t, t.next = r, this.updateCursors(null, t);
      } else
        r.prev.next = t, t.prev = r.prev, r.prev = t, t.next = r;
    else
      this.updateCursors(this.tail, t, null, t), this.tail !== null ? (this.tail.next = t, t.prev = this.tail) : this.head = t, this.tail = t;
    return this;
  }
  insertData(t, r) {
    return this.insert(ns.createItem(t), r);
  }
  remove(t) {
    if (this.updateCursors(t, t.prev, t, t.next), t.prev !== null)
      t.prev.next = t.next;
    else {
      if (this.head !== t)
        throw new Error("item doesn't belong to list");
      this.head = t.next;
    }
    if (t.next !== null)
      t.next.prev = t.prev;
    else {
      if (this.tail !== t)
        throw new Error("item doesn't belong to list");
      this.tail = t.prev;
    }
    return t.prev = null, t.next = null, t;
  }
  push(t) {
    this.insert(ns.createItem(t));
  }
  pop() {
    return this.tail !== null ? this.remove(this.tail) : null;
  }
  unshift(t) {
    this.prepend(ns.createItem(t));
  }
  shift() {
    return this.head !== null ? this.remove(this.head) : null;
  }
  prependList(t) {
    return this.insertList(t, this.head);
  }
  appendList(t) {
    return this.insertList(t);
  }
  insertList(t, r) {
    return t.head === null ? this : (r != null ? (this.updateCursors(r.prev, t.tail, r, t.head), r.prev !== null ? (r.prev.next = t.head, t.head.prev = r.prev) : this.head = t.head, r.prev = t.tail, t.tail.next = r) : (this.updateCursors(this.tail, t.tail, null, t.head), this.tail !== null ? (this.tail.next = t.head, t.head.prev = this.tail) : this.head = t.head, this.tail = t.tail), t.head = null, t.tail = null, this);
  }
  replace(t, r) {
    "head" in r ? this.insertList(r, t) : this.insert(r, t), this.remove(t);
  }
}
function GI(e, t) {
  const r = Object.create(SyntaxError.prototype), i = new Error();
  return Object.assign(r, {
    name: e,
    message: t,
    get stack() {
      return (i.stack || "").replace(/^(.+\n){1,3}/, "".concat(e, ": ").concat(t, "\n"));
    }
  });
}
const H3 = 100, $ee = 60, Uee = "    ";
function qee({ source: e, line: t, column: r }, i) {
  function n(c, f) {
    return s.slice(c, f).map(
      (h, m) => String(c + m + 1).padStart(l) + " |" + h
    ).join("\n");
  }
  const s = e.split(/\r\n?|\n|\f/), a = Math.max(1, t - i) - 1, o = Math.min(t + i, s.length + 1), l = Math.max(4, String(o).length) + 1;
  let u = 0;
  r += (Uee.length - 1) * (s[t - 1].substr(0, r - 1).match(/\t/g) || []).length, r > H3 && (u = r - $ee + 3, r = $ee - 2);
  for (let c = a; c <= o; c++)
    c >= 0 && c < s.length && (s[c] = s[c].replace(/\t/g, Uee), s[c] = (u > 0 && s[c].length > u ? "…" : "") + s[c].substr(u, H3 - 2) + (s[c].length > u + H3 - 1 ? "…" : ""));
  return [
    n(a, t),
    new Array(r + l + 2).join("-") + "^",
    n(t, o)
  ].filter(Boolean).join("\n");
}
function Vee(e, t, r, i, n) {
  return Object.assign(GI("SyntaxError", e), {
    source: t,
    offset: r,
    line: i,
    column: n,
    sourceFragment(a) {
      return qee({ source: t, line: i, column: n }, isNaN(a) ? 0 : a);
    },
    get formattedMessage() {
      return "Parse error: ".concat(e, "\n") + qee({ source: t, line: i, column: n }, 2);
    }
  });
}
function q6t(e) {
  const t = this.createList();
  let r = !1;
  const i = {
    recognizer: e
  };
  for (; !this.eof; ) {
    switch (this.tokenType) {
      case Ss:
        this.next();
        continue;
      case Zi:
        r = !0, this.next();
        continue;
    }
    let n = e.getNode.call(this, i);
    if (n === void 0)
      break;
    r && (e.onWhiteSpace && e.onWhiteSpace.call(this, n, t, i), r = !1), t.push(n);
  }
  return r && e.onWhiteSpace && e.onWhiteSpace.call(this, null, t, i), t;
}
const Wee = () => {
}, V6t = 33, W6t = 35, K3 = 59, Hee = 123, Kee = 0;
function H6t(e) {
  return function() {
    return this[e]();
  };
}
function z3(e) {
  const t = /* @__PURE__ */ Object.create(null);
  for (const r in e) {
    const i = e[r], n = i.parse || i;
    n && (t[r] = n);
  }
  return t;
}
function K6t(e) {
  const t = {
    context: /* @__PURE__ */ Object.create(null),
    scope: Object.assign(/* @__PURE__ */ Object.create(null), e.scope),
    atrule: z3(e.atrule),
    pseudo: z3(e.pseudo),
    node: z3(e.node)
  };
  for (const r in e.parseContext)
    switch (typeof e.parseContext[r]) {
      case "function":
        t.context[r] = e.parseContext[r];
        break;
      case "string":
        t.context[r] = H6t(e.parseContext[r]);
        break;
    }
  return $t($t({
    config: t
  }, t), t.node);
}
function z6t(e) {
  let t = "", r = "<unknown>", i = !1, n = Wee, s = !1;
  const a = new j6t(), o = Object.assign(new U6t(), K6t(e || {}), {
    parseAtrulePrelude: !0,
    parseRulePrelude: !0,
    parseValue: !0,
    parseCustomProperty: !1,
    readSequence: q6t,
    consumeUntilBalanceEnd: () => 0,
    consumeUntilLeftCurlyBracket(u) {
      return u === Hee ? 1 : 0;
    },
    consumeUntilLeftCurlyBracketOrSemicolon(u) {
      return u === Hee || u === K3 ? 1 : 0;
    },
    consumeUntilExclamationMarkOrSemicolon(u) {
      return u === V6t || u === K3 ? 1 : 0;
    },
    consumeUntilSemicolonIncluded(u) {
      return u === K3 ? 2 : 0;
    },
    createList() {
      return new ns();
    },
    createSingleNodeList(u) {
      return new ns().appendData(u);
    },
    getFirstListNode(u) {
      return u && u.first;
    },
    getLastListNode(u) {
      return u && u.last;
    },
    parseWithFallback(u, c) {
      const f = this.tokenIndex;
      try {
        return u.call(this);
      } catch (h) {
        if (s)
          throw h;
        const m = c.call(this, f);
        return s = !0, n(h, m), s = !1, m;
      }
    },
    lookupNonWSType(u) {
      let c;
      do
        if (c = this.lookupType(u++), c !== Zi)
          return c;
      while (c !== Kee);
      return Kee;
    },
    charCodeAt(u) {
      return u >= 0 && u < t.length ? t.charCodeAt(u) : 0;
    },
    substring(u, c) {
      return t.substring(u, c);
    },
    substrToCursor(u) {
      return this.source.substring(u, this.tokenStart);
    },
    cmpChar(u, c) {
      return Fy(t, u, c);
    },
    cmpStr(u, c, f) {
      return lT(t, u, c, f);
    },
    consume(u) {
      const c = this.tokenStart;
      return this.eat(u), this.substrToCursor(c);
    },
    consumeFunctionName() {
      const u = t.substring(this.tokenStart, this.tokenEnd - 1);
      return this.eat(Vr), u;
    },
    consumeNumber(u) {
      const c = t.substring(this.tokenStart, KI(t, this.tokenStart));
      return this.eat(u), c;
    },
    eat(u) {
      if (this.tokenType !== u) {
        const c = E0e[u].slice(0, -6).replace(/-/g, " ").replace(/^./, (m) => m.toUpperCase());
        let f = "".concat(/[[\](){}]/.test(c) ? '"'.concat(c, '"') : c, " is expected"), h = this.tokenStart;
        switch (u) {
          case Nt:
            this.tokenType === Vr || this.tokenType === Ls ? (h = this.tokenEnd - 1, f = "Identifier is expected but function found") : f = "Identifier is expected";
            break;
          case Ji:
            this.isDelim(W6t) && (this.next(), h++, f = "Name is expected");
            break;
          case wn:
            this.tokenType === yr && (h = this.tokenEnd, f = "Percent sign is expected");
            break;
        }
        this.error(f, h);
      }
      this.next();
    },
    eatIdent(u) {
      (this.tokenType !== Nt || this.lookupValue(0, u) === !1) && this.error('Identifier "'.concat(u, '" is expected')), this.next();
    },
    eatDelim(u) {
      this.isDelim(u) || this.error('Delim "'.concat(String.fromCharCode(u), '" is expected')), this.next();
    },
    getLocation(u, c) {
      return i ? a.getLocationRange(
        u,
        c,
        r
      ) : null;
    },
    getLocationFromList(u) {
      if (i) {
        const c = this.getFirstListNode(u), f = this.getLastListNode(u);
        return a.getLocationRange(
          c !== null ? c.loc.start.offset - a.startOffset : this.tokenStart,
          f !== null ? f.loc.end.offset - a.startOffset : this.tokenStart,
          r
        );
      }
      return null;
    },
    error(u, c) {
      const f = typeof c != "undefined" && c < t.length ? a.getLocation(c) : this.eof ? a.getLocation(R6t(t, t.length - 1)) : a.getLocation(this.tokenStart);
      throw new Vee(
        u || "Unexpected input",
        t,
        f.offset,
        f.line,
        f.column
      );
    }
  });
  return Object.assign(function(u, c) {
    t = u, c = c || {}, o.setSource(t, zI), a.setSource(
      t,
      c.offset,
      c.line,
      c.column
    ), r = c.filename || "<unknown>", i = !!c.positions, n = typeof c.onParseError == "function" ? c.onParseError : Wee, s = !1, o.parseAtrulePrelude = "parseAtrulePrelude" in c ? !!c.parseAtrulePrelude : !0, o.parseRulePrelude = "parseRulePrelude" in c ? !!c.parseRulePrelude : !0, o.parseValue = "parseValue" in c ? !!c.parseValue : !0, o.parseCustomProperty = "parseCustomProperty" in c ? !!c.parseCustomProperty : !1;
    const { context: f = "default", onComment: h } = c;
    if (!(f in o.context))
      throw new Error("Unknown context `" + f + "`");
    typeof h == "function" && o.forEachToken((g, y, v) => {
      if (g === Ss) {
        const T = o.getLocation(y, v), S = lT(t, v - 2, v, "*/") ? t.slice(y + 2, v - 2) : t.slice(y + 2, v);
        h(S, T);
      }
    });
    const m = o.context[f].call(o, c);
    return o.eof || o.error(), m;
  }, {
    SyntaxError: Vee,
    config: o.config
  });
}
var eU = {}, tU = {}, zee = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");
tU.encode = function(e) {
  if (0 <= e && e < zee.length)
    return zee[e];
  throw new TypeError("Must be between 0 and 63: " + e);
};
tU.decode = function(e) {
  var t = 65, r = 90, i = 97, n = 122, s = 48, a = 57, o = 43, l = 47, u = 26, c = 52;
  return t <= e && e <= r ? e - t : i <= e && e <= n ? e - i + u : s <= e && e <= a ? e - s + c : e == o ? 62 : e == l ? 63 : -1;
};
var P0e = tU, rU = 5, w0e = 1 << rU, A0e = w0e - 1, C0e = w0e;
function G6t(e) {
  return e < 0 ? (-e << 1) + 1 : (e << 1) + 0;
}
function Y6t(e) {
  var t = (e & 1) === 1, r = e >> 1;
  return t ? -r : r;
}
eU.encode = function(t) {
  var r = "", i, n = G6t(t);
  do
    i = n & A0e, n >>>= rU, n > 0 && (i |= C0e), r += P0e.encode(i);
  while (n > 0);
  return r;
};
eU.decode = function(t, r, i) {
  var n = t.length, s = 0, a = 0, o, l;
  do {
    if (r >= n)
      throw new Error("Expected more digits in base 64 VLQ value.");
    if (l = P0e.decode(t.charCodeAt(r++)), l === -1)
      throw new Error("Invalid base64 digit: " + t.charAt(r - 1));
    o = !!(l & C0e), l &= A0e, s = s + (l << a), a += rU;
  } while (o);
  i.value = Y6t(s), i.rest = r;
};
var YI = {};
(function(e) {
  function t(A, I, L) {
    if (I in A)
      return A[I];
    if (arguments.length === 3)
      return L;
    throw new Error('"' + I + '" is a required argument.');
  }
  e.getArg = t;
  var r = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/, i = /^data:.+\,.+$/;
  function n(A) {
    var I = A.match(r);
    return I ? {
      scheme: I[1],
      auth: I[2],
      host: I[3],
      port: I[4],
      path: I[5]
    } : null;
  }
  e.urlParse = n;
  function s(A) {
    var I = "";
    return A.scheme && (I += A.scheme + ":"), I += "//", A.auth && (I += A.auth + "@"), A.host && (I += A.host), A.port && (I += ":" + A.port), A.path && (I += A.path), I;
  }
  e.urlGenerate = s;
  var a = 32;
  function o(A) {
    var I = [];
    return function(L) {
      for (var O = 0; O < I.length; O++)
        if (I[O].input === L) {
          var F = I[0];
          return I[0] = I[O], I[O] = F, I[0].result;
        }
      var q = A(L);
      return I.unshift({
        input: L,
        result: q
      }), I.length > a && I.pop(), q;
    };
  }
  var l = o(function(I) {
    var L = I, O = n(I);
    if (O) {
      if (!O.path)
        return I;
      L = O.path;
    }
    for (var F = e.isAbsolute(L), q = [], j = 0, N = 0; ; )
      if (j = N, N = L.indexOf("/", j), N === -1) {
        q.push(L.slice(j));
        break;
      } else
        for (q.push(L.slice(j, N)); N < L.length && L[N] === "/"; )
          N++;
    for (var M, R = 0, N = q.length - 1; N >= 0; N--)
      M = q[N], M === "." ? q.splice(N, 1) : M === ".." ? R++ : R > 0 && (M === "" ? (q.splice(N + 1, R), R = 0) : (q.splice(N, 2), R--));
    return L = q.join("/"), L === "" && (L = F ? "/" : "."), O ? (O.path = L, s(O)) : L;
  });
  e.normalize = l;
  function u(A, I) {
    A === "" && (A = "."), I === "" && (I = ".");
    var L = n(I), O = n(A);
    if (O && (A = O.path || "/"), L && !L.scheme)
      return O && (L.scheme = O.scheme), s(L);
    if (L || I.match(i))
      return I;
    if (O && !O.host && !O.path)
      return O.host = I, s(O);
    var F = I.charAt(0) === "/" ? I : l(A.replace(/\/+$/, "") + "/" + I);
    return O ? (O.path = F, s(O)) : F;
  }
  e.join = u, e.isAbsolute = function(A) {
    return A.charAt(0) === "/" || r.test(A);
  };
  function c(A, I) {
    A === "" && (A = "."), A = A.replace(/\/$/, "");
    for (var L = 0; I.indexOf(A + "/") !== 0; ) {
      var O = A.lastIndexOf("/");
      if (O < 0 || (A = A.slice(0, O), A.match(/^([^\/]+:\/)?\/*$/)))
        return I;
      ++L;
    }
    return Array(L + 1).join("../") + I.substr(A.length + 1);
  }
  e.relative = c;
  var f = function() {
    var A = /* @__PURE__ */ Object.create(null);
    return !("__proto__" in A);
  }();
  function h(A) {
    return A;
  }
  function m(A) {
    return y(A) ? "$" + A : A;
  }
  e.toSetString = f ? h : m;
  function g(A) {
    return y(A) ? A.slice(1) : A;
  }
  e.fromSetString = f ? h : g;
  function y(A) {
    if (!A)
      return !1;
    var I = A.length;
    if (I < 9 || A.charCodeAt(I - 1) !== 95 || A.charCodeAt(I - 2) !== 95 || A.charCodeAt(I - 3) !== 111 || A.charCodeAt(I - 4) !== 116 || A.charCodeAt(I - 5) !== 111 || A.charCodeAt(I - 6) !== 114 || A.charCodeAt(I - 7) !== 112 || A.charCodeAt(I - 8) !== 95 || A.charCodeAt(I - 9) !== 95)
      return !1;
    for (var L = I - 10; L >= 0; L--)
      if (A.charCodeAt(L) !== 36)
        return !1;
    return !0;
  }
  function v(A, I, L) {
    var O = x(A.source, I.source);
    return O !== 0 || (O = A.originalLine - I.originalLine, O !== 0) || (O = A.originalColumn - I.originalColumn, O !== 0 || L) || (O = A.generatedColumn - I.generatedColumn, O !== 0) || (O = A.generatedLine - I.generatedLine, O !== 0) ? O : x(A.name, I.name);
  }
  e.compareByOriginalPositions = v;
  function T(A, I, L) {
    var O;
    return O = A.originalLine - I.originalLine, O !== 0 || (O = A.originalColumn - I.originalColumn, O !== 0 || L) || (O = A.generatedColumn - I.generatedColumn, O !== 0) || (O = A.generatedLine - I.generatedLine, O !== 0) ? O : x(A.name, I.name);
  }
  e.compareByOriginalPositionsNoSource = T;
  function S(A, I, L) {
    var O = A.generatedLine - I.generatedLine;
    return O !== 0 || (O = A.generatedColumn - I.generatedColumn, O !== 0 || L) || (O = x(A.source, I.source), O !== 0) || (O = A.originalLine - I.originalLine, O !== 0) || (O = A.originalColumn - I.originalColumn, O !== 0) ? O : x(A.name, I.name);
  }
  e.compareByGeneratedPositionsDeflated = S;
  function P(A, I, L) {
    var O = A.generatedColumn - I.generatedColumn;
    return O !== 0 || L || (O = x(A.source, I.source), O !== 0) || (O = A.originalLine - I.originalLine, O !== 0) || (O = A.originalColumn - I.originalColumn, O !== 0) ? O : x(A.name, I.name);
  }
  e.compareByGeneratedPositionsDeflatedNoLine = P;
  function x(A, I) {
    return A === I ? 0 : A === null ? 1 : I === null ? -1 : A > I ? 1 : -1;
  }
  function C(A, I) {
    var L = A.generatedLine - I.generatedLine;
    return L !== 0 || (L = A.generatedColumn - I.generatedColumn, L !== 0) || (L = x(A.source, I.source), L !== 0) || (L = A.originalLine - I.originalLine, L !== 0) || (L = A.originalColumn - I.originalColumn, L !== 0) ? L : x(A.name, I.name);
  }
  e.compareByGeneratedPositionsInflated = C;
  function D(A) {
    return JSON.parse(A.replace(/^\)]}'[^\n]*\n/, ""));
  }
  e.parseSourceMapInput = D;
  function w(A, I, L) {
    if (I = I || "", A && (A[A.length - 1] !== "/" && I[0] !== "/" && (A += "/"), I = A + I), L) {
      var O = n(L);
      if (!O)
        throw new Error("sourceMapURL could not be parsed");
      if (O.path) {
        var F = O.path.lastIndexOf("/");
        F >= 0 && (O.path = O.path.substring(0, F + 1));
      }
      I = u(s(O), I);
    }
    return l(I);
  }
  e.computeSourceURL = w;
})(YI);
var _0e = {}, iU = YI, nU = Object.prototype.hasOwnProperty, qd = typeof Map != "undefined";
function Of() {
  this._array = [], this._set = qd ? /* @__PURE__ */ new Map() : /* @__PURE__ */ Object.create(null);
}
Of.fromArray = function(t, r) {
  for (var i = new Of(), n = 0, s = t.length; n < s; n++)
    i.add(t[n], r);
  return i;
};
Of.prototype.size = function() {
  return qd ? this._set.size : Object.getOwnPropertyNames(this._set).length;
};
Of.prototype.add = function(t, r) {
  var i = qd ? t : iU.toSetString(t), n = qd ? this.has(t) : nU.call(this._set, i), s = this._array.length;
  (!n || r) && this._array.push(t), n || (qd ? this._set.set(t, s) : this._set[i] = s);
};
Of.prototype.has = function(t) {
  if (qd)
    return this._set.has(t);
  var r = iU.toSetString(t);
  return nU.call(this._set, r);
};
Of.prototype.indexOf = function(t) {
  if (qd) {
    var r = this._set.get(t);
    if (r >= 0)
      return r;
  } else {
    var i = iU.toSetString(t);
    if (nU.call(this._set, i))
      return this._set[i];
  }
  throw new Error('"' + t + '" is not in the set.');
};
Of.prototype.at = function(t) {
  if (t >= 0 && t < this._array.length)
    return this._array[t];
  throw new Error("No element indexed by " + t);
};
Of.prototype.toArray = function() {
  return this._array.slice();
};
_0e.ArraySet = Of;
var I0e = {}, k0e = YI;
function X6t(e, t) {
  var r = e.generatedLine, i = t.generatedLine, n = e.generatedColumn, s = t.generatedColumn;
  return i > r || i == r && s >= n || k0e.compareByGeneratedPositionsInflated(e, t) <= 0;
}
function XI() {
  this._array = [], this._sorted = !0, this._last = { generatedLine: -1, generatedColumn: 0 };
}
XI.prototype.unsortedForEach = function(t, r) {
  this._array.forEach(t, r);
};
XI.prototype.add = function(t) {
  X6t(this._last, t) ? (this._last = t, this._array.push(t)) : (this._sorted = !1, this._array.push(t));
};
XI.prototype.toArray = function() {
  return this._sorted || (this._array.sort(k0e.compareByGeneratedPositionsInflated), this._sorted = !0), this._array;
};
I0e.MappingList = XI;
var c0 = eU, Ln = YI, hA = _0e.ArraySet, J6t = I0e.MappingList;
function Kl(e) {
  e || (e = {}), this._file = Ln.getArg(e, "file", null), this._sourceRoot = Ln.getArg(e, "sourceRoot", null), this._skipValidation = Ln.getArg(e, "skipValidation", !1), this._ignoreInvalidMapping = Ln.getArg(e, "ignoreInvalidMapping", !1), this._sources = new hA(), this._names = new hA(), this._mappings = new J6t(), this._sourcesContents = null;
}
Kl.prototype._version = 3;
Kl.fromSourceMap = function(t, r) {
  var i = t.sourceRoot, n = new Kl(Object.assign(r || {}, {
    file: t.file,
    sourceRoot: i
  }));
  return t.eachMapping(function(s) {
    var a = {
      generated: {
        line: s.generatedLine,
        column: s.generatedColumn
      }
    };
    s.source != null && (a.source = s.source, i != null && (a.source = Ln.relative(i, a.source)), a.original = {
      line: s.originalLine,
      column: s.originalColumn
    }, s.name != null && (a.name = s.name)), n.addMapping(a);
  }), t.sources.forEach(function(s) {
    var a = s;
    i !== null && (a = Ln.relative(i, s)), n._sources.has(a) || n._sources.add(a);
    var o = t.sourceContentFor(s);
    o != null && n.setSourceContent(s, o);
  }), n;
};
Kl.prototype.addMapping = function(t) {
  var r = Ln.getArg(t, "generated"), i = Ln.getArg(t, "original", null), n = Ln.getArg(t, "source", null), s = Ln.getArg(t, "name", null);
  !this._skipValidation && this._validateMapping(r, i, n, s) === !1 || (n != null && (n = String(n), this._sources.has(n) || this._sources.add(n)), s != null && (s = String(s), this._names.has(s) || this._names.add(s)), this._mappings.add({
    generatedLine: r.line,
    generatedColumn: r.column,
    originalLine: i != null && i.line,
    originalColumn: i != null && i.column,
    source: n,
    name: s
  }));
};
Kl.prototype.setSourceContent = function(t, r) {
  var i = t;
  this._sourceRoot != null && (i = Ln.relative(this._sourceRoot, i)), r != null ? (this._sourcesContents || (this._sourcesContents = /* @__PURE__ */ Object.create(null)), this._sourcesContents[Ln.toSetString(i)] = r) : this._sourcesContents && (delete this._sourcesContents[Ln.toSetString(i)], Object.keys(this._sourcesContents).length === 0 && (this._sourcesContents = null));
};
Kl.prototype.applySourceMap = function(t, r, i) {
  var n = r;
  if (r == null) {
    if (t.file == null)
      throw new Error(
        'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.'
      );
    n = t.file;
  }
  var s = this._sourceRoot;
  s != null && (n = Ln.relative(s, n));
  var a = new hA(), o = new hA();
  this._mappings.unsortedForEach(function(l) {
    if (l.source === n && l.originalLine != null) {
      var u = t.originalPositionFor({
        line: l.originalLine,
        column: l.originalColumn
      });
      u.source != null && (l.source = u.source, i != null && (l.source = Ln.join(i, l.source)), s != null && (l.source = Ln.relative(s, l.source)), l.originalLine = u.line, l.originalColumn = u.column, u.name != null && (l.name = u.name));
    }
    var c = l.source;
    c != null && !a.has(c) && a.add(c);
    var f = l.name;
    f != null && !o.has(f) && o.add(f);
  }, this), this._sources = a, this._names = o, t.sources.forEach(function(l) {
    var u = t.sourceContentFor(l);
    u != null && (i != null && (l = Ln.join(i, l)), s != null && (l = Ln.relative(s, l)), this.setSourceContent(l, u));
  }, this);
};
Kl.prototype._validateMapping = function(t, r, i, n) {
  if (r && typeof r.line != "number" && typeof r.column != "number") {
    var s = "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 (this._ignoreInvalidMapping)
      return typeof console != "undefined" && console.warn && console.warn(s), !1;
    throw new Error(s);
  }
  if (!(t && "line" in t && "column" in t && t.line > 0 && t.column >= 0 && !r && !i && !n)) {
    if (t && "line" in t && "column" in t && r && "line" in r && "column" in r && t.line > 0 && t.column >= 0 && r.line > 0 && r.column >= 0 && i)
      return;
    var s = "Invalid mapping: " + JSON.stringify({
      generated: t,
      source: i,
      original: r,
      name: n
    });
    if (this._ignoreInvalidMapping)
      return typeof console != "undefined" && console.warn && console.warn(s), !1;
    throw new Error(s);
  }
};
Kl.prototype._serializeMappings = function() {
  for (var t = 0, r = 1, i = 0, n = 0, s = 0, a = 0, o = "", l, u, c, f, h = this._mappings.toArray(), m = 0, g = h.length; m < g; m++) {
    if (u = h[m], l = "", u.generatedLine !== r)
      for (t = 0; u.generatedLine !== r; )
        l += ";", r++;
    else if (m > 0) {
      if (!Ln.compareByGeneratedPositionsInflated(u, h[m - 1]))
        continue;
      l += ",";
    }
    l += c0.encode(u.generatedColumn - t), t = u.generatedColumn, u.source != null && (f = this._sources.indexOf(u.source), l += c0.encode(f - a), a = f, l += c0.encode(u.originalLine - 1 - n), n = u.originalLine - 1, l += c0.encode(u.originalColumn - i), i = u.originalColumn, u.name != null && (c = this._names.indexOf(u.name), l += c0.encode(c - s), s = c)), o += l;
  }
  return o;
};
Kl.prototype._generateSourcesContent = function(t, r) {
  return t.map(function(i) {
    if (!this._sourcesContents)
      return null;
    r != null && (i = Ln.relative(r, i));
    var n = Ln.toSetString(i);
    return Object.prototype.hasOwnProperty.call(this._sourcesContents, n) ? this._sourcesContents[n] : null;
  }, this);
};
Kl.prototype.toJSON = function() {
  var t = {
    version: this._version,
    sources: this._sources.toArray(),
    names: this._names.toArray(),
    mappings: this._serializeMappings()
  };
  return this._file != null && (t.file = this._file), this._sourceRoot != null && (t.sourceRoot = this._sourceRoot), this._sourcesContents && (t.sourcesContent = this._generateSourcesContent(t.sources, t.sourceRoot)), t;
};
Kl.prototype.toString = function() {
  return JSON.stringify(this.toJSON());
};
var Q6t = Kl;
const Gee = /* @__PURE__ */ new Set(["Atrule", "Selector", "Declaration"]);
function Z6t(e) {
  const t = new Q6t(), r = {
    line: 1,
    column: 0
  }, i = {
    line: 0,
    // should be zero to add first mapping
    column: 0
  }, n = {
    line: 1,
    column: 0
  }, s = {
    generated: n
  };
  let a = 1, o = 0, l = !1;
  const u = e.node;
  e.node = function(h) {
    if (h.loc && h.loc.start && Gee.has(h.type)) {
      const m = h.loc.start.line, g = h.loc.start.column - 1;
      (i.line !== m || i.column !== g) && (i.line = m, i.column = g, r.line = a, r.column = o, l && (l = !1, (r.line !== n.line || r.column !== n.column) && t.addMapping(s)), l = !0, t.addMapping({
        source: h.loc.source,
        original: i,
        generated: r
      }));
    }
    u.call(this, h), l && Gee.has(h.type) && (n.line = a, n.column = o);
  };
  const c = e.emit;
  e.emit = function(h, m, g) {
    for (let y = 0; y < h.length; y++)
      h.charCodeAt(y) === 10 ? (a++, o = 0) : o++;
    c(h, m, g);
  };
  const f = e.result;
  return e.result = function() {
    return l && t.addMapping(s), {
      css: f(),
      map: t
    };
  }, e;
}
const e9t = 43, t9t = 45, G3 = (e, t) => {
  if (e === Cr && (e = t), typeof e == "string") {
    const r = e.charCodeAt(0);
    return r > 127 ? 32768 : r << 8;
  }
  return e;
}, O0e = [
  [Nt, Nt],
  [Nt, Vr],
  [Nt, Ls],
  [Nt, Ra],
  [Nt, "-"],
  [Nt, yr],
  [Nt, wn],
  [Nt, Gr],
  [Nt, Ba],
  [Nt, vn],
  [$n, Nt],
  [$n, Vr],
  [$n, Ls],
  [$n, Ra],
  [$n, "-"],
  [$n, yr],
  [$n, wn],
  [$n, Gr],
  [$n, Ba],
  [Ji, Nt],
  [Ji, Vr],
  [Ji, Ls],
  [Ji, Ra],
  [Ji, "-"],
  [Ji, yr],
  [Ji, wn],
  [Ji, Gr],
  [Ji, Ba],
  [Gr, Nt],
  [Gr, Vr],
  [Gr, Ls],
  [Gr, Ra],
  [Gr, "-"],
  [Gr, yr],
  [Gr, wn],
  [Gr, Gr],
  [Gr, Ba],
  ["#", Nt],
  ["#", Vr],
  ["#", Ls],
  ["#", Ra],
  ["#", "-"],
  ["#", yr],
  ["#", wn],
  ["#", Gr],
  ["#", Ba],
  // https://github.com/w3c/csswg-drafts/pull/6874
  ["-", Nt],
  ["-", Vr],
  ["-", Ls],
  ["-", Ra],
  ["-", "-"],
  ["-", yr],
  ["-", wn],
  ["-", Gr],
  ["-", Ba],
  // https://github.com/w3c/csswg-drafts/pull/6874
  [yr, Nt],
  [yr, Vr],
  [yr, Ls],
  [yr, Ra],
  [yr, yr],
  [yr, wn],
  [yr, Gr],
  [yr, "%"],
  [yr, Ba],
  // https://github.com/w3c/csswg-drafts/pull/6874
  ["@", Nt],
  ["@", Vr],
  ["@", Ls],
  ["@", Ra],
  ["@", "-"],
  ["@", Ba],
  // https://github.com/w3c/csswg-drafts/pull/6874
  [".", yr],
  [".", wn],
  [".", Gr],
  ["+", yr],
  ["+", wn],
  ["+", Gr],
  ["/", "*"]
], r9t = O0e.concat([
  [Nt, Ji],
  [Gr, Ji],
  [Ji, Ji],
  [$n, vn],
  [$n, Pp],
  [$n, Rn],
  [wn, wn],
  [wn, Gr],
  [wn, Vr],
  [wn, "-"],
  [Wr, Nt],
  [Wr, Vr],
  [Wr, wn],
  [Wr, Gr],
  [Wr, Ji],
  [Wr, "-"]
]);
function N0e(e) {
  const t = new Set(
    e.map(([r, i]) => G3(r) << 16 | G3(i))
  );
  return function(r, i, n) {
    const s = G3(i, n), a = n.charCodeAt(0);
    return (a === t9t && i !== Nt && i !== Vr && i !== Ba || a === e9t ? t.has(r << 16 | a << 8) : t.has(r << 16 | s)) && this.emit(" ", Zi, !0), s;
  };
}
const i9t = N0e(O0e), D0e = N0e(r9t), Yee = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  safe: D0e,
  spec: i9t
}, Symbol.toStringTag, { value: "Module" })), n9t = 92;
function s9t(e, t) {
  if (typeof t == "function") {
    let r = null;
    e.children.forEach((i) => {
      r !== null && t.call(this, r), this.node(i), r = i;
    });
    return;
  }
  e.children.forEach(this.node, this);
}
function a9t(e) {
  zI(e, (t, r, i) => {
    this.token(t, e.slice(r, i));
  });
}
function o9t(e) {
  const t = /* @__PURE__ */ new Map();
  for (let r in e.node) {
    const i = e.node[r];
    typeof (i.generate || i) == "function" && t.set(r, i.generate || i);
  }
  return function(r, i) {
    let n = "", s = 0, a = {
      node(l) {
        if (t.has(l.type))
          t.get(l.type).call(o, l);
        else
          throw new Error("Unknown node type: " + l.type);
      },
      tokenBefore: D0e,
      token(l, u) {
        s = this.tokenBefore(s, l, u), this.emit(u, l, !1), l === Cr && u.charCodeAt(0) === n9t && this.emit("\n", Zi, !0);
      },
      emit(l) {
        n += l;
      },
      result() {
        return n;
      }
    };
    i && (typeof i.decorator == "function" && (a = i.decorator(a)), i.sourceMap && (a = Z6t(a)), i.mode in Yee && (a.tokenBefore = Yee[i.mode]));
    const o = {
      node: (l) => a.node(l),
      children: s9t,
      token: (l, u) => a.token(l, u),
      tokenize: a9t
    };
    return a.node(r), a.result();
  };
}
function l9t(e) {
  return {
    fromPlainObject(t) {
      return e(t, {
        enter(r) {
          r.children && !(r.children instanceof ns) && (r.children = new ns().fromArray(r.children));
        }
      }), t;
    },
    toPlainObject(t) {
      return e(t, {
        leave(r) {
          r.children && r.children instanceof ns && (r.children = r.children.toArray());
        }
      }), t;
    }
  };
}
const { hasOwnProperty: sU } = Object.prototype, R0 = function() {
};
function Xee(e) {
  return typeof e == "function" ? e : R0;
}
function Jee(e, t) {
  return function(r, i, n) {
    r.type === t && e.call(this, r, i, n);
  };
}
function u9t(e, t) {
  const r = t.structure, i = [];
  for (const n in r) {
    if (sU.call(r, n) === !1)
      continue;
    let s = r[n];
    const a = {
      name: n,
      type: !1,
      nullable: !1
    };
    Array.isArray(s) || (s = [s]);
    for (const o of s)
      o === null ? a.nullable = !0 : typeof o == "string" ? a.type = "node" : Array.isArray(o) && (a.type = "list");
    a.type && i.push(a);
  }
  return i.length ? {
    context: t.walkContext,
    fields: i
  } : null;
}
function c9t(e) {
  const t = {};
  for (const r in e.node)
    if (sU.call(e.node, r)) {
      const i = e.node[r];
      if (!i.structure)
        throw new Error("Missed `structure` field in `" + r + "` node type definition");
      t[r] = u9t(r, i);
    }
  return t;
}
function Qee(e, t) {
  const r = e.fields.slice(), i = e.context, n = typeof i == "string";
  return t && r.reverse(), function(s, a, o, l) {
    let u;
    n && (u = a[i], a[i] = s);
    for (const c of r) {
      const f = s[c.name];
      if (!c.nullable || f) {
        if (c.type === "list") {
          if (t ? f.reduceRight(l, !1) : f.reduce(l, !1))
            return !0;
        } else if (o(f))
          return !0;
      }
    }
    n && (a[i] = u);
  };
}
function Zee({
  StyleSheet: e,
  Atrule: t,
  Rule: r,
  Block: i,
  DeclarationList: n
}) {
  return {
    Atrule: {
      StyleSheet: e,
      Atrule: t,
      Rule: r,
      Block: i
    },
    Rule: {
      StyleSheet: e,
      Atrule: t,
      Rule: r,
      Block: i
    },
    Declaration: {
      StyleSheet: e,
      Atrule: t,
      Rule: r,
      Block: i,
      DeclarationList: n
    }
  };
}
function p9t(e) {
  const t = c9t(e), r = {}, i = {}, n = Symbol("break-walk"), s = Symbol("skip-node");
  for (const u in t)
    sU.call(t, u) && t[u] !== null && (r[u] = Qee(t[u], !1), i[u] = Qee(t[u], !0));
  const a = Zee(r), o = Zee(i), l = function(u, c) {
    function f(T, S, P) {
      const x = h.call(v, T, S, P);
      return x === n ? !0 : x === s ? !1 : !!(g.hasOwnProperty(T.type) && g[T.type](T, v, f, y) || m.call(v, T, S, P) === n);
    }
    let h = R0, m = R0, g = r, y = (T, S, P, x) => T || f(S, P, x);
    const v = {
      break: n,
      skip: s,
      root: u,
      stylesheet: null,
      atrule: null,
      atrulePrelude: null,
      rule: null,
      selector: null,
      block: null,
      declaration: null,
      function: null
    };
    if (typeof c == "function")
      h = c;
    else if (c && (h = Xee(c.enter), m = Xee(c.leave), c.reverse && (g = i), c.visit)) {
      if (a.hasOwnProperty(c.visit))
        g = c.reverse ? o[c.visit] : a[c.visit];
      else if (!t.hasOwnProperty(c.visit))
        throw new Error("Bad value `" + c.visit + "` for `visit` option (should be: " + Object.keys(t).sort().join(", ") + ")");
      h = Jee(h, c.visit), m = Jee(m, c.visit);
    }
    if (h === R0 && m === R0)
      throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");
    f(u);
  };
  return l.break = n, l.skip = s, l.find = function(u, c) {
    let f = null;
    return l(u, function(h, m, g) {
      if (c.call(this, h, m, g))
        return f = h, n;
    }), f;
  }, l.findLast = function(u, c) {
    let f = null;
    return l(u, {
      reverse: !0,
      enter(h, m, g) {
        if (c.call(this, h, m, g))
          return f = h, n;
      }
    }), f;
  }, l.findAll = function(u, c) {
    const f = [];
    return l(u, function(h, m, g) {
      c.call(this, h, m, g) && f.push(h);
    }), f;
  }, l;
}
function f9t(e) {
  return e;
}
function h9t(e) {
  const { min: t, max: r, comma: i } = e;
  return t === 0 && r === 0 ? i ? "#?" : "*" : t === 0 && r === 1 ? "?" : t === 1 && r === 0 ? i ? "#" : "+" : t === 1 && r === 1 ? "" : (i ? "#" : "") + (t === r ? "{" + t + "}" : "{" + t + "," + (r !== 0 ? r : "") + "}");
}
function d9t(e) {
  switch (e.type) {
    case "Range":
      return " [" + (e.min === null ? "-∞" : e.min) + "," + (e.max === null ? "∞" : e.max) + "]";
    default:
      throw new Error("Unknown node type `" + e.type + "`");
  }
}
function m9t(e, t, r, i) {
  const n = e.combinator === " " || i ? e.combinator : " " + e.combinator + " ", s = e.terms.map((a) => aU(a, t, r, i)).join(n);
  return e.explicit || r ? (i || s[0] === "," ? "[" : "[ ") + s + (i ? "]" : " ]") : s;
}
function aU(e, t, r, i) {
  let n;
  switch (e.type) {
    case "Group":
      n = m9t(e, t, r, i) + (e.disallowEmpty ? "!" : "");
      break;
    case "Multiplier":
      return aU(e.term, t, r, i) + t(h9t(e), e);
    case "Type":
      n = "<" + e.name + (e.opts ? t(d9t(e.opts), e.opts) : "") + ">";
      break;
    case "Property":
      n = "<'" + e.name + "'>";
      break;
    case "Keyword":
      n = e.name;
      break;
    case "AtKeyword":
      n = "@" + e.name;
      break;
    case "Function":
      n = e.name + "(";
      break;
    case "String":
    case "Token":
      n = e.value;
      break;
    case "Comma":
      n = ",";
      break;
    default:
      throw new Error("Unknown node type `" + e.type + "`");
  }
  return t(n, e);
}
function oU(e, t) {
  let r = f9t, i = !1, n = !1;
  return typeof t == "function" ? r = t : t && (i = !!t.forceBraces, n = !!t.compact, typeof t.decorate == "function" && (r = t.decorate)), aU(e, r, i, n);
}
const ete = { offset: 0, line: 1, column: 1 };
function y9t(e, t) {
  const r = e.tokens, i = e.longestMatch, n = i < r.length && r[i].node || null, s = n !== t ? n : null;
  let a = 0, o = 0, l = 0, u = "", c, f;
  for (let h = 0; h < r.length; h++) {
    const m = r[h].value;
    h === i && (o = m.length, a = u.length), s !== null && r[h].node === s && (h <= i ? l++ : l = 0), u += m;
  }
  return i === r.length || l > 1 ? (c = R1(s || t, "end") || B0(ete, u), f = B0(c)) : (c = R1(s, "start") || B0(R1(t, "start") || ete, u.slice(0, a)), f = R1(s, "end") || B0(c, u.substr(a, o))), {
    css: u,
    mismatchOffset: a,
    mismatchLength: o,
    start: c,
    end: f
  };
}
function R1(e, t) {
  const r = e && e.loc && e.loc[t];
  return r ? "line" in r ? B0(r) : r : null;
}
function B0({ offset: e, line: t, column: r }, i) {
  const n = {
    offset: e,
    line: t,
    column: r
  };
  if (i) {
    const s = i.split(/\n|\r\n?|\f/);
    n.offset += i.length, n.line += s.length - 1, n.column = s.length === 1 ? n.column + i.length : s.pop().length + 1;
  }
  return n;
}
const p0 = function(e, t) {
  const r = GI(
    "SyntaxReferenceError",
    e + (t ? " `" + t + "`" : "")
  );
  return r.reference = t, r;
}, g9t = function(e, t, r, i) {
  const n = GI("SyntaxMatchError", e), {
    css: s,
    mismatchOffset: a,
    mismatchLength: o,
    start: l,
    end: u
  } = y9t(i, r);
  return n.rawMessage = e, n.syntax = t ? oU(t) : "<generic>", n.css = s, n.mismatchOffset = a, n.mismatchLength = o, n.message = e + "\n  syntax: " + n.syntax + "\n   value: " + (s || "<empty string>") + "\n  --------" + new Array(n.mismatchOffset + 1).join("-") + "^", Object.assign(n, l), n.loc = {
    source: r && r.loc && r.loc.source || "<unknown>",
    start: l,
    end: u
  }, n;
}, B1 = /* @__PURE__ */ new Map(), Km = /* @__PURE__ */ new Map(), dA = 45, Y3 = b9t, tte = v9t;
function lU(e, t) {
  return t = t || 0, e.length - t >= 2 && e.charCodeAt(t) === dA && e.charCodeAt(t + 1) === dA;
}
function L0e(e, t) {
  if (t = t || 0, e.length - t >= 3 && e.charCodeAt(t) === dA && e.charCodeAt(t + 1) !== dA) {
    const r = e.indexOf("-", t + 2);
    if (r !== -1)
      return e.substring(t, r + 1);
  }
  return "";
}
function b9t(e) {
  if (B1.has(e))
    return B1.get(e);
  const t = e.toLowerCase();
  let r = B1.get(t);
  if (r === void 0) {
    const i = lU(t, 0), n = i ? "" : L0e(t, 0);
    r = Object.freeze({
      basename: t.substr(n.length),
      name: t,
      prefix: n,
      vendor: n,
      custom: i
    });
  }
  return B1.set(e, r), r;
}
function v9t(e) {
  if (Km.has(e))
    return Km.get(e);
  let t = e, r = e[0];
  r === "/" ? r = e[1] === "/" ? "//" : "/" : r !== "_" && r !== "*" && r !== "$" && r !== "#" && r !== "+" && r !== "&" && (r = "");
  const i = lU(t, r.length);
  if (!i && (t = t.toLowerCase(), Km.has(t))) {
    const o = Km.get(t);
    return Km.set(e, o), o;
  }
  const n = i ? "" : L0e(t, r.length), s = t.substr(0, r.length + n.length), a = Object.freeze({
    basename: t.substr(s.length),
    name: t.substr(r.length),
    hack: r,
    vendor: n,
    prefix: s,
    custom: i
  });
  return Km.set(e, a), a;
}
const M0e = [
  "initial",
  "inherit",
  "unset",
  "revert",
  "revert-layer"
], uT = 43, ep = 45, X3 = 110, zm = !0, T9t = !1;
function K8(e, t) {
  return e !== null && e.type === Cr && e.value.charCodeAt(0) === t;
}
function lv(e, t, r) {
  for (; e !== null && (e.type === Zi || e.type === Ss); )
    e = r(++t);
  return t;
}
function mh(e, t, r, i) {
  if (!e)
    return 0;
  const n = e.value.charCodeAt(t);
  if (n === uT || n === ep) {
    if (r)
      return 0;
    t++;
  }
  for (; t < e.value.length; t++)
    if (!ss(e.value.charCodeAt(t)))
      return 0;
  return i + 1;
}
function J3(e, t, r) {
  let i = !1, n = lv(e, t, r);
  if (e = r(n), e === null)
    return t;
  if (e.type !== yr)
    if (K8(e, uT) || K8(e, ep)) {
      if (i = !0, n = lv(r(++n), n, r), e = r(n), e === null || e.type !== yr)
        return 0;
    } else
      return t;
  if (!i) {
    const s = e.value.charCodeAt(0);
    if (s !== uT && s !== ep)
      return 0;
  }
  return mh(e, i ? 0 : 1, i, n);
}
function S9t(e, t) {
  let r = 0;
  if (!e)
    return 0;
  if (e.type === yr)
    return mh(e, 0, T9t, r);
  if (e.type === Nt && e.value.charCodeAt(0) === ep) {
    if (!Fy(e.value, 1, X3))
      return 0;
    switch (e.value.length) {
      case 2:
        return J3(t(++r), r, t);
      case 3:
        return e.value.charCodeAt(2) !== ep ? 0 : (r = lv(t(++r), r, t), e = t(r), mh(e, 0, zm, r));
      default:
        return e.value.charCodeAt(2) !== ep ? 0 : mh(e, 3, zm, r);
    }
  } else if (e.type === Nt || K8(e, uT) && t(r + 1).type === Nt) {
    if (e.type !== Nt && (e = t(++r)), e === null || !Fy(e.value, 0, X3))
      return 0;
    switch (e.value.length) {
      case 1:
        return J3(t(++r), r, t);
      case 2:
        return e.value.charCodeAt(1) !== ep ? 0 : (r = lv(t(++r), r, t), e = t(r), mh(e, 0, zm, r));
      default:
        return e.value.charCodeAt(1) !== ep ? 0 : mh(e, 2, zm, r);
    }
  } else if (e.type === Gr) {
    let i = e.value.charCodeAt(0), n = i === uT || i === ep ? 1 : 0, s = n;
    for (; s < e.value.length && ss(e.value.charCodeAt(s)); s++)
      ;
    return s === n || !Fy(e.value, s, X3) ? 0 : s + 1 === e.value.length ? J3(t(++r), r, t) : e.value.charCodeAt(s + 1) !== ep ? 0 : s + 2 === e.value.length ? (r = lv(t(++r), r, t), e = t(r), mh(e, 0, zm, r)) : mh(e, s + 2, zm, r);
  }
  return 0;
}
const x9t = 43, R0e = 45, B0e = 63, E9t = 117;
function z8(e, t) {
  return e !== null && e.type === Cr && e.value.charCodeAt(0) === t;
}
function P9t(e, t) {
  return e.value.charCodeAt(0) === t;
}
function F0(e, t, r) {
  let i = 0;
  for (let n = t; n < e.value.length; n++) {
    const s = e.value.charCodeAt(n);
    if (s === R0e && r && i !== 0)
      return F0(e, t + i + 1, !1), 6;
    if (!Uh(s) || ++i > 6)
      return 0;
  }
  return i;
}
function F1(e, t, r) {
  if (!e)
    return 0;
  for (; z8(r(t), B0e); ) {
    if (++e > 6)
      return 0;
    t++;
  }
  return t;
}
function w9t(e, t) {
  let r = 0;
  if (e === null || e.type !== Nt || !Fy(e.value, 0, E9t) || (e = t(++r), e === null))
    return 0;
  if (z8(e, x9t))
    return e = t(++r), e === null ? 0 : e.type === Nt ? F1(F0(e, 0, !0), ++r, t) : z8(e, B0e) ? F1(1, ++r, t) : 0;
  if (e.type === yr) {
    const i = F0(e, 1, !0);
    return i === 0 ? 0 : (e = t(++r), e === null ? r : e.type === Gr || e.type === yr ? !P9t(e, R0e) || !F0(e, 1, !1) ? 0 : r + 1 : F1(i, r, t));
  }
  return e.type === Gr ? F1(F0(e, 1, !0), ++r, t) : 0;
}
const A9t = ["calc(", "-moz-calc(", "-webkit-calc("], uU = /* @__PURE__ */ new Map([
  [Vr, Wr],
  [vn, Wr],
  [ko, jc],
  [Ts, Hl]
]);
function Lc(e, t) {
  return t < e.length ? e.charCodeAt(t) : 0;
}
function F0e(e, t) {
  return lT(e, 0, e.length, t);
}
function j0e(e, t) {
  for (let r = 0; r < t.length; r++)
    if (F0e(e, t[r]))
      return !0;
  return !1;
}
function $0e(e, t) {
  return t !== e.length - 2 ? !1 : Lc(e, t) === 92 && // U+005C REVERSE SOLIDUS (\)
  ss(Lc(e, t + 1));
}
function JI(e, t, r) {
  if (e && e.type === "Range") {
    const i = Number(
      r !== void 0 && r !== t.length ? t.substr(0, r) : t
    );
    if (isNaN(i) || e.min !== null && i < e.min && typeof e.min != "string" || e.max !== null && i > e.max && typeof e.max != "string")
      return !0;
  }
  return !1;
}
function C9t(e, t) {
  let r = 0, i = [], n = 0;
  e:
    do {
      switch (e.type) {
        case Hl:
        case Wr:
        case jc:
          if (e.type !== r)
            break e;
          if (r = i.pop(), i.length === 0) {
            n++;
            break e;
          }
          break;
        case Vr:
        case vn:
        case ko:
        case Ts:
          i.push(r), r = uU.get(e.type);
          break;
      }
      n++;
    } while (e = t(n));
  return n;
}
function wl(e) {
  return function(t, r, i) {
    return t === null ? 0 : t.type === Vr && j0e(t.value, A9t) ? C9t(t, r) : e(t, r, i);
  };
}
function Yi(e) {
  return function(t) {
    return t === null || t.type !== e ? 0 : 1;
  };
}
function _9t(e) {
  if (e === null || e.type !== Nt)
    return 0;
  const t = e.value.toLowerCase();
  return j0e(t, M0e) || F0e(t, "default") ? 0 : 1;
}
function I9t(e) {
  return e === null || e.type !== Nt || Lc(e.value, 0) !== 45 || Lc(e.value, 1) !== 45 ? 0 : 1;
}
function k9t(e) {
  if (e === null || e.type !== Ji)
    return 0;
  const t = e.value.length;
  if (t !== 4 && t !== 5 && t !== 7 && t !== 9)
    return 0;
  for (let r = 1; r < t; r++)
    if (!Uh(Lc(e.value, r)))
      return 0;
  return 1;
}
function O9t(e) {
  return e === null || e.type !== Ji || !HP(Lc(e.value, 1), Lc(e.value, 2), Lc(e.value, 3)) ? 0 : 1;
}
function N9t(e, t) {
  if (!e)
    return 0;
  let r = 0, i = [], n = 0;
  e:
    do {
      switch (e.type) {
        case HI:
        case Ra:
          break e;
        case Hl:
        case Wr:
        case jc:
          if (e.type !== r)
            break e;
          r = i.pop();
          break;
        case Ua:
          if (r === 0)
            break e;
          break;
        case Cr:
          if (r === 0 && e.value === "!")
            break e;
          break;
        case Vr:
        case vn:
        case ko:
        case Ts:
          i.push(r), r = uU.get(e.type);
          break;
      }
      n++;
    } while (e = t(n));
  return n;
}
function D9t(e, t) {
  if (!e)
    return 0;
  let r = 0, i = [], n = 0;
  e:
    do {
      switch (e.type) {
        case HI:
        case Ra:
          break e;
        case Hl:
        case Wr:
        case jc:
          if (e.type !== r)
            break e;
          r = i.pop();
          break;
        case Vr:
        case vn:
        case ko:
        case Ts:
          i.push(r), r = uU.get(e.type);
          break;
      }
      n++;
    } while (e = t(n));
  return n;
}
function qp(e) {
  return e && (e = new Set(e)), function(t, r, i) {
    if (t === null || t.type !== Gr)
      return 0;
    const n = KI(t.value, 0);
    if (e !== null) {
      const s = t.value.indexOf("\\", n), a = s === -1 || !$0e(t.value, s) ? t.value.substr(n) : t.value.substring(n, s);
      if (e.has(a.toLowerCase()) === !1)
        return 0;
    }
    return JI(i, t.value, n) ? 0 : 1;
  };
}
function L9t(e, t, r) {
  return e === null || e.type !== wn || JI(r, e.value, e.value.length - 1) ? 0 : 1;
}
function U0e(e) {
  return typeof e != "function" && (e = function() {
    return 0;
  }), function(t, r, i) {
    return t !== null && t.type === yr && Number(t.value) === 0 ? 1 : e(t, r, i);
  };
}
function M9t(e, t, r) {
  if (e === null)
    return 0;
  const i = KI(e.value, 0);
  return !(i === e.value.length) && !$0e(e.value, i) || JI(r, e.value, i) ? 0 : 1;
}
function R9t(e, t, r) {
  if (e === null || e.type !== yr)
    return 0;
  let i = Lc(e.value, 0) === 43 || // U+002B PLUS SIGN (+)
  Lc(e.value, 0) === 45 ? 1 : 0;
  for (; i < e.value.length; i++)
    if (!ss(Lc(e.value, i)))
      return 0;
  return JI(r, e.value, i) ? 0 : 1;
}
const B9t = {
  "ident-token": Yi(Nt),
  "function-token": Yi(Vr),
  "at-keyword-token": Yi($n),
  "hash-token": Yi(Ji),
  "string-token": Yi(Pp),
  "bad-string-token": Yi(HI),
  "url-token": Yi(Ls),
  "bad-url-token": Yi(Ra),
  "delim-token": Yi(Cr),
  "number-token": Yi(yr),
  "percentage-token": Yi(wn),
  "dimension-token": Yi(Gr),
  "whitespace-token": Yi(Zi),
  "CDO-token": Yi(wS),
  "CDC-token": Yi(Ba),
  "colon-token": Yi(Rn),
  "semicolon-token": Yi(Ua),
  "comma-token": Yi(wp),
  "[-token": Yi(ko),
  "]-token": Yi(jc),
  "(-token": Yi(vn),
  ")-token": Yi(Wr),
  "{-token": Yi(Ts),
  "}-token": Yi(Hl)
}, F9t = {
  // token type aliases
  string: Yi(Pp),
  ident: Yi(Nt),
  // percentage
  percentage: wl(L9t),
  // numeric
  zero: U0e(),
  number: wl(M9t),
  integer: wl(R9t),
  // complex types
  "custom-ident": _9t,
  "custom-property-name": I9t,
  "hex-color": k9t,
  "id-selector": O9t,
  // element( <id-selector> )
  "an-plus-b": S9t,
  urange: w9t,
  "declaration-value": N9t,
  "any-value": D9t
};
function j9t(e) {
  const {
    angle: t,
    decibel: r,
    frequency: i,
    flex: n,
    length: s,
    resolution: a,
    semitones: o,
    time: l
  } = e || {};
  return {
    dimension: wl(qp(null)),
    angle: wl(qp(t)),
    decibel: wl(qp(r)),
    frequency: wl(qp(i)),
    flex: wl(qp(n)),
    length: wl(U0e(qp(s))),
    resolution: wl(qp(a)),
    semitones: wl(qp(o)),
    time: wl(qp(l))
  };
}
function $9t(e) {
  return $t($t($t({}, B9t), F9t), j9t(e));
}
const U9t = [
  // absolute length units https://www.w3.org/TR/css-values-3/#lengths
  "cm",
  "mm",
  "q",
  "in",
  "pt",
  "pc",
  "px",
  // font-relative length units https://drafts.csswg.org/css-values-4/#font-relative-lengths
  "em",
  "rem",
  "ex",
  "rex",
  "cap",
  "rcap",
  "ch",
  "rch",
  "ic",
  "ric",
  "lh",
  "rlh",
  // viewport-percentage lengths https://drafts.csswg.org/css-values-4/#viewport-relative-lengths
  "vw",
  "svw",
  "lvw",
  "dvw",
  "vh",
  "svh",
  "lvh",
  "dvh",
  "vi",
  "svi",
  "lvi",
  "dvi",
  "vb",
  "svb",
  "lvb",
  "dvb",
  "vmin",
  "svmin",
  "lvmin",
  "dvmin",
  "vmax",
  "svmax",
  "lvmax",
  "dvmax",
  // container relative lengths https://drafts.csswg.org/css-contain-3/#container-lengths
  "cqw",
  "cqh",
  "cqi",
  "cqb",
  "cqmin",
  "cqmax"
], q9t = ["deg", "grad", "rad", "turn"], V9t = ["s", "ms"], W9t = ["hz", "khz"], H9t = ["dpi", "dpcm", "dppx", "x"], K9t = ["fr"], z9t = ["db"], G9t = ["st"], rte = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  angle: q9t,
  decibel: z9t,
  flex: K9t,
  frequency: W9t,
  length: U9t,
  resolution: H9t,
  semitones: G9t,
  time: V9t
}, Symbol.toStringTag, { value: "Module" }));
function Y9t(e, t, r) {
  return Object.assign(GI("SyntaxError", e), {
    input: t,
    offset: r,
    rawMessage: e,
    message: e + "\n  " + t + "\n--" + new Array((r || t.length) + 1).join("-") + "^"
  });
}
const X9t = 9, J9t = 10, Q9t = 12, Z9t = 13, e5t = 32;
class t5t {
  constructor(t) {
    this.str = t, this.pos = 0;
  }
  charCodeAt(t) {
    return t < this.str.length ? this.str.charCodeAt(t) : 0;
  }
  charCode() {
    return this.charCodeAt(this.pos);
  }
  nextCharCode() {
    return this.charCodeAt(this.pos + 1);
  }
  nextNonWsCode(t) {
    return this.charCodeAt(this.findWsEnd(t));
  }
  findWsEnd(t) {
    for (; t < this.str.length; t++) {
      const r = this.str.charCodeAt(t);
      if (r !== Z9t && r !== J9t && r !== Q9t && r !== e5t && r !== X9t)
        break;
    }
    return t;
  }
  substringToPos(t) {
    return this.str.substring(this.pos, this.pos = t);
  }
  eat(t) {
    this.charCode() !== t && this.error("Expect `" + String.fromCharCode(t) + "`"), this.pos++;
  }
  peek() {
    return this.pos < this.str.length ? this.str.charAt(this.pos++) : "";
  }
  error(t) {
    throw new Y9t(t, this.str, this.pos);
  }
}
const r5t = 9, i5t = 10, n5t = 12, s5t = 13, a5t = 32, q0e = 33, cU = 35, ite = 38, mA = 39, V0e = 40, o5t = 41, W0e = 42, pU = 43, fU = 44, nte = 45, hU = 60, H0e = 62, G8 = 63, l5t = 64, QI = 91, dU = 93, yA = 123, ste = 124, ate = 125, ote = 8734, cT = new Uint8Array(128).map(
  (e, t) => /[a-zA-Z0-9\-]/.test(String.fromCharCode(t)) ? 1 : 0
), lte = {
  " ": 1,
  "&&": 2,
  "||": 3,
  "|": 4
};
function gA(e) {
  return e.substringToPos(
    e.findWsEnd(e.pos)
  );
}
function ig(e) {
  let t = e.pos;
  for (; t < e.str.length; t++) {
    const r = e.str.charCodeAt(t);
    if (r >= 128 || cT[r] === 0)
      break;
  }
  return e.pos === t && e.error("Expect a keyword"), e.substringToPos(t);
}
function bA(e) {
  let t = e.pos;
  for (; t < e.str.length; t++) {
    const r = e.str.charCodeAt(t);
    if (r < 48 || r > 57)
      break;
  }
  return e.pos === t && e.error("Expect a number"), e.substringToPos(t);
}
function u5t(e) {
  const t = e.str.indexOf("'", e.pos + 1);
  return t === -1 && (e.pos = e.str.length, e.error("Expect an apostrophe")), e.substringToPos(t + 1);
}
function ute(e) {
  let t = null, r = null;
  return e.eat(yA), t = bA(e), e.charCode() === fU ? (e.pos++, e.charCode() !== ate && (r = bA(e))) : r = t, e.eat(ate), {
    min: Number(t),
    max: r ? Number(r) : 0
  };
}
function c5t(e) {
  let t = null, r = !1;
  switch (e.charCode()) {
    case W0e:
      e.pos++, t = {
        min: 0,
        max: 0
      };
      break;
    case pU:
      e.pos++, t = {
        min: 1,
        max: 0
      };
      break;
    case G8:
      e.pos++, t = {
        min: 0,
        max: 1
      };
      break;
    case cU:
      e.pos++, r = !0, e.charCode() === yA ? t = ute(e) : e.charCode() === G8 ? (e.pos++, t = {
        min: 0,
        max: 0
      }) : t = {
        min: 1,
        max: 0
      };
      break;
    case yA:
      t = ute(e);
      break;
    default:
      return null;
  }
  return {
    type: "Multiplier",
    comma: r,
    min: t.min,
    max: t.max,
    term: null
  };
}
function ng(e, t) {
  const r = c5t(e);
  return r !== null ? (r.term = t, e.charCode() === cU && e.charCodeAt(e.pos - 1) === pU ? ng(e, r) : r) : t;
}
function Q3(e) {
  const t = e.peek();
  return t === "" ? null : {
    type: "Token",
    value: t
  };
}
function p5t(e) {
  let t;
  return e.eat(hU), e.eat(mA), t = ig(e), e.eat(mA), e.eat(H0e), ng(e, {
    type: "Property",
    name: t
  });
}
function f5t(e) {
  let t = null, r = null, i = 1;
  return e.eat(QI), e.charCode() === nte && (e.peek(), i = -1), i == -1 && e.charCode() === ote ? e.peek() : (t = i * Number(bA(e)), cT[e.charCode()] !== 0 && (t += ig(e))), gA(e), e.eat(fU), gA(e), e.charCode() === ote ? e.peek() : (i = 1, e.charCode() === nte && (e.peek(), i = -1), r = i * Number(bA(e)), cT[e.charCode()] !== 0 && (r += ig(e))), e.eat(dU), {
    type: "Range",
    min: t,
    max: r
  };
}
function h5t(e) {
  let t, r = null;
  return e.eat(hU), t = ig(e), e.charCode() === V0e && e.nextCharCode() === o5t && (e.pos += 2, t += "()"), e.charCodeAt(e.findWsEnd(e.pos)) === QI && (gA(e), r = f5t(e)), e.eat(H0e), ng(e, {
    type: "Type",
    name: t,
    opts: r
  });
}
function d5t(e) {
  const t = ig(e);
  return e.charCode() === V0e ? (e.pos++, {
    type: "Function",
    name: t
  }) : ng(e, {
    type: "Keyword",
    name: t
  });
}
function m5t(e, t) {
  function r(n, s) {
    return {
      type: "Group",
      terms: n,
      combinator: s,
      disallowEmpty: !1,
      explicit: !1
    };
  }
  let i;
  for (t = Object.keys(t).sort((n, s) => lte[n] - lte[s]); t.length > 0; ) {
    i = t.shift();
    let n = 0, s = 0;
    for (; n < e.length; n++) {
      const a = e[n];
      a.type === "Combinator" && (a.value === i ? (s === -1 && (s = n - 1), e.splice(n, 1), n--) : (s !== -1 && n - s > 1 && (e.splice(
        s,
        n - s,
        r(e.slice(s, n), i)
      ), n = s + 1), s = -1));
    }
    s !== -1 && t.length && e.splice(
      s,
      n - s,
      r(e.slice(s, n), i)
    );
  }
  return i;
}
function K0e(e) {
  const t = [], r = {};
  let i, n = null, s = e.pos;
  for (; i = g5t(e); )
    i.type !== "Spaces" && (i.type === "Combinator" ? ((n === null || n.type === "Combinator") && (e.pos = s, e.error("Unexpected combinator")), r[i.value] = !0) : n !== null && n.type !== "Combinator" && (r[" "] = !0, t.push({
      type: "Combinator",
      value: " "
    })), t.push(i), n = i, s = e.pos);
  return n !== null && n.type === "Combinator" && (e.pos -= s, e.error("Unexpected combinator")), {
    type: "Group",
    terms: t,
    combinator: m5t(t, r) || " ",
    disallowEmpty: !1,
    explicit: !1
  };
}
function y5t(e) {
  let t;
  return e.eat(QI), t = K0e(e), e.eat(dU), t.explicit = !0, e.charCode() === q0e && (e.pos++, t.disallowEmpty = !0), t;
}
function g5t(e) {
  let t = e.charCode();
  if (t < 128 && cT[t] === 1)
    return d5t(e);
  switch (t) {
    case dU:
      break;
    case QI:
      return ng(e, y5t(e));
    case hU:
      return e.nextCharCode() === mA ? p5t(e) : h5t(e);
    case ste:
      return {
        type: "Combinator",
        value: e.substringToPos(
          e.pos + (e.nextCharCode() === ste ? 2 : 1)
        )
      };
    case ite:
      return e.pos++, e.eat(ite), {
        type: "Combinator",
        value: "&&"
      };
    case fU:
      return e.pos++, {
        type: "Comma"
      };
    case mA:
      return ng(e, {
        type: "String",
        value: u5t(e)
      });
    case a5t:
    case r5t:
    case i5t:
    case s5t:
    case n5t:
      return {
        type: "Spaces",
        value: gA(e)
      };
    case l5t:
      return t = e.nextCharCode(), t < 128 && cT[t] === 1 ? (e.pos++, {
        type: "AtKeyword",
        name: ig(e)
      }) : Q3(e);
    case W0e:
    case pU:
    case G8:
    case cU:
    case q0e:
      break;
    case yA:
      if (t = e.nextCharCode(), t < 48 || t > 57)
        return Q3(e);
      break;
    default:
      return Q3(e);
  }
}
function z0e(e) {
  const t = new t5t(e), r = K0e(t);
  return t.pos !== e.length && t.error("Unexpected input"), r.terms.length === 1 && r.terms[0].type === "Group" ? r.terms[0] : r;
}
const j0 = function() {
};
function cte(e) {
  return typeof e == "function" ? e : j0;
}
function b5t(e, t, r) {
  function i(a) {
    switch (n.call(r, a), a.type) {
      case "Group":
        a.terms.forEach(i);
        break;
      case "Multiplier":
        i(a.term);
        break;
      case "Type":
      case "Property":
      case "Keyword":
      case "AtKeyword":
      case "Function":
      case "String":
      case "Token":
      case "Comma":
        break;
      default:
        throw new Error("Unknown type: " + a.type);
    }
    s.call(r, a);
  }
  let n = j0, s = j0;
  if (typeof t == "function" ? n = t : t && (n = cte(t.enter), s = cte(t.leave)), n === j0 && s === j0)
    throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");
  i(e);
}
const v5t = {
  decorator(e) {
    const t = [];
    let r = null;
    return zr($t({}, e), {
      node(i) {
        const n = r;
        r = i, e.node.call(this, i), r = n;
      },
      emit(i, n, s) {
        t.push({
          type: n,
          value: i,
          node: s ? null : r
        });
      },
      result() {
        return t;
      }
    });
  }
};
function T5t(e) {
  const t = [];
  return zI(
    e,
    (r, i, n) => t.push({
      type: r,
      value: e.slice(i, n),
      node: null
    })
  ), t;
}
function S5t(e, t) {
  return typeof e == "string" ? T5t(e) : t.generate(e, v5t);
}
const _i = { type: "Match" }, Wi = { type: "Mismatch" }, mU = { type: "DisallowEmpty" }, x5t = 40, E5t = 41;
function Ds(e, t, r) {
  return t === _i && r === Wi || e === _i && t === _i && r === _i ? e : (e.type === "If" && e.else === Wi && t === _i && (t = e.then, e = e.match), {
    type: "If",
    match: e,
    then: t,
    else: r
  });
}
function G0e(e) {
  return e.length > 2 && e.charCodeAt(e.length - 2) === x5t && e.charCodeAt(e.length - 1) === E5t;
}
function pte(e) {
  return e.type === "Keyword" || e.type === "AtKeyword" || e.type === "Function" || e.type === "Type" && G0e(e.name);
}
function Y8(e, t, r) {
  switch (e) {
    case " ": {
      let i = _i;
      for (let n = t.length - 1; n >= 0; n--) {
        const s = t[n];
        i = Ds(
          s,
          i,
          Wi
        );
      }
      return i;
    }
    case "|": {
      let i = Wi, n = null;
      for (let s = t.length - 1; s >= 0; s--) {
        let a = t[s];
        if (pte(a) && (n === null && s > 0 && pte(t[s - 1]) && (n = /* @__PURE__ */ Object.create(null), i = Ds(
          {
            type: "Enum",
            map: n
          },
          _i,
          i
        )), n !== null)) {
          const o = (G0e(a.name) ? a.name.slice(0, -1) : a.name).toLowerCase();
          if (!(o in n)) {
            n[o] = a;
            continue;
          }
        }
        n = null, i = Ds(
          a,
          _i,
          i
        );
      }
      return i;
    }
    case "&&": {
      if (t.length > 5)
        return {
          type: "MatchOnce",
          terms: t,
          all: !0
        };
      let i = Wi;
      for (let n = t.length - 1; n >= 0; n--) {
        const s = t[n];
        let a;
        t.length > 1 ? a = Y8(
          e,
          t.filter(function(o) {
            return o !== s;
          }),
          !1
        ) : a = _i, i = Ds(
          s,
          a,
          i
        );
      }
      return i;
    }
    case "||": {
      if (t.length > 5)
        return {
          type: "MatchOnce",
          terms: t,
          all: !1
        };
      let i = r ? _i : Wi;
      for (let n = t.length - 1; n >= 0; n--) {
        const s = t[n];
        let a;
        t.length > 1 ? a = Y8(
          e,
          t.filter(function(o) {
            return o !== s;
          }),
          !0
        ) : a = _i, i = Ds(
          s,
          a,
          i
        );
      }
      return i;
    }
  }
}
function P5t(e) {
  let t = _i, r = yU(e.term);
  if (e.max === 0)
    r = Ds(
      r,
      mU,
      Wi
    ), t = Ds(
      r,
      null,
      // will be a loop
      Wi
    ), t.then = Ds(
      _i,
      _i,
      t
      // make a loop
    ), e.comma && (t.then.else = Ds(
      { type: "Comma", syntax: e },
      t,
      Wi
    ));
  else
    for (let i = e.min || 1; i <= e.max; i++)
      e.comma && t !== _i && (t = Ds(
        { type: "Comma", syntax: e },
        t,
        Wi
      )), t = Ds(
        r,
        Ds(
          _i,
          _i,
          t
        ),
        Wi
      );
  if (e.min === 0)
    t = Ds(
      _i,
      _i,
      t
    );
  else
    for (let i = 0; i < e.min - 1; i++)
      e.comma && t !== _i && (t = Ds(
        { type: "Comma", syntax: e },
        t,
        Wi
      )), t = Ds(
        r,
        t,
        Wi
      );
  return t;
}
function yU(e) {
  if (typeof e == "function")
    return {
      type: "Generic",
      fn: e
    };
  switch (e.type) {
    case "Group": {
      let t = Y8(
        e.combinator,
        e.terms.map(yU),
        !1
      );
      return e.disallowEmpty && (t = Ds(
        t,
        mU,
        Wi
      )), t;
    }
    case "Multiplier":
      return P5t(e);
    case "Type":
    case "Property":
      return {
        type: e.type,
        name: e.name,
        syntax: e
      };
    case "Keyword":
      return {
        type: e.type,
        name: e.name.toLowerCase(),
        syntax: e
      };
    case "AtKeyword":
      return {
        type: e.type,
        name: "@" + e.name.toLowerCase(),
        syntax: e
      };
    case "Function":
      return {
        type: e.type,
        name: e.name.toLowerCase() + "(",
        syntax: e
      };
    case "String":
      return e.value.length === 3 ? {
        type: "Token",
        value: e.value.charAt(1),
        syntax: e
      } : {
        type: e.type,
        value: e.value.substr(1, e.value.length - 2).replace(/\\'/g, "'"),
        syntax: e
      };
    case "Token":
      return {
        type: e.type,
        value: e.value,
        syntax: e
      };
    case "Comma":
      return {
        type: e.type,
        syntax: e
      };
    default:
      throw new Error("Unknown node type:", e.type);
  }
}
function X8(e, t) {
  return typeof e == "string" && (e = z0e(e)), {
    type: "MatchGraph",
    match: yU(e),
    syntax: t || null,
    source: e
  };
}
const { hasOwnProperty: fte } = Object.prototype, w5t = 0, A5t = 1, J8 = 2, Y0e = 3, hte = "Match", C5t = "Mismatch", _5t = "Maximum iteration number exceeded (please fill an issue on https://github.com/csstree/csstree/issues)", dte = 15e3;
function I5t(e) {
  let t = null, r = null, i = e;
  for (; i !== null; )
    r = i.prev, i.prev = t, t = i, i = r;
  return t;
}
function Z3(e, t) {
  if (e.length !== t.length)
    return !1;
  for (let r = 0; r < e.length; r++) {
    const i = t.charCodeAt(r);
    let n = e.charCodeAt(r);
    if (n >= 65 && n <= 90 && (n = n | 32), n !== i)
      return !1;
  }
  return !0;
}
function k5t(e) {
  return e.type !== Cr ? !1 : e.value !== "?";
}
function mte(e) {
  return e === null ? !0 : e.type === wp || e.type === Vr || e.type === vn || e.type === ko || e.type === Ts || k5t(e);
}
function yte(e) {
  return e === null ? !0 : e.type === Wr || e.type === jc || e.type === Hl || e.type === Cr && e.value === "/";
}
function O5t(e, t, r) {
  function i() {
    do
      S++, T = S < e.length ? e[S] : null;
    while (T !== null && (T.type === Zi || T.type === Ss));
  }
  function n(C) {
    const D = S + C;
    return D < e.length ? e[D] : null;
  }
  function s(C, D) {
    return {
      nextState: C,
      matchStack: x,
      syntaxStack: f,
      thenStack: h,
      tokenIndex: S,
      prev: D
    };
  }
  function a(C) {
    h = {
      nextState: C,
      matchStack: x,
      syntaxStack: f,
      prev: h
    };
  }
  function o(C) {
    m = s(C, m);
  }
  function l() {
    x = {
      type: A5t,
      syntax: t.syntax,
      token: T,
      prev: x
    }, i(), g = null, S > P && (P = S);
  }
  function u() {
    f = {
      syntax: t.syntax,
      opts: t.syntax.opts || f !== null && f.opts || null,
      prev: f
    }, x = {
      type: J8,
      syntax: t.syntax,
      token: x.token,
      prev: x
    };
  }
  function c() {
    x.type === J8 ? x = x.prev : x = {
      type: Y0e,
      syntax: f.syntax,
      token: x.token,
      prev: x
    }, f = f.prev;
  }
  let f = null, h = null, m = null, g = null, y = 0, v = null, T = null, S = -1, P = 0, x = {
    type: w5t,
    syntax: null,
    token: null,
    prev: null
  };
  for (i(); v === null && ++y < dte; )
    switch (t.type) {
      case "Match":
        if (h === null) {
          if (T !== null && (S !== e.length - 1 || T.value !== "\\0" && T.value !== "\\9")) {
            t = Wi;
            break;
          }
          v = hte;
          break;
        }
        if (t = h.nextState, t === mU)
          if (h.matchStack === x) {
            t = Wi;
            break;
          } else
            t = _i;
        for (; h.syntaxStack !== f; )
          c();
        h = h.prev;
        break;
      case "Mismatch":
        if (g !== null && g !== !1)
          (m === null || S > m.tokenIndex) && (m = g, g = !1);
        else if (m === null) {
          v = C5t;
          break;
        }
        t = m.nextState, h = m.thenStack, f = m.syntaxStack, x = m.matchStack, S = m.tokenIndex, T = S < e.length ? e[S] : null, m = m.prev;
        break;
      case "MatchGraph":
        t = t.match;
        break;
      case "If":
        t.else !== Wi && o(t.else), t.then !== _i && a(t.then), t = t.match;
        break;
      case "MatchOnce":
        t = {
          type: "MatchOnceBuffer",
          syntax: t,
          index: 0,
          mask: 0
        };
        break;
      case "MatchOnceBuffer": {
        const w = t.syntax.terms;
        if (t.index === w.length) {
          if (t.mask === 0 || t.syntax.all) {
            t = Wi;
            break;
          }
          t = _i;
          break;
        }
        if (t.mask === (1 << w.length) - 1) {
          t = _i;
          break;
        }
        for (; t.index < w.length; t.index++) {
          const A = 1 << t.index;
          if (!(t.mask & A)) {
            o(t), a({
              type: "AddMatchOnce",
              syntax: t.syntax,
              mask: t.mask | A
            }), t = w[t.index++];
            break;
          }
        }
        break;
      }
      case "AddMatchOnce":
        t = {
          type: "MatchOnceBuffer",
          syntax: t.syntax,
          index: 0,
          mask: t.mask
        };
        break;
      case "Enum":
        if (T !== null) {
          let w = T.value.toLowerCase();
          if (w.indexOf("\\") !== -1 && (w = w.replace(/\\[09].*$/, "")), fte.call(t.map, w)) {
            t = t.map[w];
            break;
          }
        }
        t = Wi;
        break;
      case "Generic": {
        const w = f !== null ? f.opts : null, A = S + Math.floor(t.fn(T, n, w));
        if (!isNaN(A) && A > S) {
          for (; S < A; )
            l();
          t = _i;
        } else
          t = Wi;
        break;
      }
      case "Type":
      case "Property": {
        const w = t.type === "Type" ? "types" : "properties", A = fte.call(r, w) ? r[w][t.name] : null;
        if (!A || !A.match)
          throw new Error(
            "Bad syntax reference: " + (t.type === "Type" ? "<" + t.name + ">" : "<'" + t.name + "'>")
          );
        if (g !== !1 && T !== null && t.type === "Type" && // https://drafts.csswg.org/css-values-4/#custom-idents
        // When parsing positionally-ambiguous keywords in a property value, a <custom-ident> production
        // can only claim the keyword if no other unfulfilled production can claim it.
        (t.name === "custom-ident" && T.type === Nt || // https://drafts.csswg.org/css-values-4/#lengths
        // ... if a `0` could be parsed as either a <number> or a <length> in a property (such as line-height),
        // it must parse as a <number>
        t.name === "length" && T.value === "0")) {
          g === null && (g = s(t, m)), t = Wi;
          break;
        }
        u(), t = A.match;
        break;
      }
      case "Keyword": {
        const w = t.name;
        if (T !== null) {
          let A = T.value;
          if (A.indexOf("\\") !== -1 && (A = A.replace(/\\[09].*$/, "")), Z3(A, w)) {
            l(), t = _i;
            break;
          }
        }
        t = Wi;
        break;
      }
      case "AtKeyword":
      case "Function":
        if (T !== null && Z3(T.value, t.name)) {
          l(), t = _i;
          break;
        }
        t = Wi;
        break;
      case "Token":
        if (T !== null && T.value === t.value) {
          l(), t = _i;
          break;
        }
        t = Wi;
        break;
      case "Comma":
        T !== null && T.type === wp ? mte(x.token) ? t = Wi : (l(), t = yte(T) ? Wi : _i) : t = mte(x.token) || yte(T) ? _i : Wi;
        break;
      case "String":
        let C = "", D = S;
        for (; D < e.length && C.length < t.value.length; D++)
          C += e[D].value;
        if (Z3(C, t.value)) {
          for (; S < D; )
            l();
          t = _i;
        } else
          t = Wi;
        break;
      default:
        throw new Error("Unknown node type: " + t.type);
    }
  switch (v) {
    case null:
      console.warn("[csstree-match] BREAK after " + dte + " iterations"), v = _5t, x = null;
      break;
    case hte:
      for (; f !== null; )
        c();
      break;
    default:
      x = null;
  }
  return {
    tokens: e,
    reason: v,
    iterations: y,
    match: x,
    longestMatch: P
  };
}
function gte(e, t, r) {
  const i = O5t(e, t, r || {});
  if (i.match === null)
    return i;
  let n = i.match, s = i.match = {
    syntax: t.syntax || null,
    match: []
  };
  const a = [s];
  for (n = I5t(n).prev; n !== null; ) {
    switch (n.type) {
      case J8:
        s.match.push(s = {
          syntax: n.syntax,
          match: []
        }), a.push(s);
        break;
      case Y0e:
        a.pop(), s = a[a.length - 1];
        break;
      default:
        s.match.push({
          syntax: n.syntax || null,
          token: n.token.value,
          node: n.token.node
        });
    }
    n = n.prev;
  }
  return i;
}
function X0e(e) {
  function t(n) {
    return n === null ? !1 : n.type === "Type" || n.type === "Property" || n.type === "Keyword";
  }
  function r(n) {
    if (Array.isArray(n.match)) {
      for (let s = 0; s < n.match.length; s++)
        if (r(n.match[s]))
          return t(n.syntax) && i.unshift(n.syntax), !0;
    } else if (n.node === e)
      return i = t(n.syntax) ? [n.syntax] : [], !0;
    return !1;
  }
  let i = null;
  return this.matched !== null && r(this.matched), i;
}
function N5t(e, t) {
  return gU(this, e, (r) => r.type === "Type" && r.name === t);
}
function D5t(e, t) {
  return gU(this, e, (r) => r.type === "Property" && r.name === t);
}
function L5t(e) {
  return gU(this, e, (t) => t.type === "Keyword");
}
function gU(e, t, r) {
  const i = X0e.call(e, t);
  return i === null ? !1 : i.some(r);
}
const M5t = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  getTrace: X0e,
  isKeyword: L5t,
  isProperty: D5t,
  isType: N5t
}, Symbol.toStringTag, { value: "Module" }));
function J0e(e) {
  return "node" in e ? e.node : J0e(e.match[0]);
}
function Q0e(e) {
  return "node" in e ? e.node : Q0e(e.match[e.match.length - 1]);
}
function bte(e, t, r, i, n) {
  function s(o) {
    if (o.syntax !== null && o.syntax.type === i && o.syntax.name === n) {
      const l = J0e(o), u = Q0e(o);
      e.syntax.walk(t, function(c, f, h) {
        if (c === l) {
          const m = new ns();
          do {
            if (m.appendData(f.data), f.data === u)
              break;
            f = f.next;
          } while (f !== null);
          a.push({
            parent: h,
            nodes: m
          });
        }
      });
    }
    Array.isArray(o.match) && o.match.forEach(s);
  }
  const a = [];
  return r.matched !== null && s(r.matched), a;
}
const { hasOwnProperty: uv } = Object.prototype;
function eB(e) {
  return typeof e == "number" && isFinite(e) && Math.floor(e) === e && e >= 0;
}
function vte(e) {
  return !!e && eB(e.offset) && eB(e.line) && eB(e.column);
}
function R5t(e, t) {
  return function(i, n) {
    if (!i || i.constructor !== Object)
      return n(i, "Type of node should be an Object");
    for (let s in i) {
      let a = !0;
      if (uv.call(i, s) !== !1) {
        if (s === "type")
          i.type !== e && n(i, "Wrong node type `" + i.type + "`, expected `" + e + "`");
        else if (s === "loc") {
          if (i.loc === null)
            continue;
          if (i.loc && i.loc.constructor === Object)
            if (typeof i.loc.source != "string")
              s += ".source";
            else if (!vte(i.loc.start))
              s += ".start";
            else if (!vte(i.loc.end))
              s += ".end";
            else
              continue;
          a = !1;
        } else if (t.hasOwnProperty(s)) {
          a = !1;
          for (let o = 0; !a && o < t[s].length; o++) {
            const l = t[s][o];
            switch (l) {
              case String:
                a = typeof i[s] == "string";
                break;
              case Boolean:
                a = typeof i[s] == "boolean";
                break;
              case null:
                a = i[s] === null;
                break;
              default:
                typeof l == "string" ? a = i[s] && i[s].type === l : Array.isArray(l) && (a = i[s] instanceof ns);
            }
          }
        } else
          n(i, "Unknown field `" + s + "` for " + e + " node type");
        a || n(i, "Bad value for `" + e + "." + s + "`");
      }
    }
    for (const s in t)
      uv.call(t, s) && uv.call(i, s) === !1 && n(i, "Field `" + e + "." + s + "` is missed");
  };
}
function B5t(e, t) {
  const r = t.structure, i = {
    type: String,
    loc: !0
  }, n = {
    type: '"' + e + '"'
  };
  for (const s in r) {
    if (uv.call(r, s) === !1)
      continue;
    const a = [], o = i[s] = Array.isArray(r[s]) ? r[s].slice() : [r[s]];
    for (let l = 0; l < o.length; l++) {
      const u = o[l];
      if (u === String || u === Boolean)
        a.push(u.name);
      else if (u === null)
        a.push("null");
      else if (typeof u == "string")
        a.push("<" + u + ">");
      else if (Array.isArray(u))
        a.push("List");
      else
        throw new Error("Wrong value `" + u + "` in `" + e + "." + s + "` structure definition");
    }
    n[s] = a.join(" | ");
  }
  return {
    docs: n,
    check: R5t(e, i)
  };
}
function F5t(e) {
  const t = {};
  if (e.node) {
    for (const r in e.node)
      if (uv.call(e.node, r)) {
        const i = e.node[r];
        if (i.structure)
          t[r] = B5t(r, i);
        else
          throw new Error("Missed `structure` field in `" + r + "` node type definition");
      }
  }
  return t;
}
const j5t = X8(M0e.join(" | "));
function Q8(e, t, r) {
  const i = {};
  for (const n in e)
    e[n].syntax && (i[n] = r ? e[n].syntax : oU(e[n].syntax, { compact: t }));
  return i;
}
function $5t(e, t, r) {
  const i = {};
  for (const [n, s] of Object.entries(e))
    i[n] = {
      prelude: s.prelude && (r ? s.prelude.syntax : oU(s.prelude.syntax, { compact: t })),
      descriptors: s.descriptors && Q8(s.descriptors, t, r)
    };
  return i;
}
function U5t(e) {
  for (let t = 0; t < e.length; t++)
    if (e[t].value.toLowerCase() === "var(")
      return !0;
  return !1;
}
function Ac(e, t, r) {
  return $t({
    matched: e,
    iterations: r,
    error: t
  }, M5t);
}
function Gm(e, t, r, i) {
  const n = S5t(r, e.syntax);
  let s;
  return U5t(n) ? Ac(null, new Error("Matching for a tree with var() is not supported")) : (i && (s = gte(n, e.cssWideKeywordsSyntax, e)), (!i || !s.match) && (s = gte(n, t.match, e), !s.match) ? Ac(
    null,
    new g9t(s.reason, t.syntax, r, s),
    s.iterations
  ) : Ac(s.match, null, s.iterations));
}
let Tte = class {
  constructor(t, r, i) {
    if (this.cssWideKeywordsSyntax = j5t, this.syntax = r, this.generic = !1, this.units = $t({}, rte), this.atrules = /* @__PURE__ */ Object.create(null), this.properties = /* @__PURE__ */ Object.create(null), this.types = /* @__PURE__ */ Object.create(null), this.structure = i || F5t(t), t) {
      if (t.units)
        for (const n of Object.keys(rte))
          Array.isArray(t.units[n]) && (this.units[n] = t.units[n]);
      if (t.types)
        for (const n in t.types)
          this.addType_(n, t.types[n]);
      if (t.generic) {
        this.generic = !0;
        for (const [n, s] of Object.entries($9t(this.units)))
          this.addType_(n, s);
      }
      if (t.atrules)
        for (const n in t.atrules)
          this.addAtrule_(n, t.atrules[n]);
      if (t.properties)
        for (const n in t.properties)
          this.addProperty_(n, t.properties[n]);
    }
  }
  checkStructure(t) {
    function r(s, a) {
      n.push({ node: s, message: a });
    }
    const i = this.structure, n = [];
    return this.syntax.walk(t, function(s) {
      i.hasOwnProperty(s.type) ? i[s.type].check(s, r) : r(s, "Unknown node type `" + s.type + "`");
    }), n.length ? n : !1;
  }
  createDescriptor(t, r, i, n = null) {
    const s = {
      type: r,
      name: i
    }, a = {
      type: r,
      name: i,
      parent: n,
      serializable: typeof t == "string" || t && typeof t.type == "string",
      syntax: null,
      match: null
    };
    return typeof t == "function" ? a.match = X8(t, s) : (typeof t == "string" ? Object.defineProperty(a, "syntax", {
      get() {
        return Object.defineProperty(a, "syntax", {
          value: z0e(t)
        }), a.syntax;
      }
    }) : a.syntax = t, Object.defineProperty(a, "match", {
      get() {
        return Object.defineProperty(a, "match", {
          value: X8(a.syntax, s)
        }), a.match;
      }
    })), a;
  }
  addAtrule_(t, r) {
    r && (this.atrules[t] = {
      type: "Atrule",
      name: t,
      prelude: r.prelude ? this.createDescriptor(r.prelude, "AtrulePrelude", t) : null,
      descriptors: r.descriptors ? Object.keys(r.descriptors).reduce(
        (i, n) => (i[n] = this.createDescriptor(r.descriptors[n], "AtruleDescriptor", n, t), i),
        /* @__PURE__ */ Object.create(null)
      ) : null
    });
  }
  addProperty_(t, r) {
    r && (this.properties[t] = this.createDescriptor(r, "Property", t));
  }
  addType_(t, r) {
    r && (this.types[t] = this.createDescriptor(r, "Type", t));
  }
  checkAtruleName(t) {
    if (!this.getAtrule(t))
      return new p0("Unknown at-rule", "@" + t);
  }
  checkAtrulePrelude(t, r) {
    const i = this.checkAtruleName(t);
    if (i)
      return i;
    const n = this.getAtrule(t);
    if (!n.prelude && r)
      return new SyntaxError("At-rule `@" + t + "` should not contain a prelude");
    if (n.prelude && !r && !Gm(this, n.prelude, "", !1).matched)
      return new SyntaxError("At-rule `@" + t + "` should contain a prelude");
  }
  checkAtruleDescriptorName(t, r) {
    const i = this.checkAtruleName(t);
    if (i)
      return i;
    const n = this.getAtrule(t), s = Y3(r);
    if (!n.descriptors)
      return new SyntaxError("At-rule `@" + t + "` has no known descriptors");
    if (!n.descriptors[s.name] && !n.descriptors[s.basename])
      return new p0("Unknown at-rule descriptor", r);
  }
  checkPropertyName(t) {
    if (!this.getProperty(t))
      return new p0("Unknown property", t);
  }
  matchAtrulePrelude(t, r) {
    const i = this.checkAtrulePrelude(t, r);
    if (i)
      return Ac(null, i);
    const n = this.getAtrule(t);
    return n.prelude ? Gm(this, n.prelude, r || "", !1) : Ac(null, null);
  }
  matchAtruleDescriptor(t, r, i) {
    const n = this.checkAtruleDescriptorName(t, r);
    if (n)
      return Ac(null, n);
    const s = this.getAtrule(t), a = Y3(r);
    return Gm(this, s.descriptors[a.name] || s.descriptors[a.basename], i, !1);
  }
  matchDeclaration(t) {
    return t.type !== "Declaration" ? Ac(null, new Error("Not a Declaration node")) : this.matchProperty(t.property, t.value);
  }
  matchProperty(t, r) {
    if (tte(t).custom)
      return Ac(null, new Error("Lexer matching doesn't applicable for custom properties"));
    const i = this.checkPropertyName(t);
    return i ? Ac(null, i) : Gm(this, this.getProperty(t), r, !0);
  }
  matchType(t, r) {
    const i = this.getType(t);
    return i ? Gm(this, i, r, !1) : Ac(null, new p0("Unknown type", t));
  }
  match(t, r) {
    return typeof t != "string" && (!t || !t.type) ? Ac(null, new p0("Bad syntax")) : ((typeof t == "string" || !t.match) && (t = this.createDescriptor(t, "Type", "anonymous")), Gm(this, t, r, !1));
  }
  findValueFragments(t, r, i, n) {
    return bte(this, r, this.matchProperty(t, r), i, n);
  }
  findDeclarationValueFragments(t, r, i) {
    return bte(this, t.value, this.matchDeclaration(t), r, i);
  }
  findAllFragments(t, r, i) {
    const n = [];
    return this.syntax.walk(t, {
      visit: "Declaration",
      enter: (s) => {
        n.push.apply(n, this.findDeclarationValueFragments(s, r, i));
      }
    }), n;
  }
  getAtrule(t, r = !0) {
    const i = Y3(t);
    return (i.vendor && r ? this.atrules[i.name] || this.atrules[i.basename] : this.atrules[i.name]) || null;
  }
  getAtrulePrelude(t, r = !0) {
    const i = this.getAtrule(t, r);
    return i && i.prelude || null;
  }
  getAtruleDescriptor(t, r) {
    return this.atrules.hasOwnProperty(t) && this.atrules.declarators && this.atrules[t].declarators[r] || null;
  }
  getProperty(t, r = !0) {
    const i = tte(t);
    return (i.vendor && r ? this.properties[i.name] || this.properties[i.basename] : this.properties[i.name]) || null;
  }
  getType(t) {
    return hasOwnProperty.call(this.types, t) ? this.types[t] : null;
  }
  validate() {
    function t(n, s, a, o) {
      if (a.has(s))
        return a.get(s);
      a.set(s, !1), o.syntax !== null && b5t(o.syntax, function(l) {
        if (l.type !== "Type" && l.type !== "Property")
          return;
        const u = l.type === "Type" ? n.types : n.properties, c = l.type === "Type" ? r : i;
        (!hasOwnProperty.call(u, l.name) || t(n, l.name, c, u[l.name])) && a.set(s, !0);
      }, this);
    }
    let r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
    for (const n in this.types)
      t(this, n, r, this.types[n]);
    for (const n in this.properties)
      t(this, n, i, this.properties[n]);
    return r = [...r.keys()].filter((n) => r.get(n)), i = [...i.keys()].filter((n) => i.get(n)), r.length || i.length ? {
      types: r,
      properties: i
    } : null;
  }
  dump(t, r) {
    return {
      generic: this.generic,
      units: this.units,
      types: Q8(this.types, !r, t),
      properties: Q8(this.properties, !r, t),
      atrules: $5t(this.atrules, !r, t)
    };
  }
  toString() {
    return JSON.stringify(this.dump());
  }
};
function tB(e, t) {
  return typeof t == "string" && /^\s*\|/.test(t) ? typeof e == "string" ? e + t : t.replace(/^\s*\|\s*/, "") : t || null;
}
function Ste(e, t) {
  const r = /* @__PURE__ */ Object.create(null);
  for (const [i, n] of Object.entries(e))
    if (n) {
      r[i] = {};
      for (const s of Object.keys(n))
        t.includes(s) && (r[i][s] = n[s]);
    }
  return r;
}
function Z8(e, t) {
  const r = $t({}, e);
  for (const [i, n] of Object.entries(t))
    switch (i) {
      case "generic":
        r[i] = !!n;
        break;
      case "units":
        r[i] = $t({}, e[i]);
        for (const [s, a] of Object.entries(n))
          r[i][s] = Array.isArray(a) ? a : [];
        break;
      case "atrules":
        r[i] = $t({}, e[i]);
        for (const [s, a] of Object.entries(n)) {
          const o = r[i][s] || {}, l = r[i][s] = {
            prelude: o.prelude || null,
            descriptors: $t({}, o.descriptors)
          };
          if (a) {
            l.prelude = a.prelude ? tB(l.prelude, a.prelude) : l.prelude || null;
            for (const [u, c] of Object.entries(a.descriptors || {}))
              l.descriptors[u] = c ? tB(l.descriptors[u], c) : null;
            Object.keys(l.descriptors).length || (l.descriptors = null);
          }
        }
        break;
      case "types":
      case "properties":
        r[i] = $t({}, e[i]);
        for (const [s, a] of Object.entries(n))
          r[i][s] = tB(r[i][s], a);
        break;
      case "scope":
        r[i] = $t({}, e[i]);
        for (const [s, a] of Object.entries(n))
          r[i][s] = $t($t({}, r[i][s]), a);
        break;
      case "parseContext":
        r[i] = $t($t({}, e[i]), n);
        break;
      case "atrule":
      case "pseudo":
        r[i] = $t($t({}, e[i]), Ste(n, ["parse"]));
        break;
      case "node":
        r[i] = $t($t({}, e[i]), Ste(n, ["name", "structure", "parse", "generate", "walkContext"]));
        break;
    }
  return r;
}
function Z0e(e) {
  const t = z6t(e), r = p9t(e), i = o9t(e), { fromPlainObject: n, toPlainObject: s } = l9t(r), a = {
    lexer: null,
    createLexer: (o) => new Tte(o, a, a.lexer.structure),
    tokenize: zI,
    parse: t,
    generate: i,
    walk: r,
    find: r.find,
    findLast: r.findLast,
    findAll: r.findAll,
    fromPlainObject: n,
    toPlainObject: s,
    fork(o) {
      const l = Z8({}, e);
      return Z0e(
        typeof o == "function" ? o(l, Object.assign) : Z8(l, o)
      );
    }
  };
  return a.lexer = new Tte({
    generic: !0,
    units: e.units,
    types: e.types,
    atrules: e.atrules,
    properties: e.properties,
    node: e.node
  }, a), a;
}
const q5t = (e) => Z0e(Z8({}, e)), V5t = {
  generic: !0,
  units: {
    angle: [
      "deg",
      "grad",
      "rad",
      "turn"
    ],
    decibel: [
      "db"
    ],
    flex: [
      "fr"
    ],
    frequency: [
      "hz",
      "khz"
    ],
    length: [
      "cm",
      "mm",
      "q",
      "in",
      "pt",
      "pc",
      "px",
      "em",
      "rem",
      "ex",
      "rex",
      "cap",
      "rcap",
      "ch",
      "rch",
      "ic",
      "ric",
      "lh",
      "rlh",
      "vw",
      "svw",
      "lvw",
      "dvw",
      "vh",
      "svh",
      "lvh",
      "dvh",
      "vi",
      "svi",
      "lvi",
      "dvi",
      "vb",
      "svb",
      "lvb",
      "dvb",
      "vmin",
      "svmin",
      "lvmin",
      "dvmin",
      "vmax",
      "svmax",
      "lvmax",
      "dvmax",
      "cqw",
      "cqh",
      "cqi",
      "cqb",
      "cqmin",
      "cqmax"
    ],
    resolution: [
      "dpi",
      "dpcm",
      "dppx",
      "x"
    ],
    semitones: [
      "st"
    ],
    time: [
      "s",
      "ms"
    ]
  },
  types: {
    "abs()": "abs( <calc-sum> )",
    "absolute-size": "xx-small|x-small|small|medium|large|x-large|xx-large|xxx-large",
    "acos()": "acos( <calc-sum> )",
    "alpha-value": "<number>|<percentage>",
    "angle-percentage": "<angle>|<percentage>",
    "angular-color-hint": "<angle-percentage>",
    "angular-color-stop": "<color>&&<color-stop-angle>?",
    "angular-color-stop-list": "[<angular-color-stop> [, <angular-color-hint>]?]# , <angular-color-stop>",
    "animateable-feature": "scroll-position|contents|<custom-ident>",
    "asin()": "asin( <calc-sum> )",
    "atan()": "atan( <calc-sum> )",
    "atan2()": "atan2( <calc-sum> , <calc-sum> )",
    attachment: "scroll|fixed|local",
    "attr()": "attr( <attr-name> <type-or-unit>? [, <attr-fallback>]? )",
    "attr-matcher": "['~'|'|'|'^'|'$'|'*']? '='",
    "attr-modifier": "i|s",
    "attribute-selector": "'[' <wq-name> ']'|'[' <wq-name> <attr-matcher> [<string-token>|<ident-token>] <attr-modifier>? ']'",
    "auto-repeat": "repeat( [auto-fill|auto-fit] , [<line-names>? <fixed-size>]+ <line-names>? )",
    "auto-track-list": "[<line-names>? [<fixed-size>|<fixed-repeat>]]* <line-names>? <auto-repeat> [<line-names>? [<fixed-size>|<fixed-repeat>]]* <line-names>?",
    axis: "block|inline|vertical|horizontal",
    "baseline-position": "[first|last]? baseline",
    "basic-shape": "<inset()>|<circle()>|<ellipse()>|<polygon()>|<path()>",
    "bg-image": "none|<image>",
    "bg-layer": "<bg-image>||<bg-position> [/ <bg-size>]?||<repeat-style>||<attachment>||<box>||<box>",
    "bg-position": "[[left|center|right|top|bottom|<length-percentage>]|[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]|[center|[left|right] <length-percentage>?]&&[center|[top|bottom] <length-percentage>?]]",
    "bg-size": "[<length-percentage>|auto]{1,2}|cover|contain",
    "blur()": "blur( <length> )",
    "blend-mode": "normal|multiply|screen|overlay|darken|lighten|color-dodge|color-burn|hard-light|soft-light|difference|exclusion|hue|saturation|color|luminosity",
    box: "border-box|padding-box|content-box",
    "brightness()": "brightness( <number-percentage> )",
    "calc()": "calc( <calc-sum> )",
    "calc-sum": "<calc-product> [['+'|'-'] <calc-product>]*",
    "calc-product": "<calc-value> ['*' <calc-value>|'/' <number>]*",
    "calc-value": "<number>|<dimension>|<percentage>|<calc-constant>|( <calc-sum> )",
    "calc-constant": "e|pi|infinity|-infinity|NaN",
    "cf-final-image": "<image>|<color>",
    "cf-mixing-image": "<percentage>?&&<image>",
    "circle()": "circle( [<shape-radius>]? [at <position>]? )",
    "clamp()": "clamp( <calc-sum>#{3} )",
    "class-selector": "'.' <ident-token>",
    "clip-source": "<url>",
    color: "<rgb()>|<rgba()>|<hsl()>|<hsla()>|<hwb()>|<lab()>|<lch()>|<hex-color>|<named-color>|currentcolor|<deprecated-system-color>",
    "color-stop": "<color-stop-length>|<color-stop-angle>",
    "color-stop-angle": "<angle-percentage>{1,2}",
    "color-stop-length": "<length-percentage>{1,2}",
    "color-stop-list": "[<linear-color-stop> [, <linear-color-hint>]?]# , <linear-color-stop>",
    combinator: "'>'|'+'|'~'|['||']",
    "common-lig-values": "[common-ligatures|no-common-ligatures]",
    "compat-auto": "searchfield|textarea|push-button|slider-horizontal|checkbox|radio|square-button|menulist|listbox|meter|progress-bar|button",
    "composite-style": "clear|copy|source-over|source-in|source-out|source-atop|destination-over|destination-in|destination-out|destination-atop|xor",
    "compositing-operator": "add|subtract|intersect|exclude",
    "compound-selector": "[<type-selector>? <subclass-selector>* [<pseudo-element-selector> <pseudo-class-selector>*]*]!",
    "compound-selector-list": "<compound-selector>#",
    "complex-selector": "<compound-selector> [<combinator>? <compound-selector>]*",
    "complex-selector-list": "<complex-selector>#",
    "conic-gradient()": "conic-gradient( [from <angle>]? [at <position>]? , <angular-color-stop-list> )",
    "contextual-alt-values": "[contextual|no-contextual]",
    "content-distribution": "space-between|space-around|space-evenly|stretch",
    "content-list": "[<string>|contents|<image>|<counter>|<quote>|<target>|<leader()>|<attr()>]+",
    "content-position": "center|start|end|flex-start|flex-end",
    "content-replacement": "<image>",
    "contrast()": "contrast( [<number-percentage>] )",
    "cos()": "cos( <calc-sum> )",
    counter: "<counter()>|<counters()>",
    "counter()": "counter( <counter-name> , <counter-style>? )",
    "counter-name": "<custom-ident>",
    "counter-style": "<counter-style-name>|symbols( )",
    "counter-style-name": "<custom-ident>",
    "counters()": "counters( <counter-name> , <string> , <counter-style>? )",
    "cross-fade()": "cross-fade( <cf-mixing-image> , <cf-final-image>? )",
    "cubic-bezier-timing-function": "ease|ease-in|ease-out|ease-in-out|cubic-bezier( <number [0,1]> , <number> , <number [0,1]> , <number> )",
    "deprecated-system-color": "ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText",
    "discretionary-lig-values": "[discretionary-ligatures|no-discretionary-ligatures]",
    "display-box": "contents|none",
    "display-inside": "flow|flow-root|table|flex|grid|ruby",
    "display-internal": "table-row-group|table-header-group|table-footer-group|table-row|table-cell|table-column-group|table-column|table-caption|ruby-base|ruby-text|ruby-base-container|ruby-text-container",
    "display-legacy": "inline-block|inline-list-item|inline-table|inline-flex|inline-grid",
    "display-listitem": "<display-outside>?&&[flow|flow-root]?&&list-item",
    "display-outside": "block|inline|run-in",
    "drop-shadow()": "drop-shadow( <length>{2,3} <color>? )",
    "east-asian-variant-values": "[jis78|jis83|jis90|jis04|simplified|traditional]",
    "east-asian-width-values": "[full-width|proportional-width]",
    "element()": "element( <custom-ident> , [first|start|last|first-except]? )|element( <id-selector> )",
    "ellipse()": "ellipse( [<shape-radius>{2}]? [at <position>]? )",
    "ending-shape": "circle|ellipse",
    "env()": "env( <custom-ident> , <declaration-value>? )",
    "exp()": "exp( <calc-sum> )",
    "explicit-track-list": "[<line-names>? <track-size>]+ <line-names>?",
    "family-name": "<string>|<custom-ident>+",
    "feature-tag-value": "<string> [<integer>|on|off]?",
    "feature-type": "@stylistic|@historical-forms|@styleset|@character-variant|@swash|@ornaments|@annotation",
    "feature-value-block": "<feature-type> '{' <feature-value-declaration-list> '}'",
    "feature-value-block-list": "<feature-value-block>+",
    "feature-value-declaration": "<custom-ident> : <integer>+ ;",
    "feature-value-declaration-list": "<feature-value-declaration>",
    "feature-value-name": "<custom-ident>",
    "fill-rule": "nonzero|evenodd",
    "filter-function": "<blur()>|<brightness()>|<contrast()>|<drop-shadow()>|<grayscale()>|<hue-rotate()>|<invert()>|<opacity()>|<saturate()>|<sepia()>",
    "filter-function-list": "[<filter-function>|<url>]+",
    "final-bg-layer": "<'background-color'>||<bg-image>||<bg-position> [/ <bg-size>]?||<repeat-style>||<attachment>||<box>||<box>",
    "fixed-breadth": "<length-percentage>",
    "fixed-repeat": "repeat( [<integer [1,∞]>] , [<line-names>? <fixed-size>]+ <line-names>? )",
    "fixed-size": "<fixed-breadth>|minmax( <fixed-breadth> , <track-breadth> )|minmax( <inflexible-breadth> , <fixed-breadth> )",
    "font-stretch-absolute": "normal|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded|<percentage>",
    "font-variant-css21": "[normal|small-caps]",
    "font-weight-absolute": "normal|bold|<number [1,1000]>",
    "frequency-percentage": "<frequency>|<percentage>",
    "general-enclosed": "[<function-token> <any-value> )]|( <ident> <any-value> )",
    "generic-family": "serif|sans-serif|cursive|fantasy|monospace|-apple-system",
    "generic-name": "serif|sans-serif|cursive|fantasy|monospace",
    "geometry-box": "<shape-box>|fill-box|stroke-box|view-box",
    gradient: "<linear-gradient()>|<repeating-linear-gradient()>|<radial-gradient()>|<repeating-radial-gradient()>|<conic-gradient()>|<repeating-conic-gradient()>|<-legacy-gradient>",
    "grayscale()": "grayscale( <number-percentage> )",
    "grid-line": "auto|<custom-ident>|[<integer>&&<custom-ident>?]|[span&&[<integer>||<custom-ident>]]",
    "historical-lig-values": "[historical-ligatures|no-historical-ligatures]",
    "hsl()": "hsl( <hue> <percentage> <percentage> [/ <alpha-value>]? )|hsl( <hue> , <percentage> , <percentage> , <alpha-value>? )",
    "hsla()": "hsla( <hue> <percentage> <percentage> [/ <alpha-value>]? )|hsla( <hue> , <percentage> , <percentage> , <alpha-value>? )",
    hue: "<number>|<angle>",
    "hue-rotate()": "hue-rotate( <angle> )",
    "hwb()": "hwb( [<hue>|none] [<percentage>|none] [<percentage>|none] [/ [<alpha-value>|none]]? )",
    "hypot()": "hypot( <calc-sum># )",
    image: "<url>|<image()>|<image-set()>|<element()>|<paint()>|<cross-fade()>|<gradient>",
    "image()": "image( <image-tags>? [<image-src>? , <color>?]! )",
    "image-set()": "image-set( <image-set-option># )",
    "image-set-option": "[<image>|<string>] [<resolution>||type( <string> )]",
    "image-src": "<url>|<string>",
    "image-tags": "ltr|rtl",
    "inflexible-breadth": "<length-percentage>|min-content|max-content|auto",
    "inset()": "inset( <length-percentage>{1,4} [round <'border-radius'>]? )",
    "invert()": "invert( <number-percentage> )",
    "keyframes-name": "<custom-ident>|<string>",
    "keyframe-block": "<keyframe-selector># { <declaration-list> }",
    "keyframe-block-list": "<keyframe-block>+",
    "keyframe-selector": "from|to|<percentage>",
    "lab()": "lab( [<percentage>|<number>|none] [<percentage>|<number>|none] [<percentage>|<number>|none] [/ [<alpha-value>|none]]? )",
    "layer()": "layer( <layer-name> )",
    "layer-name": "<ident> ['.' <ident>]*",
    "lch()": "lch( [<percentage>|<number>|none] [<percentage>|<number>|none] [<hue>|none] [/ [<alpha-value>|none]]? )",
    "leader()": "leader( <leader-type> )",
    "leader-type": "dotted|solid|space|<string>",
    "length-percentage": "<length>|<percentage>",
    "line-names": "'[' <custom-ident>* ']'",
    "line-name-list": "[<line-names>|<name-repeat>]+",
    "line-style": "none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset",
    "line-width": "<length>|thin|medium|thick",
    "linear-color-hint": "<length-percentage>",
    "linear-color-stop": "<color> <color-stop-length>?",
    "linear-gradient()": "linear-gradient( [<angle>|to <side-or-corner>]? , <color-stop-list> )",
    "log()": "log( <calc-sum> , <calc-sum>? )",
    "mask-layer": "<mask-reference>||<position> [/ <bg-size>]?||<repeat-style>||<geometry-box>||[<geometry-box>|no-clip]||<compositing-operator>||<masking-mode>",
    "mask-position": "[<length-percentage>|left|center|right] [<length-percentage>|top|center|bottom]?",
    "mask-reference": "none|<image>|<mask-source>",
    "mask-source": "<url>",
    "masking-mode": "alpha|luminance|match-source",
    "matrix()": "matrix( <number>#{6} )",
    "matrix3d()": "matrix3d( <number>#{16} )",
    "max()": "max( <calc-sum># )",
    "media-and": "<media-in-parens> [and <media-in-parens>]+",
    "media-condition": "<media-not>|<media-and>|<media-or>|<media-in-parens>",
    "media-condition-without-or": "<media-not>|<media-and>|<media-in-parens>",
    "media-feature": "( [<mf-plain>|<mf-boolean>|<mf-range>] )",
    "media-in-parens": "( <media-condition> )|<media-feature>|<general-enclosed>",
    "media-not": "not <media-in-parens>",
    "media-or": "<media-in-parens> [or <media-in-parens>]+",
    "media-query": "<media-condition>|[not|only]? <media-type> [and <media-condition-without-or>]?",
    "media-query-list": "<media-query>#",
    "media-type": "<ident>",
    "mf-boolean": "<mf-name>",
    "mf-name": "<ident>",
    "mf-plain": "<mf-name> : <mf-value>",
    "mf-range": "<mf-name> ['<'|'>']? '='? <mf-value>|<mf-value> ['<'|'>']? '='? <mf-name>|<mf-value> '<' '='? <mf-name> '<' '='? <mf-value>|<mf-value> '>' '='? <mf-name> '>' '='? <mf-value>",
    "mf-value": "<number>|<dimension>|<ident>|<ratio>",
    "min()": "min( <calc-sum># )",
    "minmax()": "minmax( [<length-percentage>|min-content|max-content|auto] , [<length-percentage>|<flex>|min-content|max-content|auto] )",
    "mod()": "mod( <calc-sum> , <calc-sum> )",
    "name-repeat": "repeat( [<integer [1,∞]>|auto-fill] , <line-names>+ )",
    "named-color": "transparent|aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen|<-non-standard-color>",
    "namespace-prefix": "<ident>",
    "ns-prefix": "[<ident-token>|'*']? '|'",
    "number-percentage": "<number>|<percentage>",
    "numeric-figure-values": "[lining-nums|oldstyle-nums]",
    "numeric-fraction-values": "[diagonal-fractions|stacked-fractions]",
    "numeric-spacing-values": "[proportional-nums|tabular-nums]",
    nth: "<an-plus-b>|even|odd",
    "opacity()": "opacity( [<number-percentage>] )",
    "overflow-position": "unsafe|safe",
    "outline-radius": "<length>|<percentage>",
    "page-body": "<declaration>? [; <page-body>]?|<page-margin-box> <page-body>",
    "page-margin-box": "<page-margin-box-type> '{' <declaration-list> '}'",
    "page-margin-box-type": "@top-left-corner|@top-left|@top-center|@top-right|@top-right-corner|@bottom-left-corner|@bottom-left|@bottom-center|@bottom-right|@bottom-right-corner|@left-top|@left-middle|@left-bottom|@right-top|@right-middle|@right-bottom",
    "page-selector-list": "[<page-selector>#]?",
    "page-selector": "<pseudo-page>+|<ident> <pseudo-page>*",
    "page-size": "A5|A4|A3|B5|B4|JIS-B5|JIS-B4|letter|legal|ledger",
    "path()": "path( [<fill-rule> ,]? <string> )",
    "paint()": "paint( <ident> , <declaration-value>? )",
    "perspective()": "perspective( [<length [0,∞]>|none] )",
    "polygon()": "polygon( <fill-rule>? , [<length-percentage> <length-percentage>]# )",
    position: "[[left|center|right]||[top|center|bottom]|[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]?|[[left|right] <length-percentage>]&&[[top|bottom] <length-percentage>]]",
    "pow()": "pow( <calc-sum> , <calc-sum> )",
    "pseudo-class-selector": "':' <ident-token>|':' <function-token> <any-value> ')'",
    "pseudo-element-selector": "':' <pseudo-class-selector>",
    "pseudo-page": ": [left|right|first|blank]",
    quote: "open-quote|close-quote|no-open-quote|no-close-quote",
    "radial-gradient()": "radial-gradient( [<ending-shape>||<size>]? [at <position>]? , <color-stop-list> )",
    ratio: "<number [0,∞]> [/ <number [0,∞]>]?",
    "relative-selector": "<combinator>? <complex-selector>",
    "relative-selector-list": "<relative-selector>#",
    "relative-size": "larger|smaller",
    "rem()": "rem( <calc-sum> , <calc-sum> )",
    "repeat-style": "repeat-x|repeat-y|[repeat|space|round|no-repeat]{1,2}",
    "repeating-conic-gradient()": "repeating-conic-gradient( [from <angle>]? [at <position>]? , <angular-color-stop-list> )",
    "repeating-linear-gradient()": "repeating-linear-gradient( [<angle>|to <side-or-corner>]? , <color-stop-list> )",
    "repeating-radial-gradient()": "repeating-radial-gradient( [<ending-shape>||<size>]? [at <position>]? , <color-stop-list> )",
    "reversed-counter-name": "reversed( <counter-name> )",
    "rgb()": "rgb( <percentage>{3} [/ <alpha-value>]? )|rgb( <number>{3} [/ <alpha-value>]? )|rgb( <percentage>#{3} , <alpha-value>? )|rgb( <number>#{3} , <alpha-value>? )",
    "rgba()": "rgba( <percentage>{3} [/ <alpha-value>]? )|rgba( <number>{3} [/ <alpha-value>]? )|rgba( <percentage>#{3} , <alpha-value>? )|rgba( <number>#{3} , <alpha-value>? )",
    "rotate()": "rotate( [<angle>|<zero>] )",
    "rotate3d()": "rotate3d( <number> , <number> , <number> , [<angle>|<zero>] )",
    "rotateX()": "rotateX( [<angle>|<zero>] )",
    "rotateY()": "rotateY( [<angle>|<zero>] )",
    "rotateZ()": "rotateZ( [<angle>|<zero>] )",
    "round()": "round( <rounding-strategy>? , <calc-sum> , <calc-sum> )",
    "rounding-strategy": "nearest|up|down|to-zero",
    "saturate()": "saturate( <number-percentage> )",
    "scale()": "scale( [<number>|<percentage>]#{1,2} )",
    "scale3d()": "scale3d( [<number>|<percentage>]#{3} )",
    "scaleX()": "scaleX( [<number>|<percentage>] )",
    "scaleY()": "scaleY( [<number>|<percentage>] )",
    "scaleZ()": "scaleZ( [<number>|<percentage>] )",
    scroller: "root|nearest",
    "self-position": "center|start|end|self-start|self-end|flex-start|flex-end",
    "shape-radius": "<length-percentage>|closest-side|farthest-side",
    "sign()": "sign( <calc-sum> )",
    "skew()": "skew( [<angle>|<zero>] , [<angle>|<zero>]? )",
    "skewX()": "skewX( [<angle>|<zero>] )",
    "skewY()": "skewY( [<angle>|<zero>] )",
    "sepia()": "sepia( <number-percentage> )",
    shadow: "inset?&&<length>{2,4}&&<color>?",
    "shadow-t": "[<length>{2,3}&&<color>?]",
    shape: "rect( <top> , <right> , <bottom> , <left> )|rect( <top> <right> <bottom> <left> )",
    "shape-box": "<box>|margin-box",
    "side-or-corner": "[left|right]||[top|bottom]",
    "sin()": "sin( <calc-sum> )",
    "single-animation": "<time>||<easing-function>||<time>||<single-animation-iteration-count>||<single-animation-direction>||<single-animation-fill-mode>||<single-animation-play-state>||[none|<keyframes-name>]",
    "single-animation-direction": "normal|reverse|alternate|alternate-reverse",
    "single-animation-fill-mode": "none|forwards|backwards|both",
    "single-animation-iteration-count": "infinite|<number>",
    "single-animation-play-state": "running|paused",
    "single-animation-timeline": "auto|none|<timeline-name>|scroll( <axis>? <scroller>? )",
    "single-transition": "[none|<single-transition-property>]||<time>||<easing-function>||<time>",
    "single-transition-property": "all|<custom-ident>",
    size: "closest-side|farthest-side|closest-corner|farthest-corner|<length>|<length-percentage>{2}",
    "sqrt()": "sqrt( <calc-sum> )",
    "step-position": "jump-start|jump-end|jump-none|jump-both|start|end",
    "step-timing-function": "step-start|step-end|steps( <integer> [, <step-position>]? )",
    "subclass-selector": "<id-selector>|<class-selector>|<attribute-selector>|<pseudo-class-selector>",
    "supports-condition": "not <supports-in-parens>|<supports-in-parens> [and <supports-in-parens>]*|<supports-in-parens> [or <supports-in-parens>]*",
    "supports-in-parens": "( <supports-condition> )|<supports-feature>|<general-enclosed>",
    "supports-feature": "<supports-decl>|<supports-selector-fn>",
    "supports-decl": "( <declaration> )",
    "supports-selector-fn": "selector( <complex-selector> )",
    symbol: "<string>|<image>|<custom-ident>",
    "tan()": "tan( <calc-sum> )",
    target: "<target-counter()>|<target-counters()>|<target-text()>",
    "target-counter()": "target-counter( [<string>|<url>] , <custom-ident> , <counter-style>? )",
    "target-counters()": "target-counters( [<string>|<url>] , <custom-ident> , <string> , <counter-style>? )",
    "target-text()": "target-text( [<string>|<url>] , [content|before|after|first-letter]? )",
    "time-percentage": "<time>|<percentage>",
    "timeline-name": "<custom-ident>|<string>",
    "easing-function": "linear|<cubic-bezier-timing-function>|<step-timing-function>",
    "track-breadth": "<length-percentage>|<flex>|min-content|max-content|auto",
    "track-list": "[<line-names>? [<track-size>|<track-repeat>]]+ <line-names>?",
    "track-repeat": "repeat( [<integer [1,∞]>] , [<line-names>? <track-size>]+ <line-names>? )",
    "track-size": "<track-breadth>|minmax( <inflexible-breadth> , <track-breadth> )|fit-content( <length-percentage> )",
    "transform-function": "<matrix()>|<translate()>|<translateX()>|<translateY()>|<scale()>|<scaleX()>|<scaleY()>|<rotate()>|<skew()>|<skewX()>|<skewY()>|<matrix3d()>|<translate3d()>|<translateZ()>|<scale3d()>|<scaleZ()>|<rotate3d()>|<rotateX()>|<rotateY()>|<rotateZ()>|<perspective()>",
    "transform-list": "<transform-function>+",
    "translate()": "translate( <length-percentage> , <length-percentage>? )",
    "translate3d()": "translate3d( <length-percentage> , <length-percentage> , <length> )",
    "translateX()": "translateX( <length-percentage> )",
    "translateY()": "translateY( <length-percentage> )",
    "translateZ()": "translateZ( <length> )",
    "type-or-unit": "string|color|url|integer|number|length|angle|time|frequency|cap|ch|em|ex|ic|lh|rlh|rem|vb|vi|vw|vh|vmin|vmax|mm|Q|cm|in|pt|pc|px|deg|grad|rad|turn|ms|s|Hz|kHz|%",
    "type-selector": "<wq-name>|<ns-prefix>? '*'",
    "var()": "var( <custom-property-name> , <declaration-value>? )",
    "viewport-length": "auto|<length-percentage>",
    "visual-box": "content-box|padding-box|border-box",
    "wq-name": "<ns-prefix>? <ident-token>",
    "-legacy-gradient": "<-webkit-gradient()>|<-legacy-linear-gradient>|<-legacy-repeating-linear-gradient>|<-legacy-radial-gradient>|<-legacy-repeating-radial-gradient>",
    "-legacy-linear-gradient": "-moz-linear-gradient( <-legacy-linear-gradient-arguments> )|-webkit-linear-gradient( <-legacy-linear-gradient-arguments> )|-o-linear-gradient( <-legacy-linear-gradient-arguments> )",
    "-legacy-repeating-linear-gradient": "-moz-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )|-webkit-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )|-o-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )",
    "-legacy-linear-gradient-arguments": "[<angle>|<side-or-corner>]? , <color-stop-list>",
    "-legacy-radial-gradient": "-moz-radial-gradient( <-legacy-radial-gradient-arguments> )|-webkit-radial-gradient( <-legacy-radial-gradient-arguments> )|-o-radial-gradient( <-legacy-radial-gradient-arguments> )",
    "-legacy-repeating-radial-gradient": "-moz-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )|-webkit-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )|-o-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )",
    "-legacy-radial-gradient-arguments": "[<position> ,]? [[[<-legacy-radial-gradient-shape>||<-legacy-radial-gradient-size>]|[<length>|<percentage>]{2}] ,]? <color-stop-list>",
    "-legacy-radial-gradient-size": "closest-side|closest-corner|farthest-side|farthest-corner|contain|cover",
    "-legacy-radial-gradient-shape": "circle|ellipse",
    "-non-standard-font": "-apple-system-body|-apple-system-headline|-apple-system-subheadline|-apple-system-caption1|-apple-system-caption2|-apple-system-footnote|-apple-system-short-body|-apple-system-short-headline|-apple-system-short-subheadline|-apple-system-short-caption1|-apple-system-short-footnote|-apple-system-tall-body",
    "-non-standard-color": "-moz-ButtonDefault|-moz-ButtonHoverFace|-moz-ButtonHoverText|-moz-CellHighlight|-moz-CellHighlightText|-moz-Combobox|-moz-ComboboxText|-moz-Dialog|-moz-DialogText|-moz-dragtargetzone|-moz-EvenTreeRow|-moz-Field|-moz-FieldText|-moz-html-CellHighlight|-moz-html-CellHighlightText|-moz-mac-accentdarkestshadow|-moz-mac-accentdarkshadow|-moz-mac-accentface|-moz-mac-accentlightesthighlight|-moz-mac-accentlightshadow|-moz-mac-accentregularhighlight|-moz-mac-accentregularshadow|-moz-mac-chrome-active|-moz-mac-chrome-inactive|-moz-mac-focusring|-moz-mac-menuselect|-moz-mac-menushadow|-moz-mac-menutextselect|-moz-MenuHover|-moz-MenuHoverText|-moz-MenuBarText|-moz-MenuBarHoverText|-moz-nativehyperlinktext|-moz-OddTreeRow|-moz-win-communicationstext|-moz-win-mediatext|-moz-activehyperlinktext|-moz-default-background-color|-moz-default-color|-moz-hyperlinktext|-moz-visitedhyperlinktext|-webkit-activelink|-webkit-focus-ring-color|-webkit-link|-webkit-text",
    "-non-standard-image-rendering": "optimize-contrast|-moz-crisp-edges|-o-crisp-edges|-webkit-optimize-contrast",
    "-non-standard-overflow": "-moz-scrollbars-none|-moz-scrollbars-horizontal|-moz-scrollbars-vertical|-moz-hidden-unscrollable",
    "-non-standard-width": "fill-available|min-intrinsic|intrinsic|-moz-available|-moz-fit-content|-moz-min-content|-moz-max-content|-webkit-min-content|-webkit-max-content",
    "-webkit-gradient()": "-webkit-gradient( <-webkit-gradient-type> , <-webkit-gradient-point> [, <-webkit-gradient-point>|, <-webkit-gradient-radius> , <-webkit-gradient-point>] [, <-webkit-gradient-radius>]? [, <-webkit-gradient-color-stop>]* )",
    "-webkit-gradient-color-stop": "from( <color> )|color-stop( [<number-zero-one>|<percentage>] , <color> )|to( <color> )",
    "-webkit-gradient-point": "[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]",
    "-webkit-gradient-radius": "<length>|<percentage>",
    "-webkit-gradient-type": "linear|radial",
    "-webkit-mask-box-repeat": "repeat|stretch|round",
    "-webkit-mask-clip-style": "border|border-box|padding|padding-box|content|content-box|text",
    "-ms-filter-function-list": "<-ms-filter-function>+",
    "-ms-filter-function": "<-ms-filter-function-progid>|<-ms-filter-function-legacy>",
    "-ms-filter-function-progid": "'progid:' [<ident-token> '.']* [<ident-token>|<function-token> <any-value>? )]",
    "-ms-filter-function-legacy": "<ident-token>|<function-token> <any-value>? )",
    "-ms-filter": "<string>",
    age: "child|young|old",
    "attr-name": "<wq-name>",
    "attr-fallback": "<any-value>",
    "bg-clip": "<box>|border|text",
    bottom: "<length>|auto",
    "generic-voice": "[<age>? <gender> <integer>?]",
    gender: "male|female|neutral",
    left: "<length>|auto",
    "mask-image": "<mask-reference>#",
    paint: "none|<color>|<url> [none|<color>]?|context-fill|context-stroke",
    right: "<length>|auto",
    "scroll-timeline-axis": "block|inline|vertical|horizontal",
    "scroll-timeline-name": "none|<custom-ident>",
    "single-animation-composition": "replace|add|accumulate",
    "svg-length": "<percentage>|<length>|<number>",
    "svg-writing-mode": "lr-tb|rl-tb|tb-rl|lr|rl|tb",
    top: "<length>|auto",
    x: "<number>",
    y: "<number>",
    declaration: "<ident-token> : <declaration-value>? ['!' important]?",
    "declaration-list": "[<declaration>? ';']* <declaration>?",
    url: "url( <string> <url-modifier>* )|<url-token>",
    "url-modifier": "<ident>|<function-token> <any-value> )",
    "number-zero-one": "<number [0,1]>",
    "number-one-or-greater": "<number [1,∞]>",
    "-non-standard-display": "-ms-inline-flexbox|-ms-grid|-ms-inline-grid|-webkit-flex|-webkit-inline-flex|-webkit-box|-webkit-inline-box|-moz-inline-stack|-moz-box|-moz-inline-box"
  },
  properties: {
    "--*": "<declaration-value>",
    "-ms-accelerator": "false|true",
    "-ms-block-progression": "tb|rl|bt|lr",
    "-ms-content-zoom-chaining": "none|chained",
    "-ms-content-zooming": "none|zoom",
    "-ms-content-zoom-limit": "<'-ms-content-zoom-limit-min'> <'-ms-content-zoom-limit-max'>",
    "-ms-content-zoom-limit-max": "<percentage>",
    "-ms-content-zoom-limit-min": "<percentage>",
    "-ms-content-zoom-snap": "<'-ms-content-zoom-snap-type'>||<'-ms-content-zoom-snap-points'>",
    "-ms-content-zoom-snap-points": "snapInterval( <percentage> , <percentage> )|snapList( <percentage># )",
    "-ms-content-zoom-snap-type": "none|proximity|mandatory",
    "-ms-filter": "<string>",
    "-ms-flow-from": "[none|<custom-ident>]#",
    "-ms-flow-into": "[none|<custom-ident>]#",
    "-ms-grid-columns": "none|<track-list>|<auto-track-list>",
    "-ms-grid-rows": "none|<track-list>|<auto-track-list>",
    "-ms-high-contrast-adjust": "auto|none",
    "-ms-hyphenate-limit-chars": "auto|<integer>{1,3}",
    "-ms-hyphenate-limit-lines": "no-limit|<integer>",
    "-ms-hyphenate-limit-zone": "<percentage>|<length>",
    "-ms-ime-align": "auto|after",
    "-ms-overflow-style": "auto|none|scrollbar|-ms-autohiding-scrollbar",
    "-ms-scrollbar-3dlight-color": "<color>",
    "-ms-scrollbar-arrow-color": "<color>",
    "-ms-scrollbar-base-color": "<color>",
    "-ms-scrollbar-darkshadow-color": "<color>",
    "-ms-scrollbar-face-color": "<color>",
    "-ms-scrollbar-highlight-color": "<color>",
    "-ms-scrollbar-shadow-color": "<color>",
    "-ms-scrollbar-track-color": "<color>",
    "-ms-scroll-chaining": "chained|none",
    "-ms-scroll-limit": "<'-ms-scroll-limit-x-min'> <'-ms-scroll-limit-y-min'> <'-ms-scroll-limit-x-max'> <'-ms-scroll-limit-y-max'>",
    "-ms-scroll-limit-x-max": "auto|<length>",
    "-ms-scroll-limit-x-min": "<length>",
    "-ms-scroll-limit-y-max": "auto|<length>",
    "-ms-scroll-limit-y-min": "<length>",
    "-ms-scroll-rails": "none|railed",
    "-ms-scroll-snap-points-x": "snapInterval( <length-percentage> , <length-percentage> )|snapList( <length-percentage># )",
    "-ms-scroll-snap-points-y": "snapInterval( <length-percentage> , <length-percentage> )|snapList( <length-percentage># )",
    "-ms-scroll-snap-type": "none|proximity|mandatory",
    "-ms-scroll-snap-x": "<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-x'>",
    "-ms-scroll-snap-y": "<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-y'>",
    "-ms-scroll-translation": "none|vertical-to-horizontal",
    "-ms-text-autospace": "none|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space",
    "-ms-touch-select": "grippers|none",
    "-ms-user-select": "none|element|text",
    "-ms-wrap-flow": "auto|both|start|end|maximum|clear",
    "-ms-wrap-margin": "<length>",
    "-ms-wrap-through": "wrap|none",
    "-moz-appearance": "none|button|button-arrow-down|button-arrow-next|button-arrow-previous|button-arrow-up|button-bevel|button-focus|caret|checkbox|checkbox-container|checkbox-label|checkmenuitem|dualbutton|groupbox|listbox|listitem|menuarrow|menubar|menucheckbox|menuimage|menuitem|menuitemtext|menulist|menulist-button|menulist-text|menulist-textfield|menupopup|menuradio|menuseparator|meterbar|meterchunk|progressbar|progressbar-vertical|progresschunk|progresschunk-vertical|radio|radio-container|radio-label|radiomenuitem|range|range-thumb|resizer|resizerpanel|scale-horizontal|scalethumbend|scalethumb-horizontal|scalethumbstart|scalethumbtick|scalethumb-vertical|scale-vertical|scrollbarbutton-down|scrollbarbutton-left|scrollbarbutton-right|scrollbarbutton-up|scrollbarthumb-horizontal|scrollbarthumb-vertical|scrollbartrack-horizontal|scrollbartrack-vertical|searchfield|separator|sheet|spinner|spinner-downbutton|spinner-textfield|spinner-upbutton|splitter|statusbar|statusbarpanel|tab|tabpanel|tabpanels|tab-scroll-arrow-back|tab-scroll-arrow-forward|textfield|textfield-multiline|toolbar|toolbarbutton|toolbarbutton-dropdown|toolbargripper|toolbox|tooltip|treeheader|treeheadercell|treeheadersortarrow|treeitem|treeline|treetwisty|treetwistyopen|treeview|-moz-mac-unified-toolbar|-moz-win-borderless-glass|-moz-win-browsertabbar-toolbox|-moz-win-communicationstext|-moz-win-communications-toolbox|-moz-win-exclude-glass|-moz-win-glass|-moz-win-mediatext|-moz-win-media-toolbox|-moz-window-button-box|-moz-window-button-box-maximized|-moz-window-button-close|-moz-window-button-maximize|-moz-window-button-minimize|-moz-window-button-restore|-moz-window-frame-bottom|-moz-window-frame-left|-moz-window-frame-right|-moz-window-titlebar|-moz-window-titlebar-maximized",
    "-moz-binding": "<url>|none",
    "-moz-border-bottom-colors": "<color>+|none",
    "-moz-border-left-colors": "<color>+|none",
    "-moz-border-right-colors": "<color>+|none",
    "-moz-border-top-colors": "<color>+|none",
    "-moz-context-properties": "none|[fill|fill-opacity|stroke|stroke-opacity]#",
    "-moz-float-edge": "border-box|content-box|margin-box|padding-box",
    "-moz-force-broken-image-icon": "0|1",
    "-moz-image-region": "<shape>|auto",
    "-moz-orient": "inline|block|horizontal|vertical",
    "-moz-outline-radius": "<outline-radius>{1,4} [/ <outline-radius>{1,4}]?",
    "-moz-outline-radius-bottomleft": "<outline-radius>",
    "-moz-outline-radius-bottomright": "<outline-radius>",
    "-moz-outline-radius-topleft": "<outline-radius>",
    "-moz-outline-radius-topright": "<outline-radius>",
    "-moz-stack-sizing": "ignore|stretch-to-fit",
    "-moz-text-blink": "none|blink",
    "-moz-user-focus": "ignore|normal|select-after|select-before|select-menu|select-same|select-all|none",
    "-moz-user-input": "auto|none|enabled|disabled",
    "-moz-user-modify": "read-only|read-write|write-only",
    "-moz-window-dragging": "drag|no-drag",
    "-moz-window-shadow": "default|menu|tooltip|sheet|none",
    "-webkit-appearance": "none|button|button-bevel|caps-lock-indicator|caret|checkbox|default-button|inner-spin-button|listbox|listitem|media-controls-background|media-controls-fullscreen-background|media-current-time-display|media-enter-fullscreen-button|media-exit-fullscreen-button|media-fullscreen-button|media-mute-button|media-overlay-play-button|media-play-button|media-seek-back-button|media-seek-forward-button|media-slider|media-sliderthumb|media-time-remaining-display|media-toggle-closed-captions-button|media-volume-slider|media-volume-slider-container|media-volume-sliderthumb|menulist|menulist-button|menulist-text|menulist-textfield|meter|progress-bar|progress-bar-value|push-button|radio|scrollbarbutton-down|scrollbarbutton-left|scrollbarbutton-right|scrollbarbutton-up|scrollbargripper-horizontal|scrollbargripper-vertical|scrollbarthumb-horizontal|scrollbarthumb-vertical|scrollbartrack-horizontal|scrollbartrack-vertical|searchfield|searchfield-cancel-button|searchfield-decoration|searchfield-results-button|searchfield-results-decoration|slider-horizontal|slider-vertical|sliderthumb-horizontal|sliderthumb-vertical|square-button|textarea|textfield|-apple-pay-button",
    "-webkit-border-before": "<'border-width'>||<'border-style'>||<color>",
    "-webkit-border-before-color": "<color>",
    "-webkit-border-before-style": "<'border-style'>",
    "-webkit-border-before-width": "<'border-width'>",
    "-webkit-box-reflect": "[above|below|right|left]? <length>? <image>?",
    "-webkit-line-clamp": "none|<integer>",
    "-webkit-mask": "[<mask-reference>||<position> [/ <bg-size>]?||<repeat-style>||[<box>|border|padding|content|text]||[<box>|border|padding|content]]#",
    "-webkit-mask-attachment": "<attachment>#",
    "-webkit-mask-clip": "[<box>|border|padding|content|text]#",
    "-webkit-mask-composite": "<composite-style>#",
    "-webkit-mask-image": "<mask-reference>#",
    "-webkit-mask-origin": "[<box>|border|padding|content]#",
    "-webkit-mask-position": "<position>#",
    "-webkit-mask-position-x": "[<length-percentage>|left|center|right]#",
    "-webkit-mask-position-y": "[<length-percentage>|top|center|bottom]#",
    "-webkit-mask-repeat": "<repeat-style>#",
    "-webkit-mask-repeat-x": "repeat|no-repeat|space|round",
    "-webkit-mask-repeat-y": "repeat|no-repeat|space|round",
    "-webkit-mask-size": "<bg-size>#",
    "-webkit-overflow-scrolling": "auto|touch",
    "-webkit-tap-highlight-color": "<color>",
    "-webkit-text-fill-color": "<color>",
    "-webkit-text-stroke": "<length>||<color>",
    "-webkit-text-stroke-color": "<color>",
    "-webkit-text-stroke-width": "<length>",
    "-webkit-touch-callout": "default|none",
    "-webkit-user-modify": "read-only|read-write|read-write-plaintext-only",
    "accent-color": "auto|<color>",
    "align-content": "normal|<baseline-position>|<content-distribution>|<overflow-position>? <content-position>",
    "align-items": "normal|stretch|<baseline-position>|[<overflow-position>? <self-position>]",
    "align-self": "auto|normal|stretch|<baseline-position>|<overflow-position>? <self-position>",
    "align-tracks": "[normal|<baseline-position>|<content-distribution>|<overflow-position>? <content-position>]#",
    all: "initial|inherit|unset|revert|revert-layer",
    animation: "<single-animation>#",
    "animation-composition": "<single-animation-composition>#",
    "animation-delay": "<time>#",
    "animation-direction": "<single-animation-direction>#",
    "animation-duration": "<time>#",
    "animation-fill-mode": "<single-animation-fill-mode>#",
    "animation-iteration-count": "<single-animation-iteration-count>#",
    "animation-name": "[none|<keyframes-name>]#",
    "animation-play-state": "<single-animation-play-state>#",
    "animation-timing-function": "<easing-function>#",
    "animation-timeline": "<single-animation-timeline>#",
    appearance: "none|auto|textfield|menulist-button|<compat-auto>",
    "aspect-ratio": "auto|<ratio>",
    azimuth: "<angle>|[[left-side|far-left|left|center-left|center|center-right|right|far-right|right-side]||behind]|leftwards|rightwards",
    "backdrop-filter": "none|<filter-function-list>",
    "backface-visibility": "visible|hidden",
    background: "[<bg-layer> ,]* <final-bg-layer>",
    "background-attachment": "<attachment>#",
    "background-blend-mode": "<blend-mode>#",
    "background-clip": "<bg-clip>#",
    "background-color": "<color>",
    "background-image": "<bg-image>#",
    "background-origin": "<box>#",
    "background-position": "<bg-position>#",
    "background-position-x": "[center|[[left|right|x-start|x-end]? <length-percentage>?]!]#",
    "background-position-y": "[center|[[top|bottom|y-start|y-end]? <length-percentage>?]!]#",
    "background-repeat": "<repeat-style>#",
    "background-size": "<bg-size>#",
    "block-overflow": "clip|ellipsis|<string>",
    "block-size": "<'width'>",
    border: "<line-width>||<line-style>||<color>",
    "border-block": "<'border-top-width'>||<'border-top-style'>||<color>",
    "border-block-color": "<'border-top-color'>{1,2}",
    "border-block-style": "<'border-top-style'>",
    "border-block-width": "<'border-top-width'>",
    "border-block-end": "<'border-top-width'>||<'border-top-style'>||<color>",
    "border-block-end-color": "<'border-top-color'>",
    "border-block-end-style": "<'border-top-style'>",
    "border-block-end-width": "<'border-top-width'>",
    "border-block-start": "<'border-top-width'>||<'border-top-style'>||<color>",
    "border-block-start-color": "<'border-top-color'>",
    "border-block-start-style": "<'border-top-style'>",
    "border-block-start-width": "<'border-top-width'>",
    "border-bottom": "<line-width>||<line-style>||<color>",
    "border-bottom-color": "<'border-top-color'>",
    "border-bottom-left-radius": "<length-percentage>{1,2}",
    "border-bottom-right-radius": "<length-percentage>{1,2}",
    "border-bottom-style": "<line-style>",
    "border-bottom-width": "<line-width>",
    "border-collapse": "collapse|separate",
    "border-color": "<color>{1,4}",
    "border-end-end-radius": "<length-percentage>{1,2}",
    "border-end-start-radius": "<length-percentage>{1,2}",
    "border-image": "<'border-image-source'>||<'border-image-slice'> [/ <'border-image-width'>|/ <'border-image-width'>? / <'border-image-outset'>]?||<'border-image-repeat'>",
    "border-image-outset": "[<length>|<number>]{1,4}",
    "border-image-repeat": "[stretch|repeat|round|space]{1,2}",
    "border-image-slice": "<number-percentage>{1,4}&&fill?",
    "border-image-source": "none|<image>",
    "border-image-width": "[<length-percentage>|<number>|auto]{1,4}",
    "border-inline": "<'border-top-width'>||<'border-top-style'>||<color>",
    "border-inline-end": "<'border-top-width'>||<'border-top-style'>||<color>",
    "border-inline-color": "<'border-top-color'>{1,2}",
    "border-inline-style": "<'border-top-style'>",
    "border-inline-width": "<'border-top-width'>",
    "border-inline-end-color": "<'border-top-color'>",
    "border-inline-end-style": "<'border-top-style'>",
    "border-inline-end-width": "<'border-top-width'>",
    "border-inline-start": "<'border-top-width'>||<'border-top-style'>||<color>",
    "border-inline-start-color": "<'border-top-color'>",
    "border-inline-start-style": "<'border-top-style'>",
    "border-inline-start-width": "<'border-top-width'>",
    "border-left": "<line-width>||<line-style>||<color>",
    "border-left-color": "<color>",
    "border-left-style": "<line-style>",
    "border-left-width": "<line-width>",
    "border-radius": "<length-percentage>{1,4} [/ <length-percentage>{1,4}]?",
    "border-right": "<line-width>||<line-style>||<color>",
    "border-right-color": "<color>",
    "border-right-style": "<line-style>",
    "border-right-width": "<line-width>",
    "border-spacing": "<length> <length>?",
    "border-start-end-radius": "<length-percentage>{1,2}",
    "border-start-start-radius": "<length-percentage>{1,2}",
    "border-style": "<line-style>{1,4}",
    "border-top": "<line-width>||<line-style>||<color>",
    "border-top-color": "<color>",
    "border-top-left-radius": "<length-percentage>{1,2}",
    "border-top-right-radius": "<length-percentage>{1,2}",
    "border-top-style": "<line-style>",
    "border-top-width": "<line-width>",
    "border-width": "<line-width>{1,4}",
    bottom: "<length>|<percentage>|auto",
    "box-align": "start|center|end|baseline|stretch",
    "box-decoration-break": "slice|clone",
    "box-direction": "normal|reverse|inherit",
    "box-flex": "<number>",
    "box-flex-group": "<integer>",
    "box-lines": "single|multiple",
    "box-ordinal-group": "<integer>",
    "box-orient": "horizontal|vertical|inline-axis|block-axis|inherit",
    "box-pack": "start|center|end|justify",
    "box-shadow": "none|<shadow>#",
    "box-sizing": "content-box|border-box",
    "break-after": "auto|avoid|always|all|avoid-page|page|left|right|recto|verso|avoid-column|column|avoid-region|region",
    "break-before": "auto|avoid|always|all|avoid-page|page|left|right|recto|verso|avoid-column|column|avoid-region|region",
    "break-inside": "auto|avoid|avoid-page|avoid-column|avoid-region",
    "caption-side": "top|bottom|block-start|block-end|inline-start|inline-end",
    caret: "<'caret-color'>||<'caret-shape'>",
    "caret-color": "auto|<color>",
    "caret-shape": "auto|bar|block|underscore",
    clear: "none|left|right|both|inline-start|inline-end",
    clip: "<shape>|auto",
    "clip-path": "<clip-source>|[<basic-shape>||<geometry-box>]|none",
    color: "<color>",
    "print-color-adjust": "economy|exact",
    "color-scheme": "normal|[light|dark|<custom-ident>]+&&only?",
    "column-count": "<integer>|auto",
    "column-fill": "auto|balance|balance-all",
    "column-gap": "normal|<length-percentage>",
    "column-rule": "<'column-rule-width'>||<'column-rule-style'>||<'column-rule-color'>",
    "column-rule-color": "<color>",
    "column-rule-style": "<'border-style'>",
    "column-rule-width": "<'border-width'>",
    "column-span": "none|all",
    "column-width": "<length>|auto",
    columns: "<'column-width'>||<'column-count'>",
    contain: "none|strict|content|[[size||inline-size]||layout||style||paint]",
    "contain-intrinsic-size": "[none|<length>|auto <length>]{1,2}",
    "contain-intrinsic-block-size": "none|<length>|auto <length>",
    "contain-intrinsic-height": "none|<length>|auto <length>",
    "contain-intrinsic-inline-size": "none|<length>|auto <length>",
    "contain-intrinsic-width": "none|<length>|auto <length>",
    content: "normal|none|[<content-replacement>|<content-list>] [/ [<string>|<counter>]+]?",
    "content-visibility": "visible|auto|hidden",
    "counter-increment": "[<counter-name> <integer>?]+|none",
    "counter-reset": "[<counter-name> <integer>?|<reversed-counter-name> <integer>?]+|none",
    "counter-set": "[<counter-name> <integer>?]+|none",
    cursor: "[[<url> [<x> <y>]? ,]* [auto|default|none|context-menu|help|pointer|progress|wait|cell|crosshair|text|vertical-text|alias|copy|move|no-drop|not-allowed|e-resize|n-resize|ne-resize|nw-resize|s-resize|se-resize|sw-resize|w-resize|ew-resize|ns-resize|nesw-resize|nwse-resize|col-resize|row-resize|all-scroll|zoom-in|zoom-out|grab|grabbing|hand|-webkit-grab|-webkit-grabbing|-webkit-zoom-in|-webkit-zoom-out|-moz-grab|-moz-grabbing|-moz-zoom-in|-moz-zoom-out]]",
    direction: "ltr|rtl",
    display: "[<display-outside>||<display-inside>]|<display-listitem>|<display-internal>|<display-box>|<display-legacy>|<-non-standard-display>",
    "empty-cells": "show|hide",
    filter: "none|<filter-function-list>|<-ms-filter-function-list>",
    flex: "none|[<'flex-grow'> <'flex-shrink'>?||<'flex-basis'>]",
    "flex-basis": "content|<'width'>",
    "flex-direction": "row|row-reverse|column|column-reverse",
    "flex-flow": "<'flex-direction'>||<'flex-wrap'>",
    "flex-grow": "<number>",
    "flex-shrink": "<number>",
    "flex-wrap": "nowrap|wrap|wrap-reverse",
    float: "left|right|none|inline-start|inline-end",
    font: "[[<'font-style'>||<font-variant-css21>||<'font-weight'>||<'font-stretch'>]? <'font-size'> [/ <'line-height'>]? <'font-family'>]|caption|icon|menu|message-box|small-caption|status-bar",
    "font-family": "[<family-name>|<generic-family>]#",
    "font-feature-settings": "normal|<feature-tag-value>#",
    "font-kerning": "auto|normal|none",
    "font-language-override": "normal|<string>",
    "font-optical-sizing": "auto|none",
    "font-variation-settings": "normal|[<string> <number>]#",
    "font-size": "<absolute-size>|<relative-size>|<length-percentage>",
    "font-size-adjust": "none|[ex-height|cap-height|ch-width|ic-width|ic-height]? [from-font|<number>]",
    "font-smooth": "auto|never|always|<absolute-size>|<length>",
    "font-stretch": "<font-stretch-absolute>",
    "font-style": "normal|italic|oblique <angle>?",
    "font-synthesis": "none|[weight||style||small-caps]",
    "font-variant": "normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>||stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )||[small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps]||<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero||<east-asian-variant-values>||<east-asian-width-values>||ruby]",
    "font-variant-alternates": "normal|[stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )]",
    "font-variant-caps": "normal|small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps",
    "font-variant-east-asian": "normal|[<east-asian-variant-values>||<east-asian-width-values>||ruby]",
    "font-variant-ligatures": "normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>]",
    "font-variant-numeric": "normal|[<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero]",
    "font-variant-position": "normal|sub|super",
    "font-weight": "<font-weight-absolute>|bolder|lighter",
    "forced-color-adjust": "auto|none",
    gap: "<'row-gap'> <'column-gap'>?",
    grid: "<'grid-template'>|<'grid-template-rows'> / [auto-flow&&dense?] <'grid-auto-columns'>?|[auto-flow&&dense?] <'grid-auto-rows'>? / <'grid-template-columns'>",
    "grid-area": "<grid-line> [/ <grid-line>]{0,3}",
    "grid-auto-columns": "<track-size>+",
    "grid-auto-flow": "[row|column]||dense",
    "grid-auto-rows": "<track-size>+",
    "grid-column": "<grid-line> [/ <grid-line>]?",
    "grid-column-end": "<grid-line>",
    "grid-column-gap": "<length-percentage>",
    "grid-column-start": "<grid-line>",
    "grid-gap": "<'grid-row-gap'> <'grid-column-gap'>?",
    "grid-row": "<grid-line> [/ <grid-line>]?",
    "grid-row-end": "<grid-line>",
    "grid-row-gap": "<length-percentage>",
    "grid-row-start": "<grid-line>",
    "grid-template": "none|[<'grid-template-rows'> / <'grid-template-columns'>]|[<line-names>? <string> <track-size>? <line-names>?]+ [/ <explicit-track-list>]?",
    "grid-template-areas": "none|<string>+",
    "grid-template-columns": "none|<track-list>|<auto-track-list>|subgrid <line-name-list>?",
    "grid-template-rows": "none|<track-list>|<auto-track-list>|subgrid <line-name-list>?",
    "hanging-punctuation": "none|[first||[force-end|allow-end]||last]",
    height: "auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )",
    "hyphenate-character": "auto|<string>",
    hyphens: "none|manual|auto",
    "image-orientation": "from-image|<angle>|[<angle>? flip]",
    "image-rendering": "auto|crisp-edges|pixelated|optimizeSpeed|optimizeQuality|<-non-standard-image-rendering>",
    "image-resolution": "[from-image||<resolution>]&&snap?",
    "ime-mode": "auto|normal|active|inactive|disabled",
    "initial-letter": "normal|[<number> <integer>?]",
    "initial-letter-align": "[auto|alphabetic|hanging|ideographic]",
    "inline-size": "<'width'>",
    "input-security": "auto|none",
    inset: "<'top'>{1,4}",
    "inset-block": "<'top'>{1,2}",
    "inset-block-end": "<'top'>",
    "inset-block-start": "<'top'>",
    "inset-inline": "<'top'>{1,2}",
    "inset-inline-end": "<'top'>",
    "inset-inline-start": "<'top'>",
    isolation: "auto|isolate",
    "justify-content": "normal|<content-distribution>|<overflow-position>? [<content-position>|left|right]",
    "justify-items": "normal|stretch|<baseline-position>|<overflow-position>? [<self-position>|left|right]|legacy|legacy&&[left|right|center]",
    "justify-self": "auto|normal|stretch|<baseline-position>|<overflow-position>? [<self-position>|left|right]",
    "justify-tracks": "[normal|<content-distribution>|<overflow-position>? [<content-position>|left|right]]#",
    left: "<length>|<percentage>|auto",
    "letter-spacing": "normal|<length-percentage>",
    "line-break": "auto|loose|normal|strict|anywhere",
    "line-clamp": "none|<integer>",
    "line-height": "normal|<number>|<length>|<percentage>",
    "line-height-step": "<length>",
    "list-style": "<'list-style-type'>||<'list-style-position'>||<'list-style-image'>",
    "list-style-image": "<image>|none",
    "list-style-position": "inside|outside",
    "list-style-type": "<counter-style>|<string>|none",
    margin: "[<length>|<percentage>|auto]{1,4}",
    "margin-block": "<'margin-left'>{1,2}",
    "margin-block-end": "<'margin-left'>",
    "margin-block-start": "<'margin-left'>",
    "margin-bottom": "<length>|<percentage>|auto",
    "margin-inline": "<'margin-left'>{1,2}",
    "margin-inline-end": "<'margin-left'>",
    "margin-inline-start": "<'margin-left'>",
    "margin-left": "<length>|<percentage>|auto",
    "margin-right": "<length>|<percentage>|auto",
    "margin-top": "<length>|<percentage>|auto",
    "margin-trim": "none|in-flow|all",
    mask: "<mask-layer>#",
    "mask-border": "<'mask-border-source'>||<'mask-border-slice'> [/ <'mask-border-width'>? [/ <'mask-border-outset'>]?]?||<'mask-border-repeat'>||<'mask-border-mode'>",
    "mask-border-mode": "luminance|alpha",
    "mask-border-outset": "[<length>|<number>]{1,4}",
    "mask-border-repeat": "[stretch|repeat|round|space]{1,2}",
    "mask-border-slice": "<number-percentage>{1,4} fill?",
    "mask-border-source": "none|<image>",
    "mask-border-width": "[<length-percentage>|<number>|auto]{1,4}",
    "mask-clip": "[<geometry-box>|no-clip]#",
    "mask-composite": "<compositing-operator>#",
    "mask-image": "<mask-reference>#",
    "mask-mode": "<masking-mode>#",
    "mask-origin": "<geometry-box>#",
    "mask-position": "<position>#",
    "mask-repeat": "<repeat-style>#",
    "mask-size": "<bg-size>#",
    "mask-type": "luminance|alpha",
    "masonry-auto-flow": "[pack|next]||[definite-first|ordered]",
    "math-depth": "auto-add|add( <integer> )|<integer>",
    "math-shift": "normal|compact",
    "math-style": "normal|compact",
    "max-block-size": "<'max-width'>",
    "max-height": "none|<length-percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )",
    "max-inline-size": "<'max-width'>",
    "max-lines": "none|<integer>",
    "max-width": "none|<length-percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )|<-non-standard-width>",
    "min-block-size": "<'min-width'>",
    "min-height": "auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )",
    "min-inline-size": "<'min-width'>",
    "min-width": "auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )|<-non-standard-width>",
    "mix-blend-mode": "<blend-mode>|plus-lighter",
    "object-fit": "fill|contain|cover|none|scale-down",
    "object-position": "<position>",
    offset: "[<'offset-position'>? [<'offset-path'> [<'offset-distance'>||<'offset-rotate'>]?]?]! [/ <'offset-anchor'>]?",
    "offset-anchor": "auto|<position>",
    "offset-distance": "<length-percentage>",
    "offset-path": "none|ray( [<angle>&&<size>&&contain?] )|<path()>|<url>|[<basic-shape>||<geometry-box>]",
    "offset-position": "auto|<position>",
    "offset-rotate": "[auto|reverse]||<angle>",
    opacity: "<alpha-value>",
    order: "<integer>",
    orphans: "<integer>",
    outline: "[<'outline-color'>||<'outline-style'>||<'outline-width'>]",
    "outline-color": "<color>|invert",
    "outline-offset": "<length>",
    "outline-style": "auto|<'border-style'>",
    "outline-width": "<line-width>",
    overflow: "[visible|hidden|clip|scroll|auto]{1,2}|<-non-standard-overflow>",
    "overflow-anchor": "auto|none",
    "overflow-block": "visible|hidden|clip|scroll|auto",
    "overflow-clip-box": "padding-box|content-box",
    "overflow-clip-margin": "<visual-box>||<length [0,∞]>",
    "overflow-inline": "visible|hidden|clip|scroll|auto",
    "overflow-wrap": "normal|break-word|anywhere",
    "overflow-x": "visible|hidden|clip|scroll|auto",
    "overflow-y": "visible|hidden|clip|scroll|auto",
    "overscroll-behavior": "[contain|none|auto]{1,2}",
    "overscroll-behavior-block": "contain|none|auto",
    "overscroll-behavior-inline": "contain|none|auto",
    "overscroll-behavior-x": "contain|none|auto",
    "overscroll-behavior-y": "contain|none|auto",
    padding: "[<length>|<percentage>]{1,4}",
    "padding-block": "<'padding-left'>{1,2}",
    "padding-block-end": "<'padding-left'>",
    "padding-block-start": "<'padding-left'>",
    "padding-bottom": "<length>|<percentage>",
    "padding-inline": "<'padding-left'>{1,2}",
    "padding-inline-end": "<'padding-left'>",
    "padding-inline-start": "<'padding-left'>",
    "padding-left": "<length>|<percentage>",
    "padding-right": "<length>|<percentage>",
    "padding-top": "<length>|<percentage>",
    "page-break-after": "auto|always|avoid|left|right|recto|verso",
    "page-break-before": "auto|always|avoid|left|right|recto|verso",
    "page-break-inside": "auto|avoid",
    "paint-order": "normal|[fill||stroke||markers]",
    perspective: "none|<length>",
    "perspective-origin": "<position>",
    "place-content": "<'align-content'> <'justify-content'>?",
    "place-items": "<'align-items'> <'justify-items'>?",
    "place-self": "<'align-self'> <'justify-self'>?",
    "pointer-events": "auto|none|visiblePainted|visibleFill|visibleStroke|visible|painted|fill|stroke|all|inherit",
    position: "static|relative|absolute|sticky|fixed|-webkit-sticky",
    quotes: "none|auto|[<string> <string>]+",
    resize: "none|both|horizontal|vertical|block|inline",
    right: "<length>|<percentage>|auto",
    rotate: "none|<angle>|[x|y|z|<number>{3}]&&<angle>",
    "row-gap": "normal|<length-percentage>",
    "ruby-align": "start|center|space-between|space-around",
    "ruby-merge": "separate|collapse|auto",
    "ruby-position": "[alternate||[over|under]]|inter-character",
    scale: "none|<number>{1,3}",
    "scrollbar-color": "auto|<color>{2}",
    "scrollbar-gutter": "auto|stable&&both-edges?",
    "scrollbar-width": "auto|thin|none",
    "scroll-behavior": "auto|smooth",
    "scroll-margin": "<length>{1,4}",
    "scroll-margin-block": "<length>{1,2}",
    "scroll-margin-block-start": "<length>",
    "scroll-margin-block-end": "<length>",
    "scroll-margin-bottom": "<length>",
    "scroll-margin-inline": "<length>{1,2}",
    "scroll-margin-inline-start": "<length>",
    "scroll-margin-inline-end": "<length>",
    "scroll-margin-left": "<length>",
    "scroll-margin-right": "<length>",
    "scroll-margin-top": "<length>",
    "scroll-padding": "[auto|<length-percentage>]{1,4}",
    "scroll-padding-block": "[auto|<length-percentage>]{1,2}",
    "scroll-padding-block-start": "auto|<length-percentage>",
    "scroll-padding-block-end": "auto|<length-percentage>",
    "scroll-padding-bottom": "auto|<length-percentage>",
    "scroll-padding-inline": "[auto|<length-percentage>]{1,2}",
    "scroll-padding-inline-start": "auto|<length-percentage>",
    "scroll-padding-inline-end": "auto|<length-percentage>",
    "scroll-padding-left": "auto|<length-percentage>",
    "scroll-padding-right": "auto|<length-percentage>",
    "scroll-padding-top": "auto|<length-percentage>",
    "scroll-snap-align": "[none|start|end|center]{1,2}",
    "scroll-snap-coordinate": "none|<position>#",
    "scroll-snap-destination": "<position>",
    "scroll-snap-points-x": "none|repeat( <length-percentage> )",
    "scroll-snap-points-y": "none|repeat( <length-percentage> )",
    "scroll-snap-stop": "normal|always",
    "scroll-snap-type": "none|[x|y|block|inline|both] [mandatory|proximity]?",
    "scroll-snap-type-x": "none|mandatory|proximity",
    "scroll-snap-type-y": "none|mandatory|proximity",
    "scroll-timeline": "<scroll-timeline-name>||<scroll-timeline-axis>",
    "scroll-timeline-axis": "block|inline|vertical|horizontal",
    "scroll-timeline-name": "none|<custom-ident>",
    "shape-image-threshold": "<alpha-value>",
    "shape-margin": "<length-percentage>",
    "shape-outside": "none|[<shape-box>||<basic-shape>]|<image>",
    "tab-size": "<integer>|<length>",
    "table-layout": "auto|fixed",
    "text-align": "start|end|left|right|center|justify|match-parent",
    "text-align-last": "auto|start|end|left|right|center|justify",
    "text-combine-upright": "none|all|[digits <integer>?]",
    "text-decoration": "<'text-decoration-line'>||<'text-decoration-style'>||<'text-decoration-color'>||<'text-decoration-thickness'>",
    "text-decoration-color": "<color>",
    "text-decoration-line": "none|[underline||overline||line-through||blink]|spelling-error|grammar-error",
    "text-decoration-skip": "none|[objects||[spaces|[leading-spaces||trailing-spaces]]||edges||box-decoration]",
    "text-decoration-skip-ink": "auto|all|none",
    "text-decoration-style": "solid|double|dotted|dashed|wavy",
    "text-decoration-thickness": "auto|from-font|<length>|<percentage>",
    "text-emphasis": "<'text-emphasis-style'>||<'text-emphasis-color'>",
    "text-emphasis-color": "<color>",
    "text-emphasis-position": "[over|under]&&[right|left]",
    "text-emphasis-style": "none|[[filled|open]||[dot|circle|double-circle|triangle|sesame]]|<string>",
    "text-indent": "<length-percentage>&&hanging?&&each-line?",
    "text-justify": "auto|inter-character|inter-word|none",
    "text-orientation": "mixed|upright|sideways",
    "text-overflow": "[clip|ellipsis|<string>]{1,2}",
    "text-rendering": "auto|optimizeSpeed|optimizeLegibility|geometricPrecision",
    "text-shadow": "none|<shadow-t>#",
    "text-size-adjust": "none|auto|<percentage>",
    "text-transform": "none|capitalize|uppercase|lowercase|full-width|full-size-kana",
    "text-underline-offset": "auto|<length>|<percentage>",
    "text-underline-position": "auto|from-font|[under||[left|right]]",
    top: "<length>|<percentage>|auto",
    "touch-action": "auto|none|[[pan-x|pan-left|pan-right]||[pan-y|pan-up|pan-down]||pinch-zoom]|manipulation",
    transform: "none|<transform-list>",
    "transform-box": "content-box|border-box|fill-box|stroke-box|view-box",
    "transform-origin": "[<length-percentage>|left|center|right|top|bottom]|[[<length-percentage>|left|center|right]&&[<length-percentage>|top|center|bottom]] <length>?",
    "transform-style": "flat|preserve-3d",
    transition: "<single-transition>#",
    "transition-delay": "<time>#",
    "transition-duration": "<time>#",
    "transition-property": "none|<single-transition-property>#",
    "transition-timing-function": "<easing-function>#",
    translate: "none|<length-percentage> [<length-percentage> <length>?]?",
    "unicode-bidi": "normal|embed|isolate|bidi-override|isolate-override|plaintext|-moz-isolate|-moz-isolate-override|-moz-plaintext|-webkit-isolate|-webkit-isolate-override|-webkit-plaintext",
    "user-select": "auto|text|none|contain|all",
    "vertical-align": "baseline|sub|super|text-top|text-bottom|middle|top|bottom|<percentage>|<length>",
    visibility: "visible|hidden|collapse",
    "white-space": "normal|pre|nowrap|pre-wrap|pre-line|break-spaces",
    widows: "<integer>",
    width: "auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )|fill|stretch|intrinsic|-moz-max-content|-webkit-max-content|-moz-fit-content|-webkit-fit-content",
    "will-change": "auto|<animateable-feature>#",
    "word-break": "normal|break-all|keep-all|break-word",
    "word-spacing": "normal|<length>",
    "word-wrap": "normal|break-word",
    "writing-mode": "horizontal-tb|vertical-rl|vertical-lr|sideways-rl|sideways-lr|<svg-writing-mode>",
    "z-index": "auto|<integer>",
    zoom: "normal|reset|<number>|<percentage>",
    "-moz-background-clip": "padding|border",
    "-moz-border-radius-bottomleft": "<'border-bottom-left-radius'>",
    "-moz-border-radius-bottomright": "<'border-bottom-right-radius'>",
    "-moz-border-radius-topleft": "<'border-top-left-radius'>",
    "-moz-border-radius-topright": "<'border-bottom-right-radius'>",
    "-moz-control-character-visibility": "visible|hidden",
    "-moz-osx-font-smoothing": "auto|grayscale",
    "-moz-user-select": "none|text|all|-moz-none",
    "-ms-flex-align": "start|end|center|baseline|stretch",
    "-ms-flex-item-align": "auto|start|end|center|baseline|stretch",
    "-ms-flex-line-pack": "start|end|center|justify|distribute|stretch",
    "-ms-flex-negative": "<'flex-shrink'>",
    "-ms-flex-pack": "start|end|center|justify|distribute",
    "-ms-flex-order": "<integer>",
    "-ms-flex-positive": "<'flex-grow'>",
    "-ms-flex-preferred-size": "<'flex-basis'>",
    "-ms-interpolation-mode": "nearest-neighbor|bicubic",
    "-ms-grid-column-align": "start|end|center|stretch",
    "-ms-grid-row-align": "start|end|center|stretch",
    "-ms-hyphenate-limit-last": "none|always|column|page|spread",
    "-webkit-background-clip": "[<box>|border|padding|content|text]#",
    "-webkit-column-break-after": "always|auto|avoid",
    "-webkit-column-break-before": "always|auto|avoid",
    "-webkit-column-break-inside": "always|auto|avoid",
    "-webkit-font-smoothing": "auto|none|antialiased|subpixel-antialiased",
    "-webkit-mask-box-image": "[<url>|<gradient>|none] [<length-percentage>{4} <-webkit-mask-box-repeat>{2}]?",
    "-webkit-print-color-adjust": "economy|exact",
    "-webkit-text-security": "none|circle|disc|square",
    "-webkit-user-drag": "none|element|auto",
    "-webkit-user-select": "auto|none|text|all",
    "alignment-baseline": "auto|baseline|before-edge|text-before-edge|middle|central|after-edge|text-after-edge|ideographic|alphabetic|hanging|mathematical",
    "baseline-shift": "baseline|sub|super|<svg-length>",
    behavior: "<url>+",
    "clip-rule": "nonzero|evenodd",
    cue: "<'cue-before'> <'cue-after'>?",
    "cue-after": "<url> <decibel>?|none",
    "cue-before": "<url> <decibel>?|none",
    "dominant-baseline": "auto|use-script|no-change|reset-size|ideographic|alphabetic|hanging|mathematical|central|middle|text-after-edge|text-before-edge",
    fill: "<paint>",
    "fill-opacity": "<number-zero-one>",
    "fill-rule": "nonzero|evenodd",
    "glyph-orientation-horizontal": "<angle>",
    "glyph-orientation-vertical": "<angle>",
    kerning: "auto|<svg-length>",
    marker: "none|<url>",
    "marker-end": "none|<url>",
    "marker-mid": "none|<url>",
    "marker-start": "none|<url>",
    pause: "<'pause-before'> <'pause-after'>?",
    "pause-after": "<time>|none|x-weak|weak|medium|strong|x-strong",
    "pause-before": "<time>|none|x-weak|weak|medium|strong|x-strong",
    rest: "<'rest-before'> <'rest-after'>?",
    "rest-after": "<time>|none|x-weak|weak|medium|strong|x-strong",
    "rest-before": "<time>|none|x-weak|weak|medium|strong|x-strong",
    "shape-rendering": "auto|optimizeSpeed|crispEdges|geometricPrecision",
    src: "[<url> [format( <string># )]?|local( <family-name> )]#",
    speak: "auto|none|normal",
    "speak-as": "normal|spell-out||digits||[literal-punctuation|no-punctuation]",
    stroke: "<paint>",
    "stroke-dasharray": "none|[<svg-length>+]#",
    "stroke-dashoffset": "<svg-length>",
    "stroke-linecap": "butt|round|square",
    "stroke-linejoin": "miter|round|bevel",
    "stroke-miterlimit": "<number-one-or-greater>",
    "stroke-opacity": "<number-zero-one>",
    "stroke-width": "<svg-length>",
    "text-anchor": "start|middle|end",
    "unicode-range": "<urange>#",
    "voice-balance": "<number>|left|center|right|leftwards|rightwards",
    "voice-duration": "auto|<time>",
    "voice-family": "[[<family-name>|<generic-voice>] ,]* [<family-name>|<generic-voice>]|preserve",
    "voice-pitch": "<frequency>&&absolute|[[x-low|low|medium|high|x-high]||[<frequency>|<semitones>|<percentage>]]",
    "voice-range": "<frequency>&&absolute|[[x-low|low|medium|high|x-high]||[<frequency>|<semitones>|<percentage>]]",
    "voice-rate": "[normal|x-slow|slow|medium|fast|x-fast]||<percentage>",
    "voice-stress": "normal|strong|moderate|none|reduced",
    "voice-volume": "silent|[[x-soft|soft|medium|loud|x-loud]||<decibel>]"
  },
  atrules: {
    charset: {
      prelude: "<string>",
      descriptors: null
    },
    "counter-style": {
      prelude: "<counter-style-name>",
      descriptors: {
        "additive-symbols": "[<integer>&&<symbol>]#",
        fallback: "<counter-style-name>",
        negative: "<symbol> <symbol>?",
        pad: "<integer>&&<symbol>",
        prefix: "<symbol>",
        range: "[[<integer>|infinite]{2}]#|auto",
        "speak-as": "auto|bullets|numbers|words|spell-out|<counter-style-name>",
        suffix: "<symbol>",
        symbols: "<symbol>+",
        system: "cyclic|numeric|alphabetic|symbolic|additive|[fixed <integer>?]|[extends <counter-style-name>]"
      }
    },
    document: {
      prelude: "[<url>|url-prefix( <string> )|domain( <string> )|media-document( <string> )|regexp( <string> )]#",
      descriptors: null
    },
    "font-face": {
      prelude: null,
      descriptors: {
        "ascent-override": "normal|<percentage>",
        "descent-override": "normal|<percentage>",
        "font-display": "[auto|block|swap|fallback|optional]",
        "font-family": "<family-name>",
        "font-feature-settings": "normal|<feature-tag-value>#",
        "font-variation-settings": "normal|[<string> <number>]#",
        "font-stretch": "<font-stretch-absolute>{1,2}",
        "font-style": "normal|italic|oblique <angle>{0,2}",
        "font-weight": "<font-weight-absolute>{1,2}",
        "font-variant": "normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>||stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )||[small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps]||<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero||<east-asian-variant-values>||<east-asian-width-values>||ruby]",
        "line-gap-override": "normal|<percentage>",
        "size-adjust": "<percentage>",
        src: "[<url> [format( <string># )]?|local( <family-name> )]#",
        "unicode-range": "<urange>#"
      }
    },
    "font-feature-values": {
      prelude: "<family-name>#",
      descriptors: null
    },
    import: {
      prelude: "[<string>|<url>] [layer|layer( <layer-name> )]? [supports( [<supports-condition>|<declaration>] )]? <media-query-list>?",
      descriptors: null
    },
    keyframes: {
      prelude: "<keyframes-name>",
      descriptors: null
    },
    layer: {
      prelude: "[<layer-name>#|<layer-name>?]",
      descriptors: null
    },
    media: {
      prelude: "<media-query-list>",
      descriptors: null
    },
    namespace: {
      prelude: "<namespace-prefix>? [<string>|<url>]",
      descriptors: null
    },
    page: {
      prelude: "<page-selector-list>",
      descriptors: {
        bleed: "auto|<length>",
        marks: "none|[crop||cross]",
        size: "<length>{1,2}|auto|[<page-size>||[portrait|landscape]]"
      }
    },
    property: {
      prelude: "<custom-property-name>",
      descriptors: {
        syntax: "<string>",
        inherits: "true|false",
        "initial-value": "<string>"
      }
    },
    "scroll-timeline": {
      prelude: "<timeline-name>",
      descriptors: null
    },
    supports: {
      prelude: "<supports-condition>",
      descriptors: null
    },
    viewport: {
      prelude: null,
      descriptors: {
        height: "<viewport-length>{1,2}",
        "max-height": "<viewport-length>",
        "max-width": "<viewport-length>",
        "max-zoom": "auto|<number>|<percentage>",
        "min-height": "<viewport-length>",
        "min-width": "<viewport-length>",
        "min-zoom": "auto|<number>|<percentage>",
        orientation: "auto|portrait|landscape",
        "user-zoom": "zoom|fixed",
        "viewport-fit": "auto|contain|cover",
        width: "<viewport-length>{1,2}",
        zoom: "auto|<number>|<percentage>"
      }
    },
    nest: {
      prelude: "<complex-selector-list>",
      descriptors: null
    }
  }
}, ap = 43, go = 45, zP = 110, Td = !0, W5t = !1;
function GP(e, t) {
  let r = this.tokenStart + e;
  const i = this.charCodeAt(r);
  for ((i === ap || i === go) && (t && this.error("Number sign is not allowed"), r++); r < this.tokenEnd; r++)
    ss(this.charCodeAt(r)) || this.error("Integer is expected", r);
}
function vy(e) {
  return GP.call(this, 0, e);
}
function lh(e, t) {
  if (!this.cmpChar(this.tokenStart + e, t)) {
    let r = "";
    switch (t) {
      case zP:
        r = "N is expected";
        break;
      case go:
        r = "HyphenMinus is expected";
        break;
    }
    this.error(r, this.tokenStart + e);
  }
}
function rB() {
  let e = 0, t = 0, r = this.tokenType;
  for (; r === Zi || r === Ss; )
    r = this.lookupType(++e);
  if (r !== yr)
    if (this.isDelim(ap, e) || this.isDelim(go, e)) {
      t = this.isDelim(ap, e) ? ap : go;
      do
        r = this.lookupType(++e);
      while (r === Zi || r === Ss);
      r !== yr && (this.skip(e), vy.call(this, Td));
    } else
      return null;
  return e > 0 && this.skip(e), t === 0 && (r = this.charCodeAt(this.tokenStart), r !== ap && r !== go && this.error("Number sign is expected")), vy.call(this, t !== 0), t === go ? "-" + this.consume(yr) : this.consume(yr);
}
const H5t = "AnPlusB", K5t = {
  a: [String, null],
  b: [String, null]
};
function eve() {
  const e = this.tokenStart;
  let t = null, r = null;
  if (this.tokenType === yr)
    vy.call(this, W5t), r = this.consume(yr);
  else if (this.tokenType === Nt && this.cmpChar(this.tokenStart, go))
    switch (t = "-1", lh.call(this, 1, zP), this.tokenEnd - this.tokenStart) {
      case 2:
        this.next(), r = rB.call(this);
        break;
      case 3:
        lh.call(this, 2, go), this.next(), this.skipSC(), vy.call(this, Td), r = "-" + this.consume(yr);
        break;
      default:
        lh.call(this, 2, go), GP.call(this, 3, Td), this.next(), r = this.substrToCursor(e + 2);
    }
  else if (this.tokenType === Nt || this.isDelim(ap) && this.lookupType(1) === Nt) {
    let i = 0;
    switch (t = "1", this.isDelim(ap) && (i = 1, this.next()), lh.call(this, 0, zP), this.tokenEnd - this.tokenStart) {
      case 1:
        this.next(), r = rB.call(this);
        break;
      case 2:
        lh.call(this, 1, go), this.next(), this.skipSC(), vy.call(this, Td), r = "-" + this.consume(yr);
        break;
      default:
        lh.call(this, 1, go), GP.call(this, 2, Td), this.next(), r = this.substrToCursor(e + i + 1);
    }
  } else if (this.tokenType === Gr) {
    const i = this.charCodeAt(this.tokenStart), n = i === ap || i === go;
    let s = this.tokenStart + n;
    for (; s < this.tokenEnd && ss(this.charCodeAt(s)); s++)
      ;
    s === this.tokenStart + n && this.error("Integer is expected", this.tokenStart + n), lh.call(this, s - this.tokenStart, zP), t = this.substring(e, s), s + 1 === this.tokenEnd ? (this.next(), r = rB.call(this)) : (lh.call(this, s - this.tokenStart + 1, go), s + 2 === this.tokenEnd ? (this.next(), this.skipSC(), vy.call(this, Td), r = "-" + this.consume(yr)) : (GP.call(this, s - this.tokenStart + 2, Td), this.next(), r = this.substrToCursor(s + 1)));
  } else
    this.error();
  return t !== null && t.charCodeAt(0) === ap && (t = t.substr(1)), r !== null && r.charCodeAt(0) === ap && (r = r.substr(1)), {
    type: "AnPlusB",
    loc: this.getLocation(e, this.tokenStart),
    a: t,
    b: r
  };
}
function z5t(e) {
  if (e.a) {
    const t = e.a === "+1" && "n" || e.a === "1" && "n" || e.a === "-1" && "-n" || e.a + "n";
    if (e.b) {
      const r = e.b[0] === "-" || e.b[0] === "+" ? e.b : "+" + e.b;
      this.tokenize(t + r);
    } else
      this.tokenize(t);
  } else
    this.tokenize(e.b);
}
const G5t = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: z5t,
  name: H5t,
  parse: eve,
  structure: K5t
}, Symbol.toStringTag, { value: "Module" }));
function xte(e) {
  return this.Raw(e, this.consumeUntilLeftCurlyBracketOrSemicolon, !0);
}
function Y5t() {
  for (let e = 1, t; t = this.lookupType(e); e++) {
    if (t === Hl)
      return !0;
    if (t === Ts || t === $n)
      return !1;
  }
  return !1;
}
const X5t = "Atrule", J5t = "atrule", Q5t = {
  name: String,
  prelude: ["AtrulePrelude", "Raw", null],
  block: ["Block", null]
};
function tve(e = !1) {
  const t = this.tokenStart;
  let r, i, n = null, s = null;
  switch (this.eat($n), r = this.substrToCursor(t + 1), i = r.toLowerCase(), this.skipSC(), this.eof === !1 && this.tokenType !== Ts && this.tokenType !== Ua && (this.parseAtrulePrelude ? n = this.parseWithFallback(this.AtrulePrelude.bind(this, r, e), xte) : n = xte.call(this, this.tokenIndex), this.skipSC()), this.tokenType) {
    case Ua:
      this.next();
      break;
    case Ts:
      hasOwnProperty.call(this.atrule, i) && typeof this.atrule[i].block == "function" ? s = this.atrule[i].block.call(this, e) : s = this.Block(Y5t.call(this));
      break;
  }
  return {
    type: "Atrule",
    loc: this.getLocation(t, this.tokenStart),
    name: r,
    prelude: n,
    block: s
  };
}
function Z5t(e) {
  this.token($n, "@" + e.name), e.prelude !== null && this.node(e.prelude), e.block ? this.node(e.block) : this.token(Ua, ";");
}
const e7t = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: Z5t,
  name: X5t,
  parse: tve,
  structure: Q5t,
  walkContext: J5t
}, Symbol.toStringTag, { value: "Module" })), t7t = "AtrulePrelude", r7t = "atrulePrelude", i7t = {
  children: [[]]
};
function rve(e) {
  let t = null;
  return e !== null && (e = e.toLowerCase()), this.skipSC(), hasOwnProperty.call(this.atrule, e) && typeof this.atrule[e].prelude == "function" ? t = this.atrule[e].prelude.call(this) : t = this.readSequence(this.scope.AtrulePrelude), this.skipSC(), this.eof !== !0 && this.tokenType !== Ts && this.tokenType !== Ua && this.error("Semicolon or block is expected"), {
    type: "AtrulePrelude",
    loc: this.getLocationFromList(t),
    children: t
  };
}
function n7t(e) {
  this.children(e);
}
const s7t = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: n7t,
  name: t7t,
  parse: rve,
  structure: i7t,
  walkContext: r7t
}, Symbol.toStringTag, { value: "Module" })), a7t = 36, ive = 42, YP = 61, o7t = 94, ej = 124, l7t = 126;
function u7t() {
  this.eof && this.error("Unexpected end of input");
  const e = this.tokenStart;
  let t = !1;
  return this.isDelim(ive) ? (t = !0, this.next()) : this.isDelim(ej) || this.eat(Nt), this.isDelim(ej) ? this.charCodeAt(this.tokenStart + 1) !== YP ? (this.next(), this.eat(Nt)) : t && this.error("Identifier is expected", this.tokenEnd) : t && this.error("Vertical line is expected"), {
    type: "Identifier",
    loc: this.getLocation(e, this.tokenStart),
    name: this.substrToCursor(e)
  };
}
function c7t() {
  const e = this.tokenStart, t = this.charCodeAt(e);
  return t !== YP && // =
  t !== l7t && // ~=
  t !== o7t && // ^=
  t !== a7t && // $=
  t !== ive && // *=
  t !== ej && this.error("Attribute selector (=, ~=, ^=, $=, *=, |=) is expected"), this.next(), t !== YP && (this.isDelim(YP) || this.error("Equal sign is expected"), this.next()), this.substrToCursor(e);
}
const p7t = "AttributeSelector", f7t = {
  name: "Identifier",
  matcher: [String, null],
  value: ["String", "Identifier", null],
  flags: [String, null]
};
function nve() {
  const e = this.tokenStart;
  let t, r = null, i = null, n = null;
  return this.eat(ko), this.skipSC(), t = u7t.call(this), this.skipSC(), this.tokenType !== jc && (this.tokenType !== Nt && (r = c7t.call(this), this.skipSC(), i = this.tokenType === Pp ? this.String() : this.Identifier(), this.skipSC()), this.tokenType === Nt && (n = this.consume(Nt), this.skipSC())), this.eat(jc), {
    type: "AttributeSelector",
    loc: this.getLocation(e, this.tokenStart),
    name: t,
    matcher: r,
    value: i,
    flags: n
  };
}
function h7t(e) {
  this.token(Cr, "["), this.node(e.name), e.matcher !== null && (this.tokenize(e.matcher), this.node(e.value)), e.flags !== null && this.token(Nt, e.flags), this.token(Cr, "]");
}
const d7t = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: h7t,
  name: p7t,
  parse: nve,
  structure: f7t
}, Symbol.toStringTag, { value: "Module" })), m7t = 38;
function sve(e) {
  return this.Raw(e, null, !0);
}
function Ete() {
  return this.parseWithFallback(this.Rule, sve);
}
function Pte(e) {
  return this.Raw(e, this.consumeUntilSemicolonIncluded, !0);
}
function y7t() {
  if (this.tokenType === Ua)
    return Pte.call(this, this.tokenIndex);
  const e = this.parseWithFallback(this.Declaration, Pte);
  return this.tokenType === Ua && this.next(), e;
}
const g7t = "Block", b7t = "block", v7t = {
  children: [[
    "Atrule",
    "Rule",
    "Declaration"
  ]]
};
function ave(e) {
  const t = e ? y7t : Ete, r = this.tokenStart;
  let i = this.createList();
  this.eat(Ts);
  e:
    for (; !this.eof; )
      switch (this.tokenType) {
        case Hl:
          break e;
        case Zi:
        case Ss:
          this.next();
          break;
        case $n:
          i.push(this.parseWithFallback(this.Atrule.bind(this, e), sve));
          break;
        default:
          e && this.isDelim(m7t) ? i.push(Ete.call(this)) : i.push(t.call(this));
      }
  return this.eof || this.eat(Hl), {
    type: "Block",
    loc: this.getLocation(r, this.tokenStart),
    children: i
  };
}
function T7t(e) {
  this.token(Ts, "{"), this.children(e, (t) => {
    t.type === "Declaration" && this.token(Ua, ";");
  }), this.token(Hl, "}");
}
const S7t = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: T7t,
  name: g7t,
  parse: ave,
  structure: v7t,
  walkContext: b7t
}, Symbol.toStringTag, { value: "Module" })), x7t = "Brackets", E7t = {
  children: [[]]
};
function ove(e, t) {
  const r = this.tokenStart;
  let i = null;
  return this.eat(ko), i = e.call(this, t), this.eof || this.eat(jc), {
    type: "Brackets",
    loc: this.getLocation(r, this.tokenStart),
    children: i
  };
}
function P7t(e) {
  this.token(Cr, "["), this.children(e), this.token(Cr, "]");
}
const w7t = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: P7t,
  name: x7t,
  parse: ove,
  structure: E7t
}, Symbol.toStringTag, { value: "Module" })), A7t = "CDC", C7t = [];
function lve() {
  const e = this.tokenStart;
  return this.eat(Ba), {
    type: "CDC",
    loc: this.getLocation(e, this.tokenStart)
  };
}
function _7t() {
  this.token(Ba, "-->");
}
const I7t = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: _7t,
  name: A7t,
  parse: lve,
  structure: C7t
}, Symbol.toStringTag, { value: "Module" })), k7t = "CDO", O7t = [];
function uve() {
  const e = this.tokenStart;
  return this.eat(wS), {
    type: "CDO",
    loc: this.getLocation(e, this.tokenStart)
  };
}
function N7t() {
  this.token(wS, "<!--");
}
const D7t = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: N7t,
  name: k7t,
  parse: uve,
  structure: O7t
}, Symbol.toStringTag, { value: "Module" })), L7t = 46, M7t = "ClassSelector", R7t = {
  name: String
};
function cve() {
  return this.eatDelim(L7t), {
    type: "ClassSelector",
    loc: this.getLocation(this.tokenStart - 1, this.tokenEnd),
    name: this.consume(Nt)
  };
}
function B7t(e) {
  this.token(Cr, "."), this.token(Nt, e.name);
}
const F7t = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: B7t,
  name: M7t,
  parse: cve,
  structure: R7t
}, Symbol.toStringTag, { value: "Module" })), j7t = 43, wte = 47, $7t = 62, U7t = 126, q7t = "Combinator", V7t = {
  name: String
};
function pve() {
  const e = this.tokenStart;
  let t;
  switch (this.tokenType) {
    case Zi:
      t = " ";
      break;
    case Cr:
      switch (this.charCodeAt(this.tokenStart)) {
        case $7t:
        case j7t:
        case U7t:
          this.next();
          break;
        case wte:
          this.next(), this.eatIdent("deep"), this.eatDelim(wte);
          break;
        default:
          this.error("Combinator is expected");
      }
      t = this.substrToCursor(e);
      break;
  }
  return {
    type: "Combinator",
    loc: this.getLocation(e, this.tokenStart),
    name: t
  };
}
function W7t(e) {
  this.tokenize(e.name);
}
const H7t = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: W7t,
  name: q7t,
  parse: pve,
  structure: V7t
}, Symbol.toStringTag, { value: "Module" })), K7t = 42, z7t = 47, G7t = "Comment", Y7t = {
  value: String
};
function fve() {
  const e = this.tokenStart;
  let t = this.tokenEnd;
  return this.eat(Ss), t - e + 2 >= 2 && this.charCodeAt(t - 2) === K7t && this.charCodeAt(t - 1) === z7t && (t -= 2), {
    type: "Comment",
    loc: this.getLocation(e, this.tokenStart),
    value: this.substring(e + 2, t)
  };
}
function X7t(e) {
  this.token(Ss, "/*" + e.value + "*/");
}
const J7t = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: X7t,
  name: G7t,
  parse: fve,
  structure: Y7t
}, Symbol.toStringTag, { value: "Module" })), hve = 33, Q7t = 35, Z7t = 36, eUt = 38, tUt = 42, rUt = 43, Ate = 47;
function iUt(e) {
  return this.Raw(e, this.consumeUntilExclamationMarkOrSemicolon, !0);
}
function nUt(e) {
  return this.Raw(e, this.consumeUntilExclamationMarkOrSemicolon, !1);
}
function sUt() {
  const e = this.tokenIndex, t = this.Value();
  return t.type !== "Raw" && this.eof === !1 && this.tokenType !== Ua && this.isDelim(hve) === !1 && this.isBalanceEdge(e) === !1 && this.error(), t;
}
const aUt = "Declaration", oUt = "declaration", lUt = {
  important: [Boolean, String],
  property: String,
  value: ["Value", "Raw"]
};
function dve() {
  const e = this.tokenStart, t = this.tokenIndex, r = cUt.call(this), i = lU(r), n = i ? this.parseCustomProperty : this.parseValue, s = i ? nUt : iUt;
  let a = !1, o;
  this.skipSC(), this.eat(Rn);
  const l = this.tokenIndex;
  if (i || this.skipSC(), n ? o = this.parseWithFallback(sUt, s) : o = s.call(this, this.tokenIndex), i && o.type === "Value" && o.children.isEmpty) {
    for (let u = l - this.tokenIndex; u <= 0; u++)
      if (this.lookupType(u) === Zi) {
        o.children.appendData({
          type: "WhiteSpace",
          loc: null,
          value: " "
        });
        break;
      }
  }
  return this.isDelim(hve) && (a = pUt.call(this), this.skipSC()), this.eof === !1 && this.tokenType !== Ua && this.isBalanceEdge(t) === !1 && this.error(), {
    type: "Declaration",
    loc: this.getLocation(e, this.tokenStart),
    important: a,
    property: r,
    value: o
  };
}
function uUt(e) {
  this.token(Nt, e.property), this.token(Rn, ":"), this.node(e.value), e.important && (this.token(Cr, "!"), this.token(Nt, e.important === !0 ? "important" : e.important));
}
function cUt() {
  const e = this.tokenStart;
  if (this.tokenType === Cr)
    switch (this.charCodeAt(this.tokenStart)) {
      case tUt:
      case Z7t:
      case rUt:
      case Q7t:
      case eUt:
        this.next();
        break;
      case Ate:
        this.next(), this.isDelim(Ate) && this.next();
        break;
    }
  return this.tokenType === Ji ? this.eat(Ji) : this.eat(Nt), this.substrToCursor(e);
}
function pUt() {
  this.eat(Cr), this.skipSC();
  const e = this.consume(Nt);
  return e === "important" ? !0 : e;
}
const fUt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: uUt,
  name: aUt,
  parse: dve,
  structure: lUt,
  walkContext: oUt
}, Symbol.toStringTag, { value: "Module" })), hUt = 38;
function iB(e) {
  return this.Raw(e, this.consumeUntilSemicolonIncluded, !0);
}
const dUt = "DeclarationList", mUt = {
  children: [[
    "Declaration",
    "Atrule",
    "Rule"
  ]]
};
function mve() {
  const e = this.createList();
  for (; !this.eof; )
    switch (this.tokenType) {
      case Zi:
      case Ss:
      case Ua:
        this.next();
        break;
      case $n:
        e.push(this.parseWithFallback(this.Atrule.bind(this, !0), iB));
        break;
      default:
        this.isDelim(hUt) ? e.push(this.parseWithFallback(this.Rule, iB)) : e.push(this.parseWithFallback(this.Declaration, iB));
    }
  return {
    type: "DeclarationList",
    loc: this.getLocationFromList(e),
    children: e
  };
}
function yUt(e) {
  this.children(e, (t) => {
    t.type === "Declaration" && this.token(Ua, ";");
  });
}
const gUt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: yUt,
  name: dUt,
  parse: mve,
  structure: mUt
}, Symbol.toStringTag, { value: "Module" })), bUt = "Dimension", vUt = {
  value: String,
  unit: String
};
function yve() {
  const e = this.tokenStart, t = this.consumeNumber(Gr);
  return {
    type: "Dimension",
    loc: this.getLocation(e, this.tokenStart),
    value: t,
    unit: this.substring(e + t.length, this.tokenStart)
  };
}
function TUt(e) {
  this.token(Gr, e.value + e.unit);
}
const SUt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: TUt,
  name: bUt,
  parse: yve,
  structure: vUt
}, Symbol.toStringTag, { value: "Module" })), xUt = "Function", EUt = "function", PUt = {
  name: String,
  children: [[]]
};
function gve(e, t) {
  const r = this.tokenStart, i = this.consumeFunctionName(), n = i.toLowerCase();
  let s;
  return s = t.hasOwnProperty(n) ? t[n].call(this, t) : e.call(this, t), this.eof || this.eat(Wr), {
    type: "Function",
    loc: this.getLocation(r, this.tokenStart),
    name: i,
    children: s
  };
}
function wUt(e) {
  this.token(Vr, e.name + "("), this.children(e), this.token(Wr, ")");
}
const AUt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: wUt,
  name: xUt,
  parse: gve,
  structure: PUt,
  walkContext: EUt
}, Symbol.toStringTag, { value: "Module" })), CUt = "XXX", _Ut = "Hash", IUt = {
  value: String
};
function bve() {
  const e = this.tokenStart;
  return this.eat(Ji), {
    type: "Hash",
    loc: this.getLocation(e, this.tokenStart),
    value: this.substrToCursor(e + 1)
  };
}
function kUt(e) {
  this.token(Ji, "#" + e.value);
}
const OUt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: kUt,
  name: _Ut,
  parse: bve,
  structure: IUt,
  xxx: CUt
}, Symbol.toStringTag, { value: "Module" })), NUt = "Identifier", DUt = {
  name: String
};
function vve() {
  return {
    type: "Identifier",
    loc: this.getLocation(this.tokenStart, this.tokenEnd),
    name: this.consume(Nt)
  };
}
function LUt(e) {
  this.token(Nt, e.name);
}
const MUt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: LUt,
  name: NUt,
  parse: vve,
  structure: DUt
}, Symbol.toStringTag, { value: "Module" })), RUt = "IdSelector", BUt = {
  name: String
};
function Tve() {
  const e = this.tokenStart;
  return this.eat(Ji), {
    type: "IdSelector",
    loc: this.getLocation(e, this.tokenStart),
    name: this.substrToCursor(e + 1)
  };
}
function FUt(e) {
  this.token(Cr, "#" + e.name);
}
const jUt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: FUt,
  name: RUt,
  parse: Tve,
  structure: BUt
}, Symbol.toStringTag, { value: "Module" })), $Ut = "MediaFeature", UUt = {
  name: String,
  value: ["Identifier", "Number", "Dimension", "Ratio", null]
};
function Sve() {
  const e = this.tokenStart;
  let t, r = null;
  if (this.eat(vn), this.skipSC(), t = this.consume(Nt), this.skipSC(), this.tokenType !== Wr) {
    switch (this.eat(Rn), this.skipSC(), this.tokenType) {
      case yr:
        this.lookupNonWSType(1) === Cr ? r = this.Ratio() : r = this.Number();
        break;
      case Gr:
        r = this.Dimension();
        break;
      case Nt:
        r = this.Identifier();
        break;
      default:
        this.error("Number, dimension, ratio or identifier is expected");
    }
    this.skipSC();
  }
  return this.eat(Wr), {
    type: "MediaFeature",
    loc: this.getLocation(e, this.tokenStart),
    name: t,
    value: r
  };
}
function qUt(e) {
  this.token(vn, "("), this.token(Nt, e.name), e.value !== null && (this.token(Rn, ":"), this.node(e.value)), this.token(Wr, ")");
}
const VUt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: qUt,
  name: $Ut,
  parse: Sve,
  structure: UUt
}, Symbol.toStringTag, { value: "Module" })), WUt = "MediaQuery", HUt = {
  children: [[
    "Identifier",
    "MediaFeature",
    "WhiteSpace"
  ]]
};
function xve() {
  const e = this.createList();
  let t = null;
  this.skipSC();
  e:
    for (; !this.eof; ) {
      switch (this.tokenType) {
        case Ss:
        case Zi:
          this.next();
          continue;
        case Nt:
          t = this.Identifier();
          break;
        case vn:
          t = this.MediaFeature();
          break;
        default:
          break e;
      }
      e.push(t);
    }
  return t === null && this.error("Identifier or parenthesis is expected"), {
    type: "MediaQuery",
    loc: this.getLocationFromList(e),
    children: e
  };
}
function KUt(e) {
  this.children(e);
}
const zUt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: KUt,
  name: WUt,
  parse: xve,
  structure: HUt
}, Symbol.toStringTag, { value: "Module" })), GUt = "MediaQueryList", YUt = {
  children: [[
    "MediaQuery"
  ]]
};
function Eve() {
  const e = this.createList();
  for (this.skipSC(); !this.eof && (e.push(this.MediaQuery()), this.tokenType === wp); )
    this.next();
  return {
    type: "MediaQueryList",
    loc: this.getLocationFromList(e),
    children: e
  };
}
function XUt(e) {
  this.children(e, () => this.token(wp, ","));
}
const JUt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: XUt,
  name: GUt,
  parse: Eve,
  structure: YUt
}, Symbol.toStringTag, { value: "Module" })), QUt = 38, ZUt = "NestingSelector", eqt = {};
function Pve() {
  const e = this.tokenStart;
  return this.eatDelim(QUt), {
    type: "NestingSelector",
    loc: this.getLocation(e, this.tokenStart)
  };
}
function tqt() {
  this.token(Cr, "&");
}
const rqt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: tqt,
  name: ZUt,
  parse: Pve,
  structure: eqt
}, Symbol.toStringTag, { value: "Module" })), iqt = "Nth", nqt = {
  nth: ["AnPlusB", "Identifier"],
  selector: ["SelectorList", null]
};
function wve() {
  this.skipSC();
  const e = this.tokenStart;
  let t = e, r = null, i;
  return this.lookupValue(0, "odd") || this.lookupValue(0, "even") ? i = this.Identifier() : i = this.AnPlusB(), t = this.tokenStart, this.skipSC(), this.lookupValue(0, "of") && (this.next(), r = this.SelectorList(), t = this.tokenStart), {
    type: "Nth",
    loc: this.getLocation(e, t),
    nth: i,
    selector: r
  };
}
function sqt(e) {
  this.node(e.nth), e.selector !== null && (this.token(Nt, "of"), this.node(e.selector));
}
const aqt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: sqt,
  name: iqt,
  parse: wve,
  structure: nqt
}, Symbol.toStringTag, { value: "Module" })), oqt = "Number", lqt = {
  value: String
};
function Ave() {
  return {
    type: "Number",
    loc: this.getLocation(this.tokenStart, this.tokenEnd),
    value: this.consume(yr)
  };
}
function uqt(e) {
  this.token(yr, e.value);
}
const cqt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: uqt,
  name: oqt,
  parse: Ave,
  structure: lqt
}, Symbol.toStringTag, { value: "Module" })), pqt = "Operator", fqt = {
  value: String
};
function Cve() {
  const e = this.tokenStart;
  return this.next(), {
    type: "Operator",
    loc: this.getLocation(e, this.tokenStart),
    value: this.substrToCursor(e)
  };
}
function hqt(e) {
  this.tokenize(e.value);
}
const dqt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: hqt,
  name: pqt,
  parse: Cve,
  structure: fqt
}, Symbol.toStringTag, { value: "Module" })), mqt = "Parentheses", yqt = {
  children: [[]]
};
function _ve(e, t) {
  const r = this.tokenStart;
  let i = null;
  return this.eat(vn), i = e.call(this, t), this.eof || this.eat(Wr), {
    type: "Parentheses",
    loc: this.getLocation(r, this.tokenStart),
    children: i
  };
}
function gqt(e) {
  this.token(vn, "("), this.children(e), this.token(Wr, ")");
}
const bqt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: gqt,
  name: mqt,
  parse: _ve,
  structure: yqt
}, Symbol.toStringTag, { value: "Module" })), vqt = "Percentage", Tqt = {
  value: String
};
function Ive() {
  return {
    type: "Percentage",
    loc: this.getLocation(this.tokenStart, this.tokenEnd),
    value: this.consumeNumber(wn)
  };
}
function Sqt(e) {
  this.token(wn, e.value + "%");
}
const xqt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: Sqt,
  name: vqt,
  parse: Ive,
  structure: Tqt
}, Symbol.toStringTag, { value: "Module" })), Eqt = "PseudoClassSelector", Pqt = "function", wqt = {
  name: String,
  children: [["Raw"], null]
};
function kve() {
  const e = this.tokenStart;
  let t = null, r, i;
  return this.eat(Rn), this.tokenType === Vr ? (r = this.consumeFunctionName(), i = r.toLowerCase(), hasOwnProperty.call(this.pseudo, i) ? (this.skipSC(), t = this.pseudo[i].call(this), this.skipSC()) : (t = this.createList(), t.push(
    this.Raw(this.tokenIndex, null, !1)
  )), this.eat(Wr)) : r = this.consume(Nt), {
    type: "PseudoClassSelector",
    loc: this.getLocation(e, this.tokenStart),
    name: r,
    children: t
  };
}
function Aqt(e) {
  this.token(Rn, ":"), e.children === null ? this.token(Nt, e.name) : (this.token(Vr, e.name + "("), this.children(e), this.token(Wr, ")"));
}
const Cqt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: Aqt,
  name: Eqt,
  parse: kve,
  structure: wqt,
  walkContext: Pqt
}, Symbol.toStringTag, { value: "Module" })), _qt = "PseudoElementSelector", Iqt = "function", kqt = {
  name: String,
  children: [["Raw"], null]
};
function Ove() {
  const e = this.tokenStart;
  let t = null, r, i;
  return this.eat(Rn), this.eat(Rn), this.tokenType === Vr ? (r = this.consumeFunctionName(), i = r.toLowerCase(), hasOwnProperty.call(this.pseudo, i) ? (this.skipSC(), t = this.pseudo[i].call(this), this.skipSC()) : (t = this.createList(), t.push(
    this.Raw(this.tokenIndex, null, !1)
  )), this.eat(Wr)) : r = this.consume(Nt), {
    type: "PseudoElementSelector",
    loc: this.getLocation(e, this.tokenStart),
    name: r,
    children: t
  };
}
function Oqt(e) {
  this.token(Rn, ":"), this.token(Rn, ":"), e.children === null ? this.token(Nt, e.name) : (this.token(Vr, e.name + "("), this.children(e), this.token(Wr, ")"));
}
const Nqt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: Oqt,
  name: _qt,
  parse: Ove,
  structure: kqt,
  walkContext: Iqt
}, Symbol.toStringTag, { value: "Module" })), Dqt = 47, Lqt = 46;
function Cte() {
  this.skipSC();
  const e = this.consume(yr);
  for (let t = 0; t < e.length; t++) {
    const r = e.charCodeAt(t);
    !ss(r) && r !== Lqt && this.error("Unsigned number is expected", this.tokenStart - e.length + t);
  }
  return Number(e) === 0 && this.error("Zero number is not allowed", this.tokenStart - e.length), e;
}
const Mqt = "Ratio", Rqt = {
  left: String,
  right: String
};
function Nve() {
  const e = this.tokenStart, t = Cte.call(this);
  let r;
  return this.skipSC(), this.eatDelim(Dqt), r = Cte.call(this), {
    type: "Ratio",
    loc: this.getLocation(e, this.tokenStart),
    left: t,
    right: r
  };
}
function Bqt(e) {
  this.token(yr, e.left), this.token(Cr, "/"), this.token(yr, e.right);
}
const Fqt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: Bqt,
  name: Mqt,
  parse: Nve,
  structure: Rqt
}, Symbol.toStringTag, { value: "Module" }));
function jqt() {
  return this.tokenIndex > 0 && this.lookupType(-1) === Zi ? this.tokenIndex > 1 ? this.getTokenStart(this.tokenIndex - 1) : this.firstCharOffset : this.tokenStart;
}
const $qt = "Raw", Uqt = {
  value: String
};
function Dve(e, t, r) {
  const i = this.getTokenStart(e);
  let n;
  return this.skipUntilBalanced(e, t || this.consumeUntilBalanceEnd), r && this.tokenStart > i ? n = jqt.call(this) : n = this.tokenStart, {
    type: "Raw",
    loc: this.getLocation(i, n),
    value: this.substring(i, n)
  };
}
function qqt(e) {
  this.tokenize(e.value);
}
const Vqt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: qqt,
  name: $qt,
  parse: Dve,
  structure: Uqt
}, Symbol.toStringTag, { value: "Module" }));
function _te(e) {
  return this.Raw(e, this.consumeUntilLeftCurlyBracket, !0);
}
function Wqt() {
  const e = this.SelectorList();
  return e.type !== "Raw" && this.eof === !1 && this.tokenType !== Ts && this.error(), e;
}
const Hqt = "Rule", Kqt = "rule", zqt = {
  prelude: ["SelectorList", "Raw"],
  block: ["Block"]
};
function Lve() {
  const e = this.tokenIndex, t = this.tokenStart;
  let r, i;
  return this.parseRulePrelude ? r = this.parseWithFallback(Wqt, _te) : r = _te.call(this, e), i = this.Block(!0), {
    type: "Rule",
    loc: this.getLocation(t, this.tokenStart),
    prelude: r,
    block: i
  };
}
function Gqt(e) {
  this.node(e.prelude), this.node(e.block);
}
const Yqt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: Gqt,
  name: Hqt,
  parse: Lve,
  structure: zqt,
  walkContext: Kqt
}, Symbol.toStringTag, { value: "Module" })), Xqt = "Selector", Jqt = {
  children: [[
    "TypeSelector",
    "IdSelector",
    "ClassSelector",
    "AttributeSelector",
    "PseudoClassSelector",
    "PseudoElementSelector",
    "Combinator",
    "WhiteSpace"
  ]]
};
function Mve() {
  const e = this.readSequence(this.scope.Selector);
  return this.getFirstListNode(e) === null && this.error("Selector is expected"), {
    type: "Selector",
    loc: this.getLocationFromList(e),
    children: e
  };
}
function Qqt(e) {
  this.children(e);
}
const Zqt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: Qqt,
  name: Xqt,
  parse: Mve,
  structure: Jqt
}, Symbol.toStringTag, { value: "Module" })), eVt = "SelectorList", tVt = "selector", rVt = {
  children: [[
    "Selector",
    "Raw"
  ]]
};
function Rve() {
  const e = this.createList();
  for (; !this.eof; ) {
    if (e.push(this.Selector()), this.tokenType === wp) {
      this.next();
      continue;
    }
    break;
  }
  return {
    type: "SelectorList",
    loc: this.getLocationFromList(e),
    children: e
  };
}
function iVt(e) {
  this.children(e, () => this.token(wp, ","));
}
const nVt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: iVt,
  name: eVt,
  parse: Rve,
  structure: rVt,
  walkContext: tVt
}, Symbol.toStringTag, { value: "Module" })), tj = 92, Bve = 34, Fve = 39;
function jve(e) {
  const t = e.length, r = e.charCodeAt(0), i = r === Bve || r === Fve ? 1 : 0, n = i === 1 && t > 1 && e.charCodeAt(t - 1) === r ? t - 2 : t - 1;
  let s = "";
  for (let a = i; a <= n; a++) {
    let o = e.charCodeAt(a);
    if (o === tj) {
      if (a === n) {
        a !== t - 1 && (s = e.substr(a + 1));
        break;
      }
      if (o = e.charCodeAt(++a), up(tj, o)) {
        const l = a - 1, u = rg(e, l);
        a = u - 1, s += x0e(e.substring(l + 1, u));
      } else
        o === 13 && e.charCodeAt(a + 1) === 10 && a++;
    } else
      s += e[a];
  }
  return s;
}
function sVt(e, t) {
  const r = t ? "'" : '"', i = t ? Fve : Bve;
  let n = "", s = !1;
  for (let a = 0; a < e.length; a++) {
    const o = e.charCodeAt(a);
    if (o === 0) {
      n += "�";
      continue;
    }
    if (o <= 31 || o === 127) {
      n += "\\" + o.toString(16), s = !0;
      continue;
    }
    o === i || o === tj ? (n += "\\" + e.charAt(a), s = !1) : (s && (Uh(o) || Jd(o)) && (n += " "), n += e.charAt(a), s = !1);
  }
  return r + n + r;
}
const aVt = "String", oVt = {
  value: String
};
function $ve() {
  return {
    type: "String",
    loc: this.getLocation(this.tokenStart, this.tokenEnd),
    value: jve(this.consume(Pp))
  };
}
function lVt(e) {
  this.token(Pp, sVt(e.value));
}
const uVt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: lVt,
  name: aVt,
  parse: $ve,
  structure: oVt
}, Symbol.toStringTag, { value: "Module" })), cVt = 33;
function Ite(e) {
  return this.Raw(e, null, !1);
}
const pVt = "StyleSheet", fVt = "stylesheet", hVt = {
  children: [[
    "Comment",
    "CDO",
    "CDC",
    "Atrule",
    "Rule",
    "Raw"
  ]]
};
function Uve() {
  const e = this.tokenStart, t = this.createList();
  let r;
  for (; !this.eof; ) {
    switch (this.tokenType) {
      case Zi:
        this.next();
        continue;
      case Ss:
        if (this.charCodeAt(this.tokenStart + 2) !== cVt) {
          this.next();
          continue;
        }
        r = this.Comment();
        break;
      case wS:
        r = this.CDO();
        break;
      case Ba:
        r = this.CDC();
        break;
      case $n:
        r = this.parseWithFallback(this.Atrule, Ite);
        break;
      default:
        r = this.parseWithFallback(this.Rule, Ite);
    }
    t.push(r);
  }
  return {
    type: "StyleSheet",
    loc: this.getLocation(e, this.tokenStart),
    children: t
  };
}
function dVt(e) {
  this.children(e);
}
const mVt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: dVt,
  name: pVt,
  parse: Uve,
  structure: hVt,
  walkContext: fVt
}, Symbol.toStringTag, { value: "Module" })), yVt = 42, kte = 124;
function nB() {
  this.tokenType !== Nt && this.isDelim(yVt) === !1 && this.error("Identifier or asterisk is expected"), this.next();
}
const gVt = "TypeSelector", bVt = {
  name: String
};
function qve() {
  const e = this.tokenStart;
  return this.isDelim(kte) ? (this.next(), nB.call(this)) : (nB.call(this), this.isDelim(kte) && (this.next(), nB.call(this))), {
    type: "TypeSelector",
    loc: this.getLocation(e, this.tokenStart),
    name: this.substrToCursor(e)
  };
}
function vVt(e) {
  this.tokenize(e.name);
}
const TVt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: vVt,
  name: gVt,
  parse: qve,
  structure: bVt
}, Symbol.toStringTag, { value: "Module" })), Vve = 43, Wve = 45, rj = 63;
function $0(e, t) {
  let r = 0;
  for (let i = this.tokenStart + e; i < this.tokenEnd; i++) {
    const n = this.charCodeAt(i);
    if (n === Wve && t && r !== 0)
      return $0.call(this, e + r + 1, !1), -1;
    Uh(n) || this.error(
      t && r !== 0 ? "Hyphen minus" + (r < 6 ? " or hex digit" : "") + " is expected" : r < 6 ? "Hex digit is expected" : "Unexpected input",
      i
    ), ++r > 6 && this.error("Too many hex digits", i);
  }
  return this.next(), r;
}
function j1(e) {
  let t = 0;
  for (; this.isDelim(rj); )
    ++t > e && this.error("Too many question marks"), this.next();
}
function SVt(e) {
  this.charCodeAt(this.tokenStart) !== e && this.error((e === Vve ? "Plus sign" : "Hyphen minus") + " is expected");
}
function xVt() {
  let e = 0;
  switch (this.tokenType) {
    case yr:
      if (e = $0.call(this, 1, !0), this.isDelim(rj)) {
        j1.call(this, 6 - e);
        break;
      }
      if (this.tokenType === Gr || this.tokenType === yr) {
        SVt.call(this, Wve), $0.call(this, 1, !1);
        break;
      }
      break;
    case Gr:
      e = $0.call(this, 1, !0), e > 0 && j1.call(this, 6 - e);
      break;
    default:
      if (this.eatDelim(Vve), this.tokenType === Nt) {
        e = $0.call(this, 0, !0), e > 0 && j1.call(this, 6 - e);
        break;
      }
      if (this.isDelim(rj)) {
        this.next(), j1.call(this, 5);
        break;
      }
      this.error("Hex digit or question mark is expected");
  }
}
const EVt = "UnicodeRange", PVt = {
  value: String
};
function Hve() {
  const e = this.tokenStart;
  return this.eatIdent("u"), xVt.call(this), {
    type: "UnicodeRange",
    loc: this.getLocation(e, this.tokenStart),
    value: this.substrToCursor(e)
  };
}
function wVt(e) {
  this.tokenize(e.value);
}
const AVt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: wVt,
  name: EVt,
  parse: Hve,
  structure: PVt
}, Symbol.toStringTag, { value: "Module" })), CVt = 32, ij = 92, _Vt = 34, IVt = 39, kVt = 40, Kve = 41;
function OVt(e) {
  const t = e.length;
  let r = 4, i = e.charCodeAt(t - 1) === Kve ? t - 2 : t - 1, n = "";
  for (; r < i && Jd(e.charCodeAt(r)); )
    r++;
  for (; r < i && Jd(e.charCodeAt(i)); )
    i--;
  for (let s = r; s <= i; s++) {
    let a = e.charCodeAt(s);
    if (a === ij) {
      if (s === i) {
        s !== t - 1 && (n = e.substr(s + 1));
        break;
      }
      if (a = e.charCodeAt(++s), up(ij, a)) {
        const o = s - 1, l = rg(e, o);
        s = l - 1, n += x0e(e.substring(o + 1, l));
      } else
        a === 13 && e.charCodeAt(s + 1) === 10 && s++;
    } else
      n += e[s];
  }
  return n;
}
function NVt(e) {
  let t = "", r = !1;
  for (let i = 0; i < e.length; i++) {
    const n = e.charCodeAt(i);
    if (n === 0) {
      t += "�";
      continue;
    }
    if (n <= 31 || n === 127) {
      t += "\\" + n.toString(16), r = !0;
      continue;
    }
    n === CVt || n === ij || n === _Vt || n === IVt || n === kVt || n === Kve ? (t += "\\" + e.charAt(i), r = !1) : (r && Uh(n) && (t += " "), t += e.charAt(i), r = !1);
  }
  return "url(" + t + ")";
}
const DVt = "Url", LVt = {
  value: String
};
function zve() {
  const e = this.tokenStart;
  let t;
  switch (this.tokenType) {
    case Ls:
      t = OVt(this.consume(Ls));
      break;
    case Vr:
      this.cmpStr(this.tokenStart, this.tokenEnd, "url(") || this.error("Function name must be `url`"), this.eat(Vr), this.skipSC(), t = jve(this.consume(Pp)), this.skipSC(), this.eof || this.eat(Wr);
      break;
    default:
      this.error("Url or Function is expected");
  }
  return {
    type: "Url",
    loc: this.getLocation(e, this.tokenStart),
    value: t
  };
}
function MVt(e) {
  this.token(Ls, NVt(e.value));
}
const RVt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: MVt,
  name: DVt,
  parse: zve,
  structure: LVt
}, Symbol.toStringTag, { value: "Module" })), BVt = "Value", FVt = {
  children: [[]]
};
function Gve() {
  const e = this.tokenStart, t = this.readSequence(this.scope.Value);
  return {
    type: "Value",
    loc: this.getLocation(e, this.tokenStart),
    children: t
  };
}
function jVt(e) {
  this.children(e);
}
const $Vt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: jVt,
  name: BVt,
  parse: Gve,
  structure: FVt
}, Symbol.toStringTag, { value: "Module" })), UVt = Object.freeze({
  type: "WhiteSpace",
  loc: null,
  value: " "
}), qVt = "WhiteSpace", VVt = {
  value: String
};
function Yve() {
  return this.eat(Zi), UVt;
}
function WVt(e) {
  this.token(Zi, e.value);
}
const HVt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: WVt,
  name: qVt,
  parse: Yve,
  structure: VVt
}, Symbol.toStringTag, { value: "Module" })), Xve = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  AnPlusB: G5t,
  Atrule: e7t,
  AtrulePrelude: s7t,
  AttributeSelector: d7t,
  Block: S7t,
  Brackets: w7t,
  CDC: I7t,
  CDO: D7t,
  ClassSelector: F7t,
  Combinator: H7t,
  Comment: J7t,
  Declaration: fUt,
  DeclarationList: gUt,
  Dimension: SUt,
  Function: AUt,
  Hash: OUt,
  IdSelector: jUt,
  Identifier: MUt,
  MediaFeature: VUt,
  MediaQuery: zUt,
  MediaQueryList: JUt,
  NestingSelector: rqt,
  Nth: aqt,
  Number: cqt,
  Operator: dqt,
  Parentheses: bqt,
  Percentage: xqt,
  PseudoClassSelector: Cqt,
  PseudoElementSelector: Nqt,
  Ratio: Fqt,
  Raw: Vqt,
  Rule: Yqt,
  Selector: Zqt,
  SelectorList: nVt,
  String: uVt,
  StyleSheet: mVt,
  TypeSelector: TVt,
  UnicodeRange: AVt,
  Url: RVt,
  Value: $Vt,
  WhiteSpace: HVt
}, Symbol.toStringTag, { value: "Module" })), KVt = zr($t({
  generic: !0
}, V5t), {
  node: Xve
}), zVt = 35, GVt = 42, Ote = 43, YVt = 45, XVt = 47, JVt = 117;
function Jve(e) {
  switch (this.tokenType) {
    case Ji:
      return this.Hash();
    case wp:
      return this.Operator();
    case vn:
      return this.Parentheses(this.readSequence, e.recognizer);
    case ko:
      return this.Brackets(this.readSequence, e.recognizer);
    case Pp:
      return this.String();
    case Gr:
      return this.Dimension();
    case wn:
      return this.Percentage();
    case yr:
      return this.Number();
    case Vr:
      return this.cmpStr(this.tokenStart, this.tokenEnd, "url(") ? this.Url() : this.Function(this.readSequence, e.recognizer);
    case Ls:
      return this.Url();
    case Nt:
      return this.cmpChar(this.tokenStart, JVt) && this.cmpChar(this.tokenStart + 1, Ote) ? this.UnicodeRange() : this.Identifier();
    case Cr: {
      const t = this.charCodeAt(this.tokenStart);
      if (t === XVt || t === GVt || t === Ote || t === YVt)
        return this.Operator();
      t === zVt && this.error("Hex or identifier is expected", this.tokenStart + 1);
      break;
    }
  }
}
const QVt = {
  getNode: Jve
}, ZVt = 35, eWt = 38, tWt = 42, rWt = 43, iWt = 47, Nte = 46, nWt = 62, sWt = 124, aWt = 126;
function oWt(e, t) {
  t.last !== null && t.last.type !== "Combinator" && e !== null && e.type !== "Combinator" && t.push({
    // FIXME: this.Combinator() should be used instead
    type: "Combinator",
    loc: null,
    name: " "
  });
}
function lWt() {
  switch (this.tokenType) {
    case ko:
      return this.AttributeSelector();
    case Ji:
      return this.IdSelector();
    case Rn:
      return this.lookupType(1) === Rn ? this.PseudoElementSelector() : this.PseudoClassSelector();
    case Nt:
      return this.TypeSelector();
    case yr:
    case wn:
      return this.Percentage();
    case Gr:
      this.charCodeAt(this.tokenStart) === Nte && this.error("Identifier is expected", this.tokenStart + 1);
      break;
    case Cr: {
      switch (this.charCodeAt(this.tokenStart)) {
        case rWt:
        case nWt:
        case aWt:
        case iWt:
          return this.Combinator();
        case Nte:
          return this.ClassSelector();
        case tWt:
        case sWt:
          return this.TypeSelector();
        case ZVt:
          return this.IdSelector();
        case eWt:
          return this.NestingSelector();
      }
      break;
    }
  }
}
const uWt = {
  onWhiteSpace: oWt,
  getNode: lWt
};
function cWt() {
  return this.createSingleNodeList(
    this.Raw(this.tokenIndex, null, !1)
  );
}
function pWt() {
  const e = this.createList();
  if (this.skipSC(), e.push(this.Identifier()), this.skipSC(), this.tokenType === wp) {
    e.push(this.Operator());
    const t = this.tokenIndex, r = this.parseCustomProperty ? this.Value(null) : this.Raw(this.tokenIndex, this.consumeUntilExclamationMarkOrSemicolon, !1);
    if (r.type === "Value" && r.children.isEmpty) {
      for (let i = t - this.tokenIndex; i <= 0; i++)
        if (this.lookupType(i) === Zi) {
          r.children.appendData({
            type: "WhiteSpace",
            loc: null,
            value: " "
          });
          break;
        }
    }
    e.push(r);
  }
  return e;
}
function Dte(e) {
  return e !== null && e.type === "Operator" && (e.value[e.value.length - 1] === "-" || e.value[e.value.length - 1] === "+");
}
const fWt = {
  getNode: Jve,
  onWhiteSpace(e, t) {
    Dte(e) && (e.value = " " + e.value), Dte(t.last) && (t.last.value += " ");
  },
  expression: cWt,
  var: pWt
}, hWt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  AtrulePrelude: QVt,
  Selector: uWt,
  Value: fWt
}, Symbol.toStringTag, { value: "Module" })), dWt = {
  parse: {
    prelude: null,
    block() {
      return this.Block(!0);
    }
  }
}, mWt = {
  parse: {
    prelude() {
      const e = this.createList();
      switch (this.skipSC(), this.tokenType) {
        case Pp:
          e.push(this.String());
          break;
        case Ls:
        case Vr:
          e.push(this.Url());
          break;
        default:
          this.error("String or url() is expected");
      }
      return (this.lookupNonWSType(0) === Nt || this.lookupNonWSType(0) === vn) && e.push(this.MediaQueryList()), e;
    },
    block: null
  }
}, yWt = {
  parse: {
    prelude() {
      return this.createSingleNodeList(
        this.MediaQueryList()
      );
    },
    block(e = !1) {
      return this.Block(e);
    }
  }
}, gWt = {
  parse: {
    prelude() {
      return this.createSingleNodeList(
        this.SelectorList()
      );
    },
    block() {
      return this.Block(!0);
    }
  }
}, bWt = {
  parse: {
    prelude() {
      return this.createSingleNodeList(
        this.SelectorList()
      );
    },
    block() {
      return this.Block(!0);
    }
  }
};
function vWt() {
  return this.createSingleNodeList(
    this.Raw(this.tokenIndex, null, !1)
  );
}
function TWt() {
  return this.skipSC(), this.tokenType === Nt && this.lookupNonWSType(1) === Rn ? this.createSingleNodeList(
    this.Declaration()
  ) : Qve.call(this);
}
function Qve() {
  const e = this.createList();
  let t;
  this.skipSC();
  e:
    for (; !this.eof; ) {
      switch (this.tokenType) {
        case Ss:
        case Zi:
          this.next();
          continue;
        case Vr:
          t = this.Function(vWt, this.scope.AtrulePrelude);
          break;
        case Nt:
          t = this.Identifier();
          break;
        case vn:
          t = this.Parentheses(TWt, this.scope.AtrulePrelude);
          break;
        default:
          break e;
      }
      e.push(t);
    }
  return e;
}
const SWt = {
  parse: {
    prelude() {
      const e = Qve.call(this);
      return this.getFirstListNode(e) === null && this.error("Condition is expected"), e;
    },
    block(e = !1) {
      return this.Block(e);
    }
  }
}, xWt = {
  "font-face": dWt,
  import: mWt,
  media: yWt,
  nest: gWt,
  page: bWt,
  supports: SWt
}, gd = {
  parse() {
    return this.createSingleNodeList(
      this.SelectorList()
    );
  }
}, sB = {
  parse() {
    return this.createSingleNodeList(
      this.Selector()
    );
  }
}, Lte = {
  parse() {
    return this.createSingleNodeList(
      this.Identifier()
    );
  }
}, $1 = {
  parse() {
    return this.createSingleNodeList(
      this.Nth()
    );
  }
}, EWt = {
  dir: Lte,
  has: gd,
  lang: Lte,
  matches: gd,
  is: gd,
  "-moz-any": gd,
  "-webkit-any": gd,
  where: gd,
  not: gd,
  "nth-child": $1,
  "nth-last-child": $1,
  "nth-last-of-type": $1,
  "nth-of-type": $1,
  slotted: sB,
  host: sB,
  "host-context": sB
}, PWt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  AnPlusB: eve,
  Atrule: tve,
  AtrulePrelude: rve,
  AttributeSelector: nve,
  Block: ave,
  Brackets: ove,
  CDC: lve,
  CDO: uve,
  ClassSelector: cve,
  Combinator: pve,
  Comment: fve,
  Declaration: dve,
  DeclarationList: mve,
  Dimension: yve,
  Function: gve,
  Hash: bve,
  IdSelector: Tve,
  Identifier: vve,
  MediaFeature: Sve,
  MediaQuery: xve,
  MediaQueryList: Eve,
  NestingSelector: Pve,
  Nth: wve,
  Number: Ave,
  Operator: Cve,
  Parentheses: _ve,
  Percentage: Ive,
  PseudoClassSelector: kve,
  PseudoElementSelector: Ove,
  Ratio: Nve,
  Raw: Dve,
  Rule: Lve,
  Selector: Mve,
  SelectorList: Rve,
  String: $ve,
  StyleSheet: Uve,
  TypeSelector: qve,
  UnicodeRange: Hve,
  Url: zve,
  Value: Gve,
  WhiteSpace: Yve
}, Symbol.toStringTag, { value: "Module" })), wWt = {
  parseContext: {
    default: "StyleSheet",
    stylesheet: "StyleSheet",
    atrule: "Atrule",
    atrulePrelude(e) {
      return this.AtrulePrelude(e.atrule ? String(e.atrule) : null);
    },
    mediaQueryList: "MediaQueryList",
    mediaQuery: "MediaQuery",
    rule: "Rule",
    selectorList: "SelectorList",
    selector: "Selector",
    block() {
      return this.Block(!0);
    },
    declarationList: "DeclarationList",
    declaration: "Declaration",
    value: "Value"
  },
  scope: hWt,
  atrule: xWt,
  pseudo: EWt,
  node: PWt
}, AWt = {
  node: Xve
}, CWt = q5t($t($t($t({}, KVt), wWt), AWt)), {
  tokenize: wbr,
  parse: Abr,
  generate: Cbr,
  lexer: _br,
  createLexer: Ibr,
  walk: kbr,
  find: Obr,
  findLast: Nbr,
  findAll: Dbr,
  toPlainObject: Lbr,
  fromPlainObject: Mbr,
  fork: _Wt
} = CWt, IWt = "Comparison", kWt = {
  value: String
};
function OWt() {
  const e = this.tokenStart, t = this.consume(Cr);
  t !== "<" && t !== ">" && t !== "=" && this.error("Malformed comparison operator");
  let r;
  this.tokenType === Cr && (r = this.consume(Cr), r !== "=" && this.error("Malformed comparison operator")), this.tokenType === Cr && this.error("Malformed comparison operator");
  const i = r ? "".concat(t).concat(r) : t;
  return {
    type: "Comparison",
    loc: this.getLocation(e, this.tokenStart),
    value: i
  };
}
function NWt(e) {
  for (let t = 0; t < e.value.length; t++)
    this.token(Cr, e.value.charAt(t));
}
const DWt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: NWt,
  name: IWt,
  parse: OWt,
  structure: kWt
}, Symbol.toStringTag, { value: "Module" })), LWt = "ContainerFeatureStyle", MWt = {
  name: String,
  value: ["Function", "Identifier", "Number", "Dimension", "QueryCSSFunction", "Ratio", null]
};
function RWt() {
  const e = this.tokenStart;
  let t = null;
  this.consumeFunctionName() !== "style" && this.error('Unknown container style query identifier; "style" is expected'), this.skipSC();
  const i = this.consume(Nt);
  if (this.skipSC(), this.tokenType !== Wr) {
    switch (this.eat(Rn), this.skipSC(), this.tokenType) {
      case yr:
        this.lookupNonWSType(1) === Cr ? t = this.Ratio() : t = this.Number();
        break;
      case Gr:
        t = this.Dimension();
        break;
      case Vr:
        t = this.QueryCSSFunction();
        break;
      case Nt:
        t = this.Identifier();
        break;
      default:
        this.error("Number, dimension, ratio, function or identifier is expected");
        break;
    }
    this.skipSC();
  }
  return this.eat(Wr), {
    type: "ContainerFeatureStyle",
    loc: this.getLocation(e, this.tokenStart),
    name: i,
    value: t
  };
}
function BWt(e) {
  this.token(Vr, "style("), this.token(Nt, e.name), e.value !== null && (this.token(Rn, ":"), this.node(e.value)), this.token(Wr, ")");
}
const FWt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: BWt,
  name: LWt,
  parse: RWt,
  structure: MWt
}, Symbol.toStringTag, { value: "Module" }));
function Zve() {
  let e, t = 0, r = 0, i = !1, n = !0;
  do
    if (e = this.lookupNonWSType(t++), e !== Zi && r++, e === Cr && (i = !0), e === Rn && (n = !1), e === Ts || e === Wr)
      break;
  while (e !== WP && r <= 6);
  return i && n;
}
const jWt = /* @__PURE__ */ new Set(["none", "and", "not", "or"]), $Wt = "ContainerQuery", UWt = {
  name: "Identifier",
  children: [
    ["Identifier", "QueryFeature", "QueryFeatureRange", "ContainerFeatureStyle", "WhiteSpace"]
  ]
};
function qWt() {
  const e = this.tokenStart, t = this.createList();
  let r = null, i = null;
  if (this.tokenType === Nt) {
    const n = this.substring(this.tokenStart, this.tokenEnd);
    jWt.has(n.toLowerCase()) || (i = n, this.eatIdent(n));
  }
  this.skipSC();
  e:
    for (; !this.eof; ) {
      switch (this.tokenType) {
        case Ss:
        case Zi:
          this.next();
          continue;
        case Nt:
          r = this.Identifier();
          break;
        case Vr:
          r = this.ContainerFeatureStyle();
          break;
        case vn:
          r = Zve.call(this) ? this.QueryFeatureRange() : this.QueryFeature();
          break;
        default:
          break e;
      }
      t.push(r);
    }
  return r === null && this.error("Identifier or parenthesis is expected"), {
    type: "ContainerQuery",
    loc: this.getLocation(e, this.tokenStart - 1),
    name: i,
    children: t
  };
}
function VWt(e) {
  typeof e.name == "string" && this.token(Nt, e.name), this.children(e);
}
const WWt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: VWt,
  name: $Wt,
  parse: qWt,
  structure: UWt
}, Symbol.toStringTag, { value: "Module" })), HWt = "MediaQuery", KWt = {
  children: [["Identifier", "QueryFeature", "QueryFeatureRange", "WhiteSpace"]]
};
function zWt() {
  const e = this.createList();
  let t = null;
  this.skipSC();
  e:
    for (; !this.eof; ) {
      switch (this.tokenType) {
        case Ss:
        case Zi:
          this.next();
          continue;
        case Nt:
          t = this.Identifier();
          break;
        case vn:
          t = Zve.call(this) ? this.QueryFeatureRange() : this.QueryFeature();
          break;
        default:
          break e;
      }
      e.push(t);
    }
  return t === null && this.error("Identifier or parenthesis is expected"), {
    type: "MediaQuery",
    loc: this.getLocationFromList(e),
    children: e
  };
}
function GWt(e) {
  this.children(e);
}
const YWt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: GWt,
  name: HWt,
  parse: zWt,
  structure: KWt
}, Symbol.toStringTag, { value: "Module" })), XWt = "QueryFeature", JWt = {
  name: String,
  value: ["Identifier", "Number", "Dimension", "QueryCSSFunction", "Ratio", null]
};
function QWt() {
  const e = this.tokenStart;
  let t = null;
  this.eat(vn), this.skipSC();
  const r = this.consume(Nt);
  if (this.skipSC(), this.tokenType !== Wr) {
    switch (this.eat(Rn), this.skipSC(), this.tokenType) {
      case yr:
        this.lookupNonWSType(1) === Cr ? t = this.Ratio() : t = this.Number();
        break;
      case Gr:
        t = this.Dimension();
        break;
      case Vr:
        t = this.QueryCSSFunction();
        break;
      case Nt:
        t = this.Identifier();
        break;
      default:
        this.error("Number, dimension, ratio, function, or identifier is expected");
        break;
    }
    this.skipSC();
  }
  return this.eat(Wr), {
    type: "QueryFeature",
    loc: this.getLocation(e, this.tokenStart),
    name: r,
    value: t
  };
}
function ZWt(e) {
  this.token(vn, "("), this.token(Nt, e.name), e.value !== null && (this.token(Rn, ":"), this.node(e.value)), this.token(Wr, ")");
}
const eHt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: ZWt,
  name: XWt,
  parse: QWt,
  structure: JWt
}, Symbol.toStringTag, { value: "Module" })), tHt = "QueryFeatureRange", rHt = {
  name: String,
  value: ["Identifier", "Number", "Comparison", "Dimension", "QueryCSSFunction", "Ratio", null]
};
function iHt(e, t, r) {
  let i;
  do
    if (i = this.lookupType(e++), i !== Zi)
      break;
  while (i !== 0);
  return i === t ? this.lookupValue(e - 1, r) : !1;
}
function nHt() {
  const e = this.tokenStart, t = this.createList();
  let r = null;
  for (this.eat(vn), this.skipSC(); !this.eof && this.tokenType !== Wr; ) {
    switch (this.tokenType) {
      case yr:
        iHt.call(this, 1, Cr, "/") ? r = this.Ratio() : r = this.Number();
        break;
      case Cr:
        r = this.Comparison();
        break;
      case Gr:
        r = this.Dimension();
        break;
      case Vr:
        r = this.QueryCSSFunction();
        break;
      case Nt:
        r = this.Identifier();
        break;
      default:
        this.error("Number, dimension, comparison, ratio, function, or identifier is expected");
        break;
    }
    t.push(r), this.skipSC();
  }
  return this.eat(Wr), {
    type: "QueryFeatureRange",
    loc: this.getLocation(e, this.tokenStart),
    children: t
  };
}
function sHt(e) {
  this.children(e);
}
const aHt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: sHt,
  name: tHt,
  parse: nHt,
  structure: rHt
}, Symbol.toStringTag, { value: "Module" })), oHt = /* @__PURE__ */ new Set(["calc", "clamp", "min", "max"]), lHt = "QueryCSSFunction", uHt = {
  name: String,
  expression: String
};
function cHt() {
  const e = this.tokenStart, t = this.consumeFunctionName();
  oHt.has(t) || this.error('Unknown query single value function; expected: "calc", "clamp", "max", min"');
  const r = this.Raw(this.tokenIndex, null, !1);
  return this.eat(Wr), {
    type: "QueryCSSFunction",
    loc: this.getLocation(e, this.tokenStart),
    name: t,
    expression: r.value
  };
}
function pHt(e) {
  this.token(Function, "".concat(e.name, "(")), this.node(e.expression), this.token(Wr, ")");
}
const fHt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  generate: pHt,
  name: lHt,
  parse: cHt,
  structure: uHt
}, Symbol.toStringTag, { value: "Module" })), hHt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  Comparison: DWt,
  ContainerFeatureStyle: FWt,
  ContainerQuery: WWt,
  MediaQuery: YWt,
  QueryCSSFunction: fHt,
  QueryFeature: eHt,
  QueryFeatureRange: aHt
}, Symbol.toStringTag, { value: "Module" })), dHt = _Wt({
  atrule: {
    // extend or override at-rule dictionary
    container: {
      parse: {
        prelude() {
          return this.createSingleNodeList(this.ContainerQuery());
        },
        block(e = !1) {
          return this.Block(e);
        }
      }
    }
  },
  node: hHt
}), mHt = dHt.parse, yHt = /<\/style\s*>/, Mte = /^<\/style\s*>/;
function gHt(e, t, r) {
  const i = e.index, n = e.read_until(yHt, ar.unclosed_style);
  e.index >= e.template.length && e.error(ar.unclosed_style);
  const s = e.index;
  if (e.css_mode === "none")
    return e.read(Mte), null;
  let a;
  try {
    a = mHt(n, {
      positions: !0,
      offset: i,
      onParseError(l) {
        throw l;
      }
    });
  } catch (l) {
    if (l.name === "SyntaxError")
      e.error(ar.css_syntax_error(l.message), l.offset);
    else
      throw l;
  }
  a = JSON.parse(JSON.stringify(a)), PS(a, {
    /** @param {any} node */
    enter: (l) => {
      if (l.type === "Selector")
        for (let u = 0; u < l.children.length; u += 1) {
          const c = l.children[u], f = l.children[u + 1];
          bHt(c, f) && e.error(ar.invalid_ref_selector, c.loc.start.offset);
        }
      l.type === "Declaration" && l.value.type === "Value" && l.value.children.length === 0 && e.error(ar.invalid_declaration, l.start), l.type === "PseudoClassSelector" && l.name === "global" && l.children === null && e.error(ar.empty_global_selector, l.loc.start.offset), l.loc && (l.start = l.loc.start.offset, l.end = l.loc.end.offset, delete l.loc);
    }
  }), e.read(Mte);
  const o = e.index;
  return {
    type: "Style",
    start: t,
    end: o,
    attributes: r,
    children: a.children,
    content: {
      start: i,
      end: s,
      styles: n
    }
  };
}
function bHt(e, t) {
  return t ? e.type === "TypeSelector" && e.name === "ref" && t.type === "PseudoClassSelector" : !1;
}
const eTe = {
  "CounterClockwiseContourIntegral;": 8755,
  "ClockwiseContourIntegral;": 8754,
  "DoubleLongLeftRightArrow;": 10234,
  "NotNestedGreaterGreater;": 10914,
  "DiacriticalDoubleAcute;": 733,
  "NotSquareSupersetEqual;": 8931,
  "CloseCurlyDoubleQuote;": 8221,
  "DoubleContourIntegral;": 8751,
  "FilledVerySmallSquare;": 9642,
  "NegativeVeryThinSpace;": 8203,
  "NotPrecedesSlantEqual;": 8928,
  "NotRightTriangleEqual;": 8941,
  "NotSucceedsSlantEqual;": 8929,
  "CapitalDifferentialD;": 8517,
  "DoubleLeftRightArrow;": 8660,
  "DoubleLongRightArrow;": 10233,
  "EmptyVerySmallSquare;": 9643,
  "NestedGreaterGreater;": 8811,
  "NotDoubleVerticalBar;": 8742,
  "NotGreaterSlantEqual;": 10878,
  "NotLeftTriangleEqual;": 8940,
  "NotSquareSubsetEqual;": 8930,
  "OpenCurlyDoubleQuote;": 8220,
  "ReverseUpEquilibrium;": 10607,
  "DoubleLongLeftArrow;": 10232,
  "DownLeftRightVector;": 10576,
  "LeftArrowRightArrow;": 8646,
  "NegativeMediumSpace;": 8203,
  "NotGreaterFullEqual;": 8807,
  "NotRightTriangleBar;": 10704,
  "RightArrowLeftArrow;": 8644,
  "SquareSupersetEqual;": 8850,
  "leftrightsquigarrow;": 8621,
  "DownRightTeeVector;": 10591,
  "DownRightVectorBar;": 10583,
  "LongLeftRightArrow;": 10231,
  "Longleftrightarrow;": 10234,
  "NegativeThickSpace;": 8203,
  "NotLeftTriangleBar;": 10703,
  "PrecedesSlantEqual;": 8828,
  "ReverseEquilibrium;": 8651,
  "RightDoubleBracket;": 10215,
  "RightDownTeeVector;": 10589,
  "RightDownVectorBar;": 10581,
  "RightTriangleEqual;": 8885,
  "SquareIntersection;": 8851,
  "SucceedsSlantEqual;": 8829,
  "blacktriangleright;": 9656,
  "longleftrightarrow;": 10231,
  "DoubleUpDownArrow;": 8661,
  "DoubleVerticalBar;": 8741,
  "DownLeftTeeVector;": 10590,
  "DownLeftVectorBar;": 10582,
  "FilledSmallSquare;": 9724,
  "GreaterSlantEqual;": 10878,
  "LeftDoubleBracket;": 10214,
  "LeftDownTeeVector;": 10593,
  "LeftDownVectorBar;": 10585,
  "LeftTriangleEqual;": 8884,
  "NegativeThinSpace;": 8203,
  "NotGreaterGreater;": 8811,
  "NotLessSlantEqual;": 10877,
  "NotNestedLessLess;": 10913,
  "NotReverseElement;": 8716,
  "NotSquareSuperset;": 8848,
  "NotTildeFullEqual;": 8775,
  "RightAngleBracket;": 10217,
  "RightUpDownVector;": 10575,
  "SquareSubsetEqual;": 8849,
  "VerticalSeparator;": 10072,
  "blacktriangledown;": 9662,
  "blacktriangleleft;": 9666,
  "leftrightharpoons;": 8651,
  "rightleftharpoons;": 8652,
  "twoheadrightarrow;": 8608,
  "DiacriticalAcute;": 180,
  "DiacriticalGrave;": 96,
  "DiacriticalTilde;": 732,
  "DoubleRightArrow;": 8658,
  "DownArrowUpArrow;": 8693,
  "EmptySmallSquare;": 9723,
  "GreaterEqualLess;": 8923,
  "GreaterFullEqual;": 8807,
  "LeftAngleBracket;": 10216,
  "LeftUpDownVector;": 10577,
  "LessEqualGreater;": 8922,
  "NonBreakingSpace;": 160,
  "NotPrecedesEqual;": 10927,
  "NotRightTriangle;": 8939,
  "NotSucceedsEqual;": 10928,
  "NotSucceedsTilde;": 8831,
  "NotSupersetEqual;": 8841,
  "RightTriangleBar;": 10704,
  "RightUpTeeVector;": 10588,
  "RightUpVectorBar;": 10580,
  "UnderParenthesis;": 9181,
  "UpArrowDownArrow;": 8645,
  "circlearrowright;": 8635,
  "downharpoonright;": 8642,
  "ntrianglerighteq;": 8941,
  "rightharpoondown;": 8641,
  "rightrightarrows;": 8649,
  "twoheadleftarrow;": 8606,
  "vartriangleright;": 8883,
  "CloseCurlyQuote;": 8217,
  "ContourIntegral;": 8750,
  "DoubleDownArrow;": 8659,
  "DoubleLeftArrow;": 8656,
  "DownRightVector;": 8641,
  "LeftRightVector;": 10574,
  "LeftTriangleBar;": 10703,
  "LeftUpTeeVector;": 10592,
  "LeftUpVectorBar;": 10584,
  "LowerRightArrow;": 8600,
  "NotGreaterEqual;": 8817,
  "NotGreaterTilde;": 8821,
  "NotHumpDownHump;": 8782,
  "NotLeftTriangle;": 8938,
  "NotSquareSubset;": 8847,
  "OverParenthesis;": 9180,
  "RightDownVector;": 8642,
  "ShortRightArrow;": 8594,
  "UpperRightArrow;": 8599,
  "bigtriangledown;": 9661,
  "circlearrowleft;": 8634,
  "curvearrowright;": 8631,
  "downharpoonleft;": 8643,
  "leftharpoondown;": 8637,
  "leftrightarrows;": 8646,
  "nLeftrightarrow;": 8654,
  "nleftrightarrow;": 8622,
  "ntrianglelefteq;": 8940,
  "rightleftarrows;": 8644,
  "rightsquigarrow;": 8605,
  "rightthreetimes;": 8908,
  "straightepsilon;": 1013,
  "trianglerighteq;": 8885,
  "vartriangleleft;": 8882,
  "DiacriticalDot;": 729,
  "DoubleRightTee;": 8872,
  "DownLeftVector;": 8637,
  "GreaterGreater;": 10914,
  "HorizontalLine;": 9472,
  "InvisibleComma;": 8291,
  "InvisibleTimes;": 8290,
  "LeftDownVector;": 8643,
  "LeftRightArrow;": 8596,
  "Leftrightarrow;": 8660,
  "LessSlantEqual;": 10877,
  "LongRightArrow;": 10230,
  "Longrightarrow;": 10233,
  "LowerLeftArrow;": 8601,
  "NestedLessLess;": 8810,
  "NotGreaterLess;": 8825,
  "NotLessGreater;": 8824,
  "NotSubsetEqual;": 8840,
  "NotVerticalBar;": 8740,
  "OpenCurlyQuote;": 8216,
  "ReverseElement;": 8715,
  "RightTeeVector;": 10587,
  "RightVectorBar;": 10579,
  "ShortDownArrow;": 8595,
  "ShortLeftArrow;": 8592,
  "SquareSuperset;": 8848,
  "TildeFullEqual;": 8773,
  "UpperLeftArrow;": 8598,
  "ZeroWidthSpace;": 8203,
  "curvearrowleft;": 8630,
  "doublebarwedge;": 8966,
  "downdownarrows;": 8650,
  "hookrightarrow;": 8618,
  "leftleftarrows;": 8647,
  "leftrightarrow;": 8596,
  "leftthreetimes;": 8907,
  "longrightarrow;": 10230,
  "looparrowright;": 8620,
  "nshortparallel;": 8742,
  "ntriangleright;": 8939,
  "rightarrowtail;": 8611,
  "rightharpoonup;": 8640,
  "trianglelefteq;": 8884,
  "upharpoonright;": 8638,
  "ApplyFunction;": 8289,
  "DifferentialD;": 8518,
  "DoubleLeftTee;": 10980,
  "DoubleUpArrow;": 8657,
  "LeftTeeVector;": 10586,
  "LeftVectorBar;": 10578,
  "LessFullEqual;": 8806,
  "LongLeftArrow;": 10229,
  "Longleftarrow;": 10232,
  "NotEqualTilde;": 8770,
  "NotTildeEqual;": 8772,
  "NotTildeTilde;": 8777,
  "Poincareplane;": 8460,
  "PrecedesEqual;": 10927,
  "PrecedesTilde;": 8830,
  "RightArrowBar;": 8677,
  "RightTeeArrow;": 8614,
  "RightTriangle;": 8883,
  "RightUpVector;": 8638,
  "SucceedsEqual;": 10928,
  "SucceedsTilde;": 8831,
  "SupersetEqual;": 8839,
  "UpEquilibrium;": 10606,
  "VerticalTilde;": 8768,
  "VeryThinSpace;": 8202,
  "bigtriangleup;": 9651,
  "blacktriangle;": 9652,
  "divideontimes;": 8903,
  "fallingdotseq;": 8786,
  "hookleftarrow;": 8617,
  "leftarrowtail;": 8610,
  "leftharpoonup;": 8636,
  "longleftarrow;": 10229,
  "looparrowleft;": 8619,
  "measuredangle;": 8737,
  "ntriangleleft;": 8938,
  "shortparallel;": 8741,
  "smallsetminus;": 8726,
  "triangleright;": 9657,
  "upharpoonleft;": 8639,
  "varsubsetneqq;": 10955,
  "varsupsetneqq;": 10956,
  "DownArrowBar;": 10515,
  "DownTeeArrow;": 8615,
  "ExponentialE;": 8519,
  "GreaterEqual;": 8805,
  "GreaterTilde;": 8819,
  "HilbertSpace;": 8459,
  "HumpDownHump;": 8782,
  "Intersection;": 8898,
  "LeftArrowBar;": 8676,
  "LeftTeeArrow;": 8612,
  "LeftTriangle;": 8882,
  "LeftUpVector;": 8639,
  "NotCongruent;": 8802,
  "NotHumpEqual;": 8783,
  "NotLessEqual;": 8816,
  "NotLessTilde;": 8820,
  "Proportional;": 8733,
  "RightCeiling;": 8969,
  "RoundImplies;": 10608,
  "ShortUpArrow;": 8593,
  "SquareSubset;": 8847,
  "UnderBracket;": 9141,
  "VerticalLine;": 124,
  "blacklozenge;": 10731,
  "exponentiale;": 8519,
  "risingdotseq;": 8787,
  "triangledown;": 9663,
  "triangleleft;": 9667,
  "varsubsetneq;": 8842,
  "varsupsetneq;": 8843,
  "CircleMinus;": 8854,
  "CircleTimes;": 8855,
  "Equilibrium;": 8652,
  "GreaterLess;": 8823,
  "LeftCeiling;": 8968,
  "LessGreater;": 8822,
  "MediumSpace;": 8287,
  "NotLessLess;": 8810,
  "NotPrecedes;": 8832,
  "NotSucceeds;": 8833,
  "NotSuperset;": 8835,
  "OverBracket;": 9140,
  "RightVector;": 8640,
  "Rrightarrow;": 8667,
  "RuleDelayed;": 10740,
  "SmallCircle;": 8728,
  "SquareUnion;": 8852,
  "SubsetEqual;": 8838,
  "UpDownArrow;": 8597,
  "Updownarrow;": 8661,
  "VerticalBar;": 8739,
  "backepsilon;": 1014,
  "blacksquare;": 9642,
  "circledcirc;": 8858,
  "circleddash;": 8861,
  "curlyeqprec;": 8926,
  "curlyeqsucc;": 8927,
  "diamondsuit;": 9830,
  "eqslantless;": 10901,
  "expectation;": 8496,
  "nRightarrow;": 8655,
  "nrightarrow;": 8603,
  "preccurlyeq;": 8828,
  "precnapprox;": 10937,
  "quaternions;": 8461,
  "straightphi;": 981,
  "succcurlyeq;": 8829,
  "succnapprox;": 10938,
  "thickapprox;": 8776,
  "updownarrow;": 8597,
  "Bernoullis;": 8492,
  "CirclePlus;": 8853,
  "EqualTilde;": 8770,
  "Fouriertrf;": 8497,
  "ImaginaryI;": 8520,
  "Laplacetrf;": 8466,
  "LeftVector;": 8636,
  "Lleftarrow;": 8666,
  "NotElement;": 8713,
  "NotGreater;": 8815,
  "Proportion;": 8759,
  "RightArrow;": 8594,
  "RightFloor;": 8971,
  "Rightarrow;": 8658,
  "ThickSpace;": 8287,
  "TildeEqual;": 8771,
  "TildeTilde;": 8776,
  "UnderBrace;": 9183,
  "UpArrowBar;": 10514,
  "UpTeeArrow;": 8613,
  "circledast;": 8859,
  "complement;": 8705,
  "curlywedge;": 8911,
  "eqslantgtr;": 10902,
  "gtreqqless;": 10892,
  "lessapprox;": 10885,
  "lesseqqgtr;": 10891,
  "lmoustache;": 9136,
  "longmapsto;": 10236,
  "mapstodown;": 8615,
  "mapstoleft;": 8612,
  "nLeftarrow;": 8653,
  "nleftarrow;": 8602,
  "nsubseteqq;": 10949,
  "nsupseteqq;": 10950,
  "precapprox;": 10935,
  "rightarrow;": 8594,
  "rmoustache;": 9137,
  "sqsubseteq;": 8849,
  "sqsupseteq;": 8850,
  "subsetneqq;": 10955,
  "succapprox;": 10936,
  "supsetneqq;": 10956,
  "upuparrows;": 8648,
  "varepsilon;": 1013,
  "varnothing;": 8709,
  "Backslash;": 8726,
  "CenterDot;": 183,
  "CircleDot;": 8857,
  "Congruent;": 8801,
  "Coproduct;": 8720,
  "DoubleDot;": 168,
  "DownArrow;": 8595,
  "DownBreve;": 785,
  "Downarrow;": 8659,
  "HumpEqual;": 8783,
  "LeftArrow;": 8592,
  "LeftFloor;": 8970,
  "Leftarrow;": 8656,
  "LessTilde;": 8818,
  "Mellintrf;": 8499,
  "MinusPlus;": 8723,
  "NotCupCap;": 8813,
  "NotExists;": 8708,
  "NotSubset;": 8834,
  "OverBrace;": 9182,
  "PlusMinus;": 177,
  "Therefore;": 8756,
  "ThinSpace;": 8201,
  "TripleDot;": 8411,
  "UnionPlus;": 8846,
  "backprime;": 8245,
  "backsimeq;": 8909,
  "bigotimes;": 10754,
  "centerdot;": 183,
  "checkmark;": 10003,
  "complexes;": 8450,
  "dotsquare;": 8865,
  "downarrow;": 8595,
  "gtrapprox;": 10886,
  "gtreqless;": 8923,
  "gvertneqq;": 8809,
  "heartsuit;": 9829,
  "leftarrow;": 8592,
  "lesseqgtr;": 8922,
  "lvertneqq;": 8808,
  "ngeqslant;": 10878,
  "nleqslant;": 10877,
  "nparallel;": 8742,
  "nshortmid;": 8740,
  "nsubseteq;": 8840,
  "nsupseteq;": 8841,
  "pitchfork;": 8916,
  "rationals;": 8474,
  "spadesuit;": 9824,
  "subseteqq;": 10949,
  "subsetneq;": 8842,
  "supseteqq;": 10950,
  "supsetneq;": 8843,
  "therefore;": 8756,
  "triangleq;": 8796,
  "varpropto;": 8733,
  "DDotrahd;": 10513,
  "DotEqual;": 8784,
  "Integral;": 8747,
  "LessLess;": 10913,
  "NotEqual;": 8800,
  "NotTilde;": 8769,
  "PartialD;": 8706,
  "Precedes;": 8826,
  "RightTee;": 8866,
  "Succeeds;": 8827,
  "SuchThat;": 8715,
  "Superset;": 8835,
  "Uarrocir;": 10569,
  "UnderBar;": 95,
  "andslope;": 10840,
  "angmsdaa;": 10664,
  "angmsdab;": 10665,
  "angmsdac;": 10666,
  "angmsdad;": 10667,
  "angmsdae;": 10668,
  "angmsdaf;": 10669,
  "angmsdag;": 10670,
  "angmsdah;": 10671,
  "angrtvbd;": 10653,
  "approxeq;": 8778,
  "awconint;": 8755,
  "backcong;": 8780,
  "barwedge;": 8965,
  "bbrktbrk;": 9142,
  "bigoplus;": 10753,
  "bigsqcup;": 10758,
  "biguplus;": 10756,
  "bigwedge;": 8896,
  "boxminus;": 8863,
  "boxtimes;": 8864,
  "bsolhsub;": 10184,
  "capbrcup;": 10825,
  "circledR;": 174,
  "circledS;": 9416,
  "cirfnint;": 10768,
  "clubsuit;": 9827,
  "cupbrcap;": 10824,
  "curlyvee;": 8910,
  "cwconint;": 8754,
  "doteqdot;": 8785,
  "dotminus;": 8760,
  "drbkarow;": 10512,
  "dzigrarr;": 10239,
  "elinters;": 9191,
  "emptyset;": 8709,
  "eqvparsl;": 10725,
  "fpartint;": 10765,
  "geqslant;": 10878,
  "gesdotol;": 10884,
  "gnapprox;": 10890,
  "hksearow;": 10533,
  "hkswarow;": 10534,
  "imagline;": 8464,
  "imagpart;": 8465,
  "infintie;": 10717,
  "integers;": 8484,
  "intercal;": 8890,
  "intlarhk;": 10775,
  "laemptyv;": 10676,
  "ldrushar;": 10571,
  "leqslant;": 10877,
  "lesdotor;": 10883,
  "llcorner;": 8990,
  "lnapprox;": 10889,
  "lrcorner;": 8991,
  "lurdshar;": 10570,
  "mapstoup;": 8613,
  "multimap;": 8888,
  "naturals;": 8469,
  "ncongdot;": 10861,
  "notindot;": 8949,
  "otimesas;": 10806,
  "parallel;": 8741,
  "plusacir;": 10787,
  "pointint;": 10773,
  "precneqq;": 10933,
  "precnsim;": 8936,
  "profalar;": 9006,
  "profline;": 8978,
  "profsurf;": 8979,
  "raemptyv;": 10675,
  "realpart;": 8476,
  "rppolint;": 10770,
  "rtriltri;": 10702,
  "scpolint;": 10771,
  "setminus;": 8726,
  "shortmid;": 8739,
  "smeparsl;": 10724,
  "sqsubset;": 8847,
  "sqsupset;": 8848,
  "subseteq;": 8838,
  "succneqq;": 10934,
  "succnsim;": 8937,
  "supseteq;": 8839,
  "thetasym;": 977,
  "thicksim;": 8764,
  "timesbar;": 10801,
  "triangle;": 9653,
  "triminus;": 10810,
  "trpezium;": 9186,
  "ulcorner;": 8988,
  "urcorner;": 8989,
  "varkappa;": 1008,
  "varsigma;": 962,
  "vartheta;": 977,
  "Because;": 8757,
  "Cayleys;": 8493,
  "Cconint;": 8752,
  "Cedilla;": 184,
  "Diamond;": 8900,
  "DownTee;": 8868,
  "Element;": 8712,
  "Epsilon;": 917,
  "Implies;": 8658,
  "LeftTee;": 8867,
  "NewLine;": 10,
  "NoBreak;": 8288,
  "NotLess;": 8814,
  "Omicron;": 927,
  "OverBar;": 8254,
  "Product;": 8719,
  "UpArrow;": 8593,
  "Uparrow;": 8657,
  "Upsilon;": 933,
  "alefsym;": 8501,
  "angrtvb;": 8894,
  "angzarr;": 9084,
  "asympeq;": 8781,
  "backsim;": 8765,
  "because;": 8757,
  "bemptyv;": 10672,
  "between;": 8812,
  "bigcirc;": 9711,
  "bigodot;": 10752,
  "bigstar;": 9733,
  "bnequiv;": 8801,
  "boxplus;": 8862,
  "ccupssm;": 10832,
  "cemptyv;": 10674,
  "cirscir;": 10690,
  "coloneq;": 8788,
  "congdot;": 10861,
  "cudarrl;": 10552,
  "cudarrr;": 10549,
  "cularrp;": 10557,
  "curarrm;": 10556,
  "dbkarow;": 10511,
  "ddagger;": 8225,
  "ddotseq;": 10871,
  "demptyv;": 10673,
  "diamond;": 8900,
  "digamma;": 989,
  "dotplus;": 8724,
  "dwangle;": 10662,
  "epsilon;": 949,
  "eqcolon;": 8789,
  "equivDD;": 10872,
  "gesdoto;": 10882,
  "gtquest;": 10876,
  "gtrless;": 8823,
  "harrcir;": 10568,
  "intprod;": 10812,
  "isindot;": 8949,
  "larrbfs;": 10527,
  "larrsim;": 10611,
  "lbrksld;": 10639,
  "lbrkslu;": 10637,
  "ldrdhar;": 10599,
  "lesdoto;": 10881,
  "lessdot;": 8918,
  "lessgtr;": 8822,
  "lesssim;": 8818,
  "lotimes;": 10804,
  "lozenge;": 9674,
  "ltquest;": 10875,
  "luruhar;": 10598,
  "maltese;": 10016,
  "minusdu;": 10794,
  "napprox;": 8777,
  "natural;": 9838,
  "nearrow;": 8599,
  "nexists;": 8708,
  "notinva;": 8713,
  "notinvb;": 8951,
  "notinvc;": 8950,
  "notniva;": 8716,
  "notnivb;": 8958,
  "notnivc;": 8957,
  "npolint;": 10772,
  "npreceq;": 10927,
  "nsqsube;": 8930,
  "nsqsupe;": 8931,
  "nsubset;": 8834,
  "nsucceq;": 10928,
  "nsupset;": 8835,
  "nvinfin;": 10718,
  "nvltrie;": 8884,
  "nvrtrie;": 8885,
  "nwarrow;": 8598,
  "olcross;": 10683,
  "omicron;": 959,
  "orderof;": 8500,
  "orslope;": 10839,
  "pertenk;": 8241,
  "planckh;": 8462,
  "pluscir;": 10786,
  "plussim;": 10790,
  "plustwo;": 10791,
  "precsim;": 8830,
  "quatint;": 10774,
  "questeq;": 8799,
  "rarrbfs;": 10528,
  "rarrsim;": 10612,
  "rbrksld;": 10638,
  "rbrkslu;": 10640,
  "rdldhar;": 10601,
  "realine;": 8475,
  "rotimes;": 10805,
  "ruluhar;": 10600,
  "searrow;": 8600,
  "simplus;": 10788,
  "simrarr;": 10610,
  "subedot;": 10947,
  "submult;": 10945,
  "subplus;": 10943,
  "subrarr;": 10617,
  "succsim;": 8831,
  "supdsub;": 10968,
  "supedot;": 10948,
  "suphsol;": 10185,
  "suphsub;": 10967,
  "suplarr;": 10619,
  "supmult;": 10946,
  "supplus;": 10944,
  "swarrow;": 8601,
  "topfork;": 10970,
  "triplus;": 10809,
  "tritime;": 10811,
  "uparrow;": 8593,
  "upsilon;": 965,
  "uwangle;": 10663,
  "vzigzag;": 10650,
  "zigrarr;": 8669,
  "Aacute;": 193,
  "Abreve;": 258,
  "Agrave;": 192,
  "Assign;": 8788,
  "Atilde;": 195,
  "Barwed;": 8966,
  "Bumpeq;": 8782,
  "Cacute;": 262,
  "Ccaron;": 268,
  "Ccedil;": 199,
  "Colone;": 10868,
  "Conint;": 8751,
  "CupCap;": 8781,
  "Dagger;": 8225,
  "Dcaron;": 270,
  "DotDot;": 8412,
  "Dstrok;": 272,
  "Eacute;": 201,
  "Ecaron;": 282,
  "Egrave;": 200,
  "Exists;": 8707,
  "ForAll;": 8704,
  "Gammad;": 988,
  "Gbreve;": 286,
  "Gcedil;": 290,
  "HARDcy;": 1066,
  "Hstrok;": 294,
  "Iacute;": 205,
  "Igrave;": 204,
  "Itilde;": 296,
  "Jsercy;": 1032,
  "Kcedil;": 310,
  "Lacute;": 313,
  "Lambda;": 923,
  "Lcaron;": 317,
  "Lcedil;": 315,
  "Lmidot;": 319,
  "Lstrok;": 321,
  "Nacute;": 323,
  "Ncaron;": 327,
  "Ncedil;": 325,
  "Ntilde;": 209,
  "Oacute;": 211,
  "Odblac;": 336,
  "Ograve;": 210,
  "Oslash;": 216,
  "Otilde;": 213,
  "Otimes;": 10807,
  "Racute;": 340,
  "Rarrtl;": 10518,
  "Rcaron;": 344,
  "Rcedil;": 342,
  "SHCHcy;": 1065,
  "SOFTcy;": 1068,
  "Sacute;": 346,
  "Scaron;": 352,
  "Scedil;": 350,
  "Square;": 9633,
  "Subset;": 8912,
  "Supset;": 8913,
  "Tcaron;": 356,
  "Tcedil;": 354,
  "Tstrok;": 358,
  "Uacute;": 218,
  "Ubreve;": 364,
  "Udblac;": 368,
  "Ugrave;": 217,
  "Utilde;": 360,
  "Vdashl;": 10982,
  "Verbar;": 8214,
  "Vvdash;": 8874,
  "Yacute;": 221,
  "Zacute;": 377,
  "Zcaron;": 381,
  "aacute;": 225,
  "abreve;": 259,
  "agrave;": 224,
  "andand;": 10837,
  "angmsd;": 8737,
  "angsph;": 8738,
  "apacir;": 10863,
  "approx;": 8776,
  "atilde;": 227,
  "barvee;": 8893,
  "barwed;": 8965,
  "becaus;": 8757,
  "bernou;": 8492,
  "bigcap;": 8898,
  "bigcup;": 8899,
  "bigvee;": 8897,
  "bkarow;": 10509,
  "bottom;": 8869,
  "bowtie;": 8904,
  "boxbox;": 10697,
  "bprime;": 8245,
  "brvbar;": 166,
  "bullet;": 8226,
  "bumpeq;": 8783,
  "cacute;": 263,
  "capand;": 10820,
  "capcap;": 10827,
  "capcup;": 10823,
  "capdot;": 10816,
  "ccaron;": 269,
  "ccedil;": 231,
  "circeq;": 8791,
  "cirmid;": 10991,
  "colone;": 8788,
  "commat;": 64,
  "compfn;": 8728,
  "conint;": 8750,
  "coprod;": 8720,
  "copysr;": 8471,
  "cularr;": 8630,
  "cupcap;": 10822,
  "cupcup;": 10826,
  "cupdot;": 8845,
  "curarr;": 8631,
  "curren;": 164,
  "cylcty;": 9005,
  "dagger;": 8224,
  "daleth;": 8504,
  "dcaron;": 271,
  "dfisht;": 10623,
  "divide;": 247,
  "divonx;": 8903,
  "dlcorn;": 8990,
  "dlcrop;": 8973,
  "dollar;": 36,
  "drcorn;": 8991,
  "drcrop;": 8972,
  "dstrok;": 273,
  "eacute;": 233,
  "easter;": 10862,
  "ecaron;": 283,
  "ecolon;": 8789,
  "egrave;": 232,
  "egsdot;": 10904,
  "elsdot;": 10903,
  "emptyv;": 8709,
  "emsp13;": 8196,
  "emsp14;": 8197,
  "eparsl;": 10723,
  "eqcirc;": 8790,
  "equals;": 61,
  "equest;": 8799,
  "female;": 9792,
  "ffilig;": 64259,
  "ffllig;": 64260,
  "forall;": 8704,
  "frac12;": 189,
  "frac13;": 8531,
  "frac14;": 188,
  "frac15;": 8533,
  "frac16;": 8537,
  "frac18;": 8539,
  "frac23;": 8532,
  "frac25;": 8534,
  "frac34;": 190,
  "frac35;": 8535,
  "frac38;": 8540,
  "frac45;": 8536,
  "frac56;": 8538,
  "frac58;": 8541,
  "frac78;": 8542,
  "gacute;": 501,
  "gammad;": 989,
  "gbreve;": 287,
  "gesdot;": 10880,
  "gesles;": 10900,
  "gtlPar;": 10645,
  "gtrarr;": 10616,
  "gtrdot;": 8919,
  "gtrsim;": 8819,
  "hairsp;": 8202,
  "hamilt;": 8459,
  "hardcy;": 1098,
  "hearts;": 9829,
  "hellip;": 8230,
  "hercon;": 8889,
  "homtht;": 8763,
  "horbar;": 8213,
  "hslash;": 8463,
  "hstrok;": 295,
  "hybull;": 8259,
  "hyphen;": 8208,
  "iacute;": 237,
  "igrave;": 236,
  "iiiint;": 10764,
  "iinfin;": 10716,
  "incare;": 8453,
  "inodot;": 305,
  "intcal;": 8890,
  "iquest;": 191,
  "isinsv;": 8947,
  "itilde;": 297,
  "jsercy;": 1112,
  "kappav;": 1008,
  "kcedil;": 311,
  "kgreen;": 312,
  "lAtail;": 10523,
  "lacute;": 314,
  "lagran;": 8466,
  "lambda;": 955,
  "langle;": 10216,
  "larrfs;": 10525,
  "larrhk;": 8617,
  "larrlp;": 8619,
  "larrpl;": 10553,
  "larrtl;": 8610,
  "latail;": 10521,
  "lbrace;": 123,
  "lbrack;": 91,
  "lcaron;": 318,
  "lcedil;": 316,
  "ldquor;": 8222,
  "lesdot;": 10879,
  "lesges;": 10899,
  "lfisht;": 10620,
  "lfloor;": 8970,
  "lharul;": 10602,
  "llhard;": 10603,
  "lmidot;": 320,
  "lmoust;": 9136,
  "loplus;": 10797,
  "lowast;": 8727,
  "lowbar;": 95,
  "lparlt;": 10643,
  "lrhard;": 10605,
  "lsaquo;": 8249,
  "lsquor;": 8218,
  "lstrok;": 322,
  "lthree;": 8907,
  "ltimes;": 8905,
  "ltlarr;": 10614,
  "ltrPar;": 10646,
  "mapsto;": 8614,
  "marker;": 9646,
  "mcomma;": 10793,
  "midast;": 42,
  "midcir;": 10992,
  "middot;": 183,
  "minusb;": 8863,
  "minusd;": 8760,
  "mnplus;": 8723,
  "models;": 8871,
  "mstpos;": 8766,
  "nVDash;": 8879,
  "nVdash;": 8878,
  "nacute;": 324,
  "nbumpe;": 8783,
  "ncaron;": 328,
  "ncedil;": 326,
  "nearhk;": 10532,
  "nequiv;": 8802,
  "nesear;": 10536,
  "nexist;": 8708,
  "nltrie;": 8940,
  "notinE;": 8953,
  "nparsl;": 11005,
  "nprcue;": 8928,
  "nrarrc;": 10547,
  "nrarrw;": 8605,
  "nrtrie;": 8941,
  "nsccue;": 8929,
  "nsimeq;": 8772,
  "ntilde;": 241,
  "numero;": 8470,
  "nvDash;": 8877,
  "nvHarr;": 10500,
  "nvdash;": 8876,
  "nvlArr;": 10498,
  "nvrArr;": 10499,
  "nwarhk;": 10531,
  "nwnear;": 10535,
  "oacute;": 243,
  "odblac;": 337,
  "odsold;": 10684,
  "ograve;": 242,
  "ominus;": 8854,
  "origof;": 8886,
  "oslash;": 248,
  "otilde;": 245,
  "otimes;": 8855,
  "parsim;": 10995,
  "percnt;": 37,
  "period;": 46,
  "permil;": 8240,
  "phmmat;": 8499,
  "planck;": 8463,
  "plankv;": 8463,
  "plusdo;": 8724,
  "plusdu;": 10789,
  "plusmn;": 177,
  "preceq;": 10927,
  "primes;": 8473,
  "prnsim;": 8936,
  "propto;": 8733,
  "prurel;": 8880,
  "puncsp;": 8200,
  "qprime;": 8279,
  "rAtail;": 10524,
  "racute;": 341,
  "rangle;": 10217,
  "rarrap;": 10613,
  "rarrfs;": 10526,
  "rarrhk;": 8618,
  "rarrlp;": 8620,
  "rarrpl;": 10565,
  "rarrtl;": 8611,
  "ratail;": 10522,
  "rbrace;": 125,
  "rbrack;": 93,
  "rcaron;": 345,
  "rcedil;": 343,
  "rdquor;": 8221,
  "rfisht;": 10621,
  "rfloor;": 8971,
  "rharul;": 10604,
  "rmoust;": 9137,
  "roplus;": 10798,
  "rpargt;": 10644,
  "rsaquo;": 8250,
  "rsquor;": 8217,
  "rthree;": 8908,
  "rtimes;": 8906,
  "sacute;": 347,
  "scaron;": 353,
  "scedil;": 351,
  "scnsim;": 8937,
  "searhk;": 10533,
  "seswar;": 10537,
  "sfrown;": 8994,
  "shchcy;": 1097,
  "sigmaf;": 962,
  "sigmav;": 962,
  "simdot;": 10858,
  "smashp;": 10803,
  "softcy;": 1100,
  "solbar;": 9023,
  "spades;": 9824,
  "sqcaps;": 8851,
  "sqcups;": 8852,
  "sqsube;": 8849,
  "sqsupe;": 8850,
  "square;": 9633,
  "squarf;": 9642,
  "ssetmn;": 8726,
  "ssmile;": 8995,
  "sstarf;": 8902,
  "subdot;": 10941,
  "subset;": 8834,
  "subsim;": 10951,
  "subsub;": 10965,
  "subsup;": 10963,
  "succeq;": 10928,
  "supdot;": 10942,
  "supset;": 8835,
  "supsim;": 10952,
  "supsub;": 10964,
  "supsup;": 10966,
  "swarhk;": 10534,
  "swnwar;": 10538,
  "target;": 8982,
  "tcaron;": 357,
  "tcedil;": 355,
  "telrec;": 8981,
  "there4;": 8756,
  "thetav;": 977,
  "thinsp;": 8201,
  "thksim;": 8764,
  "timesb;": 8864,
  "timesd;": 10800,
  "topbot;": 9014,
  "topcir;": 10993,
  "tprime;": 8244,
  "tridot;": 9708,
  "tstrok;": 359,
  "uacute;": 250,
  "ubreve;": 365,
  "udblac;": 369,
  "ufisht;": 10622,
  "ugrave;": 249,
  "ulcorn;": 8988,
  "ulcrop;": 8975,
  "urcorn;": 8989,
  "urcrop;": 8974,
  "utilde;": 361,
  "vangrt;": 10652,
  "varphi;": 981,
  "varrho;": 1009,
  "veebar;": 8891,
  "vellip;": 8942,
  "verbar;": 124,
  "vsubnE;": 10955,
  "vsubne;": 8842,
  "vsupnE;": 10956,
  "vsupne;": 8843,
  "wedbar;": 10847,
  "wedgeq;": 8793,
  "weierp;": 8472,
  "wreath;": 8768,
  "xoplus;": 10753,
  "xotime;": 10754,
  "xsqcup;": 10758,
  "xuplus;": 10756,
  "xwedge;": 8896,
  "yacute;": 253,
  "zacute;": 378,
  "zcaron;": 382,
  "zeetrf;": 8488,
  "AElig;": 198,
  Aacute: 193,
  "Acirc;": 194,
  Agrave: 192,
  "Alpha;": 913,
  "Amacr;": 256,
  "Aogon;": 260,
  "Aring;": 197,
  Atilde: 195,
  "Breve;": 728,
  Ccedil: 199,
  "Ccirc;": 264,
  "Colon;": 8759,
  "Cross;": 10799,
  "Dashv;": 10980,
  "Delta;": 916,
  Eacute: 201,
  "Ecirc;": 202,
  Egrave: 200,
  "Emacr;": 274,
  "Eogon;": 280,
  "Equal;": 10869,
  "Gamma;": 915,
  "Gcirc;": 284,
  "Hacek;": 711,
  "Hcirc;": 292,
  "IJlig;": 306,
  Iacute: 205,
  "Icirc;": 206,
  Igrave: 204,
  "Imacr;": 298,
  "Iogon;": 302,
  "Iukcy;": 1030,
  "Jcirc;": 308,
  "Jukcy;": 1028,
  "Kappa;": 922,
  Ntilde: 209,
  "OElig;": 338,
  Oacute: 211,
  "Ocirc;": 212,
  Ograve: 210,
  "Omacr;": 332,
  "Omega;": 937,
  Oslash: 216,
  Otilde: 213,
  "Prime;": 8243,
  "RBarr;": 10512,
  "Scirc;": 348,
  "Sigma;": 931,
  "THORN;": 222,
  "TRADE;": 8482,
  "TSHcy;": 1035,
  "Theta;": 920,
  "Tilde;": 8764,
  Uacute: 218,
  "Ubrcy;": 1038,
  "Ucirc;": 219,
  Ugrave: 217,
  "Umacr;": 362,
  "Union;": 8899,
  "Uogon;": 370,
  "UpTee;": 8869,
  "Uring;": 366,
  "VDash;": 8875,
  "Vdash;": 8873,
  "Wcirc;": 372,
  "Wedge;": 8896,
  Yacute: 221,
  "Ycirc;": 374,
  aacute: 225,
  "acirc;": 226,
  "acute;": 180,
  "aelig;": 230,
  agrave: 224,
  "aleph;": 8501,
  "alpha;": 945,
  "amacr;": 257,
  "amalg;": 10815,
  "angle;": 8736,
  "angrt;": 8735,
  "angst;": 197,
  "aogon;": 261,
  "aring;": 229,
  "asymp;": 8776,
  atilde: 227,
  "awint;": 10769,
  "bcong;": 8780,
  "bdquo;": 8222,
  "bepsi;": 1014,
  "blank;": 9251,
  "blk12;": 9618,
  "blk14;": 9617,
  "blk34;": 9619,
  "block;": 9608,
  "boxDL;": 9559,
  "boxDR;": 9556,
  "boxDl;": 9558,
  "boxDr;": 9555,
  "boxHD;": 9574,
  "boxHU;": 9577,
  "boxHd;": 9572,
  "boxHu;": 9575,
  "boxUL;": 9565,
  "boxUR;": 9562,
  "boxUl;": 9564,
  "boxUr;": 9561,
  "boxVH;": 9580,
  "boxVL;": 9571,
  "boxVR;": 9568,
  "boxVh;": 9579,
  "boxVl;": 9570,
  "boxVr;": 9567,
  "boxdL;": 9557,
  "boxdR;": 9554,
  "boxdl;": 9488,
  "boxdr;": 9484,
  "boxhD;": 9573,
  "boxhU;": 9576,
  "boxhd;": 9516,
  "boxhu;": 9524,
  "boxuL;": 9563,
  "boxuR;": 9560,
  "boxul;": 9496,
  "boxur;": 9492,
  "boxvH;": 9578,
  "boxvL;": 9569,
  "boxvR;": 9566,
  "boxvh;": 9532,
  "boxvl;": 9508,
  "boxvr;": 9500,
  "breve;": 728,
  brvbar: 166,
  "bsemi;": 8271,
  "bsime;": 8909,
  "bsolb;": 10693,
  "bumpE;": 10926,
  "bumpe;": 8783,
  "caret;": 8257,
  "caron;": 711,
  "ccaps;": 10829,
  ccedil: 231,
  "ccirc;": 265,
  "ccups;": 10828,
  "cedil;": 184,
  "check;": 10003,
  "clubs;": 9827,
  "colon;": 58,
  "comma;": 44,
  "crarr;": 8629,
  "cross;": 10007,
  "csube;": 10961,
  "csupe;": 10962,
  "ctdot;": 8943,
  "cuepr;": 8926,
  "cuesc;": 8927,
  "cupor;": 10821,
  curren: 164,
  "cuvee;": 8910,
  "cuwed;": 8911,
  "cwint;": 8753,
  "dashv;": 8867,
  "dblac;": 733,
  "ddarr;": 8650,
  "delta;": 948,
  "dharl;": 8643,
  "dharr;": 8642,
  "diams;": 9830,
  "disin;": 8946,
  divide: 247,
  "doteq;": 8784,
  "dtdot;": 8945,
  "dtrif;": 9662,
  "duarr;": 8693,
  "duhar;": 10607,
  "eDDot;": 10871,
  eacute: 233,
  "ecirc;": 234,
  "efDot;": 8786,
  egrave: 232,
  "emacr;": 275,
  "empty;": 8709,
  "eogon;": 281,
  "eplus;": 10865,
  "epsiv;": 1013,
  "eqsim;": 8770,
  "equiv;": 8801,
  "erDot;": 8787,
  "erarr;": 10609,
  "esdot;": 8784,
  "exist;": 8707,
  "fflig;": 64256,
  "filig;": 64257,
  "fjlig;": 102,
  "fllig;": 64258,
  "fltns;": 9649,
  "forkv;": 10969,
  frac12: 189,
  frac14: 188,
  frac34: 190,
  "frasl;": 8260,
  "frown;": 8994,
  "gamma;": 947,
  "gcirc;": 285,
  "gescc;": 10921,
  "gimel;": 8503,
  "gneqq;": 8809,
  "gnsim;": 8935,
  "grave;": 96,
  "gsime;": 10894,
  "gsiml;": 10896,
  "gtcir;": 10874,
  "gtdot;": 8919,
  "harrw;": 8621,
  "hcirc;": 293,
  "hoarr;": 8703,
  iacute: 237,
  "icirc;": 238,
  "iexcl;": 161,
  igrave: 236,
  "iiint;": 8749,
  "iiota;": 8489,
  "ijlig;": 307,
  "imacr;": 299,
  "image;": 8465,
  "imath;": 305,
  "imped;": 437,
  "infin;": 8734,
  "iogon;": 303,
  "iprod;": 10812,
  iquest: 191,
  "isinE;": 8953,
  "isins;": 8948,
  "isinv;": 8712,
  "iukcy;": 1110,
  "jcirc;": 309,
  "jmath;": 567,
  "jukcy;": 1108,
  "kappa;": 954,
  "lAarr;": 8666,
  "lBarr;": 10510,
  "langd;": 10641,
  "laquo;": 171,
  "larrb;": 8676,
  "lates;": 10925,
  "lbarr;": 10508,
  "lbbrk;": 10098,
  "lbrke;": 10635,
  "lceil;": 8968,
  "ldquo;": 8220,
  "lescc;": 10920,
  "lhard;": 8637,
  "lharu;": 8636,
  "lhblk;": 9604,
  "llarr;": 8647,
  "lltri;": 9722,
  "lneqq;": 8808,
  "lnsim;": 8934,
  "loang;": 10220,
  "loarr;": 8701,
  "lobrk;": 10214,
  "lopar;": 10629,
  "lrarr;": 8646,
  "lrhar;": 8651,
  "lrtri;": 8895,
  "lsime;": 10893,
  "lsimg;": 10895,
  "lsquo;": 8216,
  "ltcir;": 10873,
  "ltdot;": 8918,
  "ltrie;": 8884,
  "ltrif;": 9666,
  "mDDot;": 8762,
  "mdash;": 8212,
  "micro;": 181,
  middot: 183,
  "minus;": 8722,
  "mumap;": 8888,
  "nabla;": 8711,
  "napid;": 8779,
  "napos;": 329,
  "natur;": 9838,
  "nbump;": 8782,
  "ncong;": 8775,
  "ndash;": 8211,
  "neArr;": 8663,
  "nearr;": 8599,
  "nedot;": 8784,
  "nesim;": 8770,
  "ngeqq;": 8807,
  "ngsim;": 8821,
  "nhArr;": 8654,
  "nharr;": 8622,
  "nhpar;": 10994,
  "nlArr;": 8653,
  "nlarr;": 8602,
  "nleqq;": 8806,
  "nless;": 8814,
  "nlsim;": 8820,
  "nltri;": 8938,
  "notin;": 8713,
  "notni;": 8716,
  "npart;": 8706,
  "nprec;": 8832,
  "nrArr;": 8655,
  "nrarr;": 8603,
  "nrtri;": 8939,
  "nsime;": 8772,
  "nsmid;": 8740,
  "nspar;": 8742,
  "nsubE;": 10949,
  "nsube;": 8840,
  "nsucc;": 8833,
  "nsupE;": 10950,
  "nsupe;": 8841,
  ntilde: 241,
  "numsp;": 8199,
  "nvsim;": 8764,
  "nwArr;": 8662,
  "nwarr;": 8598,
  oacute: 243,
  "ocirc;": 244,
  "odash;": 8861,
  "oelig;": 339,
  "ofcir;": 10687,
  ograve: 242,
  "ohbar;": 10677,
  "olarr;": 8634,
  "olcir;": 10686,
  "oline;": 8254,
  "omacr;": 333,
  "omega;": 969,
  "operp;": 10681,
  "oplus;": 8853,
  "orarr;": 8635,
  "order;": 8500,
  oslash: 248,
  otilde: 245,
  "ovbar;": 9021,
  "parsl;": 11005,
  "phone;": 9742,
  "plusb;": 8862,
  "pluse;": 10866,
  plusmn: 177,
  "pound;": 163,
  "prcue;": 8828,
  "prime;": 8242,
  "prnap;": 10937,
  "prsim;": 8830,
  "quest;": 63,
  "rAarr;": 8667,
  "rBarr;": 10511,
  "radic;": 8730,
  "rangd;": 10642,
  "range;": 10661,
  "raquo;": 187,
  "rarrb;": 8677,
  "rarrc;": 10547,
  "rarrw;": 8605,
  "ratio;": 8758,
  "rbarr;": 10509,
  "rbbrk;": 10099,
  "rbrke;": 10636,
  "rceil;": 8969,
  "rdquo;": 8221,
  "reals;": 8477,
  "rhard;": 8641,
  "rharu;": 8640,
  "rlarr;": 8644,
  "rlhar;": 8652,
  "rnmid;": 10990,
  "roang;": 10221,
  "roarr;": 8702,
  "robrk;": 10215,
  "ropar;": 10630,
  "rrarr;": 8649,
  "rsquo;": 8217,
  "rtrie;": 8885,
  "rtrif;": 9656,
  "sbquo;": 8218,
  "sccue;": 8829,
  "scirc;": 349,
  "scnap;": 10938,
  "scsim;": 8831,
  "sdotb;": 8865,
  "sdote;": 10854,
  "seArr;": 8664,
  "searr;": 8600,
  "setmn;": 8726,
  "sharp;": 9839,
  "sigma;": 963,
  "simeq;": 8771,
  "simgE;": 10912,
  "simlE;": 10911,
  "simne;": 8774,
  "slarr;": 8592,
  "smile;": 8995,
  "smtes;": 10924,
  "sqcap;": 8851,
  "sqcup;": 8852,
  "sqsub;": 8847,
  "sqsup;": 8848,
  "srarr;": 8594,
  "starf;": 9733,
  "strns;": 175,
  "subnE;": 10955,
  "subne;": 8842,
  "supnE;": 10956,
  "supne;": 8843,
  "swArr;": 8665,
  "swarr;": 8601,
  "szlig;": 223,
  "theta;": 952,
  "thkap;": 8776,
  "thorn;": 254,
  "tilde;": 732,
  "times;": 215,
  "trade;": 8482,
  "trisb;": 10701,
  "tshcy;": 1115,
  "twixt;": 8812,
  uacute: 250,
  "ubrcy;": 1118,
  "ucirc;": 251,
  "udarr;": 8645,
  "udhar;": 10606,
  ugrave: 249,
  "uharl;": 8639,
  "uharr;": 8638,
  "uhblk;": 9600,
  "ultri;": 9720,
  "umacr;": 363,
  "uogon;": 371,
  "uplus;": 8846,
  "upsih;": 978,
  "uring;": 367,
  "urtri;": 9721,
  "utdot;": 8944,
  "utrif;": 9652,
  "uuarr;": 8648,
  "vBarv;": 10985,
  "vDash;": 8872,
  "varpi;": 982,
  "vdash;": 8866,
  "veeeq;": 8794,
  "vltri;": 8882,
  "vnsub;": 8834,
  "vnsup;": 8835,
  "vprop;": 8733,
  "vrtri;": 8883,
  "wcirc;": 373,
  "wedge;": 8743,
  "xcirc;": 9711,
  "xdtri;": 9661,
  "xhArr;": 10234,
  "xharr;": 10231,
  "xlArr;": 10232,
  "xlarr;": 10229,
  "xodot;": 10752,
  "xrArr;": 10233,
  "xrarr;": 10230,
  "xutri;": 9651,
  yacute: 253,
  "ycirc;": 375,
  AElig: 198,
  Acirc: 194,
  "Aopf;": 120120,
  Aring: 197,
  "Ascr;": 119964,
  "Auml;": 196,
  "Barv;": 10983,
  "Beta;": 914,
  "Bopf;": 120121,
  "Bscr;": 8492,
  "CHcy;": 1063,
  "COPY;": 169,
  "Cdot;": 266,
  "Copf;": 8450,
  "Cscr;": 119966,
  "DJcy;": 1026,
  "DScy;": 1029,
  "DZcy;": 1039,
  "Darr;": 8609,
  "Dopf;": 120123,
  "Dscr;": 119967,
  Ecirc: 202,
  "Edot;": 278,
  "Eopf;": 120124,
  "Escr;": 8496,
  "Esim;": 10867,
  "Euml;": 203,
  "Fopf;": 120125,
  "Fscr;": 8497,
  "GJcy;": 1027,
  "Gdot;": 288,
  "Gopf;": 120126,
  "Gscr;": 119970,
  "Hopf;": 8461,
  "Hscr;": 8459,
  "IEcy;": 1045,
  "IOcy;": 1025,
  Icirc: 206,
  "Idot;": 304,
  "Iopf;": 120128,
  "Iota;": 921,
  "Iscr;": 8464,
  "Iuml;": 207,
  "Jopf;": 120129,
  "Jscr;": 119973,
  "KHcy;": 1061,
  "KJcy;": 1036,
  "Kopf;": 120130,
  "Kscr;": 119974,
  "LJcy;": 1033,
  "Lang;": 10218,
  "Larr;": 8606,
  "Lopf;": 120131,
  "Lscr;": 8466,
  "Mopf;": 120132,
  "Mscr;": 8499,
  "NJcy;": 1034,
  "Nopf;": 8469,
  "Nscr;": 119977,
  Ocirc: 212,
  "Oopf;": 120134,
  "Oscr;": 119978,
  "Ouml;": 214,
  "Popf;": 8473,
  "Pscr;": 119979,
  "QUOT;": 34,
  "Qopf;": 8474,
  "Qscr;": 119980,
  "Rang;": 10219,
  "Rarr;": 8608,
  "Ropf;": 8477,
  "Rscr;": 8475,
  "SHcy;": 1064,
  "Sopf;": 120138,
  "Sqrt;": 8730,
  "Sscr;": 119982,
  "Star;": 8902,
  THORN: 222,
  "TScy;": 1062,
  "Topf;": 120139,
  "Tscr;": 119983,
  "Uarr;": 8607,
  Ucirc: 219,
  "Uopf;": 120140,
  "Upsi;": 978,
  "Uscr;": 119984,
  "Uuml;": 220,
  "Vbar;": 10987,
  "Vert;": 8214,
  "Vopf;": 120141,
  "Vscr;": 119985,
  "Wopf;": 120142,
  "Wscr;": 119986,
  "Xopf;": 120143,
  "Xscr;": 119987,
  "YAcy;": 1071,
  "YIcy;": 1031,
  "YUcy;": 1070,
  "Yopf;": 120144,
  "Yscr;": 119988,
  "Yuml;": 376,
  "ZHcy;": 1046,
  "Zdot;": 379,
  "Zeta;": 918,
  "Zopf;": 8484,
  "Zscr;": 119989,
  acirc: 226,
  acute: 180,
  aelig: 230,
  "andd;": 10844,
  "andv;": 10842,
  "ange;": 10660,
  "aopf;": 120146,
  "apid;": 8779,
  "apos;": 39,
  aring: 229,
  "ascr;": 119990,
  "auml;": 228,
  "bNot;": 10989,
  "bbrk;": 9141,
  "beta;": 946,
  "beth;": 8502,
  "bnot;": 8976,
  "bopf;": 120147,
  "boxH;": 9552,
  "boxV;": 9553,
  "boxh;": 9472,
  "boxv;": 9474,
  "bscr;": 119991,
  "bsim;": 8765,
  "bsol;": 92,
  "bull;": 8226,
  "bump;": 8782,
  "caps;": 8745,
  "cdot;": 267,
  cedil: 184,
  "cent;": 162,
  "chcy;": 1095,
  "cirE;": 10691,
  "circ;": 710,
  "cire;": 8791,
  "comp;": 8705,
  "cong;": 8773,
  "copf;": 120148,
  "copy;": 169,
  "cscr;": 119992,
  "csub;": 10959,
  "csup;": 10960,
  "cups;": 8746,
  "dArr;": 8659,
  "dHar;": 10597,
  "darr;": 8595,
  "dash;": 8208,
  "diam;": 8900,
  "djcy;": 1106,
  "dopf;": 120149,
  "dscr;": 119993,
  "dscy;": 1109,
  "dsol;": 10742,
  "dtri;": 9663,
  "dzcy;": 1119,
  "eDot;": 8785,
  "ecir;": 8790,
  ecirc: 234,
  "edot;": 279,
  "emsp;": 8195,
  "ensp;": 8194,
  "eopf;": 120150,
  "epar;": 8917,
  "epsi;": 949,
  "escr;": 8495,
  "esim;": 8770,
  "euml;": 235,
  "euro;": 8364,
  "excl;": 33,
  "flat;": 9837,
  "fnof;": 402,
  "fopf;": 120151,
  "fork;": 8916,
  "fscr;": 119995,
  "gdot;": 289,
  "geqq;": 8807,
  "gesl;": 8923,
  "gjcy;": 1107,
  "gnap;": 10890,
  "gneq;": 10888,
  "gopf;": 120152,
  "gscr;": 8458,
  "gsim;": 8819,
  "gtcc;": 10919,
  "gvnE;": 8809,
  "hArr;": 8660,
  "half;": 189,
  "harr;": 8596,
  "hbar;": 8463,
  "hopf;": 120153,
  "hscr;": 119997,
  icirc: 238,
  "iecy;": 1077,
  iexcl: 161,
  "imof;": 8887,
  "iocy;": 1105,
  "iopf;": 120154,
  "iota;": 953,
  "iscr;": 119998,
  "isin;": 8712,
  "iuml;": 239,
  "jopf;": 120155,
  "jscr;": 119999,
  "khcy;": 1093,
  "kjcy;": 1116,
  "kopf;": 120156,
  "kscr;": 12e4,
  "lArr;": 8656,
  "lHar;": 10594,
  "lang;": 10216,
  laquo: 171,
  "larr;": 8592,
  "late;": 10925,
  "lcub;": 123,
  "ldca;": 10550,
  "ldsh;": 8626,
  "leqq;": 8806,
  "lesg;": 8922,
  "ljcy;": 1113,
  "lnap;": 10889,
  "lneq;": 10887,
  "lopf;": 120157,
  "lozf;": 10731,
  "lpar;": 40,
  "lscr;": 120001,
  "lsim;": 8818,
  "lsqb;": 91,
  "ltcc;": 10918,
  "ltri;": 9667,
  "lvnE;": 8808,
  "macr;": 175,
  "male;": 9794,
  "malt;": 10016,
  micro: 181,
  "mlcp;": 10971,
  "mldr;": 8230,
  "mopf;": 120158,
  "mscr;": 120002,
  "nGtv;": 8811,
  "nLtv;": 8810,
  "nang;": 8736,
  "napE;": 10864,
  "nbsp;": 160,
  "ncap;": 10819,
  "ncup;": 10818,
  "ngeq;": 8817,
  "nges;": 10878,
  "ngtr;": 8815,
  "nisd;": 8954,
  "njcy;": 1114,
  "nldr;": 8229,
  "nleq;": 8816,
  "nles;": 10877,
  "nmid;": 8740,
  "nopf;": 120159,
  "npar;": 8742,
  "npre;": 10927,
  "nsce;": 10928,
  "nscr;": 120003,
  "nsim;": 8769,
  "nsub;": 8836,
  "nsup;": 8837,
  "ntgl;": 8825,
  "ntlg;": 8824,
  "nvap;": 8781,
  "nvge;": 8805,
  "nvgt;": 62,
  "nvle;": 8804,
  "nvlt;": 60,
  "oast;": 8859,
  "ocir;": 8858,
  ocirc: 244,
  "odiv;": 10808,
  "odot;": 8857,
  "ogon;": 731,
  "oint;": 8750,
  "omid;": 10678,
  "oopf;": 120160,
  "opar;": 10679,
  "ordf;": 170,
  "ordm;": 186,
  "oror;": 10838,
  "oscr;": 8500,
  "osol;": 8856,
  "ouml;": 246,
  "para;": 182,
  "part;": 8706,
  "perp;": 8869,
  "phiv;": 981,
  "plus;": 43,
  "popf;": 120161,
  pound: 163,
  "prap;": 10935,
  "prec;": 8826,
  "prnE;": 10933,
  "prod;": 8719,
  "prop;": 8733,
  "pscr;": 120005,
  "qint;": 10764,
  "qopf;": 120162,
  "qscr;": 120006,
  "quot;": 34,
  "rArr;": 8658,
  "rHar;": 10596,
  "race;": 8765,
  "rang;": 10217,
  raquo: 187,
  "rarr;": 8594,
  "rcub;": 125,
  "rdca;": 10551,
  "rdsh;": 8627,
  "real;": 8476,
  "rect;": 9645,
  "rhov;": 1009,
  "ring;": 730,
  "ropf;": 120163,
  "rpar;": 41,
  "rscr;": 120007,
  "rsqb;": 93,
  "rtri;": 9657,
  "scap;": 10936,
  "scnE;": 10934,
  "sdot;": 8901,
  "sect;": 167,
  "semi;": 59,
  "sext;": 10038,
  "shcy;": 1096,
  "sime;": 8771,
  "simg;": 10910,
  "siml;": 10909,
  "smid;": 8739,
  "smte;": 10924,
  "solb;": 10692,
  "sopf;": 120164,
  "spar;": 8741,
  "squf;": 9642,
  "sscr;": 120008,
  "star;": 9734,
  "subE;": 10949,
  "sube;": 8838,
  "succ;": 8827,
  "sung;": 9834,
  "sup1;": 185,
  "sup2;": 178,
  "sup3;": 179,
  "supE;": 10950,
  "supe;": 8839,
  szlig: 223,
  "tbrk;": 9140,
  "tdot;": 8411,
  thorn: 254,
  times: 215,
  "tint;": 8749,
  "toea;": 10536,
  "topf;": 120165,
  "tosa;": 10537,
  "trie;": 8796,
  "tscr;": 120009,
  "tscy;": 1094,
  "uArr;": 8657,
  "uHar;": 10595,
  "uarr;": 8593,
  ucirc: 251,
  "uopf;": 120166,
  "upsi;": 965,
  "uscr;": 120010,
  "utri;": 9653,
  "uuml;": 252,
  "vArr;": 8661,
  "vBar;": 10984,
  "varr;": 8597,
  "vert;": 124,
  "vopf;": 120167,
  "vscr;": 120011,
  "wopf;": 120168,
  "wscr;": 120012,
  "xcap;": 8898,
  "xcup;": 8899,
  "xmap;": 10236,
  "xnis;": 8955,
  "xopf;": 120169,
  "xscr;": 120013,
  "xvee;": 8897,
  "yacy;": 1103,
  "yicy;": 1111,
  "yopf;": 120170,
  "yscr;": 120014,
  "yucy;": 1102,
  "yuml;": 255,
  "zdot;": 380,
  "zeta;": 950,
  "zhcy;": 1078,
  "zopf;": 120171,
  "zscr;": 120015,
  "zwnj;": 8204,
  "AMP;": 38,
  "Acy;": 1040,
  "Afr;": 120068,
  "And;": 10835,
  Auml: 196,
  "Bcy;": 1041,
  "Bfr;": 120069,
  COPY: 169,
  "Cap;": 8914,
  "Cfr;": 8493,
  "Chi;": 935,
  "Cup;": 8915,
  "Dcy;": 1044,
  "Del;": 8711,
  "Dfr;": 120071,
  "Dot;": 168,
  "ENG;": 330,
  "ETH;": 208,
  "Ecy;": 1069,
  "Efr;": 120072,
  "Eta;": 919,
  Euml: 203,
  "Fcy;": 1060,
  "Ffr;": 120073,
  "Gcy;": 1043,
  "Gfr;": 120074,
  "Hat;": 94,
  "Hfr;": 8460,
  "Icy;": 1048,
  "Ifr;": 8465,
  "Int;": 8748,
  Iuml: 207,
  "Jcy;": 1049,
  "Jfr;": 120077,
  "Kcy;": 1050,
  "Kfr;": 120078,
  "Lcy;": 1051,
  "Lfr;": 120079,
  "Lsh;": 8624,
  "Map;": 10501,
  "Mcy;": 1052,
  "Mfr;": 120080,
  "Ncy;": 1053,
  "Nfr;": 120081,
  "Not;": 10988,
  "Ocy;": 1054,
  "Ofr;": 120082,
  Ouml: 214,
  "Pcy;": 1055,
  "Pfr;": 120083,
  "Phi;": 934,
  "Psi;": 936,
  QUOT: 34,
  "Qfr;": 120084,
  "REG;": 174,
  "Rcy;": 1056,
  "Rfr;": 8476,
  "Rho;": 929,
  "Rsh;": 8625,
  "Scy;": 1057,
  "Sfr;": 120086,
  "Sub;": 8912,
  "Sum;": 8721,
  "Sup;": 8913,
  "Tab;": 9,
  "Tau;": 932,
  "Tcy;": 1058,
  "Tfr;": 120087,
  "Ucy;": 1059,
  "Ufr;": 120088,
  Uuml: 220,
  "Vcy;": 1042,
  "Vee;": 8897,
  "Vfr;": 120089,
  "Wfr;": 120090,
  "Xfr;": 120091,
  "Ycy;": 1067,
  "Yfr;": 120092,
  "Zcy;": 1047,
  "Zfr;": 8488,
  "acE;": 8766,
  "acd;": 8767,
  "acy;": 1072,
  "afr;": 120094,
  "amp;": 38,
  "and;": 8743,
  "ang;": 8736,
  "apE;": 10864,
  "ape;": 8778,
  "ast;": 42,
  auml: 228,
  "bcy;": 1073,
  "bfr;": 120095,
  "bne;": 61,
  "bot;": 8869,
  "cap;": 8745,
  cent: 162,
  "cfr;": 120096,
  "chi;": 967,
  "cir;": 9675,
  copy: 169,
  "cup;": 8746,
  "dcy;": 1076,
  "deg;": 176,
  "dfr;": 120097,
  "die;": 168,
  "div;": 247,
  "dot;": 729,
  "ecy;": 1101,
  "efr;": 120098,
  "egs;": 10902,
  "ell;": 8467,
  "els;": 10901,
  "eng;": 331,
  "eta;": 951,
  "eth;": 240,
  euml: 235,
  "fcy;": 1092,
  "ffr;": 120099,
  "gEl;": 10892,
  "gap;": 10886,
  "gcy;": 1075,
  "gel;": 8923,
  "geq;": 8805,
  "ges;": 10878,
  "gfr;": 120100,
  "ggg;": 8921,
  "glE;": 10898,
  "gla;": 10917,
  "glj;": 10916,
  "gnE;": 8809,
  "gne;": 10888,
  "hfr;": 120101,
  "icy;": 1080,
  "iff;": 8660,
  "ifr;": 120102,
  "int;": 8747,
  iuml: 239,
  "jcy;": 1081,
  "jfr;": 120103,
  "kcy;": 1082,
  "kfr;": 120104,
  "lEg;": 10891,
  "lap;": 10885,
  "lat;": 10923,
  "lcy;": 1083,
  "leg;": 8922,
  "leq;": 8804,
  "les;": 10877,
  "lfr;": 120105,
  "lgE;": 10897,
  "lnE;": 8808,
  "lne;": 10887,
  "loz;": 9674,
  "lrm;": 8206,
  "lsh;": 8624,
  macr: 175,
  "map;": 8614,
  "mcy;": 1084,
  "mfr;": 120106,
  "mho;": 8487,
  "mid;": 8739,
  "nGg;": 8921,
  "nGt;": 8811,
  "nLl;": 8920,
  "nLt;": 8810,
  "nap;": 8777,
  nbsp: 160,
  "ncy;": 1085,
  "nfr;": 120107,
  "ngE;": 8807,
  "nge;": 8817,
  "ngt;": 8815,
  "nis;": 8956,
  "niv;": 8715,
  "nlE;": 8806,
  "nle;": 8816,
  "nlt;": 8814,
  "not;": 172,
  "npr;": 8832,
  "nsc;": 8833,
  "num;": 35,
  "ocy;": 1086,
  "ofr;": 120108,
  "ogt;": 10689,
  "ohm;": 937,
  "olt;": 10688,
  "ord;": 10845,
  ordf: 170,
  ordm: 186,
  "orv;": 10843,
  ouml: 246,
  "par;": 8741,
  para: 182,
  "pcy;": 1087,
  "pfr;": 120109,
  "phi;": 966,
  "piv;": 982,
  "prE;": 10931,
  "pre;": 10927,
  "psi;": 968,
  "qfr;": 120110,
  quot: 34,
  "rcy;": 1088,
  "reg;": 174,
  "rfr;": 120111,
  "rho;": 961,
  "rlm;": 8207,
  "rsh;": 8625,
  "scE;": 10932,
  "sce;": 10928,
  "scy;": 1089,
  sect: 167,
  "sfr;": 120112,
  "shy;": 173,
  "sim;": 8764,
  "smt;": 10922,
  "sol;": 47,
  "squ;": 9633,
  "sub;": 8834,
  "sum;": 8721,
  sup1: 185,
  sup2: 178,
  sup3: 179,
  "sup;": 8835,
  "tau;": 964,
  "tcy;": 1090,
  "tfr;": 120113,
  "top;": 8868,
  "ucy;": 1091,
  "ufr;": 120114,
  "uml;": 168,
  uuml: 252,
  "vcy;": 1074,
  "vee;": 8744,
  "vfr;": 120115,
  "wfr;": 120116,
  "xfr;": 120117,
  "ycy;": 1099,
  "yen;": 165,
  "yfr;": 120118,
  yuml: 255,
  "zcy;": 1079,
  "zfr;": 120119,
  "zwj;": 8205,
  AMP: 38,
  "DD;": 8517,
  ETH: 208,
  "GT;": 62,
  "Gg;": 8921,
  "Gt;": 8811,
  "Im;": 8465,
  "LT;": 60,
  "Ll;": 8920,
  "Lt;": 8810,
  "Mu;": 924,
  "Nu;": 925,
  "Or;": 10836,
  "Pi;": 928,
  "Pr;": 10939,
  REG: 174,
  "Re;": 8476,
  "Sc;": 10940,
  "Xi;": 926,
  "ac;": 8766,
  "af;": 8289,
  amp: 38,
  "ap;": 8776,
  "dd;": 8518,
  deg: 176,
  "ee;": 8519,
  "eg;": 10906,
  "el;": 10905,
  eth: 240,
  "gE;": 8807,
  "ge;": 8805,
  "gg;": 8811,
  "gl;": 8823,
  "gt;": 62,
  "ic;": 8291,
  "ii;": 8520,
  "in;": 8712,
  "it;": 8290,
  "lE;": 8806,
  "le;": 8804,
  "lg;": 8822,
  "ll;": 8810,
  "lt;": 60,
  "mp;": 8723,
  "mu;": 956,
  "ne;": 8800,
  "ni;": 8715,
  not: 172,
  "nu;": 957,
  "oS;": 9416,
  "or;": 8744,
  "pi;": 960,
  "pm;": 177,
  "pr;": 8826,
  reg: 174,
  "rx;": 8478,
  "sc;": 8827,
  shy: 173,
  uml: 168,
  "wp;": 8472,
  "wr;": 8768,
  "xi;": 958,
  yen: 165,
  GT: 62,
  LT: 60,
  gt: 62,
  lt: 60
}, vHt = [
  8364,
  129,
  8218,
  402,
  8222,
  8230,
  8224,
  8225,
  710,
  8240,
  352,
  8249,
  338,
  141,
  381,
  143,
  144,
  8216,
  8217,
  8220,
  8221,
  8226,
  8211,
  8212,
  732,
  8482,
  353,
  8250,
  339,
  157,
  382,
  376
];
function THt(e, t) {
  return t && !e.endsWith(";") ? "".concat(e, "\\b(?!=)") : e;
}
function tTe(e) {
  const t = "#(?:x[a-fA-F\\d]+|\\d+)(?:;)?", r = Object.keys(eTe).map(
    (n) => THt(n, e)
  );
  return new RegExp("&(".concat(t, "|").concat(r.join("|"), ")"), "g");
}
const SHt = tTe(!1), xHt = tTe(!0);
function bU(e, t) {
  const r = t ? xHt : SHt;
  return e.replace(r, (i, n) => {
    let s;
    return n[0] !== "#" ? s = eTe[n] : n[1] === "x" ? s = parseInt(n.substring(2), 16) : s = parseInt(n.substring(1), 10), s ? String.fromCodePoint(EHt(s)) : i;
  });
}
const Rte = 0;
function EHt(e) {
  return e === 10 ? 32 : e < 128 ? e : e <= 159 ? vHt[e - 128] : e < 55296 ? e : e <= 57343 ? Rte : e <= 65535 || e >= 65536 && e <= 131071 || e >= 131072 && e <= 196607 ? e : Rte;
}
const Bte = /* @__PURE__ */ new Map([
  ["li", /* @__PURE__ */ new Set(["li"])],
  ["dt", /* @__PURE__ */ new Set(["dt", "dd"])],
  ["dd", /* @__PURE__ */ new Set(["dt", "dd"])],
  [
    "p",
    new Set(
      "address article aside blockquote div dl fieldset footer form h1 h2 h3 h4 h5 h6 header hgroup hr main menu nav ol p pre section table ul".split(
        " "
      )
    )
  ],
  ["rt", /* @__PURE__ */ new Set(["rt", "rp"])],
  ["rp", /* @__PURE__ */ new Set(["rt", "rp"])],
  ["optgroup", /* @__PURE__ */ new Set(["optgroup"])],
  ["option", /* @__PURE__ */ new Set(["option", "optgroup"])],
  ["thead", /* @__PURE__ */ new Set(["tbody", "tfoot"])],
  ["tbody", /* @__PURE__ */ new Set(["tbody", "tfoot"])],
  ["tfoot", /* @__PURE__ */ new Set(["tbody"])],
  ["tr", /* @__PURE__ */ new Set(["tr", "tbody"])],
  ["td", /* @__PURE__ */ new Set(["td", "th", "tr"])],
  ["th", /* @__PURE__ */ new Set(["td", "th", "tr"])]
]);
function rTe(e, t) {
  return !!(Bte.has(e) && (!t || Bte.get(e).has(t)));
}
const PHt = /^\!?[a-zA-Z]{1,}:?[a-zA-Z0-9\-]*/, wHt = /^(\/>|[\s"'=<>`])/, Ty = /* @__PURE__ */ new Map([
  ["svelte:head", "Head"],
  ["svelte:options", "Options"],
  ["svelte:window", "Window"],
  ["svelte:document", "Document"],
  ["svelte:body", "Body"]
]), Fte = Array.from(Ty.keys()).concat(
  "svelte:self",
  "svelte:component",
  "svelte:fragment",
  "svelte:element"
), jte = /* @__PURE__ */ new Map([
  [
    "script",
    {
      read: I6t,
      property: "js"
    }
  ],
  [
    "style",
    {
      read: gHt,
      property: "css"
    }
  ]
]), AHt = /^svelte:self(?=[\s/>])/, CHt = /^svelte:component(?=[\s/>])/, _Ht = /^svelte:fragment(?=[\s/>])/, IHt = /^svelte:element(?=[\s/>])/;
function kHt(e) {
  let t = e.length;
  for (; t--; ) {
    const { type: r } = e[t];
    if (r === "Head")
      return !0;
    if (r === "Element" || r === "InlineComponent")
      return !1;
  }
  return !1;
}
const $te = /^<\/textarea(\s[^>]*)?>/i, OHt = /-->/, NHt = /[A-Z]/;
function DHt(e) {
  const t = e.index++;
  let r = e.current();
  if (e.eat("!--")) {
    const f = e.read_until(OHt);
    e.eat("-->", !0, ar.unclosed_comment), e.current().children.push({
      start: t,
      end: e.index,
      type: "Comment",
      data: f,
      ignores: S$t(f)
    });
    return;
  }
  const i = e.eat("/"), n = MHt(e);
  if (Ty.has(n)) {
    const f = Ty.get(n).toLowerCase();
    i ? (n === "svelte:window" || n === "svelte:body") && e.current().children.length && e.error(
      ar.invalid_element_content(f, n),
      e.current().children[0].start
    ) : (n in e.meta_tags && e.error(ar.duplicate_element(f, n), t), e.stack.length > 1 && e.error(ar.invalid_element_placement(f, n), t), e.meta_tags[n] = !0);
  }
  const s = Ty.has(n) ? Ty.get(n) : NHt.test(n[0]) || n === "svelte:self" || n === "svelte:component" ? "InlineComponent" : n === "svelte:fragment" ? "SlotTemplate" : n === "title" && kHt(e.stack) ? "Title" : n === "slot" ? "Slot" : "Element", a = {
    start: t,
    end: null,
    type: s,
    name: n,
    attributes: [],
    children: []
  };
  if (e.allow_whitespace(), i) {
    for (kee(n) && e.error(ar.invalid_void_content(n), t), e.eat(">", !0); r.name !== n; ) {
      if (r.type !== "Element") {
        const f = e.last_auto_closed_tag && e.last_auto_closed_tag.tag === n ? ar.invalid_closing_tag_autoclosed(n, e.last_auto_closed_tag.reason) : ar.invalid_closing_tag_unopened(n);
        e.error(f, t);
      }
      r.end = t, e.stack.pop(), r = e.current();
    }
    r.end = e.index, e.stack.pop(), e.last_auto_closed_tag && e.stack.length < e.last_auto_closed_tag.depth && (e.last_auto_closed_tag = null);
    return;
  } else
    rTe(r.name, n) && (r.end = t, e.stack.pop(), e.last_auto_closed_tag = {
      tag: r.name,
      reason: n,
      depth: e.stack.length
    });
  const o = /* @__PURE__ */ new Set(), l = jte.has(n) && e.stack.length === 1;
  let u;
  for (; u = FHt(e, o, l); )
    a.attributes.push(u), e.allow_whitespace();
  if (n === "svelte:component") {
    const f = a.attributes.findIndex(
      (m) => m.type === "Attribute" && m.name === "this"
    );
    f === -1 && e.error(ar.missing_component_definition, t);
    const h = a.attributes.splice(f, 1)[0];
    (h.value === !0 || h.value.length !== 1 || h.value[0].type === "Text") && e.error(ar.invalid_component_definition, h.start), a.expression = h.value[0].expression;
  }
  if (n === "svelte:element") {
    const f = a.attributes.findIndex(
      (m) => m.type === "Attribute" && m.name === "this"
    );
    f === -1 && e.error(ar.missing_element_definition, t);
    const h = a.attributes.splice(f, 1)[0];
    h.value === !0 && e.error(ar.invalid_element_definition, h.start), a.tag = h.value[0].data || h.value[0].expression;
  }
  if (l) {
    const f = jte.get(n);
    e.eat(">", !0);
    const h = f.read(e, t, a.attributes);
    h && e[f.property].push(h);
    return;
  }
  e.current().children.push(a);
  const c = e.eat("/") || kee(n);
  if (e.eat(">", !0), c)
    a.end = e.index;
  else if (n === "textarea")
    a.children = iTe(
      e,
      () => $te.test(e.template.slice(e.index)),
      "inside <textarea>"
    ), e.read($te), a.end = e.index;
  else if (n === "script" || n === "style") {
    const f = e.index, h = e.read_until(new RegExp("</".concat(n, ">"))), m = e.index;
    a.children.push({ start: f, end: m, type: "Text", data: h }), e.eat("</".concat(n, ">"), !0), a.end = e.index;
  } else
    e.stack.push(a);
}
const LHt = /(\s|\/|>)/;
function MHt(e) {
  const t = e.index;
  if (e.read(AHt)) {
    let i = e.stack.length, n = !1;
    for (; i--; ) {
      const s = e.stack[i];
      if (s.type === "IfBlock" || s.type === "EachBlock" || s.type === "InlineComponent") {
        n = !0;
        break;
      }
    }
    return n || e.error(ar.invalid_self_placement, t), "svelte:self";
  }
  if (e.read(CHt))
    return "svelte:component";
  if (e.read(IHt))
    return "svelte:element";
  if (e.read(_Ht))
    return "svelte:fragment";
  const r = e.read_until(LHt);
  if (Ty.has(r))
    return r;
  if (r.startsWith("svelte:")) {
    const i = x$t(r.slice(7), Fte);
    e.error(ar.invalid_tag_name_svelte_element(Fte, i), t);
  }
  return PHt.test(r) || e.error(ar.invalid_tag_name, t), r;
}
const RHt = /[\s=\/>"']/, BHt = /^["']/;
function FHt(e, t, r) {
  const i = e.index;
  function n(c) {
    t.has(c) && e.error(ar.duplicate_attribute, i), t.add(c);
  }
  if (!r && e.eat("{"))
    if (e.allow_whitespace(), e.eat("...")) {
      const c = Yp(e);
      return e.allow_whitespace(), e.eat("}", !0), {
        start: i,
        end: e.index,
        type: "Spread",
        expression: c
      };
    } else {
      const c = e.index, f = e.read_identifier();
      return e.allow_whitespace(), e.eat("}", !0), f === null && e.error(ar.empty_attribute_shorthand, i), n(f), {
        start: i,
        end: e.index,
        type: "Attribute",
        name: f,
        value: [
          {
            start: c,
            end: c + f.length,
            type: "AttributeShorthand",
            expression: {
              start: c,
              end: c + f.length,
              type: "Identifier",
              name: f
            }
          }
        ]
      };
    }
  const s = e.read_until(RHt);
  if (!s)
    return null;
  let a = e.index;
  e.allow_whitespace();
  const o = s.indexOf(":"), l = o !== -1 && jHt(s.slice(0, o));
  let u = !0;
  if (e.eat("=") ? (e.allow_whitespace(), u = UHt(e, r), a = e.index) : e.match_regex(BHt) && e.error(ar.unexpected_token("="), e.index), !r && l) {
    const [c, ...f] = s.slice(o + 1).split("|");
    if (c === "" && e.error(ar.empty_directive_name(l), i + o + 1), l === "Binding" && c !== "this" ? n(c) : l !== "EventHandler" && l !== "Action" && n(s), l === "Ref" && e.error(ar.invalid_ref_directive(c), i), l === "StyleDirective")
      return {
        start: i,
        end: a,
        type: l,
        name: c,
        modifiers: f,
        value: u
      };
    const h = u[0];
    let m = null;
    h && (/** @type {any[]} */
    u.length > 1 || h.type === "Text" ? e.error(ar.invalid_directive_value, h.start) : m = h.expression);
    const g = {
      start: i,
      end: a,
      type: l,
      name: c,
      modifiers: f,
      expression: m
    };
    if (l === "Transition") {
      const y = s.slice(0, o);
      g.intro = y === "in" || y === "transition", g.outro = y === "out" || y === "transition";
    }
    return !g.expression && (l === "Binding" || l === "Class") && (g.expression = {
      start: g.start + o + 1,
      end: g.end,
      type: "Identifier",
      name: g.name
    }), g;
  }
  return n(s), {
    start: i,
    end: a,
    type: "Attribute",
    name: s,
    value: u
  };
}
function jHt(e) {
  if (e === "use")
    return "Action";
  if (e === "animate")
    return "Animation";
  if (e === "bind")
    return "Binding";
  if (e === "class")
    return "Class";
  if (e === "style")
    return "StyleDirective";
  if (e === "on")
    return "EventHandler";
  if (e === "let")
    return "Let";
  if (e === "in" || e === "out" || e === "transition")
    return "Transition";
}
const $Ht = /^(?:"([^"]*)"|'([^'])*'|([^>\s]+))/;
function UHt(e, t) {
  if (t) {
    let n = e.match_regex($Ht);
    n || e.error(ar.missing_attribute_value), e.index += n.length;
    const s = n[0] === '"' || n[0] === "'";
    return s && (n = n.slice(1, -1)), [
      {
        start: e.index - n.length - (s ? 1 : 0),
        end: s ? e.index - 1 : e.index,
        type: "Text",
        raw: n,
        data: bU(n, !0)
      }
    ];
  }
  const r = e.eat("'") ? "'" : e.eat('"') ? '"' : null;
  if (r && e.eat(r))
    return [
      {
        start: e.index - 1,
        end: e.index - 1,
        type: "Text",
        raw: "",
        data: ""
      }
    ];
  let i;
  try {
    i = iTe(
      e,
      () => r ? e.match(r) : !!e.match_regex(wHt),
      "in attribute value"
    );
  } catch (n) {
    throw n.code === "parse-error" && e.template.slice(n.pos - 1, n.pos + 1) === "/>" && (e.index = n.pos, e.error(ar.unclosed_attribute_value(r || "}"))), n;
  }
  return i.length === 0 && !r && e.error(ar.missing_attribute_value), r && (e.index += 1), i;
}
function iTe(e, t, r) {
  let i = {
    start: e.index,
    end: null,
    type: "Text",
    raw: "",
    data: null
  };
  const n = [];
  function s(a) {
    i.raw && (i.data = bU(i.raw, !0), i.end = a, n.push(i));
  }
  for (; e.index < e.template.length; ) {
    const a = e.index;
    if (t())
      return s(e.index), n;
    if (e.eat("{")) {
      if (e.match("#")) {
        const l = e.index - 1;
        e.eat("#");
        const u = e.read_until(/[^a-z]/);
        e.error(ar.invalid_logic_block_placement(r, u), l);
      } else if (e.match("@")) {
        const l = e.index - 1;
        e.eat("@");
        const u = e.read_until(/[^a-z]/);
        e.error(ar.invalid_tag_placement(r, u), l);
      }
      s(e.index - 1), e.allow_whitespace();
      const o = Yp(e);
      e.allow_whitespace(), e.eat("}", !0), n.push({
        start: a,
        end: e.index,
        type: "MustacheTag",
        expression: o
      }), i = {
        start: e.index,
        end: null,
        type: "Text",
        raw: "",
        data: null
      };
    } else
      i.raw += e.template[e.index++];
  }
  e.error(ar.unexpected_eof);
}
function vA(e, t) {
  const r = e.charCodeAt(t);
  if (r <= 55295 || r >= 57344)
    return r;
  const i = e.charCodeAt(t + 1);
  return (r << 10) + i - 56613888;
}
const vU = "[".charCodeAt(0), TU = "]".charCodeAt(0), SU = "{".charCodeAt(0), xU = "}".charCodeAt(0);
function Ute(e) {
  return e === vU || e === SU;
}
function qHt(e) {
  return e === TU || e === xU;
}
function VHt(e, t) {
  return e === vU && t === TU || e === SU && t === xU;
}
function WHt(e) {
  if (e === vU)
    return TU;
  if (e === SU)
    return xU;
}
function U1(e) {
  const t = e.index;
  let r = e.index;
  const i = vA(e.template, r);
  if (Fc(i, !0))
    return {
      type: "Identifier",
      name: e.read_identifier(),
      start: t,
      end: e.index
    };
  Ute(i) || e.error(ar.unexpected_token_destructure);
  const n = [i];
  for (r += i <= 65535 ? 1 : 2; r < e.template.length; ) {
    const a = vA(e.template, r);
    if (Ute(a))
      n.push(a);
    else if (qHt(a) && (VHt(n[n.length - 1], a) || e.error(
      ar.unexpected_token(
        String.fromCharCode(WHt(n[n.length - 1]))
      )
    ), n.pop(), n.length === 0)) {
      r += a <= 65535 ? 1 : 2;
      break;
    }
    r += a <= 65535 ? 1 : 2;
  }
  e.index = r;
  const s = e.template.slice(t, r);
  try {
    let a = e.template.slice(0, t).replace(Obe, " ");
    const o = a.indexOf(" ");
    return a = a.slice(0, o) + a.slice(o + 1), g0e("".concat(a, "(").concat(s, " = 1)"), t - 1).left;
  } catch (a) {
    e.acorn_error(a);
  }
}
function HHt(e) {
  return e.replace(b$t, "");
}
function KHt(e) {
  return e.replace(v$t, "");
}
function q1(e) {
  switch (e.type) {
    case "IfBlock":
      return "{#if} block";
    case "ThenBlock":
      return "{:then} block";
    case "ElseBlock":
      return "{:else} block";
    case "PendingBlock":
    case "AwaitBlock":
      return "{#await} block";
    case "CatchBlock":
      return "{:catch} block";
    case "EachBlock":
      return "{#each} block";
    case "RawMustacheTag":
      return "{@html} block";
    case "DebugTag":
      return "{@debug} block";
    case "ConstTag":
      return "{@const} tag";
    case "Element":
    case "InlineComponent":
    case "Slot":
    case "Title":
      return "<".concat(e.name, "> tag");
    default:
      return e.type;
  }
}
function nj(e, t, r) {
  if (!e.children || e.children.length === 0)
    return;
  const i = e.children[0], n = e.children[e.children.length - 1];
  i.type === "Text" && t && (i.data = HHt(i.data), i.data || e.children.shift()), n.type === "Text" && r && (n.data = KHt(n.data), n.data || e.children.pop()), e.else && nj(e.else, t, r), i.elseif && nj(i, t, r);
}
const aB = /^\s*}/;
function zHt(e) {
  const t = e.index;
  if (e.index += 1, e.allow_whitespace(), e.eat("/")) {
    let r = e.current(), i;
    for (rTe(r.name) && (r.end = t, e.stack.pop(), r = e.current()), (r.type === "ElseBlock" || r.type === "PendingBlock" || r.type === "ThenBlock" || r.type === "CatchBlock") && (r.end = t, e.stack.pop(), r = e.current(), i = "await"), r.type === "IfBlock" ? i = "if" : r.type === "EachBlock" ? i = "each" : r.type === "AwaitBlock" ? i = "await" : r.type === "KeyBlock" ? i = "key" : e.error(ar.unexpected_block_close), e.eat(i, !0), e.allow_whitespace(), e.eat("}", !0); r.elseif; )
      r.end = e.index, e.stack.pop(), r = e.current(), r.else && (r.else.end = t);
    const n = e.template[r.start - 1], s = e.template[e.index], a = !n || Ph.test(n), o = !s || Ph.test(s);
    nj(r, a, o), r.end = e.index, e.stack.pop();
  } else if (e.eat(":else"))
    if (e.eat("if") && e.error(ar.invalid_elseif), e.allow_whitespace(), e.eat("if")) {
      const r = e.current();
      r.type !== "IfBlock" && e.error(
        e.stack.some((n) => n.type === "IfBlock") ? ar.invalid_elseif_placement_unclosed_block(q1(r)) : ar.invalid_elseif_placement_outside_if
      ), e.require_whitespace();
      const i = Yp(e);
      e.allow_whitespace(), e.eat("}", !0), r.else = {
        start: e.index,
        end: null,
        type: "ElseBlock",
        children: [
          {
            start: e.index,
            end: null,
            type: "IfBlock",
            elseif: !0,
            expression: i,
            children: []
          }
        ]
      }, e.stack.push(r.else.children[0]);
    } else {
      const r = e.current();
      r.type !== "IfBlock" && r.type !== "EachBlock" && e.error(
        e.stack.some((i) => i.type === "IfBlock" || i.type === "EachBlock") ? ar.invalid_else_placement_unclosed_block(q1(r)) : ar.invalid_else_placement_outside_if
      ), e.allow_whitespace(), e.eat("}", !0), r.else = {
        start: e.index,
        end: null,
        type: "ElseBlock",
        children: []
      }, e.stack.push(r.else);
    }
  else if (e.match(":then") || e.match(":catch")) {
    const r = e.current(), i = e.eat(":then") || !e.eat(":catch");
    i ? r.type !== "PendingBlock" && e.error(
      e.stack.some((a) => a.type === "PendingBlock") ? ar.invalid_then_placement_unclosed_block(q1(r)) : ar.invalid_then_placement_without_await
    ) : r.type !== "ThenBlock" && r.type !== "PendingBlock" && e.error(
      e.stack.some((a) => a.type === "ThenBlock" || a.type === "PendingBlock") ? ar.invalid_catch_placement_unclosed_block(q1(r)) : ar.invalid_catch_placement_without_await
    ), r.end = t, e.stack.pop();
    const n = e.current();
    e.eat("}") || (e.require_whitespace(), n[i ? "value" : "error"] = U1(e), e.allow_whitespace(), e.eat("}", !0));
    const s = {
      start: t,
      end: null,
      type: i ? "ThenBlock" : "CatchBlock",
      children: [],
      skip: !1
    };
    n[i ? "then" : "catch"] = s, e.stack.push(s);
  } else if (e.eat("#")) {
    let r;
    e.eat("if") ? r = "IfBlock" : e.eat("each") ? r = "EachBlock" : e.eat("await") ? r = "AwaitBlock" : e.eat("key") ? r = "KeyBlock" : e.error(ar.expected_block_type), e.require_whitespace();
    const i = Yp(e), n = r === "AwaitBlock" ? {
      start: t,
      end: null,
      type: r,
      expression: i,
      value: null,
      error: null,
      pending: {
        start: null,
        end: null,
        type: "PendingBlock",
        children: [],
        skip: !0
      },
      then: {
        start: null,
        end: null,
        type: "ThenBlock",
        children: [],
        skip: !0
      },
      catch: {
        start: null,
        end: null,
        type: "CatchBlock",
        children: [],
        skip: !0
      }
    } : {
      start: t,
      end: null,
      type: r,
      expression: i,
      children: []
    };
    e.allow_whitespace(), r === "EachBlock" && (e.eat("as", !0), e.require_whitespace(), n.context = U1(e), e.allow_whitespace(), e.eat(",") && (e.allow_whitespace(), n.index = e.read_identifier(), n.index || e.error(ar.expected_name), e.allow_whitespace()), e.eat("(") && (e.allow_whitespace(), n.key = Yp(e), e.allow_whitespace(), e.eat(")", !0), e.allow_whitespace()));
    const s = r === "AwaitBlock" && e.eat("then");
    s && (e.match_regex(aB) || (e.require_whitespace(), n.value = U1(e)), e.allow_whitespace());
    const a = !s && r === "AwaitBlock" && e.eat("catch");
    if (a && (e.match_regex(aB) || (e.require_whitespace(), n.error = U1(e)), e.allow_whitespace()), e.eat("}", !0), e.current().children.push(n), e.stack.push(n), r === "AwaitBlock") {
      let o;
      s ? (n.then.skip = !1, o = n.then) : a ? (n.catch.skip = !1, o = n.catch) : (n.pending.skip = !1, o = n.pending), o.start = e.index, e.stack.push(o);
    }
  } else if (e.eat("@html")) {
    e.require_whitespace();
    const r = Yp(e);
    e.allow_whitespace(), e.eat("}", !0), e.current().children.push({
      start: t,
      end: e.index,
      type: "RawMustacheTag",
      expression: r
    });
  } else if (e.eat("@debug")) {
    let r;
    if (e.read(aB))
      r = [];
    else {
      const i = Yp(e);
      r = i.type === "SequenceExpression" ? i.expressions : [i], r.forEach((n) => {
        n.type !== "Identifier" && e.error(ar.invalid_debug_args, n.start);
      }), e.allow_whitespace(), e.eat("}", !0);
    }
    e.current().children.push({
      start: t,
      end: e.index,
      type: "DebugTag",
      identifiers: r
    });
  } else if (e.eat("@const")) {
    e.require_whitespace();
    const r = Yp(e);
    r.type === "AssignmentExpression" && r.operator === "=" || e.error(
      {
        code: "invalid-const-args",
        message: "{@const ...} must be an assignment."
      },
      t
    ), e.allow_whitespace(), e.eat("}", !0), e.current().children.push({
      start: t,
      end: e.index,
      type: "ConstTag",
      expression: r
    });
  } else {
    const r = Yp(e);
    e.allow_whitespace(), e.eat("}", !0), e.current().children.push({
      start: t,
      end: e.index,
      type: "MustacheTag",
      expression: r
    });
  }
}
function GHt(e) {
  const t = e.index;
  let r = "";
  for (; e.index < e.template.length && !e.match("<") && !e.match("{"); )
    r += e.template[e.index++];
  const i = {
    start: t,
    end: e.index,
    type: "Text",
    raw: r,
    data: bU(r, !1)
  };
  e.current().children.push(i);
}
function oB(e) {
  return e.match("<") ? DHt : e.match("{") ? zHt : GHt;
}
const YHt = /* @__PURE__ */ new Set([
  "arguments",
  "await",
  "break",
  "case",
  "catch",
  "class",
  "const",
  "continue",
  "debugger",
  "default",
  "delete",
  "do",
  "else",
  "enum",
  "eval",
  "export",
  "extends",
  "false",
  "finally",
  "for",
  "function",
  "if",
  "implements",
  "import",
  "in",
  "instanceof",
  "interface",
  "let",
  "new",
  "null",
  "package",
  "private",
  "protected",
  "public",
  "return",
  "static",
  "super",
  "switch",
  "this",
  "throw",
  "true",
  "try",
  "typeof",
  "var",
  "void",
  "while",
  "with",
  "yield"
]);
function XHt(e, t) {
  return e.start <= t && t < e.end;
}
function JHt(e, t = {}) {
  const { offsetLine: r = 0, offsetColumn: i = 0 } = t;
  let n = 0;
  const s = e.split("\n").map((l, u) => {
    const c = n + l.length + 1, f = { start: n, end: c, line: u };
    return n = c, f;
  });
  let a = 0;
  function o(l, u) {
    if (typeof l == "string" && (l = e.indexOf(l, u != null ? u : 0)), l === -1)
      return;
    let c = s[a];
    const f = l >= c.end ? 1 : -1;
    for (; c; ) {
      if (XHt(c, l))
        return {
          line: r + c.line,
          column: i + l - c.start,
          character: l
        };
      a += f, c = s[a];
    }
  }
  return o;
}
function qte(e, t, r) {
  return JHt(e, r)(t, r && r.startIndex);
}
const QHt = /^\t+/;
function lB(e) {
  return e.replace(QHt, (t) => t.split("	").join("  "));
}
function ZHt(e, t, r) {
  const i = e.split("\n"), n = Math.max(0, t - 2), s = Math.min(t + 3, i.length), a = String(s + 1).length;
  return i.slice(n, s).map((o, l) => {
    const u = n + l === t, c = String(l + n + 1).padStart(a, " ");
    if (u) {
      const f = " ".repeat(a + 2 + lB(o.slice(0, r)).length) + "^";
      return "".concat(c, ": ").concat(lB(o), "\n").concat(f);
    }
    return "".concat(c, ": ").concat(lB(o));
  }).join("\n");
}
class eKt extends Error {
  constructor() {
    super(...arguments);
    /**
     * @type {string}
     */
    ti(this, "code");
    /**
     * @type {{ line: number; column: number }}
     */
    ti(this, "start");
    /**
     * @type {{ line: number; column: number }}
     */
    ti(this, "end");
    /**
     * @type {number}
     */
    ti(this, "pos");
    /**
     * @type {string}
     */
    ti(this, "filename");
    /**
     * @type {string}
     */
    ti(this, "frame");
  }
  toString() {
    return "".concat(this.message, " (").concat(this.start.line, ":").concat(this.start.column, ")\n").concat(this.frame);
  }
}
function tKt(e, t) {
  const r = new eKt(e);
  r.name = t.name;
  const i = qte(t.source, t.start, { offsetLine: 1 }), n = qte(t.source, t.end || t.start, { offsetLine: 1 });
  throw r.code = t.code, r.start = i, r.end = n, r.pos = t.start, r.filename = t.filename, r.frame = ZHt(t.source, i.line - 1, i.column), r;
}
const rKt = / \(\d+:\d+\)$/;
let iKt = class {
  /**
   * @param {string} template
   * @param {import('../interfaces.js').ParserOptions} options
   */
  constructor(t, r) {
    /**
     * @readonly
     * @type {string}
     */
    ti(this, "template");
    /**
     * @readonly
     * @type {string}
     */
    ti(this, "filename");
    /**
     * @readonly
     * @type {boolean}
     */
    ti(this, "customElement");
    /**
     * @readonly
     * @type {'injected' | 'external' | 'none' | boolean}
     */
    ti(this, "css_mode");
    ti(this, "index", 0);
    /**
     * @type {import('../interfaces.js').TemplateNode[]}
     */
    ti(this, "stack", []);
    /**
     * @type {import('../interfaces.js').Fragment}
     */
    ti(this, "html");
    /**
     * @type {import('../interfaces.js').Style[]}
     */
    ti(this, "css", []);
    /**
     * @type {import('../interfaces.js').Script[]}
     */
    ti(this, "js", []);
    ti(this, "meta_tags", {});
    /**
     * @type {{tag: string; reason: string; depth: number;}}
     */
    ti(this, "last_auto_closed_tag");
    if (typeof t != "string")
      throw new TypeError("Template must be a string");
    this.template = t.trimRight(), this.filename = r.filename, this.customElement = r.customElement, this.css_mode = r.css, this.html = {
      start: null,
      end: null,
      type: "Fragment",
      children: []
    }, this.stack.push(this.html);
    let i = oB;
    for (; this.index < this.template.length; )
      i = i(this) || oB;
    if (this.stack.length > 1) {
      const n = this.current(), s = n.type === "Element" ? "<".concat(n.name, ">") : "Block", a = n.type === "Element" ? "element" : "block";
      this.error(
        {
          code: "unclosed-".concat(a),
          message: "".concat(s, " was left open")
        },
        n.start
      );
    }
    if (i !== oB && this.error({
      code: "unexpected-eof",
      message: "Unexpected end of input"
    }), this.html.children.length) {
      let n = this.html.children[0].start;
      for (; Ph.test(t[n]); )
        n += 1;
      let s = this.html.children[this.html.children.length - 1].end;
      for (; Ph.test(t[s - 1]); )
        s -= 1;
      this.html.start = n, this.html.end = s;
    } else
      this.html.start = this.html.end = null;
  }
  current() {
    return this.stack[this.stack.length - 1];
  }
  /**
   * @param {any} err
   */
  acorn_error(t) {
    this.error(
      {
        code: "parse-error",
        message: t.message.replace(rKt, "")
      },
      t.pos
    );
  }
  /**
   * @param {{ code: string; message: string }} err
   */
  error({ code: t, message: r }, i = this.index) {
    tKt(r, {
      name: "ParseError",
      code: t,
      source: this.template,
      start: i,
      filename: this.filename
    });
  }
  /**
   * @param {string} str
   * @param {boolean} [required]
   * @param {{ code: string; message: string }} [error]
   */
  eat(t, r, i) {
    return this.match(t) ? (this.index += t.length, !0) : (r && this.error(
      i || (this.index === this.template.length ? ar.unexpected_eof_token(t) : ar.unexpected_token(t))
    ), !1);
  }
  /**
   * @param {string} str
   */
  match(t) {
    return this.template.slice(this.index, this.index + t.length) === t;
  }
  /**
   * Match a regex at the current index
   * @param {RegExp} pattern  Should have a ^ anchor at the start so the regex doesn't search past the beginning, resulting in worse performance
   */
  match_regex(t) {
    const r = t.exec(this.template.slice(this.index));
    return !r || r.index !== 0 ? null : r[0];
  }
  allow_whitespace() {
    for (; this.index < this.template.length && Ph.test(this.template[this.index]); )
      this.index++;
  }
  /**
   * Search for a regex starting at the current index and return the result if it matches
   * @param {RegExp} pattern  Should have a ^ anchor at the start so the regex doesn't search past the beginning, resulting in worse performance
   */
  read(t) {
    const r = this.match_regex(t);
    return r && (this.index += r.length), r;
  }
  read_identifier(t = !1) {
    const r = this.index;
    let i = this.index;
    const n = vA(this.template, i);
    if (!Fc(n, !0))
      return null;
    for (i += n <= 65535 ? 1 : 2; i < this.template.length; ) {
      const a = vA(this.template, i);
      if (!Xd(a, !0))
        break;
      i += a <= 65535 ? 1 : 2;
    }
    const s = this.template.slice(this.index, this.index = i);
    return !t && YHt.has(s) && this.error(
      {
        code: "unexpected-reserved-word",
        message: "'".concat(s, "' is a reserved word in JavaScript and cannot be used here")
      },
      r
    ), s;
  }
  /**
   * @param {RegExp} pattern
   * @param {Parameters<Parser['error']>[0]} [error_message]
   */
  read_until(t, r) {
    this.index >= this.template.length && this.error(
      r || {
        code: "unexpected-eof",
        message: "Unexpected end of input"
      }
    );
    const i = this.index, n = t.exec(this.template.slice(i));
    return n ? (this.index = i + n.index, this.template.slice(i, this.index)) : (this.index = this.template.length, this.template.slice(i));
  }
  require_whitespace() {
    Ph.test(this.template[this.index]) || this.error({
      code: "missing-whitespace",
      message: "Expected whitespace"
    }), this.allow_whitespace();
  }
};
function nKt(e, t = {}) {
  const r = new iKt(e, t);
  r.css.length > 1 && r.error(ar.duplicate_style, r.css[1].start);
  const i = r.js.filter((s) => s.context === "default"), n = r.js.filter((s) => s.context === "module");
  return i.length > 1 && r.error(ar.invalid_script_instance, i[1].start), n.length > 1 && r.error(ar.invalid_script_module, n[1].start), {
    html: r.html,
    css: r.css[0],
    instance: i[0],
    module: n[0]
  };
}
var Ic = {}, ZI = {}, Em = {}, e2 = {};
Object.defineProperty(e2, "__esModule", {
  value: !0
});
e2.default = void 0;
function sKt() {
  var e = this, t = 0, r = {
    "@@iterator": function() {
      return r;
    },
    next: function() {
      if (t < e.length) {
        var n = e[t];
        return t = t + 1, {
          done: !1,
          value: n
        };
      } else
        return {
          done: !0
        };
    }
  };
  return r;
}
var aKt = sKt;
e2.default = aKt;
Object.defineProperty(Em, "__esModule", {
  value: !0
});
Em.default = uKt;
var oKt = lKt(e2);
function lKt(e) {
  return e && e.__esModule ? e : { default: e };
}
function sj(e) {
  return sj = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(t) {
    return typeof t;
  } : function(t) {
    return t && typeof Symbol == "function" && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
  }, sj(e);
}
function uKt(e, t) {
  return typeof Symbol == "function" && sj(Symbol.iterator) === "symbol" && Object.defineProperty(e, Symbol.iterator, {
    value: oKt.default.bind(t)
  }), e;
}
Object.defineProperty(ZI, "__esModule", {
  value: !0
});
ZI.default = void 0;
var cKt = pKt(Em);
function pKt(e) {
  return e && e.__esModule ? e : { default: e };
}
function uB(e, t) {
  return dKt(e) || hKt(e, t) || nTe(e, t) || fKt();
}
function fKt() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function hKt(e, t) {
  var r = e == null ? null : typeof Symbol != "undefined" && e[Symbol.iterator] || e["@@iterator"];
  if (r != null) {
    var i = [], n = !0, s = !1, a, o;
    try {
      for (r = r.call(e); !(n = (a = r.next()).done) && (i.push(a.value), !(t && i.length === t)); n = !0)
        ;
    } catch (l) {
      s = !0, o = l;
    } finally {
      try {
        !n && r.return != null && r.return();
      } finally {
        if (s)
          throw o;
      }
    }
    return i;
  }
}
function dKt(e) {
  if (Array.isArray(e))
    return e;
}
function mKt(e, t) {
  var r = typeof Symbol != "undefined" && e[Symbol.iterator] || e["@@iterator"];
  if (!r) {
    if (Array.isArray(e) || (r = nTe(e)) || t && e && typeof e.length == "number") {
      r && (e = r);
      var i = 0, n = function() {
      };
      return { s: n, n: function() {
        return i >= e.length ? { done: !0 } : { done: !1, value: e[i++] };
      }, e: function(u) {
        throw u;
      }, f: n };
    }
    throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  }
  var s = !0, a = !1, o;
  return { s: function() {
    r = r.call(e);
  }, n: function() {
    var u = r.next();
    return s = u.done, u;
  }, e: function(u) {
    a = !0, o = u;
  }, f: function() {
    try {
      !s && r.return != null && r.return();
    } finally {
      if (a)
        throw o;
    }
  } };
}
function nTe(e, t) {
  if (e) {
    if (typeof e == "string")
      return Vte(e, t);
    var r = Object.prototype.toString.call(e).slice(8, -1);
    if (r === "Object" && e.constructor && (r = e.constructor.name), r === "Map" || r === "Set")
      return Array.from(e);
    if (r === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))
      return Vte(e, t);
  }
}
function Vte(e, t) {
  (t == null || t > e.length) && (t = e.length);
  for (var r = 0, i = new Array(t); r < t; r++)
    i[r] = e[r];
  return i;
}
var Ym = [["aria-activedescendant", {
  type: "id"
}], ["aria-atomic", {
  type: "boolean"
}], ["aria-autocomplete", {
  type: "token",
  values: ["inline", "list", "both", "none"]
}], ["aria-braillelabel", {
  type: "string"
}], ["aria-brailleroledescription", {
  type: "string"
}], ["aria-busy", {
  type: "boolean"
}], ["aria-checked", {
  type: "tristate"
}], ["aria-colcount", {
  type: "integer"
}], ["aria-colindex", {
  type: "integer"
}], ["aria-colspan", {
  type: "integer"
}], ["aria-controls", {
  type: "idlist"
}], ["aria-current", {
  type: "token",
  values: ["page", "step", "location", "date", "time", !0, !1]
}], ["aria-describedby", {
  type: "idlist"
}], ["aria-description", {
  type: "string"
}], ["aria-details", {
  type: "id"
}], ["aria-disabled", {
  type: "boolean"
}], ["aria-dropeffect", {
  type: "tokenlist",
  values: ["copy", "execute", "link", "move", "none", "popup"]
}], ["aria-errormessage", {
  type: "id"
}], ["aria-expanded", {
  type: "boolean",
  allowundefined: !0
}], ["aria-flowto", {
  type: "idlist"
}], ["aria-grabbed", {
  type: "boolean",
  allowundefined: !0
}], ["aria-haspopup", {
  type: "token",
  values: [!1, !0, "menu", "listbox", "tree", "grid", "dialog"]
}], ["aria-hidden", {
  type: "boolean",
  allowundefined: !0
}], ["aria-invalid", {
  type: "token",
  values: ["grammar", !1, "spelling", !0]
}], ["aria-keyshortcuts", {
  type: "string"
}], ["aria-label", {
  type: "string"
}], ["aria-labelledby", {
  type: "idlist"
}], ["aria-level", {
  type: "integer"
}], ["aria-live", {
  type: "token",
  values: ["assertive", "off", "polite"]
}], ["aria-modal", {
  type: "boolean"
}], ["aria-multiline", {
  type: "boolean"
}], ["aria-multiselectable", {
  type: "boolean"
}], ["aria-orientation", {
  type: "token",
  values: ["vertical", "undefined", "horizontal"]
}], ["aria-owns", {
  type: "idlist"
}], ["aria-placeholder", {
  type: "string"
}], ["aria-posinset", {
  type: "integer"
}], ["aria-pressed", {
  type: "tristate"
}], ["aria-readonly", {
  type: "boolean"
}], ["aria-relevant", {
  type: "tokenlist",
  values: ["additions", "all", "removals", "text"]
}], ["aria-required", {
  type: "boolean"
}], ["aria-roledescription", {
  type: "string"
}], ["aria-rowcount", {
  type: "integer"
}], ["aria-rowindex", {
  type: "integer"
}], ["aria-rowspan", {
  type: "integer"
}], ["aria-selected", {
  type: "boolean",
  allowundefined: !0
}], ["aria-setsize", {
  type: "integer"
}], ["aria-sort", {
  type: "token",
  values: ["ascending", "descending", "none", "other"]
}], ["aria-valuemax", {
  type: "number"
}], ["aria-valuemin", {
  type: "number"
}], ["aria-valuenow", {
  type: "number"
}], ["aria-valuetext", {
  type: "string"
}]], aj = {
  entries: function() {
    return Ym;
  },
  forEach: function(t) {
    var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, i = mKt(Ym), n;
    try {
      for (i.s(); !(n = i.n()).done; ) {
        var s = uB(n.value, 2), a = s[0], o = s[1];
        t.call(r, o, a, Ym);
      }
    } catch (l) {
      i.e(l);
    } finally {
      i.f();
    }
  },
  get: function(t) {
    var r = Ym.find(function(i) {
      return i[0] === t;
    });
    return r && r[1];
  },
  has: function(t) {
    return !!aj.get(t);
  },
  keys: function() {
    return Ym.map(function(t) {
      var r = uB(t, 1), i = r[0];
      return i;
    });
  },
  values: function() {
    return Ym.map(function(t) {
      var r = uB(t, 2), i = r[1];
      return i;
    });
  }
}, yKt = (0, cKt.default)(aj, aj.entries());
ZI.default = yKt;
var t2 = {};
Object.defineProperty(t2, "__esModule", {
  value: !0
});
t2.default = void 0;
var gKt = bKt(Em);
function bKt(e) {
  return e && e.__esModule ? e : { default: e };
}
function cB(e, t) {
  return SKt(e) || TKt(e, t) || sTe(e, t) || vKt();
}
function vKt() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function TKt(e, t) {
  var r = e == null ? null : typeof Symbol != "undefined" && e[Symbol.iterator] || e["@@iterator"];
  if (r != null) {
    var i = [], n = !0, s = !1, a, o;
    try {
      for (r = r.call(e); !(n = (a = r.next()).done) && (i.push(a.value), !(t && i.length === t)); n = !0)
        ;
    } catch (l) {
      s = !0, o = l;
    } finally {
      try {
        !n && r.return != null && r.return();
      } finally {
        if (s)
          throw o;
      }
    }
    return i;
  }
}
function SKt(e) {
  if (Array.isArray(e))
    return e;
}
function xKt(e, t) {
  var r = typeof Symbol != "undefined" && e[Symbol.iterator] || e["@@iterator"];
  if (!r) {
    if (Array.isArray(e) || (r = sTe(e)) || t && e && typeof e.length == "number") {
      r && (e = r);
      var i = 0, n = function() {
      };
      return { s: n, n: function() {
        return i >= e.length ? { done: !0 } : { done: !1, value: e[i++] };
      }, e: function(u) {
        throw u;
      }, f: n };
    }
    throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  }
  var s = !0, a = !1, o;
  return { s: function() {
    r = r.call(e);
  }, n: function() {
    var u = r.next();
    return s = u.done, u;
  }, e: function(u) {
    a = !0, o = u;
  }, f: function() {
    try {
      !s && r.return != null && r.return();
    } finally {
      if (a)
        throw o;
    }
  } };
}
function sTe(e, t) {
  if (e) {
    if (typeof e == "string")
      return Wte(e, t);
    var r = Object.prototype.toString.call(e).slice(8, -1);
    if (r === "Object" && e.constructor && (r = e.constructor.name), r === "Map" || r === "Set")
      return Array.from(e);
    if (r === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))
      return Wte(e, t);
  }
}
function Wte(e, t) {
  (t == null || t > e.length) && (t = e.length);
  for (var r = 0, i = new Array(t); r < t; r++)
    i[r] = e[r];
  return i;
}
var Xm = [["a", {
  reserved: !1
}], ["abbr", {
  reserved: !1
}], ["acronym", {
  reserved: !1
}], ["address", {
  reserved: !1
}], ["applet", {
  reserved: !1
}], ["area", {
  reserved: !1
}], ["article", {
  reserved: !1
}], ["aside", {
  reserved: !1
}], ["audio", {
  reserved: !1
}], ["b", {
  reserved: !1
}], ["base", {
  reserved: !0
}], ["bdi", {
  reserved: !1
}], ["bdo", {
  reserved: !1
}], ["big", {
  reserved: !1
}], ["blink", {
  reserved: !1
}], ["blockquote", {
  reserved: !1
}], ["body", {
  reserved: !1
}], ["br", {
  reserved: !1
}], ["button", {
  reserved: !1
}], ["canvas", {
  reserved: !1
}], ["caption", {
  reserved: !1
}], ["center", {
  reserved: !1
}], ["cite", {
  reserved: !1
}], ["code", {
  reserved: !1
}], ["col", {
  reserved: !0
}], ["colgroup", {
  reserved: !0
}], ["content", {
  reserved: !1
}], ["data", {
  reserved: !1
}], ["datalist", {
  reserved: !1
}], ["dd", {
  reserved: !1
}], ["del", {
  reserved: !1
}], ["details", {
  reserved: !1
}], ["dfn", {
  reserved: !1
}], ["dialog", {
  reserved: !1
}], ["dir", {
  reserved: !1
}], ["div", {
  reserved: !1
}], ["dl", {
  reserved: !1
}], ["dt", {
  reserved: !1
}], ["em", {
  reserved: !1
}], ["embed", {
  reserved: !1
}], ["fieldset", {
  reserved: !1
}], ["figcaption", {
  reserved: !1
}], ["figure", {
  reserved: !1
}], ["font", {
  reserved: !1
}], ["footer", {
  reserved: !1
}], ["form", {
  reserved: !1
}], ["frame", {
  reserved: !1
}], ["frameset", {
  reserved: !1
}], ["h1", {
  reserved: !1
}], ["h2", {
  reserved: !1
}], ["h3", {
  reserved: !1
}], ["h4", {
  reserved: !1
}], ["h5", {
  reserved: !1
}], ["h6", {
  reserved: !1
}], ["head", {
  reserved: !0
}], ["header", {
  reserved: !1
}], ["hgroup", {
  reserved: !1
}], ["hr", {
  reserved: !1
}], ["html", {
  reserved: !0
}], ["i", {
  reserved: !1
}], ["iframe", {
  reserved: !1
}], ["img", {
  reserved: !1
}], ["input", {
  reserved: !1
}], ["ins", {
  reserved: !1
}], ["kbd", {
  reserved: !1
}], ["keygen", {
  reserved: !1
}], ["label", {
  reserved: !1
}], ["legend", {
  reserved: !1
}], ["li", {
  reserved: !1
}], ["link", {
  reserved: !0
}], ["main", {
  reserved: !1
}], ["map", {
  reserved: !1
}], ["mark", {
  reserved: !1
}], ["marquee", {
  reserved: !1
}], ["menu", {
  reserved: !1
}], ["menuitem", {
  reserved: !1
}], ["meta", {
  reserved: !0
}], ["meter", {
  reserved: !1
}], ["nav", {
  reserved: !1
}], ["noembed", {
  reserved: !0
}], ["noscript", {
  reserved: !0
}], ["object", {
  reserved: !1
}], ["ol", {
  reserved: !1
}], ["optgroup", {
  reserved: !1
}], ["option", {
  reserved: !1
}], ["output", {
  reserved: !1
}], ["p", {
  reserved: !1
}], ["param", {
  reserved: !0
}], ["picture", {
  reserved: !0
}], ["pre", {
  reserved: !1
}], ["progress", {
  reserved: !1
}], ["q", {
  reserved: !1
}], ["rp", {
  reserved: !1
}], ["rt", {
  reserved: !1
}], ["rtc", {
  reserved: !1
}], ["ruby", {
  reserved: !1
}], ["s", {
  reserved: !1
}], ["samp", {
  reserved: !1
}], ["script", {
  reserved: !0
}], ["section", {
  reserved: !1
}], ["select", {
  reserved: !1
}], ["small", {
  reserved: !1
}], ["source", {
  reserved: !0
}], ["spacer", {
  reserved: !1
}], ["span", {
  reserved: !1
}], ["strike", {
  reserved: !1
}], ["strong", {
  reserved: !1
}], ["style", {
  reserved: !0
}], ["sub", {
  reserved: !1
}], ["summary", {
  reserved: !1
}], ["sup", {
  reserved: !1
}], ["table", {
  reserved: !1
}], ["tbody", {
  reserved: !1
}], ["td", {
  reserved: !1
}], ["textarea", {
  reserved: !1
}], ["tfoot", {
  reserved: !1
}], ["th", {
  reserved: !1
}], ["thead", {
  reserved: !1
}], ["time", {
  reserved: !1
}], ["title", {
  reserved: !0
}], ["tr", {
  reserved: !1
}], ["track", {
  reserved: !0
}], ["tt", {
  reserved: !1
}], ["u", {
  reserved: !1
}], ["ul", {
  reserved: !1
}], ["var", {
  reserved: !1
}], ["video", {
  reserved: !1
}], ["wbr", {
  reserved: !1
}], ["xmp", {
  reserved: !1
}]], oj = {
  entries: function() {
    return Xm;
  },
  forEach: function(t) {
    var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, i = xKt(Xm), n;
    try {
      for (i.s(); !(n = i.n()).done; ) {
        var s = cB(n.value, 2), a = s[0], o = s[1];
        t.call(r, o, a, Xm);
      }
    } catch (l) {
      i.e(l);
    } finally {
      i.f();
    }
  },
  get: function(t) {
    var r = Xm.find(function(i) {
      return i[0] === t;
    });
    return r && r[1];
  },
  has: function(t) {
    return !!oj.get(t);
  },
  keys: function() {
    return Xm.map(function(t) {
      var r = cB(t, 1), i = r[0];
      return i;
    });
  },
  values: function() {
    return Xm.map(function(t) {
      var r = cB(t, 2), i = r[1];
      return i;
    });
  }
}, EKt = (0, gKt.default)(oj, oj.entries());
t2.default = EKt;
var Hg = {}, r2 = {}, i2 = {};
Object.defineProperty(i2, "__esModule", {
  value: !0
});
i2.default = void 0;
var PKt = {
  abstract: !0,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "widget"]]
}, wKt = PKt;
i2.default = wKt;
var n2 = {};
Object.defineProperty(n2, "__esModule", {
  value: !0
});
n2.default = void 0;
var AKt = {
  abstract: !0,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-activedescendant": null,
    "aria-disabled": null
  },
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "widget"]]
}, CKt = AKt;
n2.default = CKt;
var s2 = {};
Object.defineProperty(s2, "__esModule", {
  value: !0
});
s2.default = void 0;
var _Kt = {
  abstract: !0,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null
  },
  relatedConcepts: [{
    concept: {
      name: "input"
    },
    module: "XForms"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "widget"]]
}, IKt = _Kt;
s2.default = IKt;
var a2 = {};
Object.defineProperty(a2, "__esModule", {
  value: !0
});
a2.default = void 0;
var kKt = {
  abstract: !0,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, OKt = kKt;
a2.default = OKt;
var o2 = {};
Object.defineProperty(o2, "__esModule", {
  value: !0
});
o2.default = void 0;
var NKt = {
  abstract: !0,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-valuemax": null,
    "aria-valuemin": null,
    "aria-valuenow": null
  },
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure"]]
}, DKt = NKt;
o2.default = DKt;
var l2 = {};
Object.defineProperty(l2, "__esModule", {
  value: !0
});
l2.default = void 0;
var LKt = {
  abstract: !0,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: [],
  prohibitedProps: [],
  props: {
    "aria-atomic": null,
    "aria-busy": null,
    "aria-controls": null,
    "aria-current": null,
    "aria-describedby": null,
    "aria-details": null,
    "aria-dropeffect": null,
    "aria-flowto": null,
    "aria-grabbed": null,
    "aria-hidden": null,
    "aria-keyshortcuts": null,
    "aria-label": null,
    "aria-labelledby": null,
    "aria-live": null,
    "aria-owns": null,
    "aria-relevant": null,
    "aria-roledescription": null
  },
  relatedConcepts: [{
    concept: {
      name: "role"
    },
    module: "XHTML"
  }, {
    concept: {
      name: "type"
    },
    module: "Dublin Core"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: []
}, MKt = LKt;
l2.default = MKt;
var u2 = {};
Object.defineProperty(u2, "__esModule", {
  value: !0
});
u2.default = void 0;
var RKt = {
  abstract: !0,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: [],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "frontmatter"
    },
    module: "DTB"
  }, {
    concept: {
      name: "level"
    },
    module: "DTB"
  }, {
    concept: {
      name: "level"
    },
    module: "SMIL"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure"]]
}, BKt = RKt;
u2.default = BKt;
var c2 = {};
Object.defineProperty(c2, "__esModule", {
  value: !0
});
c2.default = void 0;
var FKt = {
  abstract: !0,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure"]]
}, jKt = FKt;
c2.default = jKt;
var p2 = {};
Object.defineProperty(p2, "__esModule", {
  value: !0
});
p2.default = void 0;
var $Kt = {
  abstract: !0,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-orientation": null
  },
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "widget", "composite"], ["roletype", "structure", "section", "group"]]
}, UKt = $Kt;
p2.default = UKt;
var f2 = {};
Object.defineProperty(f2, "__esModule", {
  value: !0
});
f2.default = void 0;
var qKt = {
  abstract: !0,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: [],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype"]]
}, VKt = qKt;
f2.default = VKt;
var h2 = {};
Object.defineProperty(h2, "__esModule", {
  value: !0
});
h2.default = void 0;
var WKt = {
  abstract: !0,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: [],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype"]]
}, HKt = WKt;
h2.default = HKt;
var d2 = {};
Object.defineProperty(d2, "__esModule", {
  value: !0
});
d2.default = void 0;
var KKt = {
  abstract: !0,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-modal": null
  },
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype"]]
}, zKt = KKt;
d2.default = zKt;
Object.defineProperty(r2, "__esModule", {
  value: !0
});
r2.default = void 0;
var GKt = eu(i2), YKt = eu(n2), XKt = eu(s2), JKt = eu(a2), QKt = eu(o2), ZKt = eu(l2), ezt = eu(u2), tzt = eu(c2), rzt = eu(p2), izt = eu(f2), nzt = eu(h2), szt = eu(d2);
function eu(e) {
  return e && e.__esModule ? e : { default: e };
}
var azt = [["command", GKt.default], ["composite", YKt.default], ["input", XKt.default], ["landmark", JKt.default], ["range", QKt.default], ["roletype", ZKt.default], ["section", ezt.default], ["sectionhead", tzt.default], ["select", rzt.default], ["structure", izt.default], ["widget", nzt.default], ["window", szt.default]], ozt = azt;
r2.default = ozt;
var m2 = {}, y2 = {};
Object.defineProperty(y2, "__esModule", {
  value: !0
});
y2.default = void 0;
var lzt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-atomic": "true",
    "aria-live": "assertive"
  },
  relatedConcepts: [{
    concept: {
      name: "alert"
    },
    module: "XForms"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, uzt = lzt;
y2.default = uzt;
var g2 = {};
Object.defineProperty(g2, "__esModule", {
  value: !0
});
g2.default = void 0;
var czt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "alert"
    },
    module: "XForms"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "alert"], ["roletype", "window", "dialog"]]
}, pzt = czt;
g2.default = pzt;
var b2 = {};
Object.defineProperty(b2, "__esModule", {
  value: !0
});
b2.default = void 0;
var fzt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-activedescendant": null,
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "Device Independence Delivery Unit"
    }
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure"]]
}, hzt = fzt;
b2.default = hzt;
var v2 = {};
Object.defineProperty(v2, "__esModule", {
  value: !0
});
v2.default = void 0;
var dzt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-posinset": null,
    "aria-setsize": null
  },
  relatedConcepts: [{
    concept: {
      name: "article"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "document"]]
}, mzt = dzt;
v2.default = mzt;
var T2 = {};
Object.defineProperty(T2, "__esModule", {
  value: !0
});
T2.default = void 0;
var yzt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      constraints: ["scoped to the body element"],
      name: "header"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, gzt = yzt;
T2.default = gzt;
var S2 = {};
Object.defineProperty(S2, "__esModule", {
  value: !0
});
S2.default = void 0;
var bzt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "blockquote"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, vzt = bzt;
S2.default = vzt;
var x2 = {};
Object.defineProperty(x2, "__esModule", {
  value: !0
});
x2.default = void 0;
var Tzt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !0,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-pressed": null
  },
  relatedConcepts: [{
    concept: {
      attributes: [{
        name: "type",
        value: "button"
      }],
      name: "input"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        name: "type",
        value: "image"
      }],
      name: "input"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        name: "type",
        value: "reset"
      }],
      name: "input"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        name: "type",
        value: "submit"
      }],
      name: "input"
    },
    module: "HTML"
  }, {
    concept: {
      name: "button"
    },
    module: "HTML"
  }, {
    concept: {
      name: "trigger"
    },
    module: "XForms"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "widget", "command"]]
}, Szt = Tzt;
x2.default = Szt;
var E2 = {};
Object.defineProperty(E2, "__esModule", {
  value: !0
});
E2.default = void 0;
var xzt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["prohibited"],
  prohibitedProps: ["aria-label", "aria-labelledby"],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "caption"
    },
    module: "HTML"
  }],
  requireContextRole: ["figure", "grid", "table"],
  requiredContextRole: ["figure", "grid", "table"],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, Ezt = xzt;
E2.default = Ezt;
var P2 = {};
Object.defineProperty(P2, "__esModule", {
  value: !0
});
P2.default = void 0;
var Pzt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {
    "aria-colindex": null,
    "aria-colspan": null,
    "aria-rowindex": null,
    "aria-rowspan": null
  },
  relatedConcepts: [{
    concept: {
      constraints: ["ancestor table element has table role"],
      name: "td"
    },
    module: "HTML"
  }],
  requireContextRole: ["row"],
  requiredContextRole: ["row"],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, wzt = Pzt;
P2.default = wzt;
var w2 = {};
Object.defineProperty(w2, "__esModule", {
  value: !0
});
w2.default = void 0;
var Azt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !0,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {
    "aria-checked": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-invalid": null,
    "aria-readonly": null,
    "aria-required": null
  },
  relatedConcepts: [{
    concept: {
      attributes: [{
        name: "type",
        value: "checkbox"
      }],
      name: "input"
    },
    module: "HTML"
  }, {
    concept: {
      name: "option"
    },
    module: "ARIA"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {
    "aria-checked": null
  },
  superClass: [["roletype", "widget", "input"]]
}, Czt = Azt;
w2.default = Czt;
var A2 = {};
Object.defineProperty(A2, "__esModule", {
  value: !0
});
A2.default = void 0;
var _zt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["prohibited"],
  prohibitedProps: ["aria-label", "aria-labelledby"],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "code"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, Izt = _zt;
A2.default = Izt;
var C2 = {};
Object.defineProperty(C2, "__esModule", {
  value: !0
});
C2.default = void 0;
var kzt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {
    "aria-sort": null
  },
  relatedConcepts: [{
    concept: {
      name: "th"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        name: "scope",
        value: "col"
      }],
      name: "th"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        name: "scope",
        value: "colgroup"
      }],
      name: "th"
    },
    module: "HTML"
  }],
  requireContextRole: ["row"],
  requiredContextRole: ["row"],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "cell"], ["roletype", "structure", "section", "cell", "gridcell"], ["roletype", "widget", "gridcell"], ["roletype", "structure", "sectionhead"]]
}, Ozt = kzt;
C2.default = Ozt;
var _2 = {};
Object.defineProperty(_2, "__esModule", {
  value: !0
});
_2.default = void 0;
var Nzt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-activedescendant": null,
    "aria-autocomplete": null,
    "aria-errormessage": null,
    "aria-invalid": null,
    "aria-readonly": null,
    "aria-required": null,
    "aria-expanded": "false",
    "aria-haspopup": "listbox"
  },
  relatedConcepts: [{
    concept: {
      attributes: [{
        constraints: ["set"],
        name: "list"
      }, {
        name: "type",
        value: "email"
      }],
      name: "input"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        constraints: ["set"],
        name: "list"
      }, {
        name: "type",
        value: "search"
      }],
      name: "input"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        constraints: ["set"],
        name: "list"
      }, {
        name: "type",
        value: "tel"
      }],
      name: "input"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        constraints: ["set"],
        name: "list"
      }, {
        name: "type",
        value: "text"
      }],
      name: "input"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        constraints: ["set"],
        name: "list"
      }, {
        name: "type",
        value: "url"
      }],
      name: "input"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        constraints: ["set"],
        name: "list"
      }, {
        name: "type",
        value: "url"
      }],
      name: "input"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        constraints: ["undefined"],
        name: "multiple"
      }, {
        constraints: ["undefined"],
        name: "size"
      }],
      constraints: ["the multiple attribute is not set and the size attribute does not have a value greater than 1"],
      name: "select"
    },
    module: "HTML"
  }, {
    concept: {
      name: "select"
    },
    module: "XForms"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {
    "aria-controls": null,
    "aria-expanded": "false"
  },
  superClass: [["roletype", "widget", "input"]]
}, Dzt = Nzt;
_2.default = Dzt;
var I2 = {};
Object.defineProperty(I2, "__esModule", {
  value: !0
});
I2.default = void 0;
var Lzt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "aside"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        constraints: ["set"],
        name: "aria-label"
      }],
      constraints: ["scoped to a sectioning content element", "scoped to a sectioning root element other than body"],
      name: "aside"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        constraints: ["set"],
        name: "aria-labelledby"
      }],
      constraints: ["scoped to a sectioning content element", "scoped to a sectioning root element other than body"],
      name: "aside"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, Mzt = Lzt;
I2.default = Mzt;
var k2 = {};
Object.defineProperty(k2, "__esModule", {
  value: !0
});
k2.default = void 0;
var Rzt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      constraints: ["scoped to the body element"],
      name: "footer"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, Bzt = Rzt;
k2.default = Bzt;
var O2 = {};
Object.defineProperty(O2, "__esModule", {
  value: !0
});
O2.default = void 0;
var Fzt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "dd"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, jzt = Fzt;
O2.default = jzt;
var N2 = {};
Object.defineProperty(N2, "__esModule", {
  value: !0
});
N2.default = void 0;
var $zt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["prohibited"],
  prohibitedProps: ["aria-label", "aria-labelledby"],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "del"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, Uzt = $zt;
N2.default = Uzt;
var D2 = {};
Object.defineProperty(D2, "__esModule", {
  value: !0
});
D2.default = void 0;
var qzt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "dialog"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "window"]]
}, Vzt = qzt;
D2.default = Vzt;
var L2 = {};
Object.defineProperty(L2, "__esModule", {
  value: !0
});
L2.default = void 0;
var Wzt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    module: "DAISY Guide"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "list"]]
}, Hzt = Wzt;
L2.default = Hzt;
var M2 = {};
Object.defineProperty(M2, "__esModule", {
  value: !0
});
M2.default = void 0;
var Kzt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "Device Independence Delivery Unit"
    }
  }, {
    concept: {
      name: "html"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure"]]
}, zzt = Kzt;
M2.default = zzt;
var R2 = {};
Object.defineProperty(R2, "__esModule", {
  value: !0
});
R2.default = void 0;
var Gzt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["prohibited"],
  prohibitedProps: ["aria-label", "aria-labelledby"],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "em"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, Yzt = Gzt;
R2.default = Yzt;
var B2 = {};
Object.defineProperty(B2, "__esModule", {
  value: !0
});
B2.default = void 0;
var Xzt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [["article"]],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "list"]]
}, Jzt = Xzt;
B2.default = Jzt;
var F2 = {};
Object.defineProperty(F2, "__esModule", {
  value: !0
});
F2.default = void 0;
var Qzt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "figure"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, Zzt = Qzt;
F2.default = Zzt;
var j2 = {};
Object.defineProperty(j2, "__esModule", {
  value: !0
});
j2.default = void 0;
var eGt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      attributes: [{
        constraints: ["set"],
        name: "aria-label"
      }],
      name: "form"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        constraints: ["set"],
        name: "aria-labelledby"
      }],
      name: "form"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        constraints: ["set"],
        name: "name"
      }],
      name: "form"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, tGt = eGt;
j2.default = tGt;
var $2 = {};
Object.defineProperty($2, "__esModule", {
  value: !0
});
$2.default = void 0;
var rGt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["prohibited"],
  prohibitedProps: ["aria-label", "aria-labelledby"],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "a"
    },
    module: "HTML"
  }, {
    concept: {
      name: "area"
    },
    module: "HTML"
  }, {
    concept: {
      name: "aside"
    },
    module: "HTML"
  }, {
    concept: {
      name: "b"
    },
    module: "HTML"
  }, {
    concept: {
      name: "bdo"
    },
    module: "HTML"
  }, {
    concept: {
      name: "body"
    },
    module: "HTML"
  }, {
    concept: {
      name: "data"
    },
    module: "HTML"
  }, {
    concept: {
      name: "div"
    },
    module: "HTML"
  }, {
    concept: {
      constraints: ["scoped to the main element", "scoped to a sectioning content element", "scoped to a sectioning root element other than body"],
      name: "footer"
    },
    module: "HTML"
  }, {
    concept: {
      constraints: ["scoped to the main element", "scoped to a sectioning content element", "scoped to a sectioning root element other than body"],
      name: "header"
    },
    module: "HTML"
  }, {
    concept: {
      name: "hgroup"
    },
    module: "HTML"
  }, {
    concept: {
      name: "i"
    },
    module: "HTML"
  }, {
    concept: {
      name: "pre"
    },
    module: "HTML"
  }, {
    concept: {
      name: "q"
    },
    module: "HTML"
  }, {
    concept: {
      name: "samp"
    },
    module: "HTML"
  }, {
    concept: {
      name: "section"
    },
    module: "HTML"
  }, {
    concept: {
      name: "small"
    },
    module: "HTML"
  }, {
    concept: {
      name: "span"
    },
    module: "HTML"
  }, {
    concept: {
      name: "u"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure"]]
}, iGt = rGt;
$2.default = iGt;
var U2 = {};
Object.defineProperty(U2, "__esModule", {
  value: !0
});
U2.default = void 0;
var nGt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-multiselectable": null,
    "aria-readonly": null
  },
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [["row"], ["row", "rowgroup"]],
  requiredProps: {},
  superClass: [["roletype", "widget", "composite"], ["roletype", "structure", "section", "table"]]
}, sGt = nGt;
U2.default = sGt;
var q2 = {};
Object.defineProperty(q2, "__esModule", {
  value: !0
});
q2.default = void 0;
var aGt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null,
    "aria-readonly": null,
    "aria-required": null,
    "aria-selected": null
  },
  relatedConcepts: [{
    concept: {
      constraints: ["ancestor table element has grid role", "ancestor table element has treegrid role"],
      name: "td"
    },
    module: "HTML"
  }],
  requireContextRole: ["row"],
  requiredContextRole: ["row"],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "cell"], ["roletype", "widget"]]
}, oGt = aGt;
q2.default = oGt;
var V2 = {};
Object.defineProperty(V2, "__esModule", {
  value: !0
});
V2.default = void 0;
var lGt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-activedescendant": null,
    "aria-disabled": null
  },
  relatedConcepts: [{
    concept: {
      name: "details"
    },
    module: "HTML"
  }, {
    concept: {
      name: "fieldset"
    },
    module: "HTML"
  }, {
    concept: {
      name: "optgroup"
    },
    module: "HTML"
  }, {
    concept: {
      name: "address"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, uGt = lGt;
V2.default = uGt;
var W2 = {};
Object.defineProperty(W2, "__esModule", {
  value: !0
});
W2.default = void 0;
var cGt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {
    "aria-level": "2"
  },
  relatedConcepts: [{
    concept: {
      name: "h1"
    },
    module: "HTML"
  }, {
    concept: {
      name: "h2"
    },
    module: "HTML"
  }, {
    concept: {
      name: "h3"
    },
    module: "HTML"
  }, {
    concept: {
      name: "h4"
    },
    module: "HTML"
  }, {
    concept: {
      name: "h5"
    },
    module: "HTML"
  }, {
    concept: {
      name: "h6"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {
    "aria-level": "2"
  },
  superClass: [["roletype", "structure", "sectionhead"]]
}, pGt = cGt;
W2.default = pGt;
var H2 = {};
Object.defineProperty(H2, "__esModule", {
  value: !0
});
H2.default = void 0;
var fGt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !0,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      attributes: [{
        constraints: ["set"],
        name: "alt"
      }],
      name: "img"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        constraints: ["undefined"],
        name: "alt"
      }],
      name: "img"
    },
    module: "HTML"
  }, {
    concept: {
      name: "imggroup"
    },
    module: "DTB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, hGt = fGt;
H2.default = hGt;
var K2 = {};
Object.defineProperty(K2, "__esModule", {
  value: !0
});
K2.default = void 0;
var dGt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["prohibited"],
  prohibitedProps: ["aria-label", "aria-labelledby"],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "ins"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, mGt = dGt;
K2.default = mGt;
var z2 = {};
Object.defineProperty(z2, "__esModule", {
  value: !0
});
z2.default = void 0;
var yGt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-expanded": null,
    "aria-haspopup": null
  },
  relatedConcepts: [{
    concept: {
      attributes: [{
        constraints: ["set"],
        name: "href"
      }],
      name: "a"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        constraints: ["set"],
        name: "href"
      }],
      name: "area"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "widget", "command"]]
}, gGt = yGt;
z2.default = gGt;
var G2 = {};
Object.defineProperty(G2, "__esModule", {
  value: !0
});
G2.default = void 0;
var bGt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "menu"
    },
    module: "HTML"
  }, {
    concept: {
      name: "ol"
    },
    module: "HTML"
  }, {
    concept: {
      name: "ul"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [["listitem"]],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, vGt = bGt;
G2.default = vGt;
var Y2 = {};
Object.defineProperty(Y2, "__esModule", {
  value: !0
});
Y2.default = void 0;
var TGt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-invalid": null,
    "aria-multiselectable": null,
    "aria-readonly": null,
    "aria-required": null,
    "aria-orientation": "vertical"
  },
  relatedConcepts: [{
    concept: {
      attributes: [{
        constraints: [">1"],
        name: "size"
      }],
      constraints: ["the size attribute value is greater than 1"],
      name: "select"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        name: "multiple"
      }],
      name: "select"
    },
    module: "HTML"
  }, {
    concept: {
      name: "datalist"
    },
    module: "HTML"
  }, {
    concept: {
      name: "list"
    },
    module: "ARIA"
  }, {
    concept: {
      name: "select"
    },
    module: "XForms"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [["option", "group"], ["option"]],
  requiredProps: {},
  superClass: [["roletype", "widget", "composite", "select"], ["roletype", "structure", "section", "group", "select"]]
}, SGt = TGt;
Y2.default = SGt;
var X2 = {};
Object.defineProperty(X2, "__esModule", {
  value: !0
});
X2.default = void 0;
var xGt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-level": null,
    "aria-posinset": null,
    "aria-setsize": null
  },
  relatedConcepts: [{
    concept: {
      constraints: ["direct descendant of ol", "direct descendant of ul", "direct descendant of menu"],
      name: "li"
    },
    module: "HTML"
  }, {
    concept: {
      name: "item"
    },
    module: "XForms"
  }],
  requireContextRole: ["directory", "list"],
  requiredContextRole: ["directory", "list"],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, EGt = xGt;
X2.default = EGt;
var J2 = {};
Object.defineProperty(J2, "__esModule", {
  value: !0
});
J2.default = void 0;
var PGt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-live": "polite"
  },
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, wGt = PGt;
J2.default = wGt;
var Q2 = {};
Object.defineProperty(Q2, "__esModule", {
  value: !0
});
Q2.default = void 0;
var AGt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "main"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, CGt = AGt;
Q2.default = CGt;
var Z2 = {};
Object.defineProperty(Z2, "__esModule", {
  value: !0
});
Z2.default = void 0;
var _Gt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["prohibited"],
  prohibitedProps: [],
  props: {
    "aria-braillelabel": null,
    "aria-brailleroledescription": null,
    "aria-description": null
  },
  relatedConcepts: [{
    concept: {
      name: "mark"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, IGt = _Gt;
Z2.default = IGt;
var ek = {};
Object.defineProperty(ek, "__esModule", {
  value: !0
});
ek.default = void 0;
var kGt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, OGt = kGt;
ek.default = OGt;
var tk = {};
Object.defineProperty(tk, "__esModule", {
  value: !0
});
tk.default = void 0;
var NGt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "math"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, DGt = NGt;
tk.default = DGt;
var rk = {};
Object.defineProperty(rk, "__esModule", {
  value: !0
});
rk.default = void 0;
var LGt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-orientation": "vertical"
  },
  relatedConcepts: [{
    concept: {
      name: "MENU"
    },
    module: "JAPI"
  }, {
    concept: {
      name: "list"
    },
    module: "ARIA"
  }, {
    concept: {
      name: "select"
    },
    module: "XForms"
  }, {
    concept: {
      name: "sidebar"
    },
    module: "DTB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [["menuitem", "group"], ["menuitemradio", "group"], ["menuitemcheckbox", "group"], ["menuitem"], ["menuitemcheckbox"], ["menuitemradio"]],
  requiredProps: {},
  superClass: [["roletype", "widget", "composite", "select"], ["roletype", "structure", "section", "group", "select"]]
}, MGt = LGt;
rk.default = MGt;
var ik = {};
Object.defineProperty(ik, "__esModule", {
  value: !0
});
ik.default = void 0;
var RGt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-orientation": "horizontal"
  },
  relatedConcepts: [{
    concept: {
      name: "toolbar"
    },
    module: "ARIA"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [["menuitem", "group"], ["menuitemradio", "group"], ["menuitemcheckbox", "group"], ["menuitem"], ["menuitemcheckbox"], ["menuitemradio"]],
  requiredProps: {},
  superClass: [["roletype", "widget", "composite", "select", "menu"], ["roletype", "structure", "section", "group", "select", "menu"]]
}, BGt = RGt;
ik.default = BGt;
var nk = {};
Object.defineProperty(nk, "__esModule", {
  value: !0
});
nk.default = void 0;
var FGt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-posinset": null,
    "aria-setsize": null
  },
  relatedConcepts: [{
    concept: {
      name: "MENU_ITEM"
    },
    module: "JAPI"
  }, {
    concept: {
      name: "listitem"
    },
    module: "ARIA"
  }, {
    concept: {
      name: "option"
    },
    module: "ARIA"
  }],
  requireContextRole: ["group", "menu", "menubar"],
  requiredContextRole: ["group", "menu", "menubar"],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "widget", "command"]]
}, jGt = FGt;
nk.default = jGt;
var sk = {};
Object.defineProperty(sk, "__esModule", {
  value: !0
});
sk.default = void 0;
var $Gt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !0,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "menuitem"
    },
    module: "ARIA"
  }],
  requireContextRole: ["group", "menu", "menubar"],
  requiredContextRole: ["group", "menu", "menubar"],
  requiredOwnedElements: [],
  requiredProps: {
    "aria-checked": null
  },
  superClass: [["roletype", "widget", "input", "checkbox"], ["roletype", "widget", "command", "menuitem"]]
}, UGt = $Gt;
sk.default = UGt;
var ak = {};
Object.defineProperty(ak, "__esModule", {
  value: !0
});
ak.default = void 0;
var qGt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !0,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "menuitem"
    },
    module: "ARIA"
  }],
  requireContextRole: ["group", "menu", "menubar"],
  requiredContextRole: ["group", "menu", "menubar"],
  requiredOwnedElements: [],
  requiredProps: {
    "aria-checked": null
  },
  superClass: [["roletype", "widget", "input", "checkbox", "menuitemcheckbox"], ["roletype", "widget", "command", "menuitem", "menuitemcheckbox"], ["roletype", "widget", "input", "radio"]]
}, VGt = qGt;
ak.default = VGt;
var ok = {};
Object.defineProperty(ok, "__esModule", {
  value: !0
});
ok.default = void 0;
var WGt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !0,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-valuetext": null,
    "aria-valuemax": "100",
    "aria-valuemin": "0"
  },
  relatedConcepts: [{
    concept: {
      name: "meter"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {
    "aria-valuenow": null
  },
  superClass: [["roletype", "structure", "range"]]
}, HGt = WGt;
ok.default = HGt;
var lk = {};
Object.defineProperty(lk, "__esModule", {
  value: !0
});
lk.default = void 0;
var KGt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "nav"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, zGt = KGt;
lk.default = zGt;
var uk = {};
Object.defineProperty(uk, "__esModule", {
  value: !0
});
uk.default = void 0;
var GGt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: [],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: []
}, YGt = GGt;
uk.default = YGt;
var ck = {};
Object.defineProperty(ck, "__esModule", {
  value: !0
});
ck.default = void 0;
var XGt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, JGt = XGt;
ck.default = JGt;
var pk = {};
Object.defineProperty(pk, "__esModule", {
  value: !0
});
pk.default = void 0;
var QGt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !0,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {
    "aria-checked": null,
    "aria-posinset": null,
    "aria-setsize": null,
    "aria-selected": "false"
  },
  relatedConcepts: [{
    concept: {
      name: "item"
    },
    module: "XForms"
  }, {
    concept: {
      name: "listitem"
    },
    module: "ARIA"
  }, {
    concept: {
      name: "option"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {
    "aria-selected": "false"
  },
  superClass: [["roletype", "widget", "input"]]
}, ZGt = QGt;
pk.default = ZGt;
var fk = {};
Object.defineProperty(fk, "__esModule", {
  value: !0
});
fk.default = void 0;
var eYt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["prohibited"],
  prohibitedProps: ["aria-label", "aria-labelledby"],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "p"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, tYt = eYt;
fk.default = tYt;
var hk = {};
Object.defineProperty(hk, "__esModule", {
  value: !0
});
hk.default = void 0;
var rYt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["prohibited"],
  prohibitedProps: ["aria-label", "aria-labelledby"],
  props: {},
  relatedConcepts: [{
    concept: {
      attributes: [{
        name: "alt",
        value: ""
      }],
      name: "img"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure"]]
}, iYt = rYt;
hk.default = iYt;
var dk = {};
Object.defineProperty(dk, "__esModule", {
  value: !0
});
dk.default = void 0;
var nYt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !0,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-valuetext": null
  },
  relatedConcepts: [{
    concept: {
      name: "progress"
    },
    module: "HTML"
  }, {
    concept: {
      name: "status"
    },
    module: "ARIA"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "range"], ["roletype", "widget"]]
}, sYt = nYt;
dk.default = sYt;
var mk = {};
Object.defineProperty(mk, "__esModule", {
  value: !0
});
mk.default = void 0;
var aYt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !0,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {
    "aria-checked": null,
    "aria-posinset": null,
    "aria-setsize": null
  },
  relatedConcepts: [{
    concept: {
      attributes: [{
        name: "type",
        value: "radio"
      }],
      name: "input"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {
    "aria-checked": null
  },
  superClass: [["roletype", "widget", "input"]]
}, oYt = aYt;
mk.default = oYt;
var yk = {};
Object.defineProperty(yk, "__esModule", {
  value: !0
});
yk.default = void 0;
var lYt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-errormessage": null,
    "aria-invalid": null,
    "aria-readonly": null,
    "aria-required": null
  },
  relatedConcepts: [{
    concept: {
      name: "list"
    },
    module: "ARIA"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [["radio"]],
  requiredProps: {},
  superClass: [["roletype", "widget", "composite", "select"], ["roletype", "structure", "section", "group", "select"]]
}, uYt = lYt;
yk.default = uYt;
var gk = {};
Object.defineProperty(gk, "__esModule", {
  value: !0
});
gk.default = void 0;
var cYt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      attributes: [{
        constraints: ["set"],
        name: "aria-label"
      }],
      name: "section"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        constraints: ["set"],
        name: "aria-labelledby"
      }],
      name: "section"
    },
    module: "HTML"
  }, {
    concept: {
      name: "Device Independence Glossart perceivable unit"
    }
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, pYt = cYt;
gk.default = pYt;
var bk = {};
Object.defineProperty(bk, "__esModule", {
  value: !0
});
bk.default = void 0;
var fYt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {
    "aria-colindex": null,
    "aria-expanded": null,
    "aria-level": null,
    "aria-posinset": null,
    "aria-rowindex": null,
    "aria-selected": null,
    "aria-setsize": null
  },
  relatedConcepts: [{
    concept: {
      name: "tr"
    },
    module: "HTML"
  }],
  requireContextRole: ["grid", "rowgroup", "table", "treegrid"],
  requiredContextRole: ["grid", "rowgroup", "table", "treegrid"],
  requiredOwnedElements: [["cell"], ["columnheader"], ["gridcell"], ["rowheader"]],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "group"], ["roletype", "widget"]]
}, hYt = fYt;
bk.default = hYt;
var vk = {};
Object.defineProperty(vk, "__esModule", {
  value: !0
});
vk.default = void 0;
var dYt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "tbody"
    },
    module: "HTML"
  }, {
    concept: {
      name: "tfoot"
    },
    module: "HTML"
  }, {
    concept: {
      name: "thead"
    },
    module: "HTML"
  }],
  requireContextRole: ["grid", "table", "treegrid"],
  requiredContextRole: ["grid", "table", "treegrid"],
  requiredOwnedElements: [["row"]],
  requiredProps: {},
  superClass: [["roletype", "structure"]]
}, mYt = dYt;
vk.default = mYt;
var Tk = {};
Object.defineProperty(Tk, "__esModule", {
  value: !0
});
Tk.default = void 0;
var yYt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {
    "aria-sort": null
  },
  relatedConcepts: [{
    concept: {
      attributes: [{
        name: "scope",
        value: "row"
      }],
      name: "th"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        name: "scope",
        value: "rowgroup"
      }],
      name: "th"
    },
    module: "HTML"
  }],
  requireContextRole: ["row", "rowgroup"],
  requiredContextRole: ["row", "rowgroup"],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "cell"], ["roletype", "structure", "section", "cell", "gridcell"], ["roletype", "widget", "gridcell"], ["roletype", "structure", "sectionhead"]]
}, gYt = yYt;
Tk.default = gYt;
var Sk = {};
Object.defineProperty(Sk, "__esModule", {
  value: !0
});
Sk.default = void 0;
var bYt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !0,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-valuetext": null,
    "aria-orientation": "vertical",
    "aria-valuemax": "100",
    "aria-valuemin": "0"
  },
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {
    "aria-controls": null,
    "aria-valuenow": null
  },
  superClass: [["roletype", "structure", "range"], ["roletype", "widget"]]
}, vYt = bYt;
Sk.default = vYt;
var xk = {};
Object.defineProperty(xk, "__esModule", {
  value: !0
});
xk.default = void 0;
var TYt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, SYt = TYt;
xk.default = SYt;
var Ek = {};
Object.defineProperty(Ek, "__esModule", {
  value: !0
});
Ek.default = void 0;
var xYt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      attributes: [{
        constraints: ["undefined"],
        name: "list"
      }, {
        name: "type",
        value: "search"
      }],
      constraints: ["the list attribute is not set"],
      name: "input"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "widget", "input", "textbox"]]
}, EYt = xYt;
Ek.default = EYt;
var Pk = {};
Object.defineProperty(Pk, "__esModule", {
  value: !0
});
Pk.default = void 0;
var PYt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !0,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-orientation": "horizontal",
    "aria-valuemax": "100",
    "aria-valuemin": "0",
    "aria-valuenow": null,
    "aria-valuetext": null
  },
  relatedConcepts: [{
    concept: {
      name: "hr"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure"]]
}, wYt = PYt;
Pk.default = wYt;
var wk = {};
Object.defineProperty(wk, "__esModule", {
  value: !0
});
wk.default = void 0;
var AYt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !0,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-errormessage": null,
    "aria-haspopup": null,
    "aria-invalid": null,
    "aria-readonly": null,
    "aria-valuetext": null,
    "aria-orientation": "horizontal",
    "aria-valuemax": "100",
    "aria-valuemin": "0"
  },
  relatedConcepts: [{
    concept: {
      attributes: [{
        name: "type",
        value: "range"
      }],
      name: "input"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {
    "aria-valuenow": null
  },
  superClass: [["roletype", "widget", "input"], ["roletype", "structure", "range"]]
}, CYt = AYt;
wk.default = CYt;
var Ak = {};
Object.defineProperty(Ak, "__esModule", {
  value: !0
});
Ak.default = void 0;
var _Yt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-errormessage": null,
    "aria-invalid": null,
    "aria-readonly": null,
    "aria-required": null,
    "aria-valuetext": null,
    "aria-valuenow": "0"
  },
  relatedConcepts: [{
    concept: {
      attributes: [{
        name: "type",
        value: "number"
      }],
      name: "input"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "widget", "composite"], ["roletype", "widget", "input"], ["roletype", "structure", "range"]]
}, IYt = _Yt;
Ak.default = IYt;
var Ck = {};
Object.defineProperty(Ck, "__esModule", {
  value: !0
});
Ck.default = void 0;
var kYt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-atomic": "true",
    "aria-live": "polite"
  },
  relatedConcepts: [{
    concept: {
      name: "output"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, OYt = kYt;
Ck.default = OYt;
var _k = {};
Object.defineProperty(_k, "__esModule", {
  value: !0
});
_k.default = void 0;
var NYt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["prohibited"],
  prohibitedProps: ["aria-label", "aria-labelledby"],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "strong"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, DYt = NYt;
_k.default = DYt;
var Ik = {};
Object.defineProperty(Ik, "__esModule", {
  value: !0
});
Ik.default = void 0;
var LYt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["prohibited"],
  prohibitedProps: ["aria-label", "aria-labelledby"],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "sub"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, MYt = LYt;
Ik.default = MYt;
var kk = {};
Object.defineProperty(kk, "__esModule", {
  value: !0
});
kk.default = void 0;
var RYt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["prohibited"],
  prohibitedProps: ["aria-label", "aria-labelledby"],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "sup"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, BYt = RYt;
kk.default = BYt;
var Ok = {};
Object.defineProperty(Ok, "__esModule", {
  value: !0
});
Ok.default = void 0;
var FYt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !0,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "button"
    },
    module: "ARIA"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {
    "aria-checked": null
  },
  superClass: [["roletype", "widget", "input", "checkbox"]]
}, jYt = FYt;
Ok.default = jYt;
var Nk = {};
Object.defineProperty(Nk, "__esModule", {
  value: !0
});
Nk.default = void 0;
var $Yt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !0,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-posinset": null,
    "aria-setsize": null,
    "aria-selected": "false"
  },
  relatedConcepts: [],
  requireContextRole: ["tablist"],
  requiredContextRole: ["tablist"],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "sectionhead"], ["roletype", "widget"]]
}, UYt = $Yt;
Nk.default = UYt;
var Dk = {};
Object.defineProperty(Dk, "__esModule", {
  value: !0
});
Dk.default = void 0;
var qYt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-colcount": null,
    "aria-rowcount": null
  },
  relatedConcepts: [{
    concept: {
      name: "table"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [["row"], ["row", "rowgroup"]],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, VYt = qYt;
Dk.default = VYt;
var Lk = {};
Object.defineProperty(Lk, "__esModule", {
  value: !0
});
Lk.default = void 0;
var WYt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-level": null,
    "aria-multiselectable": null,
    "aria-orientation": "horizontal"
  },
  relatedConcepts: [{
    module: "DAISY",
    concept: {
      name: "guide"
    }
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [["tab"]],
  requiredProps: {},
  superClass: [["roletype", "widget", "composite"]]
}, HYt = WYt;
Lk.default = HYt;
var Mk = {};
Object.defineProperty(Mk, "__esModule", {
  value: !0
});
Mk.default = void 0;
var KYt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, zYt = KYt;
Mk.default = zYt;
var Rk = {};
Object.defineProperty(Rk, "__esModule", {
  value: !0
});
Rk.default = void 0;
var GYt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "dfn"
    },
    module: "HTML"
  }, {
    concept: {
      name: "dt"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, YYt = GYt;
Rk.default = YYt;
var Bk = {};
Object.defineProperty(Bk, "__esModule", {
  value: !0
});
Bk.default = void 0;
var XYt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-activedescendant": null,
    "aria-autocomplete": null,
    "aria-errormessage": null,
    "aria-haspopup": null,
    "aria-invalid": null,
    "aria-multiline": null,
    "aria-placeholder": null,
    "aria-readonly": null,
    "aria-required": null
  },
  relatedConcepts: [{
    concept: {
      attributes: [{
        constraints: ["undefined"],
        name: "type"
      }, {
        constraints: ["undefined"],
        name: "list"
      }],
      constraints: ["the list attribute is not set"],
      name: "input"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        constraints: ["undefined"],
        name: "list"
      }, {
        name: "type",
        value: "email"
      }],
      constraints: ["the list attribute is not set"],
      name: "input"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        constraints: ["undefined"],
        name: "list"
      }, {
        name: "type",
        value: "tel"
      }],
      constraints: ["the list attribute is not set"],
      name: "input"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        constraints: ["undefined"],
        name: "list"
      }, {
        name: "type",
        value: "text"
      }],
      constraints: ["the list attribute is not set"],
      name: "input"
    },
    module: "HTML"
  }, {
    concept: {
      attributes: [{
        constraints: ["undefined"],
        name: "list"
      }, {
        name: "type",
        value: "url"
      }],
      constraints: ["the list attribute is not set"],
      name: "input"
    },
    module: "HTML"
  }, {
    concept: {
      name: "input"
    },
    module: "XForms"
  }, {
    concept: {
      name: "textarea"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "widget", "input"]]
}, JYt = XYt;
Bk.default = JYt;
var Fk = {};
Object.defineProperty(Fk, "__esModule", {
  value: !0
});
Fk.default = void 0;
var QYt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "time"
    },
    module: "HTML"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, ZYt = QYt;
Fk.default = ZYt;
var jk = {};
Object.defineProperty(jk, "__esModule", {
  value: !0
});
jk.default = void 0;
var eXt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "status"]]
}, tXt = eXt;
jk.default = tXt;
var $k = {};
Object.defineProperty($k, "__esModule", {
  value: !0
});
$k.default = void 0;
var rXt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-orientation": "horizontal"
  },
  relatedConcepts: [{
    concept: {
      name: "menubar"
    },
    module: "ARIA"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "group"]]
}, iXt = rXt;
$k.default = iXt;
var Uk = {};
Object.defineProperty(Uk, "__esModule", {
  value: !0
});
Uk.default = void 0;
var nXt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, sXt = nXt;
Uk.default = sXt;
var qk = {};
Object.defineProperty(qk, "__esModule", {
  value: !0
});
qk.default = void 0;
var aXt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-errormessage": null,
    "aria-invalid": null,
    "aria-multiselectable": null,
    "aria-required": null,
    "aria-orientation": "vertical"
  },
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [["treeitem", "group"], ["treeitem"]],
  requiredProps: {},
  superClass: [["roletype", "widget", "composite", "select"], ["roletype", "structure", "section", "group", "select"]]
}, oXt = aXt;
qk.default = oXt;
var Vk = {};
Object.defineProperty(Vk, "__esModule", {
  value: !0
});
Vk.default = void 0;
var lXt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [["row"], ["row", "rowgroup"]],
  requiredProps: {},
  superClass: [["roletype", "widget", "composite", "grid"], ["roletype", "structure", "section", "table", "grid"], ["roletype", "widget", "composite", "select", "tree"], ["roletype", "structure", "section", "group", "select", "tree"]]
}, uXt = lXt;
Vk.default = uXt;
var Wk = {};
Object.defineProperty(Wk, "__esModule", {
  value: !0
});
Wk.default = void 0;
var cXt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {
    "aria-expanded": null,
    "aria-haspopup": null
  },
  relatedConcepts: [],
  requireContextRole: ["group", "tree"],
  requiredContextRole: ["group", "tree"],
  requiredOwnedElements: [],
  requiredProps: {
    "aria-selected": null
  },
  superClass: [["roletype", "structure", "section", "listitem"], ["roletype", "widget", "input", "option"]]
}, pXt = cXt;
Wk.default = pXt;
Object.defineProperty(m2, "__esModule", {
  value: !0
});
m2.default = void 0;
var fXt = kt(y2), hXt = kt(g2), dXt = kt(b2), mXt = kt(v2), yXt = kt(T2), gXt = kt(S2), bXt = kt(x2), vXt = kt(E2), TXt = kt(P2), SXt = kt(w2), xXt = kt(A2), EXt = kt(C2), PXt = kt(_2), wXt = kt(I2), AXt = kt(k2), CXt = kt(O2), _Xt = kt(N2), IXt = kt(D2), kXt = kt(L2), OXt = kt(M2), NXt = kt(R2), DXt = kt(B2), LXt = kt(F2), MXt = kt(j2), RXt = kt($2), BXt = kt(U2), FXt = kt(q2), jXt = kt(V2), $Xt = kt(W2), UXt = kt(H2), qXt = kt(K2), VXt = kt(z2), WXt = kt(G2), HXt = kt(Y2), KXt = kt(X2), zXt = kt(J2), GXt = kt(Q2), YXt = kt(Z2), XXt = kt(ek), JXt = kt(tk), QXt = kt(rk), ZXt = kt(ik), eJt = kt(nk), tJt = kt(sk), rJt = kt(ak), iJt = kt(ok), nJt = kt(lk), sJt = kt(uk), aJt = kt(ck), oJt = kt(pk), lJt = kt(fk), uJt = kt(hk), cJt = kt(dk), pJt = kt(mk), fJt = kt(yk), hJt = kt(gk), dJt = kt(bk), mJt = kt(vk), yJt = kt(Tk), gJt = kt(Sk), bJt = kt(xk), vJt = kt(Ek), TJt = kt(Pk), SJt = kt(wk), xJt = kt(Ak), EJt = kt(Ck), PJt = kt(_k), wJt = kt(Ik), AJt = kt(kk), CJt = kt(Ok), _Jt = kt(Nk), IJt = kt(Dk), kJt = kt(Lk), OJt = kt(Mk), NJt = kt(Rk), DJt = kt(Bk), LJt = kt(Fk), MJt = kt(jk), RJt = kt($k), BJt = kt(Uk), FJt = kt(qk), jJt = kt(Vk), $Jt = kt(Wk);
function kt(e) {
  return e && e.__esModule ? e : { default: e };
}
var UJt = [["alert", fXt.default], ["alertdialog", hXt.default], ["application", dXt.default], ["article", mXt.default], ["banner", yXt.default], ["blockquote", gXt.default], ["button", bXt.default], ["caption", vXt.default], ["cell", TXt.default], ["checkbox", SXt.default], ["code", xXt.default], ["columnheader", EXt.default], ["combobox", PXt.default], ["complementary", wXt.default], ["contentinfo", AXt.default], ["definition", CXt.default], ["deletion", _Xt.default], ["dialog", IXt.default], ["directory", kXt.default], ["document", OXt.default], ["emphasis", NXt.default], ["feed", DXt.default], ["figure", LXt.default], ["form", MXt.default], ["generic", RXt.default], ["grid", BXt.default], ["gridcell", FXt.default], ["group", jXt.default], ["heading", $Xt.default], ["img", UXt.default], ["insertion", qXt.default], ["link", VXt.default], ["list", WXt.default], ["listbox", HXt.default], ["listitem", KXt.default], ["log", zXt.default], ["main", GXt.default], ["mark", YXt.default], ["marquee", XXt.default], ["math", JXt.default], ["menu", QXt.default], ["menubar", ZXt.default], ["menuitem", eJt.default], ["menuitemcheckbox", tJt.default], ["menuitemradio", rJt.default], ["meter", iJt.default], ["navigation", nJt.default], ["none", sJt.default], ["note", aJt.default], ["option", oJt.default], ["paragraph", lJt.default], ["presentation", uJt.default], ["progressbar", cJt.default], ["radio", pJt.default], ["radiogroup", fJt.default], ["region", hJt.default], ["row", dJt.default], ["rowgroup", mJt.default], ["rowheader", yJt.default], ["scrollbar", gJt.default], ["search", bJt.default], ["searchbox", vJt.default], ["separator", TJt.default], ["slider", SJt.default], ["spinbutton", xJt.default], ["status", EJt.default], ["strong", PJt.default], ["subscript", wJt.default], ["superscript", AJt.default], ["switch", CJt.default], ["tab", _Jt.default], ["table", IJt.default], ["tablist", kJt.default], ["tabpanel", OJt.default], ["term", NJt.default], ["textbox", DJt.default], ["time", LJt.default], ["timer", MJt.default], ["toolbar", RJt.default], ["tooltip", BJt.default], ["tree", FJt.default], ["treegrid", jJt.default], ["treeitem", $Jt.default]], qJt = UJt;
m2.default = qJt;
var Hk = {}, Kk = {};
Object.defineProperty(Kk, "__esModule", {
  value: !0
});
Kk.default = void 0;
var VJt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "abstract [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, WJt = VJt;
Kk.default = WJt;
var zk = {};
Object.defineProperty(zk, "__esModule", {
  value: !0
});
zk.default = void 0;
var HJt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "acknowledgments [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, KJt = HJt;
zk.default = KJt;
var Gk = {};
Object.defineProperty(Gk, "__esModule", {
  value: !0
});
Gk.default = void 0;
var zJt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "afterword [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, GJt = zJt;
Gk.default = GJt;
var Yk = {};
Object.defineProperty(Yk, "__esModule", {
  value: !0
});
Yk.default = void 0;
var YJt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "appendix [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, XJt = YJt;
Yk.default = XJt;
var Xk = {};
Object.defineProperty(Xk, "__esModule", {
  value: !0
});
Xk.default = void 0;
var JJt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {
    "aria-errormessage": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "referrer [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "widget", "command", "link"]]
}, QJt = JJt;
Xk.default = QJt;
var Jk = {};
Object.defineProperty(Jk, "__esModule", {
  value: !0
});
Jk.default = void 0;
var ZJt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "EPUB biblioentry [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: ["doc-bibliography"],
  requiredContextRole: ["doc-bibliography"],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "listitem"]]
}, eQt = ZJt;
Jk.default = eQt;
var Qk = {};
Object.defineProperty(Qk, "__esModule", {
  value: !0
});
Qk.default = void 0;
var tQt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "bibliography [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [["doc-biblioentry"]],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, rQt = tQt;
Qk.default = rQt;
var Zk = {};
Object.defineProperty(Zk, "__esModule", {
  value: !0
});
Zk.default = void 0;
var iQt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {
    "aria-errormessage": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "biblioref [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "widget", "command", "link"]]
}, nQt = iQt;
Zk.default = nQt;
var eO = {};
Object.defineProperty(eO, "__esModule", {
  value: !0
});
eO.default = void 0;
var sQt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "chapter [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, aQt = sQt;
eO.default = aQt;
var tO = {};
Object.defineProperty(tO, "__esModule", {
  value: !0
});
tO.default = void 0;
var oQt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "colophon [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, lQt = oQt;
tO.default = lQt;
var rO = {};
Object.defineProperty(rO, "__esModule", {
  value: !0
});
rO.default = void 0;
var uQt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "conclusion [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, cQt = uQt;
rO.default = cQt;
var iO = {};
Object.defineProperty(iO, "__esModule", {
  value: !0
});
iO.default = void 0;
var pQt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "cover [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "img"]]
}, fQt = pQt;
iO.default = fQt;
var nO = {};
Object.defineProperty(nO, "__esModule", {
  value: !0
});
nO.default = void 0;
var hQt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "credit [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, dQt = hQt;
nO.default = dQt;
var sO = {};
Object.defineProperty(sO, "__esModule", {
  value: !0
});
sO.default = void 0;
var mQt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "credits [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, yQt = mQt;
sO.default = yQt;
var aO = {};
Object.defineProperty(aO, "__esModule", {
  value: !0
});
aO.default = void 0;
var gQt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "dedication [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, bQt = gQt;
aO.default = bQt;
var oO = {};
Object.defineProperty(oO, "__esModule", {
  value: !0
});
oO.default = void 0;
var vQt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "rearnote [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: ["doc-endnotes"],
  requiredContextRole: ["doc-endnotes"],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "listitem"]]
}, TQt = vQt;
oO.default = TQt;
var lO = {};
Object.defineProperty(lO, "__esModule", {
  value: !0
});
lO.default = void 0;
var SQt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "rearnotes [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [["doc-endnote"]],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, xQt = SQt;
lO.default = xQt;
var uO = {};
Object.defineProperty(uO, "__esModule", {
  value: !0
});
uO.default = void 0;
var EQt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "epigraph [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, PQt = EQt;
uO.default = PQt;
var cO = {};
Object.defineProperty(cO, "__esModule", {
  value: !0
});
cO.default = void 0;
var wQt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "epilogue [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, AQt = wQt;
cO.default = AQt;
var pO = {};
Object.defineProperty(pO, "__esModule", {
  value: !0
});
pO.default = void 0;
var CQt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "errata [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, _Qt = CQt;
pO.default = _Qt;
var fO = {};
Object.defineProperty(fO, "__esModule", {
  value: !0
});
fO.default = void 0;
var IQt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, kQt = IQt;
fO.default = kQt;
var hO = {};
Object.defineProperty(hO, "__esModule", {
  value: !0
});
hO.default = void 0;
var OQt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "footnote [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, NQt = OQt;
hO.default = NQt;
var dO = {};
Object.defineProperty(dO, "__esModule", {
  value: !0
});
dO.default = void 0;
var DQt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "foreword [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, LQt = DQt;
dO.default = LQt;
var mO = {};
Object.defineProperty(mO, "__esModule", {
  value: !0
});
mO.default = void 0;
var MQt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "glossary [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [["definition"], ["term"]],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, RQt = MQt;
mO.default = RQt;
var yO = {};
Object.defineProperty(yO, "__esModule", {
  value: !0
});
yO.default = void 0;
var BQt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {
    "aria-errormessage": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "glossref [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "widget", "command", "link"]]
}, FQt = BQt;
yO.default = FQt;
var gO = {};
Object.defineProperty(gO, "__esModule", {
  value: !0
});
gO.default = void 0;
var jQt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "index [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark", "navigation"]]
}, $Qt = jQt;
gO.default = $Qt;
var bO = {};
Object.defineProperty(bO, "__esModule", {
  value: !0
});
bO.default = void 0;
var UQt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "introduction [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, qQt = UQt;
bO.default = qQt;
var vO = {};
Object.defineProperty(vO, "__esModule", {
  value: !0
});
vO.default = void 0;
var VQt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {
    "aria-errormessage": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "noteref [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "widget", "command", "link"]]
}, WQt = VQt;
vO.default = WQt;
var TO = {};
Object.defineProperty(TO, "__esModule", {
  value: !0
});
TO.default = void 0;
var HQt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "notice [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "note"]]
}, KQt = HQt;
TO.default = KQt;
var SO = {};
Object.defineProperty(SO, "__esModule", {
  value: !0
});
SO.default = void 0;
var zQt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !0,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "pagebreak [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "separator"]]
}, GQt = zQt;
SO.default = GQt;
var xO = {};
Object.defineProperty(xO, "__esModule", {
  value: !0
});
xO.default = void 0;
var YQt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "page-list [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark", "navigation"]]
}, XQt = YQt;
xO.default = XQt;
var EO = {};
Object.defineProperty(EO, "__esModule", {
  value: !0
});
EO.default = void 0;
var JQt = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "part [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, QQt = JQt;
EO.default = QQt;
var PO = {};
Object.defineProperty(PO, "__esModule", {
  value: !0
});
PO.default = void 0;
var ZQt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "preface [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, eZt = ZQt;
PO.default = eZt;
var wO = {};
Object.defineProperty(wO, "__esModule", {
  value: !0
});
wO.default = void 0;
var tZt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "prologue [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark"]]
}, rZt = tZt;
wO.default = rZt;
var AO = {};
Object.defineProperty(AO, "__esModule", {
  value: !0
});
AO.default = void 0;
var iZt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {},
  relatedConcepts: [{
    concept: {
      name: "pullquote [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["none"]]
}, nZt = iZt;
AO.default = nZt;
var CO = {};
Object.defineProperty(CO, "__esModule", {
  value: !0
});
CO.default = void 0;
var sZt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "qna [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section"]]
}, aZt = sZt;
CO.default = aZt;
var _O = {};
Object.defineProperty(_O, "__esModule", {
  value: !0
});
_O.default = void 0;
var oZt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "subtitle [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "sectionhead"]]
}, lZt = oZt;
_O.default = lZt;
var IO = {};
Object.defineProperty(IO, "__esModule", {
  value: !0
});
IO.default = void 0;
var uZt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "help [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "note"]]
}, cZt = uZt;
IO.default = cZt;
var kO = {};
Object.defineProperty(kO, "__esModule", {
  value: !0
});
kO.default = void 0;
var pZt = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    concept: {
      name: "toc [EPUB-SSV]"
    },
    module: "EPUB"
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "landmark", "navigation"]]
}, fZt = pZt;
kO.default = fZt;
Object.defineProperty(Hk, "__esModule", {
  value: !0
});
Hk.default = void 0;
var hZt = Hr(Kk), dZt = Hr(zk), mZt = Hr(Gk), yZt = Hr(Yk), gZt = Hr(Xk), bZt = Hr(Jk), vZt = Hr(Qk), TZt = Hr(Zk), SZt = Hr(eO), xZt = Hr(tO), EZt = Hr(rO), PZt = Hr(iO), wZt = Hr(nO), AZt = Hr(sO), CZt = Hr(aO), _Zt = Hr(oO), IZt = Hr(lO), kZt = Hr(uO), OZt = Hr(cO), NZt = Hr(pO), DZt = Hr(fO), LZt = Hr(hO), MZt = Hr(dO), RZt = Hr(mO), BZt = Hr(yO), FZt = Hr(gO), jZt = Hr(bO), $Zt = Hr(vO), UZt = Hr(TO), qZt = Hr(SO), VZt = Hr(xO), WZt = Hr(EO), HZt = Hr(PO), KZt = Hr(wO), zZt = Hr(AO), GZt = Hr(CO), YZt = Hr(_O), XZt = Hr(IO), JZt = Hr(kO);
function Hr(e) {
  return e && e.__esModule ? e : { default: e };
}
var QZt = [["doc-abstract", hZt.default], ["doc-acknowledgments", dZt.default], ["doc-afterword", mZt.default], ["doc-appendix", yZt.default], ["doc-backlink", gZt.default], ["doc-biblioentry", bZt.default], ["doc-bibliography", vZt.default], ["doc-biblioref", TZt.default], ["doc-chapter", SZt.default], ["doc-colophon", xZt.default], ["doc-conclusion", EZt.default], ["doc-cover", PZt.default], ["doc-credit", wZt.default], ["doc-credits", AZt.default], ["doc-dedication", CZt.default], ["doc-endnote", _Zt.default], ["doc-endnotes", IZt.default], ["doc-epigraph", kZt.default], ["doc-epilogue", OZt.default], ["doc-errata", NZt.default], ["doc-example", DZt.default], ["doc-footnote", LZt.default], ["doc-foreword", MZt.default], ["doc-glossary", RZt.default], ["doc-glossref", BZt.default], ["doc-index", FZt.default], ["doc-introduction", jZt.default], ["doc-noteref", $Zt.default], ["doc-notice", UZt.default], ["doc-pagebreak", qZt.default], ["doc-pagelist", VZt.default], ["doc-part", WZt.default], ["doc-preface", HZt.default], ["doc-prologue", KZt.default], ["doc-pullquote", zZt.default], ["doc-qna", GZt.default], ["doc-subtitle", YZt.default], ["doc-tip", XZt.default], ["doc-toc", JZt.default]], ZZt = QZt;
Hk.default = ZZt;
var OO = {}, NO = {};
Object.defineProperty(NO, "__esModule", {
  value: !0
});
NO.default = void 0;
var eer = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    module: "GRAPHICS",
    concept: {
      name: "graphics-object"
    }
  }, {
    module: "ARIA",
    concept: {
      name: "img"
    }
  }, {
    module: "ARIA",
    concept: {
      name: "article"
    }
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "document"]]
}, ter = eer;
NO.default = ter;
var DO = {};
Object.defineProperty(DO, "__esModule", {
  value: !0
});
DO.default = void 0;
var rer = {
  abstract: !1,
  accessibleNameRequired: !1,
  baseConcepts: [],
  childrenPresentational: !1,
  nameFrom: ["author", "contents"],
  prohibitedProps: [],
  props: {
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [{
    module: "GRAPHICS",
    concept: {
      name: "graphics-document"
    }
  }, {
    module: "ARIA",
    concept: {
      name: "group"
    }
  }, {
    module: "ARIA",
    concept: {
      name: "img"
    }
  }, {
    module: "GRAPHICS",
    concept: {
      name: "graphics-symbol"
    }
  }],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "group"]]
}, ier = rer;
DO.default = ier;
var LO = {};
Object.defineProperty(LO, "__esModule", {
  value: !0
});
LO.default = void 0;
var ner = {
  abstract: !1,
  accessibleNameRequired: !0,
  baseConcepts: [],
  childrenPresentational: !0,
  nameFrom: ["author"],
  prohibitedProps: [],
  props: {
    "aria-disabled": null,
    "aria-errormessage": null,
    "aria-expanded": null,
    "aria-haspopup": null,
    "aria-invalid": null
  },
  relatedConcepts: [],
  requireContextRole: [],
  requiredContextRole: [],
  requiredOwnedElements: [],
  requiredProps: {},
  superClass: [["roletype", "structure", "section", "img"]]
}, ser = ner;
LO.default = ser;
Object.defineProperty(OO, "__esModule", {
  value: !0
});
OO.default = void 0;
var aer = EU(NO), oer = EU(DO), ler = EU(LO);
function EU(e) {
  return e && e.__esModule ? e : { default: e };
}
var uer = [["graphics-document", aer.default], ["graphics-object", oer.default], ["graphics-symbol", ler.default]], cer = uer;
OO.default = cer;
Object.defineProperty(Hg, "__esModule", {
  value: !0
});
Hg.default = void 0;
var per = AS(r2), fer = AS(m2), her = AS(Hk), der = AS(OO), mer = AS(Em);
function AS(e) {
  return e && e.__esModule ? e : { default: e };
}
function yer(e, t, r) {
  return t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e;
}
function lj(e, t) {
  var r = typeof Symbol != "undefined" && e[Symbol.iterator] || e["@@iterator"];
  if (!r) {
    if (Array.isArray(e) || (r = aTe(e)) || t && e && typeof e.length == "number") {
      r && (e = r);
      var i = 0, n = function() {
      };
      return { s: n, n: function() {
        return i >= e.length ? { done: !0 } : { done: !1, value: e[i++] };
      }, e: function(u) {
        throw u;
      }, f: n };
    }
    throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  }
  var s = !0, a = !1, o;
  return { s: function() {
    r = r.call(e);
  }, n: function() {
    var u = r.next();
    return s = u.done, u;
  }, e: function(u) {
    a = !0, o = u;
  }, f: function() {
    try {
      !s && r.return != null && r.return();
    } finally {
      if (a)
        throw o;
    }
  } };
}
function cv(e, t) {
  return ver(e) || ber(e, t) || aTe(e, t) || ger();
}
function ger() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function aTe(e, t) {
  if (e) {
    if (typeof e == "string")
      return Hte(e, t);
    var r = Object.prototype.toString.call(e).slice(8, -1);
    if (r === "Object" && e.constructor && (r = e.constructor.name), r === "Map" || r === "Set")
      return Array.from(e);
    if (r === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))
      return Hte(e, t);
  }
}
function Hte(e, t) {
  (t == null || t > e.length) && (t = e.length);
  for (var r = 0, i = new Array(t); r < t; r++)
    i[r] = e[r];
  return i;
}
function ber(e, t) {
  var r = e == null ? null : typeof Symbol != "undefined" && e[Symbol.iterator] || e["@@iterator"];
  if (r != null) {
    var i = [], n = !0, s = !1, a, o;
    try {
      for (r = r.call(e); !(n = (a = r.next()).done) && (i.push(a.value), !(t && i.length === t)); n = !0)
        ;
    } catch (l) {
      s = !0, o = l;
    } finally {
      try {
        !n && r.return != null && r.return();
      } finally {
        if (s)
          throw o;
      }
    }
    return i;
  }
}
function ver(e) {
  if (Array.isArray(e))
    return e;
}
var yh = [].concat(per.default, fer.default, her.default, der.default);
yh.forEach(function(e) {
  var t = cv(e, 2), r = t[1], i = lj(r.superClass), n;
  try {
    for (i.s(); !(n = i.n()).done; ) {
      var s = n.value, a = lj(s), o;
      try {
        var l = function() {
          var c = o.value, f = yh.find(function(v) {
            var T = cv(v, 1), S = T[0];
            return S === c;
          });
          if (f)
            for (var h = f[1], m = 0, g = Object.keys(h.props); m < g.length; m++) {
              var y = g[m];
              Object.prototype.hasOwnProperty.call(r.props, y) || Object.assign(r.props, yer({}, y, h.props[y]));
            }
        };
        for (a.s(); !(o = a.n()).done; )
          l();
      } catch (u) {
        a.e(u);
      } finally {
        a.f();
      }
    }
  } catch (u) {
    i.e(u);
  } finally {
    i.f();
  }
});
var uj = {
  entries: function() {
    return yh;
  },
  forEach: function(t) {
    var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, i = lj(yh), n;
    try {
      for (i.s(); !(n = i.n()).done; ) {
        var s = cv(n.value, 2), a = s[0], o = s[1];
        t.call(r, o, a, yh);
      }
    } catch (l) {
      i.e(l);
    } finally {
      i.f();
    }
  },
  get: function(t) {
    var r = yh.find(function(i) {
      return i[0] === t;
    });
    return r && r[1];
  },
  has: function(t) {
    return !!uj.get(t);
  },
  keys: function() {
    return yh.map(function(t) {
      var r = cv(t, 1), i = r[0];
      return i;
    });
  },
  values: function() {
    return yh.map(function(t) {
      var r = cv(t, 2), i = r[1];
      return i;
    });
  }
}, Ter = (0, mer.default)(uj, uj.entries());
Hg.default = Ter;
var MO = {}, PU = {}, Kte = Object.prototype.hasOwnProperty;
function cj(e, t) {
  var r, i;
  if (e === t)
    return !0;
  if (e && t && (r = e.constructor) === t.constructor) {
    if (r === Date)
      return e.getTime() === t.getTime();
    if (r === RegExp)
      return e.toString() === t.toString();
    if (r === Array) {
      if ((i = e.length) === t.length)
        for (; i-- && cj(e[i], t[i]); )
          ;
      return i === -1;
    }
    if (!r || typeof e == "object") {
      i = 0;
      for (r in e)
        if (Kte.call(e, r) && ++i && !Kte.call(t, r) || !(r in t) || !cj(e[r], t[r]))
          return !1;
      return Object.keys(t).length === i;
    }
  }
  return e !== e && t !== t;
}
PU.dequal = cj;
Object.defineProperty(MO, "__esModule", {
  value: !0
});
MO.default = void 0;
var oTe = PU, Ser = uTe(Em), lTe = uTe(Hg);
function uTe(e) {
  return e && e.__esModule ? e : { default: e };
}
function pB(e, t) {
  return Per(e) || Eer(e, t) || cTe(e, t) || xer();
}
function xer() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function Eer(e, t) {
  var r = e == null ? null : typeof Symbol != "undefined" && e[Symbol.iterator] || e["@@iterator"];
  if (r != null) {
    var i = [], n = !0, s = !1, a, o;
    try {
      for (r = r.call(e); !(n = (a = r.next()).done) && (i.push(a.value), !(t && i.length === t)); n = !0)
        ;
    } catch (l) {
      s = !0, o = l;
    } finally {
      try {
        !n && r.return != null && r.return();
      } finally {
        if (s)
          throw o;
      }
    }
    return i;
  }
}
function Per(e) {
  if (Array.isArray(e))
    return e;
}
function wer(e, t) {
  var r = typeof Symbol != "undefined" && e[Symbol.iterator] || e["@@iterator"];
  if (!r) {
    if (Array.isArray(e) || (r = cTe(e)) || t && e && typeof e.length == "number") {
      r && (e = r);
      var i = 0, n = function() {
      };
      return { s: n, n: function() {
        return i >= e.length ? { done: !0 } : { done: !1, value: e[i++] };
      }, e: function(u) {
        throw u;
      }, f: n };
    }
    throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  }
  var s = !0, a = !1, o;
  return { s: function() {
    r = r.call(e);
  }, n: function() {
    var u = r.next();
    return s = u.done, u;
  }, e: function(u) {
    a = !0, o = u;
  }, f: function() {
    try {
      !s && r.return != null && r.return();
    } finally {
      if (a)
        throw o;
    }
  } };
}
function cTe(e, t) {
  if (e) {
    if (typeof e == "string")
      return zte(e, t);
    var r = Object.prototype.toString.call(e).slice(8, -1);
    if (r === "Object" && e.constructor && (r = e.constructor.name), r === "Map" || r === "Set")
      return Array.from(e);
    if (r === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))
      return zte(e, t);
  }
}
function zte(e, t) {
  (t == null || t > e.length) && (t = e.length);
  for (var r = 0, i = new Array(t); r < t; r++)
    i[r] = e[r];
  return i;
}
var gh = [], Gte = lTe.default.keys();
for (var fB = 0; fB < Gte.length; fB++) {
  var hB = Gte[fB], dB = lTe.default.get(hB);
  if (dB)
    for (var Yte = [].concat(dB.baseConcepts, dB.relatedConcepts), mB = 0; mB < Yte.length; mB++) {
      var Xte = Yte[mB];
      Xte.module === "HTML" && function() {
        var e = Xte.concept;
        if (e) {
          var t = gh.find(function(s) {
            return (0, oTe.dequal)(s, e);
          }), r;
          t ? r = t[1] : r = [];
          for (var i = !0, n = 0; n < r.length; n++)
            if (r[n] === hB) {
              i = !1;
              break;
            }
          i && r.push(hB), gh.push([e, r]);
        }
      }();
    }
}
var pj = {
  entries: function() {
    return gh;
  },
  forEach: function(t) {
    var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, i = wer(gh), n;
    try {
      for (i.s(); !(n = i.n()).done; ) {
        var s = pB(n.value, 2), a = s[0], o = s[1];
        t.call(r, o, a, gh);
      }
    } catch (l) {
      i.e(l);
    } finally {
      i.f();
    }
  },
  get: function(t) {
    var r = gh.find(function(i) {
      return t.name === i[0].name && (0, oTe.dequal)(t.attributes, i[0].attributes);
    });
    return r && r[1];
  },
  has: function(t) {
    return !!pj.get(t);
  },
  keys: function() {
    return gh.map(function(t) {
      var r = pB(t, 1), i = r[0];
      return i;
    });
  },
  values: function() {
    return gh.map(function(t) {
      var r = pB(t, 2), i = r[1];
      return i;
    });
  }
}, Aer = (0, Ser.default)(pj, pj.entries());
MO.default = Aer;
var RO = {};
Object.defineProperty(RO, "__esModule", {
  value: !0
});
RO.default = void 0;
var Cer = fTe(Em), pTe = fTe(Hg);
function fTe(e) {
  return e && e.__esModule ? e : { default: e };
}
function yB(e, t) {
  return ker(e) || Ier(e, t) || hTe(e, t) || _er();
}
function _er() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function Ier(e, t) {
  var r = e == null ? null : typeof Symbol != "undefined" && e[Symbol.iterator] || e["@@iterator"];
  if (r != null) {
    var i = [], n = !0, s = !1, a, o;
    try {
      for (r = r.call(e); !(n = (a = r.next()).done) && (i.push(a.value), !(t && i.length === t)); n = !0)
        ;
    } catch (l) {
      s = !0, o = l;
    } finally {
      try {
        !n && r.return != null && r.return();
      } finally {
        if (s)
          throw o;
      }
    }
    return i;
  }
}
function ker(e) {
  if (Array.isArray(e))
    return e;
}
function Oer(e, t) {
  var r = typeof Symbol != "undefined" && e[Symbol.iterator] || e["@@iterator"];
  if (!r) {
    if (Array.isArray(e) || (r = hTe(e)) || t && e && typeof e.length == "number") {
      r && (e = r);
      var i = 0, n = function() {
      };
      return { s: n, n: function() {
        return i >= e.length ? { done: !0 } : { done: !1, value: e[i++] };
      }, e: function(u) {
        throw u;
      }, f: n };
    }
    throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  }
  var s = !0, a = !1, o;
  return { s: function() {
    r = r.call(e);
  }, n: function() {
    var u = r.next();
    return s = u.done, u;
  }, e: function(u) {
    a = !0, o = u;
  }, f: function() {
    try {
      !s && r.return != null && r.return();
    } finally {
      if (a)
        throw o;
    }
  } };
}
function hTe(e, t) {
  if (e) {
    if (typeof e == "string")
      return Jte(e, t);
    var r = Object.prototype.toString.call(e).slice(8, -1);
    if (r === "Object" && e.constructor && (r = e.constructor.name), r === "Map" || r === "Set")
      return Array.from(e);
    if (r === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))
      return Jte(e, t);
  }
}
function Jte(e, t) {
  (t == null || t > e.length) && (t = e.length);
  for (var r = 0, i = new Array(t); r < t; r++)
    i[r] = e[r];
  return i;
}
var Sd = [], Qte = pTe.default.keys();
for (var gB = 0; gB < Qte.length; gB++) {
  var Zte = Qte[gB], bB = pTe.default.get(Zte), vB = [];
  if (bB) {
    for (var ere = [].concat(bB.baseConcepts, bB.relatedConcepts), TB = 0; TB < ere.length; TB++) {
      var tre = ere[TB];
      if (tre.module === "HTML") {
        var rre = tre.concept;
        rre != null && vB.push(rre);
      }
    }
    vB.length > 0 && Sd.push([Zte, vB]);
  }
}
var fj = {
  entries: function() {
    return Sd;
  },
  forEach: function(t) {
    var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, i = Oer(Sd), n;
    try {
      for (i.s(); !(n = i.n()).done; ) {
        var s = yB(n.value, 2), a = s[0], o = s[1];
        t.call(r, o, a, Sd);
      }
    } catch (l) {
      i.e(l);
    } finally {
      i.f();
    }
  },
  get: function(t) {
    var r = Sd.find(function(i) {
      return i[0] === t;
    });
    return r && r[1];
  },
  has: function(t) {
    return !!fj.get(t);
  },
  keys: function() {
    return Sd.map(function(t) {
      var r = yB(t, 1), i = r[0];
      return i;
    });
  },
  values: function() {
    return Sd.map(function(t) {
      var r = yB(t, 2), i = r[1];
      return i;
    });
  }
}, Ner = (0, Cer.default)(fj, fj.entries());
RO.default = Ner;
Object.defineProperty(Ic, "__esModule", {
  value: !0
});
var CS = Ic.roles = Ic.roleElements = wU = Ic.elementRoles = Ic.dom = Ic.aria = void 0, Der = _S(ZI), Ler = _S(t2), Mer = _S(Hg), Rer = _S(MO), Ber = _S(RO);
function _S(e) {
  return e && e.__esModule ? e : { default: e };
}
var Fer = Der.default;
Ic.aria = Fer;
var jer = Ler.default;
Ic.dom = jer;
var $er = Mer.default;
CS = Ic.roles = $er;
var Uer = Rer.default, wU = Ic.elementRoles = Uer, qer = Ber.default;
Ic.roleElements = qer;
var yf = {}, BO = {}, Kg = {}, FO = {};
Object.defineProperty(FO, "__esModule", {
  value: !0
});
FO.default = void 0;
function Ver() {
  var e = this, t = 0, r = {
    "@@iterator": function() {
      return r;
    },
    next: function() {
      if (t < e.length) {
        var n = e[t];
        return t = t + 1, {
          done: !1,
          value: n
        };
      } else
        return {
          done: !0
        };
    }
  };
  return r;
}
var Wer = Ver;
FO.default = Wer;
Object.defineProperty(Kg, "__esModule", {
  value: !0
});
Kg.default = zer;
var Her = Ker(FO);
function Ker(e) {
  return e && e.__esModule ? e : { default: e };
}
function hj(e) {
  return hj = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(t) {
    return typeof t;
  } : function(t) {
    return t && typeof Symbol == "function" && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
  }, hj(e);
}
function zer(e, t) {
  return typeof Symbol == "function" && hj(Symbol.iterator) === "symbol" && Object.defineProperty(e, Symbol.iterator, {
    value: Her.default.bind(t)
  }), e;
}
var Pm = {}, jO = {};
Object.defineProperty(jO, "__esModule", {
  value: !0
});
jO.default = void 0;
var Ger = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "abbr"
    }
  }],
  type: "structure"
}, Yer = Ger;
jO.default = Yer;
var $O = {};
Object.defineProperty($O, "__esModule", {
  value: !0
});
$O.default = void 0;
var Xer = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "alertdialog"
    }
  }],
  type: "window"
}, Jer = Xer;
$O.default = Jer;
var UO = {};
Object.defineProperty(UO, "__esModule", {
  value: !0
});
UO.default = void 0;
var Qer = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "alert"
    }
  }],
  type: "structure"
}, Zer = Qer;
UO.default = Zer;
var qO = {};
Object.defineProperty(qO, "__esModule", {
  value: !0
});
qO.default = void 0;
var etr = {
  relatedConcepts: [],
  type: "structure"
}, ttr = etr;
qO.default = ttr;
var VO = {};
Object.defineProperty(VO, "__esModule", {
  value: !0
});
VO.default = void 0;
var rtr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "application"
    }
  }],
  type: "window"
}, itr = rtr;
VO.default = itr;
var WO = {};
Object.defineProperty(WO, "__esModule", {
  value: !0
});
WO.default = void 0;
var ntr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "article"
    }
  }, {
    module: "HTML",
    concept: {
      name: "article"
    }
  }],
  type: "structure"
}, str = ntr;
WO.default = str;
var HO = {};
Object.defineProperty(HO, "__esModule", {
  value: !0
});
HO.default = void 0;
var atr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "audio"
    }
  }],
  type: "widget"
}, otr = atr;
HO.default = otr;
var KO = {};
Object.defineProperty(KO, "__esModule", {
  value: !0
});
KO.default = void 0;
var ltr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "banner"
    }
  }],
  type: "structure"
}, utr = ltr;
KO.default = utr;
var zO = {};
Object.defineProperty(zO, "__esModule", {
  value: !0
});
zO.default = void 0;
var ctr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "blockquote"
    }
  }],
  type: "structure"
}, ptr = ctr;
zO.default = ptr;
var GO = {};
Object.defineProperty(GO, "__esModule", {
  value: !0
});
GO.default = void 0;
var ftr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      attributes: [{
        name: "aria-busy",
        value: "true"
      }]
    }
  }],
  type: "widget"
}, htr = ftr;
GO.default = htr;
var YO = {};
Object.defineProperty(YO, "__esModule", {
  value: !0
});
YO.default = void 0;
var dtr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "button"
    }
  }, {
    module: "HTML",
    concept: {
      name: "button"
    }
  }],
  type: "widget"
}, mtr = dtr;
YO.default = mtr;
var XO = {};
Object.defineProperty(XO, "__esModule", {
  value: !0
});
XO.default = void 0;
var ytr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "canvas"
    }
  }],
  type: "widget"
}, gtr = ytr;
XO.default = gtr;
var JO = {};
Object.defineProperty(JO, "__esModule", {
  value: !0
});
JO.default = void 0;
var btr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "caption"
    }
  }],
  type: "structure"
}, vtr = btr;
JO.default = vtr;
var QO = {};
Object.defineProperty(QO, "__esModule", {
  value: !0
});
QO.default = void 0;
var Ttr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "cell"
    }
  }, {
    module: "ARIA",
    concept: {
      name: "gridcell"
    }
  }, {
    module: "HTML",
    concept: {
      name: "td"
    }
  }],
  type: "widget"
}, Str = Ttr;
QO.default = Str;
var ZO = {};
Object.defineProperty(ZO, "__esModule", {
  value: !0
});
ZO.default = void 0;
var xtr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "checkbox"
    }
  }, {
    module: "HTML",
    concept: {
      name: "input",
      attributes: [{
        name: "type",
        value: "checkbox"
      }]
    }
  }],
  type: "widget"
}, Etr = xtr;
ZO.default = Etr;
var eN = {};
Object.defineProperty(eN, "__esModule", {
  value: !0
});
eN.default = void 0;
var Ptr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "input",
      attributes: [{
        name: "type",
        value: "color"
      }]
    }
  }],
  type: "widget"
}, wtr = Ptr;
eN.default = wtr;
var tN = {};
Object.defineProperty(tN, "__esModule", {
  value: !0
});
tN.default = void 0;
var Atr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "columnheader"
    }
  }, {
    module: "HTML",
    concept: {
      name: "th"
    }
  }],
  type: "widget"
}, Ctr = Atr;
tN.default = Ctr;
var rN = {};
Object.defineProperty(rN, "__esModule", {
  value: !0
});
rN.default = void 0;
var _tr = {
  relatedConcepts: [],
  type: "structure"
}, Itr = _tr;
rN.default = Itr;
var iN = {};
Object.defineProperty(iN, "__esModule", {
  value: !0
});
iN.default = void 0;
var ktr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "combobox"
    }
  }, {
    module: "HTML",
    concept: {
      name: "select"
    }
  }],
  type: "widget"
}, Otr = ktr;
iN.default = Otr;
var nN = {};
Object.defineProperty(nN, "__esModule", {
  value: !0
});
nN.default = void 0;
var Ntr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "complementary"
    }
  }],
  type: "structure"
}, Dtr = Ntr;
nN.default = Dtr;
var sN = {};
Object.defineProperty(sN, "__esModule", {
  value: !0
});
sN.default = void 0;
var Ltr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "structureinfo"
    }
  }],
  type: "structure"
}, Mtr = Ltr;
sN.default = Mtr;
var aN = {};
Object.defineProperty(aN, "__esModule", {
  value: !0
});
aN.default = void 0;
var Rtr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "input",
      attributes: [{
        name: "type",
        value: "date"
      }]
    }
  }],
  type: "widget"
}, Btr = Rtr;
aN.default = Btr;
var oN = {};
Object.defineProperty(oN, "__esModule", {
  value: !0
});
oN.default = void 0;
var Ftr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "input",
      attributes: [{
        name: "type",
        value: "datetime"
      }]
    }
  }],
  type: "widget"
}, jtr = Ftr;
oN.default = jtr;
var lN = {};
Object.defineProperty(lN, "__esModule", {
  value: !0
});
lN.default = void 0;
var $tr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "dfn"
    }
  }],
  type: "structure"
}, Utr = $tr;
lN.default = Utr;
var uN = {};
Object.defineProperty(uN, "__esModule", {
  value: !0
});
uN.default = void 0;
var qtr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "dd"
    }
  }],
  type: "structure"
}, Vtr = qtr;
uN.default = Vtr;
var cN = {};
Object.defineProperty(cN, "__esModule", {
  value: !0
});
cN.default = void 0;
var Wtr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "dl"
    }
  }],
  type: "structure"
}, Htr = Wtr;
cN.default = Htr;
var pN = {};
Object.defineProperty(pN, "__esModule", {
  value: !0
});
pN.default = void 0;
var Ktr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "dt"
    }
  }],
  type: "structure"
}, ztr = Ktr;
pN.default = ztr;
var fN = {};
Object.defineProperty(fN, "__esModule", {
  value: !0
});
fN.default = void 0;
var Gtr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "details"
    }
  }],
  type: "structure"
}, Ytr = Gtr;
fN.default = Ytr;
var hN = {};
Object.defineProperty(hN, "__esModule", {
  value: !0
});
hN.default = void 0;
var Xtr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "dialog"
    }
  }, {
    module: "HTML",
    concept: {
      name: "dialog"
    }
  }],
  type: "window"
}, Jtr = Xtr;
hN.default = Jtr;
var dN = {};
Object.defineProperty(dN, "__esModule", {
  value: !0
});
dN.default = void 0;
var Qtr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "directory"
    }
  }, {
    module: "HTML",
    concept: {
      name: "dir"
    }
  }],
  type: "structure"
}, Ztr = Qtr;
dN.default = Ztr;
var mN = {};
Object.defineProperty(mN, "__esModule", {
  value: !0
});
mN.default = void 0;
var err = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      constraints: ["scoped to a details element"],
      name: "summary"
    }
  }],
  type: "widget"
}, trr = err;
mN.default = trr;
var yN = {};
Object.defineProperty(yN, "__esModule", {
  value: !0
});
yN.default = void 0;
var rrr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "div"
    }
  }],
  type: "generic"
}, irr = rrr;
yN.default = irr;
var gN = {};
Object.defineProperty(gN, "__esModule", {
  value: !0
});
gN.default = void 0;
var nrr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "document"
    }
  }],
  type: "structure"
}, srr = nrr;
gN.default = srr;
var bN = {};
Object.defineProperty(bN, "__esModule", {
  value: !0
});
bN.default = void 0;
var arr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "embed"
    }
  }],
  type: "widget"
}, orr = arr;
bN.default = orr;
var vN = {};
Object.defineProperty(vN, "__esModule", {
  value: !0
});
vN.default = void 0;
var lrr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "feed"
    }
  }],
  type: "structure"
}, urr = lrr;
vN.default = urr;
var TN = {};
Object.defineProperty(TN, "__esModule", {
  value: !0
});
TN.default = void 0;
var crr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "figcaption"
    }
  }],
  type: "structure"
}, prr = crr;
TN.default = prr;
var SN = {};
Object.defineProperty(SN, "__esModule", {
  value: !0
});
SN.default = void 0;
var frr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "figure"
    }
  }, {
    module: "HTML",
    concept: {
      name: "figure"
    }
  }],
  type: "structure"
}, hrr = frr;
SN.default = hrr;
var xN = {};
Object.defineProperty(xN, "__esModule", {
  value: !0
});
xN.default = void 0;
var drr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "footer"
    }
  }],
  type: "structure"
}, mrr = drr;
xN.default = mrr;
var EN = {};
Object.defineProperty(EN, "__esModule", {
  value: !0
});
EN.default = void 0;
var yrr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "form"
    }
  }, {
    module: "HTML",
    concept: {
      name: "form"
    }
  }],
  type: "structure"
}, grr = yrr;
EN.default = grr;
var PN = {};
Object.defineProperty(PN, "__esModule", {
  value: !0
});
PN.default = void 0;
var brr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "grid"
    }
  }],
  type: "widget"
}, vrr = brr;
PN.default = vrr;
var wN = {};
Object.defineProperty(wN, "__esModule", {
  value: !0
});
wN.default = void 0;
var Trr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "group"
    }
  }],
  type: "structure"
}, Srr = Trr;
wN.default = Srr;
var AN = {};
Object.defineProperty(AN, "__esModule", {
  value: !0
});
AN.default = void 0;
var xrr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "heading"
    }
  }, {
    module: "HTML",
    concept: {
      name: "h1"
    }
  }, {
    module: "HTML",
    concept: {
      name: "h2"
    }
  }, {
    module: "HTML",
    concept: {
      name: "h3"
    }
  }, {
    module: "HTML",
    concept: {
      name: "h4"
    }
  }, {
    module: "HTML",
    concept: {
      name: "h5"
    }
  }, {
    module: "HTML",
    concept: {
      name: "h6"
    }
  }],
  type: "structure"
}, Err = xrr;
AN.default = Err;
var CN = {};
Object.defineProperty(CN, "__esModule", {
  value: !0
});
CN.default = void 0;
var Prr = {
  relatedConcepts: [],
  type: "window"
}, wrr = Prr;
CN.default = wrr;
var _N = {};
Object.defineProperty(_N, "__esModule", {
  value: !0
});
_N.default = void 0;
var Arr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "iframe"
    }
  }],
  type: "window"
}, Crr = Arr;
_N.default = Crr;
var IN = {};
Object.defineProperty(IN, "__esModule", {
  value: !0
});
IN.default = void 0;
var _rr = {
  relatedConcepts: [],
  type: "structure"
}, Irr = _rr;
IN.default = Irr;
var kN = {};
Object.defineProperty(kN, "__esModule", {
  value: !0
});
kN.default = void 0;
var krr = {
  relatedConcepts: [],
  type: "widget"
}, Orr = krr;
kN.default = Orr;
var ON = {};
Object.defineProperty(ON, "__esModule", {
  value: !0
});
ON.default = void 0;
var Nrr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "img",
      attributes: [{
        name: "usemap"
      }]
    }
  }],
  type: "structure"
}, Drr = Nrr;
ON.default = Drr;
var NN = {};
Object.defineProperty(NN, "__esModule", {
  value: !0
});
NN.default = void 0;
var Lrr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "img"
    }
  }, {
    module: "HTML",
    concept: {
      name: "img"
    }
  }],
  type: "structure"
}, Mrr = Lrr;
NN.default = Mrr;
var DN = {};
Object.defineProperty(DN, "__esModule", {
  value: !0
});
DN.default = void 0;
var Rrr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "input"
    }
  }],
  type: "widget"
}, Brr = Rrr;
DN.default = Brr;
var LN = {};
Object.defineProperty(LN, "__esModule", {
  value: !0
});
LN.default = void 0;
var Frr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "input",
      attributes: [{
        name: "type",
        value: "time"
      }]
    }
  }],
  type: "widget"
}, jrr = Frr;
LN.default = jrr;
var MN = {};
Object.defineProperty(MN, "__esModule", {
  value: !0
});
MN.default = void 0;
var $rr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "label"
    }
  }],
  type: "structure"
}, Urr = $rr;
MN.default = Urr;
var RN = {};
Object.defineProperty(RN, "__esModule", {
  value: !0
});
RN.default = void 0;
var qrr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "legend"
    }
  }],
  type: "structure"
}, Vrr = qrr;
RN.default = Vrr;
var BN = {};
Object.defineProperty(BN, "__esModule", {
  value: !0
});
BN.default = void 0;
var Wrr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "br"
    }
  }],
  type: "structure"
}, Hrr = Wrr;
BN.default = Hrr;
var FN = {};
Object.defineProperty(FN, "__esModule", {
  value: !0
});
FN.default = void 0;
var Krr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "link"
    }
  }, {
    module: "HTML",
    concept: {
      name: "a",
      attributes: [{
        name: "href"
      }]
    }
  }],
  type: "widget"
}, zrr = Krr;
FN.default = zrr;
var jN = {};
Object.defineProperty(jN, "__esModule", {
  value: !0
});
jN.default = void 0;
var Grr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "option"
    }
  }, {
    module: "HTML",
    concept: {
      name: "option"
    }
  }],
  type: "widget"
}, Yrr = Grr;
jN.default = Yrr;
var $N = {};
Object.defineProperty($N, "__esModule", {
  value: !0
});
$N.default = void 0;
var Xrr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "listbox"
    }
  }, {
    module: "HTML",
    concept: {
      name: "datalist"
    }
  }, {
    module: "HTML",
    concept: {
      name: "select"
    }
  }],
  type: "widget"
}, Jrr = Xrr;
$N.default = Jrr;
var UN = {};
Object.defineProperty(UN, "__esModule", {
  value: !0
});
UN.default = void 0;
var Qrr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "listitem"
    }
  }, {
    module: "HTML",
    concept: {
      name: "li"
    }
  }],
  type: "structure"
}, Zrr = Qrr;
UN.default = Zrr;
var qN = {};
Object.defineProperty(qN, "__esModule", {
  value: !0
});
qN.default = void 0;
var eir = {
  relatedConcepts: [],
  type: "structure"
}, tir = eir;
qN.default = tir;
var VN = {};
Object.defineProperty(VN, "__esModule", {
  value: !0
});
VN.default = void 0;
var rir = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "list"
    }
  }, {
    module: "HTML",
    concept: {
      name: "ul"
    }
  }, {
    module: "HTML",
    concept: {
      name: "ol"
    }
  }],
  type: "structure"
}, iir = rir;
VN.default = iir;
var WN = {};
Object.defineProperty(WN, "__esModule", {
  value: !0
});
WN.default = void 0;
var nir = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "log"
    }
  }],
  type: "structure"
}, sir = nir;
WN.default = sir;
var HN = {};
Object.defineProperty(HN, "__esModule", {
  value: !0
});
HN.default = void 0;
var air = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "main"
    }
  }, {
    module: "HTML",
    concept: {
      name: "main"
    }
  }],
  type: "structure"
}, oir = air;
HN.default = oir;
var KN = {};
Object.defineProperty(KN, "__esModule", {
  value: !0
});
KN.default = void 0;
var lir = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "mark"
    }
  }],
  type: "structure"
}, uir = lir;
KN.default = uir;
var zN = {};
Object.defineProperty(zN, "__esModule", {
  value: !0
});
zN.default = void 0;
var cir = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "marquee"
    }
  }, {
    module: "HTML",
    concept: {
      name: "marquee"
    }
  }],
  type: "structure"
}, pir = cir;
zN.default = pir;
var GN = {};
Object.defineProperty(GN, "__esModule", {
  value: !0
});
GN.default = void 0;
var fir = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "math"
    }
  }],
  type: "structure"
}, hir = fir;
GN.default = hir;
var YN = {};
Object.defineProperty(YN, "__esModule", {
  value: !0
});
YN.default = void 0;
var dir = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "menubar"
    }
  }],
  type: "structure"
}, mir = dir;
YN.default = mir;
var XN = {};
Object.defineProperty(XN, "__esModule", {
  value: !0
});
XN.default = void 0;
var yir = {
  relatedConcepts: [],
  type: "widget"
}, gir = yir;
XN.default = gir;
var JN = {};
Object.defineProperty(JN, "__esModule", {
  value: !0
});
JN.default = void 0;
var bir = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "menuitem"
    }
  }, {
    module: "HTML",
    concept: {
      name: "menuitem"
    }
  }],
  type: "widget"
}, vir = bir;
JN.default = vir;
var QN = {};
Object.defineProperty(QN, "__esModule", {
  value: !0
});
QN.default = void 0;
var Tir = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "menuitemcheckbox"
    }
  }],
  type: "widget"
}, Sir = Tir;
QN.default = Sir;
var ZN = {};
Object.defineProperty(ZN, "__esModule", {
  value: !0
});
ZN.default = void 0;
var xir = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "menuitemradio"
    }
  }],
  type: "widget"
}, Eir = xir;
ZN.default = Eir;
var eD = {};
Object.defineProperty(eD, "__esModule", {
  value: !0
});
eD.default = void 0;
var Pir = {
  relatedConcepts: [],
  type: "widget"
}, wir = Pir;
eD.default = wir;
var tD = {};
Object.defineProperty(tD, "__esModule", {
  value: !0
});
tD.default = void 0;
var Air = {
  relatedConcepts: [],
  type: "widget"
}, Cir = Air;
tD.default = Cir;
var rD = {};
Object.defineProperty(rD, "__esModule", {
  value: !0
});
rD.default = void 0;
var _ir = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "menu"
    }
  }, {
    module: "HTML",
    concept: {
      name: "menu"
    }
  }],
  type: "structure"
}, Iir = _ir;
rD.default = Iir;
var iD = {};
Object.defineProperty(iD, "__esModule", {
  value: !0
});
iD.default = void 0;
var kir = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "meter"
    }
  }],
  type: "structure"
}, Oir = kir;
iD.default = Oir;
var nD = {};
Object.defineProperty(nD, "__esModule", {
  value: !0
});
nD.default = void 0;
var Nir = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "navigation"
    }
  }, {
    module: "HTML",
    concept: {
      name: "nav"
    }
  }],
  type: "structure"
}, Dir = Nir;
nD.default = Dir;
var sD = {};
Object.defineProperty(sD, "__esModule", {
  value: !0
});
sD.default = void 0;
var Lir = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "none"
    }
  }],
  type: "structure"
}, Mir = Lir;
sD.default = Mir;
var aD = {};
Object.defineProperty(aD, "__esModule", {
  value: !0
});
aD.default = void 0;
var Rir = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "note"
    }
  }],
  type: "structure"
}, Bir = Rir;
aD.default = Bir;
var oD = {};
Object.defineProperty(oD, "__esModule", {
  value: !0
});
oD.default = void 0;
var Fir = {
  relatedConcepts: [],
  type: "structure"
}, jir = Fir;
oD.default = jir;
var lD = {};
Object.defineProperty(lD, "__esModule", {
  value: !0
});
lD.default = void 0;
var $ir = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "p"
    }
  }],
  type: "structure"
}, Uir = $ir;
lD.default = Uir;
var uD = {};
Object.defineProperty(uD, "__esModule", {
  value: !0
});
uD.default = void 0;
var qir = {
  relatedConcepts: [],
  type: "widget"
}, Vir = qir;
uD.default = Vir;
var cD = {};
Object.defineProperty(cD, "__esModule", {
  value: !0
});
cD.default = void 0;
var Wir = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "pre"
    }
  }],
  type: "structure"
}, Hir = Wir;
cD.default = Hir;
var pD = {};
Object.defineProperty(pD, "__esModule", {
  value: !0
});
pD.default = void 0;
var Kir = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "presentation"
    }
  }],
  type: "structure"
}, zir = Kir;
pD.default = zir;
var fD = {};
Object.defineProperty(fD, "__esModule", {
  value: !0
});
fD.default = void 0;
var Gir = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "progressbar"
    }
  }, {
    module: "HTML",
    concept: {
      name: "progress"
    }
  }],
  type: "structure"
}, Yir = Gir;
fD.default = Yir;
var hD = {};
Object.defineProperty(hD, "__esModule", {
  value: !0
});
hD.default = void 0;
var Xir = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "radio"
    }
  }, {
    module: "HTML",
    concept: {
      name: "input",
      attributes: [{
        name: "type",
        value: "radio"
      }]
    }
  }],
  type: "widget"
}, Jir = Xir;
hD.default = Jir;
var dD = {};
Object.defineProperty(dD, "__esModule", {
  value: !0
});
dD.default = void 0;
var Qir = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "radiogroup"
    }
  }],
  type: "structure"
}, Zir = Qir;
dD.default = Zir;
var mD = {};
Object.defineProperty(mD, "__esModule", {
  value: !0
});
mD.default = void 0;
var enr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "region"
    }
  }],
  type: "structure"
}, tnr = enr;
mD.default = tnr;
var yD = {};
Object.defineProperty(yD, "__esModule", {
  value: !0
});
yD.default = void 0;
var rnr = {
  relatedConcepts: [],
  type: "structure"
}, inr = rnr;
yD.default = inr;
var gD = {};
Object.defineProperty(gD, "__esModule", {
  value: !0
});
gD.default = void 0;
var nnr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "rowheader"
    }
  }, {
    module: "HTML",
    concept: {
      name: "th",
      attributes: [{
        name: "scope",
        value: "row"
      }]
    }
  }],
  type: "widget"
}, snr = nnr;
gD.default = snr;
var bD = {};
Object.defineProperty(bD, "__esModule", {
  value: !0
});
bD.default = void 0;
var anr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "row"
    }
  }, {
    module: "HTML",
    concept: {
      name: "tr"
    }
  }],
  type: "structure"
}, onr = anr;
bD.default = onr;
var vD = {};
Object.defineProperty(vD, "__esModule", {
  value: !0
});
vD.default = void 0;
var lnr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "ruby"
    }
  }],
  type: "structure"
}, unr = lnr;
vD.default = unr;
var TD = {};
Object.defineProperty(TD, "__esModule", {
  value: !0
});
TD.default = void 0;
var cnr = {
  relatedConcepts: [],
  type: "structure"
}, pnr = cnr;
TD.default = pnr;
var SD = {};
Object.defineProperty(SD, "__esModule", {
  value: !0
});
SD.default = void 0;
var fnr = {
  relatedConcepts: [],
  type: "structure"
}, hnr = fnr;
SD.default = hnr;
var xD = {};
Object.defineProperty(xD, "__esModule", {
  value: !0
});
xD.default = void 0;
var dnr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "scrollbar"
    }
  }],
  type: "widget"
}, mnr = dnr;
xD.default = mnr;
var ED = {};
Object.defineProperty(ED, "__esModule", {
  value: !0
});
ED.default = void 0;
var ynr = {
  relatedConcepts: [],
  type: "structure"
}, gnr = ynr;
ED.default = gnr;
var PD = {};
Object.defineProperty(PD, "__esModule", {
  value: !0
});
PD.default = void 0;
var bnr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "search"
    }
  }],
  type: "structure"
}, vnr = bnr;
PD.default = vnr;
var wD = {};
Object.defineProperty(wD, "__esModule", {
  value: !0
});
wD.default = void 0;
var Tnr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "searchbox"
    }
  }, {
    module: "HTML",
    concept: {
      name: "input",
      attributes: [{
        name: "type",
        value: "search"
      }]
    }
  }],
  type: "widget"
}, Snr = Tnr;
wD.default = Snr;
var AD = {};
Object.defineProperty(AD, "__esModule", {
  value: !0
});
AD.default = void 0;
var xnr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "slider"
    }
  }, {
    module: "HTML",
    concept: {
      name: "input",
      attributes: [{
        name: "type",
        value: "range"
      }]
    }
  }],
  type: "widget"
}, Enr = xnr;
AD.default = Enr;
var CD = {};
Object.defineProperty(CD, "__esModule", {
  value: !0
});
CD.default = void 0;
var Pnr = {
  relatedConcepts: [],
  type: "structure"
}, wnr = Pnr;
CD.default = wnr;
var _D = {};
Object.defineProperty(_D, "__esModule", {
  value: !0
});
_D.default = void 0;
var Anr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "spinbutton"
    }
  }, {
    module: "HTML",
    concept: {
      name: "input",
      attributes: [{
        name: "type",
        value: "number"
      }]
    }
  }],
  type: "widget"
}, Cnr = Anr;
_D.default = Cnr;
var ID = {};
Object.defineProperty(ID, "__esModule", {
  value: !0
});
ID.default = void 0;
var _nr = {
  relatedConcepts: [],
  type: "structure"
}, Inr = _nr;
ID.default = Inr;
var kD = {};
Object.defineProperty(kD, "__esModule", {
  value: !0
});
kD.default = void 0;
var knr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "separator"
    }
  }],
  type: "widget"
}, Onr = knr;
kD.default = Onr;
var OD = {};
Object.defineProperty(OD, "__esModule", {
  value: !0
});
OD.default = void 0;
var Nnr = {
  relatedConcepts: [],
  type: "structure"
}, Dnr = Nnr;
OD.default = Dnr;
var ND = {};
Object.defineProperty(ND, "__esModule", {
  value: !0
});
ND.default = void 0;
var Lnr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "status"
    }
  }],
  type: "structure"
}, Mnr = Lnr;
ND.default = Mnr;
var DD = {};
Object.defineProperty(DD, "__esModule", {
  value: !0
});
DD.default = void 0;
var Rnr = {
  relatedConcepts: [],
  type: "structure"
}, Bnr = Rnr;
DD.default = Bnr;
var LD = {};
Object.defineProperty(LD, "__esModule", {
  value: !0
});
LD.default = void 0;
var Fnr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "switch"
    }
  }, {
    module: "HTML",
    concept: {
      name: "input",
      attributes: [{
        name: "type",
        value: "checkbox"
      }]
    }
  }],
  type: "widget"
}, jnr = Fnr;
LD.default = jnr;
var MD = {};
Object.defineProperty(MD, "__esModule", {
  value: !0
});
MD.default = void 0;
var $nr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "tablist"
    }
  }],
  type: "structure"
}, Unr = $nr;
MD.default = Unr;
var RD = {};
Object.defineProperty(RD, "__esModule", {
  value: !0
});
RD.default = void 0;
var qnr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "tab"
    }
  }],
  type: "widget"
}, Vnr = qnr;
RD.default = Vnr;
var BD = {};
Object.defineProperty(BD, "__esModule", {
  value: !0
});
BD.default = void 0;
var Wnr = {
  relatedConcepts: [],
  type: "structure"
}, Hnr = Wnr;
BD.default = Hnr;
var FD = {};
Object.defineProperty(FD, "__esModule", {
  value: !0
});
FD.default = void 0;
var Knr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "table"
    }
  }, {
    module: "HTML",
    concept: {
      name: "table"
    }
  }],
  type: "structure"
}, znr = Knr;
FD.default = znr;
var jD = {};
Object.defineProperty(jD, "__esModule", {
  value: !0
});
jD.default = void 0;
var Gnr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "tablist"
    }
  }],
  type: "structure"
}, Ynr = Gnr;
jD.default = Ynr;
var $D = {};
Object.defineProperty($D, "__esModule", {
  value: !0
});
$D.default = void 0;
var Xnr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "tabpanel"
    }
  }],
  type: "structure"
}, Jnr = Xnr;
$D.default = Jnr;
var UD = {};
Object.defineProperty(UD, "__esModule", {
  value: !0
});
UD.default = void 0;
var Qnr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "term"
    }
  }],
  type: "structure"
}, Znr = Qnr;
UD.default = Znr;
var qD = {};
Object.defineProperty(qD, "__esModule", {
  value: !0
});
qD.default = void 0;
var esr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      attributes: [{
        name: "aria-multiline",
        value: "true"
      }],
      name: "textbox"
    }
  }, {
    module: "HTML",
    concept: {
      name: "textarea"
    }
  }],
  type: "widget"
}, tsr = esr;
qD.default = tsr;
var VD = {};
Object.defineProperty(VD, "__esModule", {
  value: !0
});
VD.default = void 0;
var rsr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "textbox"
    }
  }, {
    module: "HTML",
    concept: {
      name: "input"
    }
  }, {
    module: "HTML",
    concept: {
      name: "input",
      attributes: [{
        name: "type",
        value: "text"
      }]
    }
  }],
  type: "widget"
}, isr = rsr;
VD.default = isr;
var WD = {};
Object.defineProperty(WD, "__esModule", {
  value: !0
});
WD.default = void 0;
var nsr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "time"
    }
  }],
  type: "structure"
}, ssr = nsr;
WD.default = ssr;
var HD = {};
Object.defineProperty(HD, "__esModule", {
  value: !0
});
HD.default = void 0;
var asr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "timer"
    }
  }],
  type: "structure"
}, osr = asr;
HD.default = osr;
var KD = {};
Object.defineProperty(KD, "__esModule", {
  value: !0
});
KD.default = void 0;
var lsr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      attributes: [{
        name: "aria-pressed"
      }]
    }
  }],
  type: "widget"
}, usr = lsr;
KD.default = usr;
var zD = {};
Object.defineProperty(zD, "__esModule", {
  value: !0
});
zD.default = void 0;
var csr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "toolbar"
    }
  }],
  type: "structure"
}, psr = csr;
zD.default = psr;
var GD = {};
Object.defineProperty(GD, "__esModule", {
  value: !0
});
GD.default = void 0;
var fsr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "tree"
    }
  }],
  type: "widget"
}, hsr = fsr;
GD.default = hsr;
var YD = {};
Object.defineProperty(YD, "__esModule", {
  value: !0
});
YD.default = void 0;
var dsr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "treegrid"
    }
  }],
  type: "widget"
}, msr = dsr;
YD.default = msr;
var XD = {};
Object.defineProperty(XD, "__esModule", {
  value: !0
});
XD.default = void 0;
var ysr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "treeitem"
    }
  }],
  type: "widget"
}, gsr = ysr;
XD.default = gsr;
var JD = {};
Object.defineProperty(JD, "__esModule", {
  value: !0
});
JD.default = void 0;
var bsr = {
  relatedConcepts: [{
    module: "ARIA",
    concept: {
      name: "tooltip"
    }
  }],
  type: "structure"
}, vsr = bsr;
JD.default = vsr;
var QD = {};
Object.defineProperty(QD, "__esModule", {
  value: !0
});
QD.default = void 0;
var Tsr = {
  relatedConcepts: [{
    module: "HTML",
    concept: {
      name: "video"
    }
  }],
  type: "widget"
}, Ssr = Tsr;
QD.default = Ssr;
var ZD = {};
Object.defineProperty(ZD, "__esModule", {
  value: !0
});
ZD.default = void 0;
var xsr = {
  relatedConcepts: [],
  type: "structure"
}, Esr = xsr;
ZD.default = Esr;
var eL = {};
Object.defineProperty(eL, "__esModule", {
  value: !0
});
eL.default = void 0;
var Psr = {
  relatedConcepts: [],
  type: "window"
}, wsr = Psr;
eL.default = wsr;
Object.defineProperty(Pm, "__esModule", {
  value: !0
});
Pm.default = void 0;
var Asr = yt(Kg), Csr = yt(jO), _sr = yt($O), Isr = yt(UO), ksr = yt(qO), Osr = yt(VO), Nsr = yt(WO), Dsr = yt(HO), Lsr = yt(KO), Msr = yt(zO), Rsr = yt(GO), Bsr = yt(YO), Fsr = yt(XO), jsr = yt(JO), $sr = yt(QO), Usr = yt(ZO), qsr = yt(eN), Vsr = yt(tN), Wsr = yt(rN), Hsr = yt(iN), Ksr = yt(nN), zsr = yt(sN), Gsr = yt(aN), Ysr = yt(oN), Xsr = yt(lN), Jsr = yt(uN), Qsr = yt(cN), Zsr = yt(pN), ear = yt(fN), tar = yt(hN), rar = yt(dN), iar = yt(mN), nar = yt(yN), sar = yt(gN), aar = yt(bN), oar = yt(vN), lar = yt(TN), uar = yt(SN), car = yt(xN), par = yt(EN), far = yt(PN), har = yt(wN), dar = yt(AN), mar = yt(CN), yar = yt(_N), gar = yt(IN), bar = yt(kN), Tar = yt(ON), Sar = yt(NN), xar = yt(DN), Ear = yt(LN), Par = yt(MN), war = yt(RN), Aar = yt(BN), Car = yt(FN), _ar = yt(jN), Iar = yt($N), kar = yt(UN), Oar = yt(qN), Nar = yt(VN), Dar = yt(WN), Lar = yt(HN), Mar = yt(KN), Rar = yt(zN), Bar = yt(GN), Far = yt(YN), jar = yt(XN), $ar = yt(JN), Uar = yt(QN), qar = yt(ZN), Var = yt(eD), War = yt(tD), Har = yt(rD), Kar = yt(iD), zar = yt(nD), Gar = yt(sD), Yar = yt(aD), Xar = yt(oD), Jar = yt(lD), Qar = yt(uD), Zar = yt(cD), eor = yt(pD), tor = yt(fD), ror = yt(hD), ior = yt(dD), nor = yt(mD), sor = yt(yD), aor = yt(gD), oor = yt(bD), lor = yt(vD), uor = yt(TD), cor = yt(SD), por = yt(xD), hor = yt(ED), dor = yt(PD), mor = yt(wD), yor = yt(AD), gor = yt(CD), bor = yt(_D), vor = yt(ID), Tor = yt(kD), Sor = yt(OD), xor = yt(ND), Eor = yt(DD), Por = yt(LD), wor = yt(MD), Aor = yt(RD), Cor = yt(BD), _or = yt(FD), Ior = yt(jD), kor = yt($D), Oor = yt(UD), Nor = yt(qD), Dor = yt(VD), Lor = yt(WD), Mor = yt(HD), Ror = yt(KD), Bor = yt(zD), For = yt(GD), jor = yt(YD), $or = yt(XD), Uor = yt(JD), qor = yt(QD), Vor = yt(ZD), Wor = yt(eL);
function yt(e) {
  return e && e.__esModule ? e : { default: e };
}
function SB(e, t) {
  return zor(e) || Kor(e, t) || dTe(e, t) || Hor();
}
function Hor() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function Kor(e, t) {
  var r = e == null ? null : typeof Symbol != "undefined" && e[Symbol.iterator] || e["@@iterator"];
  if (r != null) {
    var i = [], n = !0, s = !1, a, o;
    try {
      for (r = r.call(e); !(n = (a = r.next()).done) && (i.push(a.value), !(t && i.length === t)); n = !0)
        ;
    } catch (l) {
      s = !0, o = l;
    } finally {
      try {
        !n && r.return != null && r.return();
      } finally {
        if (s)
          throw o;
      }
    }
    return i;
  }
}
function zor(e) {
  if (Array.isArray(e))
    return e;
}
function Gor(e, t) {
  var r = typeof Symbol != "undefined" && e[Symbol.iterator] || e["@@iterator"];
  if (!r) {
    if (Array.isArray(e) || (r = dTe(e)) || t && e && typeof e.length == "number") {
      r && (e = r);
      var i = 0, n = function() {
      };
      return { s: n, n: function() {
        return i >= e.length ? { done: !0 } : { done: !1, value: e[i++] };
      }, e: function(u) {
        throw u;
      }, f: n };
    }
    throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  }
  var s = !0, a = !1, o;
  return { s: function() {
    r = r.call(e);
  }, n: function() {
    var u = r.next();
    return s = u.done, u;
  }, e: function(u) {
    a = !0, o = u;
  }, f: function() {
    try {
      !s && r.return != null && r.return();
    } finally {
      if (a)
        throw o;
    }
  } };
}
function dTe(e, t) {
  if (e) {
    if (typeof e == "string")
      return ire(e, t);
    var r = Object.prototype.toString.call(e).slice(8, -1);
    if (r === "Object" && e.constructor && (r = e.constructor.name), r === "Map" || r === "Set")
      return Array.from(e);
    if (r === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))
      return ire(e, t);
  }
}
function ire(e, t) {
  (t == null || t > e.length) && (t = e.length);
  for (var r = 0, i = new Array(t); r < t; r++)
    i[r] = e[r];
  return i;
}
var Jm = [["AbbrRole", Csr.default], ["AlertDialogRole", _sr.default], ["AlertRole", Isr.default], ["AnnotationRole", ksr.default], ["ApplicationRole", Osr.default], ["ArticleRole", Nsr.default], ["AudioRole", Dsr.default], ["BannerRole", Lsr.default], ["BlockquoteRole", Msr.default], ["BusyIndicatorRole", Rsr.default], ["ButtonRole", Bsr.default], ["CanvasRole", Fsr.default], ["CaptionRole", jsr.default], ["CellRole", $sr.default], ["CheckBoxRole", Usr.default], ["ColorWellRole", qsr.default], ["ColumnHeaderRole", Vsr.default], ["ColumnRole", Wsr.default], ["ComboBoxRole", Hsr.default], ["ComplementaryRole", Ksr.default], ["ContentInfoRole", zsr.default], ["DateRole", Gsr.default], ["DateTimeRole", Ysr.default], ["DefinitionRole", Xsr.default], ["DescriptionListDetailRole", Jsr.default], ["DescriptionListRole", Qsr.default], ["DescriptionListTermRole", Zsr.default], ["DetailsRole", ear.default], ["DialogRole", tar.default], ["DirectoryRole", rar.default], ["DisclosureTriangleRole", iar.default], ["DivRole", nar.default], ["DocumentRole", sar.default], ["EmbeddedObjectRole", aar.default], ["FeedRole", oar.default], ["FigcaptionRole", lar.default], ["FigureRole", uar.default], ["FooterRole", car.default], ["FormRole", par.default], ["GridRole", far.default], ["GroupRole", har.default], ["HeadingRole", dar.default], ["IframePresentationalRole", mar.default], ["IframeRole", yar.default], ["IgnoredRole", gar.default], ["ImageMapLinkRole", bar.default], ["ImageMapRole", Tar.default], ["ImageRole", Sar.default], ["InlineTextBoxRole", xar.default], ["InputTimeRole", Ear.default], ["LabelRole", Par.default], ["LegendRole", war.default], ["LineBreakRole", Aar.default], ["LinkRole", Car.default], ["ListBoxOptionRole", _ar.default], ["ListBoxRole", Iar.default], ["ListItemRole", kar.default], ["ListMarkerRole", Oar.default], ["ListRole", Nar.default], ["LogRole", Dar.default], ["MainRole", Lar.default], ["MarkRole", Mar.default], ["MarqueeRole", Rar.default], ["MathRole", Bar.default], ["MenuBarRole", Far.default], ["MenuButtonRole", jar.default], ["MenuItemRole", $ar.default], ["MenuItemCheckBoxRole", Uar.default], ["MenuItemRadioRole", qar.default], ["MenuListOptionRole", Var.default], ["MenuListPopupRole", War.default], ["MenuRole", Har.default], ["MeterRole", Kar.default], ["NavigationRole", zar.default], ["NoneRole", Gar.default], ["NoteRole", Yar.default], ["OutlineRole", Xar.default], ["ParagraphRole", Jar.default], ["PopUpButtonRole", Qar.default], ["PreRole", Zar.default], ["PresentationalRole", eor.default], ["ProgressIndicatorRole", tor.default], ["RadioButtonRole", ror.default], ["RadioGroupRole", ior.default], ["RegionRole", nor.default], ["RootWebAreaRole", sor.default], ["RowHeaderRole", aor.default], ["RowRole", oor.default], ["RubyRole", lor.default], ["RulerRole", uor.default], ["ScrollAreaRole", cor.default], ["ScrollBarRole", por.default], ["SeamlessWebAreaRole", hor.default], ["SearchRole", dor.default], ["SearchBoxRole", mor.default], ["SliderRole", yor.default], ["SliderThumbRole", gor.default], ["SpinButtonRole", bor.default], ["SpinButtonPartRole", vor.default], ["SplitterRole", Tor.default], ["StaticTextRole", Sor.default], ["StatusRole", xor.default], ["SVGRootRole", Eor.default], ["SwitchRole", Por.default], ["TabGroupRole", wor.default], ["TabRole", Aor.default], ["TableHeaderContainerRole", Cor.default], ["TableRole", _or.default], ["TabListRole", Ior.default], ["TabPanelRole", kor.default], ["TermRole", Oor.default], ["TextAreaRole", Nor.default], ["TextFieldRole", Dor.default], ["TimeRole", Lor.default], ["TimerRole", Mor.default], ["ToggleButtonRole", Ror.default], ["ToolbarRole", Bor.default], ["TreeRole", For.default], ["TreeGridRole", jor.default], ["TreeItemRole", $or.default], ["UserInterfaceTooltipRole", Uor.default], ["VideoRole", qor.default], ["WebAreaRole", Vor.default], ["WindowRole", Wor.default]], dj = {
  entries: function() {
    return Jm;
  },
  forEach: function(t) {
    var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, i = Gor(Jm), n;
    try {
      for (i.s(); !(n = i.n()).done; ) {
        var s = SB(n.value, 2), a = s[0], o = s[1];
        t.call(r, o, a, Jm);
      }
    } catch (l) {
      i.e(l);
    } finally {
      i.f();
    }
  },
  get: function(t) {
    var r = Jm.find(function(i) {
      return i[0] === t;
    });
    return r && r[1];
  },
  has: function(t) {
    return !!dj.get(t);
  },
  keys: function() {
    return Jm.map(function(t) {
      var r = SB(t, 1), i = r[0];
      return i;
    });
  },
  values: function() {
    return Jm.map(function(t) {
      var r = SB(t, 2), i = r[1];
      return i;
    });
  }
}, Yor = (0, Asr.default)(dj, dj.entries());
Pm.default = Yor;
Object.defineProperty(BO, "__esModule", {
  value: !0
});
BO.default = void 0;
var Xor = mTe(Kg), Jor = mTe(Pm);
function mTe(e) {
  return e && e.__esModule ? e : { default: e };
}
function pv(e, t) {
  return elr(e) || Zor(e, t) || gTe(e, t) || Qor();
}
function Qor() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function Zor(e, t) {
  var r = e == null ? null : typeof Symbol != "undefined" && e[Symbol.iterator] || e["@@iterator"];
  if (r != null) {
    var i = [], n = !0, s = !1, a, o;
    try {
      for (r = r.call(e); !(n = (a = r.next()).done) && (i.push(a.value), !(t && i.length === t)); n = !0)
        ;
    } catch (l) {
      s = !0, o = l;
    } finally {
      try {
        !n && r.return != null && r.return();
      } finally {
        if (s)
          throw o;
      }
    }
    return i;
  }
}
function elr(e) {
  if (Array.isArray(e))
    return e;
}
function yTe(e, t) {
  var r = typeof Symbol != "undefined" && e[Symbol.iterator] || e["@@iterator"];
  if (!r) {
    if (Array.isArray(e) || (r = gTe(e)) || t && e && typeof e.length == "number") {
      r && (e = r);
      var i = 0, n = function() {
      };
      return { s: n, n: function() {
        return i >= e.length ? { done: !0 } : { done: !1, value: e[i++] };
      }, e: function(u) {
        throw u;
      }, f: n };
    }
    throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  }
  var s = !0, a = !1, o;
  return { s: function() {
    r = r.call(e);
  }, n: function() {
    var u = r.next();
    return s = u.done, u;
  }, e: function(u) {
    a = !0, o = u;
  }, f: function() {
    try {
      !s && r.return != null && r.return();
    } finally {
      if (a)
        throw o;
    }
  } };
}
function gTe(e, t) {
  if (e) {
    if (typeof e == "string")
      return nre(e, t);
    var r = Object.prototype.toString.call(e).slice(8, -1);
    if (r === "Object" && e.constructor && (r = e.constructor.name), r === "Map" || r === "Set")
      return Array.from(e);
    if (r === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))
      return nre(e, t);
  }
}
function nre(e, t) {
  (t == null || t > e.length) && (t = e.length);
  for (var r = 0, i = new Array(t); r < t; r++)
    i[r] = e[r];
  return i;
}
var ip = [], V1 = yTe(Jor.default.entries()), sre;
try {
  var tlr = function() {
    var t = pv(sre.value, 2), r = t[0], i = t[1], n = i.relatedConcepts;
    Array.isArray(n) && n.forEach(function(s) {
      if (s.module === "HTML") {
        var a = s.concept;
        if (a) {
          var o = ip.findIndex(function(l) {
            var u = pv(l, 1), c = u[0];
            return c === r;
          });
          o === -1 && (ip.push([r, []]), o = ip.length - 1), ip[o][1].push(a);
        }
      }
    });
  };
  for (V1.s(); !(sre = V1.n()).done; )
    tlr();
} catch (e) {
  V1.e(e);
} finally {
  V1.f();
}
var mj = {
  entries: function() {
    return ip;
  },
  forEach: function(t) {
    var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, i = yTe(ip), n;
    try {
      for (i.s(); !(n = i.n()).done; ) {
        var s = pv(n.value, 2), a = s[0], o = s[1];
        t.call(r, o, a, ip);
      }
    } catch (l) {
      i.e(l);
    } finally {
      i.f();
    }
  },
  get: function(t) {
    var r = ip.find(function(i) {
      return i[0] === t;
    });
    return r && r[1];
  },
  has: function(t) {
    return !!mj.get(t);
  },
  keys: function() {
    return ip.map(function(t) {
      var r = pv(t, 1), i = r[0];
      return i;
    });
  },
  values: function() {
    return ip.map(function(t) {
      var r = pv(t, 2), i = r[1];
      return i;
    });
  }
}, rlr = (0, Xor.default)(mj, mj.entries());
BO.default = rlr;
var tL = {};
Object.defineProperty(tL, "__esModule", {
  value: !0
});
tL.default = void 0;
var ilr = bTe(Kg), nlr = bTe(Pm);
function bTe(e) {
  return e && e.__esModule ? e : { default: e };
}
function fv(e, t) {
  return olr(e) || alr(e, t) || TTe(e, t) || slr();
}
function slr() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function alr(e, t) {
  var r = e == null ? null : typeof Symbol != "undefined" && e[Symbol.iterator] || e["@@iterator"];
  if (r != null) {
    var i = [], n = !0, s = !1, a, o;
    try {
      for (r = r.call(e); !(n = (a = r.next()).done) && (i.push(a.value), !(t && i.length === t)); n = !0)
        ;
    } catch (l) {
      s = !0, o = l;
    } finally {
      try {
        !n && r.return != null && r.return();
      } finally {
        if (s)
          throw o;
      }
    }
    return i;
  }
}
function olr(e) {
  if (Array.isArray(e))
    return e;
}
function vTe(e, t) {
  var r = typeof Symbol != "undefined" && e[Symbol.iterator] || e["@@iterator"];
  if (!r) {
    if (Array.isArray(e) || (r = TTe(e)) || t && e && typeof e.length == "number") {
      r && (e = r);
      var i = 0, n = function() {
      };
      return { s: n, n: function() {
        return i >= e.length ? { done: !0 } : { done: !1, value: e[i++] };
      }, e: function(u) {
        throw u;
      }, f: n };
    }
    throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  }
  var s = !0, a = !1, o;
  return { s: function() {
    r = r.call(e);
  }, n: function() {
    var u = r.next();
    return s = u.done, u;
  }, e: function(u) {
    a = !0, o = u;
  }, f: function() {
    try {
      !s && r.return != null && r.return();
    } finally {
      if (a)
        throw o;
    }
  } };
}
function TTe(e, t) {
  if (e) {
    if (typeof e == "string")
      return are(e, t);
    var r = Object.prototype.toString.call(e).slice(8, -1);
    if (r === "Object" && e.constructor && (r = e.constructor.name), r === "Map" || r === "Set")
      return Array.from(e);
    if (r === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))
      return are(e, t);
  }
}
function are(e, t) {
  (t == null || t > e.length) && (t = e.length);
  for (var r = 0, i = new Array(t); r < t; r++)
    i[r] = e[r];
  return i;
}
var np = [], W1 = vTe(nlr.default.entries()), ore;
try {
  var llr = function() {
    var t = fv(ore.value, 2), r = t[0], i = t[1], n = i.relatedConcepts;
    Array.isArray(n) && n.forEach(function(s) {
      if (s.module === "ARIA") {
        var a = s.concept;
        if (a) {
          var o = np.findIndex(function(l) {
            var u = fv(l, 1), c = u[0];
            return c === r;
          });
          o === -1 && (np.push([r, []]), o = np.length - 1), np[o][1].push(a);
        }
      }
    });
  };
  for (W1.s(); !(ore = W1.n()).done; )
    llr();
} catch (e) {
  W1.e(e);
} finally {
  W1.f();
}
var yj = {
  entries: function() {
    return np;
  },
  forEach: function(t) {
    var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, i = vTe(np), n;
    try {
      for (i.s(); !(n = i.n()).done; ) {
        var s = fv(n.value, 2), a = s[0], o = s[1];
        t.call(r, o, a, np);
      }
    } catch (l) {
      i.e(l);
    } finally {
      i.f();
    }
  },
  get: function(t) {
    var r = np.find(function(i) {
      return i[0] === t;
    });
    return r && r[1];
  },
  has: function(t) {
    return !!yj.get(t);
  },
  keys: function() {
    return np.map(function(t) {
      var r = fv(t, 1), i = r[0];
      return i;
    });
  },
  values: function() {
    return np.map(function(t) {
      var r = fv(t, 2), i = r[1];
      return i;
    });
  }
}, ulr = (0, ilr.default)(yj, yj.entries());
tL.default = ulr;
var rL = {};
Object.defineProperty(rL, "__esModule", {
  value: !0
});
rL.default = void 0;
var clr = PU, plr = STe(Pm), flr = STe(Kg);
function STe(e) {
  return e && e.__esModule ? e : { default: e };
}
function XP(e, t) {
  return mlr(e) || dlr(e, t) || ETe(e, t) || hlr();
}
function hlr() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function dlr(e, t) {
  var r = e == null ? null : typeof Symbol != "undefined" && e[Symbol.iterator] || e["@@iterator"];
  if (r != null) {
    var i = [], n = !0, s = !1, a, o;
    try {
      for (r = r.call(e); !(n = (a = r.next()).done) && (i.push(a.value), !(t && i.length === t)); n = !0)
        ;
    } catch (l) {
      s = !0, o = l;
    } finally {
      try {
        !n && r.return != null && r.return();
      } finally {
        if (s)
          throw o;
      }
    }
    return i;
  }
}
function mlr(e) {
  if (Array.isArray(e))
    return e;
}
function xTe(e, t) {
  var r = typeof Symbol != "undefined" && e[Symbol.iterator] || e["@@iterator"];
  if (!r) {
    if (Array.isArray(e) || (r = ETe(e)) || t && e && typeof e.length == "number") {
      r && (e = r);
      var i = 0, n = function() {
      };
      return { s: n, n: function() {
        return i >= e.length ? { done: !0 } : { done: !1, value: e[i++] };
      }, e: function(u) {
        throw u;
      }, f: n };
    }
    throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  }
  var s = !0, a = !1, o;
  return { s: function() {
    r = r.call(e);
  }, n: function() {
    var u = r.next();
    return s = u.done, u;
  }, e: function(u) {
    a = !0, o = u;
  }, f: function() {
    try {
      !s && r.return != null && r.return();
    } finally {
      if (a)
        throw o;
    }
  } };
}
function ETe(e, t) {
  if (e) {
    if (typeof e == "string")
      return lre(e, t);
    var r = Object.prototype.toString.call(e).slice(8, -1);
    if (r === "Object" && e.constructor && (r = e.constructor.name), r === "Map" || r === "Set")
      return Array.from(e);
    if (r === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))
      return lre(e, t);
  }
}
function lre(e, t) {
  (t == null || t > e.length) && (t = e.length);
  for (var r = 0, i = new Array(t); r < t; r++)
    i[r] = e[r];
  return i;
}
var Ol = [], H1 = xTe(plr.default.entries()), ure;
try {
  var ylr = function() {
    var t = XP(ure.value, 2), r = t[0], i = t[1], n = i.relatedConcepts;
    Array.isArray(n) && n.forEach(function(s) {
      if (s.module === "HTML") {
        var a = s.concept;
        if (a != null) {
          for (var o = JSON.stringify(a), l, u = 0; u < Ol.length; u++) {
            var c = Ol[u][0];
            if (JSON.stringify(c) === o) {
              l = Ol[u][1];
              break;
            }
          }
          Array.isArray(l) || (l = []);
          var f = l.findIndex(function(h) {
            return h === r;
          });
          f === -1 && l.push(r), u < Ol.length ? Ol.splice(u, 1, [a, l]) : Ol.push([a, l]);
        }
      }
    });
  };
  for (H1.s(); !(ure = H1.n()).done; )
    ylr();
} catch (e) {
  H1.e(e);
} finally {
  H1.f();
}
var gj = {
  entries: function() {
    return Ol;
  },
  forEach: function(t) {
    var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, i = xTe(Ol), n;
    try {
      for (i.s(); !(n = i.n()).done; ) {
        var s = XP(n.value, 2), a = s[0], o = s[1];
        t.call(r, o, a, Ol);
      }
    } catch (l) {
      i.e(l);
    } finally {
      i.f();
    }
  },
  get: function(t) {
    var r = Ol.find(function(i) {
      return t.name === i[0].name && (0, clr.dequal)(t.attributes, i[0].attributes);
    });
    return r && r[1];
  },
  has: function(t) {
    return !!gj.get(t);
  },
  keys: function() {
    return Ol.map(function(t) {
      var r = XP(t, 1), i = r[0];
      return i;
    });
  },
  values: function() {
    return Ol.map(function(t) {
      var r = XP(t, 2), i = r[1];
      return i;
    });
  }
}, glr = (0, flr.default)(gj, gj.entries());
rL.default = glr;
Object.defineProperty(yf, "__esModule", {
  value: !0
});
var AU = yf.elementAXObjects = pT = yf.AXObjects = yf.AXObjectRoles = yf.AXObjectElements = void 0, blr = iL(BO), vlr = iL(tL), Tlr = iL(Pm), Slr = iL(rL);
function iL(e) {
  return e && e.__esModule ? e : { default: e };
}
var xlr = blr.default;
yf.AXObjectElements = xlr;
var Elr = vlr.default;
yf.AXObjectRoles = Elr;
var Plr = Tlr.default, pT = yf.AXObjects = Plr, wlr = Slr.default;
AU = yf.elementAXObjects = wlr;
const PTe = CS.keys(), Alr = new Set(PTe.filter((e) => CS.get(e).abstract)), wTe = PTe.filter((e) => !Alr.has(e)), ATe = new Set(
  wTe.filter((e) => {
    const t = CS.get(e);
    return (
      // 'toolbar' does not descend from widget, but it does support
      // aria-activedescendant, thus in practice we treat it as a widget.
      // focusable tabpanel elements are recommended if any panels in a set contain content where the first element in the panel is not focusable.
      // 'generic' is meant to have no semantic meaning.
      // 'cell' is treated as CellRole by the AXObject which is interactive, so we treat 'cell' it as interactive as well.
      !["toolbar", "tabpanel", "generic", "cell"].includes(e) && !t.superClass.some((r) => r.includes("widget"))
    );
  }).concat(
    // The `progressbar` is descended from `widget`, but in practice, its
    // value is always `readonly`, so we treat it as a non-interactive role.
    "progressbar"
  )
), Clr = new Set(
  wTe.filter(
    (e) => !ATe.has(e) && // 'generic' is meant to have no semantic meaning.
    e !== "generic"
  )
);
wU.entries().forEach(([e, t]) => {
  [...t].every((r) => r !== "generic" && ATe.has(r));
});
wU.entries().forEach(([e, t]) => {
  [...t].every((r) => Clr.has(r));
});
const _lr = new Set(
  [...pT.keys()].filter((e) => pT.get(e).type === "widget")
), Ilr = new Set(
  [...pT.keys()].filter(
    (e) => ["windows", "structure"].includes(pT.get(e).type)
  )
);
AU.entries().forEach(([e, t]) => {
  [...t].every((r) => _lr.has(r));
});
AU.entries().forEach(([e, t]) => {
  [...t].every((r) => Ilr.has(r));
});
const klr = "activedescendant atomic autocomplete busy checked colcount colindex colspan controls current describedby description details disabled dropeffect errormessage expanded flowto grabbed haspopup hidden invalid keyshortcuts label labelledby level live modal multiline multiselectable orientation owns placeholder posinset pressed readonly relevant required roledescription rowcount rowindex rowspan selected setsize sort valuemax valuemin valuenow valuetext".split(
  " "
);
new Set(klr);
const Olr = CS.keys();
new Set(Olr);
var Foe;
y0e(Foe || (Foe = at(["true"])));
var joe;
y0e(joe || (joe = at(["false"])));
const Nlr = "accent-height accumulate additive alignment-baseline allowReorder alphabetic amplitude arabic-form ascent attributeName attributeType autoReverse azimuth baseFrequency baseline-shift baseProfile bbox begin bias by calcMode cap-height class clip clipPathUnits clip-path clip-rule color color-interpolation color-interpolation-filters color-profile color-rendering contentScriptType contentStyleType cursor cx cy d decelerate descent diffuseConstant direction display divisor dominant-baseline dur dx dy edgeMode elevation enable-background end exponent externalResourcesRequired fill fill-opacity fill-rule filter filterRes filterUnits flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight format from fr fx fy g1 g2 glyph-name glyph-orientation-horizontal glyph-orientation-vertical glyphRef gradientTransform gradientUnits hanging height href horiz-adv-x horiz-origin-x id ideographic image-rendering in in2 intercept k k1 k2 k3 k4 kernelMatrix kernelUnitLength kerning keyPoints keySplines keyTimes lang lengthAdjust letter-spacing lighting-color limitingConeAngle local marker-end marker-mid marker-start markerHeight markerUnits markerWidth mask maskContentUnits maskUnits mathematical max media method min mode name numOctaves offset onabort onactivate onbegin onclick onend onerror onfocusin onfocusout onload onmousedown onmousemove onmouseout onmouseover onmouseup onrepeat onresize onscroll onunload opacity operator order orient orientation origin overflow overline-position overline-thickness panose-1 paint-order pathLength patternContentUnits patternTransform patternUnits pointer-events points pointsAtX pointsAtY pointsAtZ preserveAlpha preserveAspectRatio primitiveUnits r radius refX refY rendering-intent repeatCount repeatDur requiredExtensions requiredFeatures restart result rotate rx ry scale seed shape-rendering slope spacing specularConstant specularExponent speed spreadMethod startOffset stdDeviation stemh stemv stitchTiles stop-color stop-opacity strikethrough-position strikethrough-thickness string stroke stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width style surfaceScale systemLanguage tabindex tableValues target targetX targetY text-anchor text-decoration text-rendering textLength to transform type u1 u2 underline-position underline-thickness unicode unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical values version vert-adv-y vert-origin-x vert-origin-y viewBox viewTarget visibility width widths word-spacing writing-mode x x-height x1 x2 xChannelSelector xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type xml:base xml:lang xml:space y y1 y2 yChannelSelector z zoomAndPan".split(
  " "
), Dlr = /* @__PURE__ */ new Map();
Nlr.forEach((e) => {
  Dlr.set(e.toLowerCase(), e);
});
const cre = {
  allowfullscreen: { property_name: "allowFullscreen", applies_to: ["iframe"] },
  allowpaymentrequest: { property_name: "allowPaymentRequest", applies_to: ["iframe"] },
  async: { applies_to: ["script"] },
  autofocus: { applies_to: ["button", "input", "keygen", "select", "textarea"] },
  autoplay: { applies_to: ["audio", "video"] },
  checked: { applies_to: ["input"] },
  controls: { applies_to: ["audio", "video"] },
  default: { applies_to: ["track"] },
  defer: { applies_to: ["script"] },
  disabled: {
    applies_to: [
      "button",
      "fieldset",
      "input",
      "keygen",
      "optgroup",
      "option",
      "select",
      "textarea"
    ]
  },
  formnovalidate: { property_name: "formNoValidate", applies_to: ["button", "input"] },
  hidden: {},
  indeterminate: { applies_to: ["input"] },
  inert: {},
  ismap: { property_name: "isMap", applies_to: ["img"] },
  loop: { applies_to: ["audio", "bgsound", "video"] },
  multiple: { applies_to: ["input", "select"] },
  muted: { applies_to: ["audio", "video"] },
  nomodule: { property_name: "noModule", applies_to: ["script"] },
  novalidate: { property_name: "noValidate", applies_to: ["form"] },
  open: { applies_to: ["details", "dialog"] },
  playsinline: { property_name: "playsInline", applies_to: ["video"] },
  readonly: { property_name: "readOnly", applies_to: ["input", "textarea"] },
  required: { applies_to: ["input", "select", "textarea"] },
  reversed: { applies_to: ["ol"] },
  selected: { applies_to: ["option"] },
  value: {
    applies_to: [
      "button",
      "option",
      "input",
      "li",
      "meter",
      "progress",
      "param",
      "select",
      "textarea"
    ]
  }
};
Object.keys(cre).forEach((e) => {
  const t = cre[e];
  t.property_name || (t.property_name = e);
});
var Llr = { exports: {} };
(function(e, t) {
  (function(r, i) {
    e.exports = i(XT(), tde());
  })(jt, function(r, i) {
    const n = /* @__PURE__ */ a("", -1, -1, "", null), s = [];
    function a(T, S, P, x, C) {
      return { source: T, line: S, column: P, name: x, content: C };
    }
    function o(T, S, P, x) {
      return {
        map: T,
        sources: S,
        source: P,
        content: x
      };
    }
    function l(T, S) {
      return o(T, S, "", null);
    }
    function u(T, S) {
      return o(null, s, T, S);
    }
    function c(T) {
      const S = new i.GenMapping({ file: T.map.file }), { sources: P, map: x } = T, C = x.names, D = r.decodedMappings(x);
      for (let w = 0; w < D.length; w++) {
        const A = D[w];
        for (let I = 0; I < A.length; I++) {
          const L = A[I], O = L[0];
          let F = n;
          if (L.length !== 1) {
            const $ = P[L[1]];
            if (F = f($, L[2], L[3], L.length === 5 ? C[L[4]] : ""), F == null)
              continue;
          }
          const { column: q, line: j, name: N, content: M, source: R } = F;
          i.maybeAddSegment(S, w, O, R, j, q, N), R && M != null && i.setSourceContent(S, R, M);
        }
      }
      return S;
    }
    function f(T, S, P, x) {
      if (!T.map)
        return a(T.source, S, P, x, T.content);
      const C = r.traceSegment(T.map, S, P);
      return C == null ? null : C.length === 1 ? n : f(T.sources[C[1]], C[2], C[3], C.length === 5 ? T.map.names[C[4]] : x);
    }
    function h(T) {
      return Array.isArray(T) ? T : [T];
    }
    function m(T, S) {
      const P = h(T).map((D) => new r.TraceMap(D, "")), x = P.pop();
      for (let D = 0; D < P.length; D++)
        if (P[D].sources.length > 1)
          throw new Error("Transformation map ".concat(D, " must have exactly one source file.\n") + "Did you specify these with the most recent transformation maps first?");
      let C = g(x, S, "", 0);
      for (let D = P.length - 1; D >= 0; D--)
        C = l(P[D], [C]);
      return C;
    }
    function g(T, S, P, x) {
      const { resolvedSources: C, sourcesContent: D } = T, w = x + 1, A = C.map((I, L) => {
        const O = {
          importer: P,
          depth: w,
          source: I || "",
          content: void 0
        }, F = S(O.source, O), { source: q, content: j } = O;
        if (F)
          return g(new r.TraceMap(F, q), S, q, w);
        const N = j !== void 0 ? j : D ? D[L] : null;
        return u(q, N);
      });
      return l(T, A);
    }
    class y {
      constructor(S, P) {
        const x = P.decodedMappings ? i.toDecodedMap(S) : i.toEncodedMap(S);
        this.version = x.version, this.file = x.file, this.mappings = x.mappings, this.names = x.names, this.sourceRoot = x.sourceRoot, this.sources = x.sources, P.excludeContent || (this.sourcesContent = x.sourcesContent);
      }
      toString() {
        return JSON.stringify(this);
      }
    }
    function v(T, S, P) {
      const x = typeof P == "object" ? P : { excludeContent: !!P, decodedMappings: !1 }, C = m(T, S);
      return new y(c(C), x);
    }
    return v;
  });
})(Llr);
function Mlr(e, t, r) {
  const i = new IT(e);
  let n = e;
  const s = /<script(?:\s+[a-zA-Z-]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^>\s]*))?)?>[\s\S]*?<\/script>/gi, a = /<style(?:\s+[a-zA-Z-]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^>\s]*))?)?>[\s\S]*?<\/style>/gi, o = e.match(s) || [], l = e.match(a) || [];
  [...o, ...l].forEach((c) => {
    n = n.replace(c, " ".repeat(c.length));
  });
  const u = nKt(n).html;
  return PS(u, {
    enter(c) {
      var f;
      if (c.type === "Element" && !PC(r, c.name) && !((f = c == null ? void 0 : c.attributes) != null && f.some((h) => (h == null ? void 0 : h.name) === fa))) {
        const h = c.start + c.name.length + 1, m = Rlr(e, c.start) + 1, g = c.start - e.lastIndexOf("\n", c.start), y = " ".concat(fa, '="').concat(t, ":").concat(m, ":").concat(g, ":").concat(c.name, '"').concat(c.attributes.length ? " " : "");
        i.prependLeft(h, y);
      }
    }
  }), i.toString();
}
function Rlr(e, t) {
  let r = 0;
  for (let i = 0; i < t; i++)
    e[i] === "\n" && r++;
  return r;
}
var CTe = {}, CU = {}, wm = {}, qi = {}, TA = {}, nL = {}, _U = {};
Object.defineProperty(_U, "__esModule", { value: !0 });
_U.binarySearch = Blr;
function Blr(e, t) {
  let r = 0, i = e.length - 1, n;
  for (; r <= i; ) {
    const o = Math.floor((r + i) / 2), l = e[o];
    if (l < t)
      r = o + 1;
    else if (l > t)
      i = o - 1;
    else {
      r = o, i = o, n = o;
      break;
    }
  }
  const s = Math.max(Math.min(r, i, e.length - 1), 0), a = Math.min(Math.max(r, i, 0), e.length - 1);
  return { low: s, high: a, match: n };
}
var sL = {};
Object.defineProperty(sL, "__esModule", { value: !0 });
sL.translateOffset = Flr;
let pre = !1;
function Flr(e, t, r, i, n = i) {
  if (!t.every((l, u) => u === 0 || t[u - 1] <= l)) {
    for (let l = 0; l < t.length; l++) {
      const u = t[l], c = i[l];
      if (e >= u && e <= u + c) {
        const f = n[l], h = r[l];
        let m = Math.min(e - u, f);
        return h + m;
      }
    }
    pre || (pre = !0, console.warn("fromOffsets should be sorted in ascending order"));
  }
  let a = 0, o = t.length - 1;
  for (; a <= o; ) {
    const l = Math.floor((a + o) / 2), u = t[l], c = i[l];
    if (e >= u && e <= u + c) {
      const f = n[l], h = r[l];
      let m = Math.min(e - u, f);
      return h + m;
    } else
      e < u ? o = l - 1 : a = l + 1;
  }
}
Object.defineProperty(nL, "__esModule", { value: !0 });
nL.SourceMap = void 0;
const xB = _U, fre = sL;
class jlr {
  constructor(t) {
    this.mappings = t;
  }
  toSourceRange(t, r, i, n) {
    return this.findMatchingStartEnd(t, r, i, "generatedOffsets", n);
  }
  toGeneratedRange(t, r, i, n) {
    return this.findMatchingStartEnd(t, r, i, "sourceOffsets", n);
  }
  toSourceLocation(t, r) {
    return this.findMatchingOffsets(t, "generatedOffsets", r);
  }
  toGeneratedLocation(t, r) {
    return this.findMatchingOffsets(t, "sourceOffsets", r);
  }
  *findMatchingOffsets(t, r, i) {
    const n = this.getMemoBasedOnRange(r);
    if (n.offsets.length === 0)
      return;
    const { low: s, high: a } = (0, xB.binarySearch)(n.offsets, t), o = /* @__PURE__ */ new Set(), l = r == "sourceOffsets" ? "generatedOffsets" : "sourceOffsets";
    for (let u = s; u <= a; u++)
      for (const c of n.mappings[u]) {
        if (o.has(c) || (o.add(c), i && !i(c.data)))
          continue;
        const f = (0, fre.translateOffset)(t, c[r], c[l], Qm(c, r), Qm(c, l));
        f !== void 0 && (yield [f, c]);
      }
  }
  *findMatchingStartEnd(t, r, i, n, s) {
    const a = n == "sourceOffsets" ? "generatedOffsets" : "sourceOffsets", o = [];
    let l = !1;
    for (const [u, c] of this.findMatchingOffsets(t, n)) {
      if (s && !s(c.data))
        continue;
      o.push([u, c]);
      const f = (0, fre.translateOffset)(r, c[n], c[a], Qm(c, n), Qm(c, a));
      f !== void 0 && (l = !0, yield [u, f, c, c]);
    }
    if (!l && i) {
      for (const [u, c] of o)
        for (const [f, h] of this.findMatchingOffsets(r, n))
          if (!(s && !s(h.data) || f < u)) {
            yield [u, f, c, h];
            break;
          }
    }
  }
  getMemoBasedOnRange(t) {
    var r, i;
    return t === "sourceOffsets" ? (r = this.sourceCodeOffsetsMemo) != null ? r : this.sourceCodeOffsetsMemo = this.createMemo("sourceOffsets") : (i = this.generatedCodeOffsetsMemo) != null ? i : this.generatedCodeOffsetsMemo = this.createMemo("generatedOffsets");
  }
  createMemo(t) {
    const r = /* @__PURE__ */ new Set();
    for (const s of this.mappings)
      for (let a = 0; a < s[t].length; a++)
        r.add(s[t][a]), r.add(s[t][a] + Qm(s, t)[a]);
    const i = [...r].sort((s, a) => s - a), n = i.map(() => /* @__PURE__ */ new Set());
    for (const s of this.mappings)
      for (let a = 0; a < s[t].length; a++) {
        const o = (0, xB.binarySearch)(i, s[t][a]).match, l = (0, xB.binarySearch)(i, s[t][a] + Qm(s, t)[a]).match;
        for (let u = o; u <= l; u++)
          n[u].add(s);
      }
    return { offsets: i, mappings: n };
  }
}
nL.SourceMap = jlr;
function Qm(e, t) {
  var r;
  return t == "sourceOffsets" ? e.lengths : (r = e.generatedLengths) != null ? r : e.lengths;
}
(function(e) {
  var t = jt && jt.__createBinding || (Object.create ? function(i, n, s, a) {
    a === void 0 && (a = s);
    var o = Object.getOwnPropertyDescriptor(n, s);
    (!o || ("get" in o ? !n.__esModule : o.writable || o.configurable)) && (o = { enumerable: !0, get: function() {
      return n[s];
    } }), Object.defineProperty(i, a, o);
  } : function(i, n, s, a) {
    a === void 0 && (a = s), i[a] = n[s];
  }), r = jt && jt.__exportStar || function(i, n) {
    for (var s in i)
      s !== "default" && !Object.prototype.hasOwnProperty.call(n, s) && t(n, i, s);
  };
  Object.defineProperty(e, "__esModule", { value: !0 }), r(nL, e), r(sL, e);
})(TA);
var Oi = {};
Object.defineProperty(Oi, "__esModule", { value: !0 });
Oi.isHoverEnabled = $lr;
Oi.isInlayHintsEnabled = Ulr;
Oi.isCodeLensEnabled = qlr;
Oi.isMonikerEnabled = Vlr;
Oi.isInlineValueEnabled = Wlr;
Oi.isSemanticTokensEnabled = Hlr;
Oi.isCallHierarchyEnabled = Klr;
Oi.isTypeHierarchyEnabled = zlr;
Oi.isRenameEnabled = Glr;
Oi.isDefinitionEnabled = Ylr;
Oi.isTypeDefinitionEnabled = Xlr;
Oi.isReferencesEnabled = Jlr;
Oi.isImplementationEnabled = Qlr;
Oi.isHighlightEnabled = Zlr;
Oi.isSymbolsEnabled = eur;
Oi.isFoldingRangesEnabled = tur;
Oi.isSelectionRangesEnabled = rur;
Oi.isLinkedEditingEnabled = iur;
Oi.isColorEnabled = nur;
Oi.isDocumentLinkEnabled = sur;
Oi.isDiagnosticsEnabled = aur;
Oi.isCodeActionsEnabled = our;
Oi.isFormattingEnabled = lur;
Oi.isCompletionEnabled = uur;
Oi.isAutoInsertEnabled = cur;
Oi.isSignatureHelpEnabled = pur;
Oi.shouldReportDiagnostics = fur;
Oi.resolveRenameNewName = hur;
Oi.resolveRenameEditText = dur;
function $lr(e) {
  return !!e.semantic;
}
function Ulr(e) {
  return !!e.semantic;
}
function qlr(e) {
  return !!e.semantic;
}
function Vlr(e) {
  return !!e.semantic;
}
function Wlr(e) {
  return !!e.semantic;
}
function Hlr(e) {
  var t, r, i;
  return typeof e.semantic == "object" ? (i = (r = (t = e.semantic).shouldHighlight) == null ? void 0 : r.call(t)) != null ? i : !0 : !!e.semantic;
}
function Klr(e) {
  return !!e.navigation;
}
function zlr(e) {
  return !!e.navigation;
}
function Glr(e) {
  var t, r, i;
  return typeof e.navigation == "object" ? (i = (r = (t = e.navigation).shouldRename) == null ? void 0 : r.call(t)) != null ? i : !0 : !!e.navigation;
}
function Ylr(e) {
  return !!e.navigation;
}
function Xlr(e) {
  return !!e.navigation;
}
function Jlr(e) {
  return !!e.navigation;
}
function Qlr(e) {
  return !!e.navigation;
}
function Zlr(e) {
  return !!e.navigation;
}
function eur(e) {
  return !!e.structure;
}
function tur(e) {
  return !!e.structure;
}
function rur(e) {
  return !!e.structure;
}
function iur(e) {
  return !!e.structure;
}
function nur(e) {
  return !!e.structure;
}
function sur(e) {
  return !!e.structure;
}
function aur(e) {
  return !!e.verification;
}
function our(e) {
  return !!e.verification;
}
function lur(e) {
  return !!e.format;
}
function uur(e) {
  return !!e.completion;
}
function cur(e) {
  return !!e.completion;
}
function pur(e) {
  return !!e.completion;
}
function fur(e, t, r) {
  var i, n, s;
  return typeof e.verification == "object" ? (s = (n = (i = e.verification).shouldReport) == null ? void 0 : n.call(i, t, r)) != null ? s : !0 : !!e.verification;
}
function hur(e, t) {
  var r, i, n;
  return typeof t.navigation == "object" && (n = (i = (r = t.navigation).resolveRenameNewName) == null ? void 0 : i.call(r, e)) != null ? n : e;
}
function dur(e, t) {
  var r, i, n;
  return typeof t.navigation == "object" && (n = (i = (r = t.navigation).resolveRenameEditText) == null ? void 0 : i.call(r, e)) != null ? n : e;
}
var fT = {};
Object.defineProperty(fT, "__esModule", { value: !0 });
fT.LinkedCodeMap = void 0;
const mur = TA;
class yur extends mur.SourceMap {
  *getLinkedOffsets(t) {
    for (const r of this.toGeneratedLocation(t))
      yield r[0];
    for (const r of this.toSourceLocation(t))
      yield r[0];
  }
}
fT.LinkedCodeMap = yur;
var _Te = {};
Object.defineProperty(_Te, "__esModule", { value: !0 });
var aL = {};
Object.defineProperty(aL, "__esModule", { value: !0 });
aL.FileMap = void 0;
class gur extends Map {
  constructor(t) {
    super(), this.caseSensitive = t, this.originalFileNames = /* @__PURE__ */ new Map();
  }
  keys() {
    return this.originalFileNames.values();
  }
  get(t) {
    return super.get(this.normalizeId(t));
  }
  has(t) {
    return super.has(this.normalizeId(t));
  }
  set(t, r) {
    return this.originalFileNames.set(this.normalizeId(t), t), super.set(this.normalizeId(t), r);
  }
  delete(t) {
    return this.originalFileNames.delete(this.normalizeId(t)), super.delete(this.normalizeId(t));
  }
  clear() {
    return this.originalFileNames.clear(), super.clear();
  }
  normalizeId(t) {
    return this.caseSensitive ? t : t.toLowerCase();
  }
}
aL.FileMap = gur;
(function(e) {
  var t = jt && jt.__createBinding || (Object.create ? function(u, c, f, h) {
    h === void 0 && (h = f);
    var m = Object.getOwnPropertyDescriptor(c, f);
    (!m || ("get" in m ? !c.__esModule : m.writable || m.configurable)) && (m = { enumerable: !0, get: function() {
      return c[f];
    } }), Object.defineProperty(u, h, m);
  } : function(u, c, f, h) {
    h === void 0 && (h = f), u[h] = c[f];
  }), r = jt && jt.__exportStar || function(u, c) {
    for (var f in u)
      f !== "default" && !Object.prototype.hasOwnProperty.call(c, f) && t(c, u, f);
  };
  Object.defineProperty(e, "__esModule", { value: !0 }), e.defaultMapperFactory = e.SourceMap = void 0, e.createLanguage = o, e.forEachEmbeddedCode = l;
  var i = TA;
  Object.defineProperty(e, "SourceMap", { enumerable: !0, get: function() {
    return i.SourceMap;
  } }), r(Oi, e), r(fT, e), r(_Te, e), r(aL, e);
  const n = TA, s = fT, a = (u) => new n.SourceMap(u);
  e.defaultMapperFactory = a;
  function o(u, c, f, h) {
    const m = /* @__PURE__ */ new WeakMap(), g = /* @__PURE__ */ new WeakMap(), y = /* @__PURE__ */ new WeakMap(), v = {
      mapperFactory: e.defaultMapperFactory,
      plugins: u,
      scripts: {
        fromVirtualCode(P) {
          return m.get(P);
        },
        get(P, x = !0, C = !1) {
          f(P, x, C);
          const D = c.get(P);
          return D != null && D.isAssociationDirty && this.set(P, D.snapshot, D.languageId), c.get(P);
        },
        set(P, x, C, D = u) {
          var A, I, L;
          if (!C) {
            for (const O of u)
              if (C = (A = O.getLanguageId) == null ? void 0 : A.call(O, P), C)
                break;
          }
          if (!C) {
            console.warn("languageId not found for ".concat(P));
            return;
          }
          let w = !1;
          for (const O of u)
            if ((I = O.isAssociatedFileOnly) != null && I.call(O, P, C)) {
              w = !0;
              break;
            }
          if (c.has(P)) {
            const O = c.get(P);
            if (O.languageId !== C || O.associatedOnly !== w)
              return this.delete(P), T(O), this.set(P, x, C);
            if (w)
              O.snapshot !== x && (O.snapshot = x, T(O));
            else if (O.isAssociationDirty || O.snapshot !== x) {
              O.snapshot !== x && (O.snapshot = x, T(O));
              const F = S(O);
              if (O.generated) {
                const { updateVirtualCode: q, createVirtualCode: j } = O.generated.languagePlugin, N = q ? q(P, O.generated.root, x, F) : j == null ? void 0 : j(P, C, x, F);
                if (N) {
                  O.generated.root = N, O.generated.embeddedCodes.clear();
                  for (const M of l(O.generated.root))
                    m.set(M, O), O.generated.embeddedCodes.set(M.id, M);
                  return O;
                } else {
                  this.delete(P);
                  return;
                }
              }
            } else
              return O;
          } else {
            const O = {
              id: P,
              languageId: C,
              snapshot: x,
              associatedIds: /* @__PURE__ */ new Set(),
              targetIds: /* @__PURE__ */ new Set(),
              associatedOnly: w
            };
            if (c.set(P, O), w)
              return O;
            for (const F of D) {
              const q = (L = F.createVirtualCode) == null ? void 0 : L.call(F, P, C, x, S(O));
              if (q) {
                O.generated = {
                  root: q,
                  languagePlugin: F,
                  embeddedCodes: /* @__PURE__ */ new Map()
                };
                for (const j of l(q))
                  m.set(j, O), O.generated.embeddedCodes.set(j.id, j);
                break;
              }
            }
            return O;
          }
        },
        delete(P) {
          var C, D, w;
          const x = c.get(P);
          x && ((w = (C = x.generated) == null ? void 0 : (D = C.languagePlugin).disposeVirtualCode) == null || w.call(D, P, x.generated.root), c.delete(P), T(x));
        }
      },
      maps: {
        get(P, x) {
          var D, w;
          let C = g.get(P.snapshot);
          if (C || g.set(P.snapshot, C = /* @__PURE__ */ new WeakMap()), !C.has(x.snapshot)) {
            const A = (w = (D = P.associatedScriptMappings) == null ? void 0 : D.get(x.id)) != null ? w : P.mappings;
            C.set(x.snapshot, v.mapperFactory(A));
          }
          return C.get(x.snapshot);
        },
        *forEach(P) {
          const x = m.get(P);
          if (yield [
            x,
            this.get(P, x)
          ], P.associatedScriptMappings)
            for (const [C] of P.associatedScriptMappings) {
              const D = c.get(C);
              D && (yield [
                D,
                this.get(P, D)
              ]);
            }
        }
      },
      linkedCodeMaps: {
        get(P) {
          const x = m.get(P);
          let C = y.get(P.snapshot);
          return (C == null ? void 0 : C[0]) !== x.snapshot && y.set(P.snapshot, C = [
            x.snapshot,
            P.linkedCodeMappings ? new s.LinkedCodeMap(P.linkedCodeMappings) : void 0
          ]), C[1];
        }
      }
    };
    return v;
    function T(P) {
      P.targetIds.forEach((x) => {
        const C = c.get(x);
        C && (C.isAssociationDirty = !0, h == null || h(C.id));
      });
    }
    function S(P) {
      var x;
      for (const C of P.associatedIds)
        (x = c.get(C)) == null || x.targetIds.delete(P.id);
      return P.associatedIds.clear(), P.isAssociationDirty = !1, {
        getAssociatedScript(C) {
          f(C, !0, !0);
          const D = c.get(C);
          return D && (D.targetIds.add(P.id), P.associatedIds.add(D.id)), D;
        }
      };
    }
  }
  function* l(u) {
    if (yield u, u.embeddedCodes)
      for (const c of u.embeddedCodes)
        yield* l(c);
  }
})(qi);
var ITe = {};
let hre = class bj {
  constructor(t, r, i, n) {
    this._uri = t, this._languageId = r, this._version = i, this._content = n, this._lineOffsets = void 0;
  }
  get uri() {
    return this._uri;
  }
  get languageId() {
    return this._languageId;
  }
  get version() {
    return this._version;
  }
  getText(t) {
    if (t) {
      const r = this.offsetAt(t.start), i = this.offsetAt(t.end);
      return this._content.substring(r, i);
    }
    return this._content;
  }
  update(t, r) {
    for (let i of t)
      if (bj.isIncremental(i)) {
        const n = kTe(i.range), s = this.offsetAt(n.start), a = this.offsetAt(n.end);
        this._content = this._content.substring(0, s) + i.text + this._content.substring(a, this._content.length);
        const o = Math.max(n.start.line, 0), l = Math.max(n.end.line, 0);
        let u = this._lineOffsets;
        const c = dre(i.text, !1, s);
        if (l - o === c.length)
          for (let h = 0, m = c.length; h < m; h++)
            u[h + o + 1] = c[h];
        else
          c.length < 1e4 ? u.splice(o + 1, l - o, ...c) : this._lineOffsets = u = u.slice(0, o + 1).concat(c, u.slice(l + 1));
        const f = i.text.length - (a - s);
        if (f !== 0)
          for (let h = o + 1 + c.length, m = u.length; h < m; h++)
            u[h] = u[h] + f;
      } else if (bj.isFull(i))
        this._content = i.text, this._lineOffsets = void 0;
      else
        throw new Error("Unknown change event received");
    this._version = r;
  }
  getLineOffsets() {
    return this._lineOffsets === void 0 && (this._lineOffsets = dre(this._content, !0)), this._lineOffsets;
  }
  positionAt(t) {
    t = Math.max(Math.min(t, this._content.length), 0);
    let r = this.getLineOffsets(), i = 0, n = r.length;
    if (n === 0)
      return { line: 0, character: t };
    for (; i < n; ) {
      let a = Math.floor((i + n) / 2);
      r[a] > t ? n = a : i = a + 1;
    }
    let s = i - 1;
    return { line: s, character: t - r[s] };
  }
  offsetAt(t) {
    let r = this.getLineOffsets();
    if (t.line >= r.length)
      return this._content.length;
    if (t.line < 0)
      return 0;
    let i = r[t.line], n = t.line + 1 < r.length ? r[t.line + 1] : this._content.length;
    return Math.max(Math.min(i + t.character, n), i);
  }
  get lineCount() {
    return this.getLineOffsets().length;
  }
  static isIncremental(t) {
    let r = t;
    return r != null && typeof r.text == "string" && r.range !== void 0 && (r.rangeLength === void 0 || typeof r.rangeLength == "number");
  }
  static isFull(t) {
    let r = t;
    return r != null && typeof r.text == "string" && r.range === void 0 && r.rangeLength === void 0;
  }
};
var vj;
(function(e) {
  function t(n, s, a, o) {
    return new hre(n, s, a, o);
  }
  e.create = t;
  function r(n, s, a) {
    if (n instanceof hre)
      return n.update(s, a), n;
    throw new Error("TextDocument.update: document must be created by TextDocument.create");
  }
  e.update = r;
  function i(n, s) {
    let a = n.getText(), o = Tj(s.map(bur), (c, f) => {
      let h = c.range.start.line - f.range.start.line;
      return h === 0 ? c.range.start.character - f.range.start.character : h;
    }), l = 0;
    const u = [];
    for (const c of o) {
      let f = n.offsetAt(c.range.start);
      if (f < l)
        throw new Error("Overlapping edit");
      f > l && u.push(a.substring(l, f)), c.newText.length && u.push(c.newText), l = n.offsetAt(c.range.end);
    }
    return u.push(a.substr(l)), u.join("");
  }
  e.applyEdits = i;
})(vj || (vj = {}));
function Tj(e, t) {
  if (e.length <= 1)
    return e;
  const r = e.length / 2 | 0, i = e.slice(0, r), n = e.slice(r);
  Tj(i, t), Tj(n, t);
  let s = 0, a = 0, o = 0;
  for (; s < i.length && a < n.length; )
    t(i[s], n[a]) <= 0 ? e[o++] = i[s++] : e[o++] = n[a++];
  for (; s < i.length; )
    e[o++] = i[s++];
  for (; a < n.length; )
    e[o++] = n[a++];
  return e;
}
function dre(e, t, r = 0) {
  const i = t ? [r] : [];
  for (let n = 0; n < e.length; n++) {
    let s = e.charCodeAt(n);
    (s === 13 || s === 10) && (s === 13 && n + 1 < e.length && e.charCodeAt(n + 1) === 10 && n++, i.push(r + n + 1));
  }
  return i;
}
function kTe(e) {
  const t = e.start, r = e.end;
  return t.line > r.line || t.line === r.line && t.character > r.character ? { start: r, end: t } : e;
}
function bur(e) {
  const t = kTe(e.range);
  return t !== e.range ? { newText: e.newText, range: t } : e;
}
const vur = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  get TextDocument() {
    return vj;
  }
}, Symbol.toStringTag, { value: "Module" })), oL = /* @__PURE__ */ EC(vur);
var OTe = { exports: {} };
(function(e, t) {
  (function(r, i) {
    e.exports = i();
  })(jt, () => (() => {
    var r = { 470: (a) => {
      function o(c) {
        if (typeof c != "string")
          throw new TypeError("Path must be a string. Received " + JSON.stringify(c));
      }
      function l(c, f) {
        for (var h, m = "", g = 0, y = -1, v = 0, T = 0; T <= c.length; ++T) {
          if (T < c.length)
            h = c.charCodeAt(T);
          else {
            if (h === 47)
              break;
            h = 47;
          }
          if (h === 47) {
            if (!(y === T - 1 || v === 1))
              if (y !== T - 1 && v === 2) {
                if (m.length < 2 || g !== 2 || m.charCodeAt(m.length - 1) !== 46 || m.charCodeAt(m.length - 2) !== 46) {
                  if (m.length > 2) {
                    var S = m.lastIndexOf("/");
                    if (S !== m.length - 1) {
                      S === -1 ? (m = "", g = 0) : g = (m = m.slice(0, S)).length - 1 - m.lastIndexOf("/"), y = T, v = 0;
                      continue;
                    }
                  } else if (m.length === 2 || m.length === 1) {
                    m = "", g = 0, y = T, v = 0;
                    continue;
                  }
                }
                f && (m.length > 0 ? m += "/.." : m = "..", g = 2);
              } else
                m.length > 0 ? m += "/" + c.slice(y + 1, T) : m = c.slice(y + 1, T), g = T - y - 1;
            y = T, v = 0;
          } else
            h === 46 && v !== -1 ? ++v : v = -1;
        }
        return m;
      }
      var u = { resolve: function() {
        for (var c, f = "", h = !1, m = arguments.length - 1; m >= -1 && !h; m--) {
          var g;
          m >= 0 ? g = arguments[m] : (c === void 0 && (c = process.cwd()), g = c), o(g), g.length !== 0 && (f = g + "/" + f, h = g.charCodeAt(0) === 47);
        }
        return f = l(f, !h), h ? f.length > 0 ? "/" + f : "/" : f.length > 0 ? f : ".";
      }, normalize: function(c) {
        if (o(c), c.length === 0)
          return ".";
        var f = c.charCodeAt(0) === 47, h = c.charCodeAt(c.length - 1) === 47;
        return (c = l(c, !f)).length !== 0 || f || (c = "."), c.length > 0 && h && (c += "/"), f ? "/" + c : c;
      }, isAbsolute: function(c) {
        return o(c), c.length > 0 && c.charCodeAt(0) === 47;
      }, join: function() {
        if (arguments.length === 0)
          return ".";
        for (var c, f = 0; f < arguments.length; ++f) {
          var h = arguments[f];
          o(h), h.length > 0 && (c === void 0 ? c = h : c += "/" + h);
        }
        return c === void 0 ? "." : u.normalize(c);
      }, relative: function(c, f) {
        if (o(c), o(f), c === f || (c = u.resolve(c)) === (f = u.resolve(f)))
          return "";
        for (var h = 1; h < c.length && c.charCodeAt(h) === 47; ++h)
          ;
        for (var m = c.length, g = m - h, y = 1; y < f.length && f.charCodeAt(y) === 47; ++y)
          ;
        for (var v = f.length - y, T = g < v ? g : v, S = -1, P = 0; P <= T; ++P) {
          if (P === T) {
            if (v > T) {
              if (f.charCodeAt(y + P) === 47)
                return f.slice(y + P + 1);
              if (P === 0)
                return f.slice(y + P);
            } else
              g > T && (c.charCodeAt(h + P) === 47 ? S = P : P === 0 && (S = 0));
            break;
          }
          var x = c.charCodeAt(h + P);
          if (x !== f.charCodeAt(y + P))
            break;
          x === 47 && (S = P);
        }
        var C = "";
        for (P = h + S + 1; P <= m; ++P)
          P !== m && c.charCodeAt(P) !== 47 || (C.length === 0 ? C += ".." : C += "/..");
        return C.length > 0 ? C + f.slice(y + S) : (y += S, f.charCodeAt(y) === 47 && ++y, f.slice(y));
      }, _makeLong: function(c) {
        return c;
      }, dirname: function(c) {
        if (o(c), c.length === 0)
          return ".";
        for (var f = c.charCodeAt(0), h = f === 47, m = -1, g = !0, y = c.length - 1; y >= 1; --y)
          if ((f = c.charCodeAt(y)) === 47) {
            if (!g) {
              m = y;
              break;
            }
          } else
            g = !1;
        return m === -1 ? h ? "/" : "." : h && m === 1 ? "//" : c.slice(0, m);
      }, basename: function(c, f) {
        if (f !== void 0 && typeof f != "string")
          throw new TypeError('"ext" argument must be a string');
        o(c);
        var h, m = 0, g = -1, y = !0;
        if (f !== void 0 && f.length > 0 && f.length <= c.length) {
          if (f.length === c.length && f === c)
            return "";
          var v = f.length - 1, T = -1;
          for (h = c.length - 1; h >= 0; --h) {
            var S = c.charCodeAt(h);
            if (S === 47) {
              if (!y) {
                m = h + 1;
                break;
              }
            } else
              T === -1 && (y = !1, T = h + 1), v >= 0 && (S === f.charCodeAt(v) ? --v == -1 && (g = h) : (v = -1, g = T));
          }
          return m === g ? g = T : g === -1 && (g = c.length), c.slice(m, g);
        }
        for (h = c.length - 1; h >= 0; --h)
          if (c.charCodeAt(h) === 47) {
            if (!y) {
              m = h + 1;
              break;
            }
          } else
            g === -1 && (y = !1, g = h + 1);
        return g === -1 ? "" : c.slice(m, g);
      }, extname: function(c) {
        o(c);
        for (var f = -1, h = 0, m = -1, g = !0, y = 0, v = c.length - 1; v >= 0; --v) {
          var T = c.charCodeAt(v);
          if (T !== 47)
            m === -1 && (g = !1, m = v + 1), T === 46 ? f === -1 ? f = v : y !== 1 && (y = 1) : f !== -1 && (y = -1);
          else if (!g) {
            h = v + 1;
            break;
          }
        }
        return f === -1 || m === -1 || y === 0 || y === 1 && f === m - 1 && f === h + 1 ? "" : c.slice(f, m);
      }, format: function(c) {
        if (c === null || typeof c != "object")
          throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + typeof c);
        return function(f, h) {
          var m = h.dir || h.root, g = h.base || (h.name || "") + (h.ext || "");
          return m ? m === h.root ? m + g : m + "/" + g : g;
        }(0, c);
      }, parse: function(c) {
        o(c);
        var f = { root: "", dir: "", base: "", ext: "", name: "" };
        if (c.length === 0)
          return f;
        var h, m = c.charCodeAt(0), g = m === 47;
        g ? (f.root = "/", h = 1) : h = 0;
        for (var y = -1, v = 0, T = -1, S = !0, P = c.length - 1, x = 0; P >= h; --P)
          if ((m = c.charCodeAt(P)) !== 47)
            T === -1 && (S = !1, T = P + 1), m === 46 ? y === -1 ? y = P : x !== 1 && (x = 1) : y !== -1 && (x = -1);
          else if (!S) {
            v = P + 1;
            break;
          }
        return y === -1 || T === -1 || x === 0 || x === 1 && y === T - 1 && y === v + 1 ? T !== -1 && (f.base = f.name = v === 0 && g ? c.slice(1, T) : c.slice(v, T)) : (v === 0 && g ? (f.name = c.slice(1, y), f.base = c.slice(1, T)) : (f.name = c.slice(v, y), f.base = c.slice(v, T)), f.ext = c.slice(y, T)), v > 0 ? f.dir = c.slice(0, v - 1) : g && (f.dir = "/"), f;
      }, sep: "/", delimiter: ":", win32: null, posix: null };
      u.posix = u, a.exports = u;
    }, 674: (a, o) => {
      if (Object.defineProperty(o, "__esModule", { value: !0 }), o.isWindows = void 0, typeof process == "object")
        o.isWindows = process.platform === "win32";
      else if (typeof navigator == "object") {
        let l = navigator.userAgent;
        o.isWindows = l.indexOf("Windows") >= 0;
      }
    }, 796: (a, o, l) => {
      Object.defineProperty(o, "__esModule", { value: !0 }), o.uriToFsPath = o.URI = void 0;
      const u = l(674), c = /^\w[\w\d+.-]*$/, f = /^\//, h = /^\/\//;
      function m(F, q) {
        if (!F.scheme && q)
          throw new Error('[UriError]: Scheme is missing: {scheme: "", authority: "'.concat(F.authority, '", path: "').concat(F.path, '", query: "').concat(F.query, '", fragment: "').concat(F.fragment, '"}'));
        if (F.scheme && !c.test(F.scheme))
          throw new Error("[UriError]: Scheme contains illegal characters.");
        if (F.path) {
          if (F.authority) {
            if (!f.test(F.path))
              throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character');
          } else if (h.test(F.path))
            throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")');
        }
      }
      const g = "", y = "/", v = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;
      class T {
        constructor(q, j, N, M, R, $ = !1) {
          ti(this, "scheme");
          ti(this, "authority");
          ti(this, "path");
          ti(this, "query");
          ti(this, "fragment");
          typeof q == "object" ? (this.scheme = q.scheme || g, this.authority = q.authority || g, this.path = q.path || g, this.query = q.query || g, this.fragment = q.fragment || g) : (this.scheme = function(V, K) {
            return V || K ? V : "file";
          }(q, $), this.authority = j || g, this.path = function(V, K) {
            switch (V) {
              case "https":
              case "http":
              case "file":
                K ? K[0] !== y && (K = y + K) : K = y;
            }
            return K;
          }(this.scheme, N || g), this.query = M || g, this.fragment = R || g, m(this, $));
        }
        static isUri(q) {
          return q instanceof T || !!q && typeof q.authority == "string" && typeof q.fragment == "string" && typeof q.path == "string" && typeof q.query == "string" && typeof q.scheme == "string" && typeof q.fsPath == "string" && typeof q.with == "function" && typeof q.toString == "function";
        }
        get fsPath() {
          return w(this, !1);
        }
        with(q) {
          if (!q)
            return this;
          let { scheme: j, authority: N, path: M, query: R, fragment: $ } = q;
          return j === void 0 ? j = this.scheme : j === null && (j = g), N === void 0 ? N = this.authority : N === null && (N = g), M === void 0 ? M = this.path : M === null && (M = g), R === void 0 ? R = this.query : R === null && (R = g), $ === void 0 ? $ = this.fragment : $ === null && ($ = g), j === this.scheme && N === this.authority && M === this.path && R === this.query && $ === this.fragment ? this : new P(j, N, M, R, $);
        }
        static parse(q, j = !1) {
          const N = v.exec(q);
          return N ? new P(N[2] || g, O(N[4] || g), O(N[5] || g), O(N[7] || g), O(N[9] || g), j) : new P(g, g, g, g, g);
        }
        static file(q) {
          let j = g;
          if (u.isWindows && (q = q.replace(/\\/g, y)), q[0] === y && q[1] === y) {
            const N = q.indexOf(y, 2);
            N === -1 ? (j = q.substring(2), q = y) : (j = q.substring(2, N), q = q.substring(N) || y);
          }
          return new P("file", j, q, g, g);
        }
        static from(q) {
          const j = new P(q.scheme, q.authority, q.path, q.query, q.fragment);
          return m(j, !0), j;
        }
        toString(q = !1) {
          return A(this, q);
        }
        toJSON() {
          return this;
        }
        static revive(q) {
          if (q) {
            if (q instanceof T)
              return q;
            {
              const j = new P(q);
              return j._formatted = q.external, j._fsPath = q._sep === S ? q.fsPath : null, j;
            }
          }
          return q;
        }
      }
      o.URI = T;
      const S = u.isWindows ? 1 : void 0;
      class P extends T {
        constructor() {
          super(...arguments);
          ti(this, "_formatted", null);
          ti(this, "_fsPath", null);
        }
        get fsPath() {
          return this._fsPath || (this._fsPath = w(this, !1)), this._fsPath;
        }
        toString(j = !1) {
          return j ? A(this, !0) : (this._formatted || (this._formatted = A(this, !1)), this._formatted);
        }
        toJSON() {
          const j = { $mid: 1 };
          return this._fsPath && (j.fsPath = this._fsPath, j._sep = S), this._formatted && (j.external = this._formatted), this.path && (j.path = this.path), this.scheme && (j.scheme = this.scheme), this.authority && (j.authority = this.authority), this.query && (j.query = this.query), this.fragment && (j.fragment = this.fragment), j;
        }
      }
      const x = { 58: "%3A", 47: "%2F", 63: "%3F", 35: "%23", 91: "%5B", 93: "%5D", 64: "%40", 33: "%21", 36: "%24", 38: "%26", 39: "%27", 40: "%28", 41: "%29", 42: "%2A", 43: "%2B", 44: "%2C", 59: "%3B", 61: "%3D", 32: "%20" };
      function C(F, q, j) {
        let N, M = -1;
        for (let R = 0; R < F.length; R++) {
          const $ = F.charCodeAt(R);
          if ($ >= 97 && $ <= 122 || $ >= 65 && $ <= 90 || $ >= 48 && $ <= 57 || $ === 45 || $ === 46 || $ === 95 || $ === 126 || q && $ === 47 || j && $ === 91 || j && $ === 93 || j && $ === 58)
            M !== -1 && (N += encodeURIComponent(F.substring(M, R)), M = -1), N !== void 0 && (N += F.charAt(R));
          else {
            N === void 0 && (N = F.substr(0, R));
            const V = x[$];
            V !== void 0 ? (M !== -1 && (N += encodeURIComponent(F.substring(M, R)), M = -1), N += V) : M === -1 && (M = R);
          }
        }
        return M !== -1 && (N += encodeURIComponent(F.substring(M))), N !== void 0 ? N : F;
      }
      function D(F) {
        let q;
        for (let j = 0; j < F.length; j++) {
          const N = F.charCodeAt(j);
          N === 35 || N === 63 ? (q === void 0 && (q = F.substr(0, j)), q += x[N]) : q !== void 0 && (q += F[j]);
        }
        return q !== void 0 ? q : F;
      }
      function w(F, q) {
        let j;
        return j = F.authority && F.path.length > 1 && F.scheme === "file" ? "//".concat(F.authority).concat(F.path) : F.path.charCodeAt(0) === 47 && (F.path.charCodeAt(1) >= 65 && F.path.charCodeAt(1) <= 90 || F.path.charCodeAt(1) >= 97 && F.path.charCodeAt(1) <= 122) && F.path.charCodeAt(2) === 58 ? q ? F.path.substr(1) : F.path[1].toLowerCase() + F.path.substr(2) : F.path, u.isWindows && (j = j.replace(/\//g, "\\")), j;
      }
      function A(F, q) {
        const j = q ? D : C;
        let N = "", { scheme: M, authority: R, path: $, query: V, fragment: K } = F;
        if (M && (N += M, N += ":"), (R || M === "file") && (N += y, N += y), R) {
          let z = R.indexOf("@");
          if (z !== -1) {
            const W = R.substr(0, z);
            R = R.substr(z + 1), z = W.lastIndexOf(":"), z === -1 ? N += j(W, !1, !1) : (N += j(W.substr(0, z), !1, !1), N += ":", N += j(W.substr(z + 1), !1, !0)), N += "@";
          }
          R = R.toLowerCase(), z = R.lastIndexOf(":"), z === -1 ? N += j(R, !1, !0) : (N += j(R.substr(0, z), !1, !0), N += R.substr(z));
        }
        if ($) {
          if ($.length >= 3 && $.charCodeAt(0) === 47 && $.charCodeAt(2) === 58) {
            const z = $.charCodeAt(1);
            z >= 65 && z <= 90 && ($ = "/".concat(String.fromCharCode(z + 32), ":").concat($.substr(3)));
          } else if ($.length >= 2 && $.charCodeAt(1) === 58) {
            const z = $.charCodeAt(0);
            z >= 65 && z <= 90 && ($ = "".concat(String.fromCharCode(z + 32), ":").concat($.substr(2)));
          }
          N += j($, !0, !1);
        }
        return V && (N += "?", N += j(V, !1, !1)), K && (N += "#", N += q ? K : C(K, !1, !1)), N;
      }
      function I(F) {
        try {
          return decodeURIComponent(F);
        } catch (q) {
          return F.length > 3 ? F.substr(0, 3) + I(F.substr(3)) : F;
        }
      }
      o.uriToFsPath = w;
      const L = /(%[0-9A-Za-z][0-9A-Za-z])+/g;
      function O(F) {
        return F.match(L) ? F.replace(L, (q) => I(q)) : F;
      }
    }, 679: function(a, o, l) {
      var u = this && this.__createBinding || (Object.create ? function(v, T, S, P) {
        P === void 0 && (P = S);
        var x = Object.getOwnPropertyDescriptor(T, S);
        x && !("get" in x ? !T.__esModule : x.writable || x.configurable) || (x = { enumerable: !0, get: function() {
          return T[S];
        } }), Object.defineProperty(v, P, x);
      } : function(v, T, S, P) {
        P === void 0 && (P = S), v[P] = T[S];
      }), c = this && this.__setModuleDefault || (Object.create ? function(v, T) {
        Object.defineProperty(v, "default", { enumerable: !0, value: T });
      } : function(v, T) {
        v.default = T;
      }), f = this && this.__importStar || function(v) {
        if (v && v.__esModule)
          return v;
        var T = {};
        if (v != null)
          for (var S in v)
            S !== "default" && Object.prototype.hasOwnProperty.call(v, S) && u(T, v, S);
        return c(T, v), T;
      };
      Object.defineProperty(o, "__esModule", { value: !0 }), o.Utils = void 0;
      const h = f(l(470)), m = h.posix || h, g = "/";
      var y;
      (function(v) {
        v.joinPath = function(T, ...S) {
          return T.with({ path: m.join(T.path, ...S) });
        }, v.resolvePath = function(T, ...S) {
          let P = T.path, x = !1;
          P[0] !== g && (P = g + P, x = !0);
          let C = m.resolve(P, ...S);
          return x && C[0] === g && !T.authority && (C = C.substring(1)), T.with({ path: C });
        }, v.dirname = function(T) {
          if (T.path.length === 0 || T.path === g)
            return T;
          let S = m.dirname(T.path);
          return S.length === 1 && S.charCodeAt(0) === 46 && (S = ""), T.with({ path: S });
        }, v.basename = function(T) {
          return m.basename(T.path);
        }, v.extname = function(T) {
          return m.extname(T.path);
        };
      })(y || (o.Utils = y = {}));
    } }, i = {};
    function n(a) {
      var o = i[a];
      if (o !== void 0)
        return o.exports;
      var l = i[a] = { exports: {} };
      return r[a].call(l.exports, l, l.exports, n), l.exports;
    }
    var s = {};
    return (() => {
      var a = s;
      Object.defineProperty(a, "__esModule", { value: !0 }), a.Utils = a.URI = void 0;
      const o = n(796);
      Object.defineProperty(a, "URI", { enumerable: !0, get: function() {
        return o.URI;
      } });
      const l = n(679);
      Object.defineProperty(a, "Utils", { enumerable: !0, get: function() {
        return l.Utils;
      } });
    })(), s;
  })());
})(OTe);
var ma = OTe.exports, IU = {}, Dr = {};
Object.defineProperty(Dr, "__esModule", { value: !0 });
Dr.NoneCancellationToken = void 0;
Dr.NoneCancellationToken = {
  isCancellationRequested: !1,
  onCancellationRequested: () => ({ dispose: () => {
  } })
};
var Er = {};
Object.defineProperty(Er, "__esModule", { value: !0 });
Er.documentFeatureWorker = Tur;
Er.languageFeatureWorker = NTe;
Er.safeCall = Sj;
Er.forEachEmbeddedDocument = kU;
Er.getSourceRange = Sur;
Er.getGeneratedRange = xur;
Er.getSourceRanges = DTe;
Er.getGeneratedRanges = LTe;
Er.getSourcePositions = Eur;
Er.getGeneratedPositions = Pur;
Er.getLinkedCodePositions = wur;
function Tur(e, t, r, i, n, s) {
  return NTe(e, t, () => {
  }, function* (a) {
    r(a) && (yield);
  }, i, n, s);
}
function NTe(e, t, r, i, n, s, a) {
  return hr(this, null, function* () {
    var f;
    let o;
    const l = e.decodeEmbeddedDocumentUri(t);
    if (l ? o = e.language.scripts.get(l[0]) : o = e.language.scripts.get(t), !o)
      return;
    let u = [];
    if (l) {
      const h = (f = o.generated) == null ? void 0 : f.embeddedCodes.get(l[1]);
      if (h) {
        const m = [
          e.documents.get(o.id, o.languageId, o.snapshot),
          e.documents.get(t, h.languageId, h.snapshot),
          e.language.maps.get(h, o)
        ];
        yield c(m, !1);
      }
    } else if (o.generated)
      for (const h of kU(e, o, o.generated.root))
        u.length && !a || (yield c(h, !0));
    else {
      const h = e.documents.get(t, o.languageId, o.snapshot), m = r();
      for (const [g, y] of Object.entries(e.plugins)) {
        if (e.disabledServicePlugins.has(y[1]))
          continue;
        const v = yield Sj(() => n(y, h, m, void 0), 'Language service plugin "'.concat(y[0].name, '" (').concat(g, ") failed to provide document feature for ").concat(h.uri, "."));
        if (!v)
          continue;
        const T = s(v, void 0);
        if (T && (u.push(T), !a))
          break;
      }
    }
    if (a && u.length > 0)
      return a(u);
    if (u.length > 0)
      return u[0];
    function c(h, m) {
      return hr(this, null, function* () {
        for (const g of i(h))
          if (!(u.length && !a))
            for (const [y, v] of Object.entries(e.plugins)) {
              if (e.disabledServicePlugins.has(v[1]) || u.length && !a)
                continue;
              const T = yield Sj(() => n(v, h[1], g, h), 'Language service plugin "'.concat(v[0].name, '" (').concat(y, ") failed to provide document feature for ").concat(h[1].uri, "."));
              if (T)
                if (m) {
                  const S = s(T, h);
                  S && u.push(S);
                } else
                  u.push(T);
            }
      });
    }
  });
}
function Sj(e, t) {
  return hr(this, null, function* () {
    try {
      return yield e();
    } catch (r) {
      console.warn(t, r);
    }
  });
}
function* kU(e, t, r) {
  if (r.embeddedCodes)
    for (const n of r.embeddedCodes)
      yield* kU(e, t, n);
  const i = e.encodeEmbeddedDocumentUri(t.id, r.id);
  e.disabledEmbeddedDocumentUris.get(i) || (yield [
    e.documents.get(t.id, t.languageId, t.snapshot),
    e.documents.get(i, r.languageId, r.snapshot),
    e.language.maps.get(r, t)
  ]);
}
function Sur(e, t, r) {
  for (const i of DTe(e, t, r))
    return i;
}
function xur(e, t, r) {
  for (const i of LTe(e, t, r))
    return i;
}
function* DTe([e, t, r], i, n) {
  for (const [s, a] of r.toSourceRange(t.offsetAt(i.start), t.offsetAt(i.end), !0, n))
    yield { start: e.positionAt(s), end: e.positionAt(a) };
}
function* LTe([e, t, r], i, n) {
  for (const [s, a] of r.toGeneratedRange(e.offsetAt(i.start), e.offsetAt(i.end), !0, n))
    yield { start: t.positionAt(s), end: t.positionAt(a) };
}
function* Eur([e, t, r], i, n = () => !0) {
  for (const s of r.toSourceLocation(t.offsetAt(i), n))
    yield e.positionAt(s[0]);
}
function* Pur([e, t, r], i, n = () => !0) {
  for (const s of r.toGeneratedLocation(e.offsetAt(i), n))
    yield t.positionAt(s[0]);
}
function* wur(e, t, r) {
  for (const i of t.getLinkedOffsets(e.offsetAt(r)))
    yield e.positionAt(i);
}
Object.defineProperty(IU, "__esModule", { value: !0 });
IU.register = _ur;
const Aur = qi, Cur = Dr, mre = Er;
function _ur(e) {
  return (t, r, i, n = Cur.NoneCancellationToken) => (0, mre.languageFeatureWorker)(e, t, () => ({ selection: r, change: i }), function* (s) {
    for (const a of (0, mre.getGeneratedPositions)(s, r, Aur.isAutoInsertEnabled))
      for (const o of s[2].toGeneratedLocation(i.rangeOffset)) {
        yield {
          selection: a,
          change: {
            text: i.text,
            rangeOffset: o[0],
            rangeLength: i.rangeLength
          }
        };
        break;
      }
  }, (s, a, o) => {
    var l, u;
    if (!n.isCancellationRequested)
      return (u = (l = s[1]).provideAutoInsertSnippet) == null ? void 0 : u.call(l, a, o.selection, o.change, n);
  }, (s) => s);
}
var OU = {}, zn = {};
Object.defineProperty(zn, "__esModule", { value: !0 });
zn.createLocationSet = Iur;
zn.withCodeAction = kur;
zn.withTextEdits = Our;
zn.withDocumentChanges = Nur;
zn.withDiagnostics = Dur;
zn.withLocations = Lur;
zn.withLocationLinks = Mur;
zn.withCallHierarchyIncomingCalls = Rur;
zn.withCallHierarchyOutgoingCalls = Bur;
zn.withRanges = Fur;
function Iur() {
  const e = /* @__PURE__ */ new Set();
  return {
    add: t,
    has: r
  };
  function t(n) {
    return r(n) ? !1 : (e.add(i(n)), !0);
  }
  function r(n) {
    return e.has(i(n));
  }
  function i(n) {
    return [
      n.uri,
      n.range.start.line,
      n.range.start.character,
      n.range.end.line,
      n.range.end.character
    ].join(":");
  }
}
function kur(e) {
  return qf(e, (t) => [
    t.title
  ].join(":"));
}
function Our(e) {
  return qf(e, (t) => [
    t.range.start.line,
    t.range.start.character,
    t.range.end.line,
    t.range.end.character,
    t.newText
  ].join(":"));
}
function Nur(e) {
  return qf(e, (t) => JSON.stringify(t));
}
function Dur(e) {
  return qf(e, (t) => [
    t.range.start.line,
    t.range.start.character,
    t.range.end.line,
    t.range.end.character,
    t.source,
    t.code,
    t.severity,
    t.message
  ].join(":"));
}
function Lur(e) {
  return qf(e, (t) => [
    t.uri,
    t.range.start.line,
    t.range.start.character,
    t.range.end.line,
    t.range.end.character
  ].join(":"));
}
function Mur(e) {
  return qf(e, (t) => [
    t.targetUri,
    t.targetSelectionRange.start.line,
    t.targetSelectionRange.start.character,
    t.targetSelectionRange.end.line,
    t.targetSelectionRange.end.character
    // ignore difference targetRange
  ].join(":"));
}
function Rur(e) {
  return qf(e, (t) => [
    t.from.uri,
    t.from.range.start.line,
    t.from.range.start.character,
    t.from.range.end.line,
    t.from.range.end.character
  ].join(":"));
}
function Bur(e) {
  return qf(e, (t) => [
    t.to.uri,
    t.to.range.start.line,
    t.to.range.start.character,
    t.to.range.end.line,
    t.to.range.end.character
  ].join(":"));
}
function Fur(e) {
  return qf(e, (t) => [
    t.start.line,
    t.start.character,
    t.end.line,
    t.end.character
  ].join(":"));
}
function qf(e, t) {
  const r = /* @__PURE__ */ new Map();
  for (const i of e.reverse())
    r.set(t(i), i);
  return [...r.values()];
}
Object.defineProperty(OU, "__esModule", { value: !0 });
OU.register = jur;
const yre = qi, f0 = ma, gre = Dr, K1 = zn, bd = Er;
function jur(e) {
  return {
    getCallHierarchyItems(i, n, s = gre.NoneCancellationToken) {
      return (0, bd.languageFeatureWorker)(e, i, () => n, (a) => (0, bd.getGeneratedPositions)(a, n, yre.isCallHierarchyEnabled), (a, o, l, u) => hr(this, null, function* () {
        var f, h;
        if (s.isCancellationRequested)
          return;
        const c = yield (h = (f = a[1]).provideCallHierarchyItems) == null ? void 0 : h.call(f, o, l, s);
        return c == null || c.forEach((m) => {
          m.data = {
            uri: i.toString(),
            original: {
              data: m.data
            },
            pluginIndex: e.plugins.indexOf(a),
            embeddedDocumentUri: u == null ? void 0 : u[1].uri
          };
        }), c;
      }), (a, o) => o ? a.map((l) => {
        var u;
        return (u = t(l, [])) == null ? void 0 : u[0];
      }).filter((l) => !!l) : a, (a) => K1.withLocations(a.flat()));
    },
    getTypeHierarchyItems(i, n, s = gre.NoneCancellationToken) {
      return (0, bd.languageFeatureWorker)(e, i, () => n, (a) => (0, bd.getGeneratedPositions)(a, n, yre.isTypeHierarchyEnabled), (a, o, l, u) => hr(this, null, function* () {
        var f, h;
        if (s.isCancellationRequested)
          return;
        const c = yield (h = (f = a[1]).provideTypeHierarchyItems) == null ? void 0 : h.call(f, o, l, s);
        return c == null || c.forEach((m) => {
          m.data = {
            uri: i.toString(),
            original: {
              data: m.data
            },
            pluginIndex: e.plugins.indexOf(a),
            embeddedDocumentUri: u == null ? void 0 : u[1].uri
          };
        }), c;
      }), (a, o) => o ? a.map((l) => {
        var u;
        return (u = t(l, [])) == null ? void 0 : u[0];
      }).filter((l) => !!l) : a, (a) => K1.withLocations(a.flat()));
    },
    getCallHierarchyIncomingCalls(i, n) {
      return hr(this, null, function* () {
        const s = i.data;
        let a = [];
        if (s) {
          const o = e.plugins[s.pluginIndex];
          if (!o[1].provideCallHierarchyIncomingCalls)
            return a;
          if (Object.assign(i, s.original), s.embeddedDocumentUri) {
            if (!!e.decodeEmbeddedDocumentUri(f0.URI.parse(s.embeddedDocumentUri))) {
              const u = yield o[1].provideCallHierarchyIncomingCalls(i, n);
              for (const c of u) {
                const f = t(c.from, c.fromRanges);
                f && a.push({
                  from: f[0],
                  fromRanges: f[1]
                });
              }
            }
          } else {
            const l = yield o[1].provideCallHierarchyIncomingCalls(i, n);
            for (const u of l) {
              const c = t(u.from, u.fromRanges);
              c && a.push({
                from: c[0],
                fromRanges: c[1]
              });
            }
          }
        }
        return K1.withCallHierarchyIncomingCalls(a);
      });
    },
    getCallHierarchyOutgoingCalls(i, n) {
      return hr(this, null, function* () {
        const s = i.data;
        let a = [];
        if (s) {
          const o = e.plugins[s.pluginIndex];
          if (!o[1].provideCallHierarchyOutgoingCalls)
            return a;
          if (Object.assign(i, s.original), s.embeddedDocumentUri) {
            if (!!e.decodeEmbeddedDocumentUri(f0.URI.parse(s.embeddedDocumentUri))) {
              const u = yield o[1].provideCallHierarchyOutgoingCalls(i, n);
              for (const c of u) {
                const f = t(c.to, c.fromRanges);
                f && a.push({
                  to: f[0],
                  fromRanges: f[1]
                });
              }
            }
          } else {
            const l = yield o[1].provideCallHierarchyOutgoingCalls(i, n);
            for (const u of l) {
              const c = t(u.to, u.fromRanges);
              c && a.push({
                to: c[0],
                fromRanges: c[1]
              });
            }
          }
        }
        return K1.withCallHierarchyOutgoingCalls(a);
      });
    },
    getTypeHierarchySupertypes(i, n) {
      return hr(this, null, function* () {
        const s = i.data;
        if (s) {
          const a = e.plugins[s.pluginIndex];
          if (!a[1].provideTypeHierarchySupertypes)
            return [];
          if (Object.assign(i, s.original), s.embeddedDocumentUri) {
            if (!!e.decodeEmbeddedDocumentUri(f0.URI.parse(s.embeddedDocumentUri)))
              return (yield a[1].provideTypeHierarchySupertypes(i, n)).map((u) => {
                var c;
                return (c = t(u, [])) == null ? void 0 : c[0];
              }).filter((u) => !!u);
          } else
            return (yield a[1].provideTypeHierarchySupertypes(i, n)).map((l) => {
              var u;
              return (u = t(l, [])) == null ? void 0 : u[0];
            }).filter((l) => !!l);
        }
      });
    },
    getTypeHierarchySubtypes(i, n) {
      return hr(this, null, function* () {
        const s = i.data;
        if (s) {
          const a = e.plugins[s.pluginIndex];
          if (!a[1].provideTypeHierarchySubtypes)
            return [];
          if (Object.assign(i, s.original), s.embeddedDocumentUri) {
            if (!!e.decodeEmbeddedDocumentUri(f0.URI.parse(s.embeddedDocumentUri)))
              return (yield a[1].provideTypeHierarchySubtypes(i, n)).map((u) => {
                var c;
                return (c = t(u, [])) == null ? void 0 : c[0];
              }).filter((u) => !!u);
          } else
            return (yield a[1].provideTypeHierarchySubtypes(i, n)).map((l) => {
              var u;
              return (u = t(l, [])) == null ? void 0 : u[0];
            }).filter((l) => !!l);
        }
      });
    }
  };
  function t(i, n) {
    var u;
    const s = e.decodeEmbeddedDocumentUri(f0.URI.parse(i.uri)), a = s && e.language.scripts.get(s[0]), o = s && ((u = a == null ? void 0 : a.generated) == null ? void 0 : u.embeddedCodes.get(s[1]));
    if (!a || !o)
      return [i, n];
    const l = e.documents.get(e.encodeEmbeddedDocumentUri(a.id, o.id), o.languageId, o.snapshot);
    for (const [c, f] of e.language.maps.forEach(o)) {
      const h = e.documents.get(c.id, c.languageId, c.snapshot), m = [h, l, f];
      let g = (0, bd.getSourceRange)(m, i.range);
      g || (g = {
        start: h.positionAt(0),
        end: h.positionAt(h.getText().length)
      });
      const y = (0, bd.getSourceRange)(m, i.selectionRange);
      if (!y)
        continue;
      const v = n.map((S) => (0, bd.getSourceRange)(m, S)).filter((S) => !!S);
      return [zr($t({}, i), {
        name: i.name === l.uri.substring(l.uri.lastIndexOf("/") + 1) ? h.uri.substring(h.uri.lastIndexOf("/") + 1) : i.name,
        uri: h.uri,
        // TS Bug: `range: range` not works
        range: {
          start: g.start,
          end: g.end
        },
        selectionRange: {
          start: y.start,
          end: y.end
        }
      }), v];
    }
  }
}
var NU = {}, Ha = {};
Object.defineProperty(Ha, "__esModule", { value: !0 });
Ha.findOverlapCodeRange = $ur;
Ha.isInsideRange = qur;
Ha.isEqualRange = Vur;
Ha.stringToSnapshot = Wur;
Ha.sleep = Hur;
function $ur(e, t, r, i) {
  var a;
  let n, s;
  for (const [o, l] of r.toGeneratedLocation(e))
    if (i(l.data)) {
      n = o;
      break;
    }
  for (const [o, l] of r.toGeneratedLocation(t))
    if (i(l.data)) {
      s = o;
      break;
    }
  if (n === void 0 || s === void 0) {
    for (const o of r.mappings)
      if (i(o.data)) {
        const l = o.sourceOffsets[0], u = o.sourceOffsets[o.sourceOffsets.length - 1] + o.lengths[o.lengths.length - 1], c = Uur(e, t, l, u);
        if (c) {
          const f = c.start - l + o.generatedOffsets[0], h = ((a = o.generatedLengths) != null ? a : o.lengths)[o.generatedOffsets.length - 1], m = Math.min(c.end - o.sourceOffsets[o.sourceOffsets.length - 1], h), g = o.generatedOffsets[o.generatedOffsets.length - 1] + m;
          n = n === void 0 ? f : Math.min(n, f), s = s === void 0 ? g : Math.max(s, g);
        }
      }
  }
  if (n !== void 0 && s !== void 0)
    return {
      start: n,
      end: s
    };
}
function Uur(e, t, r, i) {
  const n = Math.max(e, r), s = Math.min(t, i);
  if (!(n > s))
    return {
      start: n,
      end: s
    };
}
function qur(e, t) {
  return !(t.start.line < e.start.line || t.end.line > e.end.line || t.start.line === e.start.line && t.start.character < e.start.character || t.end.line === e.end.line && t.end.character > e.end.character);
}
function Vur(e, t) {
  return e.start.line === t.start.line && e.start.character === t.start.character && e.end.line === t.end.line && e.end.character === t.end.character;
}
function Wur(e) {
  return {
    getText: (t, r) => e.substring(t, r),
    getLength: () => e.length,
    getChangeRange: () => {
    }
  };
}
function Hur(e) {
  return new Promise((t) => setTimeout(t, e));
}
var wi = {};
Object.defineProperty(wi, "__esModule", { value: !0 });
wi.transformDocumentLinkTarget = MTe;
wi.transformMarkdown = xj;
wi.transformCompletionItem = RTe;
wi.transformCompletionList = Kur;
wi.transformDocumentSymbol = BTe;
wi.transformFoldingRanges = zur;
wi.transformHover = Gur;
wi.transformLocation = FTe;
wi.transformLocations = Yur;
wi.transformSelectionRange = DU;
wi.transformSelectionRanges = Xur;
wi.transformTextEdit = Ej;
wi.transformWorkspaceSymbol = Jur;
wi.transformWorkspaceEdit = Qur;
wi.pushEditToDocumentChanges = jTe;
const U0 = qi, ay = ma, Sy = Er;
function MTe(e, t) {
  var o, l, u;
  let r = ay.URI.parse(e);
  const i = t.decodeEmbeddedDocumentUri(r);
  if (!i)
    return r;
  const n = r.fragment.match(/^L(\d+)(,(\d+))?(-L(\d+)(,(\d+))?)?$/), s = t.language.scripts.get(i[0]), a = (o = s == null ? void 0 : s.generated) == null ? void 0 : o.embeddedCodes.get(i[1]);
  if (r = i[0], n && s && a) {
    const c = t.documents.get(t.encodeEmbeddedDocumentUri(s.id, a.id), a.languageId, a.snapshot);
    for (const [f, h] of t.language.maps.forEach(a)) {
      if (!h.mappings.some((T) => (0, U0.isDocumentLinkEnabled)(T.data)))
        continue;
      const g = [t.documents.get(f.id, f.languageId, f.snapshot), c, h], y = Number(n[1]) - 1, v = Number((l = n[3]) != null ? l : 1) - 1;
      if (n[5] !== void 0) {
        const T = Number(n[5]) - 1, S = Number((u = n[7]) != null ? u : 1) - 1, P = (0, Sy.getSourceRange)(g, {
          start: { line: y, character: v },
          end: { line: T, character: S }
        });
        if (P) {
          r = r.with({
            fragment: "L" + (P.start.line + 1) + "," + (P.start.character + 1) + "-L" + (P.end.line + 1) + "," + (P.end.character + 1)
          });
          break;
        }
      } else {
        let T = !1;
        for (const S of (0, Sy.getSourcePositions)(g, { line: y, character: v })) {
          T = !0, r = r.with({
            fragment: "L" + (S.line + 1) + "," + (S.character + 1)
          });
          break;
        }
        if (T)
          break;
      }
    }
  }
  return r;
}
function xj(e, t) {
  return e.replace(/(?!\()volar-embedded-content:\/\/\w+\/[^)]+/g, (r) => {
    const i = r.split("|");
    return i[0] = MTe(i[0], t).toString(), i.join("|");
  });
}
function RTe(e, t, r, i) {
  var n;
  return zr($t({}, e), {
    additionalTextEdits: (n = e.additionalTextEdits) == null ? void 0 : n.map((s) => Ej(s, t, r)).filter((s) => !!s),
    textEdit: e.textEdit ? Ej(e.textEdit, t, r) : void 0,
    documentation: e.documentation ? typeof e.documentation == "string" ? xj(e.documentation, i) : e.documentation.kind === "markdown" ? { kind: "markdown", value: xj(e.documentation.value, i) } : e.documentation : void 0
  });
}
function Kur(e, t, r, i) {
  return {
    isIncomplete: e.isIncomplete,
    itemDefaults: e.itemDefaults ? zr($t({}, e.itemDefaults), {
      editRange: e.itemDefaults.editRange ? "replace" in e.itemDefaults.editRange ? {
        insert: t(e.itemDefaults.editRange.insert),
        replace: t(e.itemDefaults.editRange.replace)
      } : t(e.itemDefaults.editRange) : void 0
    }) : void 0,
    items: e.items.map((n) => RTe(n, t, r, i))
  };
}
function BTe(e, t) {
  var n;
  const r = t(e.range);
  if (!r)
    return;
  const i = t(e.selectionRange);
  if (i)
    return zr($t({}, e), {
      range: r,
      selectionRange: i,
      children: (n = e.children) == null ? void 0 : n.map((s) => BTe(s, t)).filter((s) => !!s)
    });
}
function zur(e, t) {
  var i, n;
  const r = [];
  for (const s of e) {
    const a = t({
      start: { line: s.startLine, character: (i = s.startCharacter) != null ? i : 0 },
      end: { line: s.endLine, character: (n = s.endCharacter) != null ? n : 0 }
    });
    a && (s.startLine = a.start.line, s.endLine = a.end.line, s.startCharacter !== void 0 && (s.startCharacter = a.start.character), s.endCharacter !== void 0 && (s.endCharacter = a.end.character), r.push(s));
  }
  return r;
}
function Gur(e, t) {
  if (!(e != null && e.range))
    return e;
  const r = t(e.range);
  if (r)
    return zr($t({}, e), {
      range: r
    });
}
function FTe(e, t) {
  const r = t(e.range);
  if (r)
    return zr($t({}, e), {
      range: r
    });
}
function Yur(e, t) {
  return e.map((r) => FTe(r, t)).filter((r) => !!r);
}
function DU(e, t) {
  const r = t(e.range);
  if (!r)
    return;
  const i = e.parent ? DU(e.parent, t) : void 0;
  return {
    range: r,
    parent: i
  };
}
function Xur(e, t) {
  return e.map((r) => DU(r, t)).filter((r) => !!r);
}
function Ej(e, t, r) {
  if ("range" in e) {
    let i = t(e.range);
    if (i)
      return zr($t({}, e), {
        range: i
      });
    const n = EB(t, e.range, e.newText, r);
    if (n)
      return zr($t({}, e), {
        range: n.range,
        newText: n.newText
      });
  } else if ("replace" in e && "insert" in e) {
    const i = t(e.insert), n = i ? t(e.replace) : void 0;
    if (i && n)
      return zr($t({}, e), {
        insert: i,
        replace: n
      });
    const s = EB(t, e.insert, e.newText, r), a = s ? EB(t, e.replace, e.newText, r) : void 0;
    if (s && a && s.newText === a.newText)
      return zr($t({}, e), {
        insert: s.range,
        replace: a.range,
        newText: s.newText
      });
  }
}
function EB(e, t, r, i) {
  if (t.start.line === t.end.line && t.end.character > t.start.character) {
    let n = t.start.character;
    for (; r.length && t.end.character > n; ) {
      const s = { line: t.start.line, character: t.start.character + 1 };
      if (i.getText({ start: t.start, end: s }) === r[0]) {
        r = r.slice(1), n++;
        const a = e({ start: s, end: t.end });
        if (a)
          return {
            newText: r,
            range: a
          };
      } else
        break;
    }
  }
}
function Jur(e, t) {
  if (!("range" in e.location))
    return e;
  const r = t(e.location);
  if (r)
    return zr($t({}, e), {
      location: r
    });
}
function Qur(e, t, r, i = {}) {
  var a, o, l, u, c, f, h, m, g, y, v, T, S, P, x;
  const n = {};
  let s = !1;
  for (const C in e.changeAnnotations) {
    (a = n.changeAnnotations) != null || (n.changeAnnotations = {});
    const D = e.changeAnnotations[C], w = t.decodeEmbeddedDocumentUri(ay.URI.parse(C)), A = w && t.language.scripts.get(w[0]), I = w && ((o = A == null ? void 0 : A.generated) == null ? void 0 : o.embeddedCodes.get(w[1]));
    if (A && I)
      for (const [L] of t.language.maps.forEach(I)) {
        const O = L.id.toString();
        n.changeAnnotations[O] = D;
        break;
      }
    else
      n.changeAnnotations[C] = D;
  }
  for (const C in e.changes) {
    (l = n.changes) != null || (n.changes = {});
    const D = t.decodeEmbeddedDocumentUri(ay.URI.parse(C)), w = D && t.language.scripts.get(D[0]), A = D && ((u = w == null ? void 0 : w.generated) == null ? void 0 : u.embeddedCodes.get(D[1]));
    if (w && A) {
      const I = t.documents.get(t.encodeEmbeddedDocumentUri(w.id, A.id), A.languageId, A.snapshot);
      for (const [L, O] of t.language.maps.forEach(A)) {
        const F = t.documents.get(L.id, L.languageId, L.snapshot), q = [F, I, O], j = e.changes[C];
        for (const N of j)
          if (r === "rename" || r === "fileName" || r === "codeAction") {
            let M;
            const R = (0, Sy.getSourceRange)(q, N.range, ($) => (M = $, (0, U0.isRenameEnabled)($)));
            R && ((h = (c = n.changes)[f = F.uri]) != null || (c[f] = []), n.changes[F.uri].push({
              newText: (0, U0.resolveRenameEditText)(N.newText, M),
              range: R
            }), s = !0);
          } else {
            const M = (0, Sy.getSourceRange)(q, N.range);
            M && ((y = (m = n.changes)[g = F.uri]) != null || (m[g] = []), n.changes[F.uri].push({ newText: N.newText, range: M }), s = !0);
          }
      }
    } else
      n.changes[C] = e.changes[C], s = !0;
  }
  if (e.documentChanges)
    for (const C of e.documentChanges) {
      (v = n.documentChanges) != null || (n.documentChanges = []);
      let D;
      if ("textDocument" in C) {
        const w = t.decodeEmbeddedDocumentUri(ay.URI.parse(C.textDocument.uri)), A = w && t.language.scripts.get(w[0]), I = w && ((T = A == null ? void 0 : A.generated) == null ? void 0 : T.embeddedCodes.get(w[1]));
        if (A && I) {
          const L = t.documents.get(t.encodeEmbeddedDocumentUri(A.id, I.id), I.languageId, I.snapshot);
          for (const [O, F] of t.language.maps.forEach(I)) {
            const q = t.documents.get(O.id, O.languageId, O.snapshot), j = [q, L, F];
            D = {
              textDocument: {
                uri: q.uri,
                version: (S = i[q.uri]) != null ? S : null
              },
              edits: []
            };
            for (const N of C.edits)
              if (r === "rename" || r === "fileName" || r === "codeAction") {
                let M;
                const R = (0, Sy.getSourceRange)(j, N.range, ($) => (M = $, (0, U0.isRenameEnabled)($)));
                R && D.edits.push({
                  annotationId: "annotationId" in N ? N.annotationId : void 0,
                  newText: (0, U0.resolveRenameEditText)(N.newText, M),
                  range: R
                });
              } else {
                const M = (0, Sy.getSourceRange)(j, N.range);
                M && D.edits.push({
                  annotationId: "annotationId" in N ? N.annotationId : void 0,
                  newText: N.newText,
                  range: M
                });
              }
            D.edits.length || (D = void 0);
          }
        } else
          D = C;
      } else if (C.kind === "create")
        D = C;
      else if (C.kind === "rename") {
        const w = t.decodeEmbeddedDocumentUri(ay.URI.parse(C.oldUri)), A = w && t.language.scripts.get(w[0]), I = w && ((P = A == null ? void 0 : A.generated) == null ? void 0 : P.embeddedCodes.get(w[1]));
        if (I)
          for (const [L] of t.language.maps.forEach(I))
            D = {
              kind: "rename",
              oldUri: L.id.toString(),
              newUri: C.newUri,
              options: C.options,
              annotationId: C.annotationId
            };
        else
          D = C;
      } else if (C.kind === "delete") {
        const w = t.decodeEmbeddedDocumentUri(ay.URI.parse(C.uri)), A = w && t.language.scripts.get(w[0]), I = w && ((x = A == null ? void 0 : A.generated) == null ? void 0 : x.embeddedCodes.get(w[1]));
        if (I)
          for (const [L] of t.language.maps.forEach(I))
            D = {
              kind: "delete",
              uri: L.id.toString(),
              options: C.options,
              annotationId: C.annotationId
            };
        else
          D = C;
      }
      D && (jTe(n.documentChanges, D), s = !0);
    }
  if (s)
    return n;
}
function jTe(e, t) {
  const r = e.find((i) => "textDocument" in i && "textDocument" in t && i.textDocument.uri === t.textDocument.uri);
  r ? r.edits.push(...t.edits) : e.push(t);
}
Object.defineProperty(NU, "__esModule", { value: !0 });
NU.register = icr;
const Zur = qi, ecr = Dr, tcr = Ha, rcr = zn, bre = Er, vre = wi;
function icr(e) {
  return (s, a, o, ...l) => hr(this, [s, a, o, ...l], function* (t, r, i, n = ecr.NoneCancellationToken) {
    if (!e.language.scripts.get(t))
      return;
    const c = /* @__PURE__ */ new WeakSet();
    return yield (0, bre.languageFeatureWorker)(e, t, () => ({ range: r, codeActionContext: i }), function* (f) {
      const h = {
        diagnostics: (0, vre.transformLocations)(i.diagnostics, (g) => (0, bre.getGeneratedRange)(f, g)),
        only: i.only
      }, m = (0, tcr.findOverlapCodeRange)(f[0].offsetAt(r.start), f[0].offsetAt(r.end), f[2], Zur.isCodeActionsEnabled);
      m && (yield {
        range: {
          start: f[1].positionAt(m.start),
          end: f[1].positionAt(m.end)
        },
        codeActionContext: h
      });
    }, (y, v, T) => hr(this, [y, v, T], function* (f, h, { range: m, codeActionContext: g }) {
      var C, D;
      if (n.isCancellationRequested)
        return;
      const S = e.plugins.indexOf(f), P = g.diagnostics.filter((w) => {
        const A = w.data;
        return A && A.version !== h.version ? !1 : (A == null ? void 0 : A.pluginIndex) === S;
      }).map((w) => {
        const A = w.data;
        return $t($t({}, w), A.original);
      }), x = yield (D = (C = f[1]).provideCodeActions) == null ? void 0 : D.call(C, h, m, zr($t({}, g), {
        diagnostics: P
      }), n);
      if (x == null || x.forEach((w) => {
        f[1].resolveCodeAction ? w.data = {
          uri: t.toString(),
          version: h.version,
          original: {
            data: w.data,
            edit: w.edit
          },
          pluginIndex: e.plugins.indexOf(f)
        } : delete w.data;
      }), x && f[1].transformCodeAction)
        for (let w = 0; w < x.length; w++) {
          const A = f[1].transformCodeAction(x[w]);
          A && (x[w] = A, c.add(A));
        }
      return x;
    }), (f) => f.map((h) => {
      if (c.has(h))
        return h;
      if (h.edit) {
        const m = (0, vre.transformWorkspaceEdit)(h.edit, e, "codeAction");
        if (!m)
          return;
        h.edit = m;
      }
      return h;
    }).filter((h) => !!h), (f) => rcr.withCodeAction(f.flat()));
  });
}
var LU = {};
Object.defineProperty(LU, "__esModule", { value: !0 });
LU.register = scr;
const Tre = qi, ncr = Dr, Sre = Er;
function scr(e) {
  return (i, ...n) => hr(this, [i, ...n], function* (t, r = ncr.NoneCancellationToken) {
    var s;
    return (s = yield (0, Sre.documentFeatureWorker)(e, t, (a) => a[2].mappings.some((o) => (0, Tre.isCodeLensEnabled)(o.data)), (a, o) => hr(this, null, function* () {
      var h, m, g, y;
      if (r.isCancellationRequested)
        return;
      let l = yield (m = (h = a[1]).provideCodeLenses) == null ? void 0 : m.call(h, o, r);
      const u = e.plugins.indexOf(a);
      l == null || l.forEach((v) => {
        a[1].resolveCodeLens ? v.data = {
          kind: "normal",
          uri: t.toString(),
          original: {
            data: v.data
          },
          pluginIndex: u
        } : delete v.data;
      });
      const c = yield (y = (g = a[1]).provideReferencesCodeLensRanges) == null ? void 0 : y.call(g, o, r), f = c == null ? void 0 : c.map((v) => ({
        range: v,
        data: {
          kind: "references",
          sourceFileUri: t.toString(),
          workerFileUri: o.uri,
          workerFileRange: v,
          pluginIndex: u
        }
      }));
      return l = [
        ...l != null ? l : [],
        ...f != null ? f : []
      ], l;
    }), (a, o) => o ? a.map((l) => {
      const u = (0, Sre.getSourceRange)(o, l.range, Tre.isCodeLensEnabled);
      if (u)
        return zr($t({}, l), {
          range: u
        });
    }).filter((l) => !!l) : a, (a) => a.flat())) != null ? s : [];
  });
}
var MU = {};
Object.defineProperty(MU, "__esModule", { value: !0 });
MU.register = lcr;
const acr = qi, ocr = Dr, z1 = Er;
function lcr(e) {
  return (t, r, i, n = ocr.NoneCancellationToken) => (0, z1.languageFeatureWorker)(e, t, () => i, function* (s) {
    for (const a of (0, z1.getGeneratedRanges)(s, i, acr.isColorEnabled))
      yield a;
  }, (s, a, o) => {
    var l, u;
    if (!n.isCancellationRequested)
      return (u = (l = s[1]).provideColorPresentations) == null ? void 0 : u.call(l, a, r, o, n);
  }, (s, a) => a ? s.map((o) => {
    if (o.textEdit) {
      const l = (0, z1.getSourceRange)(a, o.textEdit.range);
      if (!l)
        return;
      o.textEdit.range = l;
    }
    if (o.additionalTextEdits)
      for (const l of o.additionalTextEdits) {
        const u = (0, z1.getSourceRange)(a, l.range);
        if (!u)
          return;
        l.range = u;
      }
    return o;
  }).filter((o) => !!o) : s);
}
var RU = {};
Object.defineProperty(RU, "__esModule", { value: !0 });
RU.register = pcr;
const PB = qi, ucr = ma, ccr = Dr, h0 = Er, xre = wi;
function pcr(e) {
  let t;
  return (a, o, ...l) => hr(this, [a, o, ...l], function* (r, i, n = { triggerKind: 1 }, s = ccr.NoneCancellationToken) {
    var g, y, v, T;
    let u, c;
    const f = e.decodeEmbeddedDocumentUri(r);
    if (f ? u = (y = (g = e.language.scripts.get(f[0])) == null ? void 0 : g.generated) == null ? void 0 : y.embeddedCodes.get(f[1]) : (c = e.language.scripts.get(r), u = c), !u)
      return {
        isIncomplete: !1,
        items: []
      };
    if ((n == null ? void 0 : n.triggerKind) === 3 && (t == null ? void 0 : t.uri.toString()) === r.toString())
      for (const S of t.results) {
        if (!((v = S.list) != null && v.isIncomplete))
          continue;
        const P = e.plugins.findIndex((x) => x[1] === S.plugin);
        if (S.embeddedDocumentUri) {
          const x = e.decodeEmbeddedDocumentUri(S.embeddedDocumentUri), C = x && e.language.scripts.get(x[0]), D = x && ((T = C == null ? void 0 : C.generated) == null ? void 0 : T.embeddedCodes.get(x[1]));
          if (!C || !D)
            continue;
          const w = e.documents.get(e.encodeEmbeddedDocumentUri(C.id, D.id), D.languageId, D.snapshot);
          for (const [A, I] of e.language.maps.forEach(D)) {
            const O = [e.documents.get(A.id, A.languageId, A.snapshot), w, I];
            for (const F of (0, h0.getGeneratedPositions)(O, i, (q) => (0, PB.isCompletionEnabled)(q)))
              if (S.plugin.provideCompletionItems && (S.list = yield S.plugin.provideCompletionItems(w, F, n, s), !!S.list)) {
                for (const q of S.list.items)
                  S.plugin.resolveCompletionItem ? q.data = {
                    uri: r.toString(),
                    original: {
                      additionalTextEdits: q.additionalTextEdits,
                      textEdit: q.textEdit,
                      data: q.data
                    },
                    pluginIndex: P,
                    embeddedDocumentUri: w.uri
                  } : delete q.data;
                S.list = (0, xre.transformCompletionList)(S.list, (q) => (0, h0.getSourceRange)(O, q), w, e);
              }
          }
        } else {
          if (!S.plugin.provideCompletionItems)
            continue;
          const x = e.documents.get(r, u.languageId, u.snapshot);
          if (S.list = yield S.plugin.provideCompletionItems(x, i, n, s), !S.list)
            continue;
          for (const C of S.list.items)
            S.plugin.resolveCompletionItem ? C.data = {
              uri: r.toString(),
              original: {
                additionalTextEdits: C.additionalTextEdits,
                textEdit: C.textEdit,
                data: C.data
              },
              pluginIndex: P,
              embeddedDocumentUri: void 0
            } : delete C.data;
        }
      }
    else {
      t = {
        uri: r,
        results: []
      };
      let S = !0, P;
      const x = [...e.plugins].filter((D) => !e.disabledServicePlugins.has(D[1])).sort((D, w) => h(D[1], w[1])), C = (D, w, A, I) => hr(this, null, function* () {
        var L, O;
        for (const F of x) {
          if (s.isCancellationRequested)
            break;
          if (!F[1].provideCompletionItems || F[1].isAdditionalCompletion && !S || n != null && n.triggerCharacter && !((O = (L = F[0].capabilities.completionProvider) == null ? void 0 : L.triggerCharacters) != null && O.includes(n.triggerCharacter)))
            continue;
          const q = I && typeof I.completion == "object" && I.completion.isAdditional || F[1].isAdditionalCompletion;
          if (P && (!q || P !== D.uri) || F[1].isAdditionalCompletion && (t != null && t.results.some((M) => M.plugin === F[1])))
            continue;
          let j = yield F[1].provideCompletionItems(D, w, n, s);
          if (!j || !j.items.length)
            continue;
          typeof (I == null ? void 0 : I.completion) == "object" && I.completion.onlyImport && (j.items = j.items.filter((M) => !!M.labelDetails)), q || (P = D.uri);
          const N = e.plugins.indexOf(F);
          for (const M of j.items)
            F[1].resolveCompletionItem ? M.data = {
              uri: r.toString(),
              original: {
                additionalTextEdits: M.additionalTextEdits,
                textEdit: M.textEdit,
                data: M.data
              },
              pluginIndex: N,
              embeddedDocumentUri: A ? D.uri : void 0
            } : delete M.data;
          A && (j = (0, xre.transformCompletionList)(j, (M) => (0, h0.getSourceRange)(A, M, PB.isCompletionEnabled), D, e)), t == null || t.results.push({
            embeddedDocumentUri: A ? ucr.URI.parse(D.uri) : void 0,
            plugin: F[1],
            list: j
          });
        }
        S = !1;
      });
      if (c != null && c.generated)
        for (const D of (0, h0.forEachEmbeddedDocument)(e, c, c.generated.root)) {
          let w;
          for (const A of (0, h0.getGeneratedPositions)(D, i, (I) => (w = I, (0, PB.isCompletionEnabled)(I))))
            yield C(D[1], A, D, w);
        }
      else {
        const D = e.documents.get(r, u.languageId, u.snapshot);
        yield C(D, i);
      }
    }
    return m(t.results.map((S) => S.list));
    function h(S, P) {
      return (P.isAdditionalCompletion ? -1 : 1) - (S.isAdditionalCompletion ? -1 : 1);
    }
    function m(S) {
      var P;
      return {
        isIncomplete: S.some((x) => x == null ? void 0 : x.isIncomplete),
        itemDefaults: (P = S.find((x) => x == null ? void 0 : x.itemDefaults)) == null ? void 0 : P.itemDefaults,
        items: S.map((x) => {
          var C;
          return (C = x == null ? void 0 : x.items) != null ? C : [];
        }).flat()
      };
    }
  });
}
var BU = {};
Object.defineProperty(BU, "__esModule", { value: !0 });
BU.register = hcr;
const Ere = ma, fcr = Dr, Pre = zn, oy = Er;
function hcr(e, t, r) {
  return (i, n, s = fcr.NoneCancellationToken) => (0, oy.languageFeatureWorker)(e, i, () => n, (a) => (0, oy.getGeneratedPositions)(a, n, r), (a, o, l) => hr(this, null, function* () {
    if (s.isCancellationRequested)
      return;
    const u = Pre.createLocationSet(), c = [];
    return yield f(o, l, void 0), c;
    function f(h, m, g) {
      return hr(this, null, function* () {
        var T, S;
        const y = a[1][t];
        if (!y || u.has({ uri: h.uri, range: { start: m, end: m } }))
          return;
        u.add({ uri: h.uri, range: { start: m, end: m } });
        const v = (T = yield y == null ? void 0 : y(h, m, s)) != null ? T : [];
        for (const P of v) {
          let x = !1;
          u.add({ uri: P.targetUri, range: { start: P.targetRange.start, end: P.targetRange.start } });
          const C = e.decodeEmbeddedDocumentUri(Ere.URI.parse(P.targetUri)), D = C && e.language.scripts.get(C[0]), w = C && ((S = D == null ? void 0 : D.generated) == null ? void 0 : S.embeddedCodes.get(C[1])), A = w && D ? e.language.linkedCodeMaps.get(w) : void 0;
          if (D && w && A) {
            const I = e.documents.get(e.encodeEmbeddedDocumentUri(D.id, w.id), w.languageId, w.snapshot);
            for (const L of (0, oy.getLinkedCodePositions)(I, A, P.targetSelectionRange.start))
              u.has({ uri: I.uri, range: { start: L, end: L } }) || (x = !0, yield f(I, L, g != null ? g : P));
          }
          x || (g ? c.push(zr($t({}, P), {
            originSelectionRange: g.originSelectionRange
          })) : c.push(P));
        }
      });
    }
  }), (a, o) => a.map((l) => {
    var m;
    if (l.originSelectionRange && o) {
      const g = dcr(o, l.originSelectionRange, n);
      if (!g)
        return;
      l.originSelectionRange = g;
    }
    let u = !1;
    const c = e.decodeEmbeddedDocumentUri(Ere.URI.parse(l.targetUri)), f = c && e.language.scripts.get(c[0]), h = c && ((m = f == null ? void 0 : f.generated) == null ? void 0 : m.embeddedCodes.get(c[1]));
    if (f && h) {
      const g = e.documents.get(e.encodeEmbeddedDocumentUri(f.id, h.id), h.languageId, h.snapshot);
      for (const [y, v] of e.language.maps.forEach(h)) {
        const T = e.documents.get(y.id, y.languageId, y.snapshot), S = [T, g, v], P = (0, oy.getSourceRange)(S, l.targetSelectionRange);
        if (!P)
          continue;
        u = !0;
        let x = (0, oy.getSourceRange)(S, l.targetRange);
        l.targetUri = T.uri, l.targetRange = x != null ? x : P, l.targetSelectionRange = P;
      }
      if (t === "provideDefinition" && !u) {
        for (const [y] of e.language.maps.forEach(h))
          if (y.id.toString() !== i.toString())
            return zr($t({}, l), {
              targetUri: y.id.toString(),
              targetRange: {
                start: { line: 0, character: 0 },
                end: { line: 0, character: 0 }
              },
              targetSelectionRange: {
                start: { line: 0, character: 0 },
                end: { line: 0, character: 0 }
              }
            });
        return;
      }
    }
    return l;
  }).filter((l) => !!l), (a) => Pre.withLocationLinks(a.flat()));
}
function dcr(e, t, r) {
  let i;
  for (const n of (0, oy.getSourceRanges)(e, t))
    if (i || (i = n), (n.start.line < r.line || n.start.line === r.line && n.start.character <= r.character) && (n.end.line > r.line || n.end.line === r.line && n.end.character >= r.character))
      return n;
  return i;
}
var Vf = {}, IS = {};
Object.defineProperty(IS, "__esModule", { value: !0 });
IS.createUriMap = mcr;
function mcr(e = !1) {
  const t = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
  return {
    get size() {
      return t.size;
    },
    get [Symbol.toStringTag]() {
      return "UriMap";
    },
    [Symbol.iterator]() {
      return this.entries();
    },
    clear() {
      return r.clear(), i.clear(), t.clear();
    },
    values() {
      return t.values();
    },
    *keys() {
      for (const s of t.keys())
        yield i.get(s);
    },
    *entries() {
      for (const [s, a] of t.entries())
        yield [i.get(s), a];
    },
    forEach(s, a) {
      for (const [o, l] of this.entries())
        s.call(a, l, o, this);
    },
    delete(s) {
      return t.delete(n(s));
    },
    get(s) {
      return t.get(n(s));
    },
    has(s) {
      return t.has(n(s));
    },
    set(s, a) {
      return t.set(n(s), a), this;
    }
  };
  function n(s) {
    const a = s.toString();
    if (!r.has(a)) {
      let o = s.toString();
      e || (o = o.toLowerCase()), r.set(a, o), i.set(o, s);
    }
    return r.get(a);
  }
}
Object.defineProperty(Vf, "__esModule", { value: !0 });
Vf.errorMarkups = void 0;
Vf.register = Tcr;
Vf.transformDiagnostic = UTe;
Vf.updateRange = qTe;
const Pj = qi, ycr = ma, gcr = Dr, bcr = Ha, vcr = zn, wj = Er, $Te = IS;
Vf.errorMarkups = (0, $Te.createUriMap)();
function Tcr(e) {
  var i, n;
  const t = (0, $Te.createUriMap)(), r = {
    semantic: /* @__PURE__ */ new Map(),
    syntactic: /* @__PURE__ */ new Map()
  };
  return (n = (i = e.env).onDidChangeConfiguration) == null || n.call(i, () => {
    t.clear(), r.semantic.clear(), r.syntactic.clear();
  }), (l, u, ...c) => hr(this, [l, u, ...c], function* (s, a, o = gcr.NoneCancellationToken) {
    var C, D, w;
    let f;
    const h = e.decodeEmbeddedDocumentUri(s);
    if (h ? f = (D = (C = e.language.scripts.get(h[0])) == null ? void 0 : C.generated) == null ? void 0 : D.embeddedCodes.get(h[1]) : f = e.language.scripts.get(s), !f)
      return [];
    const m = e.documents.get(s, f.languageId, f.snapshot), g = (w = t.get(s)) != null ? w : t.set(s, {
      semantic: { errors: [] },
      syntactic: { errors: [] }
    }).get(s);
    let y = !1, v = !1, T = 0;
    for (const A of Object.values(g)) {
      const I = A.snapshot, L = A.document, O = I ? f.snapshot.getChangeRange(I) : void 0;
      if (A.snapshot = f.snapshot, A.document = m, !y && L && O) {
        const F = {
          range: {
            start: L.positionAt(O.span.start),
            end: L.positionAt(O.span.start + O.span.length)
          },
          newEnd: m.positionAt(O.span.start + O.newLength)
        };
        for (const q of A.errors)
          if (!qTe(q.range, F)) {
            y = !0;
            break;
          }
      }
    }
    return yield x("syntactic", r.syntactic, g.syntactic), S(), yield x("semantic", r.semantic, g.semantic), P();
    function S() {
      v && !y && (a == null || a(P()), v = !1);
    }
    function P() {
      return Object.values(g).flatMap(({ errors: A }) => A);
    }
    function x(A, I, L) {
      return hr(this, null, function* () {
        const O = yield (0, wj.documentFeatureWorker)(e, s, (F) => F[2].mappings.some((q) => (0, Pj.isDiagnosticsEnabled)(q.data)), (F, q) => hr(this, null, function* () {
          var V, K, z, W;
          const j = (V = F[0].capabilities.diagnosticProvider) == null ? void 0 : V.interFileDependencies;
          if (A === "semantic" !== j || (Date.now() - T >= 10 && (yield (0, bcr.sleep)(10), T = Date.now()), o.isCancellationRequested))
            return;
          const N = e.plugins.indexOf(F), M = (K = I.get(N)) != null ? K : I.set(N, /* @__PURE__ */ new Map()).get(N), R = M.get(q.uri);
          if (!j && R && R.documentVersion === q.version)
            return R.errors;
          const $ = (yield (W = (z = F[1]).provideDiagnostics) == null ? void 0 : W.call(z, q, o)) || [];
          return $.forEach((Y) => {
            Y.data = {
              uri: s.toString(),
              version: q.version,
              pluginIndex: N,
              isFormat: !1,
              original: {
                data: Y.data
              },
              documentUri: q.uri
            };
          }), v = !0, M.set(q.uri, {
            documentVersion: q.version,
            errors: $
          }), $;
        }), (F, q) => F.map((j) => UTe(e, j, q)).filter((j) => !!j), (F) => vcr.withDiagnostics(F.flat()));
        O && (L.errors = O, L.snapshot = f == null ? void 0 : f.snapshot);
      });
    }
  });
}
function UTe(e, t, r) {
  var n;
  let i = $t({}, t);
  if (r) {
    const s = (0, wj.getSourceRange)(r, t.range, (a) => (0, Pj.shouldReportDiagnostics)(a, t.source, t.code));
    if (!s)
      return;
    i.range = s;
  }
  if (i.relatedInformation) {
    const s = [];
    for (const a of i.relatedInformation) {
      const o = e.decodeEmbeddedDocumentUri(ycr.URI.parse(a.location.uri)), l = o && e.language.scripts.get(o[0]), u = o && ((n = l == null ? void 0 : l.generated) == null ? void 0 : n.embeddedCodes.get(o[1]));
      if (l && u) {
        const c = e.documents.get(e.encodeEmbeddedDocumentUri(l.id, u.id), u.languageId, u.snapshot);
        for (const [f, h] of e.language.maps.forEach(u)) {
          const m = e.documents.get(f.id, f.languageId, f.snapshot), g = [m, c, h], y = (0, wj.getSourceRange)(g, a.location.range, (v) => (0, Pj.shouldReportDiagnostics)(v, void 0, void 0));
          y && s.push({
            location: {
              uri: m.uri,
              range: y
            },
            message: a.message
          });
        }
      } else
        s.push(a);
    }
    i.relatedInformation = s;
  }
  return i;
}
function qTe(e, t) {
  if (wre(e.start, t, !1) && wre(e.end, t, !0))
    return e.end.line === e.start.line && e.end.character <= e.start.character && e.end.character++, e;
}
function wre(e, t, r) {
  if (t.range.end.line > e.line) {
    if (t.newEnd.line > e.line)
      return !0;
    if (t.newEnd.line === e.line)
      return e.character = Math.min(e.character, t.newEnd.character), !0;
    if (t.newEnd.line < e.line)
      return e.line = t.newEnd.line, e.character = t.newEnd.character, !0;
  } else if (t.range.end.line === e.line) {
    const i = t.newEnd.character - t.range.end.character;
    if (e.character >= t.range.end.character) {
      if (t.newEnd.line !== t.range.end.line)
        e.line = t.newEnd.line, e.character = t.newEnd.character + e.character - t.range.end.character;
      else if (r ? t.range.end.character < e.character : t.range.end.character <= e.character)
        e.character += i;
      else {
        const n = t.range.end.character - e.character;
        -i > n && (e.character += i + n);
      }
      return !0;
    } else {
      if (t.newEnd.line === t.range.end.line) {
        const n = t.range.end.character - e.character;
        -i > n && (e.character += i + n);
      } else
        t.newEnd.line < t.range.end.line && (e.line = t.newEnd.line, e.character = t.newEnd.character);
      return !0;
    }
  } else if (t.range.end.line < e.line)
    return e.line += t.newEnd.line - t.range.end.line, !0;
  return !1;
}
var FU = {};
Object.defineProperty(FU, "__esModule", { value: !0 });
FU.register = xcr;
const Are = qi, Scr = Dr, Cre = Er;
function xcr(e) {
  return (t, r = Scr.NoneCancellationToken) => (0, Cre.documentFeatureWorker)(e, t, (i) => i[2].mappings.some((n) => (0, Are.isColorEnabled)(n.data)), (i, n) => {
    var s, a;
    if (!r.isCancellationRequested)
      return (a = (s = i[1]).provideDocumentColors) == null ? void 0 : a.call(s, n, r);
  }, (i, n) => n ? i.map((s) => {
    const a = (0, Cre.getSourceRange)(n, s.range, Are.isColorEnabled);
    if (a)
      return {
        range: a,
        color: s.color
      };
  }).filter((s) => !!s) : i, (i) => i.flat());
}
var jU = {};
Object.defineProperty(jU, "__esModule", { value: !0 });
jU.register = wcr;
const Ecr = Dr, _re = Er, Pcr = wi;
function wcr(e) {
  return (t, r, i, n = Ecr.NoneCancellationToken) => (0, _re.languageFeatureWorker)(e, t, () => r, function* (s) {
    for (const a of (0, _re.getGeneratedPositions)(s, r))
      yield a;
  }, (s, a, o) => {
    var l, u;
    if (!n.isCancellationRequested)
      return (u = (l = s[1]).provideDocumentDropEdits) == null ? void 0 : u.call(l, a, o, i, n);
  }, (s) => (s.additionalEdit && (s.additionalEdit = (0, Pcr.transformWorkspaceEdit)(s.additionalEdit, e, void 0)), s));
}
var $U = {};
Object.defineProperty($U, "__esModule", { value: !0 });
$U.register = Ccr;
const G1 = qi, Ire = oL, Y1 = ma, Acr = Dr, kre = Ha, Ore = Er;
function Ccr(e) {
  return (a, o, l, u, ...c) => hr(this, [a, o, l, u, ...c], function* (t, r, i, n, s = Acr.NoneCancellationToken) {
    var T, S, P, x, C, D, w;
    const f = e.language.scripts.get(t);
    if (!f)
      return;
    let h = e.documents.get(t, f.languageId, f.snapshot);
    if (i != null || (i = {
      start: h.positionAt(0),
      end: h.positionAt(h.getText().length)
    }), !f.generated)
      return n ? (T = yield v(h, h, f, void 0, 0, n.position, n.ch)) == null ? void 0 : T.edits : (S = yield v(h, h, f, void 0, 0, i, void 0)) == null ? void 0 : S.edits;
    const m = /* @__PURE__ */ new Map(), g = h.offsetAt(i.start), y = h.offsetAt(i.end);
    for (const A of (0, G1.forEachEmbeddedCode)(f.generated.root)) {
      const I = e.language.maps.get(A, f);
      if (I) {
        const L = (0, kre.findOverlapCodeRange)(g, y, I, G1.isFormattingEnabled);
        if (L) {
          L.start === I.mappings[0].generatedOffsets[0] && (L.start = 0);
          const O = I.mappings[I.mappings.length - 1];
          L.end === O.generatedOffsets[O.generatedOffsets.length - 1] + ((P = O.generatedLengths) != null ? P : O.lengths)[O.lengths.length - 1] && (L.end = A.snapshot.getLength()), m.set(A.id, L);
        }
      }
    }
    try {
      const A = h;
      let I = f.snapshot, L = (C = (x = e.language.scripts.set(Y1.URI.parse(f.id.toString() + ".tmp"), f.snapshot, f.languageId, [f.generated.languagePlugin])) == null ? void 0 : x.generated) == null ? void 0 : C.root;
      if (!L)
        return;
      let O = [];
      for (let j = 0; (O = _cr(e, f.id, L, j)).length > 0; j++) {
        let N = [];
        for (const M of O) {
          if (!M.mappings.some((z) => (0, G1.isFormattingEnabled)(z.data)))
            continue;
          const R = m.get(M.id);
          if (!R || [...(0, G1.forEachEmbeddedCode)(M)].some((z) => {
            if (z === M)
              return !1;
            const W = m.get(z.id);
            return W && W.end - W.start >= R.end - R.start;
          }))
            continue;
          const V = [
            e.documents.get(t, f.languageId, I),
            e.documents.get(e.encodeEmbeddedDocumentUri(t, M.id), M.languageId, M.snapshot),
            e.language.mapperFactory(M.mappings)
          ];
          let K;
          if (n)
            for (const z of (0, Ore.getGeneratedPositions)(V, n.position)) {
              K = yield v(V[0], V[1], f, M, j, z, n.ch);
              break;
            }
          else
            R && (K = yield v(V[0], V[1], f, M, j, {
              start: V[1].positionAt(R.start),
              end: V[1].positionAt(R.end)
            }));
          if (K)
            for (const z of K.edits) {
              const W = (0, Ore.getSourceRange)(V, z.range);
              W && N.push({
                newText: z.newText,
                range: W
              });
            }
        }
        if (N.length > 0) {
          const M = Ire.TextDocument.applyEdits(h, N);
          if (h = Ire.TextDocument.create(h.uri, h.languageId, h.version + 1, M), I = (0, kre.stringToSnapshot)(M), L = (w = (D = e.language.scripts.set(Y1.URI.parse(f.id.toString() + ".tmp"), I, f.languageId, [f.generated.languagePlugin])) == null ? void 0 : D.generated) == null ? void 0 : w.root, !L)
            break;
        }
      }
      return h.getText() === A.getText() ? void 0 : [{
        range: {
          start: A.positionAt(0),
          end: A.positionAt(A.getText().length)
        },
        newText: h.getText()
      }];
    } finally {
      e.language.scripts.delete(Y1.URI.parse(f.id.toString() + ".tmp"));
    }
    function v(A, I, L, O, F, q, j) {
      return hr(this, null, function* () {
        var M, R, $, V, K, z, W, Y, G;
        if (e.disabledEmbeddedDocumentUris.get(Y1.URI.parse(I.uri)))
          return;
        let N;
        if (q != null || (q = {
          start: I.positionAt(0),
          end: I.positionAt(I.getText().length)
        }), O) {
          if (N = {
            level: F,
            initialIndentLevel: 0
          }, O.mappings.length) {
            const ne = O.mappings[0].sourceOffsets[0], ae = A.positionAt(ne);
            N.initialIndentLevel = Icr(A.getText(), A.offsetAt({ line: ae.line, character: 0 }), r);
          }
          for (const le of e.plugins)
            e.disabledServicePlugins.has(le[1]) || (N = ($ = yield (R = (M = le[1]).resolveEmbeddedCodeFormattingOptions) == null ? void 0 : R.call(M, L, O, N, s)) != null ? $ : N);
        }
        for (const le of e.plugins) {
          if (e.disabledServicePlugins.has(le[1]))
            continue;
          if (s.isCancellationRequested)
            break;
          let ne;
          try {
            j !== void 0 && q && "line" in q && "character" in q ? (K = (V = le[0].capabilities.documentOnTypeFormattingProvider) == null ? void 0 : V.triggerCharacters) != null && K.includes(j) && (ne = yield (W = (z = le[1]).provideOnTypeFormattingEdits) == null ? void 0 : W.call(z, I, q, j, r, N, s)) : j === void 0 && q && "start" in q && "end" in q && (ne = yield (G = (Y = le[1]).provideDocumentFormattingEdits) == null ? void 0 : G.call(Y, I, q, r, N, s));
          } catch (ae) {
            console.warn(ae);
          }
          if (ne)
            return {
              plugin: le,
              edits: ne
            };
        }
      });
    }
  });
}
function _cr(e, t, r, i) {
  const n = [[r]];
  for (; ; ) {
    if (n.length > i)
      return n[i];
    const s = [];
    for (const a of n[n.length - 1])
      if (a.embeddedCodes)
        for (const o of a.embeddedCodes)
          e.disabledEmbeddedDocumentUris.get(e.encodeEmbeddedDocumentUri(t, o.id)) || s.push(o);
    n.push(s);
  }
}
function Icr(e, t, r) {
  let i = 0;
  const n = r.tabSize || 4;
  for (; t < e.length; ) {
    const s = e.charAt(t);
    if (s === " ")
      i++;
    else if (s === "	")
      i += n;
    else
      break;
    t++;
  }
  return Math.floor(i / n);
}
var UU = {};
Object.defineProperty(UU, "__esModule", { value: !0 });
UU.register = Dcr;
const Nre = qi, kcr = ma, Ocr = Dr, Ncr = zn, X1 = Er;
function Dcr(e) {
  return (t, r, i = Ocr.NoneCancellationToken) => (0, X1.languageFeatureWorker)(e, t, () => r, (n) => (0, X1.getGeneratedPositions)(n, r, Nre.isHighlightEnabled), (n, s, a) => hr(this, null, function* () {
    if (i.isCancellationRequested)
      return;
    const o = Ncr.createLocationSet(), l = [];
    return yield u(s, a), l;
    function u(c, f) {
      return hr(this, null, function* () {
        var m, g;
        if (!n[1].provideDocumentHighlights || o.has({ uri: c.uri, range: { start: f, end: f } }))
          return;
        o.add({ uri: c.uri, range: { start: f, end: f } });
        const h = (m = yield n[1].provideDocumentHighlights(c, f, i)) != null ? m : [];
        for (const y of h) {
          let v = !1;
          o.add({ uri: c.uri, range: { start: y.range.start, end: y.range.start } });
          const T = e.decodeEmbeddedDocumentUri(kcr.URI.parse(c.uri)), S = T && e.language.scripts.get(T[0]), P = T && ((g = S == null ? void 0 : S.generated) == null ? void 0 : g.embeddedCodes.get(T[1])), x = P && S ? e.language.linkedCodeMaps.get(P) : void 0;
          if (S && P && x) {
            const C = e.documents.get(e.encodeEmbeddedDocumentUri(S.id, P.id), P.languageId, P.snapshot);
            for (const D of (0, X1.getLinkedCodePositions)(C, x, y.range.start))
              o.has({ uri: C.uri, range: { start: D, end: D } }) || (v = !0, yield u(C, D));
          }
          v || l.push(y);
        }
      });
    }
  }), (n, s) => n.map((a) => {
    if (!s)
      return a;
    const o = (0, X1.getSourceRange)(s, a.range, Nre.isHighlightEnabled);
    if (o)
      return zr($t({}, a), {
        range: o
      });
  }).filter((a) => !!a), (n) => n.flat());
}
var qU = {};
Object.defineProperty(qU, "__esModule", { value: !0 });
qU.register = Rcr;
const Dre = qi, Lcr = Dr, Lre = Er, Mcr = wi;
function Rcr(e) {
  return (i, ...n) => hr(this, [i, ...n], function* (t, r = Lcr.NoneCancellationToken) {
    var s;
    return (s = yield (0, Lre.documentFeatureWorker)(e, t, (a) => a[2].mappings.some((o) => (0, Dre.isDocumentLinkEnabled)(o.data)), (a, o) => hr(this, null, function* () {
      var u, c;
      if (r.isCancellationRequested)
        return;
      const l = yield (c = (u = a[1]).provideDocumentLinks) == null ? void 0 : c.call(u, o, r);
      for (const f of l != null ? l : [])
        a[1].resolveDocumentLink ? f.data = {
          uri: t.toString(),
          original: {
            data: f.data
          },
          pluginIndex: e.plugins.indexOf(a)
        } : delete f.data;
      return l;
    }), (a, o) => o ? a.map((l) => {
      const u = (0, Lre.getSourceRange)(o, l.range, Dre.isDocumentLinkEnabled);
      if (u)
        return l = zr($t({}, l), {
          range: u
        }), l.target && (l.target = (0, Mcr.transformDocumentLinkTarget)(l.target, e).toString()), l;
    }).filter((l) => !!l) : a, (a) => a.flat())) != null ? s : [];
  });
}
var VU = {}, lL = {};
Object.defineProperty(lL, "__esModule", { value: !0 });
lL.SemanticTokensBuilder = void 0;
class Bcr {
  constructor() {
    this.initialize();
  }
  initialize() {
    this._id = Date.now(), this._prevLine = 0, this._prevChar = 0, this._data = [], this._dataLen = 0;
  }
  push(t, r, i, n, s) {
    let a = t, o = r;
    this._dataLen > 0 && (a -= this._prevLine, a === 0 && (o -= this._prevChar)), this._data[this._dataLen++] = a, this._data[this._dataLen++] = o, this._data[this._dataLen++] = i, this._data[this._dataLen++] = n, this._data[this._dataLen++] = s, this._prevLine = t, this._prevChar = r;
  }
  get id() {
    return this._id.toString();
  }
  build() {
    return {
      resultId: this.id,
      data: this._data
    };
  }
}
lL.SemanticTokensBuilder = Bcr;
Object.defineProperty(VU, "__esModule", { value: !0 });
VU.register = Ucr;
const Mre = qi, Fcr = lL, jcr = Dr, $cr = Ha, Rre = Er;
function Ucr(e) {
  return (a, o, l, u, ...c) => hr(this, [a, o, l, u, ...c], function* (t, r, i, n, s = jcr.NoneCancellationToken) {
    const f = e.language.scripts.get(t);
    if (!f)
      return;
    const h = e.documents.get(t, f.languageId, f.snapshot);
    r || (r = {
      start: { line: 0, character: 0 },
      end: { line: h.lineCount - 1, character: h.getText().length }
    });
    const m = yield (0, Rre.languageFeatureWorker)(
      e,
      t,
      () => r,
      function* (g) {
        const y = (0, $cr.findOverlapCodeRange)(g[0].offsetAt(r.start), g[0].offsetAt(r.end), g[2], Mre.isSemanticTokensEnabled);
        y && (yield {
          start: g[1].positionAt(y.start),
          end: g[1].positionAt(y.end)
        });
      },
      (g, y, v) => {
        var T, S;
        if (!(s != null && s.isCancellationRequested))
          return (S = (T = g[1]).provideDocumentSemanticTokens) == null ? void 0 : S.call(T, y, v, i, s);
      },
      (g, y) => y ? g.map((v) => {
        const T = (0, Rre.getSourceRange)(y, {
          start: { line: v[0], character: v[1] },
          end: { line: v[0], character: v[1] + v[2] }
        }, Mre.isSemanticTokensEnabled);
        if (T)
          return [T.start.line, T.start.character, T.end.character - T.start.character, v[3], v[4]];
      }).filter((v) => !!v) : g,
      (g) => g.flat()
      // tokens => reportProgress?.(buildTokens(tokens)), // TODO: this has no effect with LSP
    );
    if (m)
      return qcr(m);
  });
}
function qcr(e) {
  const t = new Fcr.SemanticTokensBuilder(), r = e.sort((i, n) => i[0] - n[0] === 0 ? i[1] - n[1] : i[0] - n[0]);
  for (const i of r)
    t.push(...i);
  return t.build();
}
var WU = {};
Object.defineProperty(WU, "__esModule", { value: !0 });
WU.register = Kcr;
const Bre = qi, Vcr = Dr, Wcr = Ha, Fre = Er, Hcr = wi;
function Kcr(e) {
  return (t, r = Vcr.NoneCancellationToken) => (0, Fre.documentFeatureWorker)(e, t, (i) => i[2].mappings.some((n) => (0, Bre.isSymbolsEnabled)(n.data)), (i, n) => {
    var s, a;
    if (!r.isCancellationRequested)
      return (a = (s = i[1]).provideDocumentSymbols) == null ? void 0 : a.call(s, n, r);
  }, (i, n) => n ? i.map((s) => (0, Hcr.transformDocumentSymbol)(s, (a) => (0, Fre.getSourceRange)(n, a, Bre.isSymbolsEnabled))).filter((s) => !!s) : i, (i) => {
    for (let n = 0; n < i.length; n++)
      for (let s = 0; s < i.length; s++)
        n !== s && (i[n] = i[n].filter((a) => {
          var o;
          for (const l of VTe(i[s]))
            if ((0, Wcr.isInsideRange)(l.range, a.range))
              return (o = l.children) != null || (l.children = []), l.children.push(a), !1;
          return !0;
        }));
    return i.flat();
  });
}
function* VTe(e) {
  for (const t of e)
    t.children && (yield* VTe(t.children)), yield t;
}
var HU = {};
Object.defineProperty(HU, "__esModule", { value: !0 });
HU.register = Jcr;
const zcr = qi, Gcr = ma, Ycr = Dr, Xcr = zn, jre = Er;
function Jcr(e) {
  return (t, r = Ycr.NoneCancellationToken) => (0, jre.documentFeatureWorker)(e, t, () => !0, (i, n) => hr(this, null, function* () {
    var s, a, o;
    if (!r.isCancellationRequested)
      return (o = yield (a = (s = i[1]).provideFileReferences) == null ? void 0 : a.call(s, n, r)) != null ? o : [];
  }), (i) => i.map((n) => {
    var u;
    const s = e.decodeEmbeddedDocumentUri(Gcr.URI.parse(n.uri)), a = s && e.language.scripts.get(s[0]), o = s && ((u = a == null ? void 0 : a.generated) == null ? void 0 : u.embeddedCodes.get(s[1]));
    if (!a || !o)
      return n;
    const l = e.documents.get(e.encodeEmbeddedDocumentUri(a.id, o.id), o.languageId, o.snapshot);
    for (const [c, f] of e.language.maps.forEach(o)) {
      const h = e.documents.get(c.id, c.languageId, c.snapshot), m = [h, l, f], g = (0, jre.getSourceRange)(m, n.range, zcr.isReferencesEnabled);
      if (g)
        return n.uri = h.uri, n.range = g, n;
    }
  }).filter((n) => !!n), (i) => Xcr.withLocations(i.flat()));
}
var KU = {};
Object.defineProperty(KU, "__esModule", { value: !0 });
KU.register = tpr;
const Qcr = Dr, Zcr = zn, epr = wi;
function tpr(e) {
  return (n, s, ...a) => hr(this, [n, s, ...a], function* (t, r, i = Qcr.NoneCancellationToken) {
    for (const o of e.plugins) {
      if (e.disabledServicePlugins.has(o[1]))
        continue;
      if (i.isCancellationRequested)
        break;
      if (!o[1].provideFileRenameEdits)
        continue;
      const l = yield o[1].provideFileRenameEdits(t, r, i);
      if (l) {
        const u = (0, epr.transformWorkspaceEdit)(l, e, "fileName");
        return u != null && u.documentChanges && (u.documentChanges = Zcr.withDocumentChanges(u.documentChanges)), u;
      }
    }
  });
}
var zU = {};
Object.defineProperty(zU, "__esModule", { value: !0 });
zU.register = npr;
const $re = qi, rpr = Dr, Ure = Er, ipr = wi;
function npr(e) {
  return (t, r = rpr.NoneCancellationToken) => (0, Ure.documentFeatureWorker)(e, t, (i) => i[2].mappings.some((n) => (0, $re.isFoldingRangesEnabled)(n.data)), (i, n) => {
    var s, a;
    if (!r.isCancellationRequested)
      return (a = (s = i[1]).provideFoldingRanges) == null ? void 0 : a.call(s, n, r);
  }, (i, n) => n ? (0, ipr.transformFoldingRanges)(i, (s) => (0, Ure.getSourceRange)(n, s, $re.isFoldingRangesEnabled)) : i, (i) => i.flat());
}
var GU = {};
Object.defineProperty(GU, "__esModule", { value: !0 });
GU.register = opr;
const qre = qi, spr = Dr, Vre = Ha, wB = Er, d0 = wi, apr = Vf;
function opr(e) {
  return (s, a, ...o) => hr(this, [s, a, ...o], function* (r, i, n = spr.NoneCancellationToken) {
    let l = yield (0, wB.languageFeatureWorker)(e, r, () => i, (c) => (0, wB.getGeneratedPositions)(c, i, qre.isHoverEnabled), (c, f, h) => {
      var m, g;
      if (!n.isCancellationRequested)
        return (g = (m = c[1]).provideHover) == null ? void 0 : g.call(m, f, h, n);
    }, (c, f) => (!f || !c.range || (c.range = (0, wB.getSourceRange)(f, c.range, qre.isHoverEnabled)), c), (c) => {
      var f, h;
      return {
        contents: {
          kind: "markdown",
          value: c.map(t).flat().join("\n\n---\n\n")
        },
        range: (h = (f = c.find((m) => m.range && (0, Vre.isInsideRange)(m.range, { start: i, end: i }))) == null ? void 0 : f.range) != null ? h : c[0].range
      };
    });
    const u = apr.errorMarkups.get(r);
    if (u)
      for (const c of u)
        (0, Vre.isInsideRange)(c.error.range, { start: i, end: i }) && (l != null || (l = {
          contents: {
            kind: "markdown",
            value: ""
          }
        }), l.range = c.error.range, (typeof l.contents != "object" || typeof l.contents != "string") && (l.contents = {
          kind: "markdown",
          value: l.contents
        }), l.contents.value && (l.contents.value += "\n\n---\n\n"), l.contents.value += c.markup.value);
    return l;
  });
  function t(r) {
    return typeof r.contents == "string" ? [(0, d0.transformMarkdown)(r.contents, e)] : Array.isArray(r.contents) ? r.contents.map((i) => typeof i == "string" ? (0, d0.transformMarkdown)(i, e) : i.language === "md" ? "```".concat(i.language, "\n").concat((0, d0.transformMarkdown)(i.value, e), "\n```") : "```".concat(i.language, "\n").concat(i.value, "\n```")) : "kind" in r.contents ? r.contents.kind === "markdown" ? [(0, d0.transformMarkdown)(r.contents.value, e)] : [r.contents.value] : r.contents.language === "md" ? ["```".concat(r.contents.language, "\n").concat((0, d0.transformMarkdown)(r.contents.value, e), "\n```")] : ["```".concat(r.contents.language, "\n").concat(r.contents.value, "\n```")];
  }
}
var YU = {};
Object.defineProperty(YU, "__esModule", { value: !0 });
YU.register = ppr;
const Wre = qi, lpr = Dr, upr = Ha, AB = Er, cpr = wi;
function ppr(e) {
  return (n, s, ...a) => hr(this, [n, s, ...a], function* (t, r, i = lpr.NoneCancellationToken) {
    if (e.language.scripts.get(t))
      return (0, AB.languageFeatureWorker)(e, t, () => r, function* (l) {
        const u = (0, upr.findOverlapCodeRange)(l[0].offsetAt(r.start), l[0].offsetAt(r.end), l[2], Wre.isInlayHintsEnabled);
        u && (yield {
          start: l[1].positionAt(u.start),
          end: l[1].positionAt(u.end)
        });
      }, (l, u, c) => hr(this, null, function* () {
        var h, m;
        if (i.isCancellationRequested)
          return;
        const f = yield (m = (h = l[1]).provideInlayHints) == null ? void 0 : m.call(h, u, c, i);
        return f == null || f.forEach((g) => {
          l[1].resolveInlayHint ? g.data = {
            uri: t.toString(),
            original: {
              data: g.data
            },
            pluginIndex: e.plugins.indexOf(l)
          } : delete g.data;
        }), f;
      }), (l, u) => u ? l.map((c) => {
        var h;
        const f = (h = c.textEdits) == null ? void 0 : h.map((m) => (0, cpr.transformTextEdit)(m, (g) => (0, AB.getSourceRange)(u, g), u[1])).filter((m) => !!m);
        for (const m of (0, AB.getSourcePositions)(u, c.position, Wre.isInlayHintsEnabled))
          return zr($t({}, c), {
            position: m,
            textEdits: f
          });
      }).filter((c) => !!c) : l, (l) => l.flat());
  });
}
var XU = {};
Object.defineProperty(XU, "__esModule", { value: !0 });
XU.register = dpr;
const fpr = qi, hpr = Dr, Hre = Er;
function dpr(e) {
  return (t, r, i = hpr.NoneCancellationToken) => (0, Hre.languageFeatureWorker)(e, t, () => r, (n) => (0, Hre.getGeneratedPositions)(n, r, fpr.isMonikerEnabled), (n, s, a) => {
    var o, l;
    if (!i.isCancellationRequested)
      return (l = (o = n[1]).provideMoniker) == null ? void 0 : l.call(o, s, a, i);
  }, (n) => n, (n) => n.flat());
}
var JU = {};
Object.defineProperty(JU, "__esModule", { value: !0 });
JU.register = ypr;
const Kre = qi, mpr = Dr, CB = Er;
function ypr(e) {
  return (t, r, i, n = mpr.NoneCancellationToken) => (0, CB.languageFeatureWorker)(e, t, () => r, (s) => (0, CB.getGeneratedRanges)(s, r, Kre.isInlineValueEnabled), (s, a, o) => {
    var l, u;
    if (!n.isCancellationRequested)
      return (u = (l = s[1]).provideInlineValues) == null ? void 0 : u.call(l, a, o, i, n);
  }, (s, a) => a ? s.map((o) => {
    const l = (0, CB.getSourceRange)(a, o.range, Kre.isInlineValueEnabled);
    if (l)
      return o.range = l, o;
  }).filter((o) => !!o) : s, (s) => s.flat());
}
var QU = {};
Object.defineProperty(QU, "__esModule", { value: !0 });
QU.register = bpr;
const zre = qi, gpr = Dr, _B = Er;
function bpr(e) {
  return (t, r, i = gpr.NoneCancellationToken) => (0, _B.languageFeatureWorker)(e, t, () => r, function* (n) {
    for (const s of (0, _B.getGeneratedPositions)(n, r, zre.isLinkedEditingEnabled))
      yield s;
  }, (n, s, a) => {
    var o, l;
    if (!i.isCancellationRequested)
      return (l = (o = n[1]).provideLinkedEditingRanges) == null ? void 0 : l.call(o, s, a, i);
  }, (n, s) => s ? {
    wordPattern: n.wordPattern,
    ranges: n.ranges.map((a) => (0, _B.getSourceRange)(s, a, zre.isLinkedEditingEnabled)).filter((a) => !!a)
  } : n);
}
var uL = {};
Object.defineProperty(uL, "__esModule", { value: !0 });
uL.register = Tpr;
const Gre = qi, Yre = ma, vpr = Dr, Xre = zn, J1 = Er;
function Tpr(e) {
  return (t, r, i, n = vpr.NoneCancellationToken) => (0, J1.languageFeatureWorker)(e, t, () => r, (s) => (0, J1.getGeneratedPositions)(s, r, Gre.isReferencesEnabled), (s, a, o) => hr(this, null, function* () {
    if (n.isCancellationRequested)
      return;
    const l = Xre.createLocationSet(), u = [];
    return yield c(a, o), u;
    function c(f, h) {
      return hr(this, null, function* () {
        var g, y;
        if (!s[1].provideReferences || l.has({ uri: f.uri, range: { start: h, end: h } }))
          return;
        l.add({ uri: f.uri, range: { start: h, end: h } });
        const m = (g = yield s[1].provideReferences(f, h, i, n)) != null ? g : [];
        for (const v of m) {
          let T = !1;
          l.add({ uri: v.uri, range: { start: v.range.start, end: v.range.start } });
          const S = e.decodeEmbeddedDocumentUri(Yre.URI.parse(v.uri)), P = S && e.language.scripts.get(S[0]), x = S && ((y = P == null ? void 0 : P.generated) == null ? void 0 : y.embeddedCodes.get(S[1])), C = x && P ? e.language.linkedCodeMaps.get(x) : void 0;
          if (P && x && C) {
            const D = e.documents.get(e.encodeEmbeddedDocumentUri(P.id, x.id), x.languageId, x.snapshot);
            for (const w of (0, J1.getLinkedCodePositions)(D, C, v.range.start))
              l.has({ uri: D.uri, range: { start: w, end: w } }) || (T = !0, yield c(D, w));
          }
          T || u.push(v);
        }
      });
    }
  }), (s) => {
    var o;
    const a = [];
    for (const l of s) {
      const u = e.decodeEmbeddedDocumentUri(Yre.URI.parse(l.uri)), c = u && e.language.scripts.get(u[0]), f = u && ((o = c == null ? void 0 : c.generated) == null ? void 0 : o.embeddedCodes.get(u[1]));
      if (c && f) {
        const h = e.documents.get(e.encodeEmbeddedDocumentUri(c.id, f.id), f.languageId, f.snapshot);
        for (const [m, g] of e.language.maps.forEach(f)) {
          const y = e.documents.get(m.id, m.languageId, m.snapshot), v = [y, h, g], T = (0, J1.getSourceRange)(v, l.range, Gre.isReferencesEnabled);
          T && a.push({
            uri: y.uri,
            range: T
          });
        }
      } else
        a.push(l);
    }
    return a;
  }, (s) => Xre.withLocations(s.flat()));
}
var kS = {};
Object.defineProperty(kS, "__esModule", { value: !0 });
kS.register = Epr;
kS.mergeWorkspaceEdits = HTe;
const Jre = qi, Spr = ma, xpr = Dr, Qre = zn, IB = Er, WTe = wi;
function Epr(e) {
  return (t, r, i, n = xpr.NoneCancellationToken) => (0, IB.languageFeatureWorker)(e, t, () => ({ position: r, newName: i }), function* (s) {
    let a;
    for (const o of (0, IB.getGeneratedPositions)(s, r, (l) => (a = l, (0, Jre.isRenameEnabled)(l))))
      yield {
        position: o,
        newName: (0, Jre.resolveRenameNewName)(i, a)
      };
  }, (s, a, o) => hr(this, null, function* () {
    if (n.isCancellationRequested)
      return;
    const l = Qre.createLocationSet();
    let u;
    return yield c(a, o.position, o.newName), u;
    function c(f, h, m) {
      return hr(this, null, function* () {
        var y;
        if (!s[1].provideRenameEdits || l.has({ uri: f.uri, range: { start: h, end: h } }))
          return;
        l.add({ uri: f.uri, range: { start: h, end: h } });
        const g = yield s[1].provideRenameEdits(f, h, m, n);
        if (g) {
          if (u || (u = {}), g.changes)
            for (const v in g.changes) {
              const T = g.changes[v];
              for (const S of T) {
                let P = !1;
                l.add({ uri: v, range: { start: S.range.start, end: S.range.start } });
                const x = e.decodeEmbeddedDocumentUri(Spr.URI.parse(v)), C = x && e.language.scripts.get(x[0]), D = x && ((y = C == null ? void 0 : C.generated) == null ? void 0 : y.embeddedCodes.get(x[1])), w = D && C ? e.language.linkedCodeMaps.get(D) : void 0;
                if (C && D && w) {
                  const A = e.documents.get(e.encodeEmbeddedDocumentUri(C.id, D.id), D.languageId, D.snapshot);
                  for (const I of (0, IB.getLinkedCodePositions)(A, w, S.range.start))
                    l.has({ uri: A.uri, range: { start: I, end: I } }) || (P = !0, yield c(A, I, m));
                }
                P || (u.changes || (u.changes = {}), u.changes[v] || (u.changes[v] = []), u.changes[v].push(S));
              }
            }
          if (g.changeAnnotations)
            for (const v in g.changeAnnotations)
              u.changeAnnotations || (u.changeAnnotations = {}), u.changeAnnotations[v] = g.changeAnnotations[v];
          g.documentChanges && (u.documentChanges || (u.documentChanges = []), u.documentChanges = u.documentChanges.concat(g.documentChanges));
        }
      });
    }
  }), (s) => (0, WTe.transformWorkspaceEdit)(s, e, "rename"), (s) => {
    const a = s[0], o = s.slice(1);
    if (HTe(a, ...o), a.changes)
      for (const l in a.changes)
        a.changes[l] = Qre.withTextEdits(a.changes[l]);
    return s[0];
  });
}
function HTe(e, ...t) {
  for (const r of t) {
    for (const i in r.changeAnnotations)
      e.changeAnnotations || (e.changeAnnotations = {}), e.changeAnnotations[i] = r.changeAnnotations[i];
    for (const i in r.changes) {
      e.changes || (e.changes = {}), e.changes[i] || (e.changes[i] = []);
      const n = r.changes[i];
      e.changes[i] = e.changes[i].concat(n);
    }
    if (r.documentChanges) {
      e.documentChanges || (e.documentChanges = []);
      for (const i of r.documentChanges)
        (0, WTe.pushEditToDocumentChanges)(e.documentChanges, i);
    }
  }
}
var ZU = {};
Object.defineProperty(ZU, "__esModule", { value: !0 });
ZU.register = Apr;
const Ppr = qi, wpr = Dr, kB = Er;
function Apr(e) {
  return (t, r, i = wpr.NoneCancellationToken) => (0, kB.languageFeatureWorker)(e, t, () => r, (n) => (0, kB.getGeneratedPositions)(n, r, Ppr.isRenameEnabled), (n, s, a) => {
    var o, l;
    if (!i.isCancellationRequested)
      return (l = (o = n[1]).provideRenameRange) == null ? void 0 : l.call(o, s, a, i);
  }, (n, s) => s && "start" in n && "end" in n ? (0, kB.getSourceRange)(s, n) : n, (n) => {
    for (const s of n)
      if ("start" in s && "end" in s)
        return s;
    return n[0];
  });
}
var eq = {};
Object.defineProperty(eq, "__esModule", { value: !0 });
eq.register = Ipr;
const Zre = qi, Cpr = Dr, Q1 = Ha, OB = Er, _pr = wi;
function Ipr(e) {
  return (t, r, i = Cpr.NoneCancellationToken) => (0, OB.languageFeatureWorker)(e, t, () => r, function* (n) {
    const s = r.map((a) => {
      for (const o of (0, OB.getGeneratedPositions)(n, a, Zre.isSelectionRangesEnabled))
        return o;
    }).filter((a) => !!a);
    s.length && (yield s);
  }, (n, s, a) => hr(this, null, function* () {
    var l, u;
    if (i.isCancellationRequested)
      return;
    const o = yield (u = (l = n[1]).provideSelectionRanges) == null ? void 0 : u.call(l, s, a, i);
    if (o && o.length !== a.length) {
      console.error("Selection ranges count should be equal to positions count:", n[0].name, o.length, a.length);
      return;
    }
    return o;
  }), (n, s) => s ? (0, _pr.transformSelectionRanges)(n, (a) => (0, OB.getSourceRange)(s, a, Zre.isSelectionRangesEnabled)) : n, (n) => {
    const s = [];
    for (let a = 0; a < r.length; a++) {
      let o = [];
      for (const l of n)
        o.push(l[a]);
      o = o.sort((l, u) => (0, Q1.isInsideRange)(l.range, u.range) ? 1 : (0, Q1.isInsideRange)(u.range, l.range) ? -1 : 0);
      for (let l = 1; l < o.length; l++) {
        let u = o[l - 1];
        const c = o[l];
        for (; u.parent && (0, Q1.isInsideRange)(c.range, u.parent.range) && !(0, Q1.isEqualRange)(c.range, u.parent.range); )
          u = u.parent;
        u && (u.parent = c);
      }
      s.push(o[0]);
    }
    return s;
  });
}
var tq = {};
Object.defineProperty(tq, "__esModule", { value: !0 });
tq.register = Npr;
const kpr = qi, Opr = Dr, eie = Er;
function Npr(e) {
  return (t, r, i = {
    triggerKind: 1,
    isRetrigger: !1
  }, n = Opr.NoneCancellationToken) => (0, eie.languageFeatureWorker)(e, t, () => r, (s) => (0, eie.getGeneratedPositions)(s, r, kpr.isSignatureHelpEnabled), (s, a, o) => {
    var l, u, c, f, h;
    if (!n.isCancellationRequested && !((i == null ? void 0 : i.triggerKind) === 2 && i.triggerCharacter && !((c = i.isRetrigger ? (l = s[0].capabilities.signatureHelpProvider) == null ? void 0 : l.retriggerCharacters : (u = s[0].capabilities.signatureHelpProvider) == null ? void 0 : u.triggerCharacters) != null && c.includes(i.triggerCharacter))))
      return (h = (f = s[1]).provideSignatureHelp) == null ? void 0 : h.call(f, a, o, i, n);
  }, (s) => s);
}
var rq = {};
Object.defineProperty(rq, "__esModule", { value: !0 });
rq.register = Mpr;
const Dpr = ma, Lpr = Dr, tie = Vf;
function Mpr(e) {
  return (...r) => hr(this, [...r], function* (t = Lpr.NoneCancellationToken) {
    const i = [];
    for (const n of e.plugins) {
      if (e.disabledServicePlugins.has(n[1]))
        continue;
      if (t.isCancellationRequested)
        break;
      if (!n[1].provideWorkspaceDiagnostics)
        continue;
      const s = yield n[1].provideWorkspaceDiagnostics(t);
      if (!s)
        continue;
      const a = s.map((o) => {
        var f;
        const l = e.decodeEmbeddedDocumentUri(Dpr.URI.parse(o.uri)), u = l && e.language.scripts.get(l[0]), c = l && ((f = u == null ? void 0 : u.generated) == null ? void 0 : f.embeddedCodes.get(l[1]));
        if (c && u) {
          if (o.kind === "unchanged")
            return zr($t({}, o), {
              uri: u.id.toString()
            });
          {
            const h = e.language.maps.get(c, u), m = [
              e.documents.get(u.id, u.languageId, u.snapshot),
              e.documents.get(e.encodeEmbeddedDocumentUri(u.id, c.id), c.languageId, c.snapshot),
              h
            ];
            return zr($t({}, o), {
              items: o.items.map((g) => (0, tie.transformDiagnostic)(e, g, m)).filter((g) => !!g)
            });
          }
        } else
          return o.kind === "unchanged" ? o : zr($t({}, o), {
            items: o.items.map((h) => (0, tie.transformDiagnostic)(e, h, void 0)).filter((h) => !!h)
          });
      });
      i.push(...a);
    }
    return i;
  });
}
var iq = {};
Object.defineProperty(iq, "__esModule", { value: !0 });
iq.register = $pr;
const Rpr = ma, Bpr = Dr, Fpr = Er, jpr = wi;
function $pr(e) {
  return (i, ...n) => hr(this, [i, ...n], function* (t, r = Bpr.NoneCancellationToken) {
    const s = [];
    for (const a of e.plugins) {
      if (e.disabledServicePlugins.has(a[1]))
        continue;
      if (r.isCancellationRequested)
        break;
      if (!a[1].provideWorkspaceSymbols)
        continue;
      const o = yield a[1].provideWorkspaceSymbols(t, r);
      if (!o)
        continue;
      const l = o.map((u) => (0, jpr.transformWorkspaceSymbol)(u, (c) => {
        var g;
        const f = e.decodeEmbeddedDocumentUri(Rpr.URI.parse(c.uri)), h = f && e.language.scripts.get(f[0]), m = f && ((g = h == null ? void 0 : h.generated) == null ? void 0 : g.embeddedCodes.get(f[1]));
        if (h && m) {
          const y = e.documents.get(e.encodeEmbeddedDocumentUri(h.id, m.id), m.languageId, m.snapshot);
          for (const [v, T] of e.language.maps.forEach(m)) {
            const S = e.documents.get(v.id, v.languageId, v.snapshot), P = [S, y, T], x = (0, Fpr.getSourceRange)(P, c.range);
            if (x)
              return { uri: S.uri, range: x };
          }
        } else
          return c;
      })).filter((u) => !!u);
      l == null || l.forEach((u) => {
        a[1].resolveWorkspaceSymbol ? u.data = {
          original: {
            data: u.data
          },
          pluginIndex: e.plugins.indexOf(a)
        } : delete u.data;
      }), s.push(l);
    }
    return s.flat();
  });
}
var nq = {};
Object.defineProperty(nq, "__esModule", { value: !0 });
nq.register = Vpr;
const Upr = Dr, qpr = wi;
function Vpr(e) {
  return (i, ...n) => hr(this, [i, ...n], function* (t, r = Upr.NoneCancellationToken) {
    var a, o, l;
    const s = t.data;
    if (s) {
      const u = e.plugins[s.pluginIndex];
      if (!u[1].resolveCodeAction)
        return delete t.data, t;
      Object.assign(t, s.original), t = yield u[1].resolveCodeAction(t, r), t = (l = (o = (a = u[1]).transformCodeAction) == null ? void 0 : o.call(a, t)) != null ? l : t.edit ? zr($t({}, t), {
        edit: (0, qpr.transformWorkspaceEdit)(t.edit, e, "codeAction", { [s.uri]: s.version })
      }) : t;
    }
    return delete t.data, t;
  });
}
var sq = {};
Object.defineProperty(sq, "__esModule", { value: !0 });
sq.register = zpr;
const Wpr = ma, Hpr = Dr, Kpr = uL;
function zpr(e) {
  const t = Kpr.register(e);
  return (n, ...s) => hr(this, [n, ...s], function* (r, i = Hpr.NoneCancellationToken) {
    var o;
    const a = r.data;
    if ((a == null ? void 0 : a.kind) === "normal") {
      const l = e.plugins[a.pluginIndex];
      if (!l[1].resolveCodeLens)
        return delete r.data, r;
      Object.assign(r, a.original), r = yield l[1].resolveCodeLens(r, i);
    } else if ((a == null ? void 0 : a.kind) === "references") {
      const l = (o = yield t(Wpr.URI.parse(a.sourceFileUri), r.range.start, { includeDeclaration: !1 }, i)) != null ? o : [];
      r.command = e.commands.showReferences.create(a.sourceFileUri, r.range.start, l);
    }
    return delete r.data, r;
  });
}
var aq = {};
Object.defineProperty(aq, "__esModule", { value: !0 });
aq.register = Qpr;
const Gpr = ma, Ypr = Dr, Xpr = Er, Jpr = wi;
function Qpr(e) {
  return (i, ...n) => hr(this, [i, ...n], function* (t, r = Ypr.NoneCancellationToken) {
    var a, o, l, u;
    const s = t.data;
    if (s) {
      const c = e.plugins[s.pluginIndex];
      if (!c[1].resolveCompletionItem)
        return delete t.data, t;
      if (t = Object.assign(t, s.original), s.embeddedDocumentUri) {
        const f = e.decodeEmbeddedDocumentUri(Gpr.URI.parse(s.embeddedDocumentUri)), h = f && e.language.scripts.get(f[0]), m = f && ((a = h == null ? void 0 : h.generated) == null ? void 0 : a.embeddedCodes.get(f[1]));
        if (h && m) {
          const g = e.documents.get(e.encodeEmbeddedDocumentUri(h.id, m.id), m.languageId, m.snapshot);
          for (const [y, v] of e.language.maps.forEach(m)) {
            const S = [e.documents.get(y.id, y.languageId, y.snapshot), g, v];
            t = yield c[1].resolveCompletionItem(t, r), t = (u = (l = (o = c[1]).transformCompletionItem) == null ? void 0 : l.call(o, t)) != null ? u : (0, Jpr.transformCompletionItem)(t, (P) => (0, Xpr.getSourceRange)(S, P), g, e);
          }
        }
      } else
        t = yield c[1].resolveCompletionItem(t, r);
    }
    return t.detail !== t.detail + ".ts" && (t.detail = t.detail), delete t.data, t;
  });
}
var oq = {};
Object.defineProperty(oq, "__esModule", { value: !0 });
oq.register = tfr;
const Zpr = Dr, efr = wi;
function tfr(e) {
  return (i, ...n) => hr(this, [i, ...n], function* (t, r = Zpr.NoneCancellationToken) {
    const s = t.data;
    if (s) {
      const a = e.plugins[s.pluginIndex];
      if (!a[1].resolveDocumentLink)
        return delete t.data, t;
      Object.assign(t, s.original), t = yield a[1].resolveDocumentLink(t, r), t.target && (t.target = (0, efr.transformDocumentLinkTarget)(t.target, e).toString());
    }
    return delete t.data, t;
  });
}
var lq = {};
Object.defineProperty(lq, "__esModule", { value: !0 });
lq.register = ifr;
const rfr = Dr;
function ifr(e) {
  return (i, ...n) => hr(this, [i, ...n], function* (t, r = rfr.NoneCancellationToken) {
    const s = t.data;
    if (s) {
      const a = e.plugins[s.pluginIndex];
      if (!a[1].resolveInlayHint)
        return delete t.data, t;
      Object.assign(t, s.original), t = yield a[1].resolveInlayHint(t, r);
    }
    return delete t.data, t;
  });
}
var uq = {};
Object.defineProperty(uq, "__esModule", { value: !0 });
uq.register = sfr;
const nfr = Dr;
function sfr(e) {
  return (i, ...n) => hr(this, [i, ...n], function* (t, r = nfr.NoneCancellationToken) {
    const s = t.data;
    if (s) {
      const a = e.plugins[s.pluginIndex];
      if (!a[1].resolveWorkspaceSymbol)
        return delete t.data, t;
      Object.assign(t, s.original), t = yield a[1].resolveWorkspaceSymbol(t, r);
    }
    return delete t.data, t;
  });
}
(function(e) {
  Object.defineProperty(e, "__esModule", { value: !0 }), e.embeddedContentScheme = void 0, e.createLanguageService = ne, e.decodeEmbeddedDocumentUri = ae, e.encodeEmbeddedDocumentUri = be;
  const t = qi, r = oL, i = ma, n = IU, s = OU, a = NU, o = LU, l = MU, u = RU, c = BU, f = Vf, h = FU, m = jU, g = $U, y = UU, v = qU, T = VU, S = WU, P = HU, x = KU, C = zU, D = GU, w = YU, A = XU, I = JU, L = QU, O = uL, F = kS, q = ZU, j = eq, N = tq, M = rq, R = iq, $ = nq, V = sq, K = aq, z = oq, W = lq, Y = uq, G = Dr, le = IS;
  e.embeddedContentScheme = "volar-embedded-content";
  function ne(fe, Z, ue, me) {
    const xe = (0, le.createUriMap)(), Pe = /* @__PURE__ */ new WeakMap(), ve = {
      language: fe,
      project: me,
      getLanguageService: () => Xe,
      documents: {
        get(st, Se, oe) {
          var se;
          Pe.has(oe) || Pe.set(oe, (0, le.createUriMap)());
          const te = Pe.get(oe);
          if (!te.has(st)) {
            const re = (se = xe.get(st)) != null ? se : 0;
            xe.set(st, re + 1), te.set(st, r.TextDocument.create(st.toString(), Se, re, oe.getText(0, oe.getLength())));
          }
          return te.get(st);
        }
      },
      env: ue,
      inject: (st, ...Se) => {
        var oe;
        for (const te of ve.plugins) {
          if (ve.disabledServicePlugins.has(te[1]))
            continue;
          const se = (oe = te[1].provide) == null ? void 0 : oe[st];
          if (se)
            return se(...Se);
        }
      },
      plugins: [],
      commands: {
        rename: {
          create(st, Se) {
            return {
              title: "",
              command: "editor.action.rename",
              arguments: [
                st,
                Se
              ]
            };
          },
          is(st) {
            return st.command === "editor.action.rename";
          }
        },
        showReferences: {
          create(st, Se, oe) {
            return {
              title: oe.length === 1 ? "1 reference" : "".concat(oe.length, " references"),
              command: "editor.action.showReferences",
              arguments: [
                st,
                Se,
                oe
              ]
            };
          },
          is(st) {
            return st.command === "editor.action.showReferences";
          }
        },
        setSelection: {
          create(st) {
            return {
              title: "",
              command: "setSelection",
              arguments: [{
                selection: {
                  selectionStartLineNumber: st.line + 1,
                  positionLineNumber: st.line + 1,
                  selectionStartColumn: st.character + 1,
                  positionColumn: st.character + 1
                }
              }]
            };
          },
          is(st) {
            return st.command === "setSelection";
          }
        }
      },
      disabledEmbeddedDocumentUris: (0, le.createUriMap)(),
      disabledServicePlugins: /* @__PURE__ */ new WeakSet(),
      decodeEmbeddedDocumentUri: ae,
      encodeEmbeddedDocumentUri: be
    };
    for (const st of Z)
      ve.plugins.push([st, st.create(ve)]);
    const Xe = ye(Z, ve);
    return Xe;
  }
  function ae(fe) {
    if (fe.scheme === e.embeddedContentScheme) {
      const Z = decodeURIComponent(fe.authority), ue = decodeURIComponent(fe.path.substring(1));
      return [
        i.URI.parse(ue),
        Z
      ];
    }
  }
  function be(fe, Z) {
    return Z !== Z.toLowerCase() && console.error("embeddedContentId must be lowercase: ".concat(Z)), i.URI.from({
      scheme: e.embeddedContentScheme,
      authority: encodeURIComponent(Z),
      path: "/" + encodeURIComponent(fe.toString())
    });
  }
  function ye(fe, Z) {
    const ue = fe.map((xe) => {
      var Pe, ve, Xe;
      return (Xe = (ve = (Pe = xe.capabilities.semanticTokensProvider) == null ? void 0 : Pe.legend) == null ? void 0 : ve.tokenModifiers) != null ? Xe : [];
    }).flat(), me = fe.map((xe) => {
      var Pe, ve, Xe;
      return (Xe = (ve = (Pe = xe.capabilities.semanticTokensProvider) == null ? void 0 : Pe.legend) == null ? void 0 : ve.tokenTypes) != null ? Xe : [];
    }).flat();
    return zr($t({
      semanticTokenLegend: {
        tokenModifiers: [...new Set(ue)],
        tokenTypes: [...new Set(me)]
      },
      commands: fe.map((xe) => {
        var Pe, ve;
        return (ve = (Pe = xe.capabilities.executeCommandProvider) == null ? void 0 : Pe.commands) != null ? ve : [];
      }).flat(),
      triggerCharacters: fe.map((xe) => {
        var Pe, ve;
        return (ve = (Pe = xe.capabilities.completionProvider) == null ? void 0 : Pe.triggerCharacters) != null ? ve : [];
      }).flat(),
      autoFormatTriggerCharacters: fe.map((xe) => {
        var Pe, ve;
        return (ve = (Pe = xe.capabilities.documentOnTypeFormattingProvider) == null ? void 0 : Pe.triggerCharacters) != null ? ve : [];
      }).flat(),
      signatureHelpTriggerCharacters: fe.map((xe) => {
        var Pe, ve;
        return (ve = (Pe = xe.capabilities.signatureHelpProvider) == null ? void 0 : Pe.triggerCharacters) != null ? ve : [];
      }).flat(),
      signatureHelpRetriggerCharacters: fe.map((xe) => {
        var Pe, ve;
        return (ve = (Pe = xe.capabilities.signatureHelpProvider) == null ? void 0 : Pe.retriggerCharacters) != null ? ve : [];
      }).flat(),
      executeCommand(xe, Pe, ve = G.NoneCancellationToken) {
        var Xe;
        for (const st of Z.plugins)
          if (!Z.disabledServicePlugins.has(st[1]) && !(!st[1].executeCommand || !((Xe = st[0].capabilities.executeCommandProvider) != null && Xe.commands.includes(xe))))
            return st[1].executeCommand(xe, Pe, ve);
      },
      getDocumentFormattingEdits: g.register(Z),
      getFoldingRanges: C.register(Z),
      getSelectionRanges: j.register(Z),
      getLinkedEditingRanges: L.register(Z),
      getDocumentSymbols: S.register(Z),
      getDocumentColors: h.register(Z),
      getColorPresentations: l.register(Z),
      getDiagnostics: f.register(Z),
      getWorkspaceDiagnostics: M.register(Z),
      getReferences: O.register(Z),
      getFileReferences: P.register(Z),
      getDeclaration: c.register(Z, "provideDeclaration", t.isDefinitionEnabled),
      getDefinition: c.register(Z, "provideDefinition", t.isDefinitionEnabled),
      getTypeDefinition: c.register(Z, "provideTypeDefinition", t.isTypeDefinitionEnabled),
      getImplementations: c.register(Z, "provideImplementation", t.isImplementationEnabled),
      getRenameRange: q.register(Z),
      getRenameEdits: F.register(Z),
      getFileRenameEdits: x.register(Z),
      getSemanticTokens: T.register(Z),
      getHover: D.register(Z),
      getCompletionItems: u.register(Z),
      getCodeActions: a.register(Z),
      getSignatureHelp: N.register(Z),
      getCodeLenses: o.register(Z),
      getDocumentHighlights: y.register(Z),
      getDocumentLinks: v.register(Z),
      getWorkspaceSymbols: R.register(Z),
      getAutoInsertSnippet: n.register(Z),
      getDocumentDropEdits: m.register(Z),
      getInlayHints: w.register(Z),
      getMoniker: A.register(Z),
      getInlineValue: I.register(Z),
      resolveCodeAction: $.register(Z),
      resolveCompletionItem: K.register(Z),
      resolveCodeLens: V.register(Z),
      resolveDocumentLink: z.register(Z),
      resolveInlayHint: W.register(Z),
      resolveWorkspaceSymbol: Y.register(Z)
    }, s.register(Z)), {
      dispose: () => Z.plugins.forEach((xe) => {
        var Pe, ve;
        return (ve = (Pe = xe[1]).dispose) == null ? void 0 : ve.call(Pe);
      }),
      context: Z
    });
  }
})(ITe);
var cL = {};
Object.defineProperty(cL, "__esModule", { value: !0 });
cL.FileType = void 0;
var rie;
(function(e) {
  e[e.Unknown = 0] = "Unknown", e[e.File = 1] = "File", e[e.Directory = 2] = "Directory", e[e.SymbolicLink = 64] = "SymbolicLink";
})(rie || (cL.FileType = rie = {}));
(function(e) {
  var t = jt && jt.__createBinding || (Object.create ? function(n, s, a, o) {
    o === void 0 && (o = a);
    var l = Object.getOwnPropertyDescriptor(s, a);
    (!l || ("get" in l ? !s.__esModule : l.writable || l.configurable)) && (l = { enumerable: !0, get: function() {
      return s[a];
    } }), Object.defineProperty(n, o, l);
  } : function(n, s, a, o) {
    o === void 0 && (o = a), n[o] = s[a];
  }), r = jt && jt.__exportStar || function(n, s) {
    for (var a in n)
      a !== "default" && !Object.prototype.hasOwnProperty.call(s, a) && t(s, n, a);
  };
  Object.defineProperty(e, "__esModule", { value: !0 }), e.mergeWorkspaceEdits = void 0, r(qi, e), r(ITe, e);
  var i = kS;
  Object.defineProperty(e, "mergeWorkspaceEdits", { enumerable: !0, get: function() {
    return i.mergeWorkspaceEdits;
  } }), r(cL, e), r(wi, e), r(IS, e);
})(wm);
var pL = {}, KTe = {}, fL = {};
Object.defineProperty(fL, "__esModule", { value: !0 });
fL.binarySearch = void 0;
function afr(e, t) {
  let r = 0, i = e.length - 1;
  for (; r <= i; ) {
    const n = Math.floor((r + i) / 2), s = e[n];
    if (s < t)
      r = n + 1;
    else if (s > t)
      i = n - 1;
    else {
      r = n, i = n;
      break;
    }
  }
  return Math.max(Math.min(r, i, e.length - 1), 0);
}
fL.binarySearch = afr;
var bo = {};
Object.defineProperty(bo, "__esModule", { value: !0 });
bo.getStack = bo.track = bo.resetOffsetStack = bo.offsetStack = bo.setTracking = void 0;
let zTe = !0, cq = 0;
function ofr(e) {
  zTe = e;
}
bo.setTracking = ofr;
function lfr() {
  cq++;
}
bo.offsetStack = lfr;
function ufr() {
  cq--;
}
bo.resetOffsetStack = ufr;
function cfr(e, t = []) {
  return [
    new Proxy(e, {
      get(u, c, f) {
        if (zTe) {
          if (c === "push")
            return r;
          if (c === "pop")
            return i;
          if (c === "shift")
            return n;
          if (c === "unshift")
            return s;
          if (c === "splice")
            return a;
          if (c === "sort")
            return o;
          if (c === "reverse")
            return l;
        }
        return Reflect.get(u, c, f);
      }
    }),
    t
  ];
  function r(...u) {
    return t.push({ stack: ly(), length: u.length }), e.push(...u);
  }
  function i() {
    if (t.length) {
      const u = t[t.length - 1];
      u.length > 1 ? u.length-- : t.pop();
    }
    return e.pop();
  }
  function n() {
    if (t.length) {
      const u = t[0];
      u.length > 1 ? u.length-- : t.shift();
    }
    return e.shift();
  }
  function s(...u) {
    return t.unshift({ stack: ly(), length: u.length }), e.unshift(...u);
  }
  function a(u, c, ...f) {
    c === void 0 && (c = e.length - u);
    let h = 0, m;
    for (let y = 0; y < t.length; y++) {
      const v = t[y], T = h;
      if (h = T + v.length, u >= T) {
        m = y + 1;
        const P = v.length;
        v.length = u - T, t.splice(m, 0, { stack: v.stack, length: P - v.length });
        break;
      }
    }
    if (m === void 0)
      throw new Error("Invalid splice operation");
    let g = c;
    for (let y = m; y < t.length; y++) {
      const v = t[y];
      for (; g > 0 && v.length > 0; )
        v.length--, g--;
      if (g === 0)
        break;
    }
    return t.splice(m, 0, { stack: ly(), length: f.length }), e.splice(u, c, ...f);
  }
  function o(u) {
    return t.splice(0, t.length, { stack: ly(), length: e.length }), e.sort(u);
  }
  function l() {
    return t.splice(0, t.length, { stack: ly(), length: e.length }), e.reverse();
  }
}
bo.track = cfr;
function ly() {
  let t = new Error().stack.split("\n")[3 + cq].trim();
  return t.endsWith(")") ? t = t.slice(t.lastIndexOf("(") + 1, -1) : t = t.slice(t.lastIndexOf(" ") + 1), t;
}
bo.getStack = ly;
var GTe = {};
Object.defineProperty(GTe, "__esModule", { value: !0 });
(function(e) {
  var t = jt && jt.__createBinding || (Object.create ? function(v, T, S, P) {
    P === void 0 && (P = S);
    var x = Object.getOwnPropertyDescriptor(T, S);
    (!x || ("get" in x ? !T.__esModule : x.writable || x.configurable)) && (x = { enumerable: !0, get: function() {
      return T[S];
    } }), Object.defineProperty(v, P, x);
  } : function(v, T, S, P) {
    P === void 0 && (P = S), v[P] = T[S];
  }), r = jt && jt.__exportStar || function(v, T) {
    for (var S in v)
      S !== "default" && !Object.prototype.hasOwnProperty.call(T, S) && t(T, v, S);
  };
  Object.defineProperty(e, "__esModule", { value: !0 }), e.replaceRange = e.replaceSourceRange = e.replaceAll = e.replace = e.create = e.toString = e.getLength = void 0;
  const i = fL, n = bo;
  r(GTe, e), r(bo, e);
  function s(v) {
    let T = 0;
    for (const S of v)
      T += typeof S == "string" ? S.length : S[0].length;
    return T;
  }
  e.getLength = s;
  function a(v) {
    return v.map((T) => typeof T == "string" ? T : T[0]).join("");
  }
  e.toString = a;
  function o(v) {
    return [[v, void 0, 0]];
  }
  e.create = o;
  function l(v, T, ...S) {
    const x = a(v).match(T);
    if (x && x.index !== void 0) {
      const C = x.index, D = C + x[0].length;
      (0, n.offsetStack)(), f(v, C, D, ...S.map((w) => typeof w == "function" ? w(x[0]) : w)), (0, n.resetOffsetStack)();
    }
  }
  e.replace = l;
  function u(v, T, ...S) {
    const P = a(v), x = P.matchAll(T);
    let C = P.length, D = 0;
    for (const w of x)
      if (w.index !== void 0) {
        const A = w.index + D, I = A + w[0].length;
        (0, n.offsetStack)(), f(v, A, I, ...S.map((O) => typeof O == "function" ? O(w[0]) : O)), (0, n.resetOffsetStack)();
        const L = s(v);
        D += L - C, C = L;
      }
  }
  e.replaceAll = u;
  function c(v, T, S, P, ...x) {
    for (const C of v)
      if (typeof C != "string" && C[1] === T) {
        const D = C[2], w = C[2] + C[0].length;
        if (D <= S && w >= P) {
          const A = [];
          S > D && A.push(m(C, S - D));
          for (const I of x)
            A.push(I);
          return P < w && A.push(g(C, P - w)), h(A), (0, n.offsetStack)(), v.splice(v.indexOf(C), 1, ...A), (0, n.resetOffsetStack)(), !0;
        }
      }
    return !1;
  }
  e.replaceSourceRange = c;
  function f(v, T, S, ...P) {
    const x = y(v), C = (0, i.binarySearch)(x, T), D = (0, i.binarySearch)(x, S), w = v[C], A = v[D], I = x[C], L = x[D], O = x[D] + (typeof A == "string" ? A.length : A[0].length), F = [];
    T > I && F.push(m(w, T - I));
    for (const q of P)
      F.push(q);
    S < O && F.push(g(A, S - L)), h(F), (0, n.offsetStack)(), v.splice(C, D - C + 1, ...F), (0, n.resetOffsetStack)();
  }
  e.replaceRange = f;
  function h(v) {
    for (let T = v.length - 1; T >= 1; T--)
      typeof v[T] == "string" && typeof v[T - 1] == "string" && (v[T - 1] = v[T - 1] + v[T], (0, n.offsetStack)(), v.splice(T, 1), (0, n.resetOffsetStack)());
  }
  function m(v, T) {
    return typeof v == "string" ? v.slice(0, T) : [
      v[0].slice(0, T),
      ...v.slice(1)
    ];
  }
  function g(v, T) {
    return typeof v == "string" ? v.slice(T) : (T < 0 && (T += v[0].length), [
      v[0].slice(T),
      v[1],
      v[2] + T,
      ...v.slice(3)
    ]);
  }
  function y(v) {
    const T = [];
    let S = 0;
    for (const P of v)
      T.push(S), S += typeof P == "string" ? P.length : P[0].length;
    return T;
  }
})(KTe);
var pq = { exports: {} }, NB = {
  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"
}, DB = "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", pfr = {
  5: DB,
  "5module": DB + " export import",
  6: DB + " const class extends export import super"
}, ffr = /^in(stanceof)?$/, fq = "ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࢠ-ࢴࢶ-ࣇऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-鿼ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞿꟂ-ꟊꟵ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ﬀ-ﬆﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼＡ-Ｚａ-ｚｦ-ﾾￂ-ￇￊ-ￏￒ-ￗￚ-ￜ", YTe = "‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࣓-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿᫀᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷹᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏０-９＿", hfr = new RegExp("[" + fq + "]"), dfr = new RegExp("[" + fq + YTe + "]");
fq = YTe = null;
var XTe = [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, 157, 310, 10, 21, 11, 7, 153, 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, 107, 20, 28, 22, 13, 52, 76, 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, 230, 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, 35, 56, 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, 2749, 1070, 4050, 582, 8634, 568, 8, 30, 114, 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, 8952, 286, 50, 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, 2357, 44, 11, 6, 17, 0, 370, 43, 1301, 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, 42717, 35, 4148, 12, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938], mfr = [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, 176, 2, 54, 14, 32, 9, 16, 3, 46, 10, 54, 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, 135, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 5319, 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, 419, 13, 1495, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
function Aj(e, t) {
  for (var r = 65536, i = 0; i < t.length; i += 2) {
    if (r += t[i], r > e)
      return !1;
    if (r += t[i + 1], r >= e)
      return !0;
  }
}
function Nf(e, t) {
  return e < 65 ? e === 36 : e < 91 ? !0 : e < 97 ? e === 95 : e < 123 ? !0 : e <= 65535 ? e >= 170 && hfr.test(String.fromCharCode(e)) : t === !1 ? !1 : Aj(e, XTe);
}
function Qd(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 && dfr.test(String.fromCharCode(e)) : t === !1 ? !1 : Aj(e, XTe) || Aj(e, mfr);
}
var yi = function(t, r) {
  r === void 0 && (r = {}), this.label = t, this.keyword = r.keyword, this.beforeExpr = !!r.beforeExpr, this.startsExpr = !!r.startsExpr, this.isLoop = !!r.isLoop, this.isAssign = !!r.isAssign, this.prefix = !!r.prefix, this.postfix = !!r.postfix, this.binop = r.binop || null, this.updateContext = null;
};
function Sl(e, t) {
  return new yi(e, { beforeExpr: !0, binop: t });
}
var xl = { beforeExpr: !0 }, ho = { startsExpr: !0 }, hL = {};
function pi(e, t) {
  return t === void 0 && (t = {}), t.keyword = e, hL[e] = new yi(e, t);
}
var Le = {
  num: new yi("num", ho),
  regexp: new yi("regexp", ho),
  string: new yi("string", ho),
  name: new yi("name", ho),
  eof: new yi("eof"),
  // Punctuation token types.
  bracketL: new yi("[", { beforeExpr: !0, startsExpr: !0 }),
  bracketR: new yi("]"),
  braceL: new yi("{", { beforeExpr: !0, startsExpr: !0 }),
  braceR: new yi("}"),
  parenL: new yi("(", { beforeExpr: !0, startsExpr: !0 }),
  parenR: new yi(")"),
  comma: new yi(",", xl),
  semi: new yi(";", xl),
  colon: new yi(":", xl),
  dot: new yi("."),
  question: new yi("?", xl),
  questionDot: new yi("?."),
  arrow: new yi("=>", xl),
  template: new yi("template"),
  invalidTemplate: new yi("invalidTemplate"),
  ellipsis: new yi("...", xl),
  backQuote: new yi("`", ho),
  dollarBraceL: new yi("${", { beforeExpr: !0, startsExpr: !0 }),
  // Operators. These carry several kinds of properties to help the
  // parser use them properly (the presence of these properties is
  // what categorizes them as operators).
  //
  // `binop`, when present, specifies that this operator is a binary
  // operator, and will refer to its precedence.
  //
  // `prefix` and `postfix` mark the operator as a prefix or postfix
  // unary operator.
  //
  // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as
  // binary operators with a very low precedence, that should result
  // in AssignmentExpression nodes.
  eq: new yi("=", { beforeExpr: !0, isAssign: !0 }),
  assign: new yi("_=", { beforeExpr: !0, isAssign: !0 }),
  incDec: new yi("++/--", { prefix: !0, postfix: !0, startsExpr: !0 }),
  prefix: new yi("!/~", { beforeExpr: !0, prefix: !0, startsExpr: !0 }),
  logicalOR: Sl("||", 1),
  logicalAND: Sl("&&", 2),
  bitwiseOR: Sl("|", 3),
  bitwiseXOR: Sl("^", 4),
  bitwiseAND: Sl("&", 5),
  equality: Sl("==/!=/===/!==", 6),
  relational: Sl("</>/<=/>=", 7),
  bitShift: Sl("<</>>/>>>", 8),
  plusMin: new yi("+/-", { beforeExpr: !0, binop: 9, prefix: !0, startsExpr: !0 }),
  modulo: Sl("%", 10),
  star: Sl("*", 10),
  slash: Sl("/", 10),
  starstar: new yi("**", { beforeExpr: !0 }),
  coalesce: Sl("??", 1),
  // Keyword token types.
  _break: pi("break"),
  _case: pi("case", xl),
  _catch: pi("catch"),
  _continue: pi("continue"),
  _debugger: pi("debugger"),
  _default: pi("default", xl),
  _do: pi("do", { isLoop: !0, beforeExpr: !0 }),
  _else: pi("else", xl),
  _finally: pi("finally"),
  _for: pi("for", { isLoop: !0 }),
  _function: pi("function", ho),
  _if: pi("if"),
  _return: pi("return", xl),
  _switch: pi("switch"),
  _throw: pi("throw", xl),
  _try: pi("try"),
  _var: pi("var"),
  _const: pi("const"),
  _while: pi("while", { isLoop: !0 }),
  _with: pi("with"),
  _new: pi("new", { beforeExpr: !0, startsExpr: !0 }),
  _this: pi("this", ho),
  _super: pi("super", ho),
  _class: pi("class", ho),
  _extends: pi("extends", xl),
  _export: pi("export"),
  _import: pi("import", ho),
  _null: pi("null", ho),
  _true: pi("true", ho),
  _false: pi("false", ho),
  _in: pi("in", { beforeExpr: !0, binop: 7 }),
  _instanceof: pi("instanceof", { beforeExpr: !0, binop: 7 }),
  _typeof: pi("typeof", { beforeExpr: !0, prefix: !0, startsExpr: !0 }),
  _void: pi("void", { beforeExpr: !0, prefix: !0, startsExpr: !0 }),
  _delete: pi("delete", { beforeExpr: !0, prefix: !0, startsExpr: !0 })
}, Oo = /\r\n?|\n|\u2028|\u2029/, sg = new RegExp(Oo.source, "g");
function zg(e, t) {
  return e === 10 || e === 13 || !t && (e === 8232 || e === 8233);
}
var hq = /[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/, Nl = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g, JTe = Object.prototype, yfr = JTe.hasOwnProperty, gfr = JTe.toString;
function dL(e, t) {
  return yfr.call(e, t);
}
var iie = Array.isArray || function(e) {
  return gfr.call(e) === "[object Array]";
};
function Ld(e) {
  return new RegExp("^(?:" + e.replace(/ /g, "|") + ")$");
}
var ag = function(t, r) {
  this.line = t, this.column = r;
};
ag.prototype.offset = function(t) {
  return new ag(this.line, this.column + t);
};
var OS = function(t, r, i) {
  this.start = r, this.end = i, t.sourceFile !== null && (this.source = t.sourceFile);
};
function dq(e, t) {
  for (var r = 1, i = 0; ; ) {
    sg.lastIndex = i;
    var n = sg.exec(e);
    if (n && n.index < t)
      ++r, i = n.index + n[0].length;
    else
      return new ag(r, t - i);
  }
}
var SA = {
  // `ecmaVersion` indicates the ECMAScript version to parse. Must be
  // either 3, 5, 6 (2015), 7 (2016), 8 (2017), 9 (2018), or 10
  // (2019). This influences support for strict mode, the set of
  // reserved words, and support for new syntax features. The default
  // is 10.
  ecmaVersion: 10,
  // `sourceType` indicates the mode the code should be parsed in.
  // Can be either `"script"` or `"module"`. This influences global
  // strict mode and parsing of `import` and `export` declarations.
  sourceType: "script",
  // `onInsertedSemicolon` can be a callback that will be called
  // when a semicolon is automatically inserted. It will be passed
  // the position of the comma as an offset, and if `locations` is
  // enabled, it is given the location as a `{line, column}` object
  // as second argument.
  onInsertedSemicolon: null,
  // `onTrailingComma` is similar to `onInsertedSemicolon`, but for
  // trailing commas.
  onTrailingComma: null,
  // By default, reserved words are only enforced if ecmaVersion >= 5.
  // Set `allowReserved` to a boolean value to explicitly turn this on
  // an off. When this option has the value "never", reserved words
  // and keywords can also not be used as property names.
  allowReserved: null,
  // When enabled, a return at the top level is not considered an
  // error.
  allowReturnOutsideFunction: !1,
  // When enabled, import/export statements are not constrained to
  // appearing at the top of the program.
  allowImportExportEverywhere: !1,
  // When enabled, await identifiers are allowed to appear at the top-level scope,
  // but they are still not allowed in non-async functions.
  allowAwaitOutsideFunction: !1,
  // When enabled, hashbang directive in the beginning of file
  // is allowed and treated as a line comment.
  allowHashBang: !1,
  // When `locations` is on, `loc` properties holding objects with
  // `start` and `end` properties in `{line, column}` form (with
  // line being 1-based and column 0-based) will be attached to the
  // nodes.
  locations: !1,
  // A function can be passed as `onToken` option, which will
  // cause Acorn to call that function with object in the same
  // format as tokens returned from `tokenizer().getToken()`. Note
  // that you are not allowed to call the parser from the
  // callback—that will corrupt its internal state.
  onToken: null,
  // A function can be passed as `onComment` option, which will
  // cause Acorn to call that function with `(block, text, start,
  // end)` parameters whenever a comment is skipped. `block` is a
  // boolean indicating whether this is a block (`/* */`) comment,
  // `text` is the content of the comment, and `start` and `end` are
  // character offsets that denote the start and end of the comment.
  // When the `locations` option is on, two more parameters are
  // passed, the full `{line, column}` locations of the start and
  // end of the comments. Note that you are not allowed to call the
  // parser from the callback—that will corrupt its internal state.
  onComment: null,
  // Nodes have their start and end characters offsets recorded in
  // `start` and `end` properties (directly on the node, rather than
  // the `loc` object, which holds line/column data. To also add a
  // [semi-standardized][range] `range` property holding a `[start,
  // end]` array with the same numbers, set the `ranges` option to
  // `true`.
  //
  // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678
  ranges: !1,
  // It is possible to parse multiple files into a single AST by
  // passing the tree produced by parsing the first file as
  // `program` option in subsequent parses. This will add the
  // toplevel forms of the parsed file to the `Program` (top) node
  // of an existing parse tree.
  program: null,
  // When `locations` is on, you can pass this to record the source
  // file in every node's `loc` object.
  sourceFile: null,
  // This value, if given, is stored in every node, whether
  // `locations` is on or off.
  directSourceFile: null,
  // When enabled, parenthesized expressions are represented by
  // (non-standard) ParenthesizedExpression nodes
  preserveParens: !1
};
function bfr(e) {
  var t = {};
  for (var r in SA)
    t[r] = e && dL(e, r) ? e[r] : SA[r];
  if (t.ecmaVersion >= 2015 && (t.ecmaVersion -= 2009), t.allowReserved == null && (t.allowReserved = t.ecmaVersion < 5), iie(t.onToken)) {
    var i = t.onToken;
    t.onToken = function(n) {
      return i.push(n);
    };
  }
  return iie(t.onComment) && (t.onComment = vfr(t, t.onComment)), t;
}
function vfr(e, t) {
  return function(r, i, n, s, a, o) {
    var l = {
      type: r ? "Block" : "Line",
      value: i,
      start: n,
      end: s
    };
    e.locations && (l.loc = new OS(this, a, o)), e.ranges && (l.range = [n, s]), t.push(l);
  };
}
var hT = 1, NS = 2, mq = hT | NS, QTe = 4, ZTe = 8, eSe = 16, tSe = 32, rSe = 64, iSe = 128;
function yq(e, t) {
  return NS | (e ? QTe : 0) | (t ? ZTe : 0);
}
var nie = 0, gq = 1, xf = 2, nSe = 3, sSe = 4, aSe = 5, Cn = function(t, r, i) {
  this.options = t = bfr(t), this.sourceFile = t.sourceFile, this.keywords = Ld(pfr[t.ecmaVersion >= 6 ? 6 : t.sourceType === "module" ? "5module" : 5]);
  var n = "";
  if (t.allowReserved !== !0) {
    for (var s = t.ecmaVersion; !(n = NB[s]); s--)
      ;
    t.sourceType === "module" && (n += " await");
  }
  this.reservedWords = Ld(n);
  var a = (n ? n + " " : "") + NB.strict;
  this.reservedWordsStrict = Ld(a), this.reservedWordsStrictBind = Ld(a + " " + NB.strictBind), this.input = String(r), this.containsEsc = !1, i ? (this.pos = i, this.lineStart = this.input.lastIndexOf("\n", i - 1) + 1, this.curLine = this.input.slice(0, this.lineStart).split(Oo).length) : (this.pos = this.lineStart = 0, this.curLine = 1), this.type = Le.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.yieldPos = this.awaitPos = this.awaitIdentPos = 0, this.labels = [], this.undefinedExports = {}, this.pos === 0 && t.allowHashBang && this.input.slice(0, 2) === "#!" && this.skipLineComment(2), this.scopeStack = [], this.enterScope(hT), this.regexpState = null;
}, Am = { inFunction: { configurable: !0 }, inGenerator: { configurable: !0 }, inAsync: { configurable: !0 }, allowSuper: { configurable: !0 }, allowDirectSuper: { configurable: !0 }, treatFunctionsAsVar: { configurable: !0 } };
Cn.prototype.parse = function() {
  var t = this.options.program || this.startNode();
  return this.nextToken(), this.parseTopLevel(t);
};
Am.inFunction.get = function() {
  return (this.currentVarScope().flags & NS) > 0;
};
Am.inGenerator.get = function() {
  return (this.currentVarScope().flags & ZTe) > 0;
};
Am.inAsync.get = function() {
  return (this.currentVarScope().flags & QTe) > 0;
};
Am.allowSuper.get = function() {
  return (this.currentThisScope().flags & rSe) > 0;
};
Am.allowDirectSuper.get = function() {
  return (this.currentThisScope().flags & iSe) > 0;
};
Am.treatFunctionsAsVar.get = function() {
  return this.treatFunctionsAsVarInScope(this.currentScope());
};
Cn.prototype.inNonArrowFunction = function() {
  return (this.currentThisScope().flags & NS) > 0;
};
Cn.extend = function() {
  for (var t = [], r = arguments.length; r--; )
    t[r] = arguments[r];
  for (var i = this, n = 0; n < t.length; n++)
    i = t[n](i);
  return i;
};
Cn.parse = function(t, r) {
  return new this(r, t).parse();
};
Cn.parseExpressionAt = function(t, r, i) {
  var n = new this(i, t, r);
  return n.nextToken(), n.parseExpression();
};
Cn.tokenizer = function(t, r) {
  return new this(r, t);
};
Object.defineProperties(Cn.prototype, Am);
var ya = Cn.prototype, Tfr = /^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/;
ya.strictDirective = function(e) {
  for (; ; ) {
    Nl.lastIndex = e, e += Nl.exec(this.input)[0].length;
    var t = Tfr.exec(this.input.slice(e));
    if (!t)
      return !1;
    if ((t[1] || t[2]) === "use strict") {
      Nl.lastIndex = e + t[0].length;
      var r = Nl.exec(this.input), i = r.index + r[0].length, n = this.input.charAt(i);
      return n === ";" || n === "}" || Oo.test(r[0]) && !(/[(`.[+\-/*%<>=,?^&]/.test(n) || n === "!" && this.input.charAt(i + 1) === "=");
    }
    e += t[0].length, Nl.lastIndex = e, e += Nl.exec(this.input)[0].length, this.input[e] === ";" && e++;
  }
};
ya.eat = function(e) {
  return this.type === e ? (this.next(), !0) : !1;
};
ya.isContextual = function(e) {
  return this.type === Le.name && this.value === e && !this.containsEsc;
};
ya.eatContextual = function(e) {
  return this.isContextual(e) ? (this.next(), !0) : !1;
};
ya.expectContextual = function(e) {
  this.eatContextual(e) || this.unexpected();
};
ya.canInsertSemicolon = function() {
  return this.type === Le.eof || this.type === Le.braceR || Oo.test(this.input.slice(this.lastTokEnd, this.start));
};
ya.insertSemicolon = function() {
  if (this.canInsertSemicolon())
    return this.options.onInsertedSemicolon && this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc), !0;
};
ya.semicolon = function() {
  !this.eat(Le.semi) && !this.insertSemicolon() && this.unexpected();
};
ya.afterTrailingComma = function(e, t) {
  if (this.type === e)
    return this.options.onTrailingComma && this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc), t || this.next(), !0;
};
ya.expect = function(e) {
  this.eat(e) || this.unexpected();
};
ya.unexpected = function(e) {
  this.raise(e != null ? e : this.start, "Unexpected token");
};
function mL() {
  this.shorthandAssign = this.trailingComma = this.parenthesizedAssign = this.parenthesizedBind = this.doubleProto = -1;
}
ya.checkPatternErrors = function(e, t) {
  if (e) {
    e.trailingComma > -1 && this.raiseRecoverable(e.trailingComma, "Comma is not permitted after the rest element");
    var r = t ? e.parenthesizedAssign : e.parenthesizedBind;
    r > -1 && this.raiseRecoverable(r, "Parenthesized pattern");
  }
};
ya.checkExpressionErrors = function(e, t) {
  if (!e)
    return !1;
  var r = e.shorthandAssign, i = e.doubleProto;
  if (!t)
    return r >= 0 || i >= 0;
  r >= 0 && this.raise(r, "Shorthand property assignments are valid only in destructuring patterns"), i >= 0 && this.raiseRecoverable(i, "Redefinition of __proto__ property");
};
ya.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");
};
ya.isSimpleAssignTarget = function(e) {
  return e.type === "ParenthesizedExpression" ? this.isSimpleAssignTarget(e.expression) : e.type === "Identifier" || e.type === "MemberExpression";
};
var Ir = Cn.prototype;
Ir.parseTopLevel = function(e) {
  var t = {};
  for (e.body || (e.body = []); this.type !== Le.eof; ) {
    var r = this.parseStatement(null, !0, t);
    e.body.push(r);
  }
  if (this.inModule)
    for (var i = 0, n = Object.keys(this.undefinedExports); i < n.length; i += 1) {
      var s = n[i];
      this.raiseRecoverable(this.undefinedExports[s].start, "Export '" + s + "' is not defined");
    }
  return this.adaptDirectivePrologue(e.body), this.next(), e.sourceType = this.options.sourceType, this.finishNode(e, "Program");
};
var bq = { kind: "loop" }, Sfr = { kind: "switch" };
Ir.isLet = function(e) {
  if (this.options.ecmaVersion < 6 || !this.isContextual("let"))
    return !1;
  Nl.lastIndex = this.pos;
  var t = Nl.exec(this.input), r = this.pos + t[0].length, i = this.input.charCodeAt(r);
  if (i === 91)
    return !0;
  if (e)
    return !1;
  if (i === 123)
    return !0;
  if (Nf(i, !0)) {
    for (var n = r + 1; Qd(this.input.charCodeAt(n), !0); )
      ++n;
    var s = this.input.slice(r, n);
    if (!ffr.test(s))
      return !0;
  }
  return !1;
};
Ir.isAsyncFunction = function() {
  if (this.options.ecmaVersion < 8 || !this.isContextual("async"))
    return !1;
  Nl.lastIndex = this.pos;
  var e = Nl.exec(this.input), t = this.pos + e[0].length;
  return !Oo.test(this.input.slice(this.pos, t)) && this.input.slice(t, t + 8) === "function" && (t + 8 === this.input.length || !Qd(this.input.charAt(t + 8)));
};
Ir.parseStatement = function(e, t, r) {
  var i = this.type, n = this.startNode(), s;
  switch (this.isLet(e) && (i = Le._var, s = "let"), i) {
    case Le._break:
    case Le._continue:
      return this.parseBreakContinueStatement(n, i.keyword);
    case Le._debugger:
      return this.parseDebuggerStatement(n);
    case Le._do:
      return this.parseDoStatement(n);
    case Le._for:
      return this.parseForStatement(n);
    case Le._function:
      return e && (this.strict || e !== "if" && e !== "label") && this.options.ecmaVersion >= 6 && this.unexpected(), this.parseFunctionStatement(n, !1, !e);
    case Le._class:
      return e && this.unexpected(), this.parseClass(n, !0);
    case Le._if:
      return this.parseIfStatement(n);
    case Le._return:
      return this.parseReturnStatement(n);
    case Le._switch:
      return this.parseSwitchStatement(n);
    case Le._throw:
      return this.parseThrowStatement(n);
    case Le._try:
      return this.parseTryStatement(n);
    case Le._const:
    case Le._var:
      return s = s || this.value, e && s !== "var" && this.unexpected(), this.parseVarStatement(n, s);
    case Le._while:
      return this.parseWhileStatement(n);
    case Le._with:
      return this.parseWithStatement(n);
    case Le.braceL:
      return this.parseBlock(!0, n);
    case Le.semi:
      return this.parseEmptyStatement(n);
    case Le._export:
    case Le._import:
      if (this.options.ecmaVersion > 10 && i === Le._import) {
        Nl.lastIndex = this.pos;
        var a = Nl.exec(this.input), o = this.pos + a[0].length, l = this.input.charCodeAt(o);
        if (l === 40 || l === 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'")), i === Le._import ? this.parseImport(n) : this.parseExport(n, r);
    default:
      if (this.isAsyncFunction())
        return e && this.unexpected(), this.next(), this.parseFunctionStatement(n, !0, !e);
      var u = this.value, c = this.parseExpression();
      return i === Le.name && c.type === "Identifier" && this.eat(Le.colon) ? this.parseLabeledStatement(n, u, c, e) : this.parseExpressionStatement(n, c);
  }
};
Ir.parseBreakContinueStatement = function(e, t) {
  var r = t === "break";
  this.next(), this.eat(Le.semi) || this.insertSemicolon() ? e.label = null : this.type !== Le.name ? this.unexpected() : (e.label = this.parseIdent(), this.semicolon());
  for (var i = 0; i < this.labels.length; ++i) {
    var n = this.labels[i];
    if ((e.label == null || n.name === e.label.name) && (n.kind != null && (r || n.kind === "loop") || e.label && r))
      break;
  }
  return i === this.labels.length && this.raise(e.start, "Unsyntactic " + t), this.finishNode(e, r ? "BreakStatement" : "ContinueStatement");
};
Ir.parseDebuggerStatement = function(e) {
  return this.next(), this.semicolon(), this.finishNode(e, "DebuggerStatement");
};
Ir.parseDoStatement = function(e) {
  return this.next(), this.labels.push(bq), e.body = this.parseStatement("do"), this.labels.pop(), this.expect(Le._while), e.test = this.parseParenExpression(), this.options.ecmaVersion >= 6 ? this.eat(Le.semi) : this.semicolon(), this.finishNode(e, "DoWhileStatement");
};
Ir.parseForStatement = function(e) {
  this.next();
  var t = this.options.ecmaVersion >= 9 && (this.inAsync || !this.inFunction && this.options.allowAwaitOutsideFunction) && this.eatContextual("await") ? this.lastTokStart : -1;
  if (this.labels.push(bq), this.enterScope(0), this.expect(Le.parenL), this.type === Le.semi)
    return t > -1 && this.unexpected(t), this.parseFor(e, null);
  var r = this.isLet();
  if (this.type === Le._var || this.type === Le._const || r) {
    var i = this.startNode(), n = r ? "let" : this.value;
    return this.next(), this.parseVar(i, !0, n), this.finishNode(i, "VariableDeclaration"), (this.type === Le._in || this.options.ecmaVersion >= 6 && this.isContextual("of")) && i.declarations.length === 1 ? (this.options.ecmaVersion >= 9 && (this.type === Le._in ? t > -1 && this.unexpected(t) : e.await = t > -1), this.parseForIn(e, i)) : (t > -1 && this.unexpected(t), this.parseFor(e, i));
  }
  var s = new mL(), a = this.parseExpression(!0, s);
  return this.type === Le._in || this.options.ecmaVersion >= 6 && this.isContextual("of") ? (this.options.ecmaVersion >= 9 && (this.type === Le._in ? t > -1 && this.unexpected(t) : e.await = t > -1), this.toAssignable(a, !1, s), this.checkLVal(a), this.parseForIn(e, a)) : (this.checkExpressionErrors(s, !0), t > -1 && this.unexpected(t), this.parseFor(e, a));
};
Ir.parseFunctionStatement = function(e, t, r) {
  return this.next(), this.parseFunction(e, hv | (r ? 0 : Cj), !1, t);
};
Ir.parseIfStatement = function(e) {
  return this.next(), e.test = this.parseParenExpression(), e.consequent = this.parseStatement("if"), e.alternate = this.eat(Le._else) ? this.parseStatement("if") : null, this.finishNode(e, "IfStatement");
};
Ir.parseReturnStatement = function(e) {
  return !this.inFunction && !this.options.allowReturnOutsideFunction && this.raise(this.start, "'return' outside of function"), this.next(), this.eat(Le.semi) || this.insertSemicolon() ? e.argument = null : (e.argument = this.parseExpression(), this.semicolon()), this.finishNode(e, "ReturnStatement");
};
Ir.parseSwitchStatement = function(e) {
  this.next(), e.discriminant = this.parseParenExpression(), e.cases = [], this.expect(Le.braceL), this.labels.push(Sfr), this.enterScope(0);
  for (var t, r = !1; this.type !== Le.braceR; )
    if (this.type === Le._case || this.type === Le._default) {
      var i = this.type === Le._case;
      t && this.finishNode(t, "SwitchCase"), e.cases.push(t = this.startNode()), t.consequent = [], this.next(), i ? t.test = this.parseExpression() : (r && this.raiseRecoverable(this.lastTokStart, "Multiple default clauses"), r = !0, t.test = null), this.expect(Le.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");
};
Ir.parseThrowStatement = function(e) {
  return this.next(), Oo.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 xfr = [];
Ir.parseTryStatement = function(e) {
  if (this.next(), e.block = this.parseBlock(), e.handler = null, this.type === Le._catch) {
    var t = this.startNode();
    if (this.next(), this.eat(Le.parenL)) {
      t.param = this.parseBindingAtom();
      var r = t.param.type === "Identifier";
      this.enterScope(r ? tSe : 0), this.checkLVal(t.param, r ? sSe : xf), this.expect(Le.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(Le._finally) ? this.parseBlock() : null, !e.handler && !e.finalizer && this.raise(e.start, "Missing catch or finally clause"), this.finishNode(e, "TryStatement");
};
Ir.parseVarStatement = function(e, t) {
  return this.next(), this.parseVar(e, !1, t), this.semicolon(), this.finishNode(e, "VariableDeclaration");
};
Ir.parseWhileStatement = function(e) {
  return this.next(), e.test = this.parseParenExpression(), this.labels.push(bq), e.body = this.parseStatement("while"), this.labels.pop(), this.finishNode(e, "WhileStatement");
};
Ir.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");
};
Ir.parseEmptyStatement = function(e) {
  return this.next(), this.finishNode(e, "EmptyStatement");
};
Ir.parseLabeledStatement = function(e, t, r, i) {
  for (var n = 0, s = this.labels; n < s.length; n += 1) {
    var a = s[n];
    a.name === t && this.raise(r.start, "Label '" + t + "' is already declared");
  }
  for (var o = this.type.isLoop ? "loop" : this.type === Le._switch ? "switch" : null, l = this.labels.length - 1; l >= 0; l--) {
    var u = this.labels[l];
    if (u.statementStart === e.start)
      u.statementStart = this.start, u.kind = o;
    else
      break;
  }
  return this.labels.push({ name: t, kind: o, statementStart: this.start }), e.body = this.parseStatement(i ? i.indexOf("label") === -1 ? i + "label" : i : "label"), this.labels.pop(), e.label = r, this.finishNode(e, "LabeledStatement");
};
Ir.parseExpressionStatement = function(e, t) {
  return e.expression = t, this.semicolon(), this.finishNode(e, "ExpressionStatement");
};
Ir.parseBlock = function(e, t, r) {
  for (e === void 0 && (e = !0), t === void 0 && (t = this.startNode()), t.body = [], this.expect(Le.braceL), e && this.enterScope(0); this.type !== Le.braceR; ) {
    var i = this.parseStatement(null);
    t.body.push(i);
  }
  return r && (this.strict = !1), this.next(), e && this.exitScope(), this.finishNode(t, "BlockStatement");
};
Ir.parseFor = function(e, t) {
  return e.init = t, this.expect(Le.semi), e.test = this.type === Le.semi ? null : this.parseExpression(), this.expect(Le.semi), e.update = this.type === Le.parenR ? null : this.parseExpression(), this.expect(Le.parenR), e.body = this.parseStatement("for"), this.exitScope(), this.labels.pop(), this.finishNode(e, "ForStatement");
};
Ir.parseForIn = function(e, t) {
  var r = this.type === Le._in;
  return this.next(), t.type === "VariableDeclaration" && t.declarations[0].init != null && (!r || this.options.ecmaVersion < 8 || this.strict || t.kind !== "var" || t.declarations[0].id.type !== "Identifier") ? this.raise(
    t.start,
    (r ? "for-in" : "for-of") + " loop variable declaration may not have an initializer"
  ) : t.type === "AssignmentPattern" && this.raise(t.start, "Invalid left-hand side in for-loop"), e.left = t, e.right = r ? this.parseExpression() : this.parseMaybeAssign(), this.expect(Le.parenR), e.body = this.parseStatement("for"), this.exitScope(), this.labels.pop(), this.finishNode(e, r ? "ForInStatement" : "ForOfStatement");
};
Ir.parseVar = function(e, t, r) {
  for (e.declarations = [], e.kind = r; ; ) {
    var i = this.startNode();
    if (this.parseVarId(i, r), this.eat(Le.eq) ? i.init = this.parseMaybeAssign(t) : r === "const" && !(this.type === Le._in || this.options.ecmaVersion >= 6 && this.isContextual("of")) ? this.unexpected() : i.id.type !== "Identifier" && !(t && (this.type === Le._in || this.isContextual("of"))) ? this.raise(this.lastTokEnd, "Complex binding patterns require an initialization value") : i.init = null, e.declarations.push(this.finishNode(i, "VariableDeclarator")), !this.eat(Le.comma))
      break;
  }
  return e;
};
Ir.parseVarId = function(e, t) {
  e.id = this.parseBindingAtom(), this.checkLVal(e.id, t === "var" ? gq : xf, !1);
};
var hv = 1, Cj = 2, oSe = 4;
Ir.parseFunction = function(e, t, r, i) {
  this.initFunction(e), (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !i) && (this.type === Le.star && t & Cj && this.unexpected(), e.generator = this.eat(Le.star)), this.options.ecmaVersion >= 8 && (e.async = !!i), t & hv && (e.id = t & oSe && this.type !== Le.name ? null : this.parseIdent(), e.id && !(t & Cj) && this.checkLVal(e.id, this.strict || e.generator || e.async ? this.treatFunctionsAsVar ? gq : xf : nSe));
  var n = this.yieldPos, s = this.awaitPos, a = this.awaitIdentPos;
  return this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0, this.enterScope(yq(e.async, e.generator)), t & hv || (e.id = this.type === Le.name ? this.parseIdent() : null), this.parseFunctionParams(e), this.parseFunctionBody(e, r, !1), this.yieldPos = n, this.awaitPos = s, this.awaitIdentPos = a, this.finishNode(e, t & hv ? "FunctionDeclaration" : "FunctionExpression");
};
Ir.parseFunctionParams = function(e) {
  this.expect(Le.parenL), e.params = this.parseBindingList(Le.parenR, !1, this.options.ecmaVersion >= 8), this.checkYieldAwaitInDefaultParams();
};
Ir.parseClass = function(e, t) {
  this.next();
  var r = this.strict;
  this.strict = !0, this.parseClassId(e, t), this.parseClassSuper(e);
  var i = this.startNode(), n = !1;
  for (i.body = [], this.expect(Le.braceL); this.type !== Le.braceR; ) {
    var s = this.parseClassElement(e.superClass !== null);
    s && (i.body.push(s), s.type === "MethodDefinition" && s.kind === "constructor" && (n && this.raise(s.start, "Duplicate constructor in the same class"), n = !0));
  }
  return this.strict = r, this.next(), e.body = this.finishNode(i, "ClassBody"), this.finishNode(e, t ? "ClassDeclaration" : "ClassExpression");
};
Ir.parseClassElement = function(e) {
  var t = this;
  if (this.eat(Le.semi))
    return null;
  var r = this.startNode(), i = function(l, u) {
    u === void 0 && (u = !1);
    var c = t.start, f = t.startLoc;
    return t.eatContextual(l) ? t.type !== Le.parenL && (!u || !t.canInsertSemicolon()) ? !0 : (r.key && t.unexpected(), r.computed = !1, r.key = t.startNodeAt(c, f), r.key.name = l, t.finishNode(r.key, "Identifier"), !1) : !1;
  };
  r.kind = "method", r.static = i("static");
  var n = this.eat(Le.star), s = !1;
  n || (this.options.ecmaVersion >= 8 && i("async", !0) ? (s = !0, n = this.options.ecmaVersion >= 9 && this.eat(Le.star)) : i("get") ? r.kind = "get" : i("set") && (r.kind = "set")), r.key || this.parsePropertyName(r);
  var a = r.key, o = !1;
  return !r.computed && !r.static && (a.type === "Identifier" && a.name === "constructor" || a.type === "Literal" && a.value === "constructor") ? (r.kind !== "method" && this.raise(a.start, "Constructor can't have get/set modifier"), n && this.raise(a.start, "Constructor can't be a generator"), s && this.raise(a.start, "Constructor can't be an async method"), r.kind = "constructor", o = e) : r.static && a.type === "Identifier" && a.name === "prototype" && this.raise(a.start, "Classes may not have a static property named prototype"), this.parseClassMethod(r, n, s, o), r.kind === "get" && r.value.params.length !== 0 && this.raiseRecoverable(r.value.start, "getter should have no params"), r.kind === "set" && r.value.params.length !== 1 && this.raiseRecoverable(r.value.start, "setter should have exactly one param"), r.kind === "set" && r.value.params[0].type === "RestElement" && this.raiseRecoverable(r.value.params[0].start, "Setter cannot use rest params"), r;
};
Ir.parseClassMethod = function(e, t, r, i) {
  return e.value = this.parseMethod(t, r, i), this.finishNode(e, "MethodDefinition");
};
Ir.parseClassId = function(e, t) {
  this.type === Le.name ? (e.id = this.parseIdent(), t && this.checkLVal(e.id, xf, !1)) : (t === !0 && this.unexpected(), e.id = null);
};
Ir.parseClassSuper = function(e) {
  e.superClass = this.eat(Le._extends) ? this.parseExprSubscripts() : null;
};
Ir.parseExport = function(e, t) {
  if (this.next(), this.eat(Le.star))
    return this.options.ecmaVersion >= 11 && (this.eatContextual("as") ? (e.exported = this.parseIdent(!0), this.checkExport(t, e.exported.name, this.lastTokStart)) : e.exported = null), this.expectContextual("from"), this.type !== Le.string && this.unexpected(), e.source = this.parseExprAtom(), this.semicolon(), this.finishNode(e, "ExportAllDeclaration");
  if (this.eat(Le._default)) {
    this.checkExport(t, "default", this.lastTokStart);
    var r;
    if (this.type === Le._function || (r = this.isAsyncFunction())) {
      var i = this.startNode();
      this.next(), r && this.next(), e.declaration = this.parseFunction(i, hv | oSe, !1, r);
    } else if (this.type === Le._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.name, e.declaration.id.start), e.specifiers = [], e.source = null;
  else {
    if (e.declaration = null, e.specifiers = this.parseExportSpecifiers(t), this.eatContextual("from"))
      this.type !== Le.string && this.unexpected(), e.source = this.parseExprAtom();
    else {
      for (var s = 0, a = e.specifiers; s < a.length; s += 1) {
        var o = a[s];
        this.checkUnreserved(o.local), this.checkLocalExport(o.local);
      }
      e.source = null;
    }
    this.semicolon();
  }
  return this.finishNode(e, "ExportNamedDeclaration");
};
Ir.checkExport = function(e, t, r) {
  e && (dL(e, t) && this.raiseRecoverable(r, "Duplicate export '" + t + "'"), e[t] = !0);
};
Ir.checkPatternExport = function(e, t) {
  var r = t.type;
  if (r === "Identifier")
    this.checkExport(e, t.name, t.start);
  else if (r === "ObjectPattern")
    for (var i = 0, n = t.properties; i < n.length; i += 1) {
      var s = n[i];
      this.checkPatternExport(e, s);
    }
  else if (r === "ArrayPattern")
    for (var a = 0, o = t.elements; a < o.length; a += 1) {
      var l = o[a];
      l && this.checkPatternExport(e, l);
    }
  else
    r === "Property" ? this.checkPatternExport(e, t.value) : r === "AssignmentPattern" ? this.checkPatternExport(e, t.left) : r === "RestElement" ? this.checkPatternExport(e, t.argument) : r === "ParenthesizedExpression" && this.checkPatternExport(e, t.expression);
};
Ir.checkVariableExport = function(e, t) {
  if (e)
    for (var r = 0, i = t; r < i.length; r += 1) {
      var n = i[r];
      this.checkPatternExport(e, n.id);
    }
};
Ir.shouldParseExportStatement = function() {
  return this.type.keyword === "var" || this.type.keyword === "const" || this.type.keyword === "class" || this.type.keyword === "function" || this.isLet() || this.isAsyncFunction();
};
Ir.parseExportSpecifiers = function(e) {
  var t = [], r = !0;
  for (this.expect(Le.braceL); !this.eat(Le.braceR); ) {
    if (r)
      r = !1;
    else if (this.expect(Le.comma), this.afterTrailingComma(Le.braceR))
      break;
    var i = this.startNode();
    i.local = this.parseIdent(!0), i.exported = this.eatContextual("as") ? this.parseIdent(!0) : i.local, this.checkExport(e, i.exported.name, i.exported.start), t.push(this.finishNode(i, "ExportSpecifier"));
  }
  return t;
};
Ir.parseImport = function(e) {
  return this.next(), this.type === Le.string ? (e.specifiers = xfr, e.source = this.parseExprAtom()) : (e.specifiers = this.parseImportSpecifiers(), this.expectContextual("from"), e.source = this.type === Le.string ? this.parseExprAtom() : this.unexpected()), this.semicolon(), this.finishNode(e, "ImportDeclaration");
};
Ir.parseImportSpecifiers = function() {
  var e = [], t = !0;
  if (this.type === Le.name) {
    var r = this.startNode();
    if (r.local = this.parseIdent(), this.checkLVal(r.local, xf), e.push(this.finishNode(r, "ImportDefaultSpecifier")), !this.eat(Le.comma))
      return e;
  }
  if (this.type === Le.star) {
    var i = this.startNode();
    return this.next(), this.expectContextual("as"), i.local = this.parseIdent(), this.checkLVal(i.local, xf), e.push(this.finishNode(i, "ImportNamespaceSpecifier")), e;
  }
  for (this.expect(Le.braceL); !this.eat(Le.braceR); ) {
    if (t)
      t = !1;
    else if (this.expect(Le.comma), this.afterTrailingComma(Le.braceR))
      break;
    var n = this.startNode();
    n.imported = this.parseIdent(!0), this.eatContextual("as") ? n.local = this.parseIdent() : (this.checkUnreserved(n.imported), n.local = n.imported), this.checkLVal(n.local, xf), e.push(this.finishNode(n, "ImportSpecifier"));
  }
  return e;
};
Ir.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);
};
Ir.isDirectiveCandidate = function(e) {
  return e.type === "ExpressionStatement" && e.expression.type === "Literal" && typeof e.expression.value == "string" && // Reject parenthesized strings.
  (this.input[e.start] === '"' || this.input[e.start] === "'");
};
var Wf = Cn.prototype;
Wf.toAssignable = function(e, t, r) {
  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 "RestElement":
        break;
      case "ObjectExpression":
        e.type = "ObjectPattern", r && this.checkPatternErrors(r, !0);
        for (var i = 0, n = e.properties; i < n.length; i += 1) {
          var s = n[i];
          this.toAssignable(s, t), s.type === "RestElement" && (s.argument.type === "ArrayPattern" || s.argument.type === "ObjectPattern") && this.raise(s.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", r && this.checkPatternErrors(r, !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);
      case "AssignmentPattern":
        break;
      case "ParenthesizedExpression":
        this.toAssignable(e.expression, t, r);
        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
    r && this.checkPatternErrors(r, !0);
  return e;
};
Wf.toAssignableList = function(e, t) {
  for (var r = e.length, i = 0; i < r; i++) {
    var n = e[i];
    n && this.toAssignable(n, t);
  }
  if (r) {
    var s = e[r - 1];
    this.options.ecmaVersion === 6 && t && s && s.type === "RestElement" && s.argument.type !== "Identifier" && this.unexpected(s.argument.start);
  }
  return e;
};
Wf.parseSpread = function(e) {
  var t = this.startNode();
  return this.next(), t.argument = this.parseMaybeAssign(!1, e), this.finishNode(t, "SpreadElement");
};
Wf.parseRestBinding = function() {
  var e = this.startNode();
  return this.next(), this.options.ecmaVersion === 6 && this.type !== Le.name && this.unexpected(), e.argument = this.parseBindingAtom(), this.finishNode(e, "RestElement");
};
Wf.parseBindingAtom = function() {
  if (this.options.ecmaVersion >= 6)
    switch (this.type) {
      case Le.bracketL:
        var e = this.startNode();
        return this.next(), e.elements = this.parseBindingList(Le.bracketR, !0, !0), this.finishNode(e, "ArrayPattern");
      case Le.braceL:
        return this.parseObj(!0);
    }
  return this.parseIdent();
};
Wf.parseBindingList = function(e, t, r) {
  for (var i = [], n = !0; !this.eat(e); )
    if (n ? n = !1 : this.expect(Le.comma), t && this.type === Le.comma)
      i.push(null);
    else {
      if (r && this.afterTrailingComma(e))
        break;
      if (this.type === Le.ellipsis) {
        var s = this.parseRestBinding();
        this.parseBindingListItem(s), i.push(s), this.type === Le.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), i.push(a);
      }
    }
  return i;
};
Wf.parseBindingListItem = function(e) {
  return e;
};
Wf.parseMaybeDefault = function(e, t, r) {
  if (r = r || this.parseBindingAtom(), this.options.ecmaVersion < 6 || !this.eat(Le.eq))
    return r;
  var i = this.startNodeAt(e, t);
  return i.left = r, i.right = this.parseMaybeAssign(), this.finishNode(i, "AssignmentPattern");
};
Wf.checkLVal = function(e, t, r) {
  switch (t === void 0 && (t = nie), e.type) {
    case "Identifier":
      t === xf && e.name === "let" && this.raiseRecoverable(e.start, "let is disallowed as a lexically bound name"), this.strict && this.reservedWordsStrictBind.test(e.name) && this.raiseRecoverable(e.start, (t ? "Binding " : "Assigning to ") + e.name + " in strict mode"), r && (dL(r, e.name) && this.raiseRecoverable(e.start, "Argument name clash"), r[e.name] = !0), t !== nie && t !== aSe && 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":
      t && this.raiseRecoverable(e.start, "Binding member expression");
      break;
    case "ObjectPattern":
      for (var i = 0, n = e.properties; i < n.length; i += 1) {
        var s = n[i];
        this.checkLVal(s, t, r);
      }
      break;
    case "Property":
      this.checkLVal(e.value, t, r);
      break;
    case "ArrayPattern":
      for (var a = 0, o = e.elements; a < o.length; a += 1) {
        var l = o[a];
        l && this.checkLVal(l, t, r);
      }
      break;
    case "AssignmentPattern":
      this.checkLVal(e.left, t, r);
      break;
    case "RestElement":
      this.checkLVal(e.argument, t, r);
      break;
    case "ParenthesizedExpression":
      this.checkLVal(e.expression, t, r);
      break;
    default:
      this.raise(e.start, (t ? "Binding" : "Assigning to") + " rvalue");
  }
};
var Kr = Cn.prototype;
Kr.checkPropClash = function(e, t, r) {
  if (!(this.options.ecmaVersion >= 9 && e.type === "SpreadElement") && !(this.options.ecmaVersion >= 6 && (e.computed || e.method || e.shorthand))) {
    var i = e.key, n;
    switch (i.type) {
      case "Identifier":
        n = i.name;
        break;
      case "Literal":
        n = String(i.value);
        break;
      default:
        return;
    }
    var s = e.kind;
    if (this.options.ecmaVersion >= 6) {
      n === "__proto__" && s === "init" && (t.proto && (r ? r.doubleProto < 0 && (r.doubleProto = i.start) : this.raiseRecoverable(i.start, "Redefinition of __proto__ property")), t.proto = !0);
      return;
    }
    n = "$" + n;
    var a = t[n];
    if (a) {
      var o;
      s === "init" ? o = this.strict && a.init || a.get || a.set : o = a.init || a[s], o && this.raiseRecoverable(i.start, "Redefinition of property");
    } else
      a = t[n] = {
        init: !1,
        get: !1,
        set: !1
      };
    a[s] = !0;
  }
};
Kr.parseExpression = function(e, t) {
  var r = this.start, i = this.startLoc, n = this.parseMaybeAssign(e, t);
  if (this.type === Le.comma) {
    var s = this.startNodeAt(r, i);
    for (s.expressions = [n]; this.eat(Le.comma); )
      s.expressions.push(this.parseMaybeAssign(e, t));
    return this.finishNode(s, "SequenceExpression");
  }
  return n;
};
Kr.parseMaybeAssign = function(e, t, r) {
  if (this.isContextual("yield")) {
    if (this.inGenerator)
      return this.parseYield(e);
    this.exprAllowed = !1;
  }
  var i = !1, n = -1, s = -1;
  t ? (n = t.parenthesizedAssign, s = t.trailingComma, t.parenthesizedAssign = t.trailingComma = -1) : (t = new mL(), i = !0);
  var a = this.start, o = this.startLoc;
  (this.type === Le.parenL || this.type === Le.name) && (this.potentialArrowAt = this.start);
  var l = this.parseMaybeConditional(e, t);
  if (r && (l = r.call(this, l, a, o)), this.type.isAssign) {
    var u = this.startNodeAt(a, o);
    return u.operator = this.value, u.left = this.type === Le.eq ? this.toAssignable(l, !1, t) : l, i || (t.parenthesizedAssign = t.trailingComma = t.doubleProto = -1), t.shorthandAssign >= u.left.start && (t.shorthandAssign = -1), this.checkLVal(l), this.next(), u.right = this.parseMaybeAssign(e), this.finishNode(u, "AssignmentExpression");
  } else
    i && this.checkExpressionErrors(t, !0);
  return n > -1 && (t.parenthesizedAssign = n), s > -1 && (t.trailingComma = s), l;
};
Kr.parseMaybeConditional = function(e, t) {
  var r = this.start, i = this.startLoc, n = this.parseExprOps(e, t);
  if (this.checkExpressionErrors(t))
    return n;
  if (this.eat(Le.question)) {
    var s = this.startNodeAt(r, i);
    return s.test = n, s.consequent = this.parseMaybeAssign(), this.expect(Le.colon), s.alternate = this.parseMaybeAssign(e), this.finishNode(s, "ConditionalExpression");
  }
  return n;
};
Kr.parseExprOps = function(e, t) {
  var r = this.start, i = this.startLoc, n = this.parseMaybeUnary(t, !1);
  return this.checkExpressionErrors(t) || n.start === r && n.type === "ArrowFunctionExpression" ? n : this.parseExprOp(n, r, i, -1, e);
};
Kr.parseExprOp = function(e, t, r, i, n) {
  var s = this.type.binop;
  if (s != null && (!n || this.type !== Le._in) && s > i) {
    var a = this.type === Le.logicalOR || this.type === Le.logicalAND, o = this.type === Le.coalesce;
    o && (s = Le.logicalAND.binop);
    var l = this.value;
    this.next();
    var u = this.start, c = this.startLoc, f = this.parseExprOp(this.parseMaybeUnary(null, !1), u, c, s, n), h = this.buildBinary(t, r, e, f, l, a || o);
    return (a && this.type === Le.coalesce || o && (this.type === Le.logicalOR || this.type === Le.logicalAND)) && this.raiseRecoverable(this.start, "Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"), this.parseExprOp(h, t, r, i, n);
  }
  return e;
};
Kr.buildBinary = function(e, t, r, i, n, s) {
  var a = this.startNodeAt(e, t);
  return a.left = r, a.operator = n, a.right = i, this.finishNode(a, s ? "LogicalExpression" : "BinaryExpression");
};
Kr.parseMaybeUnary = function(e, t) {
  var r = this.start, i = this.startLoc, n;
  if (this.isContextual("await") && (this.inAsync || !this.inFunction && this.options.allowAwaitOutsideFunction))
    n = this.parseAwait(), t = !0;
  else if (this.type.prefix) {
    var s = this.startNode(), a = this.type === Le.incDec;
    s.operator = this.value, s.prefix = !0, this.next(), s.argument = this.parseMaybeUnary(null, !0), this.checkExpressionErrors(e, !0), a ? this.checkLVal(s.argument) : this.strict && s.operator === "delete" && s.argument.type === "Identifier" ? this.raiseRecoverable(s.start, "Deleting local variable in strict mode") : t = !0, n = this.finishNode(s, a ? "UpdateExpression" : "UnaryExpression");
  } else {
    if (n = this.parseExprSubscripts(e), this.checkExpressionErrors(e))
      return n;
    for (; this.type.postfix && !this.canInsertSemicolon(); ) {
      var o = this.startNodeAt(r, i);
      o.operator = this.value, o.prefix = !1, o.argument = n, this.checkLVal(n), this.next(), n = this.finishNode(o, "UpdateExpression");
    }
  }
  return !t && this.eat(Le.starstar) ? this.buildBinary(r, i, n, this.parseMaybeUnary(null, !1), "**", !1) : n;
};
Kr.parseExprSubscripts = function(e) {
  var t = this.start, r = this.startLoc, i = this.parseExprAtom(e);
  if (i.type === "ArrowFunctionExpression" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== ")")
    return i;
  var n = this.parseSubscripts(i, t, r);
  return e && n.type === "MemberExpression" && (e.parenthesizedAssign >= n.start && (e.parenthesizedAssign = -1), e.parenthesizedBind >= n.start && (e.parenthesizedBind = -1)), n;
};
Kr.parseSubscripts = function(e, t, r, i) {
  for (var n = 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, s = !1; ; ) {
    var a = this.parseSubscript(e, t, r, i, n, s);
    if (a.optional && (s = !0), a === e || a.type === "ArrowFunctionExpression") {
      if (s) {
        var o = this.startNodeAt(t, r);
        o.expression = a, a = this.finishNode(o, "ChainExpression");
      }
      return a;
    }
    e = a;
  }
};
Kr.parseSubscript = function(e, t, r, i, n, s) {
  var a = this.options.ecmaVersion >= 11, o = a && this.eat(Le.questionDot);
  i && o && this.raise(this.lastTokStart, "Optional chaining cannot appear in the callee of new expressions");
  var l = this.eat(Le.bracketL);
  if (l || o && this.type !== Le.parenL && this.type !== Le.backQuote || this.eat(Le.dot)) {
    var u = this.startNodeAt(t, r);
    u.object = e, u.property = l ? this.parseExpression() : this.parseIdent(this.options.allowReserved !== "never"), u.computed = !!l, l && this.expect(Le.bracketR), a && (u.optional = o), e = this.finishNode(u, "MemberExpression");
  } else if (!i && this.eat(Le.parenL)) {
    var c = new mL(), f = this.yieldPos, h = this.awaitPos, m = this.awaitIdentPos;
    this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0;
    var g = this.parseExprList(Le.parenR, this.options.ecmaVersion >= 8, !1, c);
    if (n && !o && !this.canInsertSemicolon() && this.eat(Le.arrow))
      return this.checkPatternErrors(c, !1), this.checkYieldAwaitInDefaultParams(), this.awaitIdentPos > 0 && this.raise(this.awaitIdentPos, "Cannot use 'await' as identifier inside an async function"), this.yieldPos = f, this.awaitPos = h, this.awaitIdentPos = m, this.parseArrowExpression(this.startNodeAt(t, r), g, !0);
    this.checkExpressionErrors(c, !0), this.yieldPos = f || this.yieldPos, this.awaitPos = h || this.awaitPos, this.awaitIdentPos = m || this.awaitIdentPos;
    var y = this.startNodeAt(t, r);
    y.callee = e, y.arguments = g, a && (y.optional = o), e = this.finishNode(y, "CallExpression");
  } else if (this.type === Le.backQuote) {
    (o || s) && this.raise(this.start, "Optional chaining cannot appear in the tag of tagged template expressions");
    var v = this.startNodeAt(t, r);
    v.tag = e, v.quasi = this.parseTemplate({ isTagged: !0 }), e = this.finishNode(v, "TaggedTemplateExpression");
  }
  return e;
};
Kr.parseExprAtom = function(e) {
  this.type === Le.slash && this.readRegexp();
  var t, r = this.potentialArrowAt === this.start;
  switch (this.type) {
    case Le._super:
      return this.allowSuper || this.raise(this.start, "'super' keyword outside a method"), t = this.startNode(), this.next(), this.type === Le.parenL && !this.allowDirectSuper && this.raise(t.start, "super() call outside constructor of a subclass"), this.type !== Le.dot && this.type !== Le.bracketL && this.type !== Le.parenL && this.unexpected(), this.finishNode(t, "Super");
    case Le._this:
      return t = this.startNode(), this.next(), this.finishNode(t, "ThisExpression");
    case Le.name:
      var i = this.start, n = this.startLoc, s = this.containsEsc, a = this.parseIdent(!1);
      if (this.options.ecmaVersion >= 8 && !s && a.name === "async" && !this.canInsertSemicolon() && this.eat(Le._function))
        return this.parseFunction(this.startNodeAt(i, n), 0, !1, !0);
      if (r && !this.canInsertSemicolon()) {
        if (this.eat(Le.arrow))
          return this.parseArrowExpression(this.startNodeAt(i, n), [a], !1);
        if (this.options.ecmaVersion >= 8 && a.name === "async" && this.type === Le.name && !s)
          return a = this.parseIdent(!1), (this.canInsertSemicolon() || !this.eat(Le.arrow)) && this.unexpected(), this.parseArrowExpression(this.startNodeAt(i, n), [a], !0);
      }
      return a;
    case Le.regexp:
      var o = this.value;
      return t = this.parseLiteral(o.value), t.regex = { pattern: o.pattern, flags: o.flags }, t;
    case Le.num:
    case Le.string:
      return this.parseLiteral(this.value);
    case Le._null:
    case Le._true:
    case Le._false:
      return t = this.startNode(), t.value = this.type === Le._null ? null : this.type === Le._true, t.raw = this.type.keyword, this.next(), this.finishNode(t, "Literal");
    case Le.parenL:
      var l = this.start, u = this.parseParenAndDistinguishExpression(r);
      return e && (e.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(u) && (e.parenthesizedAssign = l), e.parenthesizedBind < 0 && (e.parenthesizedBind = l)), u;
    case Le.bracketL:
      return t = this.startNode(), this.next(), t.elements = this.parseExprList(Le.bracketR, !0, !0, e), this.finishNode(t, "ArrayExpression");
    case Le.braceL:
      return this.parseObj(!1, e);
    case Le._function:
      return t = this.startNode(), this.next(), this.parseFunction(t, 0);
    case Le._class:
      return this.parseClass(this.startNode(), !1);
    case Le._new:
      return this.parseNew();
    case Le.backQuote:
      return this.parseTemplate();
    case Le._import:
      return this.options.ecmaVersion >= 11 ? this.parseExprImport() : this.unexpected();
    default:
      this.unexpected();
  }
};
Kr.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 Le.parenL:
      return this.parseDynamicImport(e);
    case Le.dot:
      return e.meta = t, this.parseImportMeta(e);
    default:
      this.unexpected();
  }
};
Kr.parseDynamicImport = function(e) {
  if (this.next(), e.source = this.parseMaybeAssign(), !this.eat(Le.parenR)) {
    var t = this.start;
    this.eat(Le.comma) && this.eat(Le.parenR) ? this.raiseRecoverable(t, "Trailing comma is not allowed in import()") : this.unexpected(t);
  }
  return this.finishNode(e, "ImportExpression");
};
Kr.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.raiseRecoverable(e.start, "Cannot use 'import.meta' outside a module"), this.finishNode(e, "MetaProperty");
};
Kr.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");
};
Kr.parseParenExpression = function() {
  this.expect(Le.parenL);
  var e = this.parseExpression();
  return this.expect(Le.parenR), e;
};
Kr.parseParenAndDistinguishExpression = function(e) {
  var t = this.start, r = this.startLoc, i, n = this.options.ecmaVersion >= 8;
  if (this.options.ecmaVersion >= 6) {
    this.next();
    var s = this.start, a = this.startLoc, o = [], l = !0, u = !1, c = new mL(), f = this.yieldPos, h = this.awaitPos, m;
    for (this.yieldPos = 0, this.awaitPos = 0; this.type !== Le.parenR; )
      if (l ? l = !1 : this.expect(Le.comma), n && this.afterTrailingComma(Le.parenR, !0)) {
        u = !0;
        break;
      } else if (this.type === Le.ellipsis) {
        m = this.start, o.push(this.parseParenItem(this.parseRestBinding())), this.type === Le.comma && this.raise(this.start, "Comma is not permitted after the rest element");
        break;
      } else
        o.push(this.parseMaybeAssign(!1, c, this.parseParenItem));
    var g = this.start, y = this.startLoc;
    if (this.expect(Le.parenR), e && !this.canInsertSemicolon() && this.eat(Le.arrow))
      return this.checkPatternErrors(c, !1), this.checkYieldAwaitInDefaultParams(), this.yieldPos = f, this.awaitPos = h, this.parseParenArrowList(t, r, o);
    (!o.length || u) && this.unexpected(this.lastTokStart), m && this.unexpected(m), this.checkExpressionErrors(c, !0), this.yieldPos = f || this.yieldPos, this.awaitPos = h || this.awaitPos, o.length > 1 ? (i = this.startNodeAt(s, a), i.expressions = o, this.finishNodeAt(i, "SequenceExpression", g, y)) : i = o[0];
  } else
    i = this.parseParenExpression();
  if (this.options.preserveParens) {
    var v = this.startNodeAt(t, r);
    return v.expression = i, this.finishNode(v, "ParenthesizedExpression");
  } else
    return i;
};
Kr.parseParenItem = function(e) {
  return e;
};
Kr.parseParenArrowList = function(e, t, r) {
  return this.parseArrowExpression(this.startNodeAt(e, t), r);
};
var Efr = [];
Kr.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(Le.dot)) {
    e.meta = t;
    var r = 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'"), r && this.raiseRecoverable(e.start, "'new.target' must not contain escaped characters"), this.inNonArrowFunction() || this.raiseRecoverable(e.start, "'new.target' can only be used in functions"), this.finishNode(e, "MetaProperty");
  }
  var i = this.start, n = this.startLoc, s = this.type === Le._import;
  return e.callee = this.parseSubscripts(this.parseExprAtom(), i, n, !0), s && e.callee.type === "ImportExpression" && this.raise(i, "Cannot use new with import()"), this.eat(Le.parenL) ? e.arguments = this.parseExprList(Le.parenR, this.options.ecmaVersion >= 8, !1) : e.arguments = Efr, this.finishNode(e, "NewExpression");
};
Kr.parseTemplateElement = function(e) {
  var t = e.isTagged, r = this.startNode();
  return this.type === Le.invalidTemplate ? (t || this.raiseRecoverable(this.start, "Bad escape sequence in untagged template literal"), r.value = {
    raw: this.value,
    cooked: null
  }) : r.value = {
    raw: this.input.slice(this.start, this.end).replace(/\r\n?/g, "\n"),
    cooked: this.value
  }, this.next(), r.tail = this.type === Le.backQuote, this.finishNode(r, "TemplateElement");
};
Kr.parseTemplate = function(e) {
  e === void 0 && (e = {});
  var t = e.isTagged;
  t === void 0 && (t = !1);
  var r = this.startNode();
  this.next(), r.expressions = [];
  var i = this.parseTemplateElement({ isTagged: t });
  for (r.quasis = [i]; !i.tail; )
    this.type === Le.eof && this.raise(this.pos, "Unterminated template literal"), this.expect(Le.dollarBraceL), r.expressions.push(this.parseExpression()), this.expect(Le.braceR), r.quasis.push(i = this.parseTemplateElement({ isTagged: t }));
  return this.next(), this.finishNode(r, "TemplateLiteral");
};
Kr.isAsyncProp = function(e) {
  return !e.computed && e.key.type === "Identifier" && e.key.name === "async" && (this.type === Le.name || this.type === Le.num || this.type === Le.string || this.type === Le.bracketL || this.type.keyword || this.options.ecmaVersion >= 9 && this.type === Le.star) && !Oo.test(this.input.slice(this.lastTokEnd, this.start));
};
Kr.parseObj = function(e, t) {
  var r = this.startNode(), i = !0, n = {};
  for (r.properties = [], this.next(); !this.eat(Le.braceR); ) {
    if (i)
      i = !1;
    else if (this.expect(Le.comma), this.options.ecmaVersion >= 5 && this.afterTrailingComma(Le.braceR))
      break;
    var s = this.parseProperty(e, t);
    e || this.checkPropClash(s, n, t), r.properties.push(s);
  }
  return this.finishNode(r, e ? "ObjectPattern" : "ObjectExpression");
};
Kr.parseProperty = function(e, t) {
  var r = this.startNode(), i, n, s, a;
  if (this.options.ecmaVersion >= 9 && this.eat(Le.ellipsis))
    return e ? (r.argument = this.parseIdent(!1), this.type === Le.comma && this.raise(this.start, "Comma is not permitted after the rest element"), this.finishNode(r, "RestElement")) : (this.type === Le.parenL && t && (t.parenthesizedAssign < 0 && (t.parenthesizedAssign = this.start), t.parenthesizedBind < 0 && (t.parenthesizedBind = this.start)), r.argument = this.parseMaybeAssign(!1, t), this.type === Le.comma && t && t.trailingComma < 0 && (t.trailingComma = this.start), this.finishNode(r, "SpreadElement"));
  this.options.ecmaVersion >= 6 && (r.method = !1, r.shorthand = !1, (e || t) && (s = this.start, a = this.startLoc), e || (i = this.eat(Le.star)));
  var o = this.containsEsc;
  return this.parsePropertyName(r), !e && !o && this.options.ecmaVersion >= 8 && !i && this.isAsyncProp(r) ? (n = !0, i = this.options.ecmaVersion >= 9 && this.eat(Le.star), this.parsePropertyName(r, t)) : n = !1, this.parsePropertyValue(r, e, i, n, s, a, t, o), this.finishNode(r, "Property");
};
Kr.parsePropertyValue = function(e, t, r, i, n, s, a, o) {
  if ((r || i) && this.type === Le.colon && this.unexpected(), this.eat(Le.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 === Le.parenL)
    t && this.unexpected(), e.kind = "init", e.method = !0, e.value = this.parseMethod(r, i);
  else if (!t && !o && this.options.ecmaVersion >= 5 && !e.computed && e.key.type === "Identifier" && (e.key.name === "get" || e.key.name === "set") && this.type !== Le.comma && this.type !== Le.braceR && this.type !== Le.eq) {
    (r || i) && this.unexpected(), e.kind = e.key.name, this.parsePropertyName(e), e.value = this.parseMethod(!1);
    var l = e.kind === "get" ? 0 : 1;
    if (e.value.params.length !== l) {
      var u = e.value.start;
      e.kind === "get" ? this.raiseRecoverable(u, "getter should have no params") : this.raiseRecoverable(u, "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" ? ((r || i) && this.unexpected(), this.checkUnreserved(e.key), e.key.name === "await" && !this.awaitIdentPos && (this.awaitIdentPos = n), e.kind = "init", t ? e.value = this.parseMaybeDefault(n, s, e.key) : this.type === Le.eq && a ? (a.shorthandAssign < 0 && (a.shorthandAssign = this.start), e.value = this.parseMaybeDefault(n, s, e.key)) : e.value = e.key, e.shorthand = !0) : this.unexpected();
};
Kr.parsePropertyName = function(e) {
  if (this.options.ecmaVersion >= 6) {
    if (this.eat(Le.bracketL))
      return e.computed = !0, e.key = this.parseMaybeAssign(), this.expect(Le.bracketR), e.key;
    e.computed = !1;
  }
  return e.key = this.type === Le.num || this.type === Le.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never");
};
Kr.initFunction = function(e) {
  e.id = null, this.options.ecmaVersion >= 6 && (e.generator = e.expression = !1), this.options.ecmaVersion >= 8 && (e.async = !1);
};
Kr.parseMethod = function(e, t, r) {
  var i = this.startNode(), n = this.yieldPos, s = this.awaitPos, a = this.awaitIdentPos;
  return this.initFunction(i), this.options.ecmaVersion >= 6 && (i.generator = e), this.options.ecmaVersion >= 8 && (i.async = !!t), this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0, this.enterScope(yq(t, i.generator) | rSe | (r ? iSe : 0)), this.expect(Le.parenL), i.params = this.parseBindingList(Le.parenR, !1, this.options.ecmaVersion >= 8), this.checkYieldAwaitInDefaultParams(), this.parseFunctionBody(i, !1, !0), this.yieldPos = n, this.awaitPos = s, this.awaitIdentPos = a, this.finishNode(i, "FunctionExpression");
};
Kr.parseArrowExpression = function(e, t, r) {
  var i = this.yieldPos, n = this.awaitPos, s = this.awaitIdentPos;
  return this.enterScope(yq(r, !1) | eSe), this.initFunction(e), this.options.ecmaVersion >= 8 && (e.async = !!r), this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0, e.params = this.toAssignableList(t, !0), this.parseFunctionBody(e, !0, !1), this.yieldPos = i, this.awaitPos = n, this.awaitIdentPos = s, this.finishNode(e, "ArrowFunctionExpression");
};
Kr.parseFunctionBody = function(e, t, r) {
  var i = t && this.type !== Le.braceL, n = this.strict, s = !1;
  if (i)
    e.body = this.parseMaybeAssign(), e.expression = !0, this.checkParams(e, !1);
  else {
    var a = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(e.params);
    (!n || a) && (s = this.strictDirective(this.end), s && a && this.raiseRecoverable(e.start, "Illegal 'use strict' directive in function with non-simple parameter list"));
    var o = this.labels;
    this.labels = [], s && (this.strict = !0), this.checkParams(e, !n && !s && !t && !r && this.isSimpleParamList(e.params)), this.strict && e.id && this.checkLVal(e.id, aSe), e.body = this.parseBlock(!1, void 0, s && !n), e.expression = !1, this.adaptDirectivePrologue(e.body.body), this.labels = o;
  }
  this.exitScope();
};
Kr.isSimpleParamList = function(e) {
  for (var t = 0, r = e; t < r.length; t += 1) {
    var i = r[t];
    if (i.type !== "Identifier")
      return !1;
  }
  return !0;
};
Kr.checkParams = function(e, t) {
  for (var r = {}, i = 0, n = e.params; i < n.length; i += 1) {
    var s = n[i];
    this.checkLVal(s, gq, t ? null : r);
  }
};
Kr.parseExprList = function(e, t, r, i) {
  for (var n = [], s = !0; !this.eat(e); ) {
    if (s)
      s = !1;
    else if (this.expect(Le.comma), t && this.afterTrailingComma(e))
      break;
    var a = void 0;
    r && this.type === Le.comma ? a = null : this.type === Le.ellipsis ? (a = this.parseSpread(i), i && this.type === Le.comma && i.trailingComma < 0 && (i.trailingComma = this.start)) : a = this.parseMaybeAssign(!1, i), n.push(a);
  }
  return n;
};
Kr.checkUnreserved = function(e) {
  var t = e.start, r = e.end, i = e.name;
  if (this.inGenerator && i === "yield" && this.raiseRecoverable(t, "Cannot use 'yield' as identifier inside a generator"), this.inAsync && i === "await" && this.raiseRecoverable(t, "Cannot use 'await' as identifier inside an async function"), this.keywords.test(i) && this.raise(t, "Unexpected keyword '" + i + "'"), !(this.options.ecmaVersion < 6 && this.input.slice(t, r).indexOf("\\") !== -1)) {
    var n = this.strict ? this.reservedWordsStrict : this.reservedWords;
    n.test(i) && (!this.inAsync && i === "await" && this.raiseRecoverable(t, "Cannot use keyword 'await' outside an async function"), this.raiseRecoverable(t, "The keyword '" + i + "' is reserved"));
  }
};
Kr.parseIdent = function(e, t) {
  var r = this.startNode();
  return this.type === Le.name ? r.name = this.value : this.type.keyword ? (r.name = this.type.keyword, (r.name === "class" || r.name === "function") && (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46) && this.context.pop()) : this.unexpected(), this.next(!!e), this.finishNode(r, "Identifier"), e || (this.checkUnreserved(r), r.name === "await" && !this.awaitIdentPos && (this.awaitIdentPos = r.start)), r;
};
Kr.parseYield = function(e) {
  this.yieldPos || (this.yieldPos = this.start);
  var t = this.startNode();
  return this.next(), this.type === Le.semi || this.canInsertSemicolon() || this.type !== Le.star && !this.type.startsExpr ? (t.delegate = !1, t.argument = null) : (t.delegate = this.eat(Le.star), t.argument = this.parseMaybeAssign(e)), this.finishNode(t, "YieldExpression");
};
Kr.parseAwait = function() {
  this.awaitPos || (this.awaitPos = this.start);
  var e = this.startNode();
  return this.next(), e.argument = this.parseMaybeUnary(null, !1), this.finishNode(e, "AwaitExpression");
};
var xA = Cn.prototype;
xA.raise = function(e, t) {
  var r = dq(this.input, e);
  t += " (" + r.line + ":" + r.column + ")";
  var i = new SyntaxError(t);
  throw i.pos = e, i.loc = r, i.raisedAt = this.pos, i;
};
xA.raiseRecoverable = xA.raise;
xA.curPosition = function() {
  if (this.options.locations)
    return new ag(this.curLine, this.pos - this.lineStart);
};
var Jh = Cn.prototype, Pfr = function(t) {
  this.flags = t, this.var = [], this.lexical = [], this.functions = [];
};
Jh.enterScope = function(e) {
  this.scopeStack.push(new Pfr(e));
};
Jh.exitScope = function() {
  this.scopeStack.pop();
};
Jh.treatFunctionsAsVarInScope = function(e) {
  return e.flags & NS || !this.inModule && e.flags & hT;
};
Jh.declareName = function(e, t, r) {
  var i = !1;
  if (t === xf) {
    var n = this.currentScope();
    i = n.lexical.indexOf(e) > -1 || n.functions.indexOf(e) > -1 || n.var.indexOf(e) > -1, n.lexical.push(e), this.inModule && n.flags & hT && delete this.undefinedExports[e];
  } else if (t === sSe) {
    var s = this.currentScope();
    s.lexical.push(e);
  } else if (t === nSe) {
    var a = this.currentScope();
    this.treatFunctionsAsVar ? i = a.lexical.indexOf(e) > -1 : i = a.lexical.indexOf(e) > -1 || a.var.indexOf(e) > -1, a.functions.push(e);
  } else
    for (var o = this.scopeStack.length - 1; o >= 0; --o) {
      var l = this.scopeStack[o];
      if (l.lexical.indexOf(e) > -1 && !(l.flags & tSe && l.lexical[0] === e) || !this.treatFunctionsAsVarInScope(l) && l.functions.indexOf(e) > -1) {
        i = !0;
        break;
      }
      if (l.var.push(e), this.inModule && l.flags & hT && delete this.undefinedExports[e], l.flags & mq)
        break;
    }
  i && this.raiseRecoverable(r, "Identifier '" + e + "' has already been declared");
};
Jh.checkLocalExport = function(e) {
  this.scopeStack[0].lexical.indexOf(e.name) === -1 && this.scopeStack[0].var.indexOf(e.name) === -1 && (this.undefinedExports[e.name] = e);
};
Jh.currentScope = function() {
  return this.scopeStack[this.scopeStack.length - 1];
};
Jh.currentVarScope = function() {
  for (var e = this.scopeStack.length - 1; ; e--) {
    var t = this.scopeStack[e];
    if (t.flags & mq)
      return t;
  }
};
Jh.currentThisScope = function() {
  for (var e = this.scopeStack.length - 1; ; e--) {
    var t = this.scopeStack[e];
    if (t.flags & mq && !(t.flags & eSe))
      return t;
  }
};
var yL = function(t, r, i) {
  this.type = "", this.start = r, this.end = 0, t.options.locations && (this.loc = new OS(t, i)), t.options.directSourceFile && (this.sourceFile = t.options.directSourceFile), t.options.ranges && (this.range = [r, 0]);
}, gL = Cn.prototype;
gL.startNode = function() {
  return new yL(this, this.start, this.startLoc);
};
gL.startNodeAt = function(e, t) {
  return new yL(this, e, t);
};
function lSe(e, t, r, i) {
  return e.type = t, e.end = r, this.options.locations && (e.loc.end = i), this.options.ranges && (e.range[1] = r), e;
}
gL.finishNode = function(e, t) {
  return lSe.call(this, e, t, this.lastTokEnd, this.lastTokEndLoc);
};
gL.finishNodeAt = function(e, t, r, i) {
  return lSe.call(this, e, t, r, i);
};
var El = function(t, r, i, n, s) {
  this.token = t, this.isExpr = !!r, this.preserveSpace = !!i, this.override = n, this.generator = !!s;
}, kn = {
  b_stat: new El("{", !1),
  b_expr: new El("{", !0),
  b_tmpl: new El("${", !1),
  p_stat: new El("(", !1),
  p_expr: new El("(", !0),
  q_tmpl: new El("`", !0, !0, function(e) {
    return e.tryReadTemplateToken();
  }),
  f_stat: new El("function", !1),
  f_expr: new El("function", !0),
  f_expr_gen: new El("function", !0, !1, null, !0),
  f_gen: new El("function", !1, !1, null, !0)
}, bL = Cn.prototype;
bL.initialContext = function() {
  return [kn.b_stat];
};
bL.braceIsBlock = function(e) {
  var t = this.curContext();
  return t === kn.f_expr || t === kn.f_stat ? !0 : e === Le.colon && (t === kn.b_stat || t === kn.b_expr) ? !t.isExpr : e === Le._return || e === Le.name && this.exprAllowed ? Oo.test(this.input.slice(this.lastTokEnd, this.start)) : e === Le._else || e === Le.semi || e === Le.eof || e === Le.parenR || e === Le.arrow ? !0 : e === Le.braceL ? t === kn.b_stat : e === Le._var || e === Le._const || e === Le.name ? !1 : !this.exprAllowed;
};
bL.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;
};
bL.updateContext = function(e) {
  var t, r = this.type;
  r.keyword && e === Le.dot ? this.exprAllowed = !1 : (t = r.updateContext) ? t.call(this, e) : this.exprAllowed = r.beforeExpr;
};
Le.parenR.updateContext = Le.braceR.updateContext = function() {
  if (this.context.length === 1) {
    this.exprAllowed = !0;
    return;
  }
  var e = this.context.pop();
  e === kn.b_stat && this.curContext().token === "function" && (e = this.context.pop()), this.exprAllowed = !e.isExpr;
};
Le.braceL.updateContext = function(e) {
  this.context.push(this.braceIsBlock(e) ? kn.b_stat : kn.b_expr), this.exprAllowed = !0;
};
Le.dollarBraceL.updateContext = function() {
  this.context.push(kn.b_tmpl), this.exprAllowed = !0;
};
Le.parenL.updateContext = function(e) {
  var t = e === Le._if || e === Le._for || e === Le._with || e === Le._while;
  this.context.push(t ? kn.p_stat : kn.p_expr), this.exprAllowed = !0;
};
Le.incDec.updateContext = function() {
};
Le._function.updateContext = Le._class.updateContext = function(e) {
  e.beforeExpr && e !== Le.semi && e !== Le._else && !(e === Le._return && Oo.test(this.input.slice(this.lastTokEnd, this.start))) && !((e === Le.colon || e === Le.braceL) && this.curContext() === kn.b_stat) ? this.context.push(kn.f_expr) : this.context.push(kn.f_stat), this.exprAllowed = !1;
};
Le.backQuote.updateContext = function() {
  this.curContext() === kn.q_tmpl ? this.context.pop() : this.context.push(kn.q_tmpl), this.exprAllowed = !1;
};
Le.star.updateContext = function(e) {
  if (e === Le._function) {
    var t = this.context.length - 1;
    this.context[t] === kn.f_expr ? this.context[t] = kn.f_expr_gen : this.context[t] = kn.f_gen;
  }
  this.exprAllowed = !0;
};
Le.name.updateContext = function(e) {
  var t = !1;
  this.options.ecmaVersion >= 6 && e !== Le.dot && (this.value === "of" && !this.exprAllowed || this.value === "yield" && this.inGeneratorContext()) && (t = !0), this.exprAllowed = t;
};
var uSe = "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", cSe = uSe + " Extended_Pictographic", wfr = cSe, Afr = {
  9: uSe,
  10: cSe,
  11: wfr
}, sie = "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", pSe = "Adlam Adlm Ahom 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 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", fSe = pSe + " Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd", Cfr = fSe + " Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho", _fr = {
  9: pSe,
  10: fSe,
  11: Cfr
}, hSe = {};
function vq(e) {
  var t = hSe[e] = {
    binary: Ld(Afr[e] + " " + sie),
    nonBinary: {
      General_Category: Ld(sie),
      Script: Ld(_fr[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;
}
vq(9);
vq(10);
vq(11);
var dr = Cn.prototype, Hf = function(t) {
  this.parser = t, this.validFlags = "gim" + (t.options.ecmaVersion >= 6 ? "uy" : "") + (t.options.ecmaVersion >= 9 ? "s" : ""), this.unicodeProperties = hSe[t.options.ecmaVersion >= 11 ? 11 : 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 = [];
};
Hf.prototype.reset = function(t, r, i) {
  var n = i.indexOf("u") !== -1;
  this.start = t | 0, this.source = r + "", this.flags = i, this.switchU = n && this.parser.options.ecmaVersion >= 6, this.switchN = n && this.parser.options.ecmaVersion >= 9;
};
Hf.prototype.raise = function(t) {
  this.parser.raiseRecoverable(this.start, "Invalid regular expression: /" + this.source + "/: " + t);
};
Hf.prototype.at = function(t, r) {
  r === void 0 && (r = !1);
  var i = this.source, n = i.length;
  if (t >= n)
    return -1;
  var s = i.charCodeAt(t);
  if (!(r || this.switchU) || s <= 55295 || s >= 57344 || t + 1 >= n)
    return s;
  var a = i.charCodeAt(t + 1);
  return a >= 56320 && a <= 57343 ? (s << 10) + a - 56613888 : s;
};
Hf.prototype.nextIndex = function(t, r) {
  r === void 0 && (r = !1);
  var i = this.source, n = i.length;
  if (t >= n)
    return n;
  var s = i.charCodeAt(t), a;
  return !(r || this.switchU) || s <= 55295 || s >= 57344 || t + 1 >= n || (a = i.charCodeAt(t + 1)) < 56320 || a > 57343 ? t + 1 : t + 2;
};
Hf.prototype.current = function(t) {
  return t === void 0 && (t = !1), this.at(this.pos, t);
};
Hf.prototype.lookahead = function(t) {
  return t === void 0 && (t = !1), this.at(this.nextIndex(this.pos, t), t);
};
Hf.prototype.advance = function(t) {
  t === void 0 && (t = !1), this.pos = this.nextIndex(this.pos, t);
};
Hf.prototype.eat = function(t, r) {
  return r === void 0 && (r = !1), this.current(r) === t ? (this.advance(r), !0) : !1;
};
function EA(e) {
  return e <= 65535 ? String.fromCharCode(e) : (e -= 65536, String.fromCharCode((e >> 10) + 55296, (e & 1023) + 56320));
}
dr.validateRegExpFlags = function(e) {
  for (var t = e.validFlags, r = e.flags, i = 0; i < r.length; i++) {
    var n = r.charAt(i);
    t.indexOf(n) === -1 && this.raise(e.start, "Invalid regular expression flag"), r.indexOf(n, i + 1) > -1 && this.raise(e.start, "Duplicate regular expression flag");
  }
};
dr.validateRegExpPattern = function(e) {
  this.regexp_pattern(e), !e.switchN && this.options.ecmaVersion >= 9 && e.groupNames.length > 0 && (e.switchN = !0, this.regexp_pattern(e));
};
dr.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, r = e.backReferenceNames; t < r.length; t += 1) {
    var i = r[t];
    e.groupNames.indexOf(i) === -1 && e.raise("Invalid named capture referenced");
  }
};
dr.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");
};
dr.regexp_alternative = function(e) {
  for (; e.pos < e.source.length && this.regexp_eatTerm(e); )
    ;
};
dr.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;
};
dr.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
      /* B */
    ) || e.eat(
      98
      /* b */
    ))
      return !0;
    e.pos = t;
  }
  if (e.eat(
    40
    /* ( */
  ) && e.eat(
    63
    /* ? */
  )) {
    var r = !1;
    if (this.options.ecmaVersion >= 9 && (r = e.eat(
      60
      /* < */
    )), e.eat(
      61
      /* = */
    ) || e.eat(
      33
      /* ! */
    ))
      return this.regexp_disjunction(e), e.eat(
        41
        /* ) */
      ) || e.raise("Unterminated group"), e.lastAssertionIsQuantifiable = !r, !0;
  }
  return e.pos = t, !1;
};
dr.regexp_eatQuantifier = function(e, t) {
  return t === void 0 && (t = !1), this.regexp_eatQuantifierPrefix(e, t) ? (e.eat(
    63
    /* ? */
  ), !0) : !1;
};
dr.regexp_eatQuantifierPrefix = function(e, t) {
  return e.eat(
    42
    /* * */
  ) || e.eat(
    43
    /* + */
  ) || e.eat(
    63
    /* ? */
  ) || this.regexp_eatBracedQuantifier(e, t);
};
dr.regexp_eatBracedQuantifier = function(e, t) {
  var r = e.pos;
  if (e.eat(
    123
    /* { */
  )) {
    var i = 0, n = -1;
    if (this.regexp_eatDecimalDigits(e) && (i = e.lastIntValue, e.eat(
      44
      /* , */
    ) && this.regexp_eatDecimalDigits(e) && (n = e.lastIntValue), e.eat(
      125
      /* } */
    )))
      return n !== -1 && n < i && !t && e.raise("numbers out of order in {} quantifier"), !0;
    e.switchU && !t && e.raise("Incomplete quantifier"), e.pos = r;
  }
  return !1;
};
dr.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);
};
dr.regexp_eatReverseSolidusAtomEscape = function(e) {
  var t = e.pos;
  if (e.eat(
    92
    /* \ */
  )) {
    if (this.regexp_eatAtomEscape(e))
      return !0;
    e.pos = t;
  }
  return !1;
};
dr.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;
};
dr.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;
};
dr.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);
};
dr.regexp_eatInvalidBracedQuantifier = function(e) {
  return this.regexp_eatBracedQuantifier(e, !0) && e.raise("Nothing to repeat"), !1;
};
dr.regexp_eatSyntaxCharacter = function(e) {
  var t = e.current();
  return dSe(t) ? (e.lastIntValue = t, e.advance(), !0) : !1;
};
function dSe(e) {
  return e === 36 || e >= 40 && e <= 43 || e === 46 || e === 63 || e >= 91 && e <= 94 || e >= 123 && e <= 125;
}
dr.regexp_eatPatternCharacters = function(e) {
  for (var t = e.pos, r = 0; (r = e.current()) !== -1 && !dSe(r); )
    e.advance();
  return e.pos !== t;
};
dr.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;
};
dr.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");
  }
};
dr.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;
};
dr.regexp_eatRegExpIdentifierName = function(e) {
  if (e.lastStringValue = "", this.regexp_eatRegExpIdentifierStart(e)) {
    for (e.lastStringValue += EA(e.lastIntValue); this.regexp_eatRegExpIdentifierPart(e); )
      e.lastStringValue += EA(e.lastIntValue);
    return !0;
  }
  return !1;
};
dr.regexp_eatRegExpIdentifierStart = function(e) {
  var t = e.pos, r = this.options.ecmaVersion >= 11, i = e.current(r);
  return e.advance(r), i === 92 && this.regexp_eatRegExpUnicodeEscapeSequence(e, r) && (i = e.lastIntValue), Ifr(i) ? (e.lastIntValue = i, !0) : (e.pos = t, !1);
};
function Ifr(e) {
  return Nf(e, !0) || e === 36 || e === 95;
}
dr.regexp_eatRegExpIdentifierPart = function(e) {
  var t = e.pos, r = this.options.ecmaVersion >= 11, i = e.current(r);
  return e.advance(r), i === 92 && this.regexp_eatRegExpUnicodeEscapeSequence(e, r) && (i = e.lastIntValue), kfr(i) ? (e.lastIntValue = i, !0) : (e.pos = t, !1);
};
function kfr(e) {
  return Qd(e, !0) || e === 36 || e === 95 || e === 8204 || e === 8205;
}
dr.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);
};
dr.regexp_eatBackReference = function(e) {
  var t = e.pos;
  if (this.regexp_eatDecimalEscape(e)) {
    var r = e.lastIntValue;
    if (e.switchU)
      return r > e.maxBackReference && (e.maxBackReference = r), !0;
    if (r <= e.numCapturingParens)
      return !0;
    e.pos = t;
  }
  return !1;
};
dr.regexp_eatKGroupName = function(e) {
  if (e.eat(
    107
    /* k */
  )) {
    if (this.regexp_eatGroupName(e))
      return e.backReferenceNames.push(e.lastStringValue), !0;
    e.raise("Invalid named reference");
  }
  return !1;
};
dr.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);
};
dr.regexp_eatCControlLetter = function(e) {
  var t = e.pos;
  if (e.eat(
    99
    /* c */
  )) {
    if (this.regexp_eatControlLetter(e))
      return !0;
    e.pos = t;
  }
  return !1;
};
dr.regexp_eatZero = function(e) {
  return e.current() === 48 && !vL(e.lookahead()) ? (e.lastIntValue = 0, e.advance(), !0) : !1;
};
dr.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;
};
dr.regexp_eatControlLetter = function(e) {
  var t = e.current();
  return mSe(t) ? (e.lastIntValue = t % 32, e.advance(), !0) : !1;
};
function mSe(e) {
  return e >= 65 && e <= 90 || e >= 97 && e <= 122;
}
dr.regexp_eatRegExpUnicodeEscapeSequence = function(e, t) {
  t === void 0 && (t = !1);
  var r = e.pos, i = t || e.switchU;
  if (e.eat(
    117
    /* u */
  )) {
    if (this.regexp_eatFixedHexDigits(e, 4)) {
      var n = e.lastIntValue;
      if (i && n >= 55296 && n <= 56319) {
        var s = e.pos;
        if (e.eat(
          92
          /* \ */
        ) && e.eat(
          117
          /* u */
        ) && 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 = s, e.lastIntValue = n;
      }
      return !0;
    }
    if (i && e.eat(
      123
      /* { */
    ) && this.regexp_eatHexDigits(e) && e.eat(
      125
      /* } */
    ) && Ofr(e.lastIntValue))
      return !0;
    i && e.raise("Invalid unicode escape"), e.pos = r;
  }
  return !1;
};
function Ofr(e) {
  return e >= 0 && e <= 1114111;
}
dr.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;
};
dr.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;
};
dr.regexp_eatCharacterClassEscape = function(e) {
  var t = e.current();
  if (Nfr(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 Nfr(e) {
  return e === 100 || e === 68 || e === 115 || e === 83 || e === 119 || e === 87;
}
dr.regexp_eatUnicodePropertyValueExpression = function(e) {
  var t = e.pos;
  if (this.regexp_eatUnicodePropertyName(e) && e.eat(
    61
    /* = */
  )) {
    var r = e.lastStringValue;
    if (this.regexp_eatUnicodePropertyValue(e)) {
      var i = e.lastStringValue;
      return this.regexp_validateUnicodePropertyNameAndValue(e, r, i), !0;
    }
  }
  if (e.pos = t, this.regexp_eatLoneUnicodePropertyNameOrValue(e)) {
    var n = e.lastStringValue;
    return this.regexp_validateUnicodePropertyNameOrValue(e, n), !0;
  }
  return !1;
};
dr.regexp_validateUnicodePropertyNameAndValue = function(e, t, r) {
  dL(e.unicodeProperties.nonBinary, t) || e.raise("Invalid property name"), e.unicodeProperties.nonBinary[t].test(r) || e.raise("Invalid property value");
};
dr.regexp_validateUnicodePropertyNameOrValue = function(e, t) {
  e.unicodeProperties.binary.test(t) || e.raise("Invalid property name");
};
dr.regexp_eatUnicodePropertyName = function(e) {
  var t = 0;
  for (e.lastStringValue = ""; ySe(t = e.current()); )
    e.lastStringValue += EA(t), e.advance();
  return e.lastStringValue !== "";
};
function ySe(e) {
  return mSe(e) || e === 95;
}
dr.regexp_eatUnicodePropertyValue = function(e) {
  var t = 0;
  for (e.lastStringValue = ""; Dfr(t = e.current()); )
    e.lastStringValue += EA(t), e.advance();
  return e.lastStringValue !== "";
};
function Dfr(e) {
  return ySe(e) || vL(e);
}
dr.regexp_eatLoneUnicodePropertyNameOrValue = function(e) {
  return this.regexp_eatUnicodePropertyValue(e);
};
dr.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;
};
dr.regexp_classRanges = function(e) {
  for (; this.regexp_eatClassAtom(e); ) {
    var t = e.lastIntValue;
    if (e.eat(
      45
      /* - */
    ) && this.regexp_eatClassAtom(e)) {
      var r = e.lastIntValue;
      e.switchU && (t === -1 || r === -1) && e.raise("Invalid character class"), t !== -1 && r !== -1 && t > r && e.raise("Range out of order in character class");
    }
  }
};
dr.regexp_eatClassAtom = function(e) {
  var t = e.pos;
  if (e.eat(
    92
    /* \ */
  )) {
    if (this.regexp_eatClassEscape(e))
      return !0;
    if (e.switchU) {
      var r = e.current();
      (r === 99 || vSe(r)) && e.raise("Invalid class escape"), e.raise("Invalid escape");
    }
    e.pos = t;
  }
  var i = e.current();
  return i !== 93 ? (e.lastIntValue = i, e.advance(), !0) : !1;
};
dr.regexp_eatClassEscape = function(e) {
  var t = e.pos;
  if (e.eat(
    98
    /* b */
  ))
    return e.lastIntValue = 8, !0;
  if (e.switchU && e.eat(
    45
    /* - */
  ))
    return e.lastIntValue = 45, !0;
  if (!e.switchU && e.eat(
    99
    /* c */
  )) {
    if (this.regexp_eatClassControlLetter(e))
      return !0;
    e.pos = t;
  }
  return this.regexp_eatCharacterClassEscape(e) || this.regexp_eatCharacterEscape(e);
};
dr.regexp_eatClassControlLetter = function(e) {
  var t = e.current();
  return vL(t) || t === 95 ? (e.lastIntValue = t % 32, e.advance(), !0) : !1;
};
dr.regexp_eatHexEscapeSequence = function(e) {
  var t = e.pos;
  if (e.eat(
    120
    /* x */
  )) {
    if (this.regexp_eatFixedHexDigits(e, 2))
      return !0;
    e.switchU && e.raise("Invalid escape"), e.pos = t;
  }
  return !1;
};
dr.regexp_eatDecimalDigits = function(e) {
  var t = e.pos, r = 0;
  for (e.lastIntValue = 0; vL(r = e.current()); )
    e.lastIntValue = 10 * e.lastIntValue + (r - 48), e.advance();
  return e.pos !== t;
};
function vL(e) {
  return e >= 48 && e <= 57;
}
dr.regexp_eatHexDigits = function(e) {
  var t = e.pos, r = 0;
  for (e.lastIntValue = 0; gSe(r = e.current()); )
    e.lastIntValue = 16 * e.lastIntValue + bSe(r), e.advance();
  return e.pos !== t;
};
function gSe(e) {
  return e >= 48 && e <= 57 || e >= 65 && e <= 70 || e >= 97 && e <= 102;
}
function bSe(e) {
  return e >= 65 && e <= 70 ? 10 + (e - 65) : e >= 97 && e <= 102 ? 10 + (e - 97) : e - 48;
}
dr.regexp_eatLegacyOctalEscapeSequence = function(e) {
  if (this.regexp_eatOctalDigit(e)) {
    var t = e.lastIntValue;
    if (this.regexp_eatOctalDigit(e)) {
      var r = e.lastIntValue;
      t <= 3 && this.regexp_eatOctalDigit(e) ? e.lastIntValue = t * 64 + r * 8 + e.lastIntValue : e.lastIntValue = t * 8 + r;
    } else
      e.lastIntValue = t;
    return !0;
  }
  return !1;
};
dr.regexp_eatOctalDigit = function(e) {
  var t = e.current();
  return vSe(t) ? (e.lastIntValue = t - 48, e.advance(), !0) : (e.lastIntValue = 0, !1);
};
function vSe(e) {
  return e >= 48 && e <= 55;
}
dr.regexp_eatFixedHexDigits = function(e, t) {
  var r = e.pos;
  e.lastIntValue = 0;
  for (var i = 0; i < t; ++i) {
    var n = e.current();
    if (!gSe(n))
      return e.pos = r, !1;
    e.lastIntValue = 16 * e.lastIntValue + bSe(n), e.advance();
  }
  return !0;
};
var TL = function(t) {
  this.type = t.type, this.value = t.value, this.start = t.start, this.end = t.end, t.options.locations && (this.loc = new OS(t, t.startLoc, t.endLoc)), t.options.ranges && (this.range = [t.start, t.end]);
}, ei = Cn.prototype;
ei.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 TL(this)), this.lastTokEnd = this.end, this.lastTokStart = this.start, this.lastTokEndLoc = this.endLoc, this.lastTokStartLoc = this.startLoc, this.nextToken();
};
ei.getToken = function() {
  return this.next(), new TL(this);
};
typeof Symbol != "undefined" && (ei[Symbol.iterator] = function() {
  var e = this;
  return {
    next: function() {
      var t = e.getToken();
      return {
        done: t.type === Le.eof,
        value: t
      };
    }
  };
});
ei.curContext = function() {
  return this.context[this.context.length - 1];
};
ei.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(Le.eof);
  if (e.override)
    return e.override(this);
  this.readToken(this.fullCharCodeAtPos());
};
ei.readToken = function(e) {
  return Nf(e, this.options.ecmaVersion >= 6) || e === 92 ? this.readWord() : this.getTokenFromCode(e);
};
ei.fullCharCodeAtPos = function() {
  var e = this.input.charCodeAt(this.pos);
  if (e <= 55295 || e >= 57344)
    return e;
  var t = this.input.charCodeAt(this.pos + 1);
  return (e << 10) + t - 56613888;
};
ei.skipBlockComment = function() {
  var e = this.options.onComment && this.curPosition(), t = this.pos, r = this.input.indexOf("*/", this.pos += 2);
  if (r === -1 && this.raise(this.pos - 2, "Unterminated comment"), this.pos = r + 2, this.options.locations) {
    sg.lastIndex = t;
    for (var i; (i = sg.exec(this.input)) && i.index < this.pos; )
      ++this.curLine, this.lineStart = i.index + i[0].length;
  }
  this.options.onComment && this.options.onComment(
    !0,
    this.input.slice(t + 2, r),
    t,
    this.pos,
    e,
    this.curPosition()
  );
};
ei.skipLineComment = function(e) {
  for (var t = this.pos, r = this.options.onComment && this.curPosition(), i = this.input.charCodeAt(this.pos += e); this.pos < this.input.length && !zg(i); )
    i = this.input.charCodeAt(++this.pos);
  this.options.onComment && this.options.onComment(
    !1,
    this.input.slice(t + e, this.pos),
    t,
    this.pos,
    r,
    this.curPosition()
  );
};
ei.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 && hq.test(String.fromCharCode(e)))
            ++this.pos;
          else
            break e;
      }
    }
};
ei.finishToken = function(e, t) {
  this.end = this.pos, this.options.locations && (this.endLoc = this.curPosition());
  var r = this.type;
  this.type = e, this.value = t, this.updateContext(r);
};
ei.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(Le.ellipsis)) : (++this.pos, this.finishToken(Le.dot));
};
ei.readToken_slash = function() {
  var e = this.input.charCodeAt(this.pos + 1);
  return this.exprAllowed ? (++this.pos, this.readRegexp()) : e === 61 ? this.finishOp(Le.assign, 2) : this.finishOp(Le.slash, 1);
};
ei.readToken_mult_modulo_exp = function(e) {
  var t = this.input.charCodeAt(this.pos + 1), r = 1, i = e === 42 ? Le.star : Le.modulo;
  return this.options.ecmaVersion >= 7 && e === 42 && t === 42 && (++r, i = Le.starstar, t = this.input.charCodeAt(this.pos + 2)), t === 61 ? this.finishOp(Le.assign, r + 1) : this.finishOp(i, r);
};
ei.readToken_pipe_amp = function(e) {
  var t = this.input.charCodeAt(this.pos + 1);
  if (t === e) {
    if (this.options.ecmaVersion >= 12) {
      var r = this.input.charCodeAt(this.pos + 2);
      if (r === 61)
        return this.finishOp(Le.assign, 3);
    }
    return this.finishOp(e === 124 ? Le.logicalOR : Le.logicalAND, 2);
  }
  return t === 61 ? this.finishOp(Le.assign, 2) : this.finishOp(e === 124 ? Le.bitwiseOR : Le.bitwiseAND, 1);
};
ei.readToken_caret = function() {
  var e = this.input.charCodeAt(this.pos + 1);
  return e === 61 ? this.finishOp(Le.assign, 2) : this.finishOp(Le.bitwiseXOR, 1);
};
ei.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 || Oo.test(this.input.slice(this.lastTokEnd, this.pos))) ? (this.skipLineComment(3), this.skipSpace(), this.nextToken()) : this.finishOp(Le.incDec, 2) : t === 61 ? this.finishOp(Le.assign, 2) : this.finishOp(Le.plusMin, 1);
};
ei.readToken_lt_gt = function(e) {
  var t = this.input.charCodeAt(this.pos + 1), r = 1;
  return t === e ? (r = e === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2, this.input.charCodeAt(this.pos + r) === 61 ? this.finishOp(Le.assign, r + 1) : this.finishOp(Le.bitShift, r)) : 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 && (r = 2), this.finishOp(Le.relational, r));
};
ei.readToken_eq_excl = function(e) {
  var t = this.input.charCodeAt(this.pos + 1);
  return t === 61 ? this.finishOp(Le.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) : e === 61 && t === 62 && this.options.ecmaVersion >= 6 ? (this.pos += 2, this.finishToken(Le.arrow)) : this.finishOp(e === 61 ? Le.eq : Le.prefix, 1);
};
ei.readToken_question = function() {
  var e = this.options.ecmaVersion;
  if (e >= 11) {
    var t = this.input.charCodeAt(this.pos + 1);
    if (t === 46) {
      var r = this.input.charCodeAt(this.pos + 2);
      if (r < 48 || r > 57)
        return this.finishOp(Le.questionDot, 2);
    }
    if (t === 63) {
      if (e >= 12) {
        var i = this.input.charCodeAt(this.pos + 2);
        if (i === 61)
          return this.finishOp(Le.assign, 3);
      }
      return this.finishOp(Le.coalesce, 2);
    }
  }
  return this.finishOp(Le.question, 1);
};
ei.getTokenFromCode = function(e) {
  switch (e) {
    case 46:
      return this.readToken_dot();
    case 40:
      return ++this.pos, this.finishToken(Le.parenL);
    case 41:
      return ++this.pos, this.finishToken(Le.parenR);
    case 59:
      return ++this.pos, this.finishToken(Le.semi);
    case 44:
      return ++this.pos, this.finishToken(Le.comma);
    case 91:
      return ++this.pos, this.finishToken(Le.bracketL);
    case 93:
      return ++this.pos, this.finishToken(Le.bracketR);
    case 123:
      return ++this.pos, this.finishToken(Le.braceL);
    case 125:
      return ++this.pos, this.finishToken(Le.braceR);
    case 58:
      return ++this.pos, this.finishToken(Le.colon);
    case 96:
      if (this.options.ecmaVersion < 6)
        break;
      return ++this.pos, this.finishToken(Le.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(Le.prefix, 1);
  }
  this.raise(this.pos, "Unexpected character '" + Tq(e) + "'");
};
ei.finishOp = function(e, t) {
  var r = this.input.slice(this.pos, this.pos + t);
  return this.pos += t, this.finishToken(e, r);
};
ei.readRegexp = function() {
  for (var e, t, r = this.pos; ; ) {
    this.pos >= this.input.length && this.raise(r, "Unterminated regular expression");
    var i = this.input.charAt(this.pos);
    if (Oo.test(i) && this.raise(r, "Unterminated regular expression"), e)
      e = !1;
    else {
      if (i === "[")
        t = !0;
      else if (i === "]" && t)
        t = !1;
      else if (i === "/" && !t)
        break;
      e = i === "\\";
    }
    ++this.pos;
  }
  var n = this.input.slice(r, this.pos);
  ++this.pos;
  var s = this.pos, a = this.readWord1();
  this.containsEsc && this.unexpected(s);
  var o = this.regexpState || (this.regexpState = new Hf(this));
  o.reset(r, n, a), this.validateRegExpFlags(o), this.validateRegExpPattern(o);
  var l = null;
  try {
    l = new RegExp(n, a);
  } catch (u) {
  }
  return this.finishToken(Le.regexp, { pattern: n, flags: a, value: l });
};
ei.readInt = function(e, t, r) {
  for (var i = this.options.ecmaVersion >= 12 && t === void 0, n = r && this.input.charCodeAt(this.pos) === 48, s = this.pos, a = 0, o = 0, l = 0, u = t == null ? 1 / 0 : t; l < u; ++l, ++this.pos) {
    var c = this.input.charCodeAt(this.pos), f = void 0;
    if (i && c === 95) {
      n && this.raiseRecoverable(this.pos, "Numeric separator is not allowed in legacy octal numeric literals"), o === 95 && this.raiseRecoverable(this.pos, "Numeric separator must be exactly one underscore"), l === 0 && this.raiseRecoverable(this.pos, "Numeric separator is not allowed at the first of digits"), o = c;
      continue;
    }
    if (c >= 97 ? f = c - 97 + 10 : c >= 65 ? f = c - 65 + 10 : c >= 48 && c <= 57 ? f = c - 48 : f = 1 / 0, f >= e)
      break;
    o = c, a = a * e + f;
  }
  return i && o === 95 && this.raiseRecoverable(this.pos - 1, "Numeric separator is not allowed at the last of digits"), this.pos === s || t != null && this.pos - s !== t ? null : a;
};
function Lfr(e, t) {
  return t ? parseInt(e, 8) : parseFloat(e.replace(/_/g, ""));
}
function TSe(e) {
  return typeof BigInt != "function" ? null : BigInt(e.replace(/_/g, ""));
}
ei.readRadixNumber = function(e) {
  var t = this.pos;
  this.pos += 2;
  var r = this.readInt(e);
  return r == null && this.raise(this.start + 2, "Expected number in radix " + e), this.options.ecmaVersion >= 11 && this.input.charCodeAt(this.pos) === 110 ? (r = TSe(this.input.slice(t, this.pos)), ++this.pos) : Nf(this.fullCharCodeAtPos()) && this.raise(this.pos, "Identifier directly after number"), this.finishToken(Le.num, r);
};
ei.readNumber = function(e) {
  var t = this.pos;
  !e && this.readInt(10, void 0, !0) === null && this.raise(t, "Invalid number");
  var r = this.pos - t >= 2 && this.input.charCodeAt(t) === 48;
  r && this.strict && this.raise(t, "Invalid number");
  var i = this.input.charCodeAt(this.pos);
  if (!r && !e && this.options.ecmaVersion >= 11 && i === 110) {
    var n = TSe(this.input.slice(t, this.pos));
    return ++this.pos, Nf(this.fullCharCodeAtPos()) && this.raise(this.pos, "Identifier directly after number"), this.finishToken(Le.num, n);
  }
  r && /[89]/.test(this.input.slice(t, this.pos)) && (r = !1), i === 46 && !r && (++this.pos, this.readInt(10), i = this.input.charCodeAt(this.pos)), (i === 69 || i === 101) && !r && (i = this.input.charCodeAt(++this.pos), (i === 43 || i === 45) && ++this.pos, this.readInt(10) === null && this.raise(t, "Invalid number")), Nf(this.fullCharCodeAtPos()) && this.raise(this.pos, "Identifier directly after number");
  var s = Lfr(this.input.slice(t, this.pos), r);
  return this.finishToken(Le.num, s);
};
ei.readCodePoint = function() {
  var e = this.input.charCodeAt(this.pos), t;
  if (e === 123) {
    this.options.ecmaVersion < 6 && this.unexpected();
    var r = ++this.pos;
    t = this.readHexChar(this.input.indexOf("}", this.pos) - this.pos), ++this.pos, t > 1114111 && this.invalidStringToken(r, "Code point out of bounds");
  } else
    t = this.readHexChar(4);
  return t;
};
function Tq(e) {
  return e <= 65535 ? String.fromCharCode(e) : (e -= 65536, String.fromCharCode((e >> 10) + 55296, (e & 1023) + 56320));
}
ei.readString = function(e) {
  for (var t = "", r = ++this.pos; ; ) {
    this.pos >= this.input.length && this.raise(this.start, "Unterminated string constant");
    var i = this.input.charCodeAt(this.pos);
    if (i === e)
      break;
    i === 92 ? (t += this.input.slice(r, this.pos), t += this.readEscapedChar(!1), r = this.pos) : (zg(i, this.options.ecmaVersion >= 10) && this.raise(this.start, "Unterminated string constant"), ++this.pos);
  }
  return t += this.input.slice(r, this.pos++), this.finishToken(Le.string, t);
};
var SSe = {};
ei.tryReadTemplateToken = function() {
  this.inTemplateElement = !0;
  try {
    this.readTmplToken();
  } catch (e) {
    if (e === SSe)
      this.readInvalidTemplateToken();
    else
      throw e;
  }
  this.inTemplateElement = !1;
};
ei.invalidStringToken = function(e, t) {
  if (this.inTemplateElement && this.options.ecmaVersion >= 9)
    throw SSe;
  this.raise(e, t);
};
ei.readTmplToken = function() {
  for (var e = "", t = this.pos; ; ) {
    this.pos >= this.input.length && this.raise(this.start, "Unterminated template");
    var r = this.input.charCodeAt(this.pos);
    if (r === 96 || r === 36 && this.input.charCodeAt(this.pos + 1) === 123)
      return this.pos === this.start && (this.type === Le.template || this.type === Le.invalidTemplate) ? r === 36 ? (this.pos += 2, this.finishToken(Le.dollarBraceL)) : (++this.pos, this.finishToken(Le.backQuote)) : (e += this.input.slice(t, this.pos), this.finishToken(Le.template, e));
    if (r === 92)
      e += this.input.slice(t, this.pos), e += this.readEscapedChar(!0), t = this.pos;
    else if (zg(r)) {
      switch (e += this.input.slice(t, this.pos), ++this.pos, r) {
        case 13:
          this.input.charCodeAt(this.pos) === 10 && ++this.pos;
        case 10:
          e += "\n";
          break;
        default:
          e += String.fromCharCode(r);
          break;
      }
      this.options.locations && (++this.curLine, this.lineStart = this.pos), t = this.pos;
    } else
      ++this.pos;
  }
};
ei.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(Le.invalidTemplate, this.input.slice(this.start, this.pos));
    }
  this.raise(this.start, "Unterminated template");
};
ei.readEscapedChar = function(e) {
  var t = this.input.charCodeAt(++this.pos);
  switch (++this.pos, t) {
    case 110:
      return "\n";
    case 114:
      return "\r";
    case 120:
      return String.fromCharCode(this.readHexChar(2));
    case 117:
      return Tq(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 (e) {
        var r = this.pos - 1;
        return this.invalidStringToken(
          r,
          "Invalid escape sequence in template string"
        ), null;
      }
    default:
      if (t >= 48 && t <= 55) {
        var i = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0], n = parseInt(i, 8);
        return n > 255 && (i = i.slice(0, -1), n = parseInt(i, 8)), this.pos += i.length - 1, t = this.input.charCodeAt(this.pos), (i !== "0" || t === 56 || t === 57) && (this.strict || e) && this.invalidStringToken(
          this.pos - 1 - i.length,
          e ? "Octal literal in template string" : "Octal literal in strict mode"
        ), String.fromCharCode(n);
      }
      return zg(t) ? "" : String.fromCharCode(t);
  }
};
ei.readHexChar = function(e) {
  var t = this.pos, r = this.readInt(16, e);
  return r === null && this.invalidStringToken(t, "Bad character escape sequence"), r;
};
ei.readWord1 = function() {
  this.containsEsc = !1;
  for (var e = "", t = !0, r = this.pos, i = this.options.ecmaVersion >= 6; this.pos < this.input.length; ) {
    var n = this.fullCharCodeAtPos();
    if (Qd(n, i))
      this.pos += n <= 65535 ? 1 : 2;
    else if (n === 92) {
      this.containsEsc = !0, e += this.input.slice(r, this.pos);
      var s = this.pos;
      this.input.charCodeAt(++this.pos) !== 117 && this.invalidStringToken(this.pos, "Expecting Unicode escape sequence \\uXXXX"), ++this.pos;
      var a = this.readCodePoint();
      (t ? Nf : Qd)(a, i) || this.invalidStringToken(s, "Invalid Unicode escape"), e += Tq(a), r = this.pos;
    } else
      break;
    t = !1;
  }
  return e + this.input.slice(r, this.pos);
};
ei.readWord = function() {
  var e = this.readWord1(), t = Le.name;
  return this.keywords.test(e) && (t = hL[e]), this.finishToken(t, e);
};
var xSe = "7.4.1";
Cn.acorn = {
  Parser: Cn,
  version: xSe,
  defaultOptions: SA,
  Position: ag,
  SourceLocation: OS,
  getLineInfo: dq,
  Node: yL,
  TokenType: yi,
  tokTypes: Le,
  keywordTypes: hL,
  TokContext: El,
  tokContexts: kn,
  isIdentifierChar: Qd,
  isIdentifierStart: Nf,
  Token: TL,
  isNewLine: zg,
  lineBreak: Oo,
  lineBreakG: sg,
  nonASCIIwhitespace: hq
};
function Mfr(e, t) {
  return Cn.parse(e, t);
}
function Rfr(e, t, r) {
  return Cn.parseExpressionAt(e, t, r);
}
function Bfr(e, t) {
  return Cn.tokenizer(e, t);
}
const Ffr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  Node: yL,
  Parser: Cn,
  Position: ag,
  SourceLocation: OS,
  TokContext: El,
  Token: TL,
  TokenType: yi,
  defaultOptions: SA,
  getLineInfo: dq,
  isIdentifierChar: Qd,
  isIdentifierStart: Nf,
  isNewLine: zg,
  keywordTypes: hL,
  lineBreak: Oo,
  lineBreakG: sg,
  nonASCIIwhitespace: hq,
  parse: Mfr,
  parseExpressionAt: Rfr,
  tokContexts: kn,
  tokTypes: Le,
  tokenizer: Bfr,
  version: xSe
}, Symbol.toStringTag, { value: "Module" })), jfr = /* @__PURE__ */ EC(Ffr);
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/
var aie = Object.getOwnPropertySymbols, $fr = Object.prototype.hasOwnProperty, Ufr = Object.prototype.propertyIsEnumerable;
function qfr(e) {
  if (e == null)
    throw new TypeError("Object.assign cannot be called with null or undefined");
  return Object(e);
}
function Vfr() {
  try {
    if (!Object.assign)
      return !1;
    var e = new String("abc");
    if (e[5] = "de", Object.getOwnPropertyNames(e)[0] === "5")
      return !1;
    for (var t = {}, r = 0; r < 10; r++)
      t["_" + String.fromCharCode(r)] = r;
    var i = Object.getOwnPropertyNames(t).map(function(s) {
      return t[s];
    });
    if (i.join("") !== "0123456789")
      return !1;
    var n = {};
    return "abcdefghijklmnopqrst".split("").forEach(function(s) {
      n[s] = s;
    }), Object.keys(Object.assign({}, n)).join("") === "abcdefghijklmnopqrst";
  } catch (s) {
    return !1;
  }
}
var Wfr = Vfr() ? Object.assign : function(e, t) {
  for (var r, i = qfr(e), n, s = 1; s < arguments.length; s++) {
    r = Object(arguments[s]);
    for (var a in r)
      $fr.call(r, a) && (i[a] = r[a]);
    if (aie) {
      n = aie(r);
      for (var o = 0; o < n.length; o++)
        Ufr.call(r, n[o]) && (i[n[o]] = r[n[o]]);
    }
  }
  return i;
}, oie = jfr, Hfr = Wfr, Kfr = Gfr, zfr = {
  throw: !1,
  strict: !1,
  lineComment: !1
};
function Gfr(e, t) {
  t = Hfr({}, zfr, t);
  try {
    var r = new oie.Parser(t, e, 0);
    t.strict && (r.strict = !0), t.lineComment || (r.skipLineComment = function(i) {
      this.raise(this.pos, "Line comments not allowed in an expression");
    }), r.nextToken(), r.parseExpression(), r.type !== oie.tokTypes.eof && r.unexpected();
  } catch (i) {
    if (!t.throw)
      return !1;
    throw i;
  }
  return !0;
}
var _j = { exports: {} }, lie = yhe, Yfr = d_(), Xfr = ehe, Jfr = Eg, Ij;
if (Yfr) {
  var Qfr = lie("RegExp.prototype.exec"), uie = {}, LB = function() {
    throw uie;
  }, cie = {
    toString: LB,
    valueOf: LB
  };
  typeof Symbol.toPrimitive == "symbol" && (cie[Symbol.toPrimitive] = LB), Ij = function(t) {
    if (!t || typeof t != "object")
      return !1;
    var r = (
      /** @type {NonNullable<typeof gOPD>} */
      Jfr(
        /** @type {{ lastIndex?: unknown }} */
        t,
        "lastIndex"
      )
    ), i = r && Xfr(r, "value");
    if (!i)
      return !1;
    try {
      Qfr(
        t,
        /** @type {string} */
        /** @type {unknown} */
        cie
      );
    } catch (n) {
      return n === uie;
    }
  };
} else {
  var Zfr = lie("Object.prototype.toString"), ehr = "[object RegExp]";
  Ij = function(t) {
    return !t || typeof t != "object" && typeof t != "function" ? !1 : Zfr(t) === ehr;
  };
}
var thr = Ij;
(function(e, t) {
  var r = thr;
  t = e.exports = a;
  var i = t.TOKEN_TYPES = {
    LINE_COMMENT: "//",
    BLOCK_COMMENT: "/**/",
    SINGLE_QUOTE: "'",
    DOUBLE_QUOTE: '"',
    TEMPLATE_QUOTE: "`",
    REGEXP: "//g"
  }, n = t.BRACKETS = {
    "(": ")",
    "{": "}",
    "[": "]"
  }, s = {
    ")": "(",
    "}": "{",
    "]": "["
  };
  t.parse = a;
  function a(g, y, v) {
    v = v || {}, y = y || t.defaultState();
    for (var T = v.start || 0, S = v.end || g.length, P = T; P < S; ) {
      try {
        l(g[P], y);
      } catch (x) {
        throw x.index = P, x;
      }
      P++;
    }
    return y;
  }
  t.parseUntil = o;
  function o(g, y, v) {
    v = v || {};
    for (var T = v.start || 0, S = T, P = t.defaultState(); S < g.length; ) {
      if ((v.ignoreNesting || !P.isNesting(v)) && c(g, y, S)) {
        var x = S;
        return {
          start: T,
          end: x,
          src: g.substring(T, x)
        };
      }
      try {
        l(g[S], P);
      } catch (D) {
        throw D.index = S, D;
      }
      S++;
    }
    var C = new Error("The end of the string was reached with no closing bracket found.");
    throw C.code = "CHARACTER_PARSER:END_OF_STRING_REACHED", C.index = S, C;
  }
  t.parseChar = l;
  function l(g, y) {
    if (g.length !== 1) {
      var v = new Error("Character must be a string of length 1");
      throw v.name = "InvalidArgumentError", v.code = "CHARACTER_PARSER:CHAR_LENGTH_NOT_ONE", v;
    }
    y = y || t.defaultState(), y.src += g;
    var T = y.isComment(), S = y.history ? y.history[0] : "";
    switch (y.regexpStart && ((g === "/" || g == "*") && y.stack.pop(), y.regexpStart = !1), y.current()) {
      case i.LINE_COMMENT:
        g === "\n" && y.stack.pop();
        break;
      case i.BLOCK_COMMENT:
        y.lastChar === "*" && g === "/" && y.stack.pop();
        break;
      case i.SINGLE_QUOTE:
        g === "'" && !y.escaped ? y.stack.pop() : g === "\\" && !y.escaped ? y.escaped = !0 : y.escaped = !1;
        break;
      case i.DOUBLE_QUOTE:
        g === '"' && !y.escaped ? y.stack.pop() : g === "\\" && !y.escaped ? y.escaped = !0 : y.escaped = !1;
        break;
      case i.TEMPLATE_QUOTE:
        g === "`" && !y.escaped ? (y.stack.pop(), y.hasDollar = !1) : g === "\\" && !y.escaped ? (y.escaped = !0, y.hasDollar = !1) : g === "$" && !y.escaped ? y.hasDollar = !0 : g === "{" && y.hasDollar ? y.stack.push(n[g]) : (y.escaped = !1, y.hasDollar = !1);
        break;
      case i.REGEXP:
        g === "/" && !y.escaped ? y.stack.pop() : g === "\\" && !y.escaped ? y.escaped = !0 : y.escaped = !1;
        break;
      default:
        if (g in n)
          y.stack.push(n[g]);
        else if (g in s) {
          if (y.current() !== g) {
            var v = new SyntaxError("Mismatched Bracket: " + g);
            throw v.code = "CHARACTER_PARSER:MISMATCHED_BRACKET", v;
          }
          y.stack.pop();
        } else
          S === "/" && g === "/" ? (y.history = y.history.substr(1), y.stack.push(i.LINE_COMMENT)) : S === "/" && g === "*" ? (y.history = y.history.substr(1), y.stack.push(i.BLOCK_COMMENT)) : g === "/" && m(y.history) ? (y.stack.push(i.REGEXP), y.regexpStart = !0) : g === "'" ? y.stack.push(i.SINGLE_QUOTE) : g === '"' ? y.stack.push(i.DOUBLE_QUOTE) : g === "`" && y.stack.push(i.TEMPLATE_QUOTE);
        break;
    }
    return !y.isComment() && !T && (y.history = g + y.history), y.lastChar = g, y;
  }
  t.defaultState = function() {
    return new u();
  };
  function u() {
    this.stack = [], this.regexpStart = !1, this.escaped = !1, this.hasDollar = !1, this.src = "", this.history = "", this.lastChar = "";
  }
  u.prototype.current = function() {
    return this.stack[this.stack.length - 1];
  }, u.prototype.isString = function() {
    return this.current() === i.SINGLE_QUOTE || this.current() === i.DOUBLE_QUOTE || this.current() === i.TEMPLATE_QUOTE;
  }, u.prototype.isComment = function() {
    return this.current() === i.LINE_COMMENT || this.current() === i.BLOCK_COMMENT;
  }, u.prototype.isNesting = function(g) {
    return g && g.ignoreLineComment && this.stack.length === 1 && this.stack[0] === i.LINE_COMMENT ? !1 : !!this.stack.length;
  };
  function c(g, y, v) {
    return r(y) ? y.test(g.substr(v || 0)) : g.substr(v || 0, y.length) === y;
  }
  t.isPunctuator = f;
  function f(g) {
    if (!g)
      return !0;
    var y = g.charCodeAt(0);
    switch (y) {
      case 46:
      case 40:
      case 41:
      case 59:
      case 44:
      case 123:
      case 125:
      case 91:
      case 93:
      case 58:
      case 63:
      case 126:
      case 37:
      case 38:
      case 42:
      case 43:
      case 45:
      case 47:
      case 60:
      case 62:
      case 94:
      case 124:
      case 33:
      case 61:
        return !0;
      default:
        return !1;
    }
  }
  t.isKeyword = h;
  function h(g) {
    return g === "if" || g === "in" || g === "do" || g === "var" || g === "for" || g === "new" || g === "try" || g === "let" || g === "this" || g === "else" || g === "case" || g === "void" || g === "with" || g === "enum" || g === "while" || g === "break" || g === "catch" || g === "throw" || g === "const" || g === "yield" || g === "class" || g === "super" || g === "return" || g === "typeof" || g === "delete" || g === "switch" || g === "export" || g === "import" || g === "default" || g === "finally" || g === "extends" || g === "function" || g === "continue" || g === "debugger" || g === "package" || g === "private" || g === "interface" || g === "instanceof" || g === "implements" || g === "protected" || g === "public" || g === "static";
  }
  function m(g) {
    return g = g.replace(/^\s*/, ""), g[0] === ")" ? !1 : !!(g[0] === "}" || f(g[0]) || /^\w+\b/.test(g) && h(/^\w+\b/.exec(g)[0].split("").reverse().join("")));
  }
})(_j, _j.exports);
var rhr = _j.exports, ESe = ihr;
function ihr(e, t, r) {
  var i = r.line, n = r.column, s = r.filename, a = r.src, o, l = i + (n ? ":" + n : "");
  if (a && i >= 1 && i <= a.split("\n").length) {
    var u = a.split("\n"), c = Math.max(i - 3, 0), f = Math.min(u.length, i + 3), h = u.slice(c, f).map(function(g, y) {
      var v = y + c + 1, T = (v == i ? "  > " : "    ") + v + "| ", S = T + g;
      return v === i && n > 0 && (S += "\n", S += Array(T.length + n).join("-") + "^"), S;
    }).join("\n");
    o = (s || "Pug") + ":" + l + "\n" + h + "\n\n" + t;
  } else
    o = (s || "Pug") + ":" + l + "\n\n" + t;
  var m = new Error(o);
  return m.code = "PUG:" + e, m.msg = t, m.line = i, m.column = n, m.filename = s, m.src = a, m.toJSON = function() {
    return {
      code: this.code,
      msg: this.msg,
      line: this.line,
      column: this.column,
      filename: this.filename
    };
  }, m;
}
var nhr = Af(), shr = Kfr, Gc = rhr, ahr = ESe;
pq.exports = ohr;
pq.exports.Lexer = PA;
function ohr(e, t) {
  var r = new PA(e, t);
  return JSON.parse(JSON.stringify(r.getTokens()));
}
function PA(e, t) {
  if (t = t || {}, typeof e != "string")
    throw new Error(
      'Expected source code to be a string but got "' + typeof e + '"'
    );
  if (typeof t != "object")
    throw new Error(
      'Expected "options" to be an object but got "' + typeof t + '"'
    );
  e = e.replace(/^\uFEFF/, ""), this.input = e.replace(/\r\n|\r/g, "\n"), this.originalInput = this.input, this.filename = t.filename, this.interpolated = t.interpolated || !1, this.lineno = t.startingLine || 1, this.colno = t.startingColumn || 1, this.plugins = t.plugins || [], this.indentStack = [0], this.indentRe = null, this.interpolationAllowed = !0, this.whitespaceRe = /[ \n\t]/, this.tokens = [], this.ended = !1;
}
PA.prototype = {
  constructor: PA,
  error: function(e, t) {
    var r = ahr(e, t, {
      line: this.lineno,
      column: this.colno,
      filename: this.filename,
      src: this.originalInput
    });
    throw r;
  },
  assert: function(e, t) {
    e || this.error("ASSERT_FAILED", t);
  },
  isExpression: function(e) {
    return shr(e, {
      throw: !0
    });
  },
  assertExpression: function(e, t) {
    try {
      return this.callLexerFunction("isExpression", e), !0;
    } catch (i) {
      if (t)
        return !1;
      if (!i.loc)
        throw i;
      this.incrementLine(i.loc.line - 1), this.incrementColumn(i.loc.column);
      var r = "Syntax Error: " + i.message.replace(/ \([0-9]+:[0-9]+\)$/, "");
      this.error("SYNTAX_ERROR", r);
    }
  },
  assertNestingCorrect: function(e) {
    var t = Gc(e);
    t.isNesting() && this.error(
      "INCORRECT_NESTING",
      "Nesting must match on expression `" + e + "`"
    );
  },
  /**
   * Construct a token with the given `type` and `val`.
   *
   * @param {String} type
   * @param {String} val
   * @return {Object}
   * @api private
   */
  tok: function(e, t) {
    var r = {
      type: e,
      loc: {
        start: {
          line: this.lineno,
          column: this.colno
        },
        filename: this.filename
      }
    };
    return t !== void 0 && (r.val = t), r;
  },
  /**
   * Set the token's `loc.end` value.
   *
   * @param {Object} tok
   * @returns {Object}
   * @api private
   */
  tokEnd: function(e) {
    return e.loc.end = {
      line: this.lineno,
      column: this.colno
    }, e;
  },
  /**
   * Increment `this.lineno` and reset `this.colno`.
   *
   * @param {Number} increment
   * @api private
   */
  incrementLine: function(e) {
    this.lineno += e, e && (this.colno = 1);
  },
  /**
   * Increment `this.colno`.
   *
   * @param {Number} increment
   * @api private
   */
  incrementColumn: function(e) {
    this.colno += e;
  },
  /**
   * Consume the given `len` of input.
   *
   * @param {Number} len
   * @api private
   */
  consume: function(e) {
    this.input = this.input.substr(e);
  },
  /**
   * Scan for `type` with the given `regexp`.
   *
   * @param {String} type
   * @param {RegExp} regexp
   * @return {Object}
   * @api private
   */
  scan: function(e, t) {
    var r;
    if (r = e.exec(this.input)) {
      var i = r[0].length, n = r[1], s = i - (n ? n.length : 0), a = this.tok(t, n);
      return this.consume(i), this.incrementColumn(s), a;
    }
  },
  scanEndOfLine: function(e, t) {
    var r;
    if (r = e.exec(this.input)) {
      var i = 0, n, s;
      (n = /^([ ]+)([^ ]*)/.exec(r[0])) && (i = n[1].length, this.incrementColumn(i));
      var a = this.input.substr(r[0].length);
      if (a[0] === ":")
        return this.input = a, s = this.tok(t, r[1]), this.incrementColumn(r[0].length - i), s;
      if (/^[ \t]*(\n|$)/.test(a))
        return this.input = a.substr(/^[ \t]*/.exec(a)[0].length), s = this.tok(t, r[1]), this.incrementColumn(r[0].length - i), s;
    }
  },
  /**
   * Return the indexOf `(` or `{` or `[` / `)` or `}` or `]` delimiters.
   *
   * Make sure that when calling this function, colno is at the character
   * immediately before the beginning.
   *
   * @return {Number}
   * @api private
   */
  bracketExpression: function(e) {
    e = e || 0;
    var t = this.input[e];
    nhr(
      t === "(" || t === "{" || t === "[",
      'The start character should be "(", "{" or "["'
    );
    var r = Gc.BRACKETS[t], i;
    try {
      i = Gc.parseUntil(this.input, r, { start: e + 1 });
    } catch (l) {
      if (l.index !== void 0) {
        for (var n = l.index, s = this.input.substr(e).indexOf("\n"), a = s + e, o = 0; n > a && s !== -1; )
          this.incrementLine(1), n -= a + 1, o += a + 1, s = a = this.input.substr(o).indexOf("\n");
        this.incrementColumn(n);
      }
      throw l.code === "CHARACTER_PARSER:END_OF_STRING_REACHED" ? this.error(
        "NO_END_BRACKET",
        "The end of the string reached with no closing bracket " + r + " found."
      ) : l.code === "CHARACTER_PARSER:MISMATCHED_BRACKET" && this.error("BRACKET_MISMATCH", l.message), l;
    }
    return i;
  },
  scanIndentation: function() {
    var e, t;
    return this.indentRe ? e = this.indentRe.exec(this.input) : (t = /^\n(\t*) */, e = t.exec(this.input), e && !e[1].length && (t = /^\n( *)/, e = t.exec(this.input)), e && e[1].length && (this.indentRe = t)), e;
  },
  /**
   * end-of-source.
   */
  eos: function() {
    if (!this.input.length) {
      this.interpolated && this.error(
        "NO_END_BRACKET",
        "End of line was reached with no closing bracket for interpolation."
      );
      for (var e = 0; this.indentStack[e]; e++)
        this.tokens.push(this.tokEnd(this.tok("outdent")));
      return this.tokens.push(this.tokEnd(this.tok("eos"))), this.ended = !0, !0;
    }
  },
  /**
   * Blank line.
   */
  blank: function() {
    var e;
    if (e = /^\n[ \t]*\n/.exec(this.input))
      return this.consume(e[0].length - 1), this.incrementLine(1), !0;
  },
  /**
   * Comment.
   */
  comment: function() {
    var e;
    if (e = /^\/\/(-)?([^\n]*)/.exec(this.input)) {
      this.consume(e[0].length);
      var t = this.tok("comment", e[2]);
      return t.buffer = e[1] != "-", this.interpolationAllowed = t.buffer, this.tokens.push(t), this.incrementColumn(e[0].length), this.tokEnd(t), this.callLexerFunction("pipelessText"), !0;
    }
  },
  /**
   * Interpolated tag.
   */
  interpolation: function() {
    if (/^#\{/.test(this.input)) {
      var e = this.bracketExpression(1);
      this.consume(e.end + 1);
      var t = this.tok("interpolation", e.src);
      this.tokens.push(t), this.incrementColumn(2), this.assertExpression(e.src);
      var r = e.src.split("\n"), i = r.length - 1;
      return this.incrementLine(i), this.incrementColumn(r[i].length + 1), this.tokEnd(t), !0;
    }
  },
  /**
   * Tag.
   */
  tag: function() {
    var e;
    if (e = /^(\w(?:[-:\w]*\w)?)/.exec(this.input)) {
      var t, r = e[1], i = e[0].length;
      return this.consume(i), t = this.tok("tag", r), this.tokens.push(t), this.incrementColumn(i), this.tokEnd(t), !0;
    }
  },
  /**
   * Filter.
   */
  filter: function(e) {
    var t = this.scan(/^:([\w\-]+)/, "filter"), r = e && e.inInclude;
    if (t)
      return this.tokens.push(t), this.incrementColumn(t.val.length), this.tokEnd(t), this.callLexerFunction("attrs"), r || (this.interpolationAllowed = !1, this.callLexerFunction("pipelessText")), !0;
  },
  /**
   * Doctype.
   */
  doctype: function() {
    var e = this.scanEndOfLine(/^doctype *([^\n]*)/, "doctype");
    if (e)
      return this.tokens.push(this.tokEnd(e)), !0;
  },
  /**
   * Id.
   */
  id: function() {
    var e = this.scan(/^#([\w-]+)/, "id");
    if (e)
      return this.tokens.push(e), this.incrementColumn(e.val.length), this.tokEnd(e), !0;
    /^#/.test(this.input) && this.error(
      "INVALID_ID",
      '"' + /.[^ \t\(\#\.\:]*/.exec(this.input.substr(1))[0] + '" is not a valid ID.'
    );
  },
  /**
   * Class.
   */
  className: function() {
    var e = this.scan(/^\.([_a-z0-9\-]*[_a-z][_a-z0-9\-]*)/i, "class");
    if (e)
      return this.tokens.push(e), this.incrementColumn(e.val.length), this.tokEnd(e), !0;
    /^\.[_a-z0-9\-]+/i.test(this.input) && this.error(
      "INVALID_CLASS_NAME",
      "Class names must contain at least one letter or underscore."
    ), /^\./.test(this.input) && this.error(
      "INVALID_CLASS_NAME",
      '"' + /.[^ \t\(\#\.\:]*/.exec(this.input.substr(1))[0] + '" is not a valid class name.  Class names can only contain "_", "-", a-z and 0-9, and must contain at least one of "_", or a-z'
    );
  },
  /**
   * Text.
   */
  endInterpolation: function() {
    if (this.interpolated && this.input[0] === "]")
      return this.input = this.input.substr(1), this.ended = !0, !0;
  },
  addText: function(e, t, r, i) {
    var n;
    if (t + r !== "") {
      r = r || "", i = i || 0;
      var s = this.interpolated ? t.indexOf("]") : -1, a = this.interpolationAllowed ? t.indexOf("#[") : -1, o = this.interpolationAllowed ? t.indexOf("\\#[") : -1, l = /(\\)?([#!]){((?:.|\n)*)$/.exec(t), u = this.interpolationAllowed && l ? l.index : 1 / 0;
      if (s === -1 && (s = 1 / 0), a === -1 && (a = 1 / 0), o === -1 && (o = 1 / 0), o !== 1 / 0 && o < s && o < a && o < u)
        return r = r + t.substring(0, o) + "#[", this.addText(
          e,
          t.substring(o + 3),
          r,
          i + 1
        );
      if (a !== 1 / 0 && a < s && a < o && a < u) {
        n = this.tok(e, r + t.substring(0, a)), this.incrementColumn(r.length + a + i), this.tokens.push(this.tokEnd(n)), n = this.tok("start-pug-interpolation"), this.incrementColumn(2), this.tokens.push(this.tokEnd(n));
        var c = new this.constructor(t.substr(a + 2), {
          filename: this.filename,
          interpolated: !0,
          startingLine: this.lineno,
          startingColumn: this.colno,
          plugins: this.plugins
        }), f;
        try {
          f = c.getTokens();
        } catch (y) {
          throw y.code && /^PUG:/.test(y.code) && (this.colno = y.column, this.error(y.code.substr(4), y.msg)), y;
        }
        this.colno = c.colno, this.tokens = this.tokens.concat(f), n = this.tok("end-pug-interpolation"), this.incrementColumn(1), this.tokens.push(this.tokEnd(n)), this.addText(e, c.input);
        return;
      }
      if (s !== 1 / 0 && s < a && s < o && s < u) {
        r + t.substring(0, s) && this.addText(e, t.substring(0, s), r), this.ended = !0, this.input = t.substr(t.indexOf("]") + 1) + this.input;
        return;
      }
      if (u !== 1 / 0) {
        if (l[1])
          return r = r + t.substring(0, u) + l[2] + "{", this.addText(
            e,
            t.substring(u + 3),
            r,
            i + 1
          );
        var h = t.substr(0, u);
        (r || h) && (h = r + h, n = this.tok(e, h), this.incrementColumn(h.length + i), this.tokens.push(this.tokEnd(n)));
        var m = l[3], g;
        n = this.tok("interpolated-code"), this.incrementColumn(2);
        try {
          g = Gc.parseUntil(m, "}");
        } catch (y) {
          if (y.index !== void 0 && this.incrementColumn(y.index), y.code === "CHARACTER_PARSER:END_OF_STRING_REACHED")
            this.error(
              "NO_END_BRACKET",
              "End of line was reached with no closing bracket for interpolation."
            );
          else if (y.code === "CHARACTER_PARSER:MISMATCHED_BRACKET")
            this.error("BRACKET_MISMATCH", y.message);
          else
            throw y;
        }
        n.mustEscape = l[2] === "#", n.buffer = !0, n.val = g.src, this.assertExpression(g.src), g.end + 1 < m.length ? (m = m.substr(g.end + 1), this.incrementColumn(g.end + 1), this.tokens.push(this.tokEnd(n)), this.addText(e, m)) : (this.incrementColumn(m.length), this.tokens.push(this.tokEnd(n)));
        return;
      }
      t = r + t, n = this.tok(e, t), this.incrementColumn(t.length + i), this.tokens.push(this.tokEnd(n));
    }
  },
  text: function() {
    var e = this.scan(/^(?:\| ?| )([^\n]+)/, "text") || this.scan(/^( )/, "text") || this.scan(/^\|( ?)/, "text");
    if (e)
      return this.addText("text", e.val), !0;
  },
  textHtml: function() {
    var e = this.scan(/^(<[^\n]*)/, "text-html");
    if (e)
      return this.addText("text-html", e.val), !0;
  },
  /**
   * Dot.
   */
  dot: function() {
    var e;
    if (e = this.scanEndOfLine(/^\./, "dot"))
      return this.tokens.push(this.tokEnd(e)), this.callLexerFunction("pipelessText"), !0;
  },
  /**
   * Extends.
   */
  extends: function() {
    var e = this.scan(/^extends?(?= |$|\n)/, "extends");
    if (e)
      return this.tokens.push(this.tokEnd(e)), this.callLexerFunction("path") || this.error("NO_EXTENDS_PATH", "missing path for extends"), !0;
    this.scan(/^extends?\b/) && this.error("MALFORMED_EXTENDS", "malformed extends");
  },
  /**
   * Block prepend.
   */
  prepend: function() {
    var e;
    if (e = /^(?:block +)?prepend +([^\n]+)/.exec(this.input)) {
      var t = e[1].trim(), r = "";
      if (t.indexOf("//") !== -1 && (r = "//" + t.split("//").slice(1).join("//"), t = t.split("//")[0].trim()), !t)
        return;
      for (var i = this.tok("block", t), n = e[0].length - r.length; this.whitespaceRe.test(this.input.charAt(n - 1)); )
        n--;
      return this.incrementColumn(n), i.mode = "prepend", this.tokens.push(this.tokEnd(i)), this.consume(e[0].length - r.length), this.incrementColumn(e[0].length - r.length - n), !0;
    }
  },
  /**
   * Block append.
   */
  append: function() {
    var e;
    if (e = /^(?:block +)?append +([^\n]+)/.exec(this.input)) {
      var t = e[1].trim(), r = "";
      if (t.indexOf("//") !== -1 && (r = "//" + t.split("//").slice(1).join("//"), t = t.split("//")[0].trim()), !t)
        return;
      for (var i = this.tok("block", t), n = e[0].length - r.length; this.whitespaceRe.test(this.input.charAt(n - 1)); )
        n--;
      return this.incrementColumn(n), i.mode = "append", this.tokens.push(this.tokEnd(i)), this.consume(e[0].length - r.length), this.incrementColumn(e[0].length - r.length - n), !0;
    }
  },
  /**
   * Block.
   */
  block: function() {
    var e;
    if (e = /^block +([^\n]+)/.exec(this.input)) {
      var t = e[1].trim(), r = "";
      if (t.indexOf("//") !== -1 && (r = "//" + t.split("//").slice(1).join("//"), t = t.split("//")[0].trim()), !t)
        return;
      for (var i = this.tok("block", t), n = e[0].length - r.length; this.whitespaceRe.test(this.input.charAt(n - 1)); )
        n--;
      return this.incrementColumn(n), i.mode = "replace", this.tokens.push(this.tokEnd(i)), this.consume(e[0].length - r.length), this.incrementColumn(e[0].length - r.length - n), !0;
    }
  },
  /**
   * Mixin Block.
   */
  mixinBlock: function() {
    var e;
    if (e = this.scanEndOfLine(/^block/, "mixin-block"))
      return this.tokens.push(this.tokEnd(e)), !0;
  },
  /**
   * Yield.
   */
  yield: function() {
    var e = this.scanEndOfLine(/^yield/, "yield");
    if (e)
      return this.tokens.push(this.tokEnd(e)), !0;
  },
  /**
   * Include.
   */
  include: function() {
    var e = this.scan(/^include(?=:| |$|\n)/, "include");
    if (e) {
      for (this.tokens.push(this.tokEnd(e)); this.callLexerFunction("filter", { inInclude: !0 }); )
        ;
      return this.callLexerFunction("path") || (/^[^ \n]+/.test(this.input) ? this.fail() : this.error("NO_INCLUDE_PATH", "missing path for include")), !0;
    }
    this.scan(/^include\b/) && this.error("MALFORMED_INCLUDE", "malformed include");
  },
  /**
   * Path
   */
  path: function() {
    var e = this.scanEndOfLine(/^ ([^\n]+)/, "path");
    if (e && (e.val = e.val.trim()))
      return this.tokens.push(this.tokEnd(e)), !0;
  },
  /**
   * Case.
   */
  case: function() {
    var e = this.scanEndOfLine(/^case +([^\n]+)/, "case");
    if (e)
      return this.incrementColumn(-e.val.length), this.assertExpression(e.val), this.incrementColumn(e.val.length), this.tokens.push(this.tokEnd(e)), !0;
    this.scan(/^case\b/) && this.error("NO_CASE_EXPRESSION", "missing expression for case");
  },
  /**
   * When.
   */
  when: function() {
    var e = this.scanEndOfLine(/^when +([^:\n]+)/, "when");
    if (e) {
      for (var t = Gc(e.val); t.isNesting() || t.isString(); ) {
        var r = /:([^:\n]+)/.exec(this.input);
        if (!r)
          break;
        e.val += r[0], this.consume(r[0].length), this.incrementColumn(r[0].length), t = Gc(e.val);
      }
      return this.incrementColumn(-e.val.length), this.assertExpression(e.val), this.incrementColumn(e.val.length), this.tokens.push(this.tokEnd(e)), !0;
    }
    this.scan(/^when\b/) && this.error("NO_WHEN_EXPRESSION", "missing expression for when");
  },
  /**
   * Default.
   */
  default: function() {
    var e = this.scanEndOfLine(/^default/, "default");
    if (e)
      return this.tokens.push(this.tokEnd(e)), !0;
    this.scan(/^default\b/) && this.error(
      "DEFAULT_WITH_EXPRESSION",
      "default should not have an expression"
    );
  },
  /**
   * Call mixin.
   */
  call: function() {
    var e, t, r;
    if (t = /^\+(\s*)(([-\w]+)|(#\{))/.exec(this.input)) {
      if (t[3])
        r = t[0].length, this.consume(r), e = this.tok("call", t[3]);
      else {
        var i = this.bracketExpression(2 + t[1].length);
        r = i.end + 1, this.consume(r), this.assertExpression(i.src), e = this.tok("call", "#{" + i.src + "}");
      }
      if (this.incrementColumn(r), e.args = null, t = /^ *\(/.exec(this.input)) {
        var n = this.bracketExpression(t[0].length - 1);
        if (!/^\s*[-\w]+ *=/.test(n.src)) {
          this.incrementColumn(1), this.consume(n.end + 1), e.args = n.src, this.assertExpression("[" + e.args + "]");
          for (var s = 0; s <= e.args.length; s++)
            e.args[s] === "\n" ? this.incrementLine(1) : this.incrementColumn(1);
        }
      }
      return this.tokens.push(this.tokEnd(e)), !0;
    }
  },
  /**
   * Mixin.
   */
  mixin: function() {
    var e;
    if (e = /^mixin +([-\w]+)(?: *\((.*)\))? */.exec(this.input)) {
      this.consume(e[0].length);
      var t = this.tok("mixin", e[1]);
      return t.args = e[2] || null, this.incrementColumn(e[0].length), this.tokens.push(this.tokEnd(t)), !0;
    }
  },
  /**
   * Conditional.
   */
  conditional: function() {
    var e;
    if (e = /^(if|unless|else if|else)\b([^\n]*)/.exec(this.input)) {
      this.consume(e[0].length);
      var t = e[1].replace(/ /g, "-"), r = e[2] && e[2].trim(), i = this.tok(t, r);
      switch (this.incrementColumn(e[0].length - r.length), t) {
        case "if":
        case "else-if":
          this.assertExpression(r);
          break;
        case "unless":
          this.assertExpression(r), i.val = "!(" + r + ")", i.type = "if";
          break;
        case "else":
          r && this.error(
            "ELSE_CONDITION",
            "`else` cannot have a condition, perhaps you meant `else if`"
          );
          break;
      }
      return this.incrementColumn(r.length), this.tokens.push(this.tokEnd(i)), !0;
    }
  },
  /**
   * While.
   */
  while: function() {
    var e, t;
    if (e = /^while +([^\n]+)/.exec(this.input))
      return this.consume(e[0].length), this.assertExpression(e[1]), t = this.tok("while", e[1]), this.incrementColumn(e[0].length), this.tokens.push(this.tokEnd(t)), !0;
    this.scan(/^while\b/) && this.error("NO_WHILE_EXPRESSION", "missing expression for while");
  },
  /**
   * Each.
   */
  each: function() {
    var e;
    if (e = /^(?:each|for) +([a-zA-Z_$][\w$]*)(?: *, *([a-zA-Z_$][\w$]*))? * in *([^\n]+)/.exec(
      this.input
    )) {
      this.consume(e[0].length);
      var t = this.tok("each", e[1]);
      return t.key = e[2] || null, this.incrementColumn(e[0].length - e[3].length), this.assertExpression(e[3]), t.code = e[3], this.incrementColumn(e[3].length), this.tokens.push(this.tokEnd(t)), !0;
    }
    const r = /^each\b/.exec(this.input) ? "each" : "for";
    this.scan(/^(?:each|for)\b/) && this.error(
      "MALFORMED_EACH",
      "This `" + r + "` has a syntax error. `" + r + "` statements should be of the form: `" + r + " VARIABLE_NAME of JS_EXPRESSION`"
    ), (e = /^- *(?:each|for) +([a-zA-Z_$][\w$]*)(?: *, *([a-zA-Z_$][\w$]*))? +in +([^\n]+)/.exec(
      this.input
    )) && this.error(
      "MALFORMED_EACH",
      'Pug each and for should no longer be prefixed with a dash ("-"). They are pug keywords and not part of JavaScript.'
    );
  },
  /**
   * EachOf.
   */
  eachOf: function() {
    var e;
    if (e = /^(?:each|for) (.*?) of *([^\n]+)/.exec(this.input)) {
      this.consume(e[0].length);
      var t = this.tok("eachOf", e[1]);
      return t.value = e[1], this.incrementColumn(e[0].length - e[2].length), this.assertExpression(e[2]), t.code = e[2], this.incrementColumn(e[2].length), this.tokens.push(this.tokEnd(t)), /^[a-zA-Z_$][\w$]*$/.test(t.value.trim()) || /^\[ *[a-zA-Z_$][\w$]* *\, *[a-zA-Z_$][\w$]* *\]$/.test(
        t.value.trim()
      ) || this.error(
        "MALFORMED_EACH_OF_LVAL",
        "The value variable for each must either be a valid identifier (e.g. `item`) or a pair of identifiers in square brackets (e.g. `[key, value]`)."
      ), !0;
    }
    (e = /^- *(?:each|for) +([a-zA-Z_$][\w$]*)(?: *, *([a-zA-Z_$][\w$]*))? +of +([^\n]+)/.exec(
      this.input
    )) && this.error(
      "MALFORMED_EACH",
      'Pug each and for should not be prefixed with a dash ("-"). They are pug keywords and not part of JavaScript.'
    );
  },
  /**
   * Code.
   */
  code: function() {
    var e;
    if (e = /^(!?=|-)[ \t]*([^\n]+)/.exec(this.input)) {
      var t = e[1], r = e[2], i = 0;
      if (this.interpolated) {
        var n;
        try {
          n = Gc.parseUntil(r, "]");
        } catch (o) {
          if (o.index !== void 0 && this.incrementColumn(e[0].length - r.length + o.index), o.code === "CHARACTER_PARSER:END_OF_STRING_REACHED")
            this.error(
              "NO_END_BRACKET",
              "End of line was reached with no closing bracket for interpolation."
            );
          else if (o.code === "CHARACTER_PARSER:MISMATCHED_BRACKET")
            this.error("BRACKET_MISMATCH", o.message);
          else
            throw o;
        }
        i = r.length - n.end, r = n.src;
      }
      var s = e[0].length - i;
      this.consume(s);
      var a = this.tok("code", r);
      return a.mustEscape = t.charAt(0) === "=", a.buffer = t.charAt(0) === "=" || t.charAt(1) === "=", this.incrementColumn(e[0].length - e[2].length), a.buffer && this.assertExpression(r), this.tokens.push(a), this.incrementColumn(r.length), this.tokEnd(a), !0;
    }
  },
  /**
   * Block code.
   */
  blockCode: function() {
    var e;
    if (e = this.scanEndOfLine(/^-/, "blockcode"))
      return this.tokens.push(this.tokEnd(e)), this.interpolationAllowed = !1, this.callLexerFunction("pipelessText"), !0;
  },
  /**
   * Attribute Name.
   */
  attribute: function(e) {
    var t = "", r = /['"]/, i = "", n;
    for (n = 0; n < e.length && this.whitespaceRe.test(e[n]); n++)
      e[n] === "\n" ? this.incrementLine(1) : this.incrementColumn(1);
    if (n === e.length)
      return "";
    var s = this.tok("attribute");
    for (r.test(e[n]) && (t = e[n], this.incrementColumn(1), n++); n < e.length; n++) {
      if (t) {
        if (e[n] === t) {
          this.incrementColumn(1), n++;
          break;
        }
      } else if (this.whitespaceRe.test(e[n]) || e[n] === "!" || e[n] === "=" || e[n] === ",")
        break;
      i += e[n], e[n] === "\n" ? this.incrementLine(1) : this.incrementColumn(1);
    }
    s.name = i;
    var a = this.attributeValue(e.substr(n));
    for (a.val ? (s.val = a.val, s.mustEscape = a.mustEscape) : (s.val = !0, s.mustEscape = !0), e = a.remainingSource, this.tokens.push(this.tokEnd(s)), n = 0; n < e.length && this.whitespaceRe.test(e[n]); n++)
      e[n] === "\n" ? this.incrementLine(1) : this.incrementColumn(1);
    return e[n] === "," && (this.incrementColumn(1), n++), e.substr(n);
  },
  /**
   * Attribute Value.
   */
  attributeValue: function(e) {
    var t = /['"]/, r = "", i, n, s, a = !0, o = Gc.defaultState(), l = this.colno, u = this.lineno;
    for (n = 0; n < e.length && this.whitespaceRe.test(e[n]); n++)
      e[n] === "\n" ? (u++, l = 1) : l++;
    if (n === e.length)
      return { remainingSource: e };
    if (e[n] === "!" && (a = !1, l++, n++, e[n] !== "=" && this.error(
      "INVALID_KEY_CHARACTER",
      "Unexpected character " + e[n] + " expected `=`"
    )), e[n] !== "=")
      if (n === 0 && e && !this.whitespaceRe.test(e[0]) && e[0] !== ",")
        this.error(
          "INVALID_KEY_CHARACTER",
          "Unexpected character " + e[0] + " expected `=`"
        );
      else
        return { remainingSource: e };
    for (this.lineno = u, this.colno = l + 1, n++; n < e.length && this.whitespaceRe.test(e[n]); n++)
      e[n] === "\n" ? this.incrementLine(1) : this.incrementColumn(1);
    for (u = this.lineno, l = this.colno; n < e.length; n++) {
      if (!(o.isNesting() || o.isString())) {
        if (this.whitespaceRe.test(e[n])) {
          for (i = !1, s = n; s < e.length; s++)
            if (!this.whitespaceRe.test(e[s])) {
              const c = !Gc.isPunctuator(e[s]), f = t.test(e[s]), h = e[s] === ":", m = e[s] + e[s + 1] + e[s + 2] === "...";
              (c || f || h || m) && this.assertExpression(r, !0) && (i = !0);
              break;
            }
          if (i || s === e.length)
            break;
        }
        if (e[n] === "," && this.assertExpression(r, !0))
          break;
      }
      o = Gc.parseChar(e[n], o), r += e[n], e[n] === "\n" ? (u++, l = 1) : l++;
    }
    return this.assertExpression(r), this.lineno = u, this.colno = l, { val: r, mustEscape: a, remainingSource: e.substr(n) };
  },
  /**
   * Attributes.
   */
  attrs: function() {
    var e;
    if (this.input.charAt(0) == "(") {
      e = this.tok("start-attributes");
      var t = this.bracketExpression().end, r = this.input.substr(1, t - 1);
      for (this.incrementColumn(1), this.tokens.push(this.tokEnd(e)), this.assertNestingCorrect(r), this.consume(t + 1); r; )
        r = this.attribute(r);
      return e = this.tok("end-attributes"), this.incrementColumn(1), this.tokens.push(this.tokEnd(e)), !0;
    }
  },
  /**
   * &attributes block
   */
  attributesBlock: function() {
    if (/^&attributes\b/.test(this.input)) {
      var e = 11;
      this.consume(e);
      var t = this.tok("&attributes");
      this.incrementColumn(e);
      var r = this.bracketExpression();
      return e = r.end + 1, this.consume(e), t.val = r.src, this.incrementColumn(e), this.tokens.push(this.tokEnd(t)), !0;
    }
  },
  /**
   * Indent | Outdent | Newline.
   */
  indent: function() {
    var e = this.scanIndentation(), t;
    if (e) {
      var r = e[1].length;
      if (this.incrementLine(1), this.consume(r + 1), (this.input[0] == " " || this.input[0] == "	") && this.error(
        "INVALID_INDENTATION",
        "Invalid indentation, you can use tabs or spaces but not both"
      ), this.input[0] == "\n")
        return this.interpolationAllowed = !0, this.tokEnd(this.tok("newline"));
      if (r < this.indentStack[0]) {
        for (var i = 0; this.indentStack[0] > r; )
          this.indentStack[1] < r && this.error(
            "INCONSISTENT_INDENTATION",
            "Inconsistent indentation. Expecting either " + this.indentStack[1] + " or " + this.indentStack[0] + " spaces/tabs."
          ), i++, this.indentStack.shift();
        for (; i--; )
          this.colno = 1, t = this.tok("outdent"), this.colno = this.indentStack[0] + 1, this.tokens.push(this.tokEnd(t));
      } else
        r && r != this.indentStack[0] ? (t = this.tok("indent", r), this.colno = 1 + r, this.tokens.push(this.tokEnd(t)), this.indentStack.unshift(r)) : (t = this.tok("newline"), this.colno = 1 + Math.min(this.indentStack[0] || 0, r), this.tokens.push(this.tokEnd(t)));
      return this.interpolationAllowed = !0, !0;
    }
  },
  pipelessText: function e(t) {
    for (; this.callLexerFunction("blank"); )
      ;
    var r = this.scanIndentation();
    if (t = t || r && r[1].length, t > this.indentStack[0]) {
      this.tokens.push(this.tokEnd(this.tok("start-pipeless-text")));
      var i = [], n = [], s, a = 0;
      do {
        var o = this.input.substr(a + 1).indexOf("\n");
        o == -1 && (o = this.input.length - a - 1);
        var l = this.input.substr(a + 1, o), u = this.indentRe.exec("\n" + l), c = u && u[1].length;
        if (s = c >= t, n.push(s), s = s || !l.trim(), s)
          a += l.length + 1, i.push(l.substr(t));
        else if (c > this.indentStack[0])
          return this.tokens.pop(), e.call(this, u[1].length);
      } while (this.input.length - a && s);
      for (this.consume(a); this.input.length === 0 && i[i.length - 1] === ""; )
        i.pop();
      return i.forEach(
        function(f, h) {
          var m;
          this.incrementLine(1), h !== 0 && (m = this.tok("newline")), n[h] && this.incrementColumn(t), m && this.tokens.push(this.tokEnd(m)), this.addText("text", f);
        }.bind(this)
      ), this.tokens.push(this.tokEnd(this.tok("end-pipeless-text"))), !0;
    }
  },
  /**
   * Slash.
   */
  slash: function() {
    var e = this.scan(/^\//, "slash");
    if (e)
      return this.tokens.push(this.tokEnd(e)), !0;
  },
  /**
   * ':'
   */
  colon: function() {
    var e = this.scan(/^: +/, ":");
    if (e)
      return this.tokens.push(this.tokEnd(e)), !0;
  },
  fail: function() {
    this.error(
      "UNEXPECTED_TEXT",
      'unexpected text "' + this.input.substr(0, 5) + '"'
    );
  },
  callLexerFunction: function(e) {
    for (var t = [], r = 1; r < arguments.length; r++)
      t.push(arguments[r]);
    for (var i = [this].concat(t), r = 0; r < this.plugins.length; r++) {
      var n = this.plugins[r];
      if (n[e] && n[e].apply(n, i))
        return !0;
    }
    return this[e].apply(this, t);
  },
  /**
   * Move to the next token
   *
   * @api private
   */
  advance: function() {
    return this.callLexerFunction("blank") || this.callLexerFunction("eos") || this.callLexerFunction("endInterpolation") || this.callLexerFunction("yield") || this.callLexerFunction("doctype") || this.callLexerFunction("interpolation") || this.callLexerFunction("case") || this.callLexerFunction("when") || this.callLexerFunction("default") || this.callLexerFunction("extends") || this.callLexerFunction("append") || this.callLexerFunction("prepend") || this.callLexerFunction("block") || this.callLexerFunction("mixinBlock") || this.callLexerFunction("include") || this.callLexerFunction("mixin") || this.callLexerFunction("call") || this.callLexerFunction("conditional") || this.callLexerFunction("eachOf") || this.callLexerFunction("each") || this.callLexerFunction("while") || this.callLexerFunction("tag") || this.callLexerFunction("filter") || this.callLexerFunction("blockCode") || this.callLexerFunction("code") || this.callLexerFunction("id") || this.callLexerFunction("dot") || this.callLexerFunction("className") || this.callLexerFunction("attrs") || this.callLexerFunction("attributesBlock") || this.callLexerFunction("indent") || this.callLexerFunction("text") || this.callLexerFunction("textHtml") || this.callLexerFunction("comment") || this.callLexerFunction("slash") || this.callLexerFunction("colon") || this.fail();
  },
  /**
   * Return an array of tokens for the current file
   *
   * @returns {Array.<Token>}
   * @api public
   */
  getTokens: function() {
    for (; !this.ended; )
      this.callLexerFunction("advance");
    return this.tokens;
  }
};
var lhr = pq.exports, Sq = {};
Object.defineProperty(Sq, "__esModule", { value: !0 });
Sq.buildMappings = uhr;
function uhr(e) {
  let t = 0;
  const r = [];
  for (const i of e)
    typeof i == "string" ? t += i.length : (r.push({
      sourceOffsets: [i[2]],
      generatedOffsets: [t],
      lengths: [i[0].length],
      data: i[3]
    }), t += i[0].length);
  return r;
}
var xq = { exports: {} }, chr = DS;
function DS(e) {
  if (!Array.isArray(e))
    throw new TypeError("tokens must be passed to TokenStream as an array.");
  this._tokens = e;
}
DS.prototype.lookahead = function(e) {
  if (this._tokens.length <= e)
    throw new Error("Cannot read past the end of a stream");
  return this._tokens[e];
};
DS.prototype.peek = function() {
  if (this._tokens.length === 0)
    throw new Error("Cannot read past the end of a stream");
  return this._tokens[0];
};
DS.prototype.advance = function() {
  if (this._tokens.length === 0)
    throw new Error("Cannot read past the end of a stream");
  return this._tokens.shift();
};
DS.prototype.defer = function(e) {
  this._tokens.unshift(e);
};
var phr = [
  "a",
  "abbr",
  "acronym",
  "b",
  "br",
  "code",
  "em",
  "font",
  "i",
  "img",
  "ins",
  "kbd",
  "map",
  "samp",
  "small",
  "span",
  "strong",
  "sub",
  "sup"
], fhr = Af(), hhr = chr, dhr = ESe, mhr = phr;
xq.exports = yhr;
xq.exports.Parser = wA;
function yhr(e, t) {
  var r = new wA(e, t), i = r.parse();
  return JSON.parse(JSON.stringify(i));
}
function wA(e, t) {
  if (t = t || {}, !Array.isArray(e))
    throw new Error(
      'Expected tokens to be an Array but got "' + typeof e + '"'
    );
  if (typeof t != "object")
    throw new Error(
      'Expected "options" to be an object but got "' + typeof t + '"'
    );
  this.tokens = new hhr(e), this.filename = t.filename, this.src = t.src, this.inMixin = 0, this.plugins = t.plugins || [];
}
wA.prototype = {
  /**
   * Save original constructor
   */
  constructor: wA,
  error: function(e, t, r) {
    var i = dhr(e, t, {
      line: r.loc.start.line,
      column: r.loc.start.column,
      filename: this.filename,
      src: this.src
    });
    throw i;
  },
  /**
   * Return the next token object.
   *
   * @return {Object}
   * @api private
   */
  advance: function() {
    return this.tokens.advance();
  },
  /**
   * Single token lookahead.
   *
   * @return {Object}
   * @api private
   */
  peek: function() {
    return this.tokens.peek();
  },
  /**
   * `n` token lookahead.
   *
   * @param {Number} n
   * @return {Object}
   * @api private
   */
  lookahead: function(e) {
    return this.tokens.lookahead(e);
  },
  /**
   * Parse input returning a string of js for evaluation.
   *
   * @return {String}
   * @api public
   */
  parse: function() {
    for (var e = this.emptyBlock(0); this.peek().type != "eos"; )
      if (this.peek().type == "newline")
        this.advance();
      else if (this.peek().type == "text-html")
        e.nodes = e.nodes.concat(this.parseTextHtml());
      else {
        var t = this.parseExpr();
        t && (t.type === "Block" ? e.nodes = e.nodes.concat(t.nodes) : e.nodes.push(t));
      }
    return e;
  },
  /**
   * Expect the given type, or throw an exception.
   *
   * @param {String} type
   * @api private
   */
  expect: function(e) {
    if (this.peek().type === e)
      return this.advance();
    this.error(
      "INVALID_TOKEN",
      'expected "' + e + '", but got "' + this.peek().type + '"',
      this.peek()
    );
  },
  /**
   * Accept the given `type`.
   *
   * @param {String} type
   * @api private
   */
  accept: function(e) {
    if (this.peek().type === e)
      return this.advance();
  },
  initBlock: function(e, t) {
    if ((e | 0) !== e)
      throw new Error("`line` is not an integer");
    if (!Array.isArray(t))
      throw new Error("`nodes` is not an array");
    return {
      type: "Block",
      nodes: t,
      line: e,
      filename: this.filename
    };
  },
  emptyBlock: function(e) {
    return this.initBlock(e, []);
  },
  runPlugin: function(e, t) {
    for (var r = [this], i = 2; i < arguments.length; i++)
      r.push(arguments[i]);
    for (var n, i = 0; i < this.plugins.length; i++) {
      var s = this.plugins[i];
      if (s[e] && s[e][t.type]) {
        if (n)
          throw new Error(
            "Multiple plugin handlers found for context " + JSON.stringify(e) + ", token type " + JSON.stringify(t.type)
          );
        n = s[e];
      }
    }
    if (n)
      return n[t.type].apply(n, r);
  },
  /**
   *   tag
   * | doctype
   * | mixin
   * | include
   * | filter
   * | comment
   * | text
   * | text-html
   * | dot
   * | each
   * | code
   * | yield
   * | id
   * | class
   * | interpolation
   */
  parseExpr: function() {
    switch (this.peek().type) {
      case "tag":
        return this.parseTag();
      case "mixin":
        return this.parseMixin();
      case "block":
        return this.parseBlock();
      case "mixin-block":
        return this.parseMixinBlock();
      case "case":
        return this.parseCase();
      case "extends":
        return this.parseExtends();
      case "include":
        return this.parseInclude();
      case "doctype":
        return this.parseDoctype();
      case "filter":
        return this.parseFilter();
      case "comment":
        return this.parseComment();
      case "text":
      case "interpolated-code":
      case "start-pug-interpolation":
        return this.parseText({ block: !0 });
      case "text-html":
        return this.initBlock(this.peek().loc.start.line, this.parseTextHtml());
      case "dot":
        return this.parseDot();
      case "each":
        return this.parseEach();
      case "eachOf":
        return this.parseEachOf();
      case "code":
        return this.parseCode();
      case "blockcode":
        return this.parseBlockCode();
      case "if":
        return this.parseConditional();
      case "while":
        return this.parseWhile();
      case "call":
        return this.parseCall();
      case "interpolation":
        return this.parseInterpolation();
      case "yield":
        return this.parseYield();
      case "id":
      case "class":
        if (!this.peek().loc.start)
          debugger;
        return this.tokens.defer({
          type: "tag",
          val: "div",
          loc: this.peek().loc,
          filename: this.filename
        }), this.parseExpr();
      default:
        var e = this.runPlugin("expressionTokens", this.peek());
        if (e)
          return e;
        this.error(
          "INVALID_TOKEN",
          'unexpected token "' + this.peek().type + '"',
          this.peek()
        );
    }
  },
  parseDot: function() {
    return this.advance(), this.parseTextBlock();
  },
  /**
   * Text
   */
  parseText: function(e) {
    var t = [], r = this.peek().loc.start.line, i = this.peek();
    e:
      for (; ; ) {
        switch (i.type) {
          case "text":
            var n = this.advance();
            t.push({
              type: "Text",
              val: n.val,
              line: n.loc.start.line,
              column: n.loc.start.column,
              filename: this.filename
            });
            break;
          case "interpolated-code":
            var n = this.advance();
            t.push({
              type: "Code",
              val: n.val,
              buffer: n.buffer,
              mustEscape: n.mustEscape !== !1,
              isInline: !0,
              line: n.loc.start.line,
              column: n.loc.start.column,
              filename: this.filename
            });
            break;
          case "newline":
            if (!e || !e.block)
              break e;
            var n = this.advance(), s = this.peek().type;
            (s === "text" || s === "interpolated-code") && t.push({
              type: "Text",
              val: "\n",
              line: n.loc.start.line,
              column: n.loc.start.column,
              filename: this.filename
            });
            break;
          case "start-pug-interpolation":
            this.advance(), t.push(this.parseExpr()), this.expect("end-pug-interpolation");
            break;
          default:
            var a = this.runPlugin("textTokens", i, t);
            if (a)
              break;
            break e;
        }
        i = this.peek();
      }
    return t.length === 1 ? t[0] : this.initBlock(r, t);
  },
  parseTextHtml: function() {
    var e = [], t = null;
    e:
      for (; ; )
        switch (this.peek().type) {
          case "text-html":
            var r = this.advance();
            t ? t.val += "\n" + r.val : (t = {
              type: "Text",
              val: r.val,
              filename: this.filename,
              line: r.loc.start.line,
              column: r.loc.start.column,
              isHtml: !0
            }, e.push(t));
            break;
          case "indent":
            var i = this.block();
            i.nodes.forEach(function(n) {
              n.isHtml ? t ? t.val += "\n" + n.val : (t = n, e.push(t)) : (t = null, e.push(n));
            });
            break;
          case "code":
            t = null, e.push(this.parseCode(!0));
            break;
          case "newline":
            this.advance();
            break;
          default:
            break e;
        }
    return e;
  },
  /**
   *   ':' expr
   * | block
   */
  parseBlockExpansion: function() {
    var e = this.accept(":");
    if (e) {
      var t = this.parseExpr();
      return t.type === "Block" ? t : this.initBlock(e.loc.start.line, [t]);
    } else
      return this.block();
  },
  /**
   * case
   */
  parseCase: function() {
    var e = this.expect("case"), t = {
      type: "Case",
      expr: e.val,
      line: e.loc.start.line,
      column: e.loc.start.column,
      filename: this.filename
    }, r = this.emptyBlock(e.loc.start.line + 1);
    for (this.expect("indent"); this.peek().type != "outdent"; )
      switch (this.peek().type) {
        case "comment":
        case "newline":
          this.advance();
          break;
        case "when":
          r.nodes.push(this.parseWhen());
          break;
        case "default":
          r.nodes.push(this.parseDefault());
          break;
        default:
          var i = this.runPlugin("caseTokens", this.peek(), r);
          if (i)
            break;
          this.error(
            "INVALID_TOKEN",
            'Unexpected token "' + this.peek().type + '", expected "when", "default" or "newline"',
            this.peek()
          );
      }
    return this.expect("outdent"), t.block = r, t;
  },
  /**
   * when
   */
  parseWhen: function() {
    var e = this.expect("when");
    return this.peek().type !== "newline" ? {
      type: "When",
      expr: e.val,
      block: this.parseBlockExpansion(),
      debug: !1,
      line: e.loc.start.line,
      column: e.loc.start.column,
      filename: this.filename
    } : {
      type: "When",
      expr: e.val,
      debug: !1,
      line: e.loc.start.line,
      column: e.loc.start.column,
      filename: this.filename
    };
  },
  /**
   * default
   */
  parseDefault: function() {
    var e = this.expect("default");
    return {
      type: "When",
      expr: "default",
      block: this.parseBlockExpansion(),
      debug: !1,
      line: e.loc.start.line,
      column: e.loc.start.column,
      filename: this.filename
    };
  },
  /**
   * code
   */
  parseCode: function(e) {
    var t = this.expect("code");
    fhr(
      typeof t.mustEscape == "boolean",
      "Please update to the newest version of pug-lexer."
    );
    var r = {
      type: "Code",
      val: t.val,
      buffer: t.buffer,
      mustEscape: t.mustEscape !== !1,
      isInline: !!e,
      line: t.loc.start.line,
      column: t.loc.start.column,
      filename: this.filename
    };
    if (r.val.match(/^ *else/) && (r.debug = !1), e)
      return r;
    var i;
    return i = this.peek().type == "indent", i && (t.buffer && this.error(
      "BLOCK_IN_BUFFERED_CODE",
      "Buffered code cannot have a block attached to it",
      this.peek()
    ), r.block = this.block()), r;
  },
  parseConditional: function() {
    var e = this.expect("if"), t = {
      type: "Conditional",
      test: e.val,
      consequent: this.emptyBlock(e.loc.start.line),
      alternate: null,
      line: e.loc.start.line,
      column: e.loc.start.column,
      filename: this.filename
    };
    this.peek().type == "indent" && (t.consequent = this.block());
    for (var r = t; ; )
      if (this.peek().type === "newline")
        this.expect("newline");
      else if (this.peek().type === "else-if")
        e = this.expect("else-if"), r = r.alternate = {
          type: "Conditional",
          test: e.val,
          consequent: this.emptyBlock(e.loc.start.line),
          alternate: null,
          line: e.loc.start.line,
          column: e.loc.start.column,
          filename: this.filename
        }, this.peek().type == "indent" && (r.consequent = this.block());
      else if (this.peek().type === "else") {
        this.expect("else"), this.peek().type === "indent" && (r.alternate = this.block());
        break;
      } else
        break;
    return t;
  },
  parseWhile: function() {
    var e = this.expect("while"), t = {
      type: "While",
      test: e.val,
      line: e.loc.start.line,
      column: e.loc.start.column,
      filename: this.filename
    };
    return this.peek().type == "indent" ? t.block = this.block() : t.block = this.emptyBlock(e.loc.start.line), t;
  },
  /**
   * block code
   */
  parseBlockCode: function() {
    var e = this.expect("blockcode"), t = e.loc.start.line, r = e.loc.start.column, i = this.peek(), n = "";
    if (i.type === "start-pipeless-text") {
      for (this.advance(); this.peek().type !== "end-pipeless-text"; )
        switch (e = this.advance(), e.type) {
          case "text":
            n += e.val;
            break;
          case "newline":
            n += "\n";
            break;
          default:
            var s = this.runPlugin("blockCodeTokens", e, e);
            if (s) {
              n += s;
              break;
            }
            this.error(
              "INVALID_TOKEN",
              "Unexpected token type: " + e.type,
              e
            );
        }
      this.advance();
    }
    return {
      type: "Code",
      val: n,
      buffer: !1,
      mustEscape: !1,
      isInline: !1,
      line: t,
      column: r,
      filename: this.filename
    };
  },
  /**
   * comment
   */
  parseComment: function() {
    var e = this.expect("comment"), t;
    return (t = this.parseTextBlock()) ? {
      type: "BlockComment",
      val: e.val,
      block: t,
      buffer: e.buffer,
      line: e.loc.start.line,
      column: e.loc.start.column,
      filename: this.filename
    } : {
      type: "Comment",
      val: e.val,
      buffer: e.buffer,
      line: e.loc.start.line,
      column: e.loc.start.column,
      filename: this.filename
    };
  },
  /**
   * doctype
   */
  parseDoctype: function() {
    var e = this.expect("doctype");
    return {
      type: "Doctype",
      val: e.val,
      line: e.loc.start.line,
      column: e.loc.start.column,
      filename: this.filename
    };
  },
  parseIncludeFilter: function() {
    var e = this.expect("filter"), t = [];
    return this.peek().type === "start-attributes" && (t = this.attrs()), {
      type: "IncludeFilter",
      name: e.val,
      attrs: t,
      line: e.loc.start.line,
      column: e.loc.start.column,
      filename: this.filename
    };
  },
  /**
   * filter attrs? text-block
   */
  parseFilter: function() {
    var e = this.expect("filter"), t, r = [];
    if (this.peek().type === "start-attributes" && (r = this.attrs()), this.peek().type === "text") {
      var i = this.advance();
      t = this.initBlock(i.loc.start.line, [
        {
          type: "Text",
          val: i.val,
          line: i.loc.start.line,
          column: i.loc.start.column,
          filename: this.filename
        }
      ]);
    } else
      this.peek().type === "filter" ? t = this.initBlock(e.loc.start.line, [this.parseFilter()]) : t = this.parseTextBlock() || this.emptyBlock(e.loc.start.line);
    return {
      type: "Filter",
      name: e.val,
      block: t,
      attrs: r,
      line: e.loc.start.line,
      column: e.loc.start.column,
      filename: this.filename
    };
  },
  /**
   * each block
   */
  parseEach: function() {
    var e = this.expect("each"), t = {
      type: "Each",
      obj: e.code,
      val: e.val,
      key: e.key,
      block: this.block(),
      line: e.loc.start.line,
      column: e.loc.start.column,
      filename: this.filename
    };
    return this.peek().type == "else" && (this.advance(), t.alternate = this.block()), t;
  },
  parseEachOf: function() {
    var e = this.expect("eachOf"), t = {
      type: "EachOf",
      obj: e.code,
      val: e.val,
      block: this.block(),
      line: e.loc.start.line,
      column: e.loc.start.column,
      filename: this.filename
    };
    return t;
  },
  /**
   * 'extends' name
   */
  parseExtends: function() {
    var e = this.expect("extends"), t = this.expect("path");
    return {
      type: "Extends",
      file: {
        type: "FileReference",
        path: t.val.trim(),
        line: t.loc.start.line,
        column: t.loc.start.column,
        filename: this.filename
      },
      line: e.loc.start.line,
      column: e.loc.start.column,
      filename: this.filename
    };
  },
  /**
   * 'block' name block
   */
  parseBlock: function() {
    var e = this.expect("block"), t = this.peek().type == "indent" ? this.block() : this.emptyBlock(e.loc.start.line);
    return t.type = "NamedBlock", t.name = e.val.trim(), t.mode = e.mode, t.line = e.loc.start.line, t.column = e.loc.start.column, t;
  },
  parseMixinBlock: function() {
    var e = this.expect("mixin-block");
    return this.inMixin || this.error(
      "BLOCK_OUTISDE_MIXIN",
      "Anonymous blocks are not allowed unless they are part of a mixin.",
      e
    ), {
      type: "MixinBlock",
      line: e.loc.start.line,
      column: e.loc.start.column,
      filename: this.filename
    };
  },
  parseYield: function() {
    var e = this.expect("yield");
    return {
      type: "YieldBlock",
      line: e.loc.start.line,
      column: e.loc.start.column,
      filename: this.filename
    };
  },
  /**
   * include block?
   */
  parseInclude: function() {
    for (var e = this.expect("include"), t = {
      type: "Include",
      file: {
        type: "FileReference",
        filename: this.filename
      },
      line: e.loc.start.line,
      column: e.loc.start.column,
      filename: this.filename
    }, r = []; this.peek().type === "filter"; )
      r.push(this.parseIncludeFilter());
    var i = this.expect("path");
    return t.file.path = i.val.trim(), t.file.line = i.loc.start.line, t.file.column = i.loc.start.column, (/\.jade$/.test(t.file.path) || /\.pug$/.test(t.file.path)) && !r.length ? (t.block = this.peek().type == "indent" ? this.block() : this.emptyBlock(e.loc.start.line), /\.jade$/.test(t.file.path) && console.warn(
      this.filename + ", line " + e.loc.start.line + ':\nThe .jade extension is deprecated, use .pug for "' + t.file.path + '".'
    )) : (t.type = "RawInclude", t.filters = r, this.peek().type === "indent" && this.error(
      "RAW_INCLUDE_BLOCK",
      "Raw inclusion cannot contain a block",
      this.peek()
    )), t;
  },
  /**
   * call ident block
   */
  parseCall: function() {
    var e = this.expect("call"), t = e.val, r = e.args, i = {
      type: "Mixin",
      name: t,
      args: r,
      block: this.emptyBlock(e.loc.start.line),
      call: !0,
      attrs: [],
      attributeBlocks: [],
      line: e.loc.start.line,
      column: e.loc.start.column,
      filename: this.filename
    };
    return this.tag(i), i.code && (i.block.nodes.push(i.code), delete i.code), i.block.nodes.length === 0 && (i.block = null), i;
  },
  /**
   * mixin block
   */
  parseMixin: function() {
    var e = this.expect("mixin"), t = e.val, r = e.args;
    if (this.peek().type == "indent") {
      this.inMixin++;
      var i = {
        type: "Mixin",
        name: t,
        args: r,
        block: this.block(),
        call: !1,
        line: e.loc.start.line,
        column: e.loc.start.column,
        filename: this.filename
      };
      return this.inMixin--, i;
    } else
      this.error(
        "MIXIN_WITHOUT_BODY",
        "Mixin " + t + " declared without body",
        e
      );
  },
  /**
   * indent (text | newline)* outdent
   */
  parseTextBlock: function() {
    var e = this.accept("start-pipeless-text");
    if (e) {
      for (var t = this.emptyBlock(e.loc.start.line); this.peek().type !== "end-pipeless-text"; ) {
        var e = this.advance();
        switch (e.type) {
          case "text":
            t.nodes.push({
              type: "Text",
              val: e.val,
              line: e.loc.start.line,
              column: e.loc.start.column,
              filename: this.filename
            });
            break;
          case "newline":
            t.nodes.push({
              type: "Text",
              val: "\n",
              line: e.loc.start.line,
              column: e.loc.start.column,
              filename: this.filename
            });
            break;
          case "start-pug-interpolation":
            t.nodes.push(this.parseExpr()), this.expect("end-pug-interpolation");
            break;
          case "interpolated-code":
            t.nodes.push({
              type: "Code",
              val: e.val,
              buffer: e.buffer,
              mustEscape: e.mustEscape !== !1,
              isInline: !0,
              line: e.loc.start.line,
              column: e.loc.start.column,
              filename: this.filename
            });
            break;
          default:
            var r = this.runPlugin("textBlockTokens", e, t, e);
            if (r)
              break;
            this.error(
              "INVALID_TOKEN",
              "Unexpected token type: " + e.type,
              e
            );
        }
      }
      return this.advance(), t;
    }
  },
  /**
   * indent expr* outdent
   */
  block: function() {
    for (var e = this.expect("indent"), t = this.emptyBlock(e.loc.start.line); this.peek().type != "outdent"; )
      if (this.peek().type == "newline")
        this.advance();
      else if (this.peek().type == "text-html")
        t.nodes = t.nodes.concat(this.parseTextHtml());
      else {
        var r = this.parseExpr();
        r.type === "Block" ? t.nodes = t.nodes.concat(r.nodes) : t.nodes.push(r);
      }
    return this.expect("outdent"), t;
  },
  /**
   * interpolation (attrs | class | id)* (text | code | ':')? newline* block?
   */
  parseInterpolation: function() {
    var e = this.advance(), t = {
      type: "InterpolatedTag",
      expr: e.val,
      selfClosing: !1,
      block: this.emptyBlock(e.loc.start.line),
      attrs: [],
      attributeBlocks: [],
      isInline: !1,
      line: e.loc.start.line,
      column: e.loc.start.column,
      filename: this.filename
    };
    return this.tag(t, { selfClosingAllowed: !0 });
  },
  /**
   * tag (attrs | class | id)* (text | code | ':')? newline* block?
   */
  parseTag: function() {
    var e = this.advance(), t = {
      type: "Tag",
      name: e.val,
      selfClosing: !1,
      block: this.emptyBlock(e.loc.start.line),
      attrs: [],
      attributeBlocks: [],
      isInline: mhr.indexOf(e.val) !== -1,
      line: e.loc.start.line,
      column: e.loc.start.column,
      filename: this.filename
    };
    return this.tag(t, { selfClosingAllowed: !0 });
  },
  /**
   * Parse tag.
   */
  tag: function(e, t) {
    var r = !1, i = [], n = t && t.selfClosingAllowed;
    e:
      for (; ; )
        switch (this.peek().type) {
          case "id":
          case "class":
            var s = this.advance();
            s.type === "id" && (i.indexOf("id") !== -1 && this.error(
              "DUPLICATE_ID",
              'Duplicate attribute "id" is not allowed.',
              s
            ), i.push("id")), e.attrs.push({
              name: s.type,
              val: "'" + s.val + "'",
              line: s.loc.start.line,
              column: s.loc.start.column,
              filename: this.filename,
              mustEscape: !1
            });
            continue;
          case "start-attributes":
            r && console.warn(
              this.filename + ", line " + this.peek().loc.start.line + ":\nYou should not have pug tags with multiple attributes."
            ), r = !0, e.attrs = e.attrs.concat(this.attrs(i));
            continue;
          case "&attributes":
            var s = this.advance();
            e.attributeBlocks.push({
              type: "AttributeBlock",
              val: s.val,
              line: s.loc.start.line,
              column: s.loc.start.column,
              filename: this.filename
            });
            break;
          default:
            var a = this.runPlugin(
              "tagAttributeTokens",
              this.peek(),
              e,
              i
            );
            if (a)
              break;
            break e;
        }
    switch (this.peek().type == "dot" && (e.textOnly = !0, this.advance()), this.peek().type) {
      case "text":
      case "interpolated-code":
        var o = this.parseText();
        o.type === "Block" ? e.block.nodes.push.apply(e.block.nodes, o.nodes) : e.block.nodes.push(o);
        break;
      case "code":
        e.block.nodes.push(this.parseCode(!0));
        break;
      case ":":
        this.advance();
        var l = this.parseExpr();
        e.block = l.type === "Block" ? l : this.initBlock(e.line, [l]);
        break;
      case "newline":
      case "indent":
      case "outdent":
      case "eos":
      case "start-pipeless-text":
      case "end-pug-interpolation":
        break;
      case "slash":
        if (n) {
          this.advance(), e.selfClosing = !0;
          break;
        }
      default:
        var a = this.runPlugin(
          "tagTokens",
          this.peek(),
          e,
          t
        );
        if (a)
          break;
        this.error(
          "INVALID_TOKEN",
          "Unexpected token `" + this.peek().type + "` expected `text`, `interpolated-code`, `code`, `:`" + (n ? ", `slash`" : "") + ", `newline` or `eos`",
          this.peek()
        );
    }
    for (; this.peek().type == "newline"; )
      this.advance();
    if (e.textOnly)
      e.block = this.parseTextBlock() || this.emptyBlock(e.line);
    else if (this.peek().type == "indent")
      for (var u = this.block(), c = 0, f = u.nodes.length; c < f; ++c)
        e.block.nodes.push(u.nodes[c]);
    return e;
  },
  attrs: function(e) {
    this.expect("start-attributes");
    for (var t = [], r = this.advance(); r.type === "attribute"; )
      r.name !== "class" && e && (e.indexOf(r.name) !== -1 && this.error(
        "DUPLICATE_ATTRIBUTE",
        'Duplicate attribute "' + r.name + '" is not allowed.',
        r
      ), e.push(r.name)), t.push({
        name: r.name,
        val: r.val,
        line: r.loc.start.line,
        column: r.loc.start.column,
        filename: this.filename,
        mustEscape: r.mustEscape !== !1
      }), r = this.advance();
    return this.tokens.defer(r), this.expect("end-attributes"), t;
  }
};
var ghr = xq.exports;
Object.defineProperty(pL, "__esModule", { value: !0 });
pL.baseParse = Ehr;
const bhr = KTe, vhr = lhr, Thr = oL, Shr = Sq, xhr = ghr;
function Ehr(e) {
  const t = "foo.pug", r = Thr.TextDocument.create("file:///a.pug", "jade", 0, e), i = [];
  let n, s = [], a, o;
  try {
    const v = vhr(e, { filename: t });
    s = h(v), a = m(v), o = xhr(v, { filename: t, src: e }), l(o, void 0, void 0), i.push([
      "",
      void 0,
      e.trimEnd().length
    ]);
  } catch (v) {
    const T = v;
    n = zr($t({}, T), {
      line: T.line - 1,
      column: T.column - 1
    });
  }
  return {
    htmlCode: (0, bhr.toString)(i),
    mappings: (0, Shr.buildMappings)(i),
    pugTextDocument: r,
    error: n,
    ast: o,
    emptyLineEnds: s
  };
  function l(v, T, S) {
    if (v.type === "Block")
      for (let P = 0; P < v.nodes.length; P++)
        l(v.nodes[P], v.nodes[P + 1], v);
    else if (v.type === "Mixin")
      v.block && l(v.block, void 0, v);
    else if (v.type === "Tag") {
      const P = y(v.line, v.column, v.name.length);
      i.push([
        "",
        void 0,
        P.start
      ]);
      const x = v.block.nodes.length === 0;
      u(v, x), x || (l(v.block, T, S), c(v, T, S)), i.push([
        "",
        void 0,
        P.start
      ]);
    } else
      v.type === "Text" && i.push([
        v.val,
        void 0,
        g(v.line, v.column)
      ]);
  }
  function u(v, T) {
    i.push([
      "",
      void 0,
      g(v.line, v.column)
    ]), i.push("<");
    const S = y(v.line, v.column, v.name.length);
    e.substring(S.start, S.end) === v.name ? i.push([
      v.name,
      void 0,
      S.start
    ]) : i.push(v.name);
    const P = v.attrs.filter((w) => !w.mustEscape && w.name !== "class"), x = v.attrs.filter((w) => !w.mustEscape && w.name === "class"), C = a.get(g(v.line, v.column));
    C && C.text.match(/\bclass\b\s*=/i) || f(x, "class");
    for (const w of P)
      i.push(" "), i.push(w.name), typeof w.val != "boolean" && (i.push("="), i.push([
        w.val,
        void 0,
        g(w.line, w.column)
      ]));
    C && (i.push(" "), i.push([
      C.text,
      void 0,
      C.offset
    ])), T ? i.push(" />") : i.push(">");
  }
  function c(v, T, S) {
    let P;
    T ? T.type === "Block" ? P = g(T.line, 1) : P = g(T.line, T.column) : S || (P = e.length), P !== void 0 && i.push([
      "",
      void 0,
      P
    ]), i.push("</".concat(v.name, ">"));
  }
  function f(v, T) {
    if (v.length) {
      i.push(" "), i.push(T), i.push("="), i.push('"');
      for (const S of v)
        typeof S.val != "boolean" && (i.push(" "), i.push([
          S.val.slice(1, -1),
          // remove "
          void 0,
          g(S.line, S.column + 1)
        ]));
      i.push('"');
    }
  }
  function h(v) {
    const T = [];
    for (const S of v)
      if (S.type === "newline" || S.type === "outdent") {
        let P = S.loc.start.line - 2, x = pie(r, P);
        for (; x.trim() === "" && (T.push(r.offsetAt({ line: P + 1, character: 0 }) - 1), !(P <= 0)); )
          P--, x = pie(r, P);
      }
    return T.sort((S, P) => S - P);
  }
  function m(v) {
    const T = /* @__PURE__ */ new Map();
    for (let S = 0; S < v.length; S++) {
      const P = v[S];
      if (P.type === "start-attributes") {
        let w = function(A) {
          D += e.substring(g(C.loc.end.line, C.loc.end.column), g(A.loc.start.line, A.loc.start.column)).replace(/,/g, "\n");
        }, x = P;
        for (let A = S - 1; A >= 0; A--) {
          const I = v[A];
          if (I.type === "newline" || I.type === "indent" || I.type === "outdent" || I.type === ":" || (x = I, I.type === "tag"))
            break;
        }
        let C = P, D = "";
        for (S++; S < v.length; S++) {
          const A = v[S];
          if (w(A), A.type === "attribute") {
            let I = e.substring(g(A.loc.start.line, A.loc.start.column), g(A.loc.end.line, A.loc.end.column));
            if (typeof A.val == "string" && I.indexOf("=") >= 0) {
              let L = A.val;
              L.startsWith("`") && L.endsWith("`") && (L.indexOf('"') === -1 ? L = '"'.concat(L.slice(1, -1), '"') : L = "'".concat(L.slice(1, -1), "'")), L = L.replace(/ \\\n/g, "//\n"), D += I.substring(0, I.lastIndexOf(A.val)) + L;
            } else
              D += I;
          } else if (A.type === "end-attributes") {
            T.set(g(x.loc.start.line, x.loc.start.column), {
              offset: g(P.loc.end.line, P.loc.end.column),
              text: D
            });
            break;
          }
          C = A;
        }
      }
    }
    return T;
  }
  function g(v, T) {
    return r.offsetAt({ line: v - 1, character: T - 1 });
  }
  function y(v, T, S) {
    const P = g(v, T), x = P + S;
    return {
      start: P,
      end: x
    };
  }
}
function pie(e, t) {
  const r = e.offsetAt({ line: t + 1, character: 0 }), i = e.positionAt(r);
  return e.getText({
    start: { line: t, character: 0 },
    end: i.line === t ? i : e.positionAt(r - 1)
  });
}
Object.defineProperty(CU, "__esModule", { value: !0 });
CU.register = Chr;
const Phr = wm, whr = oL, Ahr = pL;
function Chr(e) {
  return (t) => {
    const r = (0, Ahr.baseParse)(t), i = whr.TextDocument.create("foo.html", "html", 0, r.htmlCode), n = e.parseHTMLDocument(i), s = [
      r.pugTextDocument,
      i,
      (0, Phr.defaultMapperFactory)(r.mappings)
    ];
    return zr($t({}, r), {
      htmlDocument: n,
      docs: s
    });
  };
}
var Eq = {};
function Cc(...e) {
  var s;
  const t = e[0];
  let r, i, n;
  if (typeof t == "string")
    r = t, i = t, e.splice(0, 1), n = !e || typeof e[0] != "object" ? e : e[0];
  else if (t instanceof Array) {
    const a = e.slice(1);
    if (t.length !== a.length + 1)
      throw new Error("expected a string as the first argument to l10n.t");
    let o = t[0];
    for (let l = 1; l < t.length; l++)
      o += "{".concat(l - 1, "}") + t[l];
    return Cc(o, ...a);
  } else
    i = t.message, r = i, t.comment && t.comment.length > 0 && (r += "/".concat(Array.isArray(t.comment) ? t.comment.join("") : t.comment)), n = (s = t.args) != null ? s : {};
  return Ihr(i, n);
}
var _hr = /{([^}]+)}/g;
function Ihr(e, t) {
  return Object.keys(t).length === 0 ? e : e.replace(_hr, (r, i) => {
    var n;
    return (n = t[i]) != null ? n : r;
  });
}
var kj;
(function(e) {
  function t(r) {
    return typeof r == "string";
  }
  e.is = t;
})(kj || (kj = {}));
var Oj;
(function(e) {
  function t(r) {
    return typeof r == "string";
  }
  e.is = t;
})(Oj || (Oj = {}));
var fie;
(function(e) {
  e.MIN_VALUE = -2147483648, e.MAX_VALUE = 2147483647;
  function t(r) {
    return typeof r == "number" && e.MIN_VALUE <= r && r <= e.MAX_VALUE;
  }
  e.is = t;
})(fie || (fie = {}));
var AA;
(function(e) {
  e.MIN_VALUE = 0, e.MAX_VALUE = 2147483647;
  function t(r) {
    return typeof r == "number" && e.MIN_VALUE <= r && r <= e.MAX_VALUE;
  }
  e.is = t;
})(AA || (AA = {}));
var Un;
(function(e) {
  function t(i, n) {
    return i === Number.MAX_VALUE && (i = AA.MAX_VALUE), n === Number.MAX_VALUE && (n = AA.MAX_VALUE), { line: i, character: n };
  }
  e.create = t;
  function r(i) {
    let n = i;
    return ct.objectLiteral(n) && ct.uinteger(n.line) && ct.uinteger(n.character);
  }
  e.is = r;
})(Un || (Un = {}));
var Xr;
(function(e) {
  function t(i, n, s, a) {
    if (ct.uinteger(i) && ct.uinteger(n) && ct.uinteger(s) && ct.uinteger(a))
      return { start: Un.create(i, n), end: Un.create(s, a) };
    if (Un.is(i) && Un.is(n))
      return { start: i, end: n };
    throw new Error("Range#create called with invalid arguments[".concat(i, ", ").concat(n, ", ").concat(s, ", ").concat(a, "]"));
  }
  e.create = t;
  function r(i) {
    let n = i;
    return ct.objectLiteral(n) && Un.is(n.start) && Un.is(n.end);
  }
  e.is = r;
})(Xr || (Xr = {}));
var dT;
(function(e) {
  function t(i, n) {
    return { uri: i, range: n };
  }
  e.create = t;
  function r(i) {
    let n = i;
    return ct.objectLiteral(n) && Xr.is(n.range) && (ct.string(n.uri) || ct.undefined(n.uri));
  }
  e.is = r;
})(dT || (dT = {}));
var hie;
(function(e) {
  function t(i, n, s, a) {
    return { targetUri: i, targetRange: n, targetSelectionRange: s, originSelectionRange: a };
  }
  e.create = t;
  function r(i) {
    let n = i;
    return ct.objectLiteral(n) && Xr.is(n.targetRange) && ct.string(n.targetUri) && Xr.is(n.targetSelectionRange) && (Xr.is(n.originSelectionRange) || ct.undefined(n.originSelectionRange));
  }
  e.is = r;
})(hie || (hie = {}));
var CA;
(function(e) {
  function t(i, n, s, a) {
    return {
      red: i,
      green: n,
      blue: s,
      alpha: a
    };
  }
  e.create = t;
  function r(i) {
    const n = i;
    return ct.objectLiteral(n) && ct.numberRange(n.red, 0, 1) && ct.numberRange(n.green, 0, 1) && ct.numberRange(n.blue, 0, 1) && ct.numberRange(n.alpha, 0, 1);
  }
  e.is = r;
})(CA || (CA = {}));
var Nj;
(function(e) {
  function t(i, n) {
    return {
      range: i,
      color: n
    };
  }
  e.create = t;
  function r(i) {
    const n = i;
    return ct.objectLiteral(n) && Xr.is(n.range) && CA.is(n.color);
  }
  e.is = r;
})(Nj || (Nj = {}));
var Dj;
(function(e) {
  function t(i, n, s) {
    return {
      label: i,
      textEdit: n,
      additionalTextEdits: s
    };
  }
  e.create = t;
  function r(i) {
    const n = i;
    return ct.objectLiteral(n) && ct.string(n.label) && (ct.undefined(n.textEdit) || Yn.is(n)) && (ct.undefined(n.additionalTextEdits) || ct.typedArray(n.additionalTextEdits, Yn.is));
  }
  e.is = r;
})(Dj || (Dj = {}));
var mT;
(function(e) {
  e.Comment = "comment", e.Imports = "imports", e.Region = "region";
})(mT || (mT = {}));
var Lj;
(function(e) {
  function t(i, n, s, a, o, l) {
    const u = {
      startLine: i,
      endLine: n
    };
    return ct.defined(s) && (u.startCharacter = s), ct.defined(a) && (u.endCharacter = a), ct.defined(o) && (u.kind = o), ct.defined(l) && (u.collapsedText = l), u;
  }
  e.create = t;
  function r(i) {
    const n = i;
    return ct.objectLiteral(n) && ct.uinteger(n.startLine) && ct.uinteger(n.startLine) && (ct.undefined(n.startCharacter) || ct.uinteger(n.startCharacter)) && (ct.undefined(n.endCharacter) || ct.uinteger(n.endCharacter)) && (ct.undefined(n.kind) || ct.string(n.kind));
  }
  e.is = r;
})(Lj || (Lj = {}));
var Mj;
(function(e) {
  function t(i, n) {
    return {
      location: i,
      message: n
    };
  }
  e.create = t;
  function r(i) {
    let n = i;
    return ct.defined(n) && dT.is(n.location) && ct.string(n.message);
  }
  e.is = r;
})(Mj || (Mj = {}));
var die;
(function(e) {
  e.Error = 1, e.Warning = 2, e.Information = 3, e.Hint = 4;
})(die || (die = {}));
var mie;
(function(e) {
  e.Unnecessary = 1, e.Deprecated = 2;
})(mie || (mie = {}));
var yie;
(function(e) {
  function t(r) {
    const i = r;
    return ct.objectLiteral(i) && ct.string(i.href);
  }
  e.is = t;
})(yie || (yie = {}));
var yT;
(function(e) {
  function t(i, n, s, a, o, l) {
    let u = { range: i, message: n };
    return ct.defined(s) && (u.severity = s), ct.defined(a) && (u.code = a), ct.defined(o) && (u.source = o), ct.defined(l) && (u.relatedInformation = l), u;
  }
  e.create = t;
  function r(i) {
    var n;
    let s = i;
    return ct.defined(s) && Xr.is(s.range) && ct.string(s.message) && (ct.number(s.severity) || ct.undefined(s.severity)) && (ct.integer(s.code) || ct.string(s.code) || ct.undefined(s.code)) && (ct.undefined(s.codeDescription) || ct.string((n = s.codeDescription) === null || n === void 0 ? void 0 : n.href)) && (ct.string(s.source) || ct.undefined(s.source)) && (ct.undefined(s.relatedInformation) || ct.typedArray(s.relatedInformation, Mj.is));
  }
  e.is = r;
})(yT || (yT = {}));
var Zd;
(function(e) {
  function t(i, n, ...s) {
    let a = { title: i, command: n };
    return ct.defined(s) && s.length > 0 && (a.arguments = s), a;
  }
  e.create = t;
  function r(i) {
    let n = i;
    return ct.defined(n) && ct.string(n.title) && ct.string(n.command);
  }
  e.is = r;
})(Zd || (Zd = {}));
var Yn;
(function(e) {
  function t(s, a) {
    return { range: s, newText: a };
  }
  e.replace = t;
  function r(s, a) {
    return { range: { start: s, end: s }, newText: a };
  }
  e.insert = r;
  function i(s) {
    return { range: s, newText: "" };
  }
  e.del = i;
  function n(s) {
    const a = s;
    return ct.objectLiteral(a) && ct.string(a.newText) && Xr.is(a.range);
  }
  e.is = n;
})(Yn || (Yn = {}));
var Rj;
(function(e) {
  function t(i, n, s) {
    const a = { label: i };
    return n !== void 0 && (a.needsConfirmation = n), s !== void 0 && (a.description = s), a;
  }
  e.create = t;
  function r(i) {
    const n = i;
    return ct.objectLiteral(n) && ct.string(n.label) && (ct.boolean(n.needsConfirmation) || n.needsConfirmation === void 0) && (ct.string(n.description) || n.description === void 0);
  }
  e.is = r;
})(Rj || (Rj = {}));
var og;
(function(e) {
  function t(r) {
    const i = r;
    return ct.string(i);
  }
  e.is = t;
})(og || (og = {}));
var gie;
(function(e) {
  function t(s, a, o) {
    return { range: s, newText: a, annotationId: o };
  }
  e.replace = t;
  function r(s, a, o) {
    return { range: { start: s, end: s }, newText: a, annotationId: o };
  }
  e.insert = r;
  function i(s, a) {
    return { range: s, newText: "", annotationId: a };
  }
  e.del = i;
  function n(s) {
    const a = s;
    return Yn.is(a) && (Rj.is(a.annotationId) || og.is(a.annotationId));
  }
  e.is = n;
})(gie || (gie = {}));
var Bj;
(function(e) {
  function t(i, n) {
    return { textDocument: i, edits: n };
  }
  e.create = t;
  function r(i) {
    let n = i;
    return ct.defined(n) && Uj.is(n.textDocument) && Array.isArray(n.edits);
  }
  e.is = r;
})(Bj || (Bj = {}));
var Fj;
(function(e) {
  function t(i, n, s) {
    let a = {
      kind: "create",
      uri: i
    };
    return n !== void 0 && (n.overwrite !== void 0 || n.ignoreIfExists !== void 0) && (a.options = n), s !== void 0 && (a.annotationId = s), a;
  }
  e.create = t;
  function r(i) {
    let n = i;
    return n && n.kind === "create" && ct.string(n.uri) && (n.options === void 0 || (n.options.overwrite === void 0 || ct.boolean(n.options.overwrite)) && (n.options.ignoreIfExists === void 0 || ct.boolean(n.options.ignoreIfExists))) && (n.annotationId === void 0 || og.is(n.annotationId));
  }
  e.is = r;
})(Fj || (Fj = {}));
var jj;
(function(e) {
  function t(i, n, s, a) {
    let o = {
      kind: "rename",
      oldUri: i,
      newUri: n
    };
    return s !== void 0 && (s.overwrite !== void 0 || s.ignoreIfExists !== void 0) && (o.options = s), a !== void 0 && (o.annotationId = a), o;
  }
  e.create = t;
  function r(i) {
    let n = i;
    return n && n.kind === "rename" && ct.string(n.oldUri) && ct.string(n.newUri) && (n.options === void 0 || (n.options.overwrite === void 0 || ct.boolean(n.options.overwrite)) && (n.options.ignoreIfExists === void 0 || ct.boolean(n.options.ignoreIfExists))) && (n.annotationId === void 0 || og.is(n.annotationId));
  }
  e.is = r;
})(jj || (jj = {}));
var $j;
(function(e) {
  function t(i, n, s) {
    let a = {
      kind: "delete",
      uri: i
    };
    return n !== void 0 && (n.recursive !== void 0 || n.ignoreIfNotExists !== void 0) && (a.options = n), s !== void 0 && (a.annotationId = s), a;
  }
  e.create = t;
  function r(i) {
    let n = i;
    return n && n.kind === "delete" && ct.string(n.uri) && (n.options === void 0 || (n.options.recursive === void 0 || ct.boolean(n.options.recursive)) && (n.options.ignoreIfNotExists === void 0 || ct.boolean(n.options.ignoreIfNotExists))) && (n.annotationId === void 0 || og.is(n.annotationId));
  }
  e.is = r;
})($j || ($j = {}));
var _A;
(function(e) {
  function t(r) {
    let i = r;
    return i && (i.changes !== void 0 || i.documentChanges !== void 0) && (i.documentChanges === void 0 || i.documentChanges.every((n) => ct.string(n.kind) ? Fj.is(n) || jj.is(n) || $j.is(n) : Bj.is(n)));
  }
  e.is = t;
})(_A || (_A = {}));
var bie;
(function(e) {
  function t(i) {
    return { uri: i };
  }
  e.create = t;
  function r(i) {
    let n = i;
    return ct.defined(n) && ct.string(n.uri);
  }
  e.is = r;
})(bie || (bie = {}));
var vie;
(function(e) {
  function t(i, n) {
    return { uri: i, version: n };
  }
  e.create = t;
  function r(i) {
    let n = i;
    return ct.defined(n) && ct.string(n.uri) && ct.integer(n.version);
  }
  e.is = r;
})(vie || (vie = {}));
var Uj;
(function(e) {
  function t(i, n) {
    return { uri: i, version: n };
  }
  e.create = t;
  function r(i) {
    let n = i;
    return ct.defined(n) && ct.string(n.uri) && (n.version === null || ct.integer(n.version));
  }
  e.is = r;
})(Uj || (Uj = {}));
var Tie;
(function(e) {
  function t(i, n, s, a) {
    return { uri: i, languageId: n, version: s, text: a };
  }
  e.create = t;
  function r(i) {
    let n = i;
    return ct.defined(n) && ct.string(n.uri) && ct.string(n.languageId) && ct.integer(n.version) && ct.string(n.text);
  }
  e.is = r;
})(Tie || (Tie = {}));
var cp;
(function(e) {
  e.PlainText = "plaintext", e.Markdown = "markdown";
  function t(r) {
    const i = r;
    return i === e.PlainText || i === e.Markdown;
  }
  e.is = t;
})(cp || (cp = {}));
var lg;
(function(e) {
  function t(r) {
    const i = r;
    return ct.objectLiteral(r) && cp.is(i.kind) && ct.string(i.value);
  }
  e.is = t;
})(lg || (lg = {}));
var ia;
(function(e) {
  e.Text = 1, e.Method = 2, e.Function = 3, e.Constructor = 4, e.Field = 5, e.Variable = 6, e.Class = 7, e.Interface = 8, e.Module = 9, e.Property = 10, e.Unit = 11, e.Value = 12, e.Enum = 13, e.Keyword = 14, e.Snippet = 15, e.Color = 16, e.File = 17, e.Reference = 18, e.Folder = 19, e.EnumMember = 20, e.Constant = 21, e.Struct = 22, e.Event = 23, e.Operator = 24, e.TypeParameter = 25;
})(ia || (ia = {}));
var Al;
(function(e) {
  e.PlainText = 1, e.Snippet = 2;
})(Al || (Al = {}));
var qj;
(function(e) {
  e.Deprecated = 1;
})(qj || (qj = {}));
var Vj;
(function(e) {
  function t(i, n, s) {
    return { newText: i, insert: n, replace: s };
  }
  e.create = t;
  function r(i) {
    const n = i;
    return n && ct.string(n.newText) && Xr.is(n.insert) && Xr.is(n.replace);
  }
  e.is = r;
})(Vj || (Vj = {}));
var Wj;
(function(e) {
  e.asIs = 1, e.adjustIndentation = 2;
})(Wj || (Wj = {}));
var Sie;
(function(e) {
  function t(r) {
    const i = r;
    return i && (ct.string(i.detail) || i.detail === void 0) && (ct.string(i.description) || i.description === void 0);
  }
  e.is = t;
})(Sie || (Sie = {}));
var Hj;
(function(e) {
  function t(r) {
    return { label: r };
  }
  e.create = t;
})(Hj || (Hj = {}));
var Kj;
(function(e) {
  function t(r, i) {
    return { items: r || [], isIncomplete: !!i };
  }
  e.create = t;
})(Kj || (Kj = {}));
var gT;
(function(e) {
  function t(i) {
    return i.replace(/[\\`*_{}[\]()#+\-.!]/g, "\\$&");
  }
  e.fromPlainText = t;
  function r(i) {
    const n = i;
    return ct.string(n) || ct.objectLiteral(n) && ct.string(n.language) && ct.string(n.value);
  }
  e.is = r;
})(gT || (gT = {}));
var zj;
(function(e) {
  function t(r) {
    let i = r;
    return !!i && ct.objectLiteral(i) && (lg.is(i.contents) || gT.is(i.contents) || ct.typedArray(i.contents, gT.is)) && (r.range === void 0 || Xr.is(r.range));
  }
  e.is = t;
})(zj || (zj = {}));
var xie;
(function(e) {
  function t(r, i) {
    return i ? { label: r, documentation: i } : { label: r };
  }
  e.create = t;
})(xie || (xie = {}));
var Eie;
(function(e) {
  function t(r, i, ...n) {
    let s = { label: r };
    return ct.defined(i) && (s.documentation = i), ct.defined(n) ? s.parameters = n : s.parameters = [], s;
  }
  e.create = t;
})(Eie || (Eie = {}));
var bT;
(function(e) {
  e.Text = 1, e.Read = 2, e.Write = 3;
})(bT || (bT = {}));
var Gj;
(function(e) {
  function t(r, i) {
    let n = { range: r };
    return ct.number(i) && (n.kind = i), n;
  }
  e.create = t;
})(Gj || (Gj = {}));
var IA;
(function(e) {
  e.File = 1, e.Module = 2, e.Namespace = 3, e.Package = 4, e.Class = 5, e.Method = 6, e.Property = 7, e.Field = 8, e.Constructor = 9, e.Enum = 10, e.Interface = 11, e.Function = 12, e.Variable = 13, e.Constant = 14, e.String = 15, e.Number = 16, e.Boolean = 17, e.Array = 18, e.Object = 19, e.Key = 20, e.Null = 21, e.EnumMember = 22, e.Struct = 23, e.Event = 24, e.Operator = 25, e.TypeParameter = 26;
})(IA || (IA = {}));
var Pie;
(function(e) {
  e.Deprecated = 1;
})(Pie || (Pie = {}));
var kA;
(function(e) {
  function t(r, i, n, s, a) {
    let o = {
      name: r,
      kind: i,
      location: { uri: s, range: n }
    };
    return a && (o.containerName = a), o;
  }
  e.create = t;
})(kA || (kA = {}));
var wie;
(function(e) {
  function t(r, i, n, s) {
    return s !== void 0 ? { name: r, kind: i, location: { uri: n, range: s } } : { name: r, kind: i, location: { uri: n } };
  }
  e.create = t;
})(wie || (wie = {}));
var OA;
(function(e) {
  function t(i, n, s, a, o, l) {
    let u = {
      name: i,
      detail: n,
      kind: s,
      range: a,
      selectionRange: o
    };
    return l !== void 0 && (u.children = l), u;
  }
  e.create = t;
  function r(i) {
    let n = i;
    return n && ct.string(n.name) && ct.number(n.kind) && Xr.is(n.range) && Xr.is(n.selectionRange) && (n.detail === void 0 || ct.string(n.detail)) && (n.deprecated === void 0 || ct.boolean(n.deprecated)) && (n.children === void 0 || Array.isArray(n.children)) && (n.tags === void 0 || Array.isArray(n.tags));
  }
  e.is = r;
})(OA || (OA = {}));
var Aie;
(function(e) {
  e.Empty = "", e.QuickFix = "quickfix", e.Refactor = "refactor", e.RefactorExtract = "refactor.extract", e.RefactorInline = "refactor.inline", e.RefactorRewrite = "refactor.rewrite", e.Source = "source", e.SourceOrganizeImports = "source.organizeImports", e.SourceFixAll = "source.fixAll";
})(Aie || (Aie = {}));
var NA;
(function(e) {
  e.Invoked = 1, e.Automatic = 2;
})(NA || (NA = {}));
var Cie;
(function(e) {
  function t(i, n, s) {
    let a = { diagnostics: i };
    return n != null && (a.only = n), s != null && (a.triggerKind = s), a;
  }
  e.create = t;
  function r(i) {
    let n = i;
    return ct.defined(n) && ct.typedArray(n.diagnostics, yT.is) && (n.only === void 0 || ct.typedArray(n.only, ct.string)) && (n.triggerKind === void 0 || n.triggerKind === NA.Invoked || n.triggerKind === NA.Automatic);
  }
  e.is = r;
})(Cie || (Cie = {}));
var _ie;
(function(e) {
  function t(i, n, s) {
    let a = { title: i }, o = !0;
    return typeof n == "string" ? (o = !1, a.kind = n) : Zd.is(n) ? a.command = n : a.edit = n, o && s !== void 0 && (a.kind = s), a;
  }
  e.create = t;
  function r(i) {
    let n = i;
    return n && ct.string(n.title) && (n.diagnostics === void 0 || ct.typedArray(n.diagnostics, yT.is)) && (n.kind === void 0 || ct.string(n.kind)) && (n.edit !== void 0 || n.command !== void 0) && (n.command === void 0 || Zd.is(n.command)) && (n.isPreferred === void 0 || ct.boolean(n.isPreferred)) && (n.edit === void 0 || _A.is(n.edit));
  }
  e.is = r;
})(_ie || (_ie = {}));
var Iie;
(function(e) {
  function t(i, n) {
    let s = { range: i };
    return ct.defined(n) && (s.data = n), s;
  }
  e.create = t;
  function r(i) {
    let n = i;
    return ct.defined(n) && Xr.is(n.range) && (ct.undefined(n.command) || Zd.is(n.command));
  }
  e.is = r;
})(Iie || (Iie = {}));
var Yj;
(function(e) {
  function t(i, n) {
    return { tabSize: i, insertSpaces: n };
  }
  e.create = t;
  function r(i) {
    let n = i;
    return ct.defined(n) && ct.uinteger(n.tabSize) && ct.boolean(n.insertSpaces);
  }
  e.is = r;
})(Yj || (Yj = {}));
var Xj;
(function(e) {
  function t(i, n, s) {
    return { range: i, target: n, data: s };
  }
  e.create = t;
  function r(i) {
    let n = i;
    return ct.defined(n) && Xr.is(n.range) && (ct.undefined(n.target) || ct.string(n.target));
  }
  e.is = r;
})(Xj || (Xj = {}));
var vT;
(function(e) {
  function t(i, n) {
    return { range: i, parent: n };
  }
  e.create = t;
  function r(i) {
    let n = i;
    return ct.objectLiteral(n) && Xr.is(n.range) && (n.parent === void 0 || e.is(n.parent));
  }
  e.is = r;
})(vT || (vT = {}));
var kie;
(function(e) {
  e.namespace = "namespace", e.type = "type", e.class = "class", e.enum = "enum", e.interface = "interface", e.struct = "struct", e.typeParameter = "typeParameter", e.parameter = "parameter", e.variable = "variable", e.property = "property", e.enumMember = "enumMember", e.event = "event", e.function = "function", e.method = "method", e.macro = "macro", e.keyword = "keyword", e.modifier = "modifier", e.comment = "comment", e.string = "string", e.number = "number", e.regexp = "regexp", e.operator = "operator", e.decorator = "decorator";
})(kie || (kie = {}));
var Oie;
(function(e) {
  e.declaration = "declaration", e.definition = "definition", e.readonly = "readonly", e.static = "static", e.deprecated = "deprecated", e.abstract = "abstract", e.async = "async", e.modification = "modification", e.documentation = "documentation", e.defaultLibrary = "defaultLibrary";
})(Oie || (Oie = {}));
var Nie;
(function(e) {
  function t(r) {
    const i = r;
    return ct.objectLiteral(i) && (i.resultId === void 0 || typeof i.resultId == "string") && Array.isArray(i.data) && (i.data.length === 0 || typeof i.data[0] == "number");
  }
  e.is = t;
})(Nie || (Nie = {}));
var Die;
(function(e) {
  function t(i, n) {
    return { range: i, text: n };
  }
  e.create = t;
  function r(i) {
    const n = i;
    return n != null && Xr.is(n.range) && ct.string(n.text);
  }
  e.is = r;
})(Die || (Die = {}));
var Lie;
(function(e) {
  function t(i, n, s) {
    return { range: i, variableName: n, caseSensitiveLookup: s };
  }
  e.create = t;
  function r(i) {
    const n = i;
    return n != null && Xr.is(n.range) && ct.boolean(n.caseSensitiveLookup) && (ct.string(n.variableName) || n.variableName === void 0);
  }
  e.is = r;
})(Lie || (Lie = {}));
var Mie;
(function(e) {
  function t(i, n) {
    return { range: i, expression: n };
  }
  e.create = t;
  function r(i) {
    const n = i;
    return n != null && Xr.is(n.range) && (ct.string(n.expression) || n.expression === void 0);
  }
  e.is = r;
})(Mie || (Mie = {}));
var Rie;
(function(e) {
  function t(i, n) {
    return { frameId: i, stoppedLocation: n };
  }
  e.create = t;
  function r(i) {
    const n = i;
    return ct.defined(n) && Xr.is(i.stoppedLocation);
  }
  e.is = r;
})(Rie || (Rie = {}));
var Jj;
(function(e) {
  e.Type = 1, e.Parameter = 2;
  function t(r) {
    return r === 1 || r === 2;
  }
  e.is = t;
})(Jj || (Jj = {}));
var Qj;
(function(e) {
  function t(i) {
    return { value: i };
  }
  e.create = t;
  function r(i) {
    const n = i;
    return ct.objectLiteral(n) && (n.tooltip === void 0 || ct.string(n.tooltip) || lg.is(n.tooltip)) && (n.location === void 0 || dT.is(n.location)) && (n.command === void 0 || Zd.is(n.command));
  }
  e.is = r;
})(Qj || (Qj = {}));
var Bie;
(function(e) {
  function t(i, n, s) {
    const a = { position: i, label: n };
    return s !== void 0 && (a.kind = s), a;
  }
  e.create = t;
  function r(i) {
    const n = i;
    return ct.objectLiteral(n) && Un.is(n.position) && (ct.string(n.label) || ct.typedArray(n.label, Qj.is)) && (n.kind === void 0 || Jj.is(n.kind)) && n.textEdits === void 0 || ct.typedArray(n.textEdits, Yn.is) && (n.tooltip === void 0 || ct.string(n.tooltip) || lg.is(n.tooltip)) && (n.paddingLeft === void 0 || ct.boolean(n.paddingLeft)) && (n.paddingRight === void 0 || ct.boolean(n.paddingRight));
  }
  e.is = r;
})(Bie || (Bie = {}));
var Fie;
(function(e) {
  function t(r) {
    return { kind: "snippet", value: r };
  }
  e.createSnippet = t;
})(Fie || (Fie = {}));
var jie;
(function(e) {
  function t(r, i, n, s) {
    return { insertText: r, filterText: i, range: n, command: s };
  }
  e.create = t;
})(jie || (jie = {}));
var $ie;
(function(e) {
  function t(r) {
    return { items: r };
  }
  e.create = t;
})($ie || ($ie = {}));
var Uie;
(function(e) {
  e.Invoked = 0, e.Automatic = 1;
})(Uie || (Uie = {}));
var qie;
(function(e) {
  function t(r, i) {
    return { range: r, text: i };
  }
  e.create = t;
})(qie || (qie = {}));
var Vie;
(function(e) {
  function t(r, i) {
    return { triggerKind: r, selectedCompletionInfo: i };
  }
  e.create = t;
})(Vie || (Vie = {}));
var Wie;
(function(e) {
  function t(r) {
    const i = r;
    return ct.objectLiteral(i) && Oj.is(i.uri) && ct.string(i.name);
  }
  e.is = t;
})(Wie || (Wie = {}));
var Hie;
(function(e) {
  function t(s, a, o, l) {
    return new khr(s, a, o, l);
  }
  e.create = t;
  function r(s) {
    let a = s;
    return !!(ct.defined(a) && ct.string(a.uri) && (ct.undefined(a.languageId) || ct.string(a.languageId)) && ct.uinteger(a.lineCount) && ct.func(a.getText) && ct.func(a.positionAt) && ct.func(a.offsetAt));
  }
  e.is = r;
  function i(s, a) {
    let o = s.getText(), l = n(a, (c, f) => {
      let h = c.range.start.line - f.range.start.line;
      return h === 0 ? c.range.start.character - f.range.start.character : h;
    }), u = o.length;
    for (let c = l.length - 1; c >= 0; c--) {
      let f = l[c], h = s.offsetAt(f.range.start), m = s.offsetAt(f.range.end);
      if (m <= u)
        o = o.substring(0, h) + f.newText + o.substring(m, o.length);
      else
        throw new Error("Overlapping edit");
      u = h;
    }
    return o;
  }
  e.applyEdits = i;
  function n(s, a) {
    if (s.length <= 1)
      return s;
    const o = s.length / 2 | 0, l = s.slice(0, o), u = s.slice(o);
    n(l, a), n(u, a);
    let c = 0, f = 0, h = 0;
    for (; c < l.length && f < u.length; )
      a(l[c], u[f]) <= 0 ? s[h++] = l[c++] : s[h++] = u[f++];
    for (; c < l.length; )
      s[h++] = l[c++];
    for (; f < u.length; )
      s[h++] = u[f++];
    return s;
  }
})(Hie || (Hie = {}));
let khr = class {
  constructor(t, r, i, n) {
    this._uri = t, this._languageId = r, this._version = i, this._content = n, this._lineOffsets = void 0;
  }
  get uri() {
    return this._uri;
  }
  get languageId() {
    return this._languageId;
  }
  get version() {
    return this._version;
  }
  getText(t) {
    if (t) {
      let r = this.offsetAt(t.start), i = this.offsetAt(t.end);
      return this._content.substring(r, i);
    }
    return this._content;
  }
  update(t, r) {
    this._content = t.text, this._version = r, this._lineOffsets = void 0;
  }
  getLineOffsets() {
    if (this._lineOffsets === void 0) {
      let t = [], r = this._content, i = !0;
      for (let n = 0; n < r.length; n++) {
        i && (t.push(n), i = !1);
        let s = r.charAt(n);
        i = s === "\r" || s === "\n", s === "\r" && n + 1 < r.length && r.charAt(n + 1) === "\n" && n++;
      }
      i && r.length > 0 && t.push(r.length), this._lineOffsets = t;
    }
    return this._lineOffsets;
  }
  positionAt(t) {
    t = Math.max(Math.min(t, this._content.length), 0);
    let r = this.getLineOffsets(), i = 0, n = r.length;
    if (n === 0)
      return Un.create(0, t);
    for (; i < n; ) {
      let a = Math.floor((i + n) / 2);
      r[a] > t ? n = a : i = a + 1;
    }
    let s = i - 1;
    return Un.create(s, t - r[s]);
  }
  offsetAt(t) {
    let r = this.getLineOffsets();
    if (t.line >= r.length)
      return this._content.length;
    if (t.line < 0)
      return 0;
    let i = r[t.line], n = t.line + 1 < r.length ? r[t.line + 1] : this._content.length;
    return Math.max(Math.min(i + t.character, n), i);
  }
  get lineCount() {
    return this.getLineOffsets().length;
  }
};
var ct;
(function(e) {
  const t = Object.prototype.toString;
  function r(m) {
    return typeof m != "undefined";
  }
  e.defined = r;
  function i(m) {
    return typeof m == "undefined";
  }
  e.undefined = i;
  function n(m) {
    return m === !0 || m === !1;
  }
  e.boolean = n;
  function s(m) {
    return t.call(m) === "[object String]";
  }
  e.string = s;
  function a(m) {
    return t.call(m) === "[object Number]";
  }
  e.number = a;
  function o(m, g, y) {
    return t.call(m) === "[object Number]" && g <= m && m <= y;
  }
  e.numberRange = o;
  function l(m) {
    return t.call(m) === "[object Number]" && -2147483648 <= m && m <= 2147483647;
  }
  e.integer = l;
  function u(m) {
    return t.call(m) === "[object Number]" && 0 <= m && m <= 2147483647;
  }
  e.uinteger = u;
  function c(m) {
    return t.call(m) === "[object Function]";
  }
  e.func = c;
  function f(m) {
    return m !== null && typeof m == "object";
  }
  e.objectLiteral = f;
  function h(m, g) {
    return Array.isArray(m) && m.every(g);
  }
  e.typedArray = h;
})(ct || (ct = {}));
class TT {
  constructor(t, r, i, n) {
    this._uri = t, this._languageId = r, this._version = i, this._content = n, this._lineOffsets = void 0;
  }
  get uri() {
    return this._uri;
  }
  get languageId() {
    return this._languageId;
  }
  get version() {
    return this._version;
  }
  getText(t) {
    if (t) {
      const r = this.offsetAt(t.start), i = this.offsetAt(t.end);
      return this._content.substring(r, i);
    }
    return this._content;
  }
  update(t, r) {
    for (const i of t)
      if (TT.isIncremental(i)) {
        const n = wSe(i.range), s = this.offsetAt(n.start), a = this.offsetAt(n.end);
        this._content = this._content.substring(0, s) + i.text + this._content.substring(a, this._content.length);
        const o = Math.max(n.start.line, 0), l = Math.max(n.end.line, 0);
        let u = this._lineOffsets;
        const c = Kie(i.text, !1, s);
        if (l - o === c.length)
          for (let h = 0, m = c.length; h < m; h++)
            u[h + o + 1] = c[h];
        else
          c.length < 1e4 ? u.splice(o + 1, l - o, ...c) : this._lineOffsets = u = u.slice(0, o + 1).concat(c, u.slice(l + 1));
        const f = i.text.length - (a - s);
        if (f !== 0)
          for (let h = o + 1 + c.length, m = u.length; h < m; h++)
            u[h] = u[h] + f;
      } else if (TT.isFull(i))
        this._content = i.text, this._lineOffsets = void 0;
      else
        throw new Error("Unknown change event received");
    this._version = r;
  }
  getLineOffsets() {
    return this._lineOffsets === void 0 && (this._lineOffsets = Kie(this._content, !0)), this._lineOffsets;
  }
  positionAt(t) {
    t = Math.max(Math.min(t, this._content.length), 0);
    const r = this.getLineOffsets();
    let i = 0, n = r.length;
    if (n === 0)
      return { line: 0, character: t };
    for (; i < n; ) {
      const a = Math.floor((i + n) / 2);
      r[a] > t ? n = a : i = a + 1;
    }
    const s = i - 1;
    return t = this.ensureBeforeEOL(t, r[s]), { line: s, character: t - r[s] };
  }
  offsetAt(t) {
    const r = this.getLineOffsets();
    if (t.line >= r.length)
      return this._content.length;
    if (t.line < 0)
      return 0;
    const i = r[t.line];
    if (t.character <= 0)
      return i;
    const n = t.line + 1 < r.length ? r[t.line + 1] : this._content.length, s = Math.min(i + t.character, n);
    return this.ensureBeforeEOL(s, i);
  }
  ensureBeforeEOL(t, r) {
    for (; t > r && PSe(this._content.charCodeAt(t - 1)); )
      t--;
    return t;
  }
  get lineCount() {
    return this.getLineOffsets().length;
  }
  static isIncremental(t) {
    const r = t;
    return r != null && typeof r.text == "string" && r.range !== void 0 && (r.rangeLength === void 0 || typeof r.rangeLength == "number");
  }
  static isFull(t) {
    const r = t;
    return r != null && typeof r.text == "string" && r.range === void 0 && r.rangeLength === void 0;
  }
}
var Zj;
(function(e) {
  function t(n, s, a, o) {
    return new TT(n, s, a, o);
  }
  e.create = t;
  function r(n, s, a) {
    if (n instanceof TT)
      return n.update(s, a), n;
    throw new Error("TextDocument.update: document must be created by TextDocument.create");
  }
  e.update = r;
  function i(n, s) {
    const a = n.getText(), o = e4(s.map(Ohr), (c, f) => {
      const h = c.range.start.line - f.range.start.line;
      return h === 0 ? c.range.start.character - f.range.start.character : h;
    });
    let l = 0;
    const u = [];
    for (const c of o) {
      const f = n.offsetAt(c.range.start);
      if (f < l)
        throw new Error("Overlapping edit");
      f > l && u.push(a.substring(l, f)), c.newText.length && u.push(c.newText), l = n.offsetAt(c.range.end);
    }
    return u.push(a.substr(l)), u.join("");
  }
  e.applyEdits = i;
})(Zj || (Zj = {}));
function e4(e, t) {
  if (e.length <= 1)
    return e;
  const r = e.length / 2 | 0, i = e.slice(0, r), n = e.slice(r);
  e4(i, t), e4(n, t);
  let s = 0, a = 0, o = 0;
  for (; s < i.length && a < n.length; )
    t(i[s], n[a]) <= 0 ? e[o++] = i[s++] : e[o++] = n[a++];
  for (; s < i.length; )
    e[o++] = i[s++];
  for (; a < n.length; )
    e[o++] = n[a++];
  return e;
}
function Kie(e, t, r = 0) {
  const i = t ? [r] : [];
  for (let n = 0; n < e.length; n++) {
    const s = e.charCodeAt(n);
    PSe(s) && (s === 13 && n + 1 < e.length && e.charCodeAt(n + 1) === 10 && n++, i.push(r + n + 1));
  }
  return i;
}
function PSe(e) {
  return e === 13 || e === 10;
}
function wSe(e) {
  const t = e.start, r = e.end;
  return t.line > r.line || t.line === r.line && t.character > r.character ? { start: r, end: t } : e;
}
function Ohr(e) {
  const t = wSe(e.range);
  return t !== e.range ? { newText: e.newText, range: t } : e;
}
var xt;
(function(e) {
  e[e.StartCommentTag = 0] = "StartCommentTag", e[e.Comment = 1] = "Comment", e[e.EndCommentTag = 2] = "EndCommentTag", e[e.StartTagOpen = 3] = "StartTagOpen", e[e.StartTagClose = 4] = "StartTagClose", e[e.StartTagSelfClose = 5] = "StartTagSelfClose", e[e.StartTag = 6] = "StartTag", e[e.EndTagOpen = 7] = "EndTagOpen", e[e.EndTagClose = 8] = "EndTagClose", e[e.EndTag = 9] = "EndTag", e[e.DelimiterAssign = 10] = "DelimiterAssign", e[e.AttributeName = 11] = "AttributeName", e[e.AttributeValue = 12] = "AttributeValue", e[e.StartDoctypeTag = 13] = "StartDoctypeTag", e[e.Doctype = 14] = "Doctype", e[e.EndDoctypeTag = 15] = "EndDoctypeTag", e[e.Content = 16] = "Content", e[e.Whitespace = 17] = "Whitespace", e[e.Unknown = 18] = "Unknown", e[e.Script = 19] = "Script", e[e.Styles = 20] = "Styles", e[e.EOS = 21] = "EOS";
})(xt || (xt = {}));
var mr;
(function(e) {
  e[e.WithinContent = 0] = "WithinContent", e[e.AfterOpeningStartTag = 1] = "AfterOpeningStartTag", e[e.AfterOpeningEndTag = 2] = "AfterOpeningEndTag", e[e.WithinDoctype = 3] = "WithinDoctype", e[e.WithinTag = 4] = "WithinTag", e[e.WithinEndTag = 5] = "WithinEndTag", e[e.WithinComment = 6] = "WithinComment", e[e.WithinScriptContent = 7] = "WithinScriptContent", e[e.WithinStyleContent = 8] = "WithinStyleContent", e[e.AfterAttributeName = 9] = "AfterAttributeName", e[e.BeforeAttributeValue = 10] = "BeforeAttributeValue";
})(mr || (mr = {}));
var t4;
(function(e) {
  e.LATEST = {
    textDocument: {
      completion: {
        completionItem: {
          documentationFormat: [cp.Markdown, cp.PlainText]
        }
      },
      hover: {
        contentFormat: [cp.Markdown, cp.PlainText]
      }
    }
  };
})(t4 || (t4 = {}));
var DA;
(function(e) {
  e[e.Unknown = 0] = "Unknown", e[e.File = 1] = "File", e[e.Directory = 2] = "Directory", e[e.SymbolicLink = 64] = "SymbolicLink";
})(DA || (DA = {}));
class Nhr {
  constructor(t, r) {
    this.source = t, this.len = t.length, this.position = r;
  }
  eos() {
    return this.len <= this.position;
  }
  getSource() {
    return this.source;
  }
  pos() {
    return this.position;
  }
  goBackTo(t) {
    this.position = t;
  }
  goBack(t) {
    this.position -= t;
  }
  advance(t) {
    this.position += t;
  }
  goToEnd() {
    this.position = this.source.length;
  }
  nextChar() {
    return this.source.charCodeAt(this.position++) || 0;
  }
  peekChar(t = 0) {
    return this.source.charCodeAt(this.position + t) || 0;
  }
  advanceIfChar(t) {
    return t === this.source.charCodeAt(this.position) ? (this.position++, !0) : !1;
  }
  advanceIfChars(t) {
    let r;
    if (this.position + t.length > this.source.length)
      return !1;
    for (r = 0; r < t.length; r++)
      if (this.source.charCodeAt(this.position + r) !== t[r])
        return !1;
    return this.advance(r), !0;
  }
  advanceIfRegExp(t) {
    const i = this.source.substr(this.position).match(t);
    return i ? (this.position = this.position + i.index + i[0].length, i[0]) : "";
  }
  advanceUntilRegExp(t) {
    const i = this.source.substr(this.position).match(t);
    return i ? (this.position = this.position + i.index, i[0]) : (this.goToEnd(), "");
  }
  advanceUntilChar(t) {
    for (; this.position < this.source.length; ) {
      if (this.source.charCodeAt(this.position) === t)
        return !0;
      this.advance(1);
    }
    return !1;
  }
  advanceUntilChars(t) {
    for (; this.position + t.length <= this.source.length; ) {
      let r = 0;
      for (; r < t.length && this.source.charCodeAt(this.position + r) === t[r]; r++)
        ;
      if (r === t.length)
        return !0;
      this.advance(1);
    }
    return this.goToEnd(), !1;
  }
  skipWhitespace() {
    return this.advanceWhileChar((r) => r === jhr || r === $hr || r === Rhr || r === Fhr || r === Bhr) > 0;
  }
  advanceWhileChar(t) {
    const r = this.position;
    for (; this.position < this.len && t(this.source.charCodeAt(this.position)); )
      this.position++;
    return this.position - r;
  }
}
const zie = "!".charCodeAt(0), Zm = "-".charCodeAt(0), Z1 = "<".charCodeAt(0), Yc = ">".charCodeAt(0), MB = "/".charCodeAt(0), Dhr = "=".charCodeAt(0), Lhr = '"'.charCodeAt(0), Mhr = "'".charCodeAt(0), Rhr = "\n".charCodeAt(0), Bhr = "\r".charCodeAt(0), Fhr = "\f".charCodeAt(0), jhr = " ".charCodeAt(0), $hr = "	".charCodeAt(0), Uhr = {
  "text/x-handlebars-template": !0,
  // Fix for https://github.com/microsoft/vscode/issues/77977
  "text/html": !0
};
function Eo(e, t = 0, r = mr.WithinContent, i = !1) {
  const n = new Nhr(e, t);
  let s = r, a = 0, o = xt.Unknown, l, u, c, f, h;
  function m() {
    return n.advanceIfRegExp(/^[_:\w][_:\w-.\d]*/).toLowerCase();
  }
  function g() {
    return n.advanceIfRegExp(/^[^\s"'></=\x00-\x0F\x7F\x80-\x9F]*/).toLowerCase();
  }
  function y(S, P, x) {
    return o = P, a = S, l = x, P;
  }
  function v() {
    const S = n.pos(), P = s, x = T();
    return x !== xt.EOS && S === n.pos() && !(i && (x === xt.StartTagClose || x === xt.EndTagClose)) ? (console.warn("Scanner.scan has not advanced at offset " + S + ", state before: " + P + " after: " + s), n.advance(1), y(S, xt.Unknown)) : x;
  }
  function T() {
    const S = n.pos();
    if (n.eos())
      return y(S, xt.EOS);
    let P;
    switch (s) {
      case mr.WithinComment:
        return n.advanceIfChars([Zm, Zm, Yc]) ? (s = mr.WithinContent, y(S, xt.EndCommentTag)) : (n.advanceUntilChars([Zm, Zm, Yc]), y(S, xt.Comment));
      case mr.WithinDoctype:
        return n.advanceIfChar(Yc) ? (s = mr.WithinContent, y(S, xt.EndDoctypeTag)) : (n.advanceUntilChar(Yc), y(S, xt.Doctype));
      case mr.WithinContent:
        if (n.advanceIfChar(Z1)) {
          if (!n.eos() && n.peekChar() === zie) {
            if (n.advanceIfChars([zie, Zm, Zm]))
              return s = mr.WithinComment, y(S, xt.StartCommentTag);
            if (n.advanceIfRegExp(/^!doctype/i))
              return s = mr.WithinDoctype, y(S, xt.StartDoctypeTag);
          }
          return n.advanceIfChar(MB) ? (s = mr.AfterOpeningEndTag, y(S, xt.EndTagOpen)) : (s = mr.AfterOpeningStartTag, y(S, xt.StartTagOpen));
        }
        return n.advanceUntilChar(Z1), y(S, xt.Content);
      case mr.AfterOpeningEndTag:
        return m().length > 0 ? (s = mr.WithinEndTag, y(S, xt.EndTag)) : n.skipWhitespace() ? y(S, xt.Whitespace, Cc("Tag name must directly follow the open bracket.")) : (s = mr.WithinEndTag, n.advanceUntilChar(Yc), S < n.pos() ? y(S, xt.Unknown, Cc("End tag name expected.")) : T());
      case mr.WithinEndTag:
        if (n.skipWhitespace())
          return y(S, xt.Whitespace);
        if (n.advanceIfChar(Yc))
          return s = mr.WithinContent, y(S, xt.EndTagClose);
        if (i && n.peekChar() === Z1)
          return s = mr.WithinContent, y(S, xt.EndTagClose, Cc("Closing bracket missing."));
        P = Cc("Closing bracket expected.");
        break;
      case mr.AfterOpeningStartTag:
        return c = m(), h = void 0, f = void 0, c.length > 0 ? (u = !1, s = mr.WithinTag, y(S, xt.StartTag)) : n.skipWhitespace() ? y(S, xt.Whitespace, Cc("Tag name must directly follow the open bracket.")) : (s = mr.WithinTag, n.advanceUntilChar(Yc), S < n.pos() ? y(S, xt.Unknown, Cc("Start tag name expected.")) : T());
      case mr.WithinTag:
        return n.skipWhitespace() ? (u = !0, y(S, xt.Whitespace)) : u && (f = g(), f.length > 0) ? (s = mr.AfterAttributeName, u = !1, y(S, xt.AttributeName)) : n.advanceIfChars([MB, Yc]) ? (s = mr.WithinContent, y(S, xt.StartTagSelfClose)) : n.advanceIfChar(Yc) ? (c === "script" ? h && Uhr[h] ? s = mr.WithinContent : s = mr.WithinScriptContent : c === "style" ? s = mr.WithinStyleContent : s = mr.WithinContent, y(S, xt.StartTagClose)) : i && n.peekChar() === Z1 ? (s = mr.WithinContent, y(S, xt.StartTagClose, Cc("Closing bracket missing."))) : (n.advance(1), y(S, xt.Unknown, Cc("Unexpected character in tag.")));
      case mr.AfterAttributeName:
        return n.skipWhitespace() ? (u = !0, y(S, xt.Whitespace)) : n.advanceIfChar(Dhr) ? (s = mr.BeforeAttributeValue, y(S, xt.DelimiterAssign)) : (s = mr.WithinTag, T());
      case mr.BeforeAttributeValue:
        if (n.skipWhitespace())
          return y(S, xt.Whitespace);
        let C = n.advanceIfRegExp(/^[^\s"'`=<>]+/);
        if (C.length > 0 && (n.peekChar() === Yc && n.peekChar(-1) === MB && (n.goBack(1), C = C.substring(0, C.length - 1)), f === "type" && (h = C), C.length > 0))
          return s = mr.WithinTag, u = !1, y(S, xt.AttributeValue);
        const D = n.peekChar();
        return D === Mhr || D === Lhr ? (n.advance(1), n.advanceUntilChar(D) && n.advance(1), f === "type" && (h = n.getSource().substring(S + 1, n.pos() - 1)), s = mr.WithinTag, u = !1, y(S, xt.AttributeValue)) : (s = mr.WithinTag, u = !1, T());
      case mr.WithinScriptContent:
        let w = 1;
        for (; !n.eos(); ) {
          const A = n.advanceIfRegExp(/<!--|-->|<\/?script\s*\/?>?/i);
          if (A.length === 0)
            return n.goToEnd(), y(S, xt.Script);
          if (A === "<!--")
            w === 1 && (w = 2);
          else if (A === "-->")
            w = 1;
          else if (A[1] !== "/")
            w === 2 && (w = 3);
          else if (w === 3)
            w = 2;
          else {
            n.goBack(A.length);
            break;
          }
        }
        return s = mr.WithinContent, S < n.pos() ? y(S, xt.Script) : T();
      case mr.WithinStyleContent:
        return n.advanceUntilRegExp(/<\/style/i), s = mr.WithinContent, S < n.pos() ? y(S, xt.Styles) : T();
    }
    return n.advance(1), s = mr.WithinContent, y(S, xt.Unknown, P);
  }
  return {
    scan: v,
    getTokenType: () => o,
    getTokenOffset: () => a,
    getTokenLength: () => n.pos() - a,
    getTokenEnd: () => n.pos(),
    getTokenText: () => n.getSource().substring(a, n.pos()),
    getScannerState: () => s,
    getTokenError: () => l
  };
}
function Gie(e, t) {
  let r = 0, i = e.length;
  if (i === 0)
    return 0;
  for (; r < i; ) {
    let n = Math.floor((r + i) / 2);
    t(e[n]) ? i = n : r = n + 1;
  }
  return r;
}
function qhr(e, t, r) {
  let i = 0, n = e.length - 1;
  for (; i <= n; ) {
    const s = (i + n) / 2 | 0, a = r(e[s], t);
    if (a < 0)
      i = s + 1;
    else if (a > 0)
      n = s - 1;
    else
      return s;
  }
  return -(i + 1);
}
class Yie {
  get attributeNames() {
    return this.attributes ? Object.keys(this.attributes) : [];
  }
  constructor(t, r, i, n) {
    this.start = t, this.end = r, this.children = i, this.parent = n, this.closed = !1;
  }
  isSameTag(t) {
    return this.tag === void 0 ? t === void 0 : t !== void 0 && this.tag.length === t.length && this.tag.toLowerCase() === t;
  }
  get firstChild() {
    return this.children[0];
  }
  get lastChild() {
    return this.children.length ? this.children[this.children.length - 1] : void 0;
  }
  findNodeBefore(t) {
    const r = Gie(this.children, (i) => t <= i.start) - 1;
    if (r >= 0) {
      const i = this.children[r];
      if (t > i.start) {
        if (t < i.end)
          return i.findNodeBefore(t);
        const n = i.lastChild;
        return n && n.end === i.end ? i.findNodeBefore(t) : i;
      }
    }
    return this;
  }
  findNodeAt(t) {
    const r = Gie(this.children, (i) => t <= i.start) - 1;
    if (r >= 0) {
      const i = this.children[r];
      if (t > i.start && t <= i.end)
        return i.findNodeAt(t);
    }
    return this;
  }
}
class Vhr {
  constructor(t) {
    this.dataManager = t;
  }
  parseDocument(t) {
    return this.parse(t.getText(), this.dataManager.getVoidElements(t.languageId));
  }
  parse(t, r) {
    const i = Eo(t, void 0, void 0, !0), n = new Yie(0, t.length, [], void 0);
    let s = n, a = -1, o, l = null, u = i.scan();
    for (; u !== xt.EOS; ) {
      switch (u) {
        case xt.StartTagOpen:
          const c = new Yie(i.getTokenOffset(), t.length, [], s);
          s.children.push(c), s = c;
          break;
        case xt.StartTag:
          s.tag = i.getTokenText();
          break;
        case xt.StartTagClose:
          s.parent && (s.end = i.getTokenEnd(), i.getTokenLength() ? (s.startTagEnd = i.getTokenEnd(), s.tag && this.dataManager.isVoidElement(s.tag, r) && (s.closed = !0, s = s.parent)) : s = s.parent);
          break;
        case xt.StartTagSelfClose:
          s.parent && (s.closed = !0, s.end = i.getTokenEnd(), s.startTagEnd = i.getTokenEnd(), s = s.parent);
          break;
        case xt.EndTagOpen:
          a = i.getTokenOffset(), o = void 0;
          break;
        case xt.EndTag:
          o = i.getTokenText().toLowerCase();
          break;
        case xt.EndTagClose:
          let f = s;
          for (; !f.isSameTag(o) && f.parent; )
            f = f.parent;
          if (f.parent) {
            for (; s !== f; )
              s.end = a, s.closed = !1, s = s.parent;
            s.closed = !0, s.endTagStart = a, s.end = i.getTokenEnd(), s = s.parent;
          }
          break;
        case xt.AttributeName: {
          l = i.getTokenText();
          let h = s.attributes;
          h || (s.attributes = h = {}), h[l] = null;
          break;
        }
        case xt.AttributeValue: {
          const h = i.getTokenText(), m = s.attributes;
          m && l && (m[l] = h, l = null);
          break;
        }
      }
      u = i.scan();
    }
    for (; s.parent; )
      s.end = t.length, s.closed = !1, s = s.parent;
    return {
      roots: n.children,
      findNodeBefore: n.findNodeBefore.bind(n),
      findNodeAt: n.findNodeAt.bind(n)
    };
  }
}
const dv = {
  "Aacute;": "Á",
  Aacute: "Á",
  "aacute;": "á",
  aacute: "á",
  "Abreve;": "Ă",
  "abreve;": "ă",
  "ac;": "∾",
  "acd;": "∿",
  "acE;": "∾̳",
  "Acirc;": "Â",
  Acirc: "Â",
  "acirc;": "â",
  acirc: "â",
  "acute;": "´",
  acute: "´",
  "Acy;": "А",
  "acy;": "а",
  "AElig;": "Æ",
  AElig: "Æ",
  "aelig;": "æ",
  aelig: "æ",
  "af;": "⁡",
  "Afr;": "𝔄",
  "afr;": "𝔞",
  "Agrave;": "À",
  Agrave: "À",
  "agrave;": "à",
  agrave: "à",
  "alefsym;": "ℵ",
  "aleph;": "ℵ",
  "Alpha;": "Α",
  "alpha;": "α",
  "Amacr;": "Ā",
  "amacr;": "ā",
  "amalg;": "⨿",
  "AMP;": "&",
  AMP: "&",
  "amp;": "&",
  amp: "&",
  "And;": "⩓",
  "and;": "∧",
  "andand;": "⩕",
  "andd;": "⩜",
  "andslope;": "⩘",
  "andv;": "⩚",
  "ang;": "∠",
  "ange;": "⦤",
  "angle;": "∠",
  "angmsd;": "∡",
  "angmsdaa;": "⦨",
  "angmsdab;": "⦩",
  "angmsdac;": "⦪",
  "angmsdad;": "⦫",
  "angmsdae;": "⦬",
  "angmsdaf;": "⦭",
  "angmsdag;": "⦮",
  "angmsdah;": "⦯",
  "angrt;": "∟",
  "angrtvb;": "⊾",
  "angrtvbd;": "⦝",
  "angsph;": "∢",
  "angst;": "Å",
  "angzarr;": "⍼",
  "Aogon;": "Ą",
  "aogon;": "ą",
  "Aopf;": "𝔸",
  "aopf;": "𝕒",
  "ap;": "≈",
  "apacir;": "⩯",
  "apE;": "⩰",
  "ape;": "≊",
  "apid;": "≋",
  "apos;": "'",
  "ApplyFunction;": "⁡",
  "approx;": "≈",
  "approxeq;": "≊",
  "Aring;": "Å",
  Aring: "Å",
  "aring;": "å",
  aring: "å",
  "Ascr;": "𝒜",
  "ascr;": "𝒶",
  "Assign;": "≔",
  "ast;": "*",
  "asymp;": "≈",
  "asympeq;": "≍",
  "Atilde;": "Ã",
  Atilde: "Ã",
  "atilde;": "ã",
  atilde: "ã",
  "Auml;": "Ä",
  Auml: "Ä",
  "auml;": "ä",
  auml: "ä",
  "awconint;": "∳",
  "awint;": "⨑",
  "backcong;": "≌",
  "backepsilon;": "϶",
  "backprime;": "‵",
  "backsim;": "∽",
  "backsimeq;": "⋍",
  "Backslash;": "∖",
  "Barv;": "⫧",
  "barvee;": "⊽",
  "Barwed;": "⌆",
  "barwed;": "⌅",
  "barwedge;": "⌅",
  "bbrk;": "⎵",
  "bbrktbrk;": "⎶",
  "bcong;": "≌",
  "Bcy;": "Б",
  "bcy;": "б",
  "bdquo;": "„",
  "becaus;": "∵",
  "Because;": "∵",
  "because;": "∵",
  "bemptyv;": "⦰",
  "bepsi;": "϶",
  "bernou;": "ℬ",
  "Bernoullis;": "ℬ",
  "Beta;": "Β",
  "beta;": "β",
  "beth;": "ℶ",
  "between;": "≬",
  "Bfr;": "𝔅",
  "bfr;": "𝔟",
  "bigcap;": "⋂",
  "bigcirc;": "◯",
  "bigcup;": "⋃",
  "bigodot;": "⨀",
  "bigoplus;": "⨁",
  "bigotimes;": "⨂",
  "bigsqcup;": "⨆",
  "bigstar;": "★",
  "bigtriangledown;": "▽",
  "bigtriangleup;": "△",
  "biguplus;": "⨄",
  "bigvee;": "⋁",
  "bigwedge;": "⋀",
  "bkarow;": "⤍",
  "blacklozenge;": "⧫",
  "blacksquare;": "▪",
  "blacktriangle;": "▴",
  "blacktriangledown;": "▾",
  "blacktriangleleft;": "◂",
  "blacktriangleright;": "▸",
  "blank;": "␣",
  "blk12;": "▒",
  "blk14;": "░",
  "blk34;": "▓",
  "block;": "█",
  "bne;": "=⃥",
  "bnequiv;": "≡⃥",
  "bNot;": "⫭",
  "bnot;": "⌐",
  "Bopf;": "𝔹",
  "bopf;": "𝕓",
  "bot;": "⊥",
  "bottom;": "⊥",
  "bowtie;": "⋈",
  "boxbox;": "⧉",
  "boxDL;": "╗",
  "boxDl;": "╖",
  "boxdL;": "╕",
  "boxdl;": "┐",
  "boxDR;": "╔",
  "boxDr;": "╓",
  "boxdR;": "╒",
  "boxdr;": "┌",
  "boxH;": "═",
  "boxh;": "─",
  "boxHD;": "╦",
  "boxHd;": "╤",
  "boxhD;": "╥",
  "boxhd;": "┬",
  "boxHU;": "╩",
  "boxHu;": "╧",
  "boxhU;": "╨",
  "boxhu;": "┴",
  "boxminus;": "⊟",
  "boxplus;": "⊞",
  "boxtimes;": "⊠",
  "boxUL;": "╝",
  "boxUl;": "╜",
  "boxuL;": "╛",
  "boxul;": "┘",
  "boxUR;": "╚",
  "boxUr;": "╙",
  "boxuR;": "╘",
  "boxur;": "└",
  "boxV;": "║",
  "boxv;": "│",
  "boxVH;": "╬",
  "boxVh;": "╫",
  "boxvH;": "╪",
  "boxvh;": "┼",
  "boxVL;": "╣",
  "boxVl;": "╢",
  "boxvL;": "╡",
  "boxvl;": "┤",
  "boxVR;": "╠",
  "boxVr;": "╟",
  "boxvR;": "╞",
  "boxvr;": "├",
  "bprime;": "‵",
  "Breve;": "˘",
  "breve;": "˘",
  "brvbar;": "¦",
  brvbar: "¦",
  "Bscr;": "ℬ",
  "bscr;": "𝒷",
  "bsemi;": "⁏",
  "bsim;": "∽",
  "bsime;": "⋍",
  "bsol;": "\\",
  "bsolb;": "⧅",
  "bsolhsub;": "⟈",
  "bull;": "•",
  "bullet;": "•",
  "bump;": "≎",
  "bumpE;": "⪮",
  "bumpe;": "≏",
  "Bumpeq;": "≎",
  "bumpeq;": "≏",
  "Cacute;": "Ć",
  "cacute;": "ć",
  "Cap;": "⋒",
  "cap;": "∩",
  "capand;": "⩄",
  "capbrcup;": "⩉",
  "capcap;": "⩋",
  "capcup;": "⩇",
  "capdot;": "⩀",
  "CapitalDifferentialD;": "ⅅ",
  "caps;": "∩︀",
  "caret;": "⁁",
  "caron;": "ˇ",
  "Cayleys;": "ℭ",
  "ccaps;": "⩍",
  "Ccaron;": "Č",
  "ccaron;": "č",
  "Ccedil;": "Ç",
  Ccedil: "Ç",
  "ccedil;": "ç",
  ccedil: "ç",
  "Ccirc;": "Ĉ",
  "ccirc;": "ĉ",
  "Cconint;": "∰",
  "ccups;": "⩌",
  "ccupssm;": "⩐",
  "Cdot;": "Ċ",
  "cdot;": "ċ",
  "cedil;": "¸",
  cedil: "¸",
  "Cedilla;": "¸",
  "cemptyv;": "⦲",
  "cent;": "¢",
  cent: "¢",
  "CenterDot;": "·",
  "centerdot;": "·",
  "Cfr;": "ℭ",
  "cfr;": "𝔠",
  "CHcy;": "Ч",
  "chcy;": "ч",
  "check;": "✓",
  "checkmark;": "✓",
  "Chi;": "Χ",
  "chi;": "χ",
  "cir;": "○",
  "circ;": "ˆ",
  "circeq;": "≗",
  "circlearrowleft;": "↺",
  "circlearrowright;": "↻",
  "circledast;": "⊛",
  "circledcirc;": "⊚",
  "circleddash;": "⊝",
  "CircleDot;": "⊙",
  "circledR;": "®",
  "circledS;": "Ⓢ",
  "CircleMinus;": "⊖",
  "CirclePlus;": "⊕",
  "CircleTimes;": "⊗",
  "cirE;": "⧃",
  "cire;": "≗",
  "cirfnint;": "⨐",
  "cirmid;": "⫯",
  "cirscir;": "⧂",
  "ClockwiseContourIntegral;": "∲",
  "CloseCurlyDoubleQuote;": "”",
  "CloseCurlyQuote;": "’",
  "clubs;": "♣",
  "clubsuit;": "♣",
  "Colon;": "∷",
  "colon;": ":",
  "Colone;": "⩴",
  "colone;": "≔",
  "coloneq;": "≔",
  "comma;": ",",
  "commat;": "@",
  "comp;": "∁",
  "compfn;": "∘",
  "complement;": "∁",
  "complexes;": "ℂ",
  "cong;": "≅",
  "congdot;": "⩭",
  "Congruent;": "≡",
  "Conint;": "∯",
  "conint;": "∮",
  "ContourIntegral;": "∮",
  "Copf;": "ℂ",
  "copf;": "𝕔",
  "coprod;": "∐",
  "Coproduct;": "∐",
  "COPY;": "©",
  COPY: "©",
  "copy;": "©",
  copy: "©",
  "copysr;": "℗",
  "CounterClockwiseContourIntegral;": "∳",
  "crarr;": "↵",
  "Cross;": "⨯",
  "cross;": "✗",
  "Cscr;": "𝒞",
  "cscr;": "𝒸",
  "csub;": "⫏",
  "csube;": "⫑",
  "csup;": "⫐",
  "csupe;": "⫒",
  "ctdot;": "⋯",
  "cudarrl;": "⤸",
  "cudarrr;": "⤵",
  "cuepr;": "⋞",
  "cuesc;": "⋟",
  "cularr;": "↶",
  "cularrp;": "⤽",
  "Cup;": "⋓",
  "cup;": "∪",
  "cupbrcap;": "⩈",
  "CupCap;": "≍",
  "cupcap;": "⩆",
  "cupcup;": "⩊",
  "cupdot;": "⊍",
  "cupor;": "⩅",
  "cups;": "∪︀",
  "curarr;": "↷",
  "curarrm;": "⤼",
  "curlyeqprec;": "⋞",
  "curlyeqsucc;": "⋟",
  "curlyvee;": "⋎",
  "curlywedge;": "⋏",
  "curren;": "¤",
  curren: "¤",
  "curvearrowleft;": "↶",
  "curvearrowright;": "↷",
  "cuvee;": "⋎",
  "cuwed;": "⋏",
  "cwconint;": "∲",
  "cwint;": "∱",
  "cylcty;": "⌭",
  "Dagger;": "‡",
  "dagger;": "†",
  "daleth;": "ℸ",
  "Darr;": "↡",
  "dArr;": "⇓",
  "darr;": "↓",
  "dash;": "‐",
  "Dashv;": "⫤",
  "dashv;": "⊣",
  "dbkarow;": "⤏",
  "dblac;": "˝",
  "Dcaron;": "Ď",
  "dcaron;": "ď",
  "Dcy;": "Д",
  "dcy;": "д",
  "DD;": "ⅅ",
  "dd;": "ⅆ",
  "ddagger;": "‡",
  "ddarr;": "⇊",
  "DDotrahd;": "⤑",
  "ddotseq;": "⩷",
  "deg;": "°",
  deg: "°",
  "Del;": "∇",
  "Delta;": "Δ",
  "delta;": "δ",
  "demptyv;": "⦱",
  "dfisht;": "⥿",
  "Dfr;": "𝔇",
  "dfr;": "𝔡",
  "dHar;": "⥥",
  "dharl;": "⇃",
  "dharr;": "⇂",
  "DiacriticalAcute;": "´",
  "DiacriticalDot;": "˙",
  "DiacriticalDoubleAcute;": "˝",
  "DiacriticalGrave;": "`",
  "DiacriticalTilde;": "˜",
  "diam;": "⋄",
  "Diamond;": "⋄",
  "diamond;": "⋄",
  "diamondsuit;": "♦",
  "diams;": "♦",
  "die;": "¨",
  "DifferentialD;": "ⅆ",
  "digamma;": "ϝ",
  "disin;": "⋲",
  "div;": "÷",
  "divide;": "÷",
  divide: "÷",
  "divideontimes;": "⋇",
  "divonx;": "⋇",
  "DJcy;": "Ђ",
  "djcy;": "ђ",
  "dlcorn;": "⌞",
  "dlcrop;": "⌍",
  "dollar;": "$",
  "Dopf;": "𝔻",
  "dopf;": "𝕕",
  "Dot;": "¨",
  "dot;": "˙",
  "DotDot;": "⃜",
  "doteq;": "≐",
  "doteqdot;": "≑",
  "DotEqual;": "≐",
  "dotminus;": "∸",
  "dotplus;": "∔",
  "dotsquare;": "⊡",
  "doublebarwedge;": "⌆",
  "DoubleContourIntegral;": "∯",
  "DoubleDot;": "¨",
  "DoubleDownArrow;": "⇓",
  "DoubleLeftArrow;": "⇐",
  "DoubleLeftRightArrow;": "⇔",
  "DoubleLeftTee;": "⫤",
  "DoubleLongLeftArrow;": "⟸",
  "DoubleLongLeftRightArrow;": "⟺",
  "DoubleLongRightArrow;": "⟹",
  "DoubleRightArrow;": "⇒",
  "DoubleRightTee;": "⊨",
  "DoubleUpArrow;": "⇑",
  "DoubleUpDownArrow;": "⇕",
  "DoubleVerticalBar;": "∥",
  "DownArrow;": "↓",
  "Downarrow;": "⇓",
  "downarrow;": "↓",
  "DownArrowBar;": "⤓",
  "DownArrowUpArrow;": "⇵",
  "DownBreve;": "̑",
  "downdownarrows;": "⇊",
  "downharpoonleft;": "⇃",
  "downharpoonright;": "⇂",
  "DownLeftRightVector;": "⥐",
  "DownLeftTeeVector;": "⥞",
  "DownLeftVector;": "↽",
  "DownLeftVectorBar;": "⥖",
  "DownRightTeeVector;": "⥟",
  "DownRightVector;": "⇁",
  "DownRightVectorBar;": "⥗",
  "DownTee;": "⊤",
  "DownTeeArrow;": "↧",
  "drbkarow;": "⤐",
  "drcorn;": "⌟",
  "drcrop;": "⌌",
  "Dscr;": "𝒟",
  "dscr;": "𝒹",
  "DScy;": "Ѕ",
  "dscy;": "ѕ",
  "dsol;": "⧶",
  "Dstrok;": "Đ",
  "dstrok;": "đ",
  "dtdot;": "⋱",
  "dtri;": "▿",
  "dtrif;": "▾",
  "duarr;": "⇵",
  "duhar;": "⥯",
  "dwangle;": "⦦",
  "DZcy;": "Џ",
  "dzcy;": "џ",
  "dzigrarr;": "⟿",
  "Eacute;": "É",
  Eacute: "É",
  "eacute;": "é",
  eacute: "é",
  "easter;": "⩮",
  "Ecaron;": "Ě",
  "ecaron;": "ě",
  "ecir;": "≖",
  "Ecirc;": "Ê",
  Ecirc: "Ê",
  "ecirc;": "ê",
  ecirc: "ê",
  "ecolon;": "≕",
  "Ecy;": "Э",
  "ecy;": "э",
  "eDDot;": "⩷",
  "Edot;": "Ė",
  "eDot;": "≑",
  "edot;": "ė",
  "ee;": "ⅇ",
  "efDot;": "≒",
  "Efr;": "𝔈",
  "efr;": "𝔢",
  "eg;": "⪚",
  "Egrave;": "È",
  Egrave: "È",
  "egrave;": "è",
  egrave: "è",
  "egs;": "⪖",
  "egsdot;": "⪘",
  "el;": "⪙",
  "Element;": "∈",
  "elinters;": "⏧",
  "ell;": "ℓ",
  "els;": "⪕",
  "elsdot;": "⪗",
  "Emacr;": "Ē",
  "emacr;": "ē",
  "empty;": "∅",
  "emptyset;": "∅",
  "EmptySmallSquare;": "◻",
  "emptyv;": "∅",
  "EmptyVerySmallSquare;": "▫",
  "emsp;": " ",
  "emsp13;": " ",
  "emsp14;": " ",
  "ENG;": "Ŋ",
  "eng;": "ŋ",
  "ensp;": " ",
  "Eogon;": "Ę",
  "eogon;": "ę",
  "Eopf;": "𝔼",
  "eopf;": "𝕖",
  "epar;": "⋕",
  "eparsl;": "⧣",
  "eplus;": "⩱",
  "epsi;": "ε",
  "Epsilon;": "Ε",
  "epsilon;": "ε",
  "epsiv;": "ϵ",
  "eqcirc;": "≖",
  "eqcolon;": "≕",
  "eqsim;": "≂",
  "eqslantgtr;": "⪖",
  "eqslantless;": "⪕",
  "Equal;": "⩵",
  "equals;": "=",
  "EqualTilde;": "≂",
  "equest;": "≟",
  "Equilibrium;": "⇌",
  "equiv;": "≡",
  "equivDD;": "⩸",
  "eqvparsl;": "⧥",
  "erarr;": "⥱",
  "erDot;": "≓",
  "Escr;": "ℰ",
  "escr;": "ℯ",
  "esdot;": "≐",
  "Esim;": "⩳",
  "esim;": "≂",
  "Eta;": "Η",
  "eta;": "η",
  "ETH;": "Ð",
  ETH: "Ð",
  "eth;": "ð",
  eth: "ð",
  "Euml;": "Ë",
  Euml: "Ë",
  "euml;": "ë",
  euml: "ë",
  "euro;": "€",
  "excl;": "!",
  "exist;": "∃",
  "Exists;": "∃",
  "expectation;": "ℰ",
  "ExponentialE;": "ⅇ",
  "exponentiale;": "ⅇ",
  "fallingdotseq;": "≒",
  "Fcy;": "Ф",
  "fcy;": "ф",
  "female;": "♀",
  "ffilig;": "ﬃ",
  "fflig;": "ﬀ",
  "ffllig;": "ﬄ",
  "Ffr;": "𝔉",
  "ffr;": "𝔣",
  "filig;": "ﬁ",
  "FilledSmallSquare;": "◼",
  "FilledVerySmallSquare;": "▪",
  "fjlig;": "fj",
  "flat;": "♭",
  "fllig;": "ﬂ",
  "fltns;": "▱",
  "fnof;": "ƒ",
  "Fopf;": "𝔽",
  "fopf;": "𝕗",
  "ForAll;": "∀",
  "forall;": "∀",
  "fork;": "⋔",
  "forkv;": "⫙",
  "Fouriertrf;": "ℱ",
  "fpartint;": "⨍",
  "frac12;": "½",
  frac12: "½",
  "frac13;": "⅓",
  "frac14;": "¼",
  frac14: "¼",
  "frac15;": "⅕",
  "frac16;": "⅙",
  "frac18;": "⅛",
  "frac23;": "⅔",
  "frac25;": "⅖",
  "frac34;": "¾",
  frac34: "¾",
  "frac35;": "⅗",
  "frac38;": "⅜",
  "frac45;": "⅘",
  "frac56;": "⅚",
  "frac58;": "⅝",
  "frac78;": "⅞",
  "frasl;": "⁄",
  "frown;": "⌢",
  "Fscr;": "ℱ",
  "fscr;": "𝒻",
  "gacute;": "ǵ",
  "Gamma;": "Γ",
  "gamma;": "γ",
  "Gammad;": "Ϝ",
  "gammad;": "ϝ",
  "gap;": "⪆",
  "Gbreve;": "Ğ",
  "gbreve;": "ğ",
  "Gcedil;": "Ģ",
  "Gcirc;": "Ĝ",
  "gcirc;": "ĝ",
  "Gcy;": "Г",
  "gcy;": "г",
  "Gdot;": "Ġ",
  "gdot;": "ġ",
  "gE;": "≧",
  "ge;": "≥",
  "gEl;": "⪌",
  "gel;": "⋛",
  "geq;": "≥",
  "geqq;": "≧",
  "geqslant;": "⩾",
  "ges;": "⩾",
  "gescc;": "⪩",
  "gesdot;": "⪀",
  "gesdoto;": "⪂",
  "gesdotol;": "⪄",
  "gesl;": "⋛︀",
  "gesles;": "⪔",
  "Gfr;": "𝔊",
  "gfr;": "𝔤",
  "Gg;": "⋙",
  "gg;": "≫",
  "ggg;": "⋙",
  "gimel;": "ℷ",
  "GJcy;": "Ѓ",
  "gjcy;": "ѓ",
  "gl;": "≷",
  "gla;": "⪥",
  "glE;": "⪒",
  "glj;": "⪤",
  "gnap;": "⪊",
  "gnapprox;": "⪊",
  "gnE;": "≩",
  "gne;": "⪈",
  "gneq;": "⪈",
  "gneqq;": "≩",
  "gnsim;": "⋧",
  "Gopf;": "𝔾",
  "gopf;": "𝕘",
  "grave;": "`",
  "GreaterEqual;": "≥",
  "GreaterEqualLess;": "⋛",
  "GreaterFullEqual;": "≧",
  "GreaterGreater;": "⪢",
  "GreaterLess;": "≷",
  "GreaterSlantEqual;": "⩾",
  "GreaterTilde;": "≳",
  "Gscr;": "𝒢",
  "gscr;": "ℊ",
  "gsim;": "≳",
  "gsime;": "⪎",
  "gsiml;": "⪐",
  "GT;": ">",
  GT: ">",
  "Gt;": "≫",
  "gt;": ">",
  gt: ">",
  "gtcc;": "⪧",
  "gtcir;": "⩺",
  "gtdot;": "⋗",
  "gtlPar;": "⦕",
  "gtquest;": "⩼",
  "gtrapprox;": "⪆",
  "gtrarr;": "⥸",
  "gtrdot;": "⋗",
  "gtreqless;": "⋛",
  "gtreqqless;": "⪌",
  "gtrless;": "≷",
  "gtrsim;": "≳",
  "gvertneqq;": "≩︀",
  "gvnE;": "≩︀",
  "Hacek;": "ˇ",
  "hairsp;": " ",
  "half;": "½",
  "hamilt;": "ℋ",
  "HARDcy;": "Ъ",
  "hardcy;": "ъ",
  "hArr;": "⇔",
  "harr;": "↔",
  "harrcir;": "⥈",
  "harrw;": "↭",
  "Hat;": "^",
  "hbar;": "ℏ",
  "Hcirc;": "Ĥ",
  "hcirc;": "ĥ",
  "hearts;": "♥",
  "heartsuit;": "♥",
  "hellip;": "…",
  "hercon;": "⊹",
  "Hfr;": "ℌ",
  "hfr;": "𝔥",
  "HilbertSpace;": "ℋ",
  "hksearow;": "⤥",
  "hkswarow;": "⤦",
  "hoarr;": "⇿",
  "homtht;": "∻",
  "hookleftarrow;": "↩",
  "hookrightarrow;": "↪",
  "Hopf;": "ℍ",
  "hopf;": "𝕙",
  "horbar;": "―",
  "HorizontalLine;": "─",
  "Hscr;": "ℋ",
  "hscr;": "𝒽",
  "hslash;": "ℏ",
  "Hstrok;": "Ħ",
  "hstrok;": "ħ",
  "HumpDownHump;": "≎",
  "HumpEqual;": "≏",
  "hybull;": "⁃",
  "hyphen;": "‐",
  "Iacute;": "Í",
  Iacute: "Í",
  "iacute;": "í",
  iacute: "í",
  "ic;": "⁣",
  "Icirc;": "Î",
  Icirc: "Î",
  "icirc;": "î",
  icirc: "î",
  "Icy;": "И",
  "icy;": "и",
  "Idot;": "İ",
  "IEcy;": "Е",
  "iecy;": "е",
  "iexcl;": "¡",
  iexcl: "¡",
  "iff;": "⇔",
  "Ifr;": "ℑ",
  "ifr;": "𝔦",
  "Igrave;": "Ì",
  Igrave: "Ì",
  "igrave;": "ì",
  igrave: "ì",
  "ii;": "ⅈ",
  "iiiint;": "⨌",
  "iiint;": "∭",
  "iinfin;": "⧜",
  "iiota;": "℩",
  "IJlig;": "Ĳ",
  "ijlig;": "ĳ",
  "Im;": "ℑ",
  "Imacr;": "Ī",
  "imacr;": "ī",
  "image;": "ℑ",
  "ImaginaryI;": "ⅈ",
  "imagline;": "ℐ",
  "imagpart;": "ℑ",
  "imath;": "ı",
  "imof;": "⊷",
  "imped;": "Ƶ",
  "Implies;": "⇒",
  "in;": "∈",
  "incare;": "℅",
  "infin;": "∞",
  "infintie;": "⧝",
  "inodot;": "ı",
  "Int;": "∬",
  "int;": "∫",
  "intcal;": "⊺",
  "integers;": "ℤ",
  "Integral;": "∫",
  "intercal;": "⊺",
  "Intersection;": "⋂",
  "intlarhk;": "⨗",
  "intprod;": "⨼",
  "InvisibleComma;": "⁣",
  "InvisibleTimes;": "⁢",
  "IOcy;": "Ё",
  "iocy;": "ё",
  "Iogon;": "Į",
  "iogon;": "į",
  "Iopf;": "𝕀",
  "iopf;": "𝕚",
  "Iota;": "Ι",
  "iota;": "ι",
  "iprod;": "⨼",
  "iquest;": "¿",
  iquest: "¿",
  "Iscr;": "ℐ",
  "iscr;": "𝒾",
  "isin;": "∈",
  "isindot;": "⋵",
  "isinE;": "⋹",
  "isins;": "⋴",
  "isinsv;": "⋳",
  "isinv;": "∈",
  "it;": "⁢",
  "Itilde;": "Ĩ",
  "itilde;": "ĩ",
  "Iukcy;": "І",
  "iukcy;": "і",
  "Iuml;": "Ï",
  Iuml: "Ï",
  "iuml;": "ï",
  iuml: "ï",
  "Jcirc;": "Ĵ",
  "jcirc;": "ĵ",
  "Jcy;": "Й",
  "jcy;": "й",
  "Jfr;": "𝔍",
  "jfr;": "𝔧",
  "jmath;": "ȷ",
  "Jopf;": "𝕁",
  "jopf;": "𝕛",
  "Jscr;": "𝒥",
  "jscr;": "𝒿",
  "Jsercy;": "Ј",
  "jsercy;": "ј",
  "Jukcy;": "Є",
  "jukcy;": "є",
  "Kappa;": "Κ",
  "kappa;": "κ",
  "kappav;": "ϰ",
  "Kcedil;": "Ķ",
  "kcedil;": "ķ",
  "Kcy;": "К",
  "kcy;": "к",
  "Kfr;": "𝔎",
  "kfr;": "𝔨",
  "kgreen;": "ĸ",
  "KHcy;": "Х",
  "khcy;": "х",
  "KJcy;": "Ќ",
  "kjcy;": "ќ",
  "Kopf;": "𝕂",
  "kopf;": "𝕜",
  "Kscr;": "𝒦",
  "kscr;": "𝓀",
  "lAarr;": "⇚",
  "Lacute;": "Ĺ",
  "lacute;": "ĺ",
  "laemptyv;": "⦴",
  "lagran;": "ℒ",
  "Lambda;": "Λ",
  "lambda;": "λ",
  "Lang;": "⟪",
  "lang;": "⟨",
  "langd;": "⦑",
  "langle;": "⟨",
  "lap;": "⪅",
  "Laplacetrf;": "ℒ",
  "laquo;": "«",
  laquo: "«",
  "Larr;": "↞",
  "lArr;": "⇐",
  "larr;": "←",
  "larrb;": "⇤",
  "larrbfs;": "⤟",
  "larrfs;": "⤝",
  "larrhk;": "↩",
  "larrlp;": "↫",
  "larrpl;": "⤹",
  "larrsim;": "⥳",
  "larrtl;": "↢",
  "lat;": "⪫",
  "lAtail;": "⤛",
  "latail;": "⤙",
  "late;": "⪭",
  "lates;": "⪭︀",
  "lBarr;": "⤎",
  "lbarr;": "⤌",
  "lbbrk;": "❲",
  "lbrace;": "{",
  "lbrack;": "[",
  "lbrke;": "⦋",
  "lbrksld;": "⦏",
  "lbrkslu;": "⦍",
  "Lcaron;": "Ľ",
  "lcaron;": "ľ",
  "Lcedil;": "Ļ",
  "lcedil;": "ļ",
  "lceil;": "⌈",
  "lcub;": "{",
  "Lcy;": "Л",
  "lcy;": "л",
  "ldca;": "⤶",
  "ldquo;": "“",
  "ldquor;": "„",
  "ldrdhar;": "⥧",
  "ldrushar;": "⥋",
  "ldsh;": "↲",
  "lE;": "≦",
  "le;": "≤",
  "LeftAngleBracket;": "⟨",
  "LeftArrow;": "←",
  "Leftarrow;": "⇐",
  "leftarrow;": "←",
  "LeftArrowBar;": "⇤",
  "LeftArrowRightArrow;": "⇆",
  "leftarrowtail;": "↢",
  "LeftCeiling;": "⌈",
  "LeftDoubleBracket;": "⟦",
  "LeftDownTeeVector;": "⥡",
  "LeftDownVector;": "⇃",
  "LeftDownVectorBar;": "⥙",
  "LeftFloor;": "⌊",
  "leftharpoondown;": "↽",
  "leftharpoonup;": "↼",
  "leftleftarrows;": "⇇",
  "LeftRightArrow;": "↔",
  "Leftrightarrow;": "⇔",
  "leftrightarrow;": "↔",
  "leftrightarrows;": "⇆",
  "leftrightharpoons;": "⇋",
  "leftrightsquigarrow;": "↭",
  "LeftRightVector;": "⥎",
  "LeftTee;": "⊣",
  "LeftTeeArrow;": "↤",
  "LeftTeeVector;": "⥚",
  "leftthreetimes;": "⋋",
  "LeftTriangle;": "⊲",
  "LeftTriangleBar;": "⧏",
  "LeftTriangleEqual;": "⊴",
  "LeftUpDownVector;": "⥑",
  "LeftUpTeeVector;": "⥠",
  "LeftUpVector;": "↿",
  "LeftUpVectorBar;": "⥘",
  "LeftVector;": "↼",
  "LeftVectorBar;": "⥒",
  "lEg;": "⪋",
  "leg;": "⋚",
  "leq;": "≤",
  "leqq;": "≦",
  "leqslant;": "⩽",
  "les;": "⩽",
  "lescc;": "⪨",
  "lesdot;": "⩿",
  "lesdoto;": "⪁",
  "lesdotor;": "⪃",
  "lesg;": "⋚︀",
  "lesges;": "⪓",
  "lessapprox;": "⪅",
  "lessdot;": "⋖",
  "lesseqgtr;": "⋚",
  "lesseqqgtr;": "⪋",
  "LessEqualGreater;": "⋚",
  "LessFullEqual;": "≦",
  "LessGreater;": "≶",
  "lessgtr;": "≶",
  "LessLess;": "⪡",
  "lesssim;": "≲",
  "LessSlantEqual;": "⩽",
  "LessTilde;": "≲",
  "lfisht;": "⥼",
  "lfloor;": "⌊",
  "Lfr;": "𝔏",
  "lfr;": "𝔩",
  "lg;": "≶",
  "lgE;": "⪑",
  "lHar;": "⥢",
  "lhard;": "↽",
  "lharu;": "↼",
  "lharul;": "⥪",
  "lhblk;": "▄",
  "LJcy;": "Љ",
  "ljcy;": "љ",
  "Ll;": "⋘",
  "ll;": "≪",
  "llarr;": "⇇",
  "llcorner;": "⌞",
  "Lleftarrow;": "⇚",
  "llhard;": "⥫",
  "lltri;": "◺",
  "Lmidot;": "Ŀ",
  "lmidot;": "ŀ",
  "lmoust;": "⎰",
  "lmoustache;": "⎰",
  "lnap;": "⪉",
  "lnapprox;": "⪉",
  "lnE;": "≨",
  "lne;": "⪇",
  "lneq;": "⪇",
  "lneqq;": "≨",
  "lnsim;": "⋦",
  "loang;": "⟬",
  "loarr;": "⇽",
  "lobrk;": "⟦",
  "LongLeftArrow;": "⟵",
  "Longleftarrow;": "⟸",
  "longleftarrow;": "⟵",
  "LongLeftRightArrow;": "⟷",
  "Longleftrightarrow;": "⟺",
  "longleftrightarrow;": "⟷",
  "longmapsto;": "⟼",
  "LongRightArrow;": "⟶",
  "Longrightarrow;": "⟹",
  "longrightarrow;": "⟶",
  "looparrowleft;": "↫",
  "looparrowright;": "↬",
  "lopar;": "⦅",
  "Lopf;": "𝕃",
  "lopf;": "𝕝",
  "loplus;": "⨭",
  "lotimes;": "⨴",
  "lowast;": "∗",
  "lowbar;": "_",
  "LowerLeftArrow;": "↙",
  "LowerRightArrow;": "↘",
  "loz;": "◊",
  "lozenge;": "◊",
  "lozf;": "⧫",
  "lpar;": "(",
  "lparlt;": "⦓",
  "lrarr;": "⇆",
  "lrcorner;": "⌟",
  "lrhar;": "⇋",
  "lrhard;": "⥭",
  "lrm;": "‎",
  "lrtri;": "⊿",
  "lsaquo;": "‹",
  "Lscr;": "ℒ",
  "lscr;": "𝓁",
  "Lsh;": "↰",
  "lsh;": "↰",
  "lsim;": "≲",
  "lsime;": "⪍",
  "lsimg;": "⪏",
  "lsqb;": "[",
  "lsquo;": "‘",
  "lsquor;": "‚",
  "Lstrok;": "Ł",
  "lstrok;": "ł",
  "LT;": "<",
  LT: "<",
  "Lt;": "≪",
  "lt;": "<",
  lt: "<",
  "ltcc;": "⪦",
  "ltcir;": "⩹",
  "ltdot;": "⋖",
  "lthree;": "⋋",
  "ltimes;": "⋉",
  "ltlarr;": "⥶",
  "ltquest;": "⩻",
  "ltri;": "◃",
  "ltrie;": "⊴",
  "ltrif;": "◂",
  "ltrPar;": "⦖",
  "lurdshar;": "⥊",
  "luruhar;": "⥦",
  "lvertneqq;": "≨︀",
  "lvnE;": "≨︀",
  "macr;": "¯",
  macr: "¯",
  "male;": "♂",
  "malt;": "✠",
  "maltese;": "✠",
  "Map;": "⤅",
  "map;": "↦",
  "mapsto;": "↦",
  "mapstodown;": "↧",
  "mapstoleft;": "↤",
  "mapstoup;": "↥",
  "marker;": "▮",
  "mcomma;": "⨩",
  "Mcy;": "М",
  "mcy;": "м",
  "mdash;": "—",
  "mDDot;": "∺",
  "measuredangle;": "∡",
  "MediumSpace;": " ",
  "Mellintrf;": "ℳ",
  "Mfr;": "𝔐",
  "mfr;": "𝔪",
  "mho;": "℧",
  "micro;": "µ",
  micro: "µ",
  "mid;": "∣",
  "midast;": "*",
  "midcir;": "⫰",
  "middot;": "·",
  middot: "·",
  "minus;": "−",
  "minusb;": "⊟",
  "minusd;": "∸",
  "minusdu;": "⨪",
  "MinusPlus;": "∓",
  "mlcp;": "⫛",
  "mldr;": "…",
  "mnplus;": "∓",
  "models;": "⊧",
  "Mopf;": "𝕄",
  "mopf;": "𝕞",
  "mp;": "∓",
  "Mscr;": "ℳ",
  "mscr;": "𝓂",
  "mstpos;": "∾",
  "Mu;": "Μ",
  "mu;": "μ",
  "multimap;": "⊸",
  "mumap;": "⊸",
  "nabla;": "∇",
  "Nacute;": "Ń",
  "nacute;": "ń",
  "nang;": "∠⃒",
  "nap;": "≉",
  "napE;": "⩰̸",
  "napid;": "≋̸",
  "napos;": "ŉ",
  "napprox;": "≉",
  "natur;": "♮",
  "natural;": "♮",
  "naturals;": "ℕ",
  "nbsp;": " ",
  nbsp: " ",
  "nbump;": "≎̸",
  "nbumpe;": "≏̸",
  "ncap;": "⩃",
  "Ncaron;": "Ň",
  "ncaron;": "ň",
  "Ncedil;": "Ņ",
  "ncedil;": "ņ",
  "ncong;": "≇",
  "ncongdot;": "⩭̸",
  "ncup;": "⩂",
  "Ncy;": "Н",
  "ncy;": "н",
  "ndash;": "–",
  "ne;": "≠",
  "nearhk;": "⤤",
  "neArr;": "⇗",
  "nearr;": "↗",
  "nearrow;": "↗",
  "nedot;": "≐̸",
  "NegativeMediumSpace;": "​",
  "NegativeThickSpace;": "​",
  "NegativeThinSpace;": "​",
  "NegativeVeryThinSpace;": "​",
  "nequiv;": "≢",
  "nesear;": "⤨",
  "nesim;": "≂̸",
  "NestedGreaterGreater;": "≫",
  "NestedLessLess;": "≪",
  "NewLine;": "\n",
  "nexist;": "∄",
  "nexists;": "∄",
  "Nfr;": "𝔑",
  "nfr;": "𝔫",
  "ngE;": "≧̸",
  "nge;": "≱",
  "ngeq;": "≱",
  "ngeqq;": "≧̸",
  "ngeqslant;": "⩾̸",
  "nges;": "⩾̸",
  "nGg;": "⋙̸",
  "ngsim;": "≵",
  "nGt;": "≫⃒",
  "ngt;": "≯",
  "ngtr;": "≯",
  "nGtv;": "≫̸",
  "nhArr;": "⇎",
  "nharr;": "↮",
  "nhpar;": "⫲",
  "ni;": "∋",
  "nis;": "⋼",
  "nisd;": "⋺",
  "niv;": "∋",
  "NJcy;": "Њ",
  "njcy;": "њ",
  "nlArr;": "⇍",
  "nlarr;": "↚",
  "nldr;": "‥",
  "nlE;": "≦̸",
  "nle;": "≰",
  "nLeftarrow;": "⇍",
  "nleftarrow;": "↚",
  "nLeftrightarrow;": "⇎",
  "nleftrightarrow;": "↮",
  "nleq;": "≰",
  "nleqq;": "≦̸",
  "nleqslant;": "⩽̸",
  "nles;": "⩽̸",
  "nless;": "≮",
  "nLl;": "⋘̸",
  "nlsim;": "≴",
  "nLt;": "≪⃒",
  "nlt;": "≮",
  "nltri;": "⋪",
  "nltrie;": "⋬",
  "nLtv;": "≪̸",
  "nmid;": "∤",
  "NoBreak;": "⁠",
  "NonBreakingSpace;": " ",
  "Nopf;": "ℕ",
  "nopf;": "𝕟",
  "Not;": "⫬",
  "not;": "¬",
  not: "¬",
  "NotCongruent;": "≢",
  "NotCupCap;": "≭",
  "NotDoubleVerticalBar;": "∦",
  "NotElement;": "∉",
  "NotEqual;": "≠",
  "NotEqualTilde;": "≂̸",
  "NotExists;": "∄",
  "NotGreater;": "≯",
  "NotGreaterEqual;": "≱",
  "NotGreaterFullEqual;": "≧̸",
  "NotGreaterGreater;": "≫̸",
  "NotGreaterLess;": "≹",
  "NotGreaterSlantEqual;": "⩾̸",
  "NotGreaterTilde;": "≵",
  "NotHumpDownHump;": "≎̸",
  "NotHumpEqual;": "≏̸",
  "notin;": "∉",
  "notindot;": "⋵̸",
  "notinE;": "⋹̸",
  "notinva;": "∉",
  "notinvb;": "⋷",
  "notinvc;": "⋶",
  "NotLeftTriangle;": "⋪",
  "NotLeftTriangleBar;": "⧏̸",
  "NotLeftTriangleEqual;": "⋬",
  "NotLess;": "≮",
  "NotLessEqual;": "≰",
  "NotLessGreater;": "≸",
  "NotLessLess;": "≪̸",
  "NotLessSlantEqual;": "⩽̸",
  "NotLessTilde;": "≴",
  "NotNestedGreaterGreater;": "⪢̸",
  "NotNestedLessLess;": "⪡̸",
  "notni;": "∌",
  "notniva;": "∌",
  "notnivb;": "⋾",
  "notnivc;": "⋽",
  "NotPrecedes;": "⊀",
  "NotPrecedesEqual;": "⪯̸",
  "NotPrecedesSlantEqual;": "⋠",
  "NotReverseElement;": "∌",
  "NotRightTriangle;": "⋫",
  "NotRightTriangleBar;": "⧐̸",
  "NotRightTriangleEqual;": "⋭",
  "NotSquareSubset;": "⊏̸",
  "NotSquareSubsetEqual;": "⋢",
  "NotSquareSuperset;": "⊐̸",
  "NotSquareSupersetEqual;": "⋣",
  "NotSubset;": "⊂⃒",
  "NotSubsetEqual;": "⊈",
  "NotSucceeds;": "⊁",
  "NotSucceedsEqual;": "⪰̸",
  "NotSucceedsSlantEqual;": "⋡",
  "NotSucceedsTilde;": "≿̸",
  "NotSuperset;": "⊃⃒",
  "NotSupersetEqual;": "⊉",
  "NotTilde;": "≁",
  "NotTildeEqual;": "≄",
  "NotTildeFullEqual;": "≇",
  "NotTildeTilde;": "≉",
  "NotVerticalBar;": "∤",
  "npar;": "∦",
  "nparallel;": "∦",
  "nparsl;": "⫽⃥",
  "npart;": "∂̸",
  "npolint;": "⨔",
  "npr;": "⊀",
  "nprcue;": "⋠",
  "npre;": "⪯̸",
  "nprec;": "⊀",
  "npreceq;": "⪯̸",
  "nrArr;": "⇏",
  "nrarr;": "↛",
  "nrarrc;": "⤳̸",
  "nrarrw;": "↝̸",
  "nRightarrow;": "⇏",
  "nrightarrow;": "↛",
  "nrtri;": "⋫",
  "nrtrie;": "⋭",
  "nsc;": "⊁",
  "nsccue;": "⋡",
  "nsce;": "⪰̸",
  "Nscr;": "𝒩",
  "nscr;": "𝓃",
  "nshortmid;": "∤",
  "nshortparallel;": "∦",
  "nsim;": "≁",
  "nsime;": "≄",
  "nsimeq;": "≄",
  "nsmid;": "∤",
  "nspar;": "∦",
  "nsqsube;": "⋢",
  "nsqsupe;": "⋣",
  "nsub;": "⊄",
  "nsubE;": "⫅̸",
  "nsube;": "⊈",
  "nsubset;": "⊂⃒",
  "nsubseteq;": "⊈",
  "nsubseteqq;": "⫅̸",
  "nsucc;": "⊁",
  "nsucceq;": "⪰̸",
  "nsup;": "⊅",
  "nsupE;": "⫆̸",
  "nsupe;": "⊉",
  "nsupset;": "⊃⃒",
  "nsupseteq;": "⊉",
  "nsupseteqq;": "⫆̸",
  "ntgl;": "≹",
  "Ntilde;": "Ñ",
  Ntilde: "Ñ",
  "ntilde;": "ñ",
  ntilde: "ñ",
  "ntlg;": "≸",
  "ntriangleleft;": "⋪",
  "ntrianglelefteq;": "⋬",
  "ntriangleright;": "⋫",
  "ntrianglerighteq;": "⋭",
  "Nu;": "Ν",
  "nu;": "ν",
  "num;": "#",
  "numero;": "№",
  "numsp;": " ",
  "nvap;": "≍⃒",
  "nVDash;": "⊯",
  "nVdash;": "⊮",
  "nvDash;": "⊭",
  "nvdash;": "⊬",
  "nvge;": "≥⃒",
  "nvgt;": ">⃒",
  "nvHarr;": "⤄",
  "nvinfin;": "⧞",
  "nvlArr;": "⤂",
  "nvle;": "≤⃒",
  "nvlt;": "<⃒",
  "nvltrie;": "⊴⃒",
  "nvrArr;": "⤃",
  "nvrtrie;": "⊵⃒",
  "nvsim;": "∼⃒",
  "nwarhk;": "⤣",
  "nwArr;": "⇖",
  "nwarr;": "↖",
  "nwarrow;": "↖",
  "nwnear;": "⤧",
  "Oacute;": "Ó",
  Oacute: "Ó",
  "oacute;": "ó",
  oacute: "ó",
  "oast;": "⊛",
  "ocir;": "⊚",
  "Ocirc;": "Ô",
  Ocirc: "Ô",
  "ocirc;": "ô",
  ocirc: "ô",
  "Ocy;": "О",
  "ocy;": "о",
  "odash;": "⊝",
  "Odblac;": "Ő",
  "odblac;": "ő",
  "odiv;": "⨸",
  "odot;": "⊙",
  "odsold;": "⦼",
  "OElig;": "Œ",
  "oelig;": "œ",
  "ofcir;": "⦿",
  "Ofr;": "𝔒",
  "ofr;": "𝔬",
  "ogon;": "˛",
  "Ograve;": "Ò",
  Ograve: "Ò",
  "ograve;": "ò",
  ograve: "ò",
  "ogt;": "⧁",
  "ohbar;": "⦵",
  "ohm;": "Ω",
  "oint;": "∮",
  "olarr;": "↺",
  "olcir;": "⦾",
  "olcross;": "⦻",
  "oline;": "‾",
  "olt;": "⧀",
  "Omacr;": "Ō",
  "omacr;": "ō",
  "Omega;": "Ω",
  "omega;": "ω",
  "Omicron;": "Ο",
  "omicron;": "ο",
  "omid;": "⦶",
  "ominus;": "⊖",
  "Oopf;": "𝕆",
  "oopf;": "𝕠",
  "opar;": "⦷",
  "OpenCurlyDoubleQuote;": "“",
  "OpenCurlyQuote;": "‘",
  "operp;": "⦹",
  "oplus;": "⊕",
  "Or;": "⩔",
  "or;": "∨",
  "orarr;": "↻",
  "ord;": "⩝",
  "order;": "ℴ",
  "orderof;": "ℴ",
  "ordf;": "ª",
  ordf: "ª",
  "ordm;": "º",
  ordm: "º",
  "origof;": "⊶",
  "oror;": "⩖",
  "orslope;": "⩗",
  "orv;": "⩛",
  "oS;": "Ⓢ",
  "Oscr;": "𝒪",
  "oscr;": "ℴ",
  "Oslash;": "Ø",
  Oslash: "Ø",
  "oslash;": "ø",
  oslash: "ø",
  "osol;": "⊘",
  "Otilde;": "Õ",
  Otilde: "Õ",
  "otilde;": "õ",
  otilde: "õ",
  "Otimes;": "⨷",
  "otimes;": "⊗",
  "otimesas;": "⨶",
  "Ouml;": "Ö",
  Ouml: "Ö",
  "ouml;": "ö",
  ouml: "ö",
  "ovbar;": "⌽",
  "OverBar;": "‾",
  "OverBrace;": "⏞",
  "OverBracket;": "⎴",
  "OverParenthesis;": "⏜",
  "par;": "∥",
  "para;": "¶",
  para: "¶",
  "parallel;": "∥",
  "parsim;": "⫳",
  "parsl;": "⫽",
  "part;": "∂",
  "PartialD;": "∂",
  "Pcy;": "П",
  "pcy;": "п",
  "percnt;": "%",
  "period;": ".",
  "permil;": "‰",
  "perp;": "⊥",
  "pertenk;": "‱",
  "Pfr;": "𝔓",
  "pfr;": "𝔭",
  "Phi;": "Φ",
  "phi;": "φ",
  "phiv;": "ϕ",
  "phmmat;": "ℳ",
  "phone;": "☎",
  "Pi;": "Π",
  "pi;": "π",
  "pitchfork;": "⋔",
  "piv;": "ϖ",
  "planck;": "ℏ",
  "planckh;": "ℎ",
  "plankv;": "ℏ",
  "plus;": "+",
  "plusacir;": "⨣",
  "plusb;": "⊞",
  "pluscir;": "⨢",
  "plusdo;": "∔",
  "plusdu;": "⨥",
  "pluse;": "⩲",
  "PlusMinus;": "±",
  "plusmn;": "±",
  plusmn: "±",
  "plussim;": "⨦",
  "plustwo;": "⨧",
  "pm;": "±",
  "Poincareplane;": "ℌ",
  "pointint;": "⨕",
  "Popf;": "ℙ",
  "popf;": "𝕡",
  "pound;": "£",
  pound: "£",
  "Pr;": "⪻",
  "pr;": "≺",
  "prap;": "⪷",
  "prcue;": "≼",
  "prE;": "⪳",
  "pre;": "⪯",
  "prec;": "≺",
  "precapprox;": "⪷",
  "preccurlyeq;": "≼",
  "Precedes;": "≺",
  "PrecedesEqual;": "⪯",
  "PrecedesSlantEqual;": "≼",
  "PrecedesTilde;": "≾",
  "preceq;": "⪯",
  "precnapprox;": "⪹",
  "precneqq;": "⪵",
  "precnsim;": "⋨",
  "precsim;": "≾",
  "Prime;": "″",
  "prime;": "′",
  "primes;": "ℙ",
  "prnap;": "⪹",
  "prnE;": "⪵",
  "prnsim;": "⋨",
  "prod;": "∏",
  "Product;": "∏",
  "profalar;": "⌮",
  "profline;": "⌒",
  "profsurf;": "⌓",
  "prop;": "∝",
  "Proportion;": "∷",
  "Proportional;": "∝",
  "propto;": "∝",
  "prsim;": "≾",
  "prurel;": "⊰",
  "Pscr;": "𝒫",
  "pscr;": "𝓅",
  "Psi;": "Ψ",
  "psi;": "ψ",
  "puncsp;": " ",
  "Qfr;": "𝔔",
  "qfr;": "𝔮",
  "qint;": "⨌",
  "Qopf;": "ℚ",
  "qopf;": "𝕢",
  "qprime;": "⁗",
  "Qscr;": "𝒬",
  "qscr;": "𝓆",
  "quaternions;": "ℍ",
  "quatint;": "⨖",
  "quest;": "?",
  "questeq;": "≟",
  "QUOT;": '"',
  QUOT: '"',
  "quot;": '"',
  quot: '"',
  "rAarr;": "⇛",
  "race;": "∽̱",
  "Racute;": "Ŕ",
  "racute;": "ŕ",
  "radic;": "√",
  "raemptyv;": "⦳",
  "Rang;": "⟫",
  "rang;": "⟩",
  "rangd;": "⦒",
  "range;": "⦥",
  "rangle;": "⟩",
  "raquo;": "»",
  raquo: "»",
  "Rarr;": "↠",
  "rArr;": "⇒",
  "rarr;": "→",
  "rarrap;": "⥵",
  "rarrb;": "⇥",
  "rarrbfs;": "⤠",
  "rarrc;": "⤳",
  "rarrfs;": "⤞",
  "rarrhk;": "↪",
  "rarrlp;": "↬",
  "rarrpl;": "⥅",
  "rarrsim;": "⥴",
  "Rarrtl;": "⤖",
  "rarrtl;": "↣",
  "rarrw;": "↝",
  "rAtail;": "⤜",
  "ratail;": "⤚",
  "ratio;": "∶",
  "rationals;": "ℚ",
  "RBarr;": "⤐",
  "rBarr;": "⤏",
  "rbarr;": "⤍",
  "rbbrk;": "❳",
  "rbrace;": "}",
  "rbrack;": "]",
  "rbrke;": "⦌",
  "rbrksld;": "⦎",
  "rbrkslu;": "⦐",
  "Rcaron;": "Ř",
  "rcaron;": "ř",
  "Rcedil;": "Ŗ",
  "rcedil;": "ŗ",
  "rceil;": "⌉",
  "rcub;": "}",
  "Rcy;": "Р",
  "rcy;": "р",
  "rdca;": "⤷",
  "rdldhar;": "⥩",
  "rdquo;": "”",
  "rdquor;": "”",
  "rdsh;": "↳",
  "Re;": "ℜ",
  "real;": "ℜ",
  "realine;": "ℛ",
  "realpart;": "ℜ",
  "reals;": "ℝ",
  "rect;": "▭",
  "REG;": "®",
  REG: "®",
  "reg;": "®",
  reg: "®",
  "ReverseElement;": "∋",
  "ReverseEquilibrium;": "⇋",
  "ReverseUpEquilibrium;": "⥯",
  "rfisht;": "⥽",
  "rfloor;": "⌋",
  "Rfr;": "ℜ",
  "rfr;": "𝔯",
  "rHar;": "⥤",
  "rhard;": "⇁",
  "rharu;": "⇀",
  "rharul;": "⥬",
  "Rho;": "Ρ",
  "rho;": "ρ",
  "rhov;": "ϱ",
  "RightAngleBracket;": "⟩",
  "RightArrow;": "→",
  "Rightarrow;": "⇒",
  "rightarrow;": "→",
  "RightArrowBar;": "⇥",
  "RightArrowLeftArrow;": "⇄",
  "rightarrowtail;": "↣",
  "RightCeiling;": "⌉",
  "RightDoubleBracket;": "⟧",
  "RightDownTeeVector;": "⥝",
  "RightDownVector;": "⇂",
  "RightDownVectorBar;": "⥕",
  "RightFloor;": "⌋",
  "rightharpoondown;": "⇁",
  "rightharpoonup;": "⇀",
  "rightleftarrows;": "⇄",
  "rightleftharpoons;": "⇌",
  "rightrightarrows;": "⇉",
  "rightsquigarrow;": "↝",
  "RightTee;": "⊢",
  "RightTeeArrow;": "↦",
  "RightTeeVector;": "⥛",
  "rightthreetimes;": "⋌",
  "RightTriangle;": "⊳",
  "RightTriangleBar;": "⧐",
  "RightTriangleEqual;": "⊵",
  "RightUpDownVector;": "⥏",
  "RightUpTeeVector;": "⥜",
  "RightUpVector;": "↾",
  "RightUpVectorBar;": "⥔",
  "RightVector;": "⇀",
  "RightVectorBar;": "⥓",
  "ring;": "˚",
  "risingdotseq;": "≓",
  "rlarr;": "⇄",
  "rlhar;": "⇌",
  "rlm;": "‏",
  "rmoust;": "⎱",
  "rmoustache;": "⎱",
  "rnmid;": "⫮",
  "roang;": "⟭",
  "roarr;": "⇾",
  "robrk;": "⟧",
  "ropar;": "⦆",
  "Ropf;": "ℝ",
  "ropf;": "𝕣",
  "roplus;": "⨮",
  "rotimes;": "⨵",
  "RoundImplies;": "⥰",
  "rpar;": ")",
  "rpargt;": "⦔",
  "rppolint;": "⨒",
  "rrarr;": "⇉",
  "Rrightarrow;": "⇛",
  "rsaquo;": "›",
  "Rscr;": "ℛ",
  "rscr;": "𝓇",
  "Rsh;": "↱",
  "rsh;": "↱",
  "rsqb;": "]",
  "rsquo;": "’",
  "rsquor;": "’",
  "rthree;": "⋌",
  "rtimes;": "⋊",
  "rtri;": "▹",
  "rtrie;": "⊵",
  "rtrif;": "▸",
  "rtriltri;": "⧎",
  "RuleDelayed;": "⧴",
  "ruluhar;": "⥨",
  "rx;": "℞",
  "Sacute;": "Ś",
  "sacute;": "ś",
  "sbquo;": "‚",
  "Sc;": "⪼",
  "sc;": "≻",
  "scap;": "⪸",
  "Scaron;": "Š",
  "scaron;": "š",
  "sccue;": "≽",
  "scE;": "⪴",
  "sce;": "⪰",
  "Scedil;": "Ş",
  "scedil;": "ş",
  "Scirc;": "Ŝ",
  "scirc;": "ŝ",
  "scnap;": "⪺",
  "scnE;": "⪶",
  "scnsim;": "⋩",
  "scpolint;": "⨓",
  "scsim;": "≿",
  "Scy;": "С",
  "scy;": "с",
  "sdot;": "⋅",
  "sdotb;": "⊡",
  "sdote;": "⩦",
  "searhk;": "⤥",
  "seArr;": "⇘",
  "searr;": "↘",
  "searrow;": "↘",
  "sect;": "§",
  sect: "§",
  "semi;": ";",
  "seswar;": "⤩",
  "setminus;": "∖",
  "setmn;": "∖",
  "sext;": "✶",
  "Sfr;": "𝔖",
  "sfr;": "𝔰",
  "sfrown;": "⌢",
  "sharp;": "♯",
  "SHCHcy;": "Щ",
  "shchcy;": "щ",
  "SHcy;": "Ш",
  "shcy;": "ш",
  "ShortDownArrow;": "↓",
  "ShortLeftArrow;": "←",
  "shortmid;": "∣",
  "shortparallel;": "∥",
  "ShortRightArrow;": "→",
  "ShortUpArrow;": "↑",
  "shy;": "­",
  shy: "­",
  "Sigma;": "Σ",
  "sigma;": "σ",
  "sigmaf;": "ς",
  "sigmav;": "ς",
  "sim;": "∼",
  "simdot;": "⩪",
  "sime;": "≃",
  "simeq;": "≃",
  "simg;": "⪞",
  "simgE;": "⪠",
  "siml;": "⪝",
  "simlE;": "⪟",
  "simne;": "≆",
  "simplus;": "⨤",
  "simrarr;": "⥲",
  "slarr;": "←",
  "SmallCircle;": "∘",
  "smallsetminus;": "∖",
  "smashp;": "⨳",
  "smeparsl;": "⧤",
  "smid;": "∣",
  "smile;": "⌣",
  "smt;": "⪪",
  "smte;": "⪬",
  "smtes;": "⪬︀",
  "SOFTcy;": "Ь",
  "softcy;": "ь",
  "sol;": "/",
  "solb;": "⧄",
  "solbar;": "⌿",
  "Sopf;": "𝕊",
  "sopf;": "𝕤",
  "spades;": "♠",
  "spadesuit;": "♠",
  "spar;": "∥",
  "sqcap;": "⊓",
  "sqcaps;": "⊓︀",
  "sqcup;": "⊔",
  "sqcups;": "⊔︀",
  "Sqrt;": "√",
  "sqsub;": "⊏",
  "sqsube;": "⊑",
  "sqsubset;": "⊏",
  "sqsubseteq;": "⊑",
  "sqsup;": "⊐",
  "sqsupe;": "⊒",
  "sqsupset;": "⊐",
  "sqsupseteq;": "⊒",
  "squ;": "□",
  "Square;": "□",
  "square;": "□",
  "SquareIntersection;": "⊓",
  "SquareSubset;": "⊏",
  "SquareSubsetEqual;": "⊑",
  "SquareSuperset;": "⊐",
  "SquareSupersetEqual;": "⊒",
  "SquareUnion;": "⊔",
  "squarf;": "▪",
  "squf;": "▪",
  "srarr;": "→",
  "Sscr;": "𝒮",
  "sscr;": "𝓈",
  "ssetmn;": "∖",
  "ssmile;": "⌣",
  "sstarf;": "⋆",
  "Star;": "⋆",
  "star;": "☆",
  "starf;": "★",
  "straightepsilon;": "ϵ",
  "straightphi;": "ϕ",
  "strns;": "¯",
  "Sub;": "⋐",
  "sub;": "⊂",
  "subdot;": "⪽",
  "subE;": "⫅",
  "sube;": "⊆",
  "subedot;": "⫃",
  "submult;": "⫁",
  "subnE;": "⫋",
  "subne;": "⊊",
  "subplus;": "⪿",
  "subrarr;": "⥹",
  "Subset;": "⋐",
  "subset;": "⊂",
  "subseteq;": "⊆",
  "subseteqq;": "⫅",
  "SubsetEqual;": "⊆",
  "subsetneq;": "⊊",
  "subsetneqq;": "⫋",
  "subsim;": "⫇",
  "subsub;": "⫕",
  "subsup;": "⫓",
  "succ;": "≻",
  "succapprox;": "⪸",
  "succcurlyeq;": "≽",
  "Succeeds;": "≻",
  "SucceedsEqual;": "⪰",
  "SucceedsSlantEqual;": "≽",
  "SucceedsTilde;": "≿",
  "succeq;": "⪰",
  "succnapprox;": "⪺",
  "succneqq;": "⪶",
  "succnsim;": "⋩",
  "succsim;": "≿",
  "SuchThat;": "∋",
  "Sum;": "∑",
  "sum;": "∑",
  "sung;": "♪",
  "Sup;": "⋑",
  "sup;": "⊃",
  "sup1;": "¹",
  sup1: "¹",
  "sup2;": "²",
  sup2: "²",
  "sup3;": "³",
  sup3: "³",
  "supdot;": "⪾",
  "supdsub;": "⫘",
  "supE;": "⫆",
  "supe;": "⊇",
  "supedot;": "⫄",
  "Superset;": "⊃",
  "SupersetEqual;": "⊇",
  "suphsol;": "⟉",
  "suphsub;": "⫗",
  "suplarr;": "⥻",
  "supmult;": "⫂",
  "supnE;": "⫌",
  "supne;": "⊋",
  "supplus;": "⫀",
  "Supset;": "⋑",
  "supset;": "⊃",
  "supseteq;": "⊇",
  "supseteqq;": "⫆",
  "supsetneq;": "⊋",
  "supsetneqq;": "⫌",
  "supsim;": "⫈",
  "supsub;": "⫔",
  "supsup;": "⫖",
  "swarhk;": "⤦",
  "swArr;": "⇙",
  "swarr;": "↙",
  "swarrow;": "↙",
  "swnwar;": "⤪",
  "szlig;": "ß",
  szlig: "ß",
  "Tab;": "	",
  "target;": "⌖",
  "Tau;": "Τ",
  "tau;": "τ",
  "tbrk;": "⎴",
  "Tcaron;": "Ť",
  "tcaron;": "ť",
  "Tcedil;": "Ţ",
  "tcedil;": "ţ",
  "Tcy;": "Т",
  "tcy;": "т",
  "tdot;": "⃛",
  "telrec;": "⌕",
  "Tfr;": "𝔗",
  "tfr;": "𝔱",
  "there4;": "∴",
  "Therefore;": "∴",
  "therefore;": "∴",
  "Theta;": "Θ",
  "theta;": "θ",
  "thetasym;": "ϑ",
  "thetav;": "ϑ",
  "thickapprox;": "≈",
  "thicksim;": "∼",
  "ThickSpace;": "  ",
  "thinsp;": " ",
  "ThinSpace;": " ",
  "thkap;": "≈",
  "thksim;": "∼",
  "THORN;": "Þ",
  THORN: "Þ",
  "thorn;": "þ",
  thorn: "þ",
  "Tilde;": "∼",
  "tilde;": "˜",
  "TildeEqual;": "≃",
  "TildeFullEqual;": "≅",
  "TildeTilde;": "≈",
  "times;": "×",
  times: "×",
  "timesb;": "⊠",
  "timesbar;": "⨱",
  "timesd;": "⨰",
  "tint;": "∭",
  "toea;": "⤨",
  "top;": "⊤",
  "topbot;": "⌶",
  "topcir;": "⫱",
  "Topf;": "𝕋",
  "topf;": "𝕥",
  "topfork;": "⫚",
  "tosa;": "⤩",
  "tprime;": "‴",
  "TRADE;": "™",
  "trade;": "™",
  "triangle;": "▵",
  "triangledown;": "▿",
  "triangleleft;": "◃",
  "trianglelefteq;": "⊴",
  "triangleq;": "≜",
  "triangleright;": "▹",
  "trianglerighteq;": "⊵",
  "tridot;": "◬",
  "trie;": "≜",
  "triminus;": "⨺",
  "TripleDot;": "⃛",
  "triplus;": "⨹",
  "trisb;": "⧍",
  "tritime;": "⨻",
  "trpezium;": "⏢",
  "Tscr;": "𝒯",
  "tscr;": "𝓉",
  "TScy;": "Ц",
  "tscy;": "ц",
  "TSHcy;": "Ћ",
  "tshcy;": "ћ",
  "Tstrok;": "Ŧ",
  "tstrok;": "ŧ",
  "twixt;": "≬",
  "twoheadleftarrow;": "↞",
  "twoheadrightarrow;": "↠",
  "Uacute;": "Ú",
  Uacute: "Ú",
  "uacute;": "ú",
  uacute: "ú",
  "Uarr;": "↟",
  "uArr;": "⇑",
  "uarr;": "↑",
  "Uarrocir;": "⥉",
  "Ubrcy;": "Ў",
  "ubrcy;": "ў",
  "Ubreve;": "Ŭ",
  "ubreve;": "ŭ",
  "Ucirc;": "Û",
  Ucirc: "Û",
  "ucirc;": "û",
  ucirc: "û",
  "Ucy;": "У",
  "ucy;": "у",
  "udarr;": "⇅",
  "Udblac;": "Ű",
  "udblac;": "ű",
  "udhar;": "⥮",
  "ufisht;": "⥾",
  "Ufr;": "𝔘",
  "ufr;": "𝔲",
  "Ugrave;": "Ù",
  Ugrave: "Ù",
  "ugrave;": "ù",
  ugrave: "ù",
  "uHar;": "⥣",
  "uharl;": "↿",
  "uharr;": "↾",
  "uhblk;": "▀",
  "ulcorn;": "⌜",
  "ulcorner;": "⌜",
  "ulcrop;": "⌏",
  "ultri;": "◸",
  "Umacr;": "Ū",
  "umacr;": "ū",
  "uml;": "¨",
  uml: "¨",
  "UnderBar;": "_",
  "UnderBrace;": "⏟",
  "UnderBracket;": "⎵",
  "UnderParenthesis;": "⏝",
  "Union;": "⋃",
  "UnionPlus;": "⊎",
  "Uogon;": "Ų",
  "uogon;": "ų",
  "Uopf;": "𝕌",
  "uopf;": "𝕦",
  "UpArrow;": "↑",
  "Uparrow;": "⇑",
  "uparrow;": "↑",
  "UpArrowBar;": "⤒",
  "UpArrowDownArrow;": "⇅",
  "UpDownArrow;": "↕",
  "Updownarrow;": "⇕",
  "updownarrow;": "↕",
  "UpEquilibrium;": "⥮",
  "upharpoonleft;": "↿",
  "upharpoonright;": "↾",
  "uplus;": "⊎",
  "UpperLeftArrow;": "↖",
  "UpperRightArrow;": "↗",
  "Upsi;": "ϒ",
  "upsi;": "υ",
  "upsih;": "ϒ",
  "Upsilon;": "Υ",
  "upsilon;": "υ",
  "UpTee;": "⊥",
  "UpTeeArrow;": "↥",
  "upuparrows;": "⇈",
  "urcorn;": "⌝",
  "urcorner;": "⌝",
  "urcrop;": "⌎",
  "Uring;": "Ů",
  "uring;": "ů",
  "urtri;": "◹",
  "Uscr;": "𝒰",
  "uscr;": "𝓊",
  "utdot;": "⋰",
  "Utilde;": "Ũ",
  "utilde;": "ũ",
  "utri;": "▵",
  "utrif;": "▴",
  "uuarr;": "⇈",
  "Uuml;": "Ü",
  Uuml: "Ü",
  "uuml;": "ü",
  uuml: "ü",
  "uwangle;": "⦧",
  "vangrt;": "⦜",
  "varepsilon;": "ϵ",
  "varkappa;": "ϰ",
  "varnothing;": "∅",
  "varphi;": "ϕ",
  "varpi;": "ϖ",
  "varpropto;": "∝",
  "vArr;": "⇕",
  "varr;": "↕",
  "varrho;": "ϱ",
  "varsigma;": "ς",
  "varsubsetneq;": "⊊︀",
  "varsubsetneqq;": "⫋︀",
  "varsupsetneq;": "⊋︀",
  "varsupsetneqq;": "⫌︀",
  "vartheta;": "ϑ",
  "vartriangleleft;": "⊲",
  "vartriangleright;": "⊳",
  "Vbar;": "⫫",
  "vBar;": "⫨",
  "vBarv;": "⫩",
  "Vcy;": "В",
  "vcy;": "в",
  "VDash;": "⊫",
  "Vdash;": "⊩",
  "vDash;": "⊨",
  "vdash;": "⊢",
  "Vdashl;": "⫦",
  "Vee;": "⋁",
  "vee;": "∨",
  "veebar;": "⊻",
  "veeeq;": "≚",
  "vellip;": "⋮",
  "Verbar;": "‖",
  "verbar;": "|",
  "Vert;": "‖",
  "vert;": "|",
  "VerticalBar;": "∣",
  "VerticalLine;": "|",
  "VerticalSeparator;": "❘",
  "VerticalTilde;": "≀",
  "VeryThinSpace;": " ",
  "Vfr;": "𝔙",
  "vfr;": "𝔳",
  "vltri;": "⊲",
  "vnsub;": "⊂⃒",
  "vnsup;": "⊃⃒",
  "Vopf;": "𝕍",
  "vopf;": "𝕧",
  "vprop;": "∝",
  "vrtri;": "⊳",
  "Vscr;": "𝒱",
  "vscr;": "𝓋",
  "vsubnE;": "⫋︀",
  "vsubne;": "⊊︀",
  "vsupnE;": "⫌︀",
  "vsupne;": "⊋︀",
  "Vvdash;": "⊪",
  "vzigzag;": "⦚",
  "Wcirc;": "Ŵ",
  "wcirc;": "ŵ",
  "wedbar;": "⩟",
  "Wedge;": "⋀",
  "wedge;": "∧",
  "wedgeq;": "≙",
  "weierp;": "℘",
  "Wfr;": "𝔚",
  "wfr;": "𝔴",
  "Wopf;": "𝕎",
  "wopf;": "𝕨",
  "wp;": "℘",
  "wr;": "≀",
  "wreath;": "≀",
  "Wscr;": "𝒲",
  "wscr;": "𝓌",
  "xcap;": "⋂",
  "xcirc;": "◯",
  "xcup;": "⋃",
  "xdtri;": "▽",
  "Xfr;": "𝔛",
  "xfr;": "𝔵",
  "xhArr;": "⟺",
  "xharr;": "⟷",
  "Xi;": "Ξ",
  "xi;": "ξ",
  "xlArr;": "⟸",
  "xlarr;": "⟵",
  "xmap;": "⟼",
  "xnis;": "⋻",
  "xodot;": "⨀",
  "Xopf;": "𝕏",
  "xopf;": "𝕩",
  "xoplus;": "⨁",
  "xotime;": "⨂",
  "xrArr;": "⟹",
  "xrarr;": "⟶",
  "Xscr;": "𝒳",
  "xscr;": "𝓍",
  "xsqcup;": "⨆",
  "xuplus;": "⨄",
  "xutri;": "△",
  "xvee;": "⋁",
  "xwedge;": "⋀",
  "Yacute;": "Ý",
  Yacute: "Ý",
  "yacute;": "ý",
  yacute: "ý",
  "YAcy;": "Я",
  "yacy;": "я",
  "Ycirc;": "Ŷ",
  "ycirc;": "ŷ",
  "Ycy;": "Ы",
  "ycy;": "ы",
  "yen;": "¥",
  yen: "¥",
  "Yfr;": "𝔜",
  "yfr;": "𝔶",
  "YIcy;": "Ї",
  "yicy;": "ї",
  "Yopf;": "𝕐",
  "yopf;": "𝕪",
  "Yscr;": "𝒴",
  "yscr;": "𝓎",
  "YUcy;": "Ю",
  "yucy;": "ю",
  "Yuml;": "Ÿ",
  "yuml;": "ÿ",
  yuml: "ÿ",
  "Zacute;": "Ź",
  "zacute;": "ź",
  "Zcaron;": "Ž",
  "zcaron;": "ž",
  "Zcy;": "З",
  "zcy;": "з",
  "Zdot;": "Ż",
  "zdot;": "ż",
  "zeetrf;": "ℨ",
  "ZeroWidthSpace;": "​",
  "Zeta;": "Ζ",
  "zeta;": "ζ",
  "Zfr;": "ℨ",
  "zfr;": "𝔷",
  "ZHcy;": "Ж",
  "zhcy;": "ж",
  "zigrarr;": "⇝",
  "Zopf;": "ℤ",
  "zopf;": "𝕫",
  "Zscr;": "𝒵",
  "zscr;": "𝓏",
  "zwj;": "‍",
  "zwnj;": "‌"
};
function Mh(e, t) {
  if (e.length < t.length)
    return !1;
  for (let r = 0; r < t.length; r++)
    if (e[r] !== t[r])
      return !1;
  return !0;
}
function Whr(e, t) {
  const r = e.length - t.length;
  return r > 0 ? e.lastIndexOf(t) === r : r === 0 ? e === t : !1;
}
function Xie(e, t) {
  let r = "";
  for (; t > 0; )
    (t & 1) === 1 && (r += e), e += e, t = t >>> 1;
  return r;
}
const Hhr = "a".charCodeAt(0), Khr = "z".charCodeAt(0), zhr = "A".charCodeAt(0), Ghr = "Z".charCodeAt(0), Yhr = "0".charCodeAt(0), Xhr = "9".charCodeAt(0);
function q0(e, t) {
  const r = e.charCodeAt(t);
  return Hhr <= r && r <= Khr || zhr <= r && r <= Ghr || Yhr <= r && r <= Xhr;
}
function LA(e) {
  return typeof e != "undefined";
}
function Jhr(e) {
  if (e)
    return typeof e == "string" ? {
      kind: "markdown",
      value: e
    } : {
      kind: "markdown",
      value: e.value
    };
}
class ASe {
  isApplicable() {
    return !0;
  }
  /**
   * Currently, unversioned data uses the V1 implementation
   * In the future when the provider handles multiple versions of HTML custom data,
   * use the latest implementation for unversioned data
   */
  constructor(t, r) {
    this.id = t, this._tags = [], this._tagMap = {}, this._valueSetMap = {}, this._tags = r.tags || [], this._globalAttributes = r.globalAttributes || [], this._tags.forEach((i) => {
      this._tagMap[i.name.toLowerCase()] = i;
    }), r.valueSets && r.valueSets.forEach((i) => {
      this._valueSetMap[i.name] = i.values;
    });
  }
  getId() {
    return this.id;
  }
  provideTags() {
    return this._tags;
  }
  provideAttributes(t) {
    const r = [], i = (s) => {
      r.push(s);
    }, n = this._tagMap[t.toLowerCase()];
    return n && n.attributes.forEach(i), this._globalAttributes.forEach(i), r;
  }
  provideValues(t, r) {
    const i = [];
    r = r.toLowerCase();
    const n = (a) => {
      a.forEach((o) => {
        o.name.toLowerCase() === r && (o.values && o.values.forEach((l) => {
          i.push(l);
        }), o.valueSet && this._valueSetMap[o.valueSet] && this._valueSetMap[o.valueSet].forEach((l) => {
          i.push(l);
        }));
      });
    }, s = this._tagMap[t.toLowerCase()];
    return s && n(s.attributes), n(this._globalAttributes), i;
  }
}
function Md(e, t = {}, r) {
  const i = {
    kind: r ? "markdown" : "plaintext",
    value: ""
  };
  if (e.description && t.documentation !== !1) {
    const n = Jhr(e.description);
    n && (i.value += n.value);
  }
  if (e.references && e.references.length > 0 && t.references !== !1 && (i.value.length && (i.value += "\n\n"), r ? i.value += e.references.map((n) => "[".concat(n.name, "](").concat(n.url, ")")).join(" | ") : i.value += e.references.map((n) => "".concat(n.name, ": ").concat(n.url)).join("\n")), i.value !== "")
    return i;
}
class Qhr {
  constructor(t, r) {
    this.dataManager = t, this.readDirectory = r, this.atributeCompletions = [];
  }
  onHtmlAttributeValue(t) {
    this.dataManager.isPathAttribute(t.tag, t.attribute) && this.atributeCompletions.push(t);
  }
  computeCompletions(t, r) {
    return hr(this, null, function* () {
      const i = { items: [], isIncomplete: !1 };
      for (const n of this.atributeCompletions) {
        const s = edr(t.getText(n.range));
        if (tdr(s))
          if (s === "." || s === "..")
            i.isIncomplete = !0;
          else {
            const a = rdr(n.value, s, n.range), o = yield this.providePathSuggestions(n.value, a, t, r);
            for (const l of o)
              i.items.push(l);
          }
      }
      return i;
    });
  }
  providePathSuggestions(t, r, i, n) {
    return hr(this, null, function* () {
      const s = t.substring(0, t.lastIndexOf("/") + 1);
      let a = n.resolveReference(s || ".", i.uri);
      if (a)
        try {
          const o = [], l = yield this.readDirectory(a);
          for (const [u, c] of l)
            u.charCodeAt(0) !== Zhr && o.push(idr(u, c === DA.Directory, r));
          return o;
        } catch (o) {
        }
      return [];
    });
  }
}
const Zhr = ".".charCodeAt(0);
function edr(e) {
  return Mh(e, "'") || Mh(e, '"') ? e.slice(1, -1) : e;
}
function tdr(e) {
  return !(Mh(e, "http") || Mh(e, "https") || Mh(e, "//"));
}
function rdr(e, t, r) {
  let i;
  const n = e.lastIndexOf("/");
  if (n === -1)
    i = ndr(r, 1, -1);
  else {
    const s = t.slice(n + 1), a = mv(r.end, -1 - s.length), o = s.indexOf(" ");
    let l;
    o !== -1 ? l = mv(a, o) : l = mv(r.end, -1), i = Xr.create(a, l);
  }
  return i;
}
function idr(e, t, r) {
  return t ? (e = e + "/", {
    label: e,
    kind: ia.Folder,
    textEdit: Yn.replace(r, e),
    command: {
      title: "Suggest",
      command: "editor.action.triggerSuggest"
    }
  }) : {
    label: e,
    kind: ia.File,
    textEdit: Yn.replace(r, e)
  };
}
function mv(e, t) {
  return Un.create(e.line, e.character + t);
}
function ndr(e, t, r) {
  const i = mv(e.start, t), n = mv(e.end, r);
  return Xr.create(i, n);
}
class sdr {
  constructor(t, r) {
    this.lsOptions = t, this.dataManager = r, this.completionParticipants = [];
  }
  setCompletionParticipants(t) {
    this.completionParticipants = t || [];
  }
  doComplete2(t, r, i, n, s) {
    return hr(this, null, function* () {
      if (!this.lsOptions.fileSystemProvider || !this.lsOptions.fileSystemProvider.readDirectory)
        return this.doComplete(t, r, i, s);
      const a = new Qhr(this.dataManager, this.lsOptions.fileSystemProvider.readDirectory), o = this.completionParticipants;
      this.completionParticipants = [a].concat(o);
      const l = this.doComplete(t, r, i, s);
      try {
        const u = yield a.computeCompletions(t, n);
        return {
          isIncomplete: l.isIncomplete || u.isIncomplete,
          items: u.items.concat(l.items)
        };
      } finally {
        this.completionParticipants = o;
      }
    });
  }
  doComplete(t, r, i, n) {
    const s = this._doComplete(t, r, i, n);
    return this.convertCompletionList(s);
  }
  _doComplete(t, r, i, n) {
    const s = {
      isIncomplete: !1,
      items: []
    }, a = this.completionParticipants, o = this.dataManager.getDataProviders().filter((N) => N.isApplicable(t.languageId) && (!n || n[N.getId()] !== !1)), l = this.doesSupportMarkdown(), u = t.getText(), c = t.offsetAt(r), f = i.findNodeBefore(c);
    if (!f)
      return s;
    const h = Eo(u, f.start);
    let m = "", g, y;
    function v(N, M = c) {
      return N > c && (N = c), { start: t.positionAt(N), end: t.positionAt(M) };
    }
    function T(N, M) {
      const R = v(N, M);
      return o.forEach(($) => {
        $.provideTags().forEach((V) => {
          s.items.push({
            label: V.name,
            kind: ia.Property,
            documentation: Md(V, void 0, l),
            textEdit: Yn.replace(R, V.name),
            insertTextFormat: Al.PlainText
          });
        });
      }), s;
    }
    function S(N) {
      let M = N;
      for (; M > 0; ) {
        const R = u.charAt(M - 1);
        if ("\n\r".indexOf(R) >= 0)
          return u.substring(M, N);
        if (!MA(R))
          return null;
        M--;
      }
      return u.substring(0, N);
    }
    function P(N, M, R = c) {
      const $ = v(N, R), V = Jie(u, R, mr.WithinEndTag, xt.EndTagClose) ? "" : ">";
      let K = f;
      for (M && (K = K.parent); K; ) {
        const z = K.tag;
        if (z && (!K.closed || K.endTagStart && K.endTagStart > c)) {
          const W = {
            label: "/" + z,
            kind: ia.Property,
            filterText: "/" + z,
            textEdit: Yn.replace($, "/" + z + V),
            insertTextFormat: Al.PlainText
          }, Y = S(K.start), G = S(N - 1);
          if (Y !== null && G !== null && Y !== G) {
            const le = Y + "</" + z + V;
            W.textEdit = Yn.replace(v(N - 1 - G.length), le), W.filterText = G + "</" + z;
          }
          return s.items.push(W), s;
        }
        K = K.parent;
      }
      return M || o.forEach((z) => {
        z.provideTags().forEach((W) => {
          s.items.push({
            label: "/" + W.name,
            kind: ia.Property,
            documentation: Md(W, void 0, l),
            filterText: "/" + W.name + V,
            textEdit: Yn.replace($, "/" + W.name + V),
            insertTextFormat: Al.PlainText
          });
        });
      }), s;
    }
    const x = (N, M) => {
      if (n && n.hideAutoCompleteProposals)
        return s;
      if (y != null || (y = this.dataManager.getVoidElements(o)), !this.dataManager.isVoidElement(M, y)) {
        const R = t.positionAt(N);
        s.items.push({
          label: "</" + M + ">",
          kind: ia.Property,
          filterText: "</" + M + ">",
          textEdit: Yn.insert(R, "$0</" + M + ">"),
          insertTextFormat: Al.Snippet
        });
      }
      return s;
    };
    function C(N, M) {
      return T(N, M), P(N, !0, M), s;
    }
    function D() {
      const N = /* @__PURE__ */ Object.create(null);
      return f.attributeNames.forEach((M) => {
        N[M] = !0;
      }), N;
    }
    function w(N, M = c) {
      var W;
      let R = c;
      for (; R < M && u[R] !== "<"; )
        R++;
      const $ = u.substring(N, M), V = v(N, R);
      let K = "";
      if (!Jie(u, M, mr.AfterAttributeName, xt.DelimiterAssign)) {
        const Y = (W = n == null ? void 0 : n.attributeDefaultValue) != null ? W : "doublequotes";
        Y === "empty" ? K = "=$1" : Y === "singlequotes" ? K = "='$1'" : K = '="$1"';
      }
      const z = D();
      return z[$] = !1, o.forEach((Y) => {
        Y.provideAttributes(m).forEach((G) => {
          if (z[G.name])
            return;
          z[G.name] = !0;
          let le = G.name, ne;
          G.valueSet !== "v" && K.length && (le = le + K, (G.valueSet || G.name === "style") && (ne = {
            title: "Suggest",
            command: "editor.action.triggerSuggest"
          })), s.items.push({
            label: G.name,
            kind: G.valueSet === "handler" ? ia.Function : ia.Value,
            documentation: Md(G, void 0, l),
            textEdit: Yn.replace(V, le),
            insertTextFormat: Al.Snippet,
            command: ne
          });
        });
      }), A(V, z), s;
    }
    function A(N, M) {
      const R = "data-", $ = {};
      $[R] = "".concat(R, '$1="$2"');
      function V(K) {
        K.attributeNames.forEach((z) => {
          Mh(z, R) && !$[z] && !M[z] && ($[z] = z + '="$1"');
        }), K.children.forEach((z) => V(z));
      }
      i && i.roots.forEach((K) => V(K)), Object.keys($).forEach((K) => s.items.push({
        label: K,
        kind: ia.Value,
        textEdit: Yn.replace(N, $[K]),
        insertTextFormat: Al.Snippet
      }));
    }
    function I(N, M = c) {
      let R, $, V;
      if (c > N && c <= M && adr(u[N])) {
        const K = N + 1;
        let z = M;
        M > N && u[M - 1] === u[N] && z--;
        const W = odr(u, c, K), Y = ldr(u, c, z);
        R = v(W, Y), V = c >= K && c <= z ? u.substring(K, c) : "", $ = !1;
      } else
        R = v(N, M), V = u.substring(N, c), $ = !0;
      if (a.length > 0) {
        const K = m.toLowerCase(), z = g.toLowerCase(), W = v(N, M);
        for (const Y of a)
          Y.onHtmlAttributeValue && Y.onHtmlAttributeValue({ document: t, position: r, tag: K, attribute: z, value: V, range: W });
      }
      return o.forEach((K) => {
        K.provideValues(m, g).forEach((z) => {
          const W = $ ? '"' + z.name + '"' : z.name;
          s.items.push({
            label: z.name,
            filterText: W,
            kind: ia.Unit,
            documentation: Md(z, void 0, l),
            textEdit: Yn.replace(R, W),
            insertTextFormat: Al.PlainText
          });
        });
      }), F(), s;
    }
    function L(N) {
      return c === h.getTokenEnd() && (j = h.scan(), j === N && h.getTokenOffset() === c) ? h.getTokenEnd() : c;
    }
    function O() {
      for (const N of a)
        N.onHtmlContent && N.onHtmlContent({ document: t, position: r });
      return F();
    }
    function F() {
      let N = c - 1, M = r.character;
      for (; N >= 0 && q0(u, N); )
        N--, M--;
      if (N >= 0 && u[N] === "&") {
        const R = Xr.create(Un.create(r.line, M - 1), r);
        for (const $ in dv)
          if (Whr($, ";")) {
            const V = "&" + $;
            s.items.push({
              label: V,
              kind: ia.Keyword,
              documentation: Cc("Character entity representing '{0}'", dv[$]),
              textEdit: Yn.replace(R, V),
              insertTextFormat: Al.PlainText
            });
          }
      }
      return s;
    }
    function q(N, M) {
      const R = v(N, M);
      s.items.push({
        label: "!DOCTYPE",
        kind: ia.Property,
        documentation: "A preamble for an HTML document.",
        textEdit: Yn.replace(R, "!DOCTYPE html>"),
        insertTextFormat: Al.PlainText
      });
    }
    let j = h.scan();
    for (; j !== xt.EOS && h.getTokenOffset() <= c; ) {
      switch (j) {
        case xt.StartTagOpen:
          if (h.getTokenEnd() === c) {
            const N = L(xt.StartTag);
            return r.line === 0 && q(c, N), C(c, N);
          }
          break;
        case xt.StartTag:
          if (h.getTokenOffset() <= c && c <= h.getTokenEnd())
            return T(h.getTokenOffset(), h.getTokenEnd());
          m = h.getTokenText();
          break;
        case xt.AttributeName:
          if (h.getTokenOffset() <= c && c <= h.getTokenEnd())
            return w(h.getTokenOffset(), h.getTokenEnd());
          g = h.getTokenText();
          break;
        case xt.DelimiterAssign:
          if (h.getTokenEnd() === c) {
            const N = L(xt.AttributeValue);
            return I(c, N);
          }
          break;
        case xt.AttributeValue:
          if (h.getTokenOffset() <= c && c <= h.getTokenEnd())
            return I(h.getTokenOffset(), h.getTokenEnd());
          break;
        case xt.Whitespace:
          if (c <= h.getTokenEnd())
            switch (h.getScannerState()) {
              case mr.AfterOpeningStartTag:
                const N = h.getTokenOffset(), M = L(xt.StartTag);
                return C(N, M);
              case mr.WithinTag:
              case mr.AfterAttributeName:
                return w(h.getTokenEnd());
              case mr.BeforeAttributeValue:
                return I(h.getTokenEnd());
              case mr.AfterOpeningEndTag:
                return P(h.getTokenOffset() - 1, !1);
              case mr.WithinContent:
                return O();
            }
          break;
        case xt.EndTagOpen:
          if (c <= h.getTokenEnd()) {
            const N = h.getTokenOffset() + 1, M = L(xt.EndTag);
            return P(N, !1, M);
          }
          break;
        case xt.EndTag:
          if (c <= h.getTokenEnd()) {
            let N = h.getTokenOffset() - 1;
            for (; N >= 0; ) {
              const M = u.charAt(N);
              if (M === "/")
                return P(N, !1, h.getTokenEnd());
              if (!MA(M))
                break;
              N--;
            }
          }
          break;
        case xt.StartTagClose:
          if (c <= h.getTokenEnd() && m)
            return x(h.getTokenEnd(), m);
          break;
        case xt.Content:
          if (c <= h.getTokenEnd())
            return O();
          break;
        default:
          if (c <= h.getTokenEnd())
            return s;
          break;
      }
      j = h.scan();
    }
    return s;
  }
  doQuoteComplete(t, r, i, n) {
    var c;
    const s = t.offsetAt(r);
    if (s <= 0)
      return null;
    const a = (c = n == null ? void 0 : n.attributeDefaultValue) != null ? c : "doublequotes";
    if (a === "empty" || t.getText().charAt(s - 1) !== "=")
      return null;
    const l = a === "doublequotes" ? '"$1"' : "'$1'", u = i.findNodeBefore(s);
    if (u && u.attributes && u.start < s && (!u.endTagStart || u.endTagStart > s)) {
      const f = Eo(t.getText(), u.start);
      let h = f.scan();
      for (; h !== xt.EOS && f.getTokenEnd() <= s; ) {
        if (h === xt.AttributeName && f.getTokenEnd() === s - 1)
          return h = f.scan(), h !== xt.DelimiterAssign || (h = f.scan(), h === xt.Unknown || h === xt.AttributeValue) ? null : l;
        h = f.scan();
      }
    }
    return null;
  }
  doTagComplete(t, r, i) {
    const n = t.offsetAt(r);
    if (n <= 0)
      return null;
    const s = t.getText().charAt(n - 1);
    if (s === ">") {
      const a = i.findNodeBefore(n);
      if (a && a.tag && a.start < n && (!a.endTagStart || a.endTagStart > n)) {
        const o = this.dataManager.getVoidElements(t.languageId);
        if (!this.dataManager.isVoidElement(a.tag, o)) {
          const l = Eo(t.getText(), a.start);
          let u = l.scan();
          for (; u !== xt.EOS && l.getTokenEnd() <= n; ) {
            if (u === xt.StartTagClose && l.getTokenEnd() === n)
              return "$0</".concat(a.tag, ">");
            u = l.scan();
          }
        }
      }
    } else if (s === "/") {
      let a = i.findNodeBefore(n);
      for (; a && a.closed && !(a.endTagStart && a.endTagStart > n); )
        a = a.parent;
      if (a && a.tag) {
        const o = Eo(t.getText(), a.start);
        let l = o.scan();
        for (; l !== xt.EOS && o.getTokenEnd() <= n; ) {
          if (l === xt.EndTagOpen && o.getTokenEnd() === n)
            return t.getText().charAt(n) !== ">" ? "".concat(a.tag, ">") : a.tag;
          l = o.scan();
        }
      }
    }
    return null;
  }
  convertCompletionList(t) {
    return this.doesSupportMarkdown() || t.items.forEach((r) => {
      r.documentation && typeof r.documentation != "string" && (r.documentation = {
        kind: "plaintext",
        value: r.documentation.value
      });
    }), t;
  }
  doesSupportMarkdown() {
    var t, r, i;
    if (!LA(this.supportsMarkdown)) {
      if (!LA(this.lsOptions.clientCapabilities))
        return this.supportsMarkdown = !0, this.supportsMarkdown;
      const n = (i = (r = (t = this.lsOptions.clientCapabilities.textDocument) == null ? void 0 : t.completion) == null ? void 0 : r.completionItem) == null ? void 0 : i.documentationFormat;
      this.supportsMarkdown = Array.isArray(n) && n.indexOf(cp.Markdown) !== -1;
    }
    return this.supportsMarkdown;
  }
}
function adr(e) {
  return /^["']*$/.test(e);
}
function MA(e) {
  return /^\s*$/.test(e);
}
function Jie(e, t, r, i) {
  const n = Eo(e, t, r);
  let s = n.scan();
  for (; s === xt.Whitespace; )
    s = n.scan();
  return s === i;
}
function odr(e, t, r) {
  for (; t > r && !MA(e[t - 1]); )
    t--;
  return t;
}
function ldr(e, t, r) {
  for (; t < r && !MA(e[t]); )
    t++;
  return t;
}
class udr {
  constructor(t, r) {
    this.lsOptions = t, this.dataManager = r;
  }
  doHover(t, r, i, n) {
    const s = this.convertContents.bind(this), a = this.doesSupportMarkdown(), o = t.offsetAt(r), l = i.findNodeAt(o), u = t.getText();
    if (!l || !l.tag)
      return null;
    const c = this.dataManager.getDataProviders().filter((w) => w.isApplicable(t.languageId));
    function f(w, A, I) {
      for (const L of c) {
        let O = null;
        if (L.provideTags().forEach((F) => {
          if (F.name.toLowerCase() === w.toLowerCase()) {
            let q = Md(F, n, a);
            q || (q = {
              kind: a ? "markdown" : "plaintext",
              value: ""
            }), O = { contents: q, range: A };
          }
        }), O)
          return O.contents = s(O.contents), O;
      }
      return null;
    }
    function h(w, A, I) {
      for (const L of c) {
        let O = null;
        if (L.provideAttributes(w).forEach((F) => {
          if (A === F.name && F.description) {
            const q = Md(F, n, a);
            q ? O = { contents: q, range: I } : O = null;
          }
        }), O)
          return O.contents = s(O.contents), O;
      }
      return null;
    }
    function m(w, A, I, L) {
      for (const O of c) {
        let F = null;
        if (O.provideValues(w, A).forEach((q) => {
          if (I === q.name && q.description) {
            const j = Md(q, n, a);
            j ? F = { contents: j, range: L } : F = null;
          }
        }), F)
          return F.contents = s(F.contents), F;
      }
      return null;
    }
    function g(w, A) {
      let I = T(w);
      for (const L in dv) {
        let O = null;
        const F = "&" + L;
        if (I === F) {
          let q = dv[L].charCodeAt(0).toString(16).toUpperCase(), j = "U+";
          if (q.length < 4) {
            const M = 4 - q.length;
            let R = 0;
            for (; R < M; )
              j += "0", R += 1;
          }
          j += q;
          const N = Cc("Character entity representing '{0}', unicode equivalent '{1}'", dv[L], j);
          N ? O = { contents: N, range: A } : O = null;
        }
        if (O)
          return O.contents = s(O.contents), O;
      }
      return null;
    }
    function y(w, A) {
      const I = Eo(t.getText(), A);
      let L = I.scan();
      for (; L !== xt.EOS && (I.getTokenEnd() < o || I.getTokenEnd() === o && L !== w); )
        L = I.scan();
      return L === w && o <= I.getTokenEnd() ? { start: t.positionAt(I.getTokenOffset()), end: t.positionAt(I.getTokenEnd()) } : null;
    }
    function v() {
      let w = o - 1, A = r.character;
      for (; w >= 0 && q0(u, w); )
        w--, A--;
      let I = w + 1, L = A;
      for (; q0(u, I); )
        I++, L++;
      if (w >= 0 && u[w] === "&") {
        let O = null;
        return u[I] === ";" ? O = Xr.create(Un.create(r.line, A), Un.create(r.line, L + 1)) : O = Xr.create(Un.create(r.line, A), Un.create(r.line, L)), O;
      }
      return null;
    }
    function T(w) {
      let A = o - 1, I = "&";
      for (; A >= 0 && q0(w, A); )
        A--;
      for (A = A + 1; q0(w, A); )
        I += w[A], A += 1;
      return I += ";", I;
    }
    if (l.endTagStart && o >= l.endTagStart) {
      const w = y(xt.EndTag, l.endTagStart);
      return w ? f(l.tag, w) : null;
    }
    const S = y(xt.StartTag, l.start);
    if (S)
      return f(l.tag, S);
    const P = y(xt.AttributeName, l.start);
    if (P) {
      const w = l.tag, A = t.getText(P);
      return h(w, A, P);
    }
    const x = v();
    if (x)
      return g(u, x);
    function C(w, A) {
      const I = Eo(t.getText(), w);
      let L = I.scan(), O;
      for (; L !== xt.EOS && I.getTokenEnd() <= A; )
        L = I.scan(), L === xt.AttributeName && (O = I.getTokenText());
      return O;
    }
    const D = y(xt.AttributeValue, l.start);
    if (D) {
      const w = l.tag, A = cdr(t.getText(D)), I = C(l.start, t.offsetAt(D.start));
      if (I)
        return m(w, I, A, D);
    }
    return null;
  }
  convertContents(t) {
    if (!this.doesSupportMarkdown()) {
      if (typeof t == "string")
        return t;
      if ("kind" in t)
        return {
          kind: "plaintext",
          value: t.value
        };
      if (Array.isArray(t))
        t.map((r) => typeof r == "string" ? r : r.value);
      else
        return t.value;
    }
    return t;
  }
  doesSupportMarkdown() {
    var t, r, i;
    if (!LA(this.supportsMarkdown)) {
      if (!LA(this.lsOptions.clientCapabilities))
        return this.supportsMarkdown = !0, this.supportsMarkdown;
      const n = (i = (r = (t = this.lsOptions.clientCapabilities) == null ? void 0 : t.textDocument) == null ? void 0 : r.hover) == null ? void 0 : i.contentFormat;
      this.supportsMarkdown = Array.isArray(n) && n.indexOf(cp.Markdown) !== -1;
    }
    return this.supportsMarkdown;
  }
}
function cdr(e) {
  return e.length <= 1 ? e.replace(/['"]/, "") : ((e[0] === "'" || e[0] === '"') && (e = e.slice(1)), (e[e.length - 1] === "'" || e[e.length - 1] === '"') && (e = e.slice(0, -1)), e);
}
function pdr(e, t) {
  return e;
}
var CSe;
(function() {
  var e = [
    ,
    ,
    /* 2 */
    /***/
    function(n) {
      function s(l) {
        this.__parent = l, this.__character_count = 0, this.__indent_count = -1, this.__alignment_count = 0, this.__wrap_point_index = 0, this.__wrap_point_character_count = 0, this.__wrap_point_indent_count = -1, this.__wrap_point_alignment_count = 0, this.__items = [];
      }
      s.prototype.clone_empty = function() {
        var l = new s(this.__parent);
        return l.set_indent(this.__indent_count, this.__alignment_count), l;
      }, s.prototype.item = function(l) {
        return l < 0 ? this.__items[this.__items.length + l] : this.__items[l];
      }, s.prototype.has_match = function(l) {
        for (var u = this.__items.length - 1; u >= 0; u--)
          if (this.__items[u].match(l))
            return !0;
        return !1;
      }, s.prototype.set_indent = function(l, u) {
        this.is_empty() && (this.__indent_count = l || 0, this.__alignment_count = u || 0, this.__character_count = this.__parent.get_indent_size(this.__indent_count, this.__alignment_count));
      }, s.prototype._set_wrap_point = function() {
        this.__parent.wrap_line_length && (this.__wrap_point_index = this.__items.length, this.__wrap_point_character_count = this.__character_count, this.__wrap_point_indent_count = this.__parent.next_line.__indent_count, this.__wrap_point_alignment_count = this.__parent.next_line.__alignment_count);
      }, s.prototype._should_wrap = function() {
        return this.__wrap_point_index && this.__character_count > this.__parent.wrap_line_length && this.__wrap_point_character_count > this.__parent.next_line.__character_count;
      }, s.prototype._allow_wrap = function() {
        if (this._should_wrap()) {
          this.__parent.add_new_line();
          var l = this.__parent.current_line;
          return l.set_indent(this.__wrap_point_indent_count, this.__wrap_point_alignment_count), l.__items = this.__items.slice(this.__wrap_point_index), this.__items = this.__items.slice(0, this.__wrap_point_index), l.__character_count += this.__character_count - this.__wrap_point_character_count, this.__character_count = this.__wrap_point_character_count, l.__items[0] === " " && (l.__items.splice(0, 1), l.__character_count -= 1), !0;
        }
        return !1;
      }, s.prototype.is_empty = function() {
        return this.__items.length === 0;
      }, s.prototype.last = function() {
        return this.is_empty() ? null : this.__items[this.__items.length - 1];
      }, s.prototype.push = function(l) {
        this.__items.push(l);
        var u = l.lastIndexOf("\n");
        u !== -1 ? this.__character_count = l.length - u : this.__character_count += l.length;
      }, s.prototype.pop = function() {
        var l = null;
        return this.is_empty() || (l = this.__items.pop(), this.__character_count -= l.length), l;
      }, s.prototype._remove_indent = function() {
        this.__indent_count > 0 && (this.__indent_count -= 1, this.__character_count -= this.__parent.indent_size);
      }, s.prototype._remove_wrap_indent = function() {
        this.__wrap_point_indent_count > 0 && (this.__wrap_point_indent_count -= 1);
      }, s.prototype.trim = function() {
        for (; this.last() === " "; )
          this.__items.pop(), this.__character_count -= 1;
      }, s.prototype.toString = function() {
        var l = "";
        return this.is_empty() ? this.__parent.indent_empty_lines && (l = this.__parent.get_indent_string(this.__indent_count)) : (l = this.__parent.get_indent_string(this.__indent_count, this.__alignment_count), l += this.__items.join("")), l;
      };
      function a(l, u) {
        this.__cache = [""], this.__indent_size = l.indent_size, this.__indent_string = l.indent_char, l.indent_with_tabs || (this.__indent_string = new Array(l.indent_size + 1).join(l.indent_char)), u = u || "", l.indent_level > 0 && (u = new Array(l.indent_level + 1).join(this.__indent_string)), this.__base_string = u, this.__base_string_length = u.length;
      }
      a.prototype.get_indent_size = function(l, u) {
        var c = this.__base_string_length;
        return u = u || 0, l < 0 && (c = 0), c += l * this.__indent_size, c += u, c;
      }, a.prototype.get_indent_string = function(l, u) {
        var c = this.__base_string;
        return u = u || 0, l < 0 && (l = 0, c = ""), u += l * this.__indent_size, this.__ensure_cache(u), c += this.__cache[u], c;
      }, a.prototype.__ensure_cache = function(l) {
        for (; l >= this.__cache.length; )
          this.__add_column();
      }, a.prototype.__add_column = function() {
        var l = this.__cache.length, u = 0, c = "";
        this.__indent_size && l >= this.__indent_size && (u = Math.floor(l / this.__indent_size), l -= u * this.__indent_size, c = new Array(u + 1).join(this.__indent_string)), l && (c += new Array(l + 1).join(" ")), this.__cache.push(c);
      };
      function o(l, u) {
        this.__indent_cache = new a(l, u), this.raw = !1, this._end_with_newline = l.end_with_newline, this.indent_size = l.indent_size, this.wrap_line_length = l.wrap_line_length, this.indent_empty_lines = l.indent_empty_lines, this.__lines = [], this.previous_line = null, this.current_line = null, this.next_line = new s(this), this.space_before_token = !1, this.non_breaking_space = !1, this.previous_token_wrapped = !1, this.__add_outputline();
      }
      o.prototype.__add_outputline = function() {
        this.previous_line = this.current_line, this.current_line = this.next_line.clone_empty(), this.__lines.push(this.current_line);
      }, o.prototype.get_line_number = function() {
        return this.__lines.length;
      }, o.prototype.get_indent_string = function(l, u) {
        return this.__indent_cache.get_indent_string(l, u);
      }, o.prototype.get_indent_size = function(l, u) {
        return this.__indent_cache.get_indent_size(l, u);
      }, o.prototype.is_empty = function() {
        return !this.previous_line && this.current_line.is_empty();
      }, o.prototype.add_new_line = function(l) {
        return this.is_empty() || !l && this.just_added_newline() ? !1 : (this.raw || this.__add_outputline(), !0);
      }, o.prototype.get_code = function(l) {
        this.trim(!0);
        var u = this.current_line.pop();
        u && (u[u.length - 1] === "\n" && (u = u.replace(/\n+$/g, "")), this.current_line.push(u)), this._end_with_newline && this.__add_outputline();
        var c = this.__lines.join("\n");
        return l !== "\n" && (c = c.replace(/[\n]/g, l)), c;
      }, o.prototype.set_wrap_point = function() {
        this.current_line._set_wrap_point();
      }, o.prototype.set_indent = function(l, u) {
        return l = l || 0, u = u || 0, this.next_line.set_indent(l, u), this.__lines.length > 1 ? (this.current_line.set_indent(l, u), !0) : (this.current_line.set_indent(), !1);
      }, o.prototype.add_raw_token = function(l) {
        for (var u = 0; u < l.newlines; u++)
          this.__add_outputline();
        this.current_line.set_indent(-1), this.current_line.push(l.whitespace_before), this.current_line.push(l.text), this.space_before_token = !1, this.non_breaking_space = !1, this.previous_token_wrapped = !1;
      }, o.prototype.add_token = function(l) {
        this.__add_space_before_token(), this.current_line.push(l), this.space_before_token = !1, this.non_breaking_space = !1, this.previous_token_wrapped = this.current_line._allow_wrap();
      }, o.prototype.__add_space_before_token = function() {
        this.space_before_token && !this.just_added_newline() && (this.non_breaking_space || this.set_wrap_point(), this.current_line.push(" "));
      }, o.prototype.remove_indent = function(l) {
        for (var u = this.__lines.length; l < u; )
          this.__lines[l]._remove_indent(), l++;
        this.current_line._remove_wrap_indent();
      }, o.prototype.trim = function(l) {
        for (l = l === void 0 ? !1 : l, this.current_line.trim(); l && this.__lines.length > 1 && this.current_line.is_empty(); )
          this.__lines.pop(), this.current_line = this.__lines[this.__lines.length - 1], this.current_line.trim();
        this.previous_line = this.__lines.length > 1 ? this.__lines[this.__lines.length - 2] : null;
      }, o.prototype.just_added_newline = function() {
        return this.current_line.is_empty();
      }, o.prototype.just_added_blankline = function() {
        return this.is_empty() || this.current_line.is_empty() && this.previous_line.is_empty();
      }, o.prototype.ensure_empty_line_above = function(l, u) {
        for (var c = this.__lines.length - 2; c >= 0; ) {
          var f = this.__lines[c];
          if (f.is_empty())
            break;
          if (f.item(0).indexOf(l) !== 0 && f.item(-1) !== u) {
            this.__lines.splice(c + 1, 0, new s(this)), this.previous_line = this.__lines[this.__lines.length - 2];
            break;
          }
          c--;
        }
      }, n.exports.Output = o;
    },
    ,
    ,
    ,
    /* 6 */
    /***/
    function(n) {
      function s(l, u) {
        this.raw_options = a(l, u), this.disabled = this._get_boolean("disabled"), this.eol = this._get_characters("eol", "auto"), this.end_with_newline = this._get_boolean("end_with_newline"), this.indent_size = this._get_number("indent_size", 4), this.indent_char = this._get_characters("indent_char", " "), this.indent_level = this._get_number("indent_level"), this.preserve_newlines = this._get_boolean("preserve_newlines", !0), this.max_preserve_newlines = this._get_number("max_preserve_newlines", 32786), this.preserve_newlines || (this.max_preserve_newlines = 0), this.indent_with_tabs = this._get_boolean("indent_with_tabs", this.indent_char === "	"), this.indent_with_tabs && (this.indent_char = "	", this.indent_size === 1 && (this.indent_size = 4)), this.wrap_line_length = this._get_number("wrap_line_length", this._get_number("max_char")), this.indent_empty_lines = this._get_boolean("indent_empty_lines"), this.templating = this._get_selection_list("templating", ["auto", "none", "angular", "django", "erb", "handlebars", "php", "smarty"], ["auto"]);
      }
      s.prototype._get_array = function(l, u) {
        var c = this.raw_options[l], f = u || [];
        return typeof c == "object" ? c !== null && typeof c.concat == "function" && (f = c.concat()) : typeof c == "string" && (f = c.split(/[^a-zA-Z0-9_\/\-]+/)), f;
      }, s.prototype._get_boolean = function(l, u) {
        var c = this.raw_options[l], f = c === void 0 ? !!u : !!c;
        return f;
      }, s.prototype._get_characters = function(l, u) {
        var c = this.raw_options[l], f = u || "";
        return typeof c == "string" && (f = c.replace(/\\r/, "\r").replace(/\\n/, "\n").replace(/\\t/, "	")), f;
      }, s.prototype._get_number = function(l, u) {
        var c = this.raw_options[l];
        u = parseInt(u, 10), isNaN(u) && (u = 0);
        var f = parseInt(c, 10);
        return isNaN(f) && (f = u), f;
      }, s.prototype._get_selection = function(l, u, c) {
        var f = this._get_selection_list(l, u, c);
        if (f.length !== 1)
          throw new Error(
            "Invalid Option Value: The option '" + l + "' can only be one of the following values:\n" + u + "\nYou passed in: '" + this.raw_options[l] + "'"
          );
        return f[0];
      }, s.prototype._get_selection_list = function(l, u, c) {
        if (!u || u.length === 0)
          throw new Error("Selection list cannot be empty.");
        if (c = c || [u[0]], !this._is_valid_selection(c, u))
          throw new Error("Invalid Default Value!");
        var f = this._get_array(l, c);
        if (!this._is_valid_selection(f, u))
          throw new Error(
            "Invalid Option Value: The option '" + l + "' can contain only the following values:\n" + u + "\nYou passed in: '" + this.raw_options[l] + "'"
          );
        return f;
      }, s.prototype._is_valid_selection = function(l, u) {
        return l.length && u.length && !l.some(function(c) {
          return u.indexOf(c) === -1;
        });
      };
      function a(l, u) {
        var c = {};
        l = o(l);
        var f;
        for (f in l)
          f !== u && (c[f] = l[f]);
        if (u && l[u])
          for (f in l[u])
            c[f] = l[u][f];
        return c;
      }
      function o(l) {
        var u = {}, c;
        for (c in l) {
          var f = c.replace(/-/g, "_");
          u[f] = l[c];
        }
        return u;
      }
      n.exports.Options = s, n.exports.normalizeOpts = o, n.exports.mergeOpts = a;
    },
    ,
    /* 8 */
    /***/
    function(n) {
      var s = RegExp.prototype.hasOwnProperty("sticky");
      function a(o) {
        this.__input = o || "", this.__input_length = this.__input.length, this.__position = 0;
      }
      a.prototype.restart = function() {
        this.__position = 0;
      }, a.prototype.back = function() {
        this.__position > 0 && (this.__position -= 1);
      }, a.prototype.hasNext = function() {
        return this.__position < this.__input_length;
      }, a.prototype.next = function() {
        var o = null;
        return this.hasNext() && (o = this.__input.charAt(this.__position), this.__position += 1), o;
      }, a.prototype.peek = function(o) {
        var l = null;
        return o = o || 0, o += this.__position, o >= 0 && o < this.__input_length && (l = this.__input.charAt(o)), l;
      }, a.prototype.__match = function(o, l) {
        o.lastIndex = l;
        var u = o.exec(this.__input);
        return u && !(s && o.sticky) && u.index !== l && (u = null), u;
      }, a.prototype.test = function(o, l) {
        return l = l || 0, l += this.__position, l >= 0 && l < this.__input_length ? !!this.__match(o, l) : !1;
      }, a.prototype.testChar = function(o, l) {
        var u = this.peek(l);
        return o.lastIndex = 0, u !== null && o.test(u);
      }, a.prototype.match = function(o) {
        var l = this.__match(o, this.__position);
        return l ? this.__position += l[0].length : l = null, l;
      }, a.prototype.read = function(o, l, u) {
        var c = "", f;
        return o && (f = this.match(o), f && (c += f[0])), l && (f || !o) && (c += this.readUntil(l, u)), c;
      }, a.prototype.readUntil = function(o, l) {
        var u = "", c = this.__position;
        o.lastIndex = this.__position;
        var f = o.exec(this.__input);
        return f ? (c = f.index, l && (c += f[0].length)) : c = this.__input_length, u = this.__input.substring(this.__position, c), this.__position = c, u;
      }, a.prototype.readUntilAfter = function(o) {
        return this.readUntil(o, !0);
      }, a.prototype.get_regexp = function(o, l) {
        var u = null, c = "g";
        return l && s && (c = "y"), typeof o == "string" && o !== "" ? u = new RegExp(o, c) : o && (u = new RegExp(o.source, c)), u;
      }, a.prototype.get_literal_regexp = function(o) {
        return RegExp(o.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"));
      }, a.prototype.peekUntilAfter = function(o) {
        var l = this.__position, u = this.readUntilAfter(o);
        return this.__position = l, u;
      }, a.prototype.lookBack = function(o) {
        var l = this.__position - 1;
        return l >= o.length && this.__input.substring(l - o.length, l).toLowerCase() === o;
      }, n.exports.InputScanner = a;
    },
    ,
    ,
    ,
    ,
    /* 13 */
    /***/
    function(n) {
      function s(a, o) {
        a = typeof a == "string" ? a : a.source, o = typeof o == "string" ? o : o.source, this.__directives_block_pattern = new RegExp(a + / beautify( \w+[:]\w+)+ /.source + o, "g"), this.__directive_pattern = / (\w+)[:](\w+)/g, this.__directives_end_ignore_pattern = new RegExp(a + /\sbeautify\signore:end\s/.source + o, "g");
      }
      s.prototype.get_directives = function(a) {
        if (!a.match(this.__directives_block_pattern))
          return null;
        var o = {};
        this.__directive_pattern.lastIndex = 0;
        for (var l = this.__directive_pattern.exec(a); l; )
          o[l[1]] = l[2], l = this.__directive_pattern.exec(a);
        return o;
      }, s.prototype.readIgnored = function(a) {
        return a.readUntilAfter(this.__directives_end_ignore_pattern);
      }, n.exports.Directives = s;
    },
    ,
    /* 15 */
    /***/
    function(n, s, a) {
      var o = a(16).Beautifier, l = a(17).Options;
      function u(c, f) {
        var h = new o(c, f);
        return h.beautify();
      }
      n.exports = u, n.exports.defaultOptions = function() {
        return new l();
      };
    },
    /* 16 */
    /***/
    function(n, s, a) {
      var o = a(17).Options, l = a(2).Output, u = a(8).InputScanner, c = a(13).Directives, f = new c(/\/\*/, /\*\//), h = /\r\n|[\r\n]/, m = /\r\n|[\r\n]/g, g = /\s/, y = /(?:\s|\n)+/g, v = /\/\*(?:[\s\S]*?)((?:\*\/)|$)/g, T = /\/\/(?:[^\n\r\u2028\u2029]*)/g;
      function S(P, x) {
        this._source_text = P || "", this._options = new o(x), this._ch = null, this._input = null, this.NESTED_AT_RULE = {
          page: !0,
          "font-face": !0,
          keyframes: !0,
          // also in CONDITIONAL_GROUP_RULE below
          media: !0,
          supports: !0,
          document: !0
        }, this.CONDITIONAL_GROUP_RULE = {
          media: !0,
          supports: !0,
          document: !0
        }, this.NON_SEMICOLON_NEWLINE_PROPERTY = [
          "grid-template-areas",
          "grid-template"
        ];
      }
      S.prototype.eatString = function(P) {
        var x = "";
        for (this._ch = this._input.next(); this._ch; ) {
          if (x += this._ch, this._ch === "\\")
            x += this._input.next();
          else if (P.indexOf(this._ch) !== -1 || this._ch === "\n")
            break;
          this._ch = this._input.next();
        }
        return x;
      }, S.prototype.eatWhitespace = function(P) {
        for (var x = g.test(this._input.peek()), C = 0; g.test(this._input.peek()); )
          this._ch = this._input.next(), P && this._ch === "\n" && (C === 0 || C < this._options.max_preserve_newlines) && (C++, this._output.add_new_line(!0));
        return x;
      }, S.prototype.foundNestedPseudoClass = function() {
        for (var P = 0, x = 1, C = this._input.peek(x); C; ) {
          if (C === "{")
            return !0;
          if (C === "(")
            P += 1;
          else if (C === ")") {
            if (P === 0)
              return !1;
            P -= 1;
          } else if (C === ";" || C === "}")
            return !1;
          x++, C = this._input.peek(x);
        }
        return !1;
      }, S.prototype.print_string = function(P) {
        this._output.set_indent(this._indentLevel), this._output.non_breaking_space = !0, this._output.add_token(P);
      }, S.prototype.preserveSingleSpace = function(P) {
        P && (this._output.space_before_token = !0);
      }, S.prototype.indent = function() {
        this._indentLevel++;
      }, S.prototype.outdent = function() {
        this._indentLevel > 0 && this._indentLevel--;
      }, S.prototype.beautify = function() {
        if (this._options.disabled)
          return this._source_text;
        var P = this._source_text, x = this._options.eol;
        x === "auto" && (x = "\n", P && h.test(P || "") && (x = P.match(h)[0])), P = P.replace(m, "\n");
        var C = P.match(/^[\t ]*/)[0];
        this._output = new l(this._options, C), this._input = new u(P), this._indentLevel = 0, this._nestedLevel = 0, this._ch = null;
        for (var D = 0, w = !1, A = !1, I = !1, L = !1, O = !1, F = this._ch, q = !1, j, N, M; j = this._input.read(y), N = j !== "", M = F, this._ch = this._input.next(), this._ch === "\\" && this._input.hasNext() && (this._ch += this._input.next()), F = this._ch, this._ch; )
          if (this._ch === "/" && this._input.peek() === "*") {
            this._output.add_new_line(), this._input.back();
            var R = this._input.read(v), $ = f.get_directives(R);
            $ && $.ignore === "start" && (R += f.readIgnored(this._input)), this.print_string(R), this.eatWhitespace(!0), this._output.add_new_line();
          } else if (this._ch === "/" && this._input.peek() === "/")
            this._output.space_before_token = !0, this._input.back(), this.print_string(this._input.read(T)), this.eatWhitespace(!0);
          else if (this._ch === "$") {
            this.preserveSingleSpace(N), this.print_string(this._ch);
            var V = this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g);
            V.match(/[ :]$/) && (V = this.eatString(": ").replace(/\s+$/, ""), this.print_string(V), this._output.space_before_token = !0), D === 0 && V.indexOf(":") !== -1 && (A = !0, this.indent());
          } else if (this._ch === "@")
            if (this.preserveSingleSpace(N), this._input.peek() === "{")
              this.print_string(this._ch + this.eatString("}"));
            else {
              this.print_string(this._ch);
              var K = this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g);
              K.match(/[ :]$/) && (K = this.eatString(": ").replace(/\s+$/, ""), this.print_string(K), this._output.space_before_token = !0), D === 0 && K.indexOf(":") !== -1 ? (A = !0, this.indent()) : K in this.NESTED_AT_RULE ? (this._nestedLevel += 1, K in this.CONDITIONAL_GROUP_RULE && (I = !0)) : D === 0 && !A && (L = !0);
            }
          else if (this._ch === "#" && this._input.peek() === "{")
            this.preserveSingleSpace(N), this.print_string(this._ch + this.eatString("}"));
          else if (this._ch === "{")
            A && (A = !1, this.outdent()), L = !1, I ? (I = !1, w = this._indentLevel >= this._nestedLevel) : w = this._indentLevel >= this._nestedLevel - 1, this._options.newline_between_rules && w && this._output.previous_line && this._output.previous_line.item(-1) !== "{" && this._output.ensure_empty_line_above("/", ","), this._output.space_before_token = !0, this._options.brace_style === "expand" ? (this._output.add_new_line(), this.print_string(this._ch), this.indent(), this._output.set_indent(this._indentLevel)) : (M === "(" ? this._output.space_before_token = !1 : M !== "," && this.indent(), this.print_string(this._ch)), this.eatWhitespace(!0), this._output.add_new_line();
          else if (this._ch === "}")
            this.outdent(), this._output.add_new_line(), M === "{" && this._output.trim(!0), A && (this.outdent(), A = !1), this.print_string(this._ch), w = !1, this._nestedLevel && this._nestedLevel--, this.eatWhitespace(!0), this._output.add_new_line(), this._options.newline_between_rules && !this._output.just_added_blankline() && this._input.peek() !== "}" && this._output.add_new_line(!0), this._input.peek() === ")" && (this._output.trim(!0), this._options.brace_style === "expand" && this._output.add_new_line(!0));
          else if (this._ch === ":") {
            for (var z = 0; z < this.NON_SEMICOLON_NEWLINE_PROPERTY.length; z++)
              if (this._input.lookBack(this.NON_SEMICOLON_NEWLINE_PROPERTY[z])) {
                q = !0;
                break;
              }
            (w || I) && !(this._input.lookBack("&") || this.foundNestedPseudoClass()) && !this._input.lookBack("(") && !L && D === 0 ? (this.print_string(":"), A || (A = !0, this._output.space_before_token = !0, this.eatWhitespace(!0), this.indent())) : (this._input.lookBack(" ") && (this._output.space_before_token = !0), this._input.peek() === ":" ? (this._ch = this._input.next(), this.print_string("::")) : this.print_string(":"));
          } else if (this._ch === '"' || this._ch === "'") {
            var W = M === '"' || M === "'";
            this.preserveSingleSpace(W || N), this.print_string(this._ch + this.eatString(this._ch)), this.eatWhitespace(!0);
          } else if (this._ch === ";")
            q = !1, D === 0 ? (A && (this.outdent(), A = !1), L = !1, this.print_string(this._ch), this.eatWhitespace(!0), this._input.peek() !== "/" && this._output.add_new_line()) : (this.print_string(this._ch), this.eatWhitespace(!0), this._output.space_before_token = !0);
          else if (this._ch === "(")
            if (this._input.lookBack("url"))
              this.print_string(this._ch), this.eatWhitespace(), D++, this.indent(), this._ch = this._input.next(), this._ch === ")" || this._ch === '"' || this._ch === "'" ? this._input.back() : this._ch && (this.print_string(this._ch + this.eatString(")")), D && (D--, this.outdent()));
            else {
              var Y = !1;
              this._input.lookBack("with") && (Y = !0), this.preserveSingleSpace(N || Y), this.print_string(this._ch), A && M === "$" && this._options.selector_separator_newline ? (this._output.add_new_line(), O = !0) : (this.eatWhitespace(), D++, this.indent());
            }
          else if (this._ch === ")")
            D && (D--, this.outdent()), O && this._input.peek() === ";" && this._options.selector_separator_newline && (O = !1, this.outdent(), this._output.add_new_line()), this.print_string(this._ch);
          else if (this._ch === ",")
            this.print_string(this._ch), this.eatWhitespace(!0), this._options.selector_separator_newline && (!A || O) && D === 0 && !L ? this._output.add_new_line() : this._output.space_before_token = !0;
          else if ((this._ch === ">" || this._ch === "+" || this._ch === "~") && !A && D === 0)
            this._options.space_around_combinator ? (this._output.space_before_token = !0, this.print_string(this._ch), this._output.space_before_token = !0) : (this.print_string(this._ch), this.eatWhitespace(), this._ch && g.test(this._ch) && (this._ch = ""));
          else if (this._ch === "]")
            this.print_string(this._ch);
          else if (this._ch === "[")
            this.preserveSingleSpace(N), this.print_string(this._ch);
          else if (this._ch === "=")
            this.eatWhitespace(), this.print_string("="), g.test(this._ch) && (this._ch = "");
          else if (this._ch === "!" && !this._input.lookBack("\\"))
            this._output.space_before_token = !0, this.print_string(this._ch);
          else {
            var G = M === '"' || M === "'";
            this.preserveSingleSpace(G || N), this.print_string(this._ch), !this._output.just_added_newline() && this._input.peek() === "\n" && q && this._output.add_new_line();
          }
        var le = this._output.get_code(x);
        return le;
      }, n.exports.Beautifier = S;
    },
    /* 17 */
    /***/
    function(n, s, a) {
      var o = a(6).Options;
      function l(u) {
        o.call(this, u, "css"), this.selector_separator_newline = this._get_boolean("selector_separator_newline", !0), this.newline_between_rules = this._get_boolean("newline_between_rules", !0);
        var c = this._get_boolean("space_around_selector_separator");
        this.space_around_combinator = this._get_boolean("space_around_combinator") || c;
        var f = this._get_selection_list("brace_style", ["collapse", "expand", "end-expand", "none", "preserve-inline"]);
        this.brace_style = "collapse";
        for (var h = 0; h < f.length; h++)
          f[h] !== "expand" ? this.brace_style = "collapse" : this.brace_style = f[h];
      }
      l.prototype = new o(), n.exports.Options = l;
    }
    /******/
  ], t = {};
  function r(n) {
    var s = t[n];
    if (s !== void 0)
      return s.exports;
    var a = t[n] = {
      /******/
      // no module.id needed
      /******/
      // no module.loaded needed
      /******/
      exports: {}
      /******/
    };
    return e[n](a, a.exports, r), a.exports;
  }
  var i = r(15);
  CSe = i;
})();
var fdr = CSe, _Se;
(function() {
  var e = [
    ,
    ,
    /* 2 */
    /***/
    function(n) {
      function s(l) {
        this.__parent = l, this.__character_count = 0, this.__indent_count = -1, this.__alignment_count = 0, this.__wrap_point_index = 0, this.__wrap_point_character_count = 0, this.__wrap_point_indent_count = -1, this.__wrap_point_alignment_count = 0, this.__items = [];
      }
      s.prototype.clone_empty = function() {
        var l = new s(this.__parent);
        return l.set_indent(this.__indent_count, this.__alignment_count), l;
      }, s.prototype.item = function(l) {
        return l < 0 ? this.__items[this.__items.length + l] : this.__items[l];
      }, s.prototype.has_match = function(l) {
        for (var u = this.__items.length - 1; u >= 0; u--)
          if (this.__items[u].match(l))
            return !0;
        return !1;
      }, s.prototype.set_indent = function(l, u) {
        this.is_empty() && (this.__indent_count = l || 0, this.__alignment_count = u || 0, this.__character_count = this.__parent.get_indent_size(this.__indent_count, this.__alignment_count));
      }, s.prototype._set_wrap_point = function() {
        this.__parent.wrap_line_length && (this.__wrap_point_index = this.__items.length, this.__wrap_point_character_count = this.__character_count, this.__wrap_point_indent_count = this.__parent.next_line.__indent_count, this.__wrap_point_alignment_count = this.__parent.next_line.__alignment_count);
      }, s.prototype._should_wrap = function() {
        return this.__wrap_point_index && this.__character_count > this.__parent.wrap_line_length && this.__wrap_point_character_count > this.__parent.next_line.__character_count;
      }, s.prototype._allow_wrap = function() {
        if (this._should_wrap()) {
          this.__parent.add_new_line();
          var l = this.__parent.current_line;
          return l.set_indent(this.__wrap_point_indent_count, this.__wrap_point_alignment_count), l.__items = this.__items.slice(this.__wrap_point_index), this.__items = this.__items.slice(0, this.__wrap_point_index), l.__character_count += this.__character_count - this.__wrap_point_character_count, this.__character_count = this.__wrap_point_character_count, l.__items[0] === " " && (l.__items.splice(0, 1), l.__character_count -= 1), !0;
        }
        return !1;
      }, s.prototype.is_empty = function() {
        return this.__items.length === 0;
      }, s.prototype.last = function() {
        return this.is_empty() ? null : this.__items[this.__items.length - 1];
      }, s.prototype.push = function(l) {
        this.__items.push(l);
        var u = l.lastIndexOf("\n");
        u !== -1 ? this.__character_count = l.length - u : this.__character_count += l.length;
      }, s.prototype.pop = function() {
        var l = null;
        return this.is_empty() || (l = this.__items.pop(), this.__character_count -= l.length), l;
      }, s.prototype._remove_indent = function() {
        this.__indent_count > 0 && (this.__indent_count -= 1, this.__character_count -= this.__parent.indent_size);
      }, s.prototype._remove_wrap_indent = function() {
        this.__wrap_point_indent_count > 0 && (this.__wrap_point_indent_count -= 1);
      }, s.prototype.trim = function() {
        for (; this.last() === " "; )
          this.__items.pop(), this.__character_count -= 1;
      }, s.prototype.toString = function() {
        var l = "";
        return this.is_empty() ? this.__parent.indent_empty_lines && (l = this.__parent.get_indent_string(this.__indent_count)) : (l = this.__parent.get_indent_string(this.__indent_count, this.__alignment_count), l += this.__items.join("")), l;
      };
      function a(l, u) {
        this.__cache = [""], this.__indent_size = l.indent_size, this.__indent_string = l.indent_char, l.indent_with_tabs || (this.__indent_string = new Array(l.indent_size + 1).join(l.indent_char)), u = u || "", l.indent_level > 0 && (u = new Array(l.indent_level + 1).join(this.__indent_string)), this.__base_string = u, this.__base_string_length = u.length;
      }
      a.prototype.get_indent_size = function(l, u) {
        var c = this.__base_string_length;
        return u = u || 0, l < 0 && (c = 0), c += l * this.__indent_size, c += u, c;
      }, a.prototype.get_indent_string = function(l, u) {
        var c = this.__base_string;
        return u = u || 0, l < 0 && (l = 0, c = ""), u += l * this.__indent_size, this.__ensure_cache(u), c += this.__cache[u], c;
      }, a.prototype.__ensure_cache = function(l) {
        for (; l >= this.__cache.length; )
          this.__add_column();
      }, a.prototype.__add_column = function() {
        var l = this.__cache.length, u = 0, c = "";
        this.__indent_size && l >= this.__indent_size && (u = Math.floor(l / this.__indent_size), l -= u * this.__indent_size, c = new Array(u + 1).join(this.__indent_string)), l && (c += new Array(l + 1).join(" ")), this.__cache.push(c);
      };
      function o(l, u) {
        this.__indent_cache = new a(l, u), this.raw = !1, this._end_with_newline = l.end_with_newline, this.indent_size = l.indent_size, this.wrap_line_length = l.wrap_line_length, this.indent_empty_lines = l.indent_empty_lines, this.__lines = [], this.previous_line = null, this.current_line = null, this.next_line = new s(this), this.space_before_token = !1, this.non_breaking_space = !1, this.previous_token_wrapped = !1, this.__add_outputline();
      }
      o.prototype.__add_outputline = function() {
        this.previous_line = this.current_line, this.current_line = this.next_line.clone_empty(), this.__lines.push(this.current_line);
      }, o.prototype.get_line_number = function() {
        return this.__lines.length;
      }, o.prototype.get_indent_string = function(l, u) {
        return this.__indent_cache.get_indent_string(l, u);
      }, o.prototype.get_indent_size = function(l, u) {
        return this.__indent_cache.get_indent_size(l, u);
      }, o.prototype.is_empty = function() {
        return !this.previous_line && this.current_line.is_empty();
      }, o.prototype.add_new_line = function(l) {
        return this.is_empty() || !l && this.just_added_newline() ? !1 : (this.raw || this.__add_outputline(), !0);
      }, o.prototype.get_code = function(l) {
        this.trim(!0);
        var u = this.current_line.pop();
        u && (u[u.length - 1] === "\n" && (u = u.replace(/\n+$/g, "")), this.current_line.push(u)), this._end_with_newline && this.__add_outputline();
        var c = this.__lines.join("\n");
        return l !== "\n" && (c = c.replace(/[\n]/g, l)), c;
      }, o.prototype.set_wrap_point = function() {
        this.current_line._set_wrap_point();
      }, o.prototype.set_indent = function(l, u) {
        return l = l || 0, u = u || 0, this.next_line.set_indent(l, u), this.__lines.length > 1 ? (this.current_line.set_indent(l, u), !0) : (this.current_line.set_indent(), !1);
      }, o.prototype.add_raw_token = function(l) {
        for (var u = 0; u < l.newlines; u++)
          this.__add_outputline();
        this.current_line.set_indent(-1), this.current_line.push(l.whitespace_before), this.current_line.push(l.text), this.space_before_token = !1, this.non_breaking_space = !1, this.previous_token_wrapped = !1;
      }, o.prototype.add_token = function(l) {
        this.__add_space_before_token(), this.current_line.push(l), this.space_before_token = !1, this.non_breaking_space = !1, this.previous_token_wrapped = this.current_line._allow_wrap();
      }, o.prototype.__add_space_before_token = function() {
        this.space_before_token && !this.just_added_newline() && (this.non_breaking_space || this.set_wrap_point(), this.current_line.push(" "));
      }, o.prototype.remove_indent = function(l) {
        for (var u = this.__lines.length; l < u; )
          this.__lines[l]._remove_indent(), l++;
        this.current_line._remove_wrap_indent();
      }, o.prototype.trim = function(l) {
        for (l = l === void 0 ? !1 : l, this.current_line.trim(); l && this.__lines.length > 1 && this.current_line.is_empty(); )
          this.__lines.pop(), this.current_line = this.__lines[this.__lines.length - 1], this.current_line.trim();
        this.previous_line = this.__lines.length > 1 ? this.__lines[this.__lines.length - 2] : null;
      }, o.prototype.just_added_newline = function() {
        return this.current_line.is_empty();
      }, o.prototype.just_added_blankline = function() {
        return this.is_empty() || this.current_line.is_empty() && this.previous_line.is_empty();
      }, o.prototype.ensure_empty_line_above = function(l, u) {
        for (var c = this.__lines.length - 2; c >= 0; ) {
          var f = this.__lines[c];
          if (f.is_empty())
            break;
          if (f.item(0).indexOf(l) !== 0 && f.item(-1) !== u) {
            this.__lines.splice(c + 1, 0, new s(this)), this.previous_line = this.__lines[this.__lines.length - 2];
            break;
          }
          c--;
        }
      }, n.exports.Output = o;
    },
    /* 3 */
    /***/
    function(n) {
      function s(a, o, l, u) {
        this.type = a, this.text = o, this.comments_before = null, this.newlines = l || 0, this.whitespace_before = u || "", this.parent = null, this.next = null, this.previous = null, this.opened = null, this.closed = null, this.directives = null;
      }
      n.exports.Token = s;
    },
    ,
    ,
    /* 6 */
    /***/
    function(n) {
      function s(l, u) {
        this.raw_options = a(l, u), this.disabled = this._get_boolean("disabled"), this.eol = this._get_characters("eol", "auto"), this.end_with_newline = this._get_boolean("end_with_newline"), this.indent_size = this._get_number("indent_size", 4), this.indent_char = this._get_characters("indent_char", " "), this.indent_level = this._get_number("indent_level"), this.preserve_newlines = this._get_boolean("preserve_newlines", !0), this.max_preserve_newlines = this._get_number("max_preserve_newlines", 32786), this.preserve_newlines || (this.max_preserve_newlines = 0), this.indent_with_tabs = this._get_boolean("indent_with_tabs", this.indent_char === "	"), this.indent_with_tabs && (this.indent_char = "	", this.indent_size === 1 && (this.indent_size = 4)), this.wrap_line_length = this._get_number("wrap_line_length", this._get_number("max_char")), this.indent_empty_lines = this._get_boolean("indent_empty_lines"), this.templating = this._get_selection_list("templating", ["auto", "none", "angular", "django", "erb", "handlebars", "php", "smarty"], ["auto"]);
      }
      s.prototype._get_array = function(l, u) {
        var c = this.raw_options[l], f = u || [];
        return typeof c == "object" ? c !== null && typeof c.concat == "function" && (f = c.concat()) : typeof c == "string" && (f = c.split(/[^a-zA-Z0-9_\/\-]+/)), f;
      }, s.prototype._get_boolean = function(l, u) {
        var c = this.raw_options[l], f = c === void 0 ? !!u : !!c;
        return f;
      }, s.prototype._get_characters = function(l, u) {
        var c = this.raw_options[l], f = u || "";
        return typeof c == "string" && (f = c.replace(/\\r/, "\r").replace(/\\n/, "\n").replace(/\\t/, "	")), f;
      }, s.prototype._get_number = function(l, u) {
        var c = this.raw_options[l];
        u = parseInt(u, 10), isNaN(u) && (u = 0);
        var f = parseInt(c, 10);
        return isNaN(f) && (f = u), f;
      }, s.prototype._get_selection = function(l, u, c) {
        var f = this._get_selection_list(l, u, c);
        if (f.length !== 1)
          throw new Error(
            "Invalid Option Value: The option '" + l + "' can only be one of the following values:\n" + u + "\nYou passed in: '" + this.raw_options[l] + "'"
          );
        return f[0];
      }, s.prototype._get_selection_list = function(l, u, c) {
        if (!u || u.length === 0)
          throw new Error("Selection list cannot be empty.");
        if (c = c || [u[0]], !this._is_valid_selection(c, u))
          throw new Error("Invalid Default Value!");
        var f = this._get_array(l, c);
        if (!this._is_valid_selection(f, u))
          throw new Error(
            "Invalid Option Value: The option '" + l + "' can contain only the following values:\n" + u + "\nYou passed in: '" + this.raw_options[l] + "'"
          );
        return f;
      }, s.prototype._is_valid_selection = function(l, u) {
        return l.length && u.length && !l.some(function(c) {
          return u.indexOf(c) === -1;
        });
      };
      function a(l, u) {
        var c = {};
        l = o(l);
        var f;
        for (f in l)
          f !== u && (c[f] = l[f]);
        if (u && l[u])
          for (f in l[u])
            c[f] = l[u][f];
        return c;
      }
      function o(l) {
        var u = {}, c;
        for (c in l) {
          var f = c.replace(/-/g, "_");
          u[f] = l[c];
        }
        return u;
      }
      n.exports.Options = s, n.exports.normalizeOpts = o, n.exports.mergeOpts = a;
    },
    ,
    /* 8 */
    /***/
    function(n) {
      var s = RegExp.prototype.hasOwnProperty("sticky");
      function a(o) {
        this.__input = o || "", this.__input_length = this.__input.length, this.__position = 0;
      }
      a.prototype.restart = function() {
        this.__position = 0;
      }, a.prototype.back = function() {
        this.__position > 0 && (this.__position -= 1);
      }, a.prototype.hasNext = function() {
        return this.__position < this.__input_length;
      }, a.prototype.next = function() {
        var o = null;
        return this.hasNext() && (o = this.__input.charAt(this.__position), this.__position += 1), o;
      }, a.prototype.peek = function(o) {
        var l = null;
        return o = o || 0, o += this.__position, o >= 0 && o < this.__input_length && (l = this.__input.charAt(o)), l;
      }, a.prototype.__match = function(o, l) {
        o.lastIndex = l;
        var u = o.exec(this.__input);
        return u && !(s && o.sticky) && u.index !== l && (u = null), u;
      }, a.prototype.test = function(o, l) {
        return l = l || 0, l += this.__position, l >= 0 && l < this.__input_length ? !!this.__match(o, l) : !1;
      }, a.prototype.testChar = function(o, l) {
        var u = this.peek(l);
        return o.lastIndex = 0, u !== null && o.test(u);
      }, a.prototype.match = function(o) {
        var l = this.__match(o, this.__position);
        return l ? this.__position += l[0].length : l = null, l;
      }, a.prototype.read = function(o, l, u) {
        var c = "", f;
        return o && (f = this.match(o), f && (c += f[0])), l && (f || !o) && (c += this.readUntil(l, u)), c;
      }, a.prototype.readUntil = function(o, l) {
        var u = "", c = this.__position;
        o.lastIndex = this.__position;
        var f = o.exec(this.__input);
        return f ? (c = f.index, l && (c += f[0].length)) : c = this.__input_length, u = this.__input.substring(this.__position, c), this.__position = c, u;
      }, a.prototype.readUntilAfter = function(o) {
        return this.readUntil(o, !0);
      }, a.prototype.get_regexp = function(o, l) {
        var u = null, c = "g";
        return l && s && (c = "y"), typeof o == "string" && o !== "" ? u = new RegExp(o, c) : o && (u = new RegExp(o.source, c)), u;
      }, a.prototype.get_literal_regexp = function(o) {
        return RegExp(o.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"));
      }, a.prototype.peekUntilAfter = function(o) {
        var l = this.__position, u = this.readUntilAfter(o);
        return this.__position = l, u;
      }, a.prototype.lookBack = function(o) {
        var l = this.__position - 1;
        return l >= o.length && this.__input.substring(l - o.length, l).toLowerCase() === o;
      }, n.exports.InputScanner = a;
    },
    /* 9 */
    /***/
    function(n, s, a) {
      var o = a(8).InputScanner, l = a(3).Token, u = a(10).TokenStream, c = a(11).WhitespacePattern, f = {
        START: "TK_START",
        RAW: "TK_RAW",
        EOF: "TK_EOF"
      }, h = function(m, g) {
        this._input = new o(m), this._options = g || {}, this.__tokens = null, this._patterns = {}, this._patterns.whitespace = new c(this._input);
      };
      h.prototype.tokenize = function() {
        this._input.restart(), this.__tokens = new u(), this._reset();
        for (var m, g = new l(f.START, ""), y = null, v = [], T = new u(); g.type !== f.EOF; ) {
          for (m = this._get_next_token(g, y); this._is_comment(m); )
            T.add(m), m = this._get_next_token(g, y);
          T.isEmpty() || (m.comments_before = T, T = new u()), m.parent = y, this._is_opening(m) ? (v.push(y), y = m) : y && this._is_closing(m, y) && (m.opened = y, y.closed = m, y = v.pop(), m.parent = y), m.previous = g, g.next = m, this.__tokens.add(m), g = m;
        }
        return this.__tokens;
      }, h.prototype._is_first_token = function() {
        return this.__tokens.isEmpty();
      }, h.prototype._reset = function() {
      }, h.prototype._get_next_token = function(m, g) {
        this._readWhitespace();
        var y = this._input.read(/.+/g);
        return y ? this._create_token(f.RAW, y) : this._create_token(f.EOF, "");
      }, h.prototype._is_comment = function(m) {
        return !1;
      }, h.prototype._is_opening = function(m) {
        return !1;
      }, h.prototype._is_closing = function(m, g) {
        return !1;
      }, h.prototype._create_token = function(m, g) {
        var y = new l(
          m,
          g,
          this._patterns.whitespace.newline_count,
          this._patterns.whitespace.whitespace_before_token
        );
        return y;
      }, h.prototype._readWhitespace = function() {
        return this._patterns.whitespace.read();
      }, n.exports.Tokenizer = h, n.exports.TOKEN = f;
    },
    /* 10 */
    /***/
    function(n) {
      function s(a) {
        this.__tokens = [], this.__tokens_length = this.__tokens.length, this.__position = 0, this.__parent_token = a;
      }
      s.prototype.restart = function() {
        this.__position = 0;
      }, s.prototype.isEmpty = function() {
        return this.__tokens_length === 0;
      }, s.prototype.hasNext = function() {
        return this.__position < this.__tokens_length;
      }, s.prototype.next = function() {
        var a = null;
        return this.hasNext() && (a = this.__tokens[this.__position], this.__position += 1), a;
      }, s.prototype.peek = function(a) {
        var o = null;
        return a = a || 0, a += this.__position, a >= 0 && a < this.__tokens_length && (o = this.__tokens[a]), o;
      }, s.prototype.add = function(a) {
        this.__parent_token && (a.parent = this.__parent_token), this.__tokens.push(a), this.__tokens_length += 1;
      }, n.exports.TokenStream = s;
    },
    /* 11 */
    /***/
    function(n, s, a) {
      var o = a(12).Pattern;
      function l(u, c) {
        o.call(this, u, c), c ? this._line_regexp = this._input.get_regexp(c._line_regexp) : this.__set_whitespace_patterns("", ""), this.newline_count = 0, this.whitespace_before_token = "";
      }
      l.prototype = new o(), l.prototype.__set_whitespace_patterns = function(u, c) {
        u += "\\t ", c += "\\n\\r", this._match_pattern = this._input.get_regexp(
          "[" + u + c + "]+",
          !0
        ), this._newline_regexp = this._input.get_regexp(
          "\\r\\n|[" + c + "]"
        );
      }, l.prototype.read = function() {
        this.newline_count = 0, this.whitespace_before_token = "";
        var u = this._input.read(this._match_pattern);
        if (u === " ")
          this.whitespace_before_token = " ";
        else if (u) {
          var c = this.__split(this._newline_regexp, u);
          this.newline_count = c.length - 1, this.whitespace_before_token = c[this.newline_count];
        }
        return u;
      }, l.prototype.matching = function(u, c) {
        var f = this._create();
        return f.__set_whitespace_patterns(u, c), f._update(), f;
      }, l.prototype._create = function() {
        return new l(this._input, this);
      }, l.prototype.__split = function(u, c) {
        u.lastIndex = 0;
        for (var f = 0, h = [], m = u.exec(c); m; )
          h.push(c.substring(f, m.index)), f = m.index + m[0].length, m = u.exec(c);
        return f < c.length ? h.push(c.substring(f, c.length)) : h.push(""), h;
      }, n.exports.WhitespacePattern = l;
    },
    /* 12 */
    /***/
    function(n) {
      function s(a, o) {
        this._input = a, this._starting_pattern = null, this._match_pattern = null, this._until_pattern = null, this._until_after = !1, o && (this._starting_pattern = this._input.get_regexp(o._starting_pattern, !0), this._match_pattern = this._input.get_regexp(o._match_pattern, !0), this._until_pattern = this._input.get_regexp(o._until_pattern), this._until_after = o._until_after);
      }
      s.prototype.read = function() {
        var a = this._input.read(this._starting_pattern);
        return (!this._starting_pattern || a) && (a += this._input.read(this._match_pattern, this._until_pattern, this._until_after)), a;
      }, s.prototype.read_match = function() {
        return this._input.match(this._match_pattern);
      }, s.prototype.until_after = function(a) {
        var o = this._create();
        return o._until_after = !0, o._until_pattern = this._input.get_regexp(a), o._update(), o;
      }, s.prototype.until = function(a) {
        var o = this._create();
        return o._until_after = !1, o._until_pattern = this._input.get_regexp(a), o._update(), o;
      }, s.prototype.starting_with = function(a) {
        var o = this._create();
        return o._starting_pattern = this._input.get_regexp(a, !0), o._update(), o;
      }, s.prototype.matching = function(a) {
        var o = this._create();
        return o._match_pattern = this._input.get_regexp(a, !0), o._update(), o;
      }, s.prototype._create = function() {
        return new s(this._input, this);
      }, s.prototype._update = function() {
      }, n.exports.Pattern = s;
    },
    /* 13 */
    /***/
    function(n) {
      function s(a, o) {
        a = typeof a == "string" ? a : a.source, o = typeof o == "string" ? o : o.source, this.__directives_block_pattern = new RegExp(a + / beautify( \w+[:]\w+)+ /.source + o, "g"), this.__directive_pattern = / (\w+)[:](\w+)/g, this.__directives_end_ignore_pattern = new RegExp(a + /\sbeautify\signore:end\s/.source + o, "g");
      }
      s.prototype.get_directives = function(a) {
        if (!a.match(this.__directives_block_pattern))
          return null;
        var o = {};
        this.__directive_pattern.lastIndex = 0;
        for (var l = this.__directive_pattern.exec(a); l; )
          o[l[1]] = l[2], l = this.__directive_pattern.exec(a);
        return o;
      }, s.prototype.readIgnored = function(a) {
        return a.readUntilAfter(this.__directives_end_ignore_pattern);
      }, n.exports.Directives = s;
    },
    /* 14 */
    /***/
    function(n, s, a) {
      var o = a(12).Pattern, l = {
        django: !1,
        erb: !1,
        handlebars: !1,
        php: !1,
        smarty: !1,
        angular: !1
      };
      function u(c, f) {
        o.call(this, c, f), this.__template_pattern = null, this._disabled = Object.assign({}, l), this._excluded = Object.assign({}, l), f && (this.__template_pattern = this._input.get_regexp(f.__template_pattern), this._excluded = Object.assign(this._excluded, f._excluded), this._disabled = Object.assign(this._disabled, f._disabled));
        var h = new o(c);
        this.__patterns = {
          handlebars_comment: h.starting_with(/{{!--/).until_after(/--}}/),
          handlebars_unescaped: h.starting_with(/{{{/).until_after(/}}}/),
          handlebars: h.starting_with(/{{/).until_after(/}}/),
          php: h.starting_with(/<\?(?:[= ]|php)/).until_after(/\?>/),
          erb: h.starting_with(/<%[^%]/).until_after(/[^%]%>/),
          // django coflicts with handlebars a bit.
          django: h.starting_with(/{%/).until_after(/%}/),
          django_value: h.starting_with(/{{/).until_after(/}}/),
          django_comment: h.starting_with(/{#/).until_after(/#}/),
          smarty: h.starting_with(/{(?=[^}{\s\n])/).until_after(/[^\s\n]}/),
          smarty_comment: h.starting_with(/{\*/).until_after(/\*}/),
          smarty_literal: h.starting_with(/{literal}/).until_after(/{\/literal}/)
        };
      }
      u.prototype = new o(), u.prototype._create = function() {
        return new u(this._input, this);
      }, u.prototype._update = function() {
        this.__set_templated_pattern();
      }, u.prototype.disable = function(c) {
        var f = this._create();
        return f._disabled[c] = !0, f._update(), f;
      }, u.prototype.read_options = function(c) {
        var f = this._create();
        for (var h in l)
          f._disabled[h] = c.templating.indexOf(h) === -1;
        return f._update(), f;
      }, u.prototype.exclude = function(c) {
        var f = this._create();
        return f._excluded[c] = !0, f._update(), f;
      }, u.prototype.read = function() {
        var c = "";
        this._match_pattern ? c = this._input.read(this._starting_pattern) : c = this._input.read(this._starting_pattern, this.__template_pattern);
        for (var f = this._read_template(); f; )
          this._match_pattern ? f += this._input.read(this._match_pattern) : f += this._input.readUntil(this.__template_pattern), c += f, f = this._read_template();
        return this._until_after && (c += this._input.readUntilAfter(this._until_pattern)), c;
      }, u.prototype.__set_templated_pattern = function() {
        var c = [];
        this._disabled.php || c.push(this.__patterns.php._starting_pattern.source), this._disabled.handlebars || c.push(this.__patterns.handlebars._starting_pattern.source), this._disabled.erb || c.push(this.__patterns.erb._starting_pattern.source), this._disabled.django || (c.push(this.__patterns.django._starting_pattern.source), c.push(this.__patterns.django_value._starting_pattern.source), c.push(this.__patterns.django_comment._starting_pattern.source)), this._disabled.smarty || c.push(this.__patterns.smarty._starting_pattern.source), this._until_pattern && c.push(this._until_pattern.source), this.__template_pattern = this._input.get_regexp("(?:" + c.join("|") + ")");
      }, u.prototype._read_template = function() {
        var c = "", f = this._input.peek();
        if (f === "<") {
          var h = this._input.peek(1);
          !this._disabled.php && !this._excluded.php && h === "?" && (c = c || this.__patterns.php.read()), !this._disabled.erb && !this._excluded.erb && h === "%" && (c = c || this.__patterns.erb.read());
        } else
          f === "{" && (!this._disabled.handlebars && !this._excluded.handlebars && (c = c || this.__patterns.handlebars_comment.read(), c = c || this.__patterns.handlebars_unescaped.read(), c = c || this.__patterns.handlebars.read()), this._disabled.django || (!this._excluded.django && !this._excluded.handlebars && (c = c || this.__patterns.django_value.read()), this._excluded.django || (c = c || this.__patterns.django_comment.read(), c = c || this.__patterns.django.read())), this._disabled.smarty || this._disabled.django && this._disabled.handlebars && (c = c || this.__patterns.smarty_comment.read(), c = c || this.__patterns.smarty_literal.read(), c = c || this.__patterns.smarty.read()));
        return c;
      }, n.exports.TemplatablePattern = u;
    },
    ,
    ,
    ,
    /* 18 */
    /***/
    function(n, s, a) {
      var o = a(19).Beautifier, l = a(20).Options;
      function u(c, f, h, m) {
        var g = new o(c, f, h, m);
        return g.beautify();
      }
      n.exports = u, n.exports.defaultOptions = function() {
        return new l();
      };
    },
    /* 19 */
    /***/
    function(n, s, a) {
      var o = a(20).Options, l = a(2).Output, u = a(21).Tokenizer, c = a(21).TOKEN, f = /\r\n|[\r\n]/, h = /\r\n|[\r\n]/g, m = function(w, A) {
        this.indent_level = 0, this.alignment_size = 0, this.max_preserve_newlines = w.max_preserve_newlines, this.preserve_newlines = w.preserve_newlines, this._output = new l(w, A);
      };
      m.prototype.current_line_has_match = function(w) {
        return this._output.current_line.has_match(w);
      }, m.prototype.set_space_before_token = function(w, A) {
        this._output.space_before_token = w, this._output.non_breaking_space = A;
      }, m.prototype.set_wrap_point = function() {
        this._output.set_indent(this.indent_level, this.alignment_size), this._output.set_wrap_point();
      }, m.prototype.add_raw_token = function(w) {
        this._output.add_raw_token(w);
      }, m.prototype.print_preserved_newlines = function(w) {
        var A = 0;
        w.type !== c.TEXT && w.previous.type !== c.TEXT && (A = w.newlines ? 1 : 0), this.preserve_newlines && (A = w.newlines < this.max_preserve_newlines + 1 ? w.newlines : this.max_preserve_newlines + 1);
        for (var I = 0; I < A; I++)
          this.print_newline(I > 0);
        return A !== 0;
      }, m.prototype.traverse_whitespace = function(w) {
        return w.whitespace_before || w.newlines ? (this.print_preserved_newlines(w) || (this._output.space_before_token = !0), !0) : !1;
      }, m.prototype.previous_token_wrapped = function() {
        return this._output.previous_token_wrapped;
      }, m.prototype.print_newline = function(w) {
        this._output.add_new_line(w);
      }, m.prototype.print_token = function(w) {
        w.text && (this._output.set_indent(this.indent_level, this.alignment_size), this._output.add_token(w.text));
      }, m.prototype.indent = function() {
        this.indent_level++;
      }, m.prototype.deindent = function() {
        this.indent_level > 0 && (this.indent_level--, this._output.set_indent(this.indent_level, this.alignment_size));
      }, m.prototype.get_full_indent = function(w) {
        return w = this.indent_level + (w || 0), w < 1 ? "" : this._output.get_indent_string(w);
      };
      var g = function(w) {
        for (var A = null, I = w.next; I.type !== c.EOF && w.closed !== I; ) {
          if (I.type === c.ATTRIBUTE && I.text === "type") {
            I.next && I.next.type === c.EQUALS && I.next.next && I.next.next.type === c.VALUE && (A = I.next.next.text);
            break;
          }
          I = I.next;
        }
        return A;
      }, y = function(w, A) {
        var I = null, L = null;
        return A.closed ? (w === "script" ? I = "text/javascript" : w === "style" && (I = "text/css"), I = g(A) || I, I.search("text/css") > -1 ? L = "css" : I.search(/module|((text|application|dojo)\/(x-)?(javascript|ecmascript|jscript|livescript|(ld\+)?json|method|aspect))/) > -1 ? L = "javascript" : I.search(/(text|application|dojo)\/(x-)?(html)/) > -1 ? L = "html" : I.search(/test\/null/) > -1 && (L = "null"), L) : null;
      };
      function v(w, A) {
        return A.indexOf(w) !== -1;
      }
      function T(w, A, I) {
        this.parent = w || null, this.tag = A ? A.tag_name : "", this.indent_level = I || 0, this.parser_token = A || null;
      }
      function S(w) {
        this._printer = w, this._current_frame = null;
      }
      S.prototype.get_parser_token = function() {
        return this._current_frame ? this._current_frame.parser_token : null;
      }, S.prototype.record_tag = function(w) {
        var A = new T(this._current_frame, w, this._printer.indent_level);
        this._current_frame = A;
      }, S.prototype._try_pop_frame = function(w) {
        var A = null;
        return w && (A = w.parser_token, this._printer.indent_level = w.indent_level, this._current_frame = w.parent), A;
      }, S.prototype._get_frame = function(w, A) {
        for (var I = this._current_frame; I && w.indexOf(I.tag) === -1; ) {
          if (A && A.indexOf(I.tag) !== -1) {
            I = null;
            break;
          }
          I = I.parent;
        }
        return I;
      }, S.prototype.try_pop = function(w, A) {
        var I = this._get_frame([w], A);
        return this._try_pop_frame(I);
      }, S.prototype.indent_to_tag = function(w) {
        var A = this._get_frame(w);
        A && (this._printer.indent_level = A.indent_level);
      };
      function P(w, A, I, L) {
        this._source_text = w || "", A = A || {}, this._js_beautify = I, this._css_beautify = L, this._tag_stack = null;
        var O = new o(A, "html");
        this._options = O, this._is_wrap_attributes_force = this._options.wrap_attributes.substr(0, 5) === "force", this._is_wrap_attributes_force_expand_multiline = this._options.wrap_attributes === "force-expand-multiline", this._is_wrap_attributes_force_aligned = this._options.wrap_attributes === "force-aligned", this._is_wrap_attributes_aligned_multiple = this._options.wrap_attributes === "aligned-multiple", this._is_wrap_attributes_preserve = this._options.wrap_attributes.substr(0, 8) === "preserve", this._is_wrap_attributes_preserve_aligned = this._options.wrap_attributes === "preserve-aligned";
      }
      P.prototype.beautify = function() {
        if (this._options.disabled)
          return this._source_text;
        var w = this._source_text, A = this._options.eol;
        this._options.eol === "auto" && (A = "\n", w && f.test(w) && (A = w.match(f)[0])), w = w.replace(h, "\n");
        var I = w.match(/^[\t ]*/)[0], L = {
          text: "",
          type: ""
        }, O = new x(), F = new m(this._options, I), q = new u(w, this._options).tokenize();
        this._tag_stack = new S(F);
        for (var j = null, N = q.next(); N.type !== c.EOF; )
          N.type === c.TAG_OPEN || N.type === c.COMMENT ? (j = this._handle_tag_open(F, N, O, L, q), O = j) : N.type === c.ATTRIBUTE || N.type === c.EQUALS || N.type === c.VALUE || N.type === c.TEXT && !O.tag_complete ? j = this._handle_inside_tag(F, N, O, L) : N.type === c.TAG_CLOSE ? j = this._handle_tag_close(F, N, O) : N.type === c.TEXT ? j = this._handle_text(F, N, O) : N.type === c.CONTROL_FLOW_OPEN ? j = this._handle_control_flow_open(F, N) : N.type === c.CONTROL_FLOW_CLOSE ? j = this._handle_control_flow_close(F, N) : F.add_raw_token(N), L = j, N = q.next();
        var M = F._output.get_code(A);
        return M;
      }, P.prototype._handle_control_flow_open = function(w, A) {
        var I = {
          text: A.text,
          type: A.type
        };
        return w.set_space_before_token(A.newlines || A.whitespace_before !== "", !0), A.newlines ? w.print_preserved_newlines(A) : w.set_space_before_token(A.newlines || A.whitespace_before !== "", !0), w.print_token(A), w.indent(), I;
      }, P.prototype._handle_control_flow_close = function(w, A) {
        var I = {
          text: A.text,
          type: A.type
        };
        return w.deindent(), A.newlines ? w.print_preserved_newlines(A) : w.set_space_before_token(A.newlines || A.whitespace_before !== "", !0), w.print_token(A), I;
      }, P.prototype._handle_tag_close = function(w, A, I) {
        var L = {
          text: A.text,
          type: A.type
        };
        return w.alignment_size = 0, I.tag_complete = !0, w.set_space_before_token(A.newlines || A.whitespace_before !== "", !0), I.is_unformatted ? w.add_raw_token(A) : (I.tag_start_char === "<" && (w.set_space_before_token(A.text[0] === "/", !0), this._is_wrap_attributes_force_expand_multiline && I.has_wrapped_attrs && w.print_newline(!1)), w.print_token(A)), I.indent_content && !(I.is_unformatted || I.is_content_unformatted) && (w.indent(), I.indent_content = !1), !I.is_inline_element && !(I.is_unformatted || I.is_content_unformatted) && w.set_wrap_point(), L;
      }, P.prototype._handle_inside_tag = function(w, A, I, L) {
        var O = I.has_wrapped_attrs, F = {
          text: A.text,
          type: A.type
        };
        return w.set_space_before_token(A.newlines || A.whitespace_before !== "", !0), I.is_unformatted ? w.add_raw_token(A) : I.tag_start_char === "{" && A.type === c.TEXT ? w.print_preserved_newlines(A) ? (A.newlines = 0, w.add_raw_token(A)) : w.print_token(A) : (A.type === c.ATTRIBUTE ? w.set_space_before_token(!0) : (A.type === c.EQUALS || A.type === c.VALUE && A.previous.type === c.EQUALS) && w.set_space_before_token(!1), A.type === c.ATTRIBUTE && I.tag_start_char === "<" && ((this._is_wrap_attributes_preserve || this._is_wrap_attributes_preserve_aligned) && (w.traverse_whitespace(A), O = O || A.newlines !== 0), this._is_wrap_attributes_force && I.attr_count >= this._options.wrap_attributes_min_attrs && (L.type !== c.TAG_OPEN || // ie. second attribute and beyond
        this._is_wrap_attributes_force_expand_multiline) && (w.print_newline(!1), O = !0)), w.print_token(A), O = O || w.previous_token_wrapped(), I.has_wrapped_attrs = O), F;
      }, P.prototype._handle_text = function(w, A, I) {
        var L = {
          text: A.text,
          type: "TK_CONTENT"
        };
        return I.custom_beautifier_name ? this._print_custom_beatifier_text(w, A, I) : I.is_unformatted || I.is_content_unformatted ? w.add_raw_token(A) : (w.traverse_whitespace(A), w.print_token(A)), L;
      }, P.prototype._print_custom_beatifier_text = function(w, A, I) {
        var L = this;
        if (A.text !== "") {
          var O = A.text, F, q = 1, j = "", N = "";
          I.custom_beautifier_name === "javascript" && typeof this._js_beautify == "function" ? F = this._js_beautify : I.custom_beautifier_name === "css" && typeof this._css_beautify == "function" ? F = this._css_beautify : I.custom_beautifier_name === "html" && (F = function(z, W) {
            var Y = new P(z, W, L._js_beautify, L._css_beautify);
            return Y.beautify();
          }), this._options.indent_scripts === "keep" ? q = 0 : this._options.indent_scripts === "separate" && (q = -w.indent_level);
          var M = w.get_full_indent(q);
          if (O = O.replace(/\n[ \t]*$/, ""), I.custom_beautifier_name !== "html" && O[0] === "<" && O.match(/^(<!--|<!\[CDATA\[)/)) {
            var R = /^(<!--[^\n]*|<!\[CDATA\[)(\n?)([ \t\n]*)([\s\S]*)(-->|]]>)$/.exec(O);
            if (!R) {
              w.add_raw_token(A);
              return;
            }
            j = M + R[1] + "\n", O = R[4], R[5] && (N = M + R[5]), O = O.replace(/\n[ \t]*$/, ""), (R[2] || R[3].indexOf("\n") !== -1) && (R = R[3].match(/[ \t]+$/), R && (A.whitespace_before = R[0]));
          }
          if (O)
            if (F) {
              var $ = function() {
                this.eol = "\n";
              };
              $.prototype = this._options.raw_options;
              var V = new $();
              O = F(M + O, V);
            } else {
              var K = A.whitespace_before;
              K && (O = O.replace(new RegExp("\n(" + K + ")?", "g"), "\n")), O = M + O.replace(/\n/g, "\n" + M);
            }
          j && (O ? O = j + O + "\n" + N : O = j + N), w.print_newline(!1), O && (A.text = O, A.whitespace_before = "", A.newlines = 0, w.add_raw_token(A), w.print_newline(!0));
        }
      }, P.prototype._handle_tag_open = function(w, A, I, L, O) {
        var F = this._get_tag_open_token(A);
        if ((I.is_unformatted || I.is_content_unformatted) && !I.is_empty_element && A.type === c.TAG_OPEN && !F.is_start_tag ? (w.add_raw_token(A), F.start_tag_token = this._tag_stack.try_pop(F.tag_name)) : (w.traverse_whitespace(A), this._set_tag_position(w, A, F, I, L), F.is_inline_element || w.set_wrap_point(), w.print_token(A)), F.is_start_tag && this._is_wrap_attributes_force) {
          var q = 0, j;
          do
            j = O.peek(q), j.type === c.ATTRIBUTE && (F.attr_count += 1), q += 1;
          while (j.type !== c.EOF && j.type !== c.TAG_CLOSE);
        }
        return (this._is_wrap_attributes_force_aligned || this._is_wrap_attributes_aligned_multiple || this._is_wrap_attributes_preserve_aligned) && (F.alignment_size = A.text.length + 1), !F.tag_complete && !F.is_unformatted && (w.alignment_size = F.alignment_size), F;
      };
      var x = function(w, A) {
        if (this.parent = w || null, this.text = "", this.type = "TK_TAG_OPEN", this.tag_name = "", this.is_inline_element = !1, this.is_unformatted = !1, this.is_content_unformatted = !1, this.is_empty_element = !1, this.is_start_tag = !1, this.is_end_tag = !1, this.indent_content = !1, this.multiline_content = !1, this.custom_beautifier_name = null, this.start_tag_token = null, this.attr_count = 0, this.has_wrapped_attrs = !1, this.alignment_size = 0, this.tag_complete = !1, this.tag_start_char = "", this.tag_check = "", !A)
          this.tag_complete = !0;
        else {
          var I;
          this.tag_start_char = A.text[0], this.text = A.text, this.tag_start_char === "<" ? (I = A.text.match(/^<([^\s>]*)/), this.tag_check = I ? I[1] : "") : (I = A.text.match(/^{{~?(?:[\^]|#\*?)?([^\s}]+)/), this.tag_check = I ? I[1] : "", (A.text.startsWith("{{#>") || A.text.startsWith("{{~#>")) && this.tag_check[0] === ">" && (this.tag_check === ">" && A.next !== null ? this.tag_check = A.next.text.split(" ")[0] : this.tag_check = A.text.split(">")[1])), this.tag_check = this.tag_check.toLowerCase(), A.type === c.COMMENT && (this.tag_complete = !0), this.is_start_tag = this.tag_check.charAt(0) !== "/", this.tag_name = this.is_start_tag ? this.tag_check : this.tag_check.substr(1), this.is_end_tag = !this.is_start_tag || A.closed && A.closed.text === "/>";
          var L = 2;
          this.tag_start_char === "{" && this.text.length >= 3 && this.text.charAt(2) === "~" && (L = 3), this.is_end_tag = this.is_end_tag || this.tag_start_char === "{" && (this.text.length < 3 || /[^#\^]/.test(this.text.charAt(L)));
        }
      };
      P.prototype._get_tag_open_token = function(w) {
        var A = new x(this._tag_stack.get_parser_token(), w);
        return A.alignment_size = this._options.wrap_attributes_indent_size, A.is_end_tag = A.is_end_tag || v(A.tag_check, this._options.void_elements), A.is_empty_element = A.tag_complete || A.is_start_tag && A.is_end_tag, A.is_unformatted = !A.tag_complete && v(A.tag_check, this._options.unformatted), A.is_content_unformatted = !A.is_empty_element && v(A.tag_check, this._options.content_unformatted), A.is_inline_element = v(A.tag_name, this._options.inline) || this._options.inline_custom_elements && A.tag_name.includes("-") || A.tag_start_char === "{", A;
      }, P.prototype._set_tag_position = function(w, A, I, L, O) {
        if (I.is_empty_element || (I.is_end_tag ? I.start_tag_token = this._tag_stack.try_pop(I.tag_name) : (this._do_optional_end_element(I) && (I.is_inline_element || w.print_newline(!1)), this._tag_stack.record_tag(I), (I.tag_name === "script" || I.tag_name === "style") && !(I.is_unformatted || I.is_content_unformatted) && (I.custom_beautifier_name = y(I.tag_check, A)))), v(I.tag_check, this._options.extra_liners) && (w.print_newline(!1), w._output.just_added_blankline() || w.print_newline(!0)), I.is_empty_element) {
          if (I.tag_start_char === "{" && I.tag_check === "else") {
            this._tag_stack.indent_to_tag(["if", "unless", "each"]), I.indent_content = !0;
            var F = w.current_line_has_match(/{{#if/);
            F || w.print_newline(!1);
          }
          I.tag_name === "!--" && O.type === c.TAG_CLOSE && L.is_end_tag && I.text.indexOf("\n") === -1 || (I.is_inline_element || I.is_unformatted || w.print_newline(!1), this._calcluate_parent_multiline(w, I));
        } else if (I.is_end_tag) {
          var q = !1;
          q = I.start_tag_token && I.start_tag_token.multiline_content, q = q || !I.is_inline_element && !(L.is_inline_element || L.is_unformatted) && !(O.type === c.TAG_CLOSE && I.start_tag_token === L) && O.type !== "TK_CONTENT", (I.is_content_unformatted || I.is_unformatted) && (q = !1), q && w.print_newline(!1);
        } else
          I.indent_content = !I.custom_beautifier_name, I.tag_start_char === "<" && (I.tag_name === "html" ? I.indent_content = this._options.indent_inner_html : I.tag_name === "head" ? I.indent_content = this._options.indent_head_inner_html : I.tag_name === "body" && (I.indent_content = this._options.indent_body_inner_html)), !(I.is_inline_element || I.is_unformatted) && (O.type !== "TK_CONTENT" || I.is_content_unformatted) && w.print_newline(!1), this._calcluate_parent_multiline(w, I);
      }, P.prototype._calcluate_parent_multiline = function(w, A) {
        A.parent && w._output.just_added_newline() && !((A.is_inline_element || A.is_unformatted) && A.parent.is_inline_element) && (A.parent.multiline_content = !0);
      };
      var C = ["address", "article", "aside", "blockquote", "details", "div", "dl", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "header", "hr", "main", "menu", "nav", "ol", "p", "pre", "section", "table", "ul"], D = ["a", "audio", "del", "ins", "map", "noscript", "video"];
      P.prototype._do_optional_end_element = function(w) {
        var A = null;
        if (!(w.is_empty_element || !w.is_start_tag || !w.parent)) {
          if (w.tag_name === "body")
            A = A || this._tag_stack.try_pop("head");
          else if (w.tag_name === "li")
            A = A || this._tag_stack.try_pop("li", ["ol", "ul", "menu"]);
          else if (w.tag_name === "dd" || w.tag_name === "dt")
            A = A || this._tag_stack.try_pop("dt", ["dl"]), A = A || this._tag_stack.try_pop("dd", ["dl"]);
          else if (w.parent.tag_name === "p" && C.indexOf(w.tag_name) !== -1) {
            var I = w.parent.parent;
            (!I || D.indexOf(I.tag_name) === -1) && (A = A || this._tag_stack.try_pop("p"));
          } else
            w.tag_name === "rp" || w.tag_name === "rt" ? (A = A || this._tag_stack.try_pop("rt", ["ruby", "rtc"]), A = A || this._tag_stack.try_pop("rp", ["ruby", "rtc"])) : w.tag_name === "optgroup" ? A = A || this._tag_stack.try_pop("optgroup", ["select"]) : w.tag_name === "option" ? A = A || this._tag_stack.try_pop("option", ["select", "datalist", "optgroup"]) : w.tag_name === "colgroup" ? A = A || this._tag_stack.try_pop("caption", ["table"]) : w.tag_name === "thead" ? (A = A || this._tag_stack.try_pop("caption", ["table"]), A = A || this._tag_stack.try_pop("colgroup", ["table"])) : w.tag_name === "tbody" || w.tag_name === "tfoot" ? (A = A || this._tag_stack.try_pop("caption", ["table"]), A = A || this._tag_stack.try_pop("colgroup", ["table"]), A = A || this._tag_stack.try_pop("thead", ["table"]), A = A || this._tag_stack.try_pop("tbody", ["table"])) : w.tag_name === "tr" ? (A = A || this._tag_stack.try_pop("caption", ["table"]), A = A || this._tag_stack.try_pop("colgroup", ["table"]), A = A || this._tag_stack.try_pop("tr", ["table", "thead", "tbody", "tfoot"])) : (w.tag_name === "th" || w.tag_name === "td") && (A = A || this._tag_stack.try_pop("td", ["table", "thead", "tbody", "tfoot", "tr"]), A = A || this._tag_stack.try_pop("th", ["table", "thead", "tbody", "tfoot", "tr"]));
          return w.parent = this._tag_stack.get_parser_token(), A;
        }
      }, n.exports.Beautifier = P;
    },
    /* 20 */
    /***/
    function(n, s, a) {
      var o = a(6).Options;
      function l(u) {
        o.call(this, u, "html"), this.templating.length === 1 && this.templating[0] === "auto" && (this.templating = ["django", "erb", "handlebars", "php"]), this.indent_inner_html = this._get_boolean("indent_inner_html"), this.indent_body_inner_html = this._get_boolean("indent_body_inner_html", !0), this.indent_head_inner_html = this._get_boolean("indent_head_inner_html", !0), this.indent_handlebars = this._get_boolean("indent_handlebars", !0), this.wrap_attributes = this._get_selection(
          "wrap_attributes",
          ["auto", "force", "force-aligned", "force-expand-multiline", "aligned-multiple", "preserve", "preserve-aligned"]
        ), this.wrap_attributes_min_attrs = this._get_number("wrap_attributes_min_attrs", 2), this.wrap_attributes_indent_size = this._get_number("wrap_attributes_indent_size", this.indent_size), this.extra_liners = this._get_array("extra_liners", ["head", "body", "/html"]), this.inline = this._get_array("inline", [
          "a",
          "abbr",
          "area",
          "audio",
          "b",
          "bdi",
          "bdo",
          "br",
          "button",
          "canvas",
          "cite",
          "code",
          "data",
          "datalist",
          "del",
          "dfn",
          "em",
          "embed",
          "i",
          "iframe",
          "img",
          "input",
          "ins",
          "kbd",
          "keygen",
          "label",
          "map",
          "mark",
          "math",
          "meter",
          "noscript",
          "object",
          "output",
          "progress",
          "q",
          "ruby",
          "s",
          "samp",
          /* 'script', */
          "select",
          "small",
          "span",
          "strong",
          "sub",
          "sup",
          "svg",
          "template",
          "textarea",
          "time",
          "u",
          "var",
          "video",
          "wbr",
          "text",
          // obsolete inline tags
          "acronym",
          "big",
          "strike",
          "tt"
        ]), this.inline_custom_elements = this._get_boolean("inline_custom_elements", !0), this.void_elements = this._get_array("void_elements", [
          // HTLM void elements - aka self-closing tags - aka singletons
          // https://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements
          "area",
          "base",
          "br",
          "col",
          "embed",
          "hr",
          "img",
          "input",
          "keygen",
          "link",
          "menuitem",
          "meta",
          "param",
          "source",
          "track",
          "wbr",
          // NOTE: Optional tags are too complex for a simple list
          // they are hard coded in _do_optional_end_element
          // Doctype and xml elements
          "!doctype",
          "?xml",
          // obsolete tags
          // basefont: https://www.computerhope.com/jargon/h/html-basefont-tag.htm
          // isndex: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/isindex
          "basefont",
          "isindex"
        ]), this.unformatted = this._get_array("unformatted", []), this.content_unformatted = this._get_array("content_unformatted", [
          "pre",
          "textarea"
        ]), this.unformatted_content_delimiter = this._get_characters("unformatted_content_delimiter"), this.indent_scripts = this._get_selection("indent_scripts", ["normal", "keep", "separate"]);
      }
      l.prototype = new o(), n.exports.Options = l;
    },
    /* 21 */
    /***/
    function(n, s, a) {
      var o = a(9).Tokenizer, l = a(9).TOKEN, u = a(13).Directives, c = a(14).TemplatablePattern, f = a(12).Pattern, h = {
        TAG_OPEN: "TK_TAG_OPEN",
        TAG_CLOSE: "TK_TAG_CLOSE",
        CONTROL_FLOW_OPEN: "TK_CONTROL_FLOW_OPEN",
        CONTROL_FLOW_CLOSE: "TK_CONTROL_FLOW_CLOSE",
        ATTRIBUTE: "TK_ATTRIBUTE",
        EQUALS: "TK_EQUALS",
        VALUE: "TK_VALUE",
        COMMENT: "TK_COMMENT",
        TEXT: "TK_TEXT",
        UNKNOWN: "TK_UNKNOWN",
        START: l.START,
        RAW: l.RAW,
        EOF: l.EOF
      }, m = new u(/<\!--/, /-->/), g = function(y, v) {
        o.call(this, y, v), this._current_tag_name = "";
        var T = new c(this._input).read_options(this._options), S = new f(this._input);
        if (this.__patterns = {
          word: T.until(/[\n\r\t <]/),
          word_control_flow_close_excluded: T.until(/[\n\r\t <}]/),
          single_quote: T.until_after(/'/),
          double_quote: T.until_after(/"/),
          attribute: T.until(/[\n\r\t =>]|\/>/),
          element_name: T.until(/[\n\r\t >\/]/),
          angular_control_flow_start: S.matching(/\@[a-zA-Z]+[^({]*[({]/),
          handlebars_comment: S.starting_with(/{{!--/).until_after(/--}}/),
          handlebars: S.starting_with(/{{/).until_after(/}}/),
          handlebars_open: S.until(/[\n\r\t }]/),
          handlebars_raw_close: S.until(/}}/),
          comment: S.starting_with(/<!--/).until_after(/-->/),
          cdata: S.starting_with(/<!\[CDATA\[/).until_after(/]]>/),
          // https://en.wikipedia.org/wiki/Conditional_comment
          conditional_comment: S.starting_with(/<!\[/).until_after(/]>/),
          processing: S.starting_with(/<\?/).until_after(/\?>/)
        }, this._options.indent_handlebars && (this.__patterns.word = this.__patterns.word.exclude("handlebars"), this.__patterns.word_control_flow_close_excluded = this.__patterns.word_control_flow_close_excluded.exclude("handlebars")), this._unformatted_content_delimiter = null, this._options.unformatted_content_delimiter) {
          var P = this._input.get_literal_regexp(this._options.unformatted_content_delimiter);
          this.__patterns.unformatted_content_delimiter = S.matching(P).until_after(P);
        }
      };
      g.prototype = new o(), g.prototype._is_comment = function(y) {
        return !1;
      }, g.prototype._is_opening = function(y) {
        return y.type === h.TAG_OPEN || y.type === h.CONTROL_FLOW_OPEN;
      }, g.prototype._is_closing = function(y, v) {
        return y.type === h.TAG_CLOSE && v && ((y.text === ">" || y.text === "/>") && v.text[0] === "<" || y.text === "}}" && v.text[0] === "{" && v.text[1] === "{") || y.type === h.CONTROL_FLOW_CLOSE && y.text === "}" && v.text.endsWith("{");
      }, g.prototype._reset = function() {
        this._current_tag_name = "";
      }, g.prototype._get_next_token = function(y, v) {
        var T = null;
        this._readWhitespace();
        var S = this._input.peek();
        return S === null ? this._create_token(h.EOF, "") : (T = T || this._read_open_handlebars(S, v), T = T || this._read_attribute(S, y, v), T = T || this._read_close(S, v), T = T || this._read_control_flows(S, v), T = T || this._read_raw_content(S, y, v), T = T || this._read_content_word(S, v), T = T || this._read_comment_or_cdata(S), T = T || this._read_processing(S), T = T || this._read_open(S, v), T = T || this._create_token(h.UNKNOWN, this._input.next()), T);
      }, g.prototype._read_comment_or_cdata = function(y) {
        var v = null, T = null, S = null;
        if (y === "<") {
          var P = this._input.peek(1);
          P === "!" && (T = this.__patterns.comment.read(), T ? (S = m.get_directives(T), S && S.ignore === "start" && (T += m.readIgnored(this._input))) : T = this.__patterns.cdata.read()), T && (v = this._create_token(h.COMMENT, T), v.directives = S);
        }
        return v;
      }, g.prototype._read_processing = function(y) {
        var v = null, T = null, S = null;
        if (y === "<") {
          var P = this._input.peek(1);
          (P === "!" || P === "?") && (T = this.__patterns.conditional_comment.read(), T = T || this.__patterns.processing.read()), T && (v = this._create_token(h.COMMENT, T), v.directives = S);
        }
        return v;
      }, g.prototype._read_open = function(y, v) {
        var T = null, S = null;
        return (!v || v.type === h.CONTROL_FLOW_OPEN) && y === "<" && (T = this._input.next(), this._input.peek() === "/" && (T += this._input.next()), T += this.__patterns.element_name.read(), S = this._create_token(h.TAG_OPEN, T)), S;
      }, g.prototype._read_open_handlebars = function(y, v) {
        var T = null, S = null;
        return (!v || v.type === h.CONTROL_FLOW_OPEN) && this._options.indent_handlebars && y === "{" && this._input.peek(1) === "{" && (this._input.peek(2) === "!" ? (T = this.__patterns.handlebars_comment.read(), T = T || this.__patterns.handlebars.read(), S = this._create_token(h.COMMENT, T)) : (T = this.__patterns.handlebars_open.read(), S = this._create_token(h.TAG_OPEN, T))), S;
      }, g.prototype._read_control_flows = function(y, v) {
        var T = "", S = null;
        if (!this._options.templating.includes("angular") || !this._options.indent_handlebars)
          return S;
        if (y === "@") {
          if (T = this.__patterns.angular_control_flow_start.read(), T === "")
            return S;
          for (var P = T.endsWith("(") ? 1 : 0, x = 0; !(T.endsWith("{") && P === x); ) {
            var C = this._input.next();
            if (C === null)
              break;
            C === "(" ? P++ : C === ")" && x++, T += C;
          }
          S = this._create_token(h.CONTROL_FLOW_OPEN, T);
        } else
          y === "}" && v && v.type === h.CONTROL_FLOW_OPEN && (T = this._input.next(), S = this._create_token(h.CONTROL_FLOW_CLOSE, T));
        return S;
      }, g.prototype._read_close = function(y, v) {
        var T = null, S = null;
        return v && v.type === h.TAG_OPEN && (v.text[0] === "<" && (y === ">" || y === "/" && this._input.peek(1) === ">") ? (T = this._input.next(), y === "/" && (T += this._input.next()), S = this._create_token(h.TAG_CLOSE, T)) : v.text[0] === "{" && y === "}" && this._input.peek(1) === "}" && (this._input.next(), this._input.next(), S = this._create_token(h.TAG_CLOSE, "}}"))), S;
      }, g.prototype._read_attribute = function(y, v, T) {
        var S = null, P = "";
        if (T && T.text[0] === "<")
          if (y === "=")
            S = this._create_token(h.EQUALS, this._input.next());
          else if (y === '"' || y === "'") {
            var x = this._input.next();
            y === '"' ? x += this.__patterns.double_quote.read() : x += this.__patterns.single_quote.read(), S = this._create_token(h.VALUE, x);
          } else
            P = this.__patterns.attribute.read(), P && (v.type === h.EQUALS ? S = this._create_token(h.VALUE, P) : S = this._create_token(h.ATTRIBUTE, P));
        return S;
      }, g.prototype._is_content_unformatted = function(y) {
        return this._options.void_elements.indexOf(y) === -1 && (this._options.content_unformatted.indexOf(y) !== -1 || this._options.unformatted.indexOf(y) !== -1);
      }, g.prototype._read_raw_content = function(y, v, T) {
        var S = "";
        if (T && T.text[0] === "{")
          S = this.__patterns.handlebars_raw_close.read();
        else if (v.type === h.TAG_CLOSE && v.opened.text[0] === "<" && v.text[0] !== "/") {
          var P = v.opened.text.substr(1).toLowerCase();
          if (P === "script" || P === "style") {
            var x = this._read_comment_or_cdata(y);
            if (x)
              return x.type = h.TEXT, x;
            S = this._input.readUntil(new RegExp("</" + P + "[\\n\\r\\t ]*?>", "ig"));
          } else
            this._is_content_unformatted(P) && (S = this._input.readUntil(new RegExp("</" + P + "[\\n\\r\\t ]*?>", "ig")));
        }
        return S ? this._create_token(h.TEXT, S) : null;
      }, g.prototype._read_content_word = function(y, v) {
        var T = "";
        if (this._options.unformatted_content_delimiter && y === this._options.unformatted_content_delimiter[0] && (T = this.__patterns.unformatted_content_delimiter.read()), T || (T = v && v.type === h.CONTROL_FLOW_OPEN ? this.__patterns.word_control_flow_close_excluded.read() : this.__patterns.word.read()), T)
          return this._create_token(h.TEXT, T);
      }, n.exports.Tokenizer = g, n.exports.TOKEN = h;
    }
    /******/
  ], t = {};
  function r(n) {
    var s = t[n];
    if (s !== void 0)
      return s.exports;
    var a = t[n] = {
      /******/
      // no module.id needed
      /******/
      // no module.loaded needed
      /******/
      exports: {}
      /******/
    };
    return e[n](a, a.exports, r), a.exports;
  }
  var i = r(18);
  _Se = i;
})();
function hdr(e, t) {
  return _Se(e, t, pdr, fdr);
}
function ddr(e, t, r) {
  let i = e.getText(), n = !0, s = 0;
  const a = r.tabSize || 4;
  if (t) {
    let u = e.offsetAt(t.start), c = u;
    for (; c > 0 && Zie(i, c - 1); )
      c--;
    c === 0 || Qie(i, c - 1) ? u = c : c < u && (u = c + 1);
    let f = e.offsetAt(t.end), h = f;
    for (; h < i.length && Zie(i, h); )
      h++;
    (h === i.length || Qie(i, h)) && (f = h), t = Xr.create(e.positionAt(u), e.positionAt(f));
    const m = i.substring(0, u);
    if (new RegExp(/.*[<][^>]*$/).test(m))
      return i = i.substring(u, f), [{
        range: t,
        newText: i
      }];
    if (n = f === i.length, i = i.substring(u, f), u !== 0) {
      const g = e.offsetAt(Un.create(t.start.line, 0));
      s = gdr(e.getText(), g, r);
    }
  } else
    t = Xr.create(Un.create(0, 0), e.positionAt(i.length));
  const o = {
    indent_size: a,
    indent_char: r.insertSpaces ? " " : "	",
    indent_empty_lines: mo(r, "indentEmptyLines", !1),
    wrap_line_length: mo(r, "wrapLineLength", 120),
    unformatted: RB(r, "unformatted", void 0),
    content_unformatted: RB(r, "contentUnformatted", void 0),
    indent_inner_html: mo(r, "indentInnerHtml", !1),
    preserve_newlines: mo(r, "preserveNewLines", !0),
    max_preserve_newlines: mo(r, "maxPreserveNewLines", 32786),
    indent_handlebars: mo(r, "indentHandlebars", !1),
    end_with_newline: n && mo(r, "endWithNewline", !1),
    extra_liners: RB(r, "extraLiners", void 0),
    wrap_attributes: mo(r, "wrapAttributes", "auto"),
    wrap_attributes_indent_size: mo(r, "wrapAttributesIndentSize", void 0),
    eol: "\n",
    indent_scripts: mo(r, "indentScripts", "normal"),
    templating: ydr(r, "all"),
    unformatted_content_delimiter: mo(r, "unformattedContentDelimiter", "")
  };
  let l = hdr(mdr(i), o);
  if (s > 0) {
    const u = r.insertSpaces ? Xie(" ", a * s) : Xie("	", s);
    l = l.split("\n").join("\n" + u), t.start.character === 0 && (l = u + l);
  }
  return [{
    range: t,
    newText: l
  }];
}
function mdr(e) {
  return e.replace(/^\s+/, "");
}
function mo(e, t, r) {
  if (e && e.hasOwnProperty(t)) {
    const i = e[t];
    if (i !== null)
      return i;
  }
  return r;
}
function RB(e, t, r) {
  const i = mo(e, t, null);
  return typeof i == "string" ? i.length > 0 ? i.split(",").map((n) => n.trim().toLowerCase()) : [] : r;
}
function ydr(e, t) {
  const r = mo(e, "templating", t);
  return r === !0 ? ["auto"] : r === !1 || r === t || Array.isArray(r) === !1 ? ["none"] : r;
}
function gdr(e, t, r) {
  let i = t, n = 0;
  const s = r.tabSize || 4;
  for (; i < e.length; ) {
    const a = e.charAt(i);
    if (a === " ")
      n++;
    else if (a === "	")
      n += s;
    else
      break;
    i++;
  }
  return Math.floor(n / s);
}
function Qie(e, t) {
  return "\r\n".indexOf(e.charAt(t)) !== -1;
}
function Zie(e, t) {
  return " 	".indexOf(e.charAt(t)) !== -1;
}
var ISe;
(() => {
  var e = { 470: (n) => {
    function s(l) {
      if (typeof l != "string")
        throw new TypeError("Path must be a string. Received " + JSON.stringify(l));
    }
    function a(l, u) {
      for (var c, f = "", h = 0, m = -1, g = 0, y = 0; y <= l.length; ++y) {
        if (y < l.length)
          c = l.charCodeAt(y);
        else {
          if (c === 47)
            break;
          c = 47;
        }
        if (c === 47) {
          if (!(m === y - 1 || g === 1))
            if (m !== y - 1 && g === 2) {
              if (f.length < 2 || h !== 2 || f.charCodeAt(f.length - 1) !== 46 || f.charCodeAt(f.length - 2) !== 46) {
                if (f.length > 2) {
                  var v = f.lastIndexOf("/");
                  if (v !== f.length - 1) {
                    v === -1 ? (f = "", h = 0) : h = (f = f.slice(0, v)).length - 1 - f.lastIndexOf("/"), m = y, g = 0;
                    continue;
                  }
                } else if (f.length === 2 || f.length === 1) {
                  f = "", h = 0, m = y, g = 0;
                  continue;
                }
              }
              u && (f.length > 0 ? f += "/.." : f = "..", h = 2);
            } else
              f.length > 0 ? f += "/" + l.slice(m + 1, y) : f = l.slice(m + 1, y), h = y - m - 1;
          m = y, g = 0;
        } else
          c === 46 && g !== -1 ? ++g : g = -1;
      }
      return f;
    }
    var o = { resolve: function() {
      for (var l, u = "", c = !1, f = arguments.length - 1; f >= -1 && !c; f--) {
        var h;
        f >= 0 ? h = arguments[f] : (l === void 0 && (l = process.cwd()), h = l), s(h), h.length !== 0 && (u = h + "/" + u, c = h.charCodeAt(0) === 47);
      }
      return u = a(u, !c), c ? u.length > 0 ? "/" + u : "/" : u.length > 0 ? u : ".";
    }, normalize: function(l) {
      if (s(l), l.length === 0)
        return ".";
      var u = l.charCodeAt(0) === 47, c = l.charCodeAt(l.length - 1) === 47;
      return (l = a(l, !u)).length !== 0 || u || (l = "."), l.length > 0 && c && (l += "/"), u ? "/" + l : l;
    }, isAbsolute: function(l) {
      return s(l), l.length > 0 && l.charCodeAt(0) === 47;
    }, join: function() {
      if (arguments.length === 0)
        return ".";
      for (var l, u = 0; u < arguments.length; ++u) {
        var c = arguments[u];
        s(c), c.length > 0 && (l === void 0 ? l = c : l += "/" + c);
      }
      return l === void 0 ? "." : o.normalize(l);
    }, relative: function(l, u) {
      if (s(l), s(u), l === u || (l = o.resolve(l)) === (u = o.resolve(u)))
        return "";
      for (var c = 1; c < l.length && l.charCodeAt(c) === 47; ++c)
        ;
      for (var f = l.length, h = f - c, m = 1; m < u.length && u.charCodeAt(m) === 47; ++m)
        ;
      for (var g = u.length - m, y = h < g ? h : g, v = -1, T = 0; T <= y; ++T) {
        if (T === y) {
          if (g > y) {
            if (u.charCodeAt(m + T) === 47)
              return u.slice(m + T + 1);
            if (T === 0)
              return u.slice(m + T);
          } else
            h > y && (l.charCodeAt(c + T) === 47 ? v = T : T === 0 && (v = 0));
          break;
        }
        var S = l.charCodeAt(c + T);
        if (S !== u.charCodeAt(m + T))
          break;
        S === 47 && (v = T);
      }
      var P = "";
      for (T = c + v + 1; T <= f; ++T)
        T !== f && l.charCodeAt(T) !== 47 || (P.length === 0 ? P += ".." : P += "/..");
      return P.length > 0 ? P + u.slice(m + v) : (m += v, u.charCodeAt(m) === 47 && ++m, u.slice(m));
    }, _makeLong: function(l) {
      return l;
    }, dirname: function(l) {
      if (s(l), l.length === 0)
        return ".";
      for (var u = l.charCodeAt(0), c = u === 47, f = -1, h = !0, m = l.length - 1; m >= 1; --m)
        if ((u = l.charCodeAt(m)) === 47) {
          if (!h) {
            f = m;
            break;
          }
        } else
          h = !1;
      return f === -1 ? c ? "/" : "." : c && f === 1 ? "//" : l.slice(0, f);
    }, basename: function(l, u) {
      if (u !== void 0 && typeof u != "string")
        throw new TypeError('"ext" argument must be a string');
      s(l);
      var c, f = 0, h = -1, m = !0;
      if (u !== void 0 && u.length > 0 && u.length <= l.length) {
        if (u.length === l.length && u === l)
          return "";
        var g = u.length - 1, y = -1;
        for (c = l.length - 1; c >= 0; --c) {
          var v = l.charCodeAt(c);
          if (v === 47) {
            if (!m) {
              f = c + 1;
              break;
            }
          } else
            y === -1 && (m = !1, y = c + 1), g >= 0 && (v === u.charCodeAt(g) ? --g == -1 && (h = c) : (g = -1, h = y));
        }
        return f === h ? h = y : h === -1 && (h = l.length), l.slice(f, h);
      }
      for (c = l.length - 1; c >= 0; --c)
        if (l.charCodeAt(c) === 47) {
          if (!m) {
            f = c + 1;
            break;
          }
        } else
          h === -1 && (m = !1, h = c + 1);
      return h === -1 ? "" : l.slice(f, h);
    }, extname: function(l) {
      s(l);
      for (var u = -1, c = 0, f = -1, h = !0, m = 0, g = l.length - 1; g >= 0; --g) {
        var y = l.charCodeAt(g);
        if (y !== 47)
          f === -1 && (h = !1, f = g + 1), y === 46 ? u === -1 ? u = g : m !== 1 && (m = 1) : u !== -1 && (m = -1);
        else if (!h) {
          c = g + 1;
          break;
        }
      }
      return u === -1 || f === -1 || m === 0 || m === 1 && u === f - 1 && u === c + 1 ? "" : l.slice(u, f);
    }, format: function(l) {
      if (l === null || typeof l != "object")
        throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + typeof l);
      return function(u, c) {
        var f = c.dir || c.root, h = c.base || (c.name || "") + (c.ext || "");
        return f ? f === c.root ? f + h : f + "/" + h : h;
      }(0, l);
    }, parse: function(l) {
      s(l);
      var u = { root: "", dir: "", base: "", ext: "", name: "" };
      if (l.length === 0)
        return u;
      var c, f = l.charCodeAt(0), h = f === 47;
      h ? (u.root = "/", c = 1) : c = 0;
      for (var m = -1, g = 0, y = -1, v = !0, T = l.length - 1, S = 0; T >= c; --T)
        if ((f = l.charCodeAt(T)) !== 47)
          y === -1 && (v = !1, y = T + 1), f === 46 ? m === -1 ? m = T : S !== 1 && (S = 1) : m !== -1 && (S = -1);
        else if (!v) {
          g = T + 1;
          break;
        }
      return m === -1 || y === -1 || S === 0 || S === 1 && m === y - 1 && m === g + 1 ? y !== -1 && (u.base = u.name = g === 0 && h ? l.slice(1, y) : l.slice(g, y)) : (g === 0 && h ? (u.name = l.slice(1, m), u.base = l.slice(1, y)) : (u.name = l.slice(g, m), u.base = l.slice(g, y)), u.ext = l.slice(m, y)), g > 0 ? u.dir = l.slice(0, g - 1) : h && (u.dir = "/"), u;
    }, sep: "/", delimiter: ":", win32: null, posix: null };
    o.posix = o, n.exports = o;
  } }, t = {};
  function r(n) {
    var s = t[n];
    if (s !== void 0)
      return s.exports;
    var a = t[n] = { exports: {} };
    return e[n](a, a.exports, r), a.exports;
  }
  r.d = (n, s) => {
    for (var a in s)
      r.o(s, a) && !r.o(n, a) && Object.defineProperty(n, a, { enumerable: !0, get: s[a] });
  }, r.o = (n, s) => Object.prototype.hasOwnProperty.call(n, s), r.r = (n) => {
    typeof Symbol != "undefined" && Symbol.toStringTag && Object.defineProperty(n, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(n, "__esModule", { value: !0 });
  };
  var i = {};
  (() => {
    let n;
    r.r(i), r.d(i, { URI: () => h, Utils: () => L }), typeof process == "object" ? n = process.platform === "win32" : typeof navigator == "object" && (n = navigator.userAgent.indexOf("Windows") >= 0);
    const s = /^\w[\w\d+.-]*$/, a = /^\//, o = /^\/\//;
    function l(O, F) {
      if (!O.scheme && F)
        throw new Error('[UriError]: Scheme is missing: {scheme: "", authority: "'.concat(O.authority, '", path: "').concat(O.path, '", query: "').concat(O.query, '", fragment: "').concat(O.fragment, '"}'));
      if (O.scheme && !s.test(O.scheme))
        throw new Error("[UriError]: Scheme contains illegal characters.");
      if (O.path) {
        if (O.authority) {
          if (!a.test(O.path))
            throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character');
        } else if (o.test(O.path))
          throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")');
      }
    }
    const u = "", c = "/", f = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;
    class h {
      constructor(F, q, j, N, M, R = !1) {
        ti(this, "scheme");
        ti(this, "authority");
        ti(this, "path");
        ti(this, "query");
        ti(this, "fragment");
        typeof F == "object" ? (this.scheme = F.scheme || u, this.authority = F.authority || u, this.path = F.path || u, this.query = F.query || u, this.fragment = F.fragment || u) : (this.scheme = function($, V) {
          return $ || V ? $ : "file";
        }(F, R), this.authority = q || u, this.path = function($, V) {
          switch ($) {
            case "https":
            case "http":
            case "file":
              V ? V[0] !== c && (V = c + V) : V = c;
          }
          return V;
        }(this.scheme, j || u), this.query = N || u, this.fragment = M || u, l(this, R));
      }
      static isUri(F) {
        return F instanceof h || !!F && typeof F.authority == "string" && typeof F.fragment == "string" && typeof F.path == "string" && typeof F.query == "string" && typeof F.scheme == "string" && typeof F.fsPath == "string" && typeof F.with == "function" && typeof F.toString == "function";
      }
      get fsPath() {
        return S(this, !1);
      }
      with(F) {
        if (!F)
          return this;
        let { scheme: q, authority: j, path: N, query: M, fragment: R } = F;
        return q === void 0 ? q = this.scheme : q === null && (q = u), j === void 0 ? j = this.authority : j === null && (j = u), N === void 0 ? N = this.path : N === null && (N = u), M === void 0 ? M = this.query : M === null && (M = u), R === void 0 ? R = this.fragment : R === null && (R = u), q === this.scheme && j === this.authority && N === this.path && M === this.query && R === this.fragment ? this : new g(q, j, N, M, R);
      }
      static parse(F, q = !1) {
        const j = f.exec(F);
        return j ? new g(j[2] || u, D(j[4] || u), D(j[5] || u), D(j[7] || u), D(j[9] || u), q) : new g(u, u, u, u, u);
      }
      static file(F) {
        let q = u;
        if (n && (F = F.replace(/\\/g, c)), F[0] === c && F[1] === c) {
          const j = F.indexOf(c, 2);
          j === -1 ? (q = F.substring(2), F = c) : (q = F.substring(2, j), F = F.substring(j) || c);
        }
        return new g("file", q, F, u, u);
      }
      static from(F) {
        const q = new g(F.scheme, F.authority, F.path, F.query, F.fragment);
        return l(q, !0), q;
      }
      toString(F = !1) {
        return P(this, F);
      }
      toJSON() {
        return this;
      }
      static revive(F) {
        if (F) {
          if (F instanceof h)
            return F;
          {
            const q = new g(F);
            return q._formatted = F.external, q._fsPath = F._sep === m ? F.fsPath : null, q;
          }
        }
        return F;
      }
    }
    const m = n ? 1 : void 0;
    class g extends h {
      constructor() {
        super(...arguments);
        ti(this, "_formatted", null);
        ti(this, "_fsPath", null);
      }
      get fsPath() {
        return this._fsPath || (this._fsPath = S(this, !1)), this._fsPath;
      }
      toString(q = !1) {
        return q ? P(this, !0) : (this._formatted || (this._formatted = P(this, !1)), this._formatted);
      }
      toJSON() {
        const q = { $mid: 1 };
        return this._fsPath && (q.fsPath = this._fsPath, q._sep = m), this._formatted && (q.external = this._formatted), this.path && (q.path = this.path), this.scheme && (q.scheme = this.scheme), this.authority && (q.authority = this.authority), this.query && (q.query = this.query), this.fragment && (q.fragment = this.fragment), q;
      }
    }
    const y = { 58: "%3A", 47: "%2F", 63: "%3F", 35: "%23", 91: "%5B", 93: "%5D", 64: "%40", 33: "%21", 36: "%24", 38: "%26", 39: "%27", 40: "%28", 41: "%29", 42: "%2A", 43: "%2B", 44: "%2C", 59: "%3B", 61: "%3D", 32: "%20" };
    function v(O, F, q) {
      let j, N = -1;
      for (let M = 0; M < O.length; M++) {
        const R = O.charCodeAt(M);
        if (R >= 97 && R <= 122 || R >= 65 && R <= 90 || R >= 48 && R <= 57 || R === 45 || R === 46 || R === 95 || R === 126 || F && R === 47 || q && R === 91 || q && R === 93 || q && R === 58)
          N !== -1 && (j += encodeURIComponent(O.substring(N, M)), N = -1), j !== void 0 && (j += O.charAt(M));
        else {
          j === void 0 && (j = O.substr(0, M));
          const $ = y[R];
          $ !== void 0 ? (N !== -1 && (j += encodeURIComponent(O.substring(N, M)), N = -1), j += $) : N === -1 && (N = M);
        }
      }
      return N !== -1 && (j += encodeURIComponent(O.substring(N))), j !== void 0 ? j : O;
    }
    function T(O) {
      let F;
      for (let q = 0; q < O.length; q++) {
        const j = O.charCodeAt(q);
        j === 35 || j === 63 ? (F === void 0 && (F = O.substr(0, q)), F += y[j]) : F !== void 0 && (F += O[q]);
      }
      return F !== void 0 ? F : O;
    }
    function S(O, F) {
      let q;
      return q = O.authority && O.path.length > 1 && O.scheme === "file" ? "//".concat(O.authority).concat(O.path) : O.path.charCodeAt(0) === 47 && (O.path.charCodeAt(1) >= 65 && O.path.charCodeAt(1) <= 90 || O.path.charCodeAt(1) >= 97 && O.path.charCodeAt(1) <= 122) && O.path.charCodeAt(2) === 58 ? F ? O.path.substr(1) : O.path[1].toLowerCase() + O.path.substr(2) : O.path, n && (q = q.replace(/\//g, "\\")), q;
    }
    function P(O, F) {
      const q = F ? T : v;
      let j = "", { scheme: N, authority: M, path: R, query: $, fragment: V } = O;
      if (N && (j += N, j += ":"), (M || N === "file") && (j += c, j += c), M) {
        let K = M.indexOf("@");
        if (K !== -1) {
          const z = M.substr(0, K);
          M = M.substr(K + 1), K = z.lastIndexOf(":"), K === -1 ? j += q(z, !1, !1) : (j += q(z.substr(0, K), !1, !1), j += ":", j += q(z.substr(K + 1), !1, !0)), j += "@";
        }
        M = M.toLowerCase(), K = M.lastIndexOf(":"), K === -1 ? j += q(M, !1, !0) : (j += q(M.substr(0, K), !1, !0), j += M.substr(K));
      }
      if (R) {
        if (R.length >= 3 && R.charCodeAt(0) === 47 && R.charCodeAt(2) === 58) {
          const K = R.charCodeAt(1);
          K >= 65 && K <= 90 && (R = "/".concat(String.fromCharCode(K + 32), ":").concat(R.substr(3)));
        } else if (R.length >= 2 && R.charCodeAt(1) === 58) {
          const K = R.charCodeAt(0);
          K >= 65 && K <= 90 && (R = "".concat(String.fromCharCode(K + 32), ":").concat(R.substr(2)));
        }
        j += q(R, !0, !1);
      }
      return $ && (j += "?", j += q($, !1, !1)), V && (j += "#", j += F ? V : v(V, !1, !1)), j;
    }
    function x(O) {
      try {
        return decodeURIComponent(O);
      } catch (F) {
        return O.length > 3 ? O.substr(0, 3) + x(O.substr(3)) : O;
      }
    }
    const C = /(%[0-9A-Za-z][0-9A-Za-z])+/g;
    function D(O) {
      return O.match(C) ? O.replace(C, (F) => x(F)) : O;
    }
    var w = r(470);
    const A = w.posix || w, I = "/";
    var L;
    (function(O) {
      O.joinPath = function(F, ...q) {
        return F.with({ path: A.join(F.path, ...q) });
      }, O.resolvePath = function(F, ...q) {
        let j = F.path, N = !1;
        j[0] !== I && (j = I + j, N = !0);
        let M = A.resolve(j, ...q);
        return N && M[0] === I && !F.authority && (M = M.substring(1)), F.with({ path: M });
      }, O.dirname = function(F) {
        if (F.path.length === 0 || F.path === I)
          return F;
        let q = A.dirname(F.path);
        return q.length === 1 && q.charCodeAt(0) === 46 && (q = ""), F.with({ path: q });
      }, O.basename = function(F) {
        return A.basename(F.path);
      }, O.extname = function(F) {
        return A.extname(F.path);
      };
    })(L || (L = {}));
  })(), ISe = i;
})();
const { URI: bdr, Utils: Fbr } = ISe;
function r4(e) {
  const t = e[0], r = e[e.length - 1];
  return t === r && (t === "'" || t === '"') && (e = e.substring(1, e.length - 1)), e;
}
function vdr(e, t) {
  return !e.length || t === "handlebars" && /{{|}}/.test(e) ? !1 : /\b(w[\w\d+.-]*:\/\/)?[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|\/?))/.test(e);
}
function Tdr(e, t, r, i) {
  if (/^\s*javascript\:/i.test(t) || /[\n\r]/.test(t))
    return;
  t = t.replace(/^\s*/g, "");
  const n = t.match(/^(\w[\w\d+.-]*):/);
  if (n) {
    const s = n[1].toLowerCase();
    return s === "http" || s === "https" || s === "file" ? t : void 0;
  }
  return /^\#/i.test(t) ? e + t : /^\/\//i.test(t) ? (Mh(e, "https://") ? "https" : "http") + ":" + t.replace(/^\s*/g, "") : r ? r.resolveReference(t, i || e) : t;
}
function Sdr(e, t, r, i, n, s) {
  const a = r4(r);
  if (!vdr(a, e.languageId))
    return;
  a.length < r.length && (i++, n--);
  const o = Tdr(e.uri, a, t, s);
  if (!o)
    return;
  const l = Edr(o, e);
  return {
    range: Xr.create(e.positionAt(i), e.positionAt(n)),
    target: l
  };
}
const xdr = "#".charCodeAt(0);
function Edr(e, t) {
  try {
    let r = bdr.parse(e);
    return r.scheme === "file" && r.query && (r = r.with({ query: null }), e = r.toString(
      /* skipEncodig*/
      !0
    )), r.scheme === "file" && r.fragment && !(e.startsWith(t.uri) && e.charCodeAt(t.uri.length) === xdr) ? r.with({ fragment: null }).toString(
      /* skipEncodig*/
      !0
    ) : e;
  } catch (r) {
    return;
  }
}
class Pdr {
  constructor(t) {
    this.dataManager = t;
  }
  findDocumentLinks(t, r) {
    const i = [], n = Eo(t.getText(), 0);
    let s = n.scan(), a, o, l = !1, u;
    const c = {};
    for (; s !== xt.EOS; ) {
      switch (s) {
        case xt.StartTag:
          o = n.getTokenText().toLowerCase(), u || (l = o === "base");
          break;
        case xt.AttributeName:
          a = n.getTokenText().toLowerCase();
          break;
        case xt.AttributeValue:
          if (o && a && this.dataManager.isPathAttribute(o, a)) {
            const f = n.getTokenText();
            if (!l) {
              const h = Sdr(t, r, f, n.getTokenOffset(), n.getTokenEnd(), u);
              h && i.push(h);
            }
            l && typeof u == "undefined" && (u = r4(f), u && r && (u = r.resolveReference(u, t.uri))), l = !1, a = void 0;
          } else if (a === "id") {
            const f = r4(n.getTokenText());
            c[f] = n.getTokenOffset();
          }
          break;
      }
      s = n.scan();
    }
    for (const f of i) {
      const h = t.uri + "#";
      if (f.target && Mh(f.target, h)) {
        const m = f.target.substring(h.length), g = c[m];
        if (g !== void 0) {
          const y = t.positionAt(g);
          f.target = "".concat(h).concat(y.line + 1, ",").concat(y.character + 1);
        } else
          f.target = t.uri;
      }
    }
    return i;
  }
}
function wdr(e, t, r) {
  const i = e.offsetAt(t), n = r.findNodeAt(i);
  if (!n.tag)
    return [];
  const s = [], a = rne(xt.StartTag, e, n.start), o = typeof n.endTagStart == "number" && rne(xt.EndTag, e, n.endTagStart);
  return (a && tne(a, t) || o && tne(o, t)) && (a && s.push({ kind: bT.Read, range: a }), o && s.push({ kind: bT.Read, range: o })), s;
}
function ene(e, t) {
  return e.line < t.line || e.line === t.line && e.character <= t.character;
}
function tne(e, t) {
  return ene(e.start, t) && ene(t, e.end);
}
function rne(e, t, r) {
  const i = Eo(t.getText(), r);
  let n = i.scan();
  for (; n !== xt.EOS && n !== e; )
    n = i.scan();
  return n !== xt.EOS ? { start: t.positionAt(i.getTokenOffset()), end: t.positionAt(i.getTokenEnd()) } : null;
}
function Adr(e, t) {
  const r = [], i = kSe(e, t);
  for (const s of i)
    n(s, void 0);
  return r;
  function n(s, a) {
    var l;
    const o = kA.create(s.name, s.kind, s.range, e.uri, a == null ? void 0 : a.name);
    if ((l = o.containerName) != null || (o.containerName = ""), r.push(o), s.children)
      for (const u of s.children)
        n(u, s);
  }
}
function kSe(e, t) {
  const r = [];
  return t.roots.forEach((i) => {
    OSe(e, i, r);
  }), r;
}
function OSe(e, t, r) {
  const i = Cdr(t), n = Xr.create(e.positionAt(t.start), e.positionAt(t.end)), s = OA.create(i, void 0, IA.Field, n, n);
  r.push(s), t.children.forEach((a) => {
    var o;
    (o = s.children) != null || (s.children = []), OSe(e, a, s.children);
  });
}
function Cdr(e) {
  let t = e.tag;
  if (e.attributes) {
    const r = e.attributes.id, i = e.attributes.class;
    r && (t += "#".concat(r.replace(/[\"\']/g, ""))), i && (t += i.replace(/[\"\']/g, "").split(/\s+/).map((n) => ".".concat(n)).join(""));
  }
  return t || "?";
}
function _dr(e, t, r, i) {
  const n = e.offsetAt(t), s = i.findNodeAt(n);
  if (!s.tag || !Idr(s, n, s.tag))
    return null;
  const a = [], o = {
    start: e.positionAt(s.start + 1),
    end: e.positionAt(s.start + 1 + s.tag.length)
  };
  if (a.push({
    range: o,
    newText: r
  }), s.endTagStart) {
    const u = {
      start: e.positionAt(s.endTagStart + 2),
      end: e.positionAt(s.endTagStart + 2 + s.tag.length)
    };
    a.push({
      range: u,
      newText: r
    });
  }
  return {
    changes: {
      [e.uri.toString()]: a
    }
  };
}
function Idr(e, t, r) {
  return e.endTagStart && e.endTagStart + 2 <= t && t <= e.endTagStart + 2 + r.length ? !0 : e.start + 1 <= t && t <= e.start + 1 + r.length;
}
function kdr(e, t, r) {
  const i = e.offsetAt(t), n = r.findNodeAt(i);
  if (!n.tag || !n.endTagStart)
    return null;
  if (n.start + 1 <= i && i <= n.start + 1 + n.tag.length) {
    const s = i - 1 - n.start + n.endTagStart + 2;
    return e.positionAt(s);
  }
  if (n.endTagStart + 2 <= i && i <= n.endTagStart + 2 + n.tag.length) {
    const s = i - 2 - n.endTagStart + n.start + 1;
    return e.positionAt(s);
  }
  return null;
}
function ine(e, t, r) {
  const i = e.offsetAt(t), n = r.findNodeAt(i), s = n.tag ? n.tag.length : 0;
  return n.endTagStart && // Within open tag, compute close tag
  (n.start + 1 <= i && i <= n.start + 1 + s || // Within closing tag, compute open tag
  n.endTagStart + 2 <= i && i <= n.endTagStart + 2 + s) ? [
    Xr.create(e.positionAt(n.start + 1), e.positionAt(n.start + 1 + s)),
    Xr.create(e.positionAt(n.endTagStart + 2), e.positionAt(n.endTagStart + 2 + s))
  ] : null;
}
class Odr {
  constructor(t) {
    this.dataManager = t;
  }
  limitRanges(t, r) {
    t = t.sort((f, h) => {
      let m = f.startLine - h.startLine;
      return m === 0 && (m = f.endLine - h.endLine), m;
    });
    let i;
    const n = [], s = [], a = [], o = (f, h) => {
      s[f] = h, h < 30 && (a[h] = (a[h] || 0) + 1);
    };
    for (let f = 0; f < t.length; f++) {
      const h = t[f];
      if (!i)
        i = h, o(f, 0);
      else if (h.startLine > i.startLine) {
        if (h.endLine <= i.endLine)
          n.push(i), i = h, o(f, n.length);
        else if (h.startLine > i.endLine) {
          do
            i = n.pop();
          while (i && h.startLine > i.endLine);
          i && n.push(i), i = h, o(f, n.length);
        }
      }
    }
    let l = 0, u = 0;
    for (let f = 0; f < a.length; f++) {
      const h = a[f];
      if (h) {
        if (h + l > r) {
          u = f;
          break;
        }
        l += h;
      }
    }
    const c = [];
    for (let f = 0; f < t.length; f++) {
      const h = s[f];
      typeof h == "number" && (h < u || h === u && l++ < r) && c.push(t[f]);
    }
    return c;
  }
  getFoldingRanges(t, r) {
    const i = Eo(t.getText());
    let n = i.scan();
    const s = [], a = [];
    let o = null, l = -1, u;
    function c(h) {
      s.push(h), l = h.startLine;
    }
    for (; n !== xt.EOS; ) {
      switch (n) {
        case xt.StartTag: {
          const h = i.getTokenText(), m = t.positionAt(i.getTokenOffset()).line;
          a.push({ startLine: m, tagName: h }), o = h;
          break;
        }
        case xt.EndTag: {
          o = i.getTokenText();
          break;
        }
        case xt.StartTagClose:
          if (!o || (u != null || (u = this.dataManager.getVoidElements(t.languageId)), !this.dataManager.isVoidElement(o, u)))
            break;
        case xt.EndTagClose:
        case xt.StartTagSelfClose: {
          let h = a.length - 1;
          for (; h >= 0 && a[h].tagName !== o; )
            h--;
          if (h >= 0) {
            const m = a[h];
            a.length = h;
            const g = t.positionAt(i.getTokenOffset()).line, y = m.startLine, v = g - 1;
            v > y && l !== y && c({ startLine: y, endLine: v });
          }
          break;
        }
        case xt.Comment: {
          let h = t.positionAt(i.getTokenOffset()).line;
          const g = i.getTokenText().match(/^\s*#(region\b)|(endregion\b)/);
          if (g)
            if (g[1])
              a.push({ startLine: h, tagName: "" });
            else {
              let y = a.length - 1;
              for (; y >= 0 && a[y].tagName.length; )
                y--;
              if (y >= 0) {
                const v = a[y];
                a.length = y;
                const T = h;
                h = v.startLine, T > h && l !== h && c({ startLine: h, endLine: T, kind: mT.Region });
              }
            }
          else {
            const y = t.positionAt(i.getTokenOffset() + i.getTokenLength()).line;
            h < y && c({ startLine: h, endLine: y, kind: mT.Comment });
          }
          break;
        }
      }
      n = i.scan();
    }
    const f = r && r.rangeLimit || Number.MAX_VALUE;
    return s.length > f ? this.limitRanges(s, f) : s;
  }
}
class Ndr {
  constructor(t) {
    this.htmlParser = t;
  }
  getSelectionRanges(t, r) {
    const i = this.htmlParser.parseDocument(t);
    return r.map((n) => this.getSelectionRange(n, t, i));
  }
  getSelectionRange(t, r, i) {
    const n = this.getApplicableRanges(r, t, i);
    let s, a;
    for (let o = n.length - 1; o >= 0; o--) {
      const l = n[o];
      (!s || l[0] !== s[0] || l[1] !== s[1]) && (a = vT.create(Xr.create(r.positionAt(n[o][0]), r.positionAt(n[o][1])), a)), s = l;
    }
    return a || (a = vT.create(Xr.create(t, t))), a;
  }
  getApplicableRanges(t, r, i) {
    const n = t.offsetAt(r), s = i.findNodeAt(n);
    let a = this.getAllParentTagRanges(s);
    if (s.startTagEnd && !s.endTagStart) {
      if (s.startTagEnd !== s.end)
        return [[s.start, s.end]];
      const o = Xr.create(t.positionAt(s.startTagEnd - 2), t.positionAt(s.startTagEnd));
      return t.getText(o) === "/>" ? a.unshift([s.start + 1, s.startTagEnd - 2]) : a.unshift([s.start + 1, s.startTagEnd - 1]), a = this.getAttributeLevelRanges(t, s, n).concat(a), a;
    }
    return !s.startTagEnd || !s.endTagStart ? a : (a.unshift([s.start, s.end]), s.start < n && n < s.startTagEnd ? (a.unshift([s.start + 1, s.startTagEnd - 1]), a = this.getAttributeLevelRanges(t, s, n).concat(a), a) : s.startTagEnd <= n && n <= s.endTagStart ? (a.unshift([s.startTagEnd, s.endTagStart]), a) : (n >= s.endTagStart + 2 && a.unshift([s.endTagStart + 2, s.end - 1]), a));
  }
  getAllParentTagRanges(t) {
    let r = t;
    const i = [];
    for (; r.parent; )
      r = r.parent, this.getNodeRanges(r).forEach((n) => i.push(n));
    return i;
  }
  getNodeRanges(t) {
    return t.startTagEnd && t.endTagStart && t.startTagEnd < t.endTagStart ? [
      [t.startTagEnd, t.endTagStart],
      [t.start, t.end]
    ] : [
      [t.start, t.end]
    ];
  }
  getAttributeLevelRanges(t, r, i) {
    const n = Xr.create(t.positionAt(r.start), t.positionAt(r.end)), s = t.getText(n), a = i - r.start, o = Eo(s);
    let l = o.scan();
    const u = r.start, c = [];
    let f = !1, h = -1;
    for (; l !== xt.EOS; ) {
      switch (l) {
        case xt.AttributeName: {
          if (a < o.getTokenOffset()) {
            f = !1;
            break;
          }
          a <= o.getTokenEnd() && c.unshift([o.getTokenOffset(), o.getTokenEnd()]), f = !0, h = o.getTokenOffset();
          break;
        }
        case xt.AttributeValue: {
          if (!f)
            break;
          const m = o.getTokenText();
          if (a < o.getTokenOffset()) {
            c.push([h, o.getTokenEnd()]);
            break;
          }
          a >= o.getTokenOffset() && a <= o.getTokenEnd() && (c.unshift([o.getTokenOffset(), o.getTokenEnd()]), (m[0] === '"' && m[m.length - 1] === '"' || m[0] === "'" && m[m.length - 1] === "'") && a >= o.getTokenOffset() + 1 && a <= o.getTokenEnd() - 1 && c.unshift([o.getTokenOffset() + 1, o.getTokenEnd() - 1]), c.push([h, o.getTokenEnd()]));
          break;
        }
      }
      l = o.scan();
    }
    return c.map((m) => [m[0] + u, m[1] + u]);
  }
}
const NSe = {
  version: 1.1,
  tags: [
    {
      name: "html",
      description: {
        kind: "markdown",
        value: "The html element represents the root of an HTML document."
      },
      attributes: [
        {
          name: "manifest",
          description: {
            kind: "markdown",
            value: "Specifies the URI of a resource manifest indicating resources that should be cached locally. See [Using the application cache](https://developer.mozilla.org/en-US/docs/Web/HTML/Using_the_application_cache) for details."
          }
        },
        {
          name: "version",
          description: 'Specifies the version of the HTML [Document Type Definition](https://developer.mozilla.org/en-US/docs/Glossary/DTD "Document Type Definition: In HTML, the doctype is the required "<!DOCTYPE html>" preamble found at the top of all documents. Its sole purpose is to prevent a browser from switching into so-called “quirks mode” when rendering a document; that is, the "<!DOCTYPE html>" doctype ensures that the browser makes a best-effort attempt at following the relevant specifications, rather than using a different rendering mode that is incompatible with some specifications.") that governs the current document. This attribute is not needed, because it is redundant with the version information in the document type declaration.'
        },
        {
          name: "xmlns",
          description: 'Specifies the XML Namespace of the document. Default value is `"http://www.w3.org/1999/xhtml"`. This is required in documents parsed with XML parsers, and optional in text/html documents.'
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/html"
        }
      ]
    },
    {
      name: "head",
      description: {
        kind: "markdown",
        value: "The head element represents a collection of metadata for the Document."
      },
      attributes: [
        {
          name: "profile",
          description: "The URIs of one or more metadata profiles, separated by white space."
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/head"
        }
      ]
    },
    {
      name: "title",
      description: {
        kind: "markdown",
        value: "The title element represents the document's title or name. Authors should use titles that identify their documents even when they are used out of context, for example in a user's history or bookmarks, or in search results. The document's title is often different from its first heading, since the first heading does not have to stand alone when taken out of context."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/title"
        }
      ]
    },
    {
      name: "base",
      description: {
        kind: "markdown",
        value: "The base element allows authors to specify the document base URL for the purposes of resolving relative URLs, and the name of the default browsing context for the purposes of following hyperlinks. The element does not represent any content beyond this information."
      },
      void: !0,
      attributes: [
        {
          name: "href",
          description: {
            kind: "markdown",
            value: "The base URL to be used throughout the document for relative URL addresses. If this attribute is specified, this element must come before any other elements with attributes whose values are URLs. Absolute and relative URLs are allowed."
          }
        },
        {
          name: "target",
          valueSet: "target",
          description: {
            kind: "markdown",
            value: "A name or keyword indicating the default location to display the result when hyperlinks or forms cause navigation, for elements that do not have an explicit target reference. It is a name of, or keyword for, a _browsing context_ (for example: tab, window, or inline frame). The following keywords have special meanings:\n\n*   `_self`: Load the result into the same browsing context as the current one. This value is the default if the attribute is not specified.\n*   `_blank`: Load the result into a new unnamed browsing context.\n*   `_parent`: Load the result into the parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\n*   `_top`: Load the result into the top-level browsing context (that is, the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.\n\nIf this attribute is specified, this element must come before any other elements with attributes whose values are URLs."
          }
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/base"
        }
      ]
    },
    {
      name: "link",
      description: {
        kind: "markdown",
        value: "The link element allows authors to link their document to other resources."
      },
      void: !0,
      attributes: [
        {
          name: "href",
          description: {
            kind: "markdown",
            value: 'This attribute specifies the [URL](https://developer.mozilla.org/en-US/docs/Glossary/URL "URL: Uniform Resource Locator (URL) is a text string specifying where a resource can be found on the Internet.") of the linked resource. A URL can be absolute or relative.'
          }
        },
        {
          name: "crossorigin",
          valueSet: "xo",
          description: {
            kind: "markdown",
            value: 'This enumerated attribute indicates whether [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS "CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.") must be used when fetching the resource. [CORS-enabled images](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_Enabled_Image) can be reused in the [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas "Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.") element without being _tainted_. The allowed values are:\n\n`anonymous`\n\nA cross-origin request (i.e. with an [`Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin "The Origin request header indicates where a fetch originates from. It doesn\'t include any path information, but only the server name. It is sent with CORS requests, as well as with POST requests. It is similar to the Referer header, but, unlike this header, it doesn\'t disclose the whole path.") HTTP header) is performed, but no credential is sent (i.e. no cookie, X.509 certificate, or HTTP Basic authentication). If the server does not give credentials to the origin site (by not setting the [`Access-Control-Allow-Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin "The Access-Control-Allow-Origin response header indicates whether the response can be shared with requesting code from the given origin.") HTTP header) the image will be tainted and its usage restricted.\n\n`use-credentials`\n\nA cross-origin request (i.e. with an `Origin` HTTP header) is performed along with a credential sent (i.e. a cookie, certificate, and/or HTTP Basic authentication is performed). If the server does not give credentials to the origin site (through [`Access-Control-Allow-Credentials`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials "The Access-Control-Allow-Credentials response header tells browsers whether to expose the response to frontend JavaScript code when the request\'s credentials mode (Request.credentials) is "include".") HTTP header), the resource will be _tainted_ and its usage restricted.\n\nIf the attribute is not present, the resource is fetched without a [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS "CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.") request (i.e. without sending the `Origin` HTTP header), preventing its non-tainted usage. If invalid, it is handled as if the enumerated keyword **anonymous** was used. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for additional information.'
          }
        },
        {
          name: "rel",
          description: {
            kind: "markdown",
            value: "This attribute names a relationship of the linked document to the current document. The attribute must be a space-separated list of the [link types values](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types)."
          }
        },
        {
          name: "media",
          description: {
            kind: "markdown",
            value: "This attribute specifies the media that the linked resource applies to. Its value must be a media type / [media query](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries). This attribute is mainly useful when linking to external stylesheets — it allows the user agent to pick the best adapted one for the device it runs on.\n\n**Notes:**\n\n*   In HTML 4, this can only be a simple white-space-separated list of media description literals, i.e., [media types and groups](https://developer.mozilla.org/en-US/docs/Web/CSS/@media), where defined and allowed as values for this attribute, such as `print`, `screen`, `aural`, `braille`. HTML5 extended this to any kind of [media queries](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries), which are a superset of the allowed values of HTML 4.\n*   Browsers not supporting [CSS3 Media Queries](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries) won't necessarily recognize the adequate link; do not forget to set fallback links, the restricted set of media queries defined in HTML 4."
          }
        },
        {
          name: "hreflang",
          description: {
            kind: "markdown",
            value: "This attribute indicates the language of the linked resource. It is purely advisory. Allowed values are determined by [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt). Use this attribute only if the [`href`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-href) attribute is present."
          }
        },
        {
          name: "type",
          description: {
            kind: "markdown",
            value: 'This attribute is used to define the type of the content linked to. The value of the attribute should be a MIME type such as **text/html**, **text/css**, and so on. The common use of this attribute is to define the type of stylesheet being referenced (such as **text/css**), but given that CSS is the only stylesheet language used on the web, not only is it possible to omit the `type` attribute, but is actually now recommended practice. It is also used on `rel="preload"` link types, to make sure the browser only downloads file types that it supports.'
          }
        },
        {
          name: "sizes",
          description: {
            kind: "markdown",
            value: "This attribute defines the sizes of the icons for visual media contained in the resource. It must be present only if the [`rel`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link#attr-rel) contains a value of `icon` or a non-standard type such as Apple's `apple-touch-icon`. It may have the following values:\n\n*   `any`, meaning that the icon can be scaled to any size as it is in a vector format, like `image/svg+xml`.\n*   a white-space separated list of sizes, each in the format `_<width in pixels>_x_<height in pixels>_` or `_<width in pixels>_X_<height in pixels>_`. Each of these sizes must be contained in the resource.\n\n**Note:** Most icon formats are only able to store one single icon; therefore most of the time the [`sizes`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-sizes) contains only one entry. MS's ICO format does, as well as Apple's ICNS. ICO is more ubiquitous; you should definitely use it."
          }
        },
        {
          name: "as",
          description: 'This attribute is only used when `rel="preload"` or `rel="prefetch"` has been set on the `<link>` element. It specifies the type of content being loaded by the `<link>`, which is necessary for content prioritization, request matching, application of correct [content security policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP), and setting of correct [`Accept`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept "The Accept request HTTP header advertises which content types, expressed as MIME types, the client is able to understand. Using content negotiation, the server then selects one of the proposals, uses it and informs the client of its choice with the Content-Type response header. Browsers set adequate values for this header depending on the context where the request is done: when fetching a CSS stylesheet a different value is set for the request than when fetching an image, video or a script.") request header.'
        },
        {
          name: "importance",
          description: "Indicates the relative importance of the resource. Priority hints are delegated using the values:"
        },
        {
          name: "importance",
          description: '**`auto`**: Indicates **no preference**. The browser may use its own heuristics to decide the priority of the resource.\n\n**`high`**: Indicates to the browser that the resource is of **high** priority.\n\n**`low`**: Indicates to the browser that the resource is of **low** priority.\n\n**Note:** The `importance` attribute may only be used for the `<link>` element if `rel="preload"` or `rel="prefetch"` is present.'
        },
        {
          name: "integrity",
          description: "Contains inline metadata — a base64-encoded cryptographic hash of the resource (file) you’re telling the browser to fetch. The browser can use this to verify that the fetched resource has been delivered free of unexpected manipulation. See [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity)."
        },
        {
          name: "referrerpolicy",
          description: 'A string indicating which referrer to use when fetching the resource:\n\n*   `no-referrer` means that the [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer "The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.") header will not be sent.\n*   `no-referrer-when-downgrade` means that no [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer "The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.") header will be sent when navigating to an origin without TLS (HTTPS). This is a user agent’s default behavior, if no policy is otherwise specified.\n*   `origin` means that the referrer will be the origin of the page, which is roughly the scheme, the host, and the port.\n*   `origin-when-cross-origin` means that navigating to other origins will be limited to the scheme, the host, and the port, while navigating on the same origin will include the referrer\'s path.\n*   `unsafe-url` means that the referrer will include the origin and the path (but not the fragment, password, or username). This case is unsafe because it can leak origins and paths from TLS-protected resources to insecure origins.'
        },
        {
          name: "title",
          description: 'The `title` attribute has special semantics on the `<link>` element. When used on a `<link rel="stylesheet">` it defines a [preferred or an alternate stylesheet](https://developer.mozilla.org/en-US/docs/Web/CSS/Alternative_style_sheets). Incorrectly using it may [cause the stylesheet to be ignored](https://developer.mozilla.org/en-US/docs/Correctly_Using_Titles_With_External_Stylesheets).'
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/link"
        }
      ]
    },
    {
      name: "meta",
      description: {
        kind: "markdown",
        value: "The meta element represents various kinds of metadata that cannot be expressed using the title, base, link, style, and script elements."
      },
      void: !0,
      attributes: [
        {
          name: "name",
          description: {
            kind: "markdown",
            value: 'This attribute defines the name of a piece of document-level metadata. It should not be set if one of the attributes [`itemprop`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-itemprop), [`http-equiv`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-http-equiv) or [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) is also set.\n\nThis metadata name is associated with the value contained by the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute. The possible values for the name attribute are:\n\n*   `application-name` which defines the name of the application running in the web page.\n    \n    **Note:**\n    \n    *   Browsers may use this to identify the application. It is different from the [`<title>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/title "The HTML Title element (<title>) defines the document\'s title that is shown in a browser\'s title bar or a page\'s tab.") element, which usually contain the application name, but may also contain information like the document name or a status.\n    *   Simple web pages shouldn\'t define an application-name.\n    \n*   `author` which defines the name of the document\'s author.\n*   `description` which contains a short and accurate summary of the content of the page. Several browsers, like Firefox and Opera, use this as the default description of bookmarked pages.\n*   `generator` which contains the identifier of the software that generated the page.\n*   `keywords` which contains words relevant to the page\'s content separated by commas.\n*   `referrer` which controls the [`Referer` HTTP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer) attached to requests sent from the document:\n    \n    Values for the `content` attribute of `<meta name="referrer">`\n    \n    `no-referrer`\n    \n    Do not send a HTTP `Referrer` header.\n    \n    `origin`\n    \n    Send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) of the document.\n    \n    `no-referrer-when-downgrade`\n    \n    Send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) as a referrer to URLs as secure as the current page, (https→https), but does not send a referrer to less secure URLs (https→http). This is the default behaviour.\n    \n    `origin-when-cross-origin`\n    \n    Send the full URL (stripped of parameters) for same-origin requests, but only send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) for other cases.\n    \n    `same-origin`\n    \n    A referrer will be sent for [same-site origins](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy), but cross-origin requests will contain no referrer information.\n    \n    `strict-origin`\n    \n    Only send the origin of the document as the referrer to a-priori as-much-secure destination (HTTPS->HTTPS), but don\'t send it to a less secure destination (HTTPS->HTTP).\n    \n    `strict-origin-when-cross-origin`\n    \n    Send a full URL when performing a same-origin request, only send the origin of the document to a-priori as-much-secure destination (HTTPS->HTTPS), and send no header to a less secure destination (HTTPS->HTTP).\n    \n    `unsafe-URL`\n    \n    Send the full URL (stripped of parameters) for same-origin or cross-origin requests.\n    \n    **Notes:**\n    \n    *   Some browsers support the deprecated values of `always`, `default`, and `never` for referrer.\n    *   Dynamically inserting `<meta name="referrer">` (with [`document.write`](https://developer.mozilla.org/en-US/docs/Web/API/Document/write) or [`appendChild`](https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild)) makes the referrer behaviour unpredictable.\n    *   When several conflicting policies are defined, the no-referrer policy is applied.\n    \n\nThis attribute may also have a value taken from the extended list defined on [WHATWG Wiki MetaExtensions page](https://wiki.whatwg.org/wiki/MetaExtensions). Although none have been formally accepted yet, a few commonly used names are:\n\n*   `creator` which defines the name of the creator of the document, such as an organization or institution. If there are more than one, several [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta "The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.") elements should be used.\n*   `googlebot`, a synonym of `robots`, is only followed by Googlebot (the indexing crawler for Google).\n*   `publisher` which defines the name of the document\'s publisher.\n*   `robots` which defines the behaviour that cooperative crawlers, or "robots", should use with the page. It is a comma-separated list of the values below:\n    \n    Values for the content of `<meta name="robots">`\n    \n    Value\n    \n    Description\n    \n    Used by\n    \n    `index`\n    \n    Allows the robot to index the page (default).\n    \n    All\n    \n    `noindex`\n    \n    Requests the robot to not index the page.\n    \n    All\n    \n    `follow`\n    \n    Allows the robot to follow the links on the page (default).\n    \n    All\n    \n    `nofollow`\n    \n    Requests the robot to not follow the links on the page.\n    \n    All\n    \n    `none`\n    \n    Equivalent to `noindex, nofollow`\n    \n    [Google](https://support.google.com/webmasters/answer/79812)\n    \n    `noodp`\n    \n    Prevents using the [Open Directory Project](https://www.dmoz.org/) description, if any, as the page description in search engine results.\n    \n    [Google](https://support.google.com/webmasters/answer/35624#nodmoz), [Yahoo](https://help.yahoo.com/kb/search-for-desktop/meta-tags-robotstxt-yahoo-search-sln2213.html#cont5), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\n    \n    `noarchive`\n    \n    Requests the search engine not to cache the page content.\n    \n    [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives), [Yahoo](https://help.yahoo.com/kb/search-for-desktop/SLN2213.html), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\n    \n    `nosnippet`\n    \n    Prevents displaying any description of the page in search engine results.\n    \n    [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\n    \n    `noimageindex`\n    \n    Requests this page not to appear as the referring page of an indexed image.\n    \n    [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives)\n    \n    `nocache`\n    \n    Synonym of `noarchive`.\n    \n    [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\n    \n    **Notes:**\n    \n    *   Only cooperative robots follow these rules. Do not expect to prevent e-mail harvesters with them.\n    *   The robot still needs to access the page in order to read these rules. To prevent bandwidth consumption, use a _[robots.txt](https://developer.mozilla.org/en-US/docs/Glossary/robots.txt "robots.txt: Robots.txt is a file which is usually placed in the root of any website. It decides whether crawlers are permitted or forbidden access to the web site.")_ file.\n    *   If you want to remove a page, `noindex` will work, but only after the robot visits the page again. Ensure that the `robots.txt` file is not preventing revisits.\n    *   Some values are mutually exclusive, like `index` and `noindex`, or `follow` and `nofollow`. In these cases the robot\'s behaviour is undefined and may vary between them.\n    *   Some crawler robots, like Google, Yahoo and Bing, support the same values for the HTTP header `X-Robots-Tag`; this allows non-HTML documents like images to use these rules.\n    \n*   `slurp`, is a synonym of `robots`, but only for Slurp - the crawler for Yahoo Search.\n*   `viewport`, which gives hints about the size of the initial size of the [viewport](https://developer.mozilla.org/en-US/docs/Glossary/viewport "viewport: A viewport represents a polygonal (normally rectangular) area in computer graphics that is currently being viewed. In web browser terms, it refers to the part of the document you\'re viewing which is currently visible in its window (or the screen, if the document is being viewed in full screen mode). Content outside the viewport is not visible onscreen until scrolled into view."). Used by mobile devices only.\n    \n    Values for the content of `<meta name="viewport">`\n    \n    Value\n    \n    Possible subvalues\n    \n    Description\n    \n    `width`\n    \n    A positive integer number, or the text `device-width`\n    \n    Defines the pixel width of the viewport that you want the web site to be rendered at.\n    \n    `height`\n    \n    A positive integer, or the text `device-height`\n    \n    Defines the height of the viewport. Not used by any browser.\n    \n    `initial-scale`\n    \n    A positive number between `0.0` and `10.0`\n    \n    Defines the ratio between the device width (`device-width` in portrait mode or `device-height` in landscape mode) and the viewport size.\n    \n    `maximum-scale`\n    \n    A positive number between `0.0` and `10.0`\n    \n    Defines the maximum amount to zoom in. It must be greater or equal to the `minimum-scale` or the behaviour is undefined. Browser settings can ignore this rule and iOS10+ ignores it by default.\n    \n    `minimum-scale`\n    \n    A positive number between `0.0` and `10.0`\n    \n    Defines the minimum zoom level. It must be smaller or equal to the `maximum-scale` or the behaviour is undefined. Browser settings can ignore this rule and iOS10+ ignores it by default.\n    \n    `user-scalable`\n    \n    `yes` or `no`\n    \n    If set to `no`, the user is not able to zoom in the webpage. The default is `yes`. Browser settings can ignore this rule, and iOS10+ ignores it by default.\n    \n    Specification\n    \n    Status\n    \n    Comment\n    \n    [CSS Device Adaptation  \n    The definition of \'<meta name="viewport">\' in that specification.](https://drafts.csswg.org/css-device-adapt/#viewport-meta)\n    \n    Working Draft\n    \n    Non-normatively describes the Viewport META element\n    \n    See also: [`@viewport`](https://developer.mozilla.org/en-US/docs/Web/CSS/@viewport "The @viewport CSS at-rule lets you configure the viewport through which the document is viewed. It\'s primarily used for mobile devices, but is also used by desktop browsers that support features like "snap to edge" (such as Microsoft Edge).")\n    \n    **Notes:**\n    \n    *   Though unstandardized, this declaration is respected by most mobile browsers due to de-facto dominance.\n    *   The default values may vary between devices and browsers.\n    *   To learn about this declaration in Firefox for Mobile, see [this article](https://developer.mozilla.org/en-US/docs/Mobile/Viewport_meta_tag "Mobile/Viewport meta tag").'
          }
        },
        {
          name: "http-equiv",
          description: {
            kind: "markdown",
            value: 'Defines a pragma directive. The attribute is named `**http-equiv**(alent)` because all the allowed values are names of particular HTTP headers:\n\n*   `"content-language"`  \n    Defines the default language of the page. It can be overridden by the [lang](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang) attribute on any element.\n    \n    **Warning:** Do not use this value, as it is obsolete. Prefer the `lang` attribute on the [`<html>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/html "The HTML <html> element represents the root (top-level element) of an HTML document, so it is also referred to as the root element. All other elements must be descendants of this element.") element.\n    \n*   `"content-security-policy"`  \n    Allows page authors to define a [content policy](https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives) for the current page. Content policies mostly specify allowed server origins and script endpoints which help guard against cross-site scripting attacks.\n*   `"content-type"`  \n    Defines the [MIME type](https://developer.mozilla.org/en-US/docs/Glossary/MIME_type) of the document, followed by its character encoding. It follows the same syntax as the HTTP `content-type` entity-header field, but as it is inside a HTML page, most values other than `text/html` are impossible. Therefore the valid syntax for its `content` is the string \'`text/html`\' followed by a character set with the following syntax: \'`; charset=_IANAcharset_`\', where `IANAcharset` is the _preferred MIME name_ for a character set as [defined by the IANA.](https://www.iana.org/assignments/character-sets)\n    \n    **Warning:** Do not use this value, as it is obsolete. Use the [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) attribute on the [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta "The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.") element.\n    \n    **Note:** As [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta "The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.") can\'t change documents\' types in XHTML or HTML5\'s XHTML serialization, never set the MIME type to an XHTML MIME type with `<meta>`.\n    \n*   `"refresh"`  \n    This instruction specifies:\n    *   The number of seconds until the page should be reloaded - only if the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute contains a positive integer.\n    *   The number of seconds until the page should redirect to another - only if the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute contains a positive integer followed by the string \'`;url=`\', and a valid URL.\n*   `"set-cookie"`  \n    Defines a [cookie](https://developer.mozilla.org/en-US/docs/cookie) for the page. Its content must follow the syntax defined in the [IETF HTTP Cookie Specification](https://tools.ietf.org/html/draft-ietf-httpstate-cookie-14).\n    \n    **Warning:** Do not use this instruction, as it is obsolete. Use the HTTP header [`Set-Cookie`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie) instead.'
          }
        },
        {
          name: "content",
          description: {
            kind: "markdown",
            value: "This attribute contains the value for the [`http-equiv`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-http-equiv) or [`name`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-name) attribute, depending on which is used."
          }
        },
        {
          name: "charset",
          description: {
            kind: "markdown",
            value: 'This attribute declares the page\'s character encoding. It must contain a [standard IANA MIME name for character encodings](https://www.iana.org/assignments/character-sets). Although the standard doesn\'t request a specific encoding, it suggests:\n\n*   Authors are encouraged to use [`UTF-8`](https://developer.mozilla.org/en-US/docs/Glossary/UTF-8).\n*   Authors should not use ASCII-incompatible encodings to avoid security risk: browsers not supporting them may interpret harmful content as HTML. This happens with the `JIS_C6226-1983`, `JIS_X0212-1990`, `HZ-GB-2312`, `JOHAB`, the ISO-2022 family and the EBCDIC family.\n\n**Note:** ASCII-incompatible encodings are those that don\'t map the 8-bit code points `0x20` to `0x7E` to the `0x0020` to `0x007E` Unicode code points)\n\n*   Authors **must not** use `CESU-8`, `UTF-7`, `BOCU-1` and/or `SCSU` as [cross-site scripting](https://developer.mozilla.org/en-US/docs/Glossary/Cross-site_scripting) attacks with these encodings have been demonstrated.\n*   Authors should not use `UTF-32` because not all HTML5 encoding algorithms can distinguish it from `UTF-16`.\n\n**Notes:**\n\n*   The declared character encoding must match the one the page was saved with to avoid garbled characters and security holes.\n*   The [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta "The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.") element declaring the encoding must be inside the [`<head>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/head "The HTML <head> element provides general information (metadata) about the document, including its title and links to its scripts and style sheets.") element and **within the first 1024 bytes** of the HTML as some browsers only look at those bytes before choosing an encoding.\n*   This [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta "The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.") element is only one part of the [algorithm to determine a page\'s character set](https://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#encoding-sniffing-algorithm "Algorithm charset page"). The [`Content-Type` header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type) and any [Byte-Order Marks](https://developer.mozilla.org/en-US/docs/Glossary/Byte-Order_Mark "The definition of that term (Byte-Order Marks) has not been written yet; please consider contributing it!") override this element.\n*   It is strongly recommended to define the character encoding. If a page\'s encoding is undefined, cross-scripting techniques are possible, such as the [`UTF-7` fallback cross-scripting technique](https://code.google.com/p/doctype-mirror/wiki/ArticleUtf7).\n*   The [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta "The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.") element with a `charset` attribute is a synonym for the pre-HTML5 `<meta http-equiv="Content-Type" content="text/html; charset=_IANAcharset_">`, where _`IANAcharset`_ contains the value of the equivalent [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) attribute. This syntax is still allowed, although no longer recommended.'
          }
        },
        {
          name: "scheme",
          description: "This attribute defines the scheme in which metadata is described. A scheme is a context leading to the correct interpretations of the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) value, like a format.\n\n**Warning:** Do not use this value, as it is obsolete. There is no replacement as there was no real usage for it."
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/meta"
        }
      ]
    },
    {
      name: "style",
      description: {
        kind: "markdown",
        value: "The style element allows authors to embed style information in their documents. The style element is one of several inputs to the styling processing model. The element does not represent content for the user."
      },
      attributes: [
        {
          name: "media",
          description: {
            kind: "markdown",
            value: "This attribute defines which media the style should be applied to. Its value is a [media query](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Media_queries), which defaults to `all` if the attribute is missing."
          }
        },
        {
          name: "nonce",
          description: {
            kind: "markdown",
            value: "A cryptographic nonce (number used once) used to allow inline styles in a [style-src Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src). The server must generate a unique nonce value each time it transmits a policy. It is critical to provide a nonce that cannot be guessed as bypassing a resource’s policy is otherwise trivial."
          }
        },
        {
          name: "type",
          description: {
            kind: "markdown",
            value: "This attribute defines the styling language as a MIME type (charset should not be specified). This attribute is optional and defaults to `text/css` if it is not specified — there is very little reason to include this in modern web documents."
          }
        },
        {
          name: "scoped",
          valueSet: "v"
        },
        {
          name: "title",
          description: "This attribute specifies [alternative style sheet](https://developer.mozilla.org/en-US/docs/Web/CSS/Alternative_style_sheets) sets."
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/style"
        }
      ]
    },
    {
      name: "body",
      description: {
        kind: "markdown",
        value: "The body element represents the content of the document."
      },
      attributes: [
        {
          name: "onafterprint",
          description: {
            kind: "markdown",
            value: "Function to call after the user has printed the document."
          }
        },
        {
          name: "onbeforeprint",
          description: {
            kind: "markdown",
            value: "Function to call when the user requests printing of the document."
          }
        },
        {
          name: "onbeforeunload",
          description: {
            kind: "markdown",
            value: "Function to call when the document is about to be unloaded."
          }
        },
        {
          name: "onhashchange",
          description: {
            kind: "markdown",
            value: "Function to call when the fragment identifier part (starting with the hash (`'#'`) character) of the document's current address has changed."
          }
        },
        {
          name: "onlanguagechange",
          description: {
            kind: "markdown",
            value: "Function to call when the preferred languages changed."
          }
        },
        {
          name: "onmessage",
          description: {
            kind: "markdown",
            value: "Function to call when the document has received a message."
          }
        },
        {
          name: "onoffline",
          description: {
            kind: "markdown",
            value: "Function to call when network communication has failed."
          }
        },
        {
          name: "ononline",
          description: {
            kind: "markdown",
            value: "Function to call when network communication has been restored."
          }
        },
        {
          name: "onpagehide"
        },
        {
          name: "onpageshow"
        },
        {
          name: "onpopstate",
          description: {
            kind: "markdown",
            value: "Function to call when the user has navigated session history."
          }
        },
        {
          name: "onstorage",
          description: {
            kind: "markdown",
            value: "Function to call when the storage area has changed."
          }
        },
        {
          name: "onunload",
          description: {
            kind: "markdown",
            value: "Function to call when the document is going away."
          }
        },
        {
          name: "alink",
          description: 'Color of text for hyperlinks when selected. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color "The color CSS property sets the foreground color value of an element\'s text and text decorations, and sets the currentcolor value.") property in conjunction with the [`:active`](https://developer.mozilla.org/en-US/docs/Web/CSS/:active "The :active CSS pseudo-class represents an element (such as a button) that is being activated by the user.") pseudo-class instead._'
        },
        {
          name: "background",
          description: 'URI of a image to use as a background. _This method is non-conforming, use CSS [`background`](https://developer.mozilla.org/en-US/docs/Web/CSS/background "The background shorthand CSS property sets all background style properties at once, such as color, image, origin and size, or repeat method.") property on the element instead._'
        },
        {
          name: "bgcolor",
          description: 'Background color for the document. _This method is non-conforming, use CSS [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color "The background-color CSS property sets the background color of an element.") property on the element instead._'
        },
        {
          name: "bottommargin",
          description: 'The margin of the bottom of the body. _This method is non-conforming, use CSS [`margin-bottom`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-bottom "The margin-bottom CSS property sets the margin area on the bottom of an element. A positive value places it farther from its neighbors, while a negative value places it closer.") property on the element instead._'
        },
        {
          name: "leftmargin",
          description: 'The margin of the left of the body. _This method is non-conforming, use CSS [`margin-left`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left "The margin-left CSS property sets the margin area on the left side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.") property on the element instead._'
        },
        {
          name: "link",
          description: 'Color of text for unvisited hypertext links. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color "The color CSS property sets the foreground color value of an element\'s text and text decorations, and sets the currentcolor value.") property in conjunction with the [`:link`](https://developer.mozilla.org/en-US/docs/Web/CSS/:link "The :link CSS pseudo-class represents an element that has not yet been visited. It matches every unvisited <a>, <area>, or <link> element that has an href attribute.") pseudo-class instead._'
        },
        {
          name: "onblur",
          description: "Function to call when the document loses focus."
        },
        {
          name: "onerror",
          description: "Function to call when the document fails to load properly."
        },
        {
          name: "onfocus",
          description: "Function to call when the document receives focus."
        },
        {
          name: "onload",
          description: "Function to call when the document has finished loading."
        },
        {
          name: "onredo",
          description: "Function to call when the user has moved forward in undo transaction history."
        },
        {
          name: "onresize",
          description: "Function to call when the document has been resized."
        },
        {
          name: "onundo",
          description: "Function to call when the user has moved backward in undo transaction history."
        },
        {
          name: "rightmargin",
          description: 'The margin of the right of the body. _This method is non-conforming, use CSS [`margin-right`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right "The margin-right CSS property sets the margin area on the right side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.") property on the element instead._'
        },
        {
          name: "text",
          description: 'Foreground color of text. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color "The color CSS property sets the foreground color value of an element\'s text and text decorations, and sets the currentcolor value.") property on the element instead._'
        },
        {
          name: "topmargin",
          description: 'The margin of the top of the body. _This method is non-conforming, use CSS [`margin-top`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-top "The margin-top CSS property sets the margin area on the top of an element. A positive value places it farther from its neighbors, while a negative value places it closer.") property on the element instead._'
        },
        {
          name: "vlink",
          description: 'Color of text for visited hypertext links. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color "The color CSS property sets the foreground color value of an element\'s text and text decorations, and sets the currentcolor value.") property in conjunction with the [`:visited`](https://developer.mozilla.org/en-US/docs/Web/CSS/:visited "The :visited CSS pseudo-class represents links that the user has already visited. For privacy reasons, the styles that can be modified using this selector are very limited.") pseudo-class instead._'
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/body"
        }
      ]
    },
    {
      name: "article",
      description: {
        kind: "markdown",
        value: "The article element represents a complete, or self-contained, composition in a document, page, application, or site and that is, in principle, independently distributable or reusable, e.g. in syndication. This could be a forum post, a magazine or newspaper article, a blog entry, a user-submitted comment, an interactive widget or gadget, or any other independent item of content. Each article should be identified, typically by including a heading (h1–h6 element) as a child of the article element."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/article"
        }
      ]
    },
    {
      name: "section",
      description: {
        kind: "markdown",
        value: "The section element represents a generic section of a document or application. A section, in this context, is a thematic grouping of content. Each section should be identified, typically by including a heading ( h1- h6 element) as a child of the section element."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/section"
        }
      ]
    },
    {
      name: "nav",
      description: {
        kind: "markdown",
        value: "The nav element represents a section of a page that links to other pages or to parts within the page: a section with navigation links."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/nav"
        }
      ]
    },
    {
      name: "aside",
      description: {
        kind: "markdown",
        value: "The aside element represents a section of a page that consists of content that is tangentially related to the content around the aside element, and which could be considered separate from that content. Such sections are often represented as sidebars in printed typography."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/aside"
        }
      ]
    },
    {
      name: "h1",
      description: {
        kind: "markdown",
        value: "The h1 element represents a section heading."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements"
        }
      ]
    },
    {
      name: "h2",
      description: {
        kind: "markdown",
        value: "The h2 element represents a section heading."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements"
        }
      ]
    },
    {
      name: "h3",
      description: {
        kind: "markdown",
        value: "The h3 element represents a section heading."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements"
        }
      ]
    },
    {
      name: "h4",
      description: {
        kind: "markdown",
        value: "The h4 element represents a section heading."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements"
        }
      ]
    },
    {
      name: "h5",
      description: {
        kind: "markdown",
        value: "The h5 element represents a section heading."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements"
        }
      ]
    },
    {
      name: "h6",
      description: {
        kind: "markdown",
        value: "The h6 element represents a section heading."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements"
        }
      ]
    },
    {
      name: "header",
      description: {
        kind: "markdown",
        value: "The header element represents introductory content for its nearest ancestor sectioning content or sectioning root element. A header typically contains a group of introductory or navigational aids. When the nearest ancestor sectioning content or sectioning root element is the body element, then it applies to the whole page."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/header"
        }
      ]
    },
    {
      name: "footer",
      description: {
        kind: "markdown",
        value: "The footer element represents a footer for its nearest ancestor sectioning content or sectioning root element. A footer typically contains information about its section such as who wrote it, links to related documents, copyright data, and the like."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/footer"
        }
      ]
    },
    {
      name: "address",
      description: {
        kind: "markdown",
        value: "The address element represents the contact information for its nearest article or body element ancestor. If that is the body element, then the contact information applies to the document as a whole."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/address"
        }
      ]
    },
    {
      name: "p",
      description: {
        kind: "markdown",
        value: "The p element represents a paragraph."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/p"
        }
      ]
    },
    {
      name: "hr",
      description: {
        kind: "markdown",
        value: "The hr element represents a paragraph-level thematic break, e.g. a scene change in a story, or a transition to another topic within a section of a reference book."
      },
      void: !0,
      attributes: [
        {
          name: "align",
          description: "Sets the alignment of the rule on the page. If no value is specified, the default value is `left`."
        },
        {
          name: "color",
          description: "Sets the color of the rule through color name or hexadecimal value."
        },
        {
          name: "noshade",
          description: "Sets the rule to have no shading."
        },
        {
          name: "size",
          description: "Sets the height, in pixels, of the rule."
        },
        {
          name: "width",
          description: "Sets the length of the rule on the page through a pixel or percentage value."
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/hr"
        }
      ]
    },
    {
      name: "pre",
      description: {
        kind: "markdown",
        value: "The pre element represents a block of preformatted text, in which structure is represented by typographic conventions rather than by elements."
      },
      attributes: [
        {
          name: "cols",
          description: 'Contains the _preferred_ count of characters that a line should have. It was a non-standard synonym of [`width`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/pre#attr-width). To achieve such an effect, use CSS [`width`](https://developer.mozilla.org/en-US/docs/Web/CSS/width "The width CSS property sets an element\'s width. By default it sets the width of the content area, but if box-sizing is set to border-box, it sets the width of the border area.") instead.'
        },
        {
          name: "width",
          description: 'Contains the _preferred_ count of characters that a line should have. Though technically still implemented, this attribute has no visual effect; to achieve such an effect, use CSS [`width`](https://developer.mozilla.org/en-US/docs/Web/CSS/width "The width CSS property sets an element\'s width. By default it sets the width of the content area, but if box-sizing is set to border-box, it sets the width of the border area.") instead.'
        },
        {
          name: "wrap",
          description: 'Is a _hint_ indicating how the overflow must happen. In modern browser this hint is ignored and no visual effect results in its present; to achieve such an effect, use CSS [`white-space`](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space "The white-space CSS property sets how white space inside an element is handled.") instead.'
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/pre"
        }
      ]
    },
    {
      name: "blockquote",
      description: {
        kind: "markdown",
        value: "The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a footer or cite element, and optionally with in-line changes such as annotations and abbreviations."
      },
      attributes: [
        {
          name: "cite",
          description: {
            kind: "markdown",
            value: "A URL that designates a source document or message for the information quoted. This attribute is intended to point to information explaining the context or the reference for the quote."
          }
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/blockquote"
        }
      ]
    },
    {
      name: "ol",
      description: {
        kind: "markdown",
        value: "The ol element represents a list of items, where the items have been intentionally ordered, such that changing the order would change the meaning of the document."
      },
      attributes: [
        {
          name: "reversed",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: "This Boolean attribute specifies that the items of the list are specified in reversed order."
          }
        },
        {
          name: "start",
          description: {
            kind: "markdown",
            value: 'This integer attribute specifies the start value for numbering the individual list items. Although the ordering type of list elements might be Roman numerals, such as XXXI, or letters, the value of start is always represented as a number. To start numbering elements from the letter "C", use `<ol start="3">`.\n\n**Note**: This attribute was deprecated in HTML4, but reintroduced in HTML5.'
          }
        },
        {
          name: "type",
          valueSet: "lt",
          description: {
            kind: "markdown",
            value: "Indicates the numbering type:\n\n*   `'a'` indicates lowercase letters,\n*   `'A'` indicates uppercase letters,\n*   `'i'` indicates lowercase Roman numerals,\n*   `'I'` indicates uppercase Roman numerals,\n*   and `'1'` indicates numbers (default).\n\nThe type set is used for the entire list unless a different [`type`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li#attr-type) attribute is used within an enclosed [`<li>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li \"The HTML <li> element is used to represent an item in a list. It must be contained in a parent element: an ordered list (<ol>), an unordered list (<ul>), or a menu (<menu>). In menus and unordered lists, list items are usually displayed using bullet points. In ordered lists, they are usually displayed with an ascending counter on the left, such as a number or letter.\") element.\n\n**Note:** This attribute was deprecated in HTML4, but reintroduced in HTML5.\n\nUnless the value of the list number matters (e.g. in legal or technical documents where items are to be referenced by their number/letter), the CSS [`list-style-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-type \"The list-style-type CSS property sets the marker (such as a disc, character, or custom counter style) of a list item element.\") property should be used instead."
          }
        },
        {
          name: "compact",
          description: 'This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute depends on the user agent and it doesn\'t work in all browsers.\n\n**Warning:** Do not use this attribute, as it has been deprecated: the [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol "The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To give an effect similar to the `compact` attribute, the [CSS](https://developer.mozilla.org/en-US/docs/CSS) property [`line-height`](https://developer.mozilla.org/en-US/docs/Web/CSS/line-height "The line-height CSS property sets the amount of space used for lines, such as in text. On block-level elements, it specifies the minimum height of line boxes within the element. On non-replaced inline elements, it specifies the height that is used to calculate line box height.") can be used with a value of `80%`.'
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/ol"
        }
      ]
    },
    {
      name: "ul",
      description: {
        kind: "markdown",
        value: "The ul element represents a list of items, where the order of the items is not important — that is, where changing the order would not materially change the meaning of the document."
      },
      attributes: [
        {
          name: "compact",
          description: 'This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute depends on the user agent and it doesn\'t work in all browsers.\n\n**Usage note: **Do not use this attribute, as it has been deprecated: the [`<ul>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ul "The HTML <ul> element represents an unordered list of items, typically rendered as a bulleted list.") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To give a similar effect as the `compact` attribute, the [CSS](https://developer.mozilla.org/en-US/docs/CSS) property [line-height](https://developer.mozilla.org/en-US/docs/CSS/line-height) can be used with a value of `80%`.'
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/ul"
        }
      ]
    },
    {
      name: "li",
      description: {
        kind: "markdown",
        value: "The li element represents a list item. If its parent element is an ol, ul, or menu element, then the element is an item of the parent element's list, as defined for those elements. Otherwise, the list item has no defined list-related relationship to any other li element."
      },
      attributes: [
        {
          name: "value",
          description: {
            kind: "markdown",
            value: 'This integer attribute indicates the current ordinal value of the list item as defined by the [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol "The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.") element. The only allowed value for this attribute is a number, even if the list is displayed with Roman numerals or letters. List items that follow this one continue numbering from the value set. The **value** attribute has no meaning for unordered lists ([`<ul>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ul "The HTML <ul> element represents an unordered list of items, typically rendered as a bulleted list.")) or for menus ([`<menu>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/menu "The HTML <menu> element represents a group of commands that a user can perform or activate. This includes both list menus, which might appear across the top of a screen, as well as context menus, such as those that might appear underneath a button after it has been clicked.")).\n\n**Note**: This attribute was deprecated in HTML4, but reintroduced in HTML5.\n\n**Note:** Prior to Gecko 9.0, negative values were incorrectly converted to 0. Starting in Gecko 9.0 all integer values are correctly parsed.'
          }
        },
        {
          name: "type",
          description: 'This character attribute indicates the numbering type:\n\n*   `a`: lowercase letters\n*   `A`: uppercase letters\n*   `i`: lowercase Roman numerals\n*   `I`: uppercase Roman numerals\n*   `1`: numbers\n\nThis type overrides the one used by its parent [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol "The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.") element, if any.\n\n**Usage note:** This attribute has been deprecated: use the CSS [`list-style-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-type "The list-style-type CSS property sets the marker (such as a disc, character, or custom counter style) of a list item element.") property instead.'
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/li"
        }
      ]
    },
    {
      name: "dl",
      description: {
        kind: "markdown",
        value: "The dl element represents an association list consisting of zero or more name-value groups (a description list). A name-value group consists of one or more names (dt elements) followed by one or more values (dd elements), ignoring any nodes other than dt and dd elements. Within a single dl element, there should not be more than one dt element for each name."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/dl"
        }
      ]
    },
    {
      name: "dt",
      description: {
        kind: "markdown",
        value: "The dt element represents the term, or name, part of a term-description group in a description list (dl element)."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/dt"
        }
      ]
    },
    {
      name: "dd",
      description: {
        kind: "markdown",
        value: "The dd element represents the description, definition, or value, part of a term-description group in a description list (dl element)."
      },
      attributes: [
        {
          name: "nowrap",
          description: "If the value of this attribute is set to `yes`, the definition text will not wrap. The default value is `no`."
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/dd"
        }
      ]
    },
    {
      name: "figure",
      description: {
        kind: "markdown",
        value: "The figure element represents some flow content, optionally with a caption, that is self-contained (like a complete sentence) and is typically referenced as a single unit from the main flow of the document."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/figure"
        }
      ]
    },
    {
      name: "figcaption",
      description: {
        kind: "markdown",
        value: "The figcaption element represents a caption or legend for the rest of the contents of the figcaption element's parent figure element, if any."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/figcaption"
        }
      ]
    },
    {
      name: "main",
      description: {
        kind: "markdown",
        value: "The main element represents the main content of the body of a document or application. The main content area consists of content that is directly related to or expands upon the central topic of a document or central functionality of an application."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/main"
        }
      ]
    },
    {
      name: "div",
      description: {
        kind: "markdown",
        value: "The div element has no special meaning at all. It represents its children. It can be used with the class, lang, and title attributes to mark up semantics common to a group of consecutive elements."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/div"
        }
      ]
    },
    {
      name: "a",
      description: {
        kind: "markdown",
        value: "If the a element has an href attribute, then it represents a hyperlink (a hypertext anchor) labeled by its contents."
      },
      attributes: [
        {
          name: "href",
          description: {
            kind: "markdown",
            value: 'Contains a URL or a URL fragment that the hyperlink points to.\nA URL fragment is a name preceded by a hash mark (`#`), which specifies an internal target location (an [`id`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-id) of an HTML element) within the current document. URLs are not restricted to Web (HTTP)-based documents, but can use any protocol supported by the browser. For example, [`file:`](https://en.wikipedia.org/wiki/File_URI_scheme), `ftp:`, and `mailto:` work in most browsers.\n\n**Note:** You can use `href="#top"` or the empty fragment `href="#"` to link to the top of the current page. [This behavior is specified by HTML5](https://www.w3.org/TR/html5/single-page.html#scroll-to-fragid).'
          }
        },
        {
          name: "target",
          valueSet: "target",
          description: {
            kind: "markdown",
            value: 'Specifies where to display the linked URL. It is a name of, or keyword for, a _browsing context_: a tab, window, or `<iframe>`. The following keywords have special meanings:\n\n*   `_self`: Load the URL into the same browsing context as the current one. This is the default behavior.\n*   `_blank`: Load the URL into a new browsing context. This is usually a tab, but users can configure browsers to use new windows instead.\n*   `_parent`: Load the URL into the parent browsing context of the current one. If there is no parent, this behaves the same way as `_self`.\n*   `_top`: Load the URL into the top-level browsing context (that is, the "highest" browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this behaves the same way as `_self`.\n\n**Note:** When using `target`, consider adding `rel="noreferrer"` to avoid exploitation of the `window.opener` API.\n\n**Note:** Linking to another page using `target="_blank"` will run the new page on the same process as your page. If the new page is executing expensive JS, your page\'s performance may suffer. To avoid this use `rel="noopener"`.'
          }
        },
        {
          name: "download",
          description: {
            kind: "markdown",
            value: "This attribute instructs browsers to download a URL instead of navigating to it, so the user will be prompted to save it as a local file. If the attribute has a value, it is used as the pre-filled file name in the Save prompt (the user can still change the file name if they want). There are no restrictions on allowed values, though `/` and `\\` are converted to underscores. Most file systems limit some punctuation in file names, and browsers will adjust the suggested name accordingly.\n\n**Notes:**\n\n*   This attribute only works for [same-origin URLs](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy).\n*   Although HTTP(s) URLs need to be in the same-origin, [`blob:` URLs](https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL) and [`data:` URLs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) are allowed so that content generated by JavaScript, such as pictures created in an image-editor Web app, can be downloaded.\n*   If the HTTP header [`Content-Disposition:`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition) gives a different filename than this attribute, the HTTP header takes priority over this attribute.\n*   If `Content-Disposition:` is set to `inline`, Firefox prioritizes `Content-Disposition`, like the filename case, while Chrome prioritizes the `download` attribute."
          }
        },
        {
          name: "ping",
          description: {
            kind: "markdown",
            value: 'Contains a space-separated list of URLs to which, when the hyperlink is followed, [`POST`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST "The HTTP POST method sends data to the server. The type of the body of the request is indicated by the Content-Type header.") requests with the body `PING` will be sent by the browser (in the background). Typically used for tracking.'
          }
        },
        {
          name: "rel",
          description: {
            kind: "markdown",
            value: "Specifies the relationship of the target object to the link object. The value is a space-separated list of [link types](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types)."
          }
        },
        {
          name: "hreflang",
          description: {
            kind: "markdown",
            value: 'This attribute indicates the human language of the linked resource. It is purely advisory, with no built-in functionality. Allowed values are determined by [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt "Tags for Identifying Languages").'
          }
        },
        {
          name: "type",
          description: {
            kind: "markdown",
            value: 'Specifies the media type in the form of a [MIME type](https://developer.mozilla.org/en-US/docs/Glossary/MIME_type "MIME type: A MIME type (now properly called "media type", but also sometimes "content type") is a string sent along with a file indicating the type of the file (describing the content format, for example, a sound file might be labeled audio/ogg, or an image file image/png).") for the linked URL. It is purely advisory, with no built-in functionality.'
          }
        },
        {
          name: "referrerpolicy",
          description: "Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer) to send when fetching the URL:\n\n*   `'no-referrer'` means the `Referer:` header will not be sent.\n*   `'no-referrer-when-downgrade'` means no `Referer:` header will be sent when navigating to an origin without HTTPS. This is the default behavior.\n*   `'origin'` means the referrer will be the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) of the page, not including information after the domain.\n*   `'origin-when-cross-origin'` meaning that navigations to other origins will be limited to the scheme, the host and the port, while navigations on the same origin will include the referrer's path.\n*   `'strict-origin-when-cross-origin'`\n*   `'unsafe-url'` means the referrer will include the origin and path, but not the fragment, password, or username. This is unsafe because it can leak data from secure URLs to insecure ones."
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/a"
        }
      ]
    },
    {
      name: "em",
      description: {
        kind: "markdown",
        value: "The em element represents stress emphasis of its contents."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/em"
        }
      ]
    },
    {
      name: "strong",
      description: {
        kind: "markdown",
        value: "The strong element represents strong importance, seriousness, or urgency for its contents."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/strong"
        }
      ]
    },
    {
      name: "small",
      description: {
        kind: "markdown",
        value: "The small element represents side comments such as small print."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/small"
        }
      ]
    },
    {
      name: "s",
      description: {
        kind: "markdown",
        value: "The s element represents contents that are no longer accurate or no longer relevant."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/s"
        }
      ]
    },
    {
      name: "cite",
      description: {
        kind: "markdown",
        value: "The cite element represents a reference to a creative work. It must include the title of the work or the name of the author(person, people or organization) or an URL reference, or a reference in abbreviated form as per the conventions used for the addition of citation metadata."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/cite"
        }
      ]
    },
    {
      name: "q",
      description: {
        kind: "markdown",
        value: "The q element represents some phrasing content quoted from another source."
      },
      attributes: [
        {
          name: "cite",
          description: {
            kind: "markdown",
            value: "The value of this attribute is a URL that designates a source document or message for the information quoted. This attribute is intended to point to information explaining the context or the reference for the quote."
          }
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/q"
        }
      ]
    },
    {
      name: "dfn",
      description: {
        kind: "markdown",
        value: "The dfn element represents the defining instance of a term. The paragraph, description list group, or section that is the nearest ancestor of the dfn element must also contain the definition(s) for the term given by the dfn element."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/dfn"
        }
      ]
    },
    {
      name: "abbr",
      description: {
        kind: "markdown",
        value: "The abbr element represents an abbreviation or acronym, optionally with its expansion. The title attribute may be used to provide an expansion of the abbreviation. The attribute, if specified, must contain an expansion of the abbreviation, and nothing else."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/abbr"
        }
      ]
    },
    {
      name: "ruby",
      description: {
        kind: "markdown",
        value: "The ruby element allows one or more spans of phrasing content to be marked with ruby annotations. Ruby annotations are short runs of text presented alongside base text, primarily used in East Asian typography as a guide for pronunciation or to include other annotations. In Japanese, this form of typography is also known as furigana. Ruby text can appear on either side, and sometimes both sides, of the base text, and it is possible to control its position using CSS. A more complete introduction to ruby can be found in the Use Cases & Exploratory Approaches for Ruby Markup document as well as in CSS Ruby Module Level 1. [RUBY-UC] [CSSRUBY]"
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/ruby"
        }
      ]
    },
    {
      name: "rb",
      description: {
        kind: "markdown",
        value: "The rb element marks the base text component of a ruby annotation. When it is the child of a ruby element, it doesn't represent anything itself, but its parent ruby element uses it as part of determining what it represents."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/rb"
        }
      ]
    },
    {
      name: "rt",
      description: {
        kind: "markdown",
        value: "The rt element marks the ruby text component of a ruby annotation. When it is the child of a ruby element or of an rtc element that is itself the child of a ruby element, it doesn't represent anything itself, but its ancestor ruby element uses it as part of determining what it represents."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/rt"
        }
      ]
    },
    {
      name: "rp",
      description: {
        kind: "markdown",
        value: "The rp element is used to provide fallback text to be shown by user agents that don't support ruby annotations. One widespread convention is to provide parentheses around the ruby text component of a ruby annotation."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/rp"
        }
      ]
    },
    {
      name: "time",
      description: {
        kind: "markdown",
        value: "The time element represents its contents, along with a machine-readable form of those contents in the datetime attribute. The kind of content is limited to various kinds of dates, times, time-zone offsets, and durations, as described below."
      },
      attributes: [
        {
          name: "datetime",
          description: {
            kind: "markdown",
            value: "This attribute indicates the time and/or date of the element and must be in one of the formats described below."
          }
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/time"
        }
      ]
    },
    {
      name: "code",
      description: {
        kind: "markdown",
        value: "The code element represents a fragment of computer code. This could be an XML element name, a file name, a computer program, or any other string that a computer would recognize."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/code"
        }
      ]
    },
    {
      name: "var",
      description: {
        kind: "markdown",
        value: "The var element represents a variable. This could be an actual variable in a mathematical expression or programming context, an identifier representing a constant, a symbol identifying a physical quantity, a function parameter, or just be a term used as a placeholder in prose."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/var"
        }
      ]
    },
    {
      name: "samp",
      description: {
        kind: "markdown",
        value: "The samp element represents sample or quoted output from another program or computing system."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/samp"
        }
      ]
    },
    {
      name: "kbd",
      description: {
        kind: "markdown",
        value: "The kbd element represents user input (typically keyboard input, although it may also be used to represent other input, such as voice commands)."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/kbd"
        }
      ]
    },
    {
      name: "sub",
      description: {
        kind: "markdown",
        value: "The sub element represents a subscript."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/sub"
        }
      ]
    },
    {
      name: "sup",
      description: {
        kind: "markdown",
        value: "The sup element represents a superscript."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/sup"
        }
      ]
    },
    {
      name: "i",
      description: {
        kind: "markdown",
        value: "The i element represents a span of text in an alternate voice or mood, or otherwise offset from the normal prose in a manner indicating a different quality of text, such as a taxonomic designation, a technical term, an idiomatic phrase from another language, transliteration, a thought, or a ship name in Western texts."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/i"
        }
      ]
    },
    {
      name: "b",
      description: {
        kind: "markdown",
        value: "The b element represents a span of text to which attention is being drawn for utilitarian purposes without conveying any extra importance and with no implication of an alternate voice or mood, such as key words in a document abstract, product names in a review, actionable words in interactive text-driven software, or an article lede."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/b"
        }
      ]
    },
    {
      name: "u",
      description: {
        kind: "markdown",
        value: "The u element represents a span of text with an unarticulated, though explicitly rendered, non-textual annotation, such as labeling the text as being a proper name in Chinese text (a Chinese proper name mark), or labeling the text as being misspelt."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/u"
        }
      ]
    },
    {
      name: "mark",
      description: {
        kind: "markdown",
        value: "The mark element represents a run of text in one document marked or highlighted for reference purposes, due to its relevance in another context. When used in a quotation or other block of text referred to from the prose, it indicates a highlight that was not originally present but which has been added to bring the reader's attention to a part of the text that might not have been considered important by the original author when the block was originally written, but which is now under previously unexpected scrutiny. When used in the main prose of a document, it indicates a part of the document that has been highlighted due to its likely relevance to the user's current activity."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/mark"
        }
      ]
    },
    {
      name: "bdi",
      description: {
        kind: "markdown",
        value: "The bdi element represents a span of text that is to be isolated from its surroundings for the purposes of bidirectional text formatting. [BIDI]"
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/bdi"
        }
      ]
    },
    {
      name: "bdo",
      description: {
        kind: "markdown",
        value: "The bdo element represents explicit text directionality formatting control for its children. It allows authors to override the Unicode bidirectional algorithm by explicitly specifying a direction override. [BIDI]"
      },
      attributes: [
        {
          name: "dir",
          description: "The direction in which text should be rendered in this element's contents. Possible values are:\n\n*   `ltr`: Indicates that the text should go in a left-to-right direction.\n*   `rtl`: Indicates that the text should go in a right-to-left direction."
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/bdo"
        }
      ]
    },
    {
      name: "span",
      description: {
        kind: "markdown",
        value: "The span element doesn't mean anything on its own, but can be useful when used together with the global attributes, e.g. class, lang, or dir. It represents its children."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/span"
        }
      ]
    },
    {
      name: "br",
      description: {
        kind: "markdown",
        value: "The br element represents a line break."
      },
      void: !0,
      attributes: [
        {
          name: "clear",
          description: "Indicates where to begin the next line after the break."
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/br"
        }
      ]
    },
    {
      name: "wbr",
      description: {
        kind: "markdown",
        value: "The wbr element represents a line break opportunity."
      },
      void: !0,
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/wbr"
        }
      ]
    },
    {
      name: "ins",
      description: {
        kind: "markdown",
        value: "The ins element represents an addition to the document."
      },
      attributes: [
        {
          name: "cite",
          description: "This attribute defines the URI of a resource that explains the change, such as a link to meeting minutes or a ticket in a troubleshooting system."
        },
        {
          name: "datetime",
          description: 'This attribute indicates the time and date of the change and must be a valid date with an optional time string. If the value cannot be parsed as a date with an optional time string, the element does not have an associated time stamp. For the format of the string without a time, see [Format of a valid date string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_date_string "Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats "Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article."). The format of the string if it includes both date and time is covered in [Format of a valid local date and time string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_local_date_and_time_string "Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats "Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.").'
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/ins"
        }
      ]
    },
    {
      name: "del",
      description: {
        kind: "markdown",
        value: "The del element represents a removal from the document."
      },
      attributes: [
        {
          name: "cite",
          description: {
            kind: "markdown",
            value: "A URI for a resource that explains the change (for example, meeting minutes)."
          }
        },
        {
          name: "datetime",
          description: {
            kind: "markdown",
            value: 'This attribute indicates the time and date of the change and must be a valid date string with an optional time. If the value cannot be parsed as a date with an optional time string, the element does not have an associated time stamp. For the format of the string without a time, see [Format of a valid date string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_date_string "Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats "Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article."). The format of the string if it includes both date and time is covered in [Format of a valid local date and time string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_local_date_and_time_string "Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats "Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.").'
          }
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/del"
        }
      ]
    },
    {
      name: "picture",
      description: {
        kind: "markdown",
        value: "The picture element is a container which provides multiple sources to its contained img element to allow authors to declaratively control or give hints to the user agent about which image resource to use, based on the screen pixel density, viewport size, image format, and other factors. It represents its children."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/picture"
        }
      ]
    },
    {
      name: "img",
      description: {
        kind: "markdown",
        value: "An img element represents an image."
      },
      void: !0,
      attributes: [
        {
          name: "alt",
          description: {
            kind: "markdown",
            value: 'This attribute defines an alternative text description of the image.\n\n**Note:** Browsers do not always display the image referenced by the element. This is the case for non-graphical browsers (including those used by people with visual impairments), if the user chooses not to display images, or if the browser cannot display the image because it is invalid or an [unsupported type](#Supported_image_formats). In these cases, the browser may replace the image with the text defined in this element\'s `alt` attribute. You should, for these reasons and others, provide a useful value for `alt` whenever possible.\n\n**Note:** Omitting this attribute altogether indicates that the image is a key part of the content, and no textual equivalent is available. Setting this attribute to an empty string (`alt=""`) indicates that this image is _not_ a key part of the content (decorative), and that non-visual browsers may omit it from rendering.'
          }
        },
        {
          name: "src",
          description: {
            kind: "markdown",
            value: "The image URL. This attribute is mandatory for the `<img>` element. On browsers supporting `srcset`, `src` is treated like a candidate image with a pixel density descriptor `1x` unless an image with this pixel density descriptor is already defined in `srcset,` or unless `srcset` contains '`w`' descriptors."
          }
        },
        {
          name: "srcset",
          description: {
            kind: "markdown",
            value: "A list of one or more strings separated by commas indicating a set of possible image sources for the user agent to use. Each string is composed of:\n\n1.  a URL to an image,\n2.  optionally, whitespace followed by one of:\n    *   A width descriptor, or a positive integer directly followed by '`w`'. The width descriptor is divided by the source size given in the `sizes` attribute to calculate the effective pixel density.\n    *   A pixel density descriptor, which is a positive floating point number directly followed by '`x`'.\n\nIf no descriptor is specified, the source is assigned the default descriptor: `1x`.\n\nIt is incorrect to mix width descriptors and pixel density descriptors in the same `srcset` attribute. Duplicate descriptors (for instance, two sources in the same `srcset` which are both described with '`2x`') are also invalid.\n\nThe user agent selects any one of the available sources at its discretion. This provides them with significant leeway to tailor their selection based on things like user preferences or bandwidth conditions. See our [Responsive images](https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images) tutorial for an example."
          }
        },
        {
          name: "crossorigin",
          valueSet: "xo",
          description: {
            kind: "markdown",
            value: 'This enumerated attribute indicates if the fetching of the related image must be done using CORS or not. [CORS-enabled images](https://developer.mozilla.org/en-US/docs/CORS_Enabled_Image) can be reused in the [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas "Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.") element without being "[tainted](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image#What_is_a_tainted_canvas)." The allowed values are:\n`anonymous`\n\nA cross-origin request (i.e., with `Origin:` HTTP header) is performed, but no credential is sent (i.e., no cookie, X.509 certificate, or HTTP Basic authentication). If the server does not give credentials to the origin site (by not setting the [`Access-Control-Allow-Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin "The Access-Control-Allow-Origin response header indicates whether the response can be shared with requesting code from the given origin.") HTTP header), the image will be tainted and its usage restricted.\n\n`use-credentials`\n\nA cross-origin request (i.e., with the [`Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin "The Origin request header indicates where a fetch originates from. It doesn\'t include any path information, but only the server name. It is sent with CORS requests, as well as with POST requests. It is similar to the Referer header, but, unlike this header, it doesn\'t disclose the whole path.") HTTP header) performed along with credentials sent (i.e., a cookie, certificate, or HTTP Basic authentication). If the server does not give credentials to the origin site (through the `Access-Control-Allow-Credentials` HTTP header), the image will be tainted and its usage restricted.\n\nIf the attribute is not present, the resource is fetched without a CORS request (i.e., without sending the `Origin` HTTP header), preventing its non-tainted usage in [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas "Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.") elements. If invalid, it is handled as if the `anonymous` value was used. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes) for additional information.'
          }
        },
        {
          name: "usemap",
          description: {
            kind: "markdown",
            value: 'The partial URL (starting with \'#\') of an [image map](https://developer.mozilla.org/en-US/docs/HTML/Element/map) associated with the element.\n\n**Note:** You cannot use this attribute if the `<img>` element is a descendant of an [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a "The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL.") or [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button "The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.") element.'
          }
        },
        {
          name: "ismap",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: 'This Boolean attribute indicates that the image is part of a server-side map. If so, the precise coordinates of a click are sent to the server.\n\n**Note:** This attribute is allowed only if the `<img>` element is a descendant of an [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a "The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL.") element with a valid [`href`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-href) attribute.'
          }
        },
        {
          name: "width",
          description: {
            kind: "markdown",
            value: "The intrinsic width of the image in pixels."
          }
        },
        {
          name: "height",
          description: {
            kind: "markdown",
            value: "The intrinsic height of the image in pixels."
          }
        },
        {
          name: "decoding",
          valueSet: "decoding",
          description: {
            kind: "markdown",
            value: "Provides an image decoding hint to the browser. The allowed values are:\n`sync`\n\nDecode the image synchronously for atomic presentation with other content.\n\n`async`\n\nDecode the image asynchronously to reduce delay in presenting other content.\n\n`auto`\n\nDefault mode, which indicates no preference for the decoding mode. The browser decides what is best for the user."
          }
        },
        {
          name: "loading",
          valueSet: "loading",
          description: {
            kind: "markdown",
            value: "Indicates how the browser should load the image."
          }
        },
        {
          name: "referrerpolicy",
          valueSet: "referrerpolicy",
          description: {
            kind: "markdown",
            value: "A string indicating which referrer to use when fetching the resource:\n\n*   `no-referrer:` The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent.\n*   `no-referrer-when-downgrade:` No `Referer` header will be sent when navigating to an origin without TLS (HTTPS). This is a user agent’s default behavior if no policy is otherwise specified.\n*   `origin:` The `Referer` header will include the page of origin's scheme, the host, and the port.\n*   `origin-when-cross-origin:` Navigating to other origins will limit the included referral data to the scheme, the host and the port, while navigating from the same origin will include the referrer's full path.\n*   `unsafe-url:` The `Referer` header will include the origin and the path, but not the fragment, password, or username. This case is unsafe because it can leak origins and paths from TLS-protected resources to insecure origins."
          }
        },
        {
          name: "sizes",
          description: {
            kind: "markdown",
            value: "A list of one or more strings separated by commas indicating a set of source sizes. Each source size consists of:\n\n1.  a media condition. This must be omitted for the last item.\n2.  a source size value.\n\nSource size values specify the intended display size of the image. User agents use the current source size to select one of the sources supplied by the `srcset` attribute, when those sources are described using width ('`w`') descriptors. The selected source size affects the intrinsic size of the image (the image’s display size if no CSS styling is applied). If the `srcset` attribute is absent, or contains no values with a width (`w`) descriptor, then the `sizes` attribute has no effect."
          }
        },
        {
          name: "importance",
          description: "Indicates the relative importance of the resource. Priority hints are delegated using the values:"
        },
        {
          name: "importance",
          description: "`auto`: Indicates **no preference**. The browser may use its own heuristics to decide the priority of the image.\n\n`high`: Indicates to the browser that the image is of **high** priority.\n\n`low`: Indicates to the browser that the image is of **low** priority."
        },
        {
          name: "intrinsicsize",
          description: "This attribute tells the browser to ignore the actual intrinsic size of the image and pretend it’s the size specified in the attribute. Specifically, the image would raster at these dimensions and `naturalWidth`/`naturalHeight` on images would return the values specified in this attribute. [Explainer](https://github.com/ojanvafai/intrinsicsize-attribute), [examples](https://googlechrome.github.io/samples/intrinsic-size/index.html)"
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/img"
        }
      ]
    },
    {
      name: "iframe",
      description: {
        kind: "markdown",
        value: "The iframe element represents a nested browsing context."
      },
      attributes: [
        {
          name: "src",
          description: {
            kind: "markdown",
            value: 'The URL of the page to embed. Use a value of `about:blank` to embed an empty page that conforms to the [same-origin policy](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy#Inherited_origins). Also note that programatically removing an `<iframe>`\'s src attribute (e.g. via [`Element.removeAttribute()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/removeAttribute "The Element method removeAttribute() removes the attribute with the specified name from the element.")) causes `about:blank` to be loaded in the frame in Firefox (from version 65), Chromium-based browsers, and Safari/iOS.'
          }
        },
        {
          name: "srcdoc",
          description: {
            kind: "markdown",
            value: "Inline HTML to embed, overriding the `src` attribute. If a browser does not support the `srcdoc` attribute, it will fall back to the URL in the `src` attribute."
          }
        },
        {
          name: "name",
          description: {
            kind: "markdown",
            value: 'A targetable name for the embedded browsing context. This can be used in the `target` attribute of the [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a "The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL."), [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form "The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server."), or [`<base>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base "The HTML <base> element specifies the base URL to use for all relative URLs contained within a document. There can be only one <base> element in a document.") elements; the `formtarget` attribute of the [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") or [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button "The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.") elements; or the `windowName` parameter in the [`window.open()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/open "The Window interface\'s open() method loads the specified resource into the browsing context (window, <iframe> or tab) with the specified name. If the name doesn\'t exist, then a new window is opened and the specified resource is loaded into its browsing context.") method.'
          }
        },
        {
          name: "sandbox",
          valueSet: "sb",
          description: {
            kind: "markdown",
            value: 'Applies extra restrictions to the content in the frame. The value of the attribute can either be empty to apply all restrictions, or space-separated tokens to lift particular restrictions:\n\n*   `allow-forms`: Allows the resource to submit forms. If this keyword is not used, form submission is blocked.\n*   `allow-modals`: Lets the resource [open modal windows](https://html.spec.whatwg.org/multipage/origin.html#sandboxed-modals-flag).\n*   `allow-orientation-lock`: Lets the resource [lock the screen orientation](https://developer.mozilla.org/en-US/docs/Web/API/Screen/lockOrientation).\n*   `allow-pointer-lock`: Lets the resource use the [Pointer Lock API](https://developer.mozilla.org/en-US/docs/WebAPI/Pointer_Lock).\n*   `allow-popups`: Allows popups (such as `window.open()`, `target="_blank"`, or `showModalDialog()`). If this keyword is not used, the popup will silently fail to open.\n*   `allow-popups-to-escape-sandbox`: Lets the sandboxed document open new windows without those windows inheriting the sandboxing. For example, this can safely sandbox an advertisement without forcing the same restrictions upon the page the ad links to.\n*   `allow-presentation`: Lets the resource start a [presentation session](https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest).\n*   `allow-same-origin`: If this token is not used, the resource is treated as being from a special origin that always fails the [same-origin policy](https://developer.mozilla.org/en-US/docs/Glossary/same-origin_policy "same-origin policy: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin.").\n*   `allow-scripts`: Lets the resource run scripts (but not create popup windows).\n*   `allow-storage-access-by-user-activation` : Lets the resource request access to the parent\'s storage capabilities with the [Storage Access API](https://developer.mozilla.org/en-US/docs/Web/API/Storage_Access_API).\n*   `allow-top-navigation`: Lets the resource navigate the top-level browsing context (the one named `_top`).\n*   `allow-top-navigation-by-user-activation`: Lets the resource navigate the top-level browsing context, but only if initiated by a user gesture.\n\n**Notes about sandboxing:**\n\n*   When the embedded document has the same origin as the embedding page, it is **strongly discouraged** to use both `allow-scripts` and `allow-same-origin`, as that lets the embedded document remove the `sandbox` attribute — making it no more secure than not using the `sandbox` attribute at all.\n*   Sandboxing is useless if the attacker can display content outside a sandboxed `iframe` — such as if the viewer opens the frame in a new tab. Such content should be also served from a _separate origin_ to limit potential damage.\n*   The `sandbox` attribute is unsupported in Internet Explorer 9 and earlier.'
          }
        },
        {
          name: "seamless",
          valueSet: "v"
        },
        {
          name: "allowfullscreen",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: 'Set to `true` if the `<iframe>` can activate fullscreen mode by calling the [`requestFullscreen()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullscreen "The Element.requestFullscreen() method issues an asynchronous request to make the element be displayed in full-screen mode.") method.\nThis attribute is considered a legacy attribute and redefined as `allow="fullscreen"`.'
          }
        },
        {
          name: "width",
          description: {
            kind: "markdown",
            value: "The width of the frame in CSS pixels. Default is `300`."
          }
        },
        {
          name: "height",
          description: {
            kind: "markdown",
            value: "The height of the frame in CSS pixels. Default is `150`."
          }
        },
        {
          name: "allow",
          description: "Specifies a [feature policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Feature_Policy) for the `<iframe>`."
        },
        {
          name: "allowpaymentrequest",
          description: "Set to `true` if a cross-origin `<iframe>` should be allowed to invoke the [Payment Request API](https://developer.mozilla.org/en-US/docs/Web/API/Payment_Request_API)."
        },
        {
          name: "allowpaymentrequest",
          description: 'This attribute is considered a legacy attribute and redefined as `allow="payment"`.'
        },
        {
          name: "csp",
          description: 'A [Content Security Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) enforced for the embedded resource. See [`HTMLIFrameElement.csp`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/csp "The csp property of the HTMLIFrameElement interface specifies the Content Security Policy that an embedded document must agree to enforce upon itself.") for details.'
        },
        {
          name: "importance",
          description: "The download priority of the resource in the `<iframe>`'s `src` attribute. Allowed values:\n\n`auto` (default)\n\nNo preference. The browser uses its own heuristics to decide the priority of the resource.\n\n`high`\n\nThe resource should be downloaded before other lower-priority page resources.\n\n`low`\n\nThe resource should be downloaded after other higher-priority page resources."
        },
        {
          name: "referrerpolicy",
          description: 'Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/API/Document/referrer) to send when fetching the frame\'s resource:\n\n*   `no-referrer`: The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer "The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.") header will not be sent.\n*   `no-referrer-when-downgrade` (default): The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer "The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.") header will not be sent to [origin](https://developer.mozilla.org/en-US/docs/Glossary/origin "origin: Web content\'s origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it. Two objects have the same origin only when the scheme, host, and port all match.")s without [TLS](https://developer.mozilla.org/en-US/docs/Glossary/TLS "TLS: Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), is a protocol used by applications to communicate securely across a network, preventing tampering with and eavesdropping on email, web browsing, messaging, and other protocols.") ([HTTPS](https://developer.mozilla.org/en-US/docs/Glossary/HTTPS "HTTPS: HTTPS (HTTP Secure) is an encrypted version of the HTTP protocol. It usually uses SSL or TLS to encrypt all communication between a client and a server. This secure connection allows clients to safely exchange sensitive data with a server, for example for banking activities or online shopping.")).\n*   `origin`: The sent referrer will be limited to the origin of the referring page: its [scheme](https://developer.mozilla.org/en-US/docs/Archive/Mozilla/URIScheme), [host](https://developer.mozilla.org/en-US/docs/Glossary/host "host: A host is a device connected to the Internet (or a local network). Some hosts called servers offer additional services like serving webpages or storing files and emails."), and [port](https://developer.mozilla.org/en-US/docs/Glossary/port "port: For a computer connected to a network with an IP address, a port is a communication endpoint. Ports are designated by numbers, and below 1024 each port is associated by default with a specific protocol.").\n*   `origin-when-cross-origin`: The referrer sent to other origins will be limited to the scheme, the host, and the port. Navigations on the same origin will still include the path.\n*   `same-origin`: A referrer will be sent for [same origin](https://developer.mozilla.org/en-US/docs/Glossary/Same-origin_policy "same origin: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin."), but cross-origin requests will contain no referrer information.\n*   `strict-origin`: Only send the origin of the document as the referrer when the protocol security level stays the same (HTTPS→HTTPS), but don\'t send it to a less secure destination (HTTPS→HTTP).\n*   `strict-origin-when-cross-origin`: Send a full URL when performing a same-origin request, only send the origin when the protocol security level stays the same (HTTPS→HTTPS), and send no header to a less secure destination (HTTPS→HTTP).\n*   `unsafe-url`: The referrer will include the origin _and_ the path (but not the [fragment](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/hash), [password](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/password), or [username](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/username)). **This value is unsafe**, because it leaks origins and paths from TLS-protected resources to insecure origins.'
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/iframe"
        }
      ]
    },
    {
      name: "embed",
      description: {
        kind: "markdown",
        value: "The embed element provides an integration point for an external (typically non-HTML) application or interactive content."
      },
      void: !0,
      attributes: [
        {
          name: "src",
          description: {
            kind: "markdown",
            value: "The URL of the resource being embedded."
          }
        },
        {
          name: "type",
          description: {
            kind: "markdown",
            value: "The MIME type to use to select the plug-in to instantiate."
          }
        },
        {
          name: "width",
          description: {
            kind: "markdown",
            value: "The displayed width of the resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). This must be an absolute value; percentages are _not_ allowed."
          }
        },
        {
          name: "height",
          description: {
            kind: "markdown",
            value: "The displayed height of the resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). This must be an absolute value; percentages are _not_ allowed."
          }
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/embed"
        }
      ]
    },
    {
      name: "object",
      description: {
        kind: "markdown",
        value: "The object element can represent an external resource, which, depending on the type of the resource, will either be treated as an image, as a nested browsing context, or as an external resource to be processed by a plugin."
      },
      attributes: [
        {
          name: "data",
          description: {
            kind: "markdown",
            value: "The address of the resource as a valid URL. At least one of **data** and **type** must be defined."
          }
        },
        {
          name: "type",
          description: {
            kind: "markdown",
            value: "The [content type](https://developer.mozilla.org/en-US/docs/Glossary/Content_type) of the resource specified by **data**. At least one of **data** and **type** must be defined."
          }
        },
        {
          name: "typemustmatch",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: "This Boolean attribute indicates if the **type** attribute and the actual [content type](https://developer.mozilla.org/en-US/docs/Glossary/Content_type) of the resource must match to be used."
          }
        },
        {
          name: "name",
          description: {
            kind: "markdown",
            value: "The name of valid browsing context (HTML5), or the name of the control (HTML 4)."
          }
        },
        {
          name: "usemap",
          description: {
            kind: "markdown",
            value: "A hash-name reference to a [`<map>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/map \"The HTML <map> element is used with <area> elements to define an image map (a clickable link area).\") element; that is a '#' followed by the value of a [`name`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/map#attr-name) of a map element."
          }
        },
        {
          name: "form",
          description: {
            kind: "markdown",
            value: 'The form element, if any, that the object element is associated with (its _form owner_). The value of the attribute must be an ID of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form "The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.") element in the same document.'
          }
        },
        {
          name: "width",
          description: {
            kind: "markdown",
            value: "The width of the display resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). -- (Absolute values only. [NO percentages](https://html.spec.whatwg.org/multipage/embedded-content.html#dimension-attributes))"
          }
        },
        {
          name: "height",
          description: {
            kind: "markdown",
            value: "The height of the displayed resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). -- (Absolute values only. [NO percentages](https://html.spec.whatwg.org/multipage/embedded-content.html#dimension-attributes))"
          }
        },
        {
          name: "archive",
          description: "A space-separated list of URIs for archives of resources for the object."
        },
        {
          name: "border",
          description: "The width of a border around the control, in pixels."
        },
        {
          name: "classid",
          description: "The URI of the object's implementation. It can be used together with, or in place of, the **data** attribute."
        },
        {
          name: "codebase",
          description: "The base path used to resolve relative URIs specified by **classid**, **data**, or **archive**. If not specified, the default is the base URI of the current document."
        },
        {
          name: "codetype",
          description: "The content type of the data specified by **classid**."
        },
        {
          name: "declare",
          description: "The presence of this Boolean attribute makes this element a declaration only. The object must be instantiated by a subsequent `<object>` element. In HTML5, repeat the <object> element completely each that that the resource is reused."
        },
        {
          name: "standby",
          description: "A message that the browser can show while loading the object's implementation and data."
        },
        {
          name: "tabindex",
          description: "The position of the element in the tabbing navigation order for the current document."
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/object"
        }
      ]
    },
    {
      name: "param",
      description: {
        kind: "markdown",
        value: "The param element defines parameters for plugins invoked by object elements. It does not represent anything on its own."
      },
      void: !0,
      attributes: [
        {
          name: "name",
          description: {
            kind: "markdown",
            value: "Name of the parameter."
          }
        },
        {
          name: "value",
          description: {
            kind: "markdown",
            value: "Specifies the value of the parameter."
          }
        },
        {
          name: "type",
          description: 'Only used if the `valuetype` is set to "ref". Specifies the MIME type of values found at the URI specified by value.'
        },
        {
          name: "valuetype",
          description: 'Specifies the type of the `value` attribute. Possible values are:\n\n*   data: Default value. The value is passed to the object\'s implementation as a string.\n*   ref: The value is a URI to a resource where run-time values are stored.\n*   object: An ID of another [`<object>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/object "The HTML <object> element represents an external resource, which can be treated as an image, a nested browsing context, or a resource to be handled by a plugin.") in the same document.'
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/param"
        }
      ]
    },
    {
      name: "video",
      description: {
        kind: "markdown",
        value: "A video element is used for playing videos or movies, and audio files with captions."
      },
      attributes: [
        {
          name: "src"
        },
        {
          name: "crossorigin",
          valueSet: "xo"
        },
        {
          name: "poster"
        },
        {
          name: "preload",
          valueSet: "pl"
        },
        {
          name: "autoplay",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: 'A Boolean attribute; if specified, the video automatically begins to play back as soon as it can do so without stopping to finish loading the data.\n**Note**: Sites that automatically play audio (or video with an audio track) can be an unpleasant experience for users, so it should be avoided when possible. If you must offer autoplay functionality, you should make it opt-in (requiring a user to specifically enable it). However, this can be useful when creating media elements whose source will be set at a later time, under user control.\n\nTo disable video autoplay, `autoplay="false"` will not work; the video will autoplay if the attribute is there in the `<video>` tag at all. To remove autoplay the attribute needs to be removed altogether.\n\nIn some browsers (e.g. Chrome 70.0) autoplay is not working if no `muted` attribute is present.'
          }
        },
        {
          name: "mediagroup"
        },
        {
          name: "loop",
          valueSet: "v"
        },
        {
          name: "muted",
          valueSet: "v"
        },
        {
          name: "controls",
          valueSet: "v"
        },
        {
          name: "width"
        },
        {
          name: "height"
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/video"
        }
      ]
    },
    {
      name: "audio",
      description: {
        kind: "markdown",
        value: "An audio element represents a sound or audio stream."
      },
      attributes: [
        {
          name: "src",
          description: {
            kind: "markdown",
            value: 'The URL of the audio to embed. This is subject to [HTTP access controls](https://developer.mozilla.org/en-US/docs/HTTP_access_control). This is optional; you may instead use the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source "The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.") element within the audio block to specify the audio to embed.'
          }
        },
        {
          name: "crossorigin",
          valueSet: "xo",
          description: {
            kind: "markdown",
            value: 'This enumerated attribute indicates whether to use CORS to fetch the related image. [CORS-enabled resources](https://developer.mozilla.org/en-US/docs/CORS_Enabled_Image) can be reused in the [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas "Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.") element without being _tainted_. The allowed values are:\n\nanonymous\n\nSends a cross-origin request without a credential. In other words, it sends the `Origin:` HTTP header without a cookie, X.509 certificate, or performing HTTP Basic authentication. If the server does not give credentials to the origin site (by not setting the `Access-Control-Allow-Origin:` HTTP header), the image will be _tainted_, and its usage restricted.\n\nuse-credentials\n\nSends a cross-origin request with a credential. In other words, it sends the `Origin:` HTTP header with a cookie, a certificate, or performing HTTP Basic authentication. If the server does not give credentials to the origin site (through `Access-Control-Allow-Credentials:` HTTP header), the image will be _tainted_ and its usage restricted.\n\nWhen not present, the resource is fetched without a CORS request (i.e. without sending the `Origin:` HTTP header), preventing its non-tainted used in [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas "Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.") elements. If invalid, it is handled as if the enumerated keyword **anonymous** was used. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes) for additional information.'
          }
        },
        {
          name: "preload",
          valueSet: "pl",
          description: {
            kind: "markdown",
            value: "This enumerated attribute is intended to provide a hint to the browser about what the author thinks will lead to the best user experience. It may have one of the following values:\n\n*   `none`: Indicates that the audio should not be preloaded.\n*   `metadata`: Indicates that only audio metadata (e.g. length) is fetched.\n*   `auto`: Indicates that the whole audio file can be downloaded, even if the user is not expected to use it.\n*   _empty string_: A synonym of the `auto` value.\n\nIf not set, `preload`'s default value is browser-defined (i.e. each browser may have its own default value). The spec advises it to be set to `metadata`.\n\n**Usage notes:**\n\n*   The `autoplay` attribute has precedence over `preload`. If `autoplay` is specified, the browser would obviously need to start downloading the audio for playback.\n*   The browser is not forced by the specification to follow the value of this attribute; it is a mere hint."
          }
        },
        {
          name: "autoplay",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: "A Boolean attribute: if specified, the audio will automatically begin playback as soon as it can do so, without waiting for the entire audio file to finish downloading.\n\n**Note**: Sites that automatically play audio (or videos with an audio track) can be an unpleasant experience for users, so should be avoided when possible. If you must offer autoplay functionality, you should make it opt-in (requiring a user to specifically enable it). However, this can be useful when creating media elements whose source will be set at a later time, under user control."
          }
        },
        {
          name: "mediagroup"
        },
        {
          name: "loop",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: "A Boolean attribute: if specified, the audio player will automatically seek back to the start upon reaching the end of the audio."
          }
        },
        {
          name: "muted",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: "A Boolean attribute that indicates whether the audio will be initially silenced. Its default value is `false`."
          }
        },
        {
          name: "controls",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: "If this attribute is present, the browser will offer controls to allow the user to control audio playback, including volume, seeking, and pause/resume playback."
          }
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/audio"
        }
      ]
    },
    {
      name: "source",
      description: {
        kind: "markdown",
        value: "The source element allows authors to specify multiple alternative media resources for media elements. It does not represent anything on its own."
      },
      void: !0,
      attributes: [
        {
          name: "src",
          description: {
            kind: "markdown",
            value: 'Required for [`<audio>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio "The HTML <audio> element is used to embed sound content in documents. It may contain one or more audio sources, represented using the src attribute or the <source> element: the browser will choose the most suitable one. It can also be the destination for streamed media, using a MediaStream.") and [`<video>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video "The HTML Video element (<video>) embeds a media player which supports video playback into the document."), address of the media resource. The value of this attribute is ignored when the `<source>` element is placed inside a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture "The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.") element.'
          }
        },
        {
          name: "type",
          description: {
            kind: "markdown",
            value: "The MIME-type of the resource, optionally with a `codecs` parameter. See [RFC 4281](https://tools.ietf.org/html/rfc4281) for information about how to specify codecs."
          }
        },
        {
          name: "sizes",
          description: 'Is a list of source sizes that describes the final rendered width of the image represented by the source. Each source size consists of a comma-separated list of media condition-length pairs. This information is used by the browser to determine, before laying the page out, which image defined in [`srcset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source#attr-srcset) to use.  \nThe `sizes` attribute has an effect only when the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source "The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.") element is the direct child of a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture "The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.") element.'
        },
        {
          name: "srcset",
          description: "A list of one or more strings separated by commas indicating a set of possible images represented by the source for the browser to use. Each string is composed of:\n\n1.  one URL to an image,\n2.  a width descriptor, that is a positive integer directly followed by `'w'`. The default value, if missing, is the infinity.\n3.  a pixel density descriptor, that is a positive floating number directly followed by `'x'`. The default value, if missing, is `1x`.\n\nEach string in the list must have at least a width descriptor or a pixel density descriptor to be valid. Among the list, there must be only one string containing the same tuple of width descriptor and pixel density descriptor.  \nThe browser chooses the most adequate image to display at a given point of time.  \nThe `srcset` attribute has an effect only when the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source \"The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.\") element is the direct child of a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\") element."
        },
        {
          name: "media",
          description: '[Media query](https://developer.mozilla.org/en-US/docs/CSS/Media_queries) of the resource\'s intended media; this should be used only in a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture "The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.") element.'
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/source"
        }
      ]
    },
    {
      name: "track",
      description: {
        kind: "markdown",
        value: "The track element allows authors to specify explicit external timed text tracks for media elements. It does not represent anything on its own."
      },
      void: !0,
      attributes: [
        {
          name: "default",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: "This attribute indicates that the track should be enabled unless the user's preferences indicate that another track is more appropriate. This may only be used on one `track` element per media element."
          }
        },
        {
          name: "kind",
          valueSet: "tk",
          description: {
            kind: "markdown",
            value: "How the text track is meant to be used. If omitted the default kind is `subtitles`. If the attribute is not present, it will use the `subtitles`. If the attribute contains an invalid value, it will use `metadata`. (Versions of Chrome earlier than 52 treated an invalid value as `subtitles`.) The following keywords are allowed:\n\n*   `subtitles`\n    *   Subtitles provide translation of content that cannot be understood by the viewer. For example dialogue or text that is not English in an English language film.\n    *   Subtitles may contain additional content, usually extra background information. For example the text at the beginning of the Star Wars films, or the date, time, and location of a scene.\n*   `captions`\n    *   Closed captions provide a transcription and possibly a translation of audio.\n    *   It may include important non-verbal information such as music cues or sound effects. It may indicate the cue's source (e.g. music, text, character).\n    *   Suitable for users who are deaf or when the sound is muted.\n*   `descriptions`\n    *   Textual description of the video content.\n    *   Suitable for users who are blind or where the video cannot be seen.\n*   `chapters`\n    *   Chapter titles are intended to be used when the user is navigating the media resource.\n*   `metadata`\n    *   Tracks used by scripts. Not visible to the user."
          }
        },
        {
          name: "label",
          description: {
            kind: "markdown",
            value: "A user-readable title of the text track which is used by the browser when listing available text tracks."
          }
        },
        {
          name: "src",
          description: {
            kind: "markdown",
            value: 'Address of the track (`.vtt` file). Must be a valid URL. This attribute must be specified and its URL value must have the same origin as the document — unless the [`<audio>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio "The HTML <audio> element is used to embed sound content in documents. It may contain one or more audio sources, represented using the src attribute or the <source> element: the browser will choose the most suitable one. It can also be the destination for streamed media, using a MediaStream.") or [`<video>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video "The HTML Video element (<video>) embeds a media player which supports video playback into the document.") parent element of the `track` element has a [`crossorigin`](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) attribute.'
          }
        },
        {
          name: "srclang",
          description: {
            kind: "markdown",
            value: "Language of the track text data. It must be a valid [BCP 47](https://r12a.github.io/app-subtags/) language tag. If the `kind` attribute is set to `subtitles,` then `srclang` must be defined."
          }
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/track"
        }
      ]
    },
    {
      name: "map",
      description: {
        kind: "markdown",
        value: "The map element, in conjunction with an img element and any area element descendants, defines an image map. The element represents its children."
      },
      attributes: [
        {
          name: "name",
          description: {
            kind: "markdown",
            value: "The name attribute gives the map a name so that it can be referenced. The attribute must be present and must have a non-empty value with no space characters. The value of the name attribute must not be a compatibility-caseless match for the value of the name attribute of another map element in the same document. If the id attribute is also specified, both attributes must have the same value."
          }
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/map"
        }
      ]
    },
    {
      name: "area",
      description: {
        kind: "markdown",
        value: "The area element represents either a hyperlink with some text and a corresponding area on an image map, or a dead area on an image map."
      },
      void: !0,
      attributes: [
        {
          name: "alt"
        },
        {
          name: "coords"
        },
        {
          name: "shape",
          valueSet: "sh"
        },
        {
          name: "href"
        },
        {
          name: "target",
          valueSet: "target"
        },
        {
          name: "download"
        },
        {
          name: "ping"
        },
        {
          name: "rel"
        },
        {
          name: "hreflang"
        },
        {
          name: "type"
        },
        {
          name: "accesskey",
          description: "Specifies a keyboard navigation accelerator for the element. Pressing ALT or a similar key in association with the specified character selects the form control correlated with that key sequence. Page designers are forewarned to avoid key sequences already bound to browsers. This attribute is global since HTML5."
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/area"
        }
      ]
    },
    {
      name: "table",
      description: {
        kind: "markdown",
        value: "The table element represents data with more than one dimension, in the form of a table."
      },
      attributes: [
        {
          name: "border"
        },
        {
          name: "align",
          description: 'This enumerated attribute indicates how the table must be aligned inside the containing document. It may have the following values:\n\n*   left: the table is displayed on the left side of the document;\n*   center: the table is displayed in the center of the document;\n*   right: the table is displayed on the right side of the document.\n\n**Usage Note**\n\n*   **Do not use this attribute**, as it has been deprecated. The [`<table>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/table "The HTML <table> element represents tabular data — that is, information presented in a two-dimensional table comprised of rows and columns of cells containing data.") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). Set [`margin-left`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left "The margin-left CSS property sets the margin area on the left side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.") and [`margin-right`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right "The margin-right CSS property sets the margin area on the right side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.") to `auto` or [`margin`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin "The margin CSS property sets the margin area on all four sides of an element. It is a shorthand for margin-top, margin-right, margin-bottom, and margin-left.") to `0 auto` to achieve an effect that is similar to the align attribute.\n*   Prior to Firefox 4, Firefox also supported the `middle`, `absmiddle`, and `abscenter` values as synonyms of `center`, in quirks mode only.'
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/table"
        }
      ]
    },
    {
      name: "caption",
      description: {
        kind: "markdown",
        value: "The caption element represents the title of the table that is its parent, if it has a parent and that is a table element."
      },
      attributes: [
        {
          name: "align",
          description: 'This enumerated attribute indicates how the caption must be aligned with respect to the table. It may have one of the following values:\n\n`left`\n\nThe caption is displayed to the left of the table.\n\n`top`\n\nThe caption is displayed above the table.\n\n`right`\n\nThe caption is displayed to the right of the table.\n\n`bottom`\n\nThe caption is displayed below the table.\n\n**Usage note:** Do not use this attribute, as it has been deprecated. The [`<caption>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption "The HTML Table Caption element (<caption>) specifies the caption (or title) of a table, and if used is always the first child of a <table>.") element should be styled using the [CSS](https://developer.mozilla.org/en-US/docs/CSS) properties [`caption-side`](https://developer.mozilla.org/en-US/docs/Web/CSS/caption-side "The caption-side CSS property puts the content of a table\'s <caption> on the specified side. The values are relative to the writing-mode of the table.") and [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.").'
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/caption"
        }
      ]
    },
    {
      name: "colgroup",
      description: {
        kind: "markdown",
        value: "The colgroup element represents a group of one or more columns in the table that is its parent, if it has a parent and that is a table element."
      },
      attributes: [
        {
          name: "span"
        },
        {
          name: "align",
          description: 'This enumerated attribute specifies how horizontal alignment of each column cell content will be handled. Possible values are:\n\n*   `left`, aligning the content to the left of the cell\n*   `center`, centering the content in the cell\n*   `right`, aligning the content to the right of the cell\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 "character alignment not implemented (align=char, charoff=, text-align:<string>)")).\n\nIf this attribute is not set, the `left` value is assumed. The descendant [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col "The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.") elements may override this value using their own [`align`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-align) attribute.\n\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\n\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values:\n    *   Do not try to set the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property on a selector giving a [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup "The HTML <colgroup> element defines a group of columns within a table.") element. Because [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td "The HTML <td> element defines a cell of a table that contains data. It participates in the table model.") elements are not descendant of the [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup "The HTML <colgroup> element defines a group of columns within a table.") element, they won\'t inherit it.\n    *   If the table doesn\'t use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, use one `td:nth-child(an+b)` CSS selector per column, where a is the total number of the columns in the table and b is the ordinal position of this column in the table. Only after this selector the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property can be used.\n    *   If the table does use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, the effect can be achieved by combining adequate CSS attribute selectors like `[colspan=n]`, though this is not trivial.\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property Unimplemented.'
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/colgroup"
        }
      ]
    },
    {
      name: "col",
      description: {
        kind: "markdown",
        value: "If a col element has a parent and that is a colgroup element that itself has a parent that is a table element, then the col element represents one or more columns in the column group represented by that colgroup."
      },
      void: !0,
      attributes: [
        {
          name: "span"
        },
        {
          name: "align",
          description: 'This enumerated attribute specifies how horizontal alignment of each column cell content will be handled. Possible values are:\n\n*   `left`, aligning the content to the left of the cell\n*   `center`, centering the content in the cell\n*   `right`, aligning the content to the right of the cell\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 "character alignment not implemented (align=char, charoff=, text-align:<string>)")).\n\nIf this attribute is not set, its value is inherited from the [`align`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup#attr-align) of the [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup "The HTML <colgroup> element defines a group of columns within a table.") element this `<col>` element belongs too. If there are none, the `left` value is assumed.\n\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\n\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values:\n    *   Do not try to set the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property on a selector giving a [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col "The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.") element. Because [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td "The HTML <td> element defines a cell of a table that contains data. It participates in the table model.") elements are not descendant of the [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col "The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.") element, they won\'t inherit it.\n    *   If the table doesn\'t use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, use the `td:nth-child(an+b)` CSS selector. Set `a` to zero and `b` to the position of the column in the table, e.g. `td:nth-child(2) { text-align: right; }` to right-align the second column.\n    *   If the table does use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, the effect can be achieved by combining adequate CSS attribute selectors like `[colspan=n]`, though this is not trivial.\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property Unimplemented.'
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/col"
        }
      ]
    },
    {
      name: "tbody",
      description: {
        kind: "markdown",
        value: "The tbody element represents a block of rows that consist of a body of data for the parent table element, if the tbody element has a parent and it is a table."
      },
      attributes: [
        {
          name: "align",
          description: 'This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\n\n*   `left`, aligning the content to the left of the cell\n*   `center`, centering the content in the cell\n*   `right`, aligning the content to the right of the cell\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-charoff) attributes.\n\nIf this attribute is not set, the `left` value is assumed.\n\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\n\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property on it.\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property Unimplemented.'
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/tbody"
        }
      ]
    },
    {
      name: "thead",
      description: {
        kind: "markdown",
        value: "The thead element represents the block of rows that consist of the column labels (headers) for the parent table element, if the thead element has a parent and it is a table."
      },
      attributes: [
        {
          name: "align",
          description: 'This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\n\n*   `left`, aligning the content to the left of the cell\n*   `center`, centering the content in the cell\n*   `right`, aligning the content to the right of the cell\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 "character alignment not implemented (align=char, charoff=, text-align:<string>)")).\n\nIf this attribute is not set, the `left` value is assumed.\n\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\n\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property on it.\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property Unimplemented.'
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/thead"
        }
      ]
    },
    {
      name: "tfoot",
      description: {
        kind: "markdown",
        value: "The tfoot element represents the block of rows that consist of the column summaries (footers) for the parent table element, if the tfoot element has a parent and it is a table."
      },
      attributes: [
        {
          name: "align",
          description: 'This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\n\n*   `left`, aligning the content to the left of the cell\n*   `center`, centering the content in the cell\n*   `right`, aligning the content to the right of the cell\n*   `justify`, inserting spaces into the textual content so that the content is justified in the cell\n*   `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 "character alignment not implemented (align=char, charoff=, text-align:<string>)")).\n\nIf this attribute is not set, the `left` value is assumed.\n\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\n\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property on it.\n*   To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tfoot#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property Unimplemented.'
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/tfoot"
        }
      ]
    },
    {
      name: "tr",
      description: {
        kind: "markdown",
        value: "The tr element represents a row of cells in a table."
      },
      attributes: [
        {
          name: "align",
          description: 'A [`DOMString`](https://developer.mozilla.org/en-US/docs/Web/API/DOMString "DOMString is a UTF-16 String. As JavaScript already uses such strings, DOMString is mapped directly to a String.") which specifies how the cell\'s context should be aligned horizontally within the cells in the row; this is shorthand for using `align` on every cell in the row individually. Possible values are:\n\n`left`\n\nAlign the content of each cell at its left edge.\n\n`center`\n\nCenter the contents of each cell between their left and right edges.\n\n`right`\n\nAlign the content of each cell at its right edge.\n\n`justify`\n\nWiden whitespaces within the text of each cell so that the text fills the full width of each cell (full justification).\n\n`char`\n\nAlign each cell in the row on a specific character (such that each row in the column that is configured this way will horizontally align its cells on that character). This uses the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr#attr-charoff) to establish the alignment character (typically "." or "," when aligning numerical data) and the number of characters that should follow the alignment character. This alignment type was never widely supported.\n\nIf no value is expressly set for `align`, the parent node\'s value is inherited.\n\nInstead of using the obsolete `align` attribute, you should instead use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property to establish `left`, `center`, `right`, or `justify` alignment for the row\'s cells. To apply character-based alignment, set the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property to the alignment character (such as `"."` or `","`).'
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/tr"
        }
      ]
    },
    {
      name: "td",
      description: {
        kind: "markdown",
        value: "The td element represents a data cell in a table."
      },
      attributes: [
        {
          name: "colspan"
        },
        {
          name: "rowspan"
        },
        {
          name: "headers"
        },
        {
          name: "abbr",
          description: "This attribute contains a short abbreviated description of the cell's content. Some user-agents, such as speech readers, may present this description before the content itself.\n\n**Note:** Do not use this attribute as it is obsolete in the latest standard. Alternatively, you can put the abbreviated description inside the cell and place the long content in the **title** attribute."
        },
        {
          name: "align",
          description: 'This enumerated attribute specifies how the cell content\'s horizontal alignment will be handled. Possible values are:\n\n*   `left`: The content is aligned to the left of the cell.\n*   `center`: The content is centered in the cell.\n*   `right`: The content is aligned to the right of the cell.\n*   `justify` (with text only): The content is stretched out inside the cell so that it covers its entire width.\n*   `char` (with text only): The content is aligned to a character inside the `<th>` element with minimal offset. This character is defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-charoff) attributes Unimplemented (see [bug 2212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 "character alignment not implemented (align=char, charoff=, text-align:<string>)")).\n\nThe default value when this attribute is not specified is `left`.\n\n**Note:** Do not use this attribute as it is obsolete in the latest standard.\n\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, apply the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property to the element.\n*   To achieve the same effect as the `char` value, give the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property the same value you would use for the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-char). Unimplemented in CSS3.'
        },
        {
          name: "axis",
          description: "This attribute contains a list of space-separated strings. Each string is the `id` of a group of cells that this header applies to.\n\n**Note:** Do not use this attribute as it is obsolete in the latest standard."
        },
        {
          name: "bgcolor",
          description: 'This attribute defines the background color of each cell in a column. It consists of a 6-digit hexadecimal code as defined in [sRGB](https://www.w3.org/Graphics/Color/sRGB) and is prefixed by \'#\'. This attribute may be used with one of sixteen predefined color strings:\n\n \n\n`black` = "#000000"\n\n \n\n`green` = "#008000"\n\n \n\n`silver` = "#C0C0C0"\n\n \n\n`lime` = "#00FF00"\n\n \n\n`gray` = "#808080"\n\n \n\n`olive` = "#808000"\n\n \n\n`white` = "#FFFFFF"\n\n \n\n`yellow` = "#FFFF00"\n\n \n\n`maroon` = "#800000"\n\n \n\n`navy` = "#000080"\n\n \n\n`red` = "#FF0000"\n\n \n\n`blue` = "#0000FF"\n\n \n\n`purple` = "#800080"\n\n \n\n`teal` = "#008080"\n\n \n\n`fuchsia` = "#FF00FF"\n\n \n\n`aqua` = "#00FFFF"\n\n**Note:** Do not use this attribute, as it is non-standard and only implemented in some versions of Microsoft Internet Explorer: The [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td "The HTML <td> element defines a cell of a table that contains data. It participates in the table model.") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To create a similar effect use the [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color "The background-color CSS property sets the background color of an element.") property in [CSS](https://developer.mozilla.org/en-US/docs/CSS) instead.'
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/td"
        }
      ]
    },
    {
      name: "th",
      description: {
        kind: "markdown",
        value: "The th element represents a header cell in a table."
      },
      attributes: [
        {
          name: "colspan"
        },
        {
          name: "rowspan"
        },
        {
          name: "headers"
        },
        {
          name: "scope",
          valueSet: "s"
        },
        {
          name: "sorted"
        },
        {
          name: "abbr",
          description: {
            kind: "markdown",
            value: "This attribute contains a short abbreviated description of the cell's content. Some user-agents, such as speech readers, may present this description before the content itself."
          }
        },
        {
          name: "align",
          description: 'This enumerated attribute specifies how the cell content\'s horizontal alignment will be handled. Possible values are:\n\n*   `left`: The content is aligned to the left of the cell.\n*   `center`: The content is centered in the cell.\n*   `right`: The content is aligned to the right of the cell.\n*   `justify` (with text only): The content is stretched out inside the cell so that it covers its entire width.\n*   `char` (with text only): The content is aligned to a character inside the `<th>` element with minimal offset. This character is defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-charoff) attributes.\n\nThe default value when this attribute is not specified is `left`.\n\n**Note:** Do not use this attribute as it is obsolete in the latest standard.\n\n*   To achieve the same effect as the `left`, `center`, `right` or `justify` values, apply the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property to the element.\n*   To achieve the same effect as the `char` value, give the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property the same value you would use for the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-char). Unimplemented in CSS3.'
        },
        {
          name: "axis",
          description: "This attribute contains a list of space-separated strings. Each string is the `id` of a group of cells that this header applies to.\n\n**Note:** Do not use this attribute as it is obsolete in the latest standard: use the [`scope`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-scope) attribute instead."
        },
        {
          name: "bgcolor",
          description: 'This attribute defines the background color of each cell in a column. It consists of a 6-digit hexadecimal code as defined in [sRGB](https://www.w3.org/Graphics/Color/sRGB) and is prefixed by \'#\'. This attribute may be used with one of sixteen predefined color strings:\n\n \n\n`black` = "#000000"\n\n \n\n`green` = "#008000"\n\n \n\n`silver` = "#C0C0C0"\n\n \n\n`lime` = "#00FF00"\n\n \n\n`gray` = "#808080"\n\n \n\n`olive` = "#808000"\n\n \n\n`white` = "#FFFFFF"\n\n \n\n`yellow` = "#FFFF00"\n\n \n\n`maroon` = "#800000"\n\n \n\n`navy` = "#000080"\n\n \n\n`red` = "#FF0000"\n\n \n\n`blue` = "#0000FF"\n\n \n\n`purple` = "#800080"\n\n \n\n`teal` = "#008080"\n\n \n\n`fuchsia` = "#FF00FF"\n\n \n\n`aqua` = "#00FFFF"\n\n**Note:** Do not use this attribute, as it is non-standard and only implemented in some versions of Microsoft Internet Explorer: The [`<th>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th "The HTML <th> element defines a cell as header of a group of table cells. The exact nature of this group is defined by the scope and headers attributes.") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/Web/CSS). To create a similar effect use the [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color "The background-color CSS property sets the background color of an element.") property in [CSS](https://developer.mozilla.org/en-US/docs/Web/CSS) instead.'
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/th"
        }
      ]
    },
    {
      name: "form",
      description: {
        kind: "markdown",
        value: "The form element represents a collection of form-associated elements, some of which can represent editable values that can be submitted to a server for processing."
      },
      attributes: [
        {
          name: "accept-charset",
          description: {
            kind: "markdown",
            value: 'A space- or comma-delimited list of character encodings that the server accepts. The browser uses them in the order in which they are listed. The default value, the reserved string `"UNKNOWN"`, indicates the same encoding as that of the document containing the form element.  \nIn previous versions of HTML, the different character encodings could be delimited by spaces or commas. In HTML5, only spaces are allowed as delimiters.'
          }
        },
        {
          name: "action",
          description: {
            kind: "markdown",
            value: 'The URI of a program that processes the form information. This value can be overridden by a [`formaction`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formaction) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button "The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") element.'
          }
        },
        {
          name: "autocomplete",
          valueSet: "o",
          description: {
            kind: "markdown",
            value: "Indicates whether input elements can by default have their values automatically completed by the browser. This setting can be overridden by an `autocomplete` attribute on an element belonging to the form. Possible values are:\n\n*   `off`: The user must explicitly enter a value into each field for every use, or the document provides its own auto-completion method; the browser does not automatically complete entries.\n*   `on`: The browser can automatically complete values based on values that the user has previously entered in the form.\n\nFor most modern browsers (including Firefox 38+, Google Chrome 34+, IE 11+) setting the autocomplete attribute will not prevent a browser's password manager from asking the user if they want to store login fields (username and password), if the user permits the storage the browser will autofill the login the next time the user visits the page. See [The autocomplete attribute and login fields](https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion#The_autocomplete_attribute_and_login_fields).\n**Note:** If you set `autocomplete` to `off` in a form because the document provides its own auto-completion, then you should also set `autocomplete` to `off` for each of the form's `input` elements that the document can auto-complete. For details, see the note regarding Google Chrome in the [Browser Compatibility chart](#compatChart)."
          }
        },
        {
          name: "enctype",
          valueSet: "et",
          description: {
            kind: "markdown",
            value: 'When the value of the `method` attribute is `post`, enctype is the [MIME type](https://en.wikipedia.org/wiki/Mime_type) of content that is used to submit the form to the server. Possible values are:\n\n*   `application/x-www-form-urlencoded`: The default value if the attribute is not specified.\n*   `multipart/form-data`: The value used for an [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") element with the `type` attribute set to "file".\n*   `text/plain`: (HTML5)\n\nThis value can be overridden by a [`formenctype`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formenctype) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button "The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") element.'
          }
        },
        {
          name: "method",
          valueSet: "m",
          description: {
            kind: "markdown",
            value: 'The [HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP) method that the browser uses to submit the form. Possible values are:\n\n*   `post`: Corresponds to the HTTP [POST method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5) ; form data are included in the body of the form and sent to the server.\n*   `get`: Corresponds to the HTTP [GET method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3); form data are appended to the `action` attribute URI with a \'?\' as separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters.\n*   `dialog`: Use when the form is inside a [`<dialog>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog "The HTML <dialog> element represents a dialog box or other interactive component, such as an inspector or window.") element to close the dialog when submitted.\n\nThis value can be overridden by a [`formmethod`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formmethod) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button "The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") element.'
          }
        },
        {
          name: "name",
          description: {
            kind: "markdown",
            value: "The name of the form. In HTML 4, its use is deprecated (`id` should be used instead). It must be unique among the forms in a document and not just an empty string in HTML 5."
          }
        },
        {
          name: "novalidate",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: 'This Boolean attribute indicates that the form is not to be validated when submitted. If this attribute is not specified (and therefore the form is validated), this default setting can be overridden by a [`formnovalidate`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formnovalidate) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button "The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") element belonging to the form.'
          }
        },
        {
          name: "target",
          valueSet: "target",
          description: {
            kind: "markdown",
            value: 'A name or keyword indicating where to display the response that is received after submitting the form. In HTML 4, this is the name/keyword for a frame. In HTML5, it is a name/keyword for a _browsing context_ (for example, tab, window, or inline frame). The following keywords have special meanings:\n\n*   `_self`: Load the response into the same HTML 4 frame (or HTML5 browsing context) as the current one. This value is the default if the attribute is not specified.\n*   `_blank`: Load the response into a new unnamed HTML 4 window or HTML5 browsing context.\n*   `_parent`: Load the response into the HTML 4 frameset parent of the current frame, or HTML5 parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\n*   `_top`: HTML 4: Load the response into the full original window, and cancel all other frames. HTML5: Load the response into the top-level browsing context (i.e., the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.\n*   _iframename_: The response is displayed in a named [`<iframe>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe "The HTML Inline Frame element (<iframe>) represents a nested browsing context, embedding another HTML page into the current one.").\n\nHTML5: This value can be overridden by a [`formtarget`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formtarget) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button "The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") element.'
          }
        },
        {
          name: "accept",
          description: 'A comma-separated list of content types that the server accepts.\n\n**Usage note:** This attribute has been removed in HTML5 and should no longer be used. Instead, use the [`accept`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept) attribute of the specific [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") element.'
        },
        {
          name: "autocapitalize",
          description: "This is a nonstandard attribute used by iOS Safari Mobile which controls whether and how the text value for textual form control descendants should be automatically capitalized as it is entered/edited by the user. If the `autocapitalize` attribute is specified on an individual form control descendant, it trumps the form-wide `autocapitalize` setting. The non-deprecated values are available in iOS 5 and later. The default value is `sentences`. Possible values are:\n\n*   `none`: Completely disables automatic capitalization\n*   `sentences`: Automatically capitalize the first letter of sentences.\n*   `words`: Automatically capitalize the first letter of words.\n*   `characters`: Automatically capitalize all characters.\n*   `on`: Deprecated since iOS 5.\n*   `off`: Deprecated since iOS 5."
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/form"
        }
      ]
    },
    {
      name: "label",
      description: {
        kind: "markdown",
        value: "The label element represents a caption in a user interface. The caption can be associated with a specific form control, known as the label element's labeled control, either using the for attribute, or by putting the form control inside the label element itself."
      },
      attributes: [
        {
          name: "form",
          description: {
            kind: "markdown",
            value: 'The [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form "The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.") element with which the label is associated (its _form owner_). If specified, the value of the attribute is the `id` of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form "The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.") element in the same document. This lets you place label elements anywhere within a document, not just as descendants of their form elements.'
          }
        },
        {
          name: "for",
          description: {
            kind: "markdown",
            value: "The [`id`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-id) of a [labelable](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Form_labelable) form-related element in the same document as the `<label>` element. The first element in the document with an `id` matching the value of the `for` attribute is the _labeled control_ for this label element, if it is a labelable element. If it is not labelable then the `for` attribute has no effect. If there are other elements which also match the `id` value, later in the document, they are not considered.\n\n**Note**: A `<label>` element can have both a `for` attribute and a contained control element, as long as the `for` attribute points to the contained control element."
          }
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/label"
        }
      ]
    },
    {
      name: "input",
      description: {
        kind: "markdown",
        value: "The input element represents a typed data field, usually with a form control to allow the user to edit the data."
      },
      void: !0,
      attributes: [
        {
          name: "accept"
        },
        {
          name: "alt"
        },
        {
          name: "autocomplete",
          valueSet: "inputautocomplete"
        },
        {
          name: "autofocus",
          valueSet: "v"
        },
        {
          name: "checked",
          valueSet: "v"
        },
        {
          name: "dirname"
        },
        {
          name: "disabled",
          valueSet: "v"
        },
        {
          name: "form"
        },
        {
          name: "formaction"
        },
        {
          name: "formenctype",
          valueSet: "et"
        },
        {
          name: "formmethod",
          valueSet: "fm"
        },
        {
          name: "formnovalidate",
          valueSet: "v"
        },
        {
          name: "formtarget"
        },
        {
          name: "height"
        },
        {
          name: "inputmode",
          valueSet: "im"
        },
        {
          name: "list"
        },
        {
          name: "max"
        },
        {
          name: "maxlength"
        },
        {
          name: "min"
        },
        {
          name: "minlength"
        },
        {
          name: "multiple",
          valueSet: "v"
        },
        {
          name: "name"
        },
        {
          name: "pattern"
        },
        {
          name: "placeholder"
        },
        {
          name: "readonly",
          valueSet: "v"
        },
        {
          name: "required",
          valueSet: "v"
        },
        {
          name: "size"
        },
        {
          name: "src"
        },
        {
          name: "step"
        },
        {
          name: "type",
          valueSet: "t"
        },
        {
          name: "value"
        },
        {
          name: "width"
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/input"
        }
      ]
    },
    {
      name: "button",
      description: {
        kind: "markdown",
        value: "The button element represents a button labeled by its contents."
      },
      attributes: [
        {
          name: "autofocus",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: "This Boolean attribute lets you specify that the button should have input focus when the page loads, unless the user overrides it, for example by typing in a different control. Only one form-associated element in a document can have this attribute specified."
          }
        },
        {
          name: "disabled",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: 'This Boolean attribute indicates that the user cannot interact with the button. If this attribute is not specified, the button inherits its setting from the containing element, for example [`<fieldset>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset "The HTML <fieldset> element is used to group several controls as well as labels (<label>) within a web form."); if there is no containing element with the **disabled** attribute set, then the button is enabled.\n\nFirefox will, unlike other browsers, by default, [persist the dynamic disabled state](https://stackoverflow.com/questions/5985839/bug-with-firefox-disabled-attribute-of-input-not-resetting-when-refreshing) of a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button "The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.") across page loads. Use the [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-autocomplete) attribute to control this feature.'
          }
        },
        {
          name: "form",
          description: {
            kind: "markdown",
            value: 'The form element that the button is associated with (its _form owner_). The value of the attribute must be the **id** attribute of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form "The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.") element in the same document. If this attribute is not specified, the `<button>` element will be associated to an ancestor [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form "The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.") element, if one exists. This attribute enables you to associate `<button>` elements to [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form "The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.") elements anywhere within a document, not just as descendants of [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form "The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.") elements.'
          }
        },
        {
          name: "formaction",
          description: {
            kind: "markdown",
            value: "The URI of a program that processes the information submitted by the button. If specified, it overrides the [`action`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-action) attribute of the button's form owner."
          }
        },
        {
          name: "formenctype",
          valueSet: "et",
          description: {
            kind: "markdown",
            value: 'If the button is a submit button, this attribute specifies the type of content that is used to submit the form to the server. Possible values are:\n\n*   `application/x-www-form-urlencoded`: The default value if the attribute is not specified.\n*   `multipart/form-data`: Use this value if you are using an [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") element with the [`type`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-type) attribute set to `file`.\n*   `text/plain`\n\nIf this attribute is specified, it overrides the [`enctype`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-enctype) attribute of the button\'s form owner.'
          }
        },
        {
          name: "formmethod",
          valueSet: "fm",
          description: {
            kind: "markdown",
            value: "If the button is a submit button, this attribute specifies the HTTP method that the browser uses to submit the form. Possible values are:\n\n*   `post`: The data from the form are included in the body of the form and sent to the server.\n*   `get`: The data from the form are appended to the **form** attribute URI, with a '?' as a separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters.\n\nIf specified, this attribute overrides the [`method`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-method) attribute of the button's form owner."
          }
        },
        {
          name: "formnovalidate",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: "If the button is a submit button, this Boolean attribute specifies that the form is not to be validated when it is submitted. If this attribute is specified, it overrides the [`novalidate`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-novalidate) attribute of the button's form owner."
          }
        },
        {
          name: "formtarget",
          description: {
            kind: "markdown",
            value: "If the button is a submit button, this attribute is a name or keyword indicating where to display the response that is received after submitting the form. This is a name of, or keyword for, a _browsing context_ (for example, tab, window, or inline frame). If this attribute is specified, it overrides the [`target`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-target) attribute of the button's form owner. The following keywords have special meanings:\n\n*   `_self`: Load the response into the same browsing context as the current one. This value is the default if the attribute is not specified.\n*   `_blank`: Load the response into a new unnamed browsing context.\n*   `_parent`: Load the response into the parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\n*   `_top`: Load the response into the top-level browsing context (that is, the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`."
          }
        },
        {
          name: "name",
          description: {
            kind: "markdown",
            value: "The name of the button, which is submitted with the form data."
          }
        },
        {
          name: "type",
          valueSet: "bt",
          description: {
            kind: "markdown",
            value: "The type of the button. Possible values are:\n\n*   `submit`: The button submits the form data to the server. This is the default if the attribute is not specified, or if the attribute is dynamically changed to an empty or invalid value.\n*   `reset`: The button resets all the controls to their initial values.\n*   `button`: The button has no default behavior. It can have client-side scripts associated with the element's events, which are triggered when the events occur."
          }
        },
        {
          name: "value",
          description: {
            kind: "markdown",
            value: "The initial value of the button. It defines the value associated with the button which is submitted with the form data. This value is passed to the server in params when the form is submitted."
          }
        },
        {
          name: "autocomplete",
          description: 'The use of this attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button "The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.") is nonstandard and Firefox-specific. By default, unlike other browsers, [Firefox persists the dynamic disabled state](https://stackoverflow.com/questions/5985839/bug-with-firefox-disabled-attribute-of-input-not-resetting-when-refreshing) of a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button "The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.") across page loads. Setting the value of this attribute to `off` (i.e. `autocomplete="off"`) disables this feature. See [bug 654072](https://bugzilla.mozilla.org/show_bug.cgi?id=654072 "if disabled state is changed with javascript, the normal state doesn\'t return after refreshing the page").'
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/button"
        }
      ]
    },
    {
      name: "select",
      description: {
        kind: "markdown",
        value: "The select element represents a control for selecting amongst a set of options."
      },
      attributes: [
        {
          name: "autocomplete",
          valueSet: "inputautocomplete",
          description: {
            kind: "markdown",
            value: 'A [`DOMString`](https://developer.mozilla.org/en-US/docs/Web/API/DOMString "DOMString is a UTF-16 String. As JavaScript already uses such strings, DOMString is mapped directly to a String.") providing a hint for a [user agent\'s](https://developer.mozilla.org/en-US/docs/Glossary/user_agent "user agent\'s: A user agent is a computer program representing a person, for example, a browser in a Web context.") autocomplete feature. See [The HTML autocomplete attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) for a complete list of values and details on how to use autocomplete.'
          }
        },
        {
          name: "autofocus",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: "This Boolean attribute lets you specify that a form control should have input focus when the page loads. Only one form element in a document can have the `autofocus` attribute."
          }
        },
        {
          name: "disabled",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: "This Boolean attribute indicates that the user cannot interact with the control. If this attribute is not specified, the control inherits its setting from the containing element, for example `fieldset`; if there is no containing element with the `disabled` attribute set, then the control is enabled."
          }
        },
        {
          name: "form",
          description: {
            kind: "markdown",
            value: 'This attribute lets you specify the form element to which the select element is associated (that is, its "form owner"). If this attribute is specified, its value must be the same as the `id` of a form element in the same document. This enables you to place select elements anywhere within a document, not just as descendants of their form elements.'
          }
        },
        {
          name: "multiple",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: "This Boolean attribute indicates that multiple options can be selected in the list. If it is not specified, then only one option can be selected at a time. When `multiple` is specified, most browsers will show a scrolling list box instead of a single line dropdown."
          }
        },
        {
          name: "name",
          description: {
            kind: "markdown",
            value: "This attribute is used to specify the name of the control."
          }
        },
        {
          name: "required",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: "A Boolean attribute indicating that an option with a non-empty string value must be selected."
          }
        },
        {
          name: "size",
          description: {
            kind: "markdown",
            value: "If the control is presented as a scrolling list box (e.g. when `multiple` is specified), this attribute represents the number of rows in the list that should be visible at one time. Browsers are not required to present a select element as a scrolled list box. The default value is 0.\n\n**Note:** According to the HTML5 specification, the default value for size should be 1; however, in practice, this has been found to break some web sites, and no other browser currently does that, so Mozilla has opted to continue to return 0 for the time being with Firefox."
          }
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/select"
        }
      ]
    },
    {
      name: "datalist",
      description: {
        kind: "markdown",
        value: "The datalist element represents a set of option elements that represent predefined options for other controls. In the rendering, the datalist element represents nothing and it, along with its children, should be hidden."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/datalist"
        }
      ]
    },
    {
      name: "optgroup",
      description: {
        kind: "markdown",
        value: "The optgroup element represents a group of option elements with a common label."
      },
      attributes: [
        {
          name: "disabled",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: "If this Boolean attribute is set, none of the items in this option group is selectable. Often browsers grey out such control and it won't receive any browsing events, like mouse clicks or focus-related ones."
          }
        },
        {
          name: "label",
          description: {
            kind: "markdown",
            value: "The name of the group of options, which the browser can use when labeling the options in the user interface. This attribute is mandatory if this element is used."
          }
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/optgroup"
        }
      ]
    },
    {
      name: "option",
      description: {
        kind: "markdown",
        value: "The option element represents an option in a select element or as part of a list of suggestions in a datalist element."
      },
      attributes: [
        {
          name: "disabled",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: 'If this Boolean attribute is set, this option is not checkable. Often browsers grey out such control and it won\'t receive any browsing event, like mouse clicks or focus-related ones. If this attribute is not set, the element can still be disabled if one of its ancestors is a disabled [`<optgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/optgroup "The HTML <optgroup> element creates a grouping of options within a <select> element.") element.'
          }
        },
        {
          name: "label",
          description: {
            kind: "markdown",
            value: "This attribute is text for the label indicating the meaning of the option. If the `label` attribute isn't defined, its value is that of the element text content."
          }
        },
        {
          name: "selected",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: 'If present, this Boolean attribute indicates that the option is initially selected. If the `<option>` element is the descendant of a [`<select>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select "The HTML <select> element represents a control that provides a menu of options") element whose [`multiple`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select#attr-multiple) attribute is not set, only one single `<option>` of this [`<select>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select "The HTML <select> element represents a control that provides a menu of options") element may have the `selected` attribute.'
          }
        },
        {
          name: "value",
          description: {
            kind: "markdown",
            value: "The content of this attribute represents the value to be submitted with the form, should this option be selected. If this attribute is omitted, the value is taken from the text content of the option element."
          }
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/option"
        }
      ]
    },
    {
      name: "textarea",
      description: {
        kind: "markdown",
        value: "The textarea element represents a multiline plain text edit control for the element's raw value. The contents of the control represent the control's default value."
      },
      attributes: [
        {
          name: "autocomplete",
          valueSet: "inputautocomplete",
          description: {
            kind: "markdown",
            value: 'This attribute indicates whether the value of the control can be automatically completed by the browser. Possible values are:\n\n*   `off`: The user must explicitly enter a value into this field for every use, or the document provides its own auto-completion method; the browser does not automatically complete the entry.\n*   `on`: The browser can automatically complete the value based on values that the user has entered during previous uses.\n\nIf the `autocomplete` attribute is not specified on a `<textarea>` element, then the browser uses the `autocomplete` attribute value of the `<textarea>` element\'s form owner. The form owner is either the [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form "The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.") element that this `<textarea>` element is a descendant of or the form element whose `id` is specified by the `form` attribute of the input element. For more information, see the [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-autocomplete) attribute in [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form "The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.").'
          }
        },
        {
          name: "autofocus",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: "This Boolean attribute lets you specify that a form control should have input focus when the page loads. Only one form-associated element in a document can have this attribute specified."
          }
        },
        {
          name: "cols",
          description: {
            kind: "markdown",
            value: "The visible width of the text control, in average character widths. If it is specified, it must be a positive integer. If it is not specified, the default value is `20`."
          }
        },
        {
          name: "dirname"
        },
        {
          name: "disabled",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: 'This Boolean attribute indicates that the user cannot interact with the control. If this attribute is not specified, the control inherits its setting from the containing element, for example [`<fieldset>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset "The HTML <fieldset> element is used to group several controls as well as labels (<label>) within a web form."); if there is no containing element when the `disabled` attribute is set, the control is enabled.'
          }
        },
        {
          name: "form",
          description: {
            kind: "markdown",
            value: 'The form element that the `<textarea>` element is associated with (its "form owner"). The value of the attribute must be the `id` of a form element in the same document. If this attribute is not specified, the `<textarea>` element must be a descendant of a form element. This attribute enables you to place `<textarea>` elements anywhere within a document, not just as descendants of form elements.'
          }
        },
        {
          name: "inputmode",
          valueSet: "im"
        },
        {
          name: "maxlength",
          description: {
            kind: "markdown",
            value: "The maximum number of characters (unicode code points) that the user can enter. If this value isn't specified, the user can enter an unlimited number of characters."
          }
        },
        {
          name: "minlength",
          description: {
            kind: "markdown",
            value: "The minimum number of characters (unicode code points) required that the user should enter."
          }
        },
        {
          name: "name",
          description: {
            kind: "markdown",
            value: "The name of the control."
          }
        },
        {
          name: "placeholder",
          description: {
            kind: "markdown",
            value: 'A hint to the user of what can be entered in the control. Carriage returns or line-feeds within the placeholder text must be treated as line breaks when rendering the hint.\n\n**Note:** Placeholders should only be used to show an example of the type of data that should be entered into a form; they are _not_ a substitute for a proper [`<label>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label "The HTML <label> element represents a caption for an item in a user interface.") element tied to the input. See [Labels and placeholders](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Labels_and_placeholders "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") in [<input>: The Input (Form Input) element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") for a full explanation.'
          }
        },
        {
          name: "readonly",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: "This Boolean attribute indicates that the user cannot modify the value of the control. Unlike the `disabled` attribute, the `readonly` attribute does not prevent the user from clicking or selecting in the control. The value of a read-only control is still submitted with the form."
          }
        },
        {
          name: "required",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: "This attribute specifies that the user must fill in a value before submitting a form."
          }
        },
        {
          name: "rows",
          description: {
            kind: "markdown",
            value: "The number of visible text lines for the control."
          }
        },
        {
          name: "wrap",
          valueSet: "w",
          description: {
            kind: "markdown",
            value: "Indicates how the control wraps text. Possible values are:\n\n*   `hard`: The browser automatically inserts line breaks (CR+LF) so that each line has no more than the width of the control; the `cols` attribute must also be specified for this to take effect.\n*   `soft`: The browser ensures that all line breaks in the value consist of a CR+LF pair, but does not insert any additional line breaks.\n*   `off` : Like `soft` but changes appearance to `white-space: pre` so line segments exceeding `cols` are not wrapped and the `<textarea>` becomes horizontally scrollable.\n\nIf this attribute is not specified, `soft` is its default value."
          }
        },
        {
          name: "autocapitalize",
          description: "This is a non-standard attribute supported by WebKit on iOS (therefore nearly all browsers running on iOS, including Safari, Firefox, and Chrome), which controls whether and how the text value should be automatically capitalized as it is entered/edited by the user. The non-deprecated values are available in iOS 5 and later. Possible values are:\n\n*   `none`: Completely disables automatic capitalization.\n*   `sentences`: Automatically capitalize the first letter of sentences.\n*   `words`: Automatically capitalize the first letter of words.\n*   `characters`: Automatically capitalize all characters.\n*   `on`: Deprecated since iOS 5.\n*   `off`: Deprecated since iOS 5."
        },
        {
          name: "spellcheck",
          description: "Specifies whether the `<textarea>` is subject to spell checking by the underlying browser/OS. the value can be:\n\n*   `true`: Indicates that the element needs to have its spelling and grammar checked.\n*   `default` : Indicates that the element is to act according to a default behavior, possibly based on the parent element's own `spellcheck` value.\n*   `false` : Indicates that the element should not be spell checked."
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/textarea"
        }
      ]
    },
    {
      name: "output",
      description: {
        kind: "markdown",
        value: "The output element represents the result of a calculation performed by the application, or the result of a user action."
      },
      attributes: [
        {
          name: "for",
          description: {
            kind: "markdown",
            value: "A space-separated list of other elements’ [`id`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id)s, indicating that those elements contributed input values to (or otherwise affected) the calculation."
          }
        },
        {
          name: "form",
          description: {
            kind: "markdown",
            value: 'The [form element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form) that this element is associated with (its "form owner"). The value of the attribute must be an `id` of a form element in the same document. If this attribute is not specified, the output element must be a descendant of a form element. This attribute enables you to place output elements anywhere within a document, not just as descendants of their form elements.'
          }
        },
        {
          name: "name",
          description: {
            kind: "markdown",
            value: 'The name of the element, exposed in the [`HTMLFormElement`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement "The HTMLFormElement interface represents a <form> element in the DOM; it allows access to and in some cases modification of aspects of the form, as well as access to its component elements.") API.'
          }
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/output"
        }
      ]
    },
    {
      name: "progress",
      description: {
        kind: "markdown",
        value: "The progress element represents the completion progress of a task. The progress is either indeterminate, indicating that progress is being made but that it is not clear how much more work remains to be done before the task is complete (e.g. because the task is waiting for a remote host to respond), or the progress is a number in the range zero to a maximum, giving the fraction of work that has so far been completed."
      },
      attributes: [
        {
          name: "value",
          description: {
            kind: "markdown",
            value: "This attribute specifies how much of the task that has been completed. It must be a valid floating point number between 0 and `max`, or between 0 and 1 if `max` is omitted. If there is no `value` attribute, the progress bar is indeterminate; this indicates that an activity is ongoing with no indication of how long it is expected to take."
          }
        },
        {
          name: "max",
          description: {
            kind: "markdown",
            value: "This attribute describes how much work the task indicated by the `progress` element requires. The `max` attribute, if present, must have a value greater than zero and be a valid floating point number. The default value is 1."
          }
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/progress"
        }
      ]
    },
    {
      name: "meter",
      description: {
        kind: "markdown",
        value: "The meter element represents a scalar measurement within a known range, or a fractional value; for example disk usage, the relevance of a query result, or the fraction of a voting population to have selected a particular candidate."
      },
      attributes: [
        {
          name: "value",
          description: {
            kind: "markdown",
            value: "The current numeric value. This must be between the minimum and maximum values (`min` attribute and `max` attribute) if they are specified. If unspecified or malformed, the value is 0. If specified, but not within the range given by the `min` attribute and `max` attribute, the value is equal to the nearest end of the range.\n\n**Usage note:** Unless the `value` attribute is between `0` and `1` (inclusive), the `min` and `max` attributes should define the range so that the `value` attribute's value is within it."
          }
        },
        {
          name: "min",
          description: {
            kind: "markdown",
            value: "The lower numeric bound of the measured range. This must be less than the maximum value (`max` attribute), if specified. If unspecified, the minimum value is 0."
          }
        },
        {
          name: "max",
          description: {
            kind: "markdown",
            value: "The upper numeric bound of the measured range. This must be greater than the minimum value (`min` attribute), if specified. If unspecified, the maximum value is 1."
          }
        },
        {
          name: "low",
          description: {
            kind: "markdown",
            value: "The upper numeric bound of the low end of the measured range. This must be greater than the minimum value (`min` attribute), and it also must be less than the high value and maximum value (`high` attribute and `max` attribute, respectively), if any are specified. If unspecified, or if less than the minimum value, the `low` value is equal to the minimum value."
          }
        },
        {
          name: "high",
          description: {
            kind: "markdown",
            value: "The lower numeric bound of the high end of the measured range. This must be less than the maximum value (`max` attribute), and it also must be greater than the low value and minimum value (`low` attribute and **min** attribute, respectively), if any are specified. If unspecified, or if greater than the maximum value, the `high` value is equal to the maximum value."
          }
        },
        {
          name: "optimum",
          description: {
            kind: "markdown",
            value: "This attribute indicates the optimal numeric value. It must be within the range (as defined by the `min` attribute and `max` attribute). When used with the `low` attribute and `high` attribute, it gives an indication where along the range is considered preferable. For example, if it is between the `min` attribute and the `low` attribute, then the lower range is considered preferred."
          }
        },
        {
          name: "form",
          description: "This attribute associates the element with a `form` element that has ownership of the `meter` element. For example, a `meter` might be displaying a range corresponding to an `input` element of `type` _number_. This attribute is only used if the `meter` element is being used as a form-associated element; even then, it may be omitted if the element appears as a descendant of a `form` element."
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/meter"
        }
      ]
    },
    {
      name: "fieldset",
      description: {
        kind: "markdown",
        value: "The fieldset element represents a set of form controls optionally grouped under a common name."
      },
      attributes: [
        {
          name: "disabled",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: "If this Boolean attribute is set, all form controls that are descendants of the `<fieldset>`, are disabled, meaning they are not editable and won't be submitted along with the `<form>`. They won't receive any browsing events, like mouse clicks or focus-related events. By default browsers display such controls grayed out. Note that form elements inside the [`<legend>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/legend \"The HTML <legend> element represents a caption for the content of its parent <fieldset>.\") element won't be disabled."
          }
        },
        {
          name: "form",
          description: {
            kind: "markdown",
            value: 'This attribute takes the value of the `id` attribute of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form "The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.") element you want the `<fieldset>` to be part of, even if it is not inside the form.'
          }
        },
        {
          name: "name",
          description: {
            kind: "markdown",
            value: 'The name associated with the group.\n\n**Note**: The caption for the fieldset is given by the first [`<legend>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/legend "The HTML <legend> element represents a caption for the content of its parent <fieldset>.") element nested inside it.'
          }
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/fieldset"
        }
      ]
    },
    {
      name: "legend",
      description: {
        kind: "markdown",
        value: "The legend element represents a caption for the rest of the contents of the legend element's parent fieldset element, if any."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/legend"
        }
      ]
    },
    {
      name: "details",
      description: {
        kind: "markdown",
        value: "The details element represents a disclosure widget from which the user can obtain additional information or controls."
      },
      attributes: [
        {
          name: "open",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: "This Boolean attribute indicates whether or not the details — that is, the contents of the `<details>` element — are currently visible. The default, `false`, means the details are not visible."
          }
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/details"
        }
      ]
    },
    {
      name: "summary",
      description: {
        kind: "markdown",
        value: "The summary element represents a summary, caption, or legend for the rest of the contents of the summary element's parent details element, if any."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/summary"
        }
      ]
    },
    {
      name: "dialog",
      description: {
        kind: "markdown",
        value: "The dialog element represents a part of an application that a user interacts with to perform a task, for example a dialog box, inspector, or window."
      },
      attributes: [
        {
          name: "open",
          description: "Indicates that the dialog is active and available for interaction. When the `open` attribute is not set, the dialog shouldn't be shown to the user."
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/dialog"
        }
      ]
    },
    {
      name: "script",
      description: {
        kind: "markdown",
        value: "The script element allows authors to include dynamic script and data blocks in their documents. The element does not represent content for the user."
      },
      attributes: [
        {
          name: "src",
          description: {
            kind: "markdown",
            value: "This attribute specifies the URI of an external script; this can be used as an alternative to embedding a script directly within a document.\n\nIf a `script` element has a `src` attribute specified, it should not have a script embedded inside its tags."
          }
        },
        {
          name: "type",
          description: {
            kind: "markdown",
            value: 'This attribute indicates the type of script represented. The value of this attribute will be in one of the following categories:\n\n*   **Omitted or a JavaScript MIME type:** For HTML5-compliant browsers this indicates the script is JavaScript. HTML5 specification urges authors to omit the attribute rather than provide a redundant MIME type. In earlier browsers, this identified the scripting language of the embedded or imported (via the `src` attribute) code. JavaScript MIME types are [listed in the specification](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#JavaScript_types).\n*   **`module`:** For HTML5-compliant browsers the code is treated as a JavaScript module. The processing of the script contents is not affected by the `charset` and `defer` attributes. For information on using `module`, see [ES6 in Depth: Modules](https://hacks.mozilla.org/2015/08/es6-in-depth-modules/). Code may behave differently when the `module` keyword is used.\n*   **Any other value:** The embedded content is treated as a data block which won\'t be processed by the browser. Developers must use a valid MIME type that is not a JavaScript MIME type to denote data blocks. The `src` attribute will be ignored.\n\n**Note:** in Firefox you could specify the version of JavaScript contained in a `<script>` element by including a non-standard `version` parameter inside the `type` attribute — for example `type="text/javascript;version=1.8"`. This has been removed in Firefox 59 (see [bug 1428745](https://bugzilla.mozilla.org/show_bug.cgi?id=1428745 "FIXED: Remove support for version parameter from script loader")).'
          }
        },
        {
          name: "charset"
        },
        {
          name: "async",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: 'This is a Boolean attribute indicating that the browser should, if possible, load the script asynchronously.\n\nThis attribute must not be used if the `src` attribute is absent (i.e. for inline scripts). If it is included in this case it will have no effect.\n\nBrowsers usually assume the worst case scenario and load scripts synchronously, (i.e. `async="false"`) during HTML parsing.\n\nDynamically inserted scripts (using [`document.createElement()`](https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement "In an HTML document, the document.createElement() method creates the HTML element specified by tagName, or an HTMLUnknownElement if tagName isn\'t recognized.")) load asynchronously by default, so to turn on synchronous loading (i.e. scripts load in the order they were inserted) set `async="false"`.\n\nSee [Browser compatibility](#Browser_compatibility) for notes on browser support. See also [Async scripts for asm.js](https://developer.mozilla.org/en-US/docs/Games/Techniques/Async_scripts).'
          }
        },
        {
          name: "defer",
          valueSet: "v",
          description: {
            kind: "markdown",
            value: 'This Boolean attribute is set to indicate to a browser that the script is meant to be executed after the document has been parsed, but before firing [`DOMContentLoaded`](https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded "/en-US/docs/Web/Events/DOMContentLoaded").\n\nScripts with the `defer` attribute will prevent the `DOMContentLoaded` event from firing until the script has loaded and finished evaluating.\n\nThis attribute must not be used if the `src` attribute is absent (i.e. for inline scripts), in this case it would have no effect.\n\nTo achieve a similar effect for dynamically inserted scripts use `async="false"` instead. Scripts with the `defer` attribute will execute in the order in which they appear in the document.'
          }
        },
        {
          name: "crossorigin",
          valueSet: "xo",
          description: {
            kind: "markdown",
            value: 'Normal `script` elements pass minimal information to the [`window.onerror`](https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror "The onerror property of the GlobalEventHandlers mixin is an EventHandler that processes error events.") for scripts which do not pass the standard [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS "CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.") checks. To allow error logging for sites which use a separate domain for static media, use this attribute. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for a more descriptive explanation of its valid arguments.'
          }
        },
        {
          name: "nonce",
          description: {
            kind: "markdown",
            value: "A cryptographic nonce (number used once) to list the allowed inline scripts in a [script-src Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src). The server must generate a unique nonce value each time it transmits a policy. It is critical to provide a nonce that cannot be guessed as bypassing a resource's policy is otherwise trivial."
          }
        },
        {
          name: "integrity",
          description: "This attribute contains inline metadata that a user agent can use to verify that a fetched resource has been delivered free of unexpected manipulation. See [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity)."
        },
        {
          name: "nomodule",
          description: "This Boolean attribute is set to indicate that the script should not be executed in browsers that support [ES2015 modules](https://hacks.mozilla.org/2015/08/es6-in-depth-modules/) — in effect, this can be used to serve fallback scripts to older browsers that do not support modular JavaScript code."
        },
        {
          name: "referrerpolicy",
          description: 'Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/API/Document/referrer) to send when fetching the script, or resources fetched by the script:\n\n*   `no-referrer`: The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer "The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.") header will not be sent.\n*   `no-referrer-when-downgrade` (default): The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer "The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.") header will not be sent to [origin](https://developer.mozilla.org/en-US/docs/Glossary/origin "origin: Web content\'s origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it. Two objects have the same origin only when the scheme, host, and port all match.")s without [TLS](https://developer.mozilla.org/en-US/docs/Glossary/TLS "TLS: Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), is a protocol used by applications to communicate securely across a network, preventing tampering with and eavesdropping on email, web browsing, messaging, and other protocols.") ([HTTPS](https://developer.mozilla.org/en-US/docs/Glossary/HTTPS "HTTPS: HTTPS (HTTP Secure) is an encrypted version of the HTTP protocol. It usually uses SSL or TLS to encrypt all communication between a client and a server. This secure connection allows clients to safely exchange sensitive data with a server, for example for banking activities or online shopping.")).\n*   `origin`: The sent referrer will be limited to the origin of the referring page: its [scheme](https://developer.mozilla.org/en-US/docs/Archive/Mozilla/URIScheme), [host](https://developer.mozilla.org/en-US/docs/Glossary/host "host: A host is a device connected to the Internet (or a local network). Some hosts called servers offer additional services like serving webpages or storing files and emails."), and [port](https://developer.mozilla.org/en-US/docs/Glossary/port "port: For a computer connected to a network with an IP address, a port is a communication endpoint. Ports are designated by numbers, and below 1024 each port is associated by default with a specific protocol.").\n*   `origin-when-cross-origin`: The referrer sent to other origins will be limited to the scheme, the host, and the port. Navigations on the same origin will still include the path.\n*   `same-origin`: A referrer will be sent for [same origin](https://developer.mozilla.org/en-US/docs/Glossary/Same-origin_policy "same origin: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin."), but cross-origin requests will contain no referrer information.\n*   `strict-origin`: Only send the origin of the document as the referrer when the protocol security level stays the same (e.g. HTTPS→HTTPS), but don\'t send it to a less secure destination (e.g. HTTPS→HTTP).\n*   `strict-origin-when-cross-origin`: Send a full URL when performing a same-origin request, but only send the origin when the protocol security level stays the same (e.g.HTTPS→HTTPS), and send no header to a less secure destination (e.g. HTTPS→HTTP).\n*   `unsafe-url`: The referrer will include the origin _and_ the path (but not the [fragment](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/hash), [password](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/password), or [username](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/username)). **This value is unsafe**, because it leaks origins and paths from TLS-protected resources to insecure origins.\n\n**Note**: An empty string value (`""`) is both the default value, and a fallback value if `referrerpolicy` is not supported. If `referrerpolicy` is not explicitly specified on the `<script>` element, it will adopt a higher-level referrer policy, i.e. one set on the whole document or domain. If a higher-level policy is not available, the empty string is treated as being equivalent to `no-referrer-when-downgrade`.'
        },
        {
          name: "text",
          description: "Like the `textContent` attribute, this attribute sets the text content of the element. Unlike the `textContent` attribute, however, this attribute is evaluated as executable code after the node is inserted into the DOM."
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/script"
        }
      ]
    },
    {
      name: "noscript",
      description: {
        kind: "markdown",
        value: "The noscript element represents nothing if scripting is enabled, and represents its children if scripting is disabled. It is used to present different markup to user agents that support scripting and those that don't support scripting, by affecting how the document is parsed."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/noscript"
        }
      ]
    },
    {
      name: "template",
      description: {
        kind: "markdown",
        value: "The template element is used to declare fragments of HTML that can be cloned and inserted in the document by script."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/template"
        }
      ]
    },
    {
      name: "canvas",
      description: {
        kind: "markdown",
        value: "The canvas element provides scripts with a resolution-dependent bitmap canvas, which can be used for rendering graphs, game graphics, art, or other visual images on the fly."
      },
      attributes: [
        {
          name: "width",
          description: {
            kind: "markdown",
            value: "The width of the coordinate space in CSS pixels. Defaults to 300."
          }
        },
        {
          name: "height",
          description: {
            kind: "markdown",
            value: "The height of the coordinate space in CSS pixels. Defaults to 150."
          }
        },
        {
          name: "moz-opaque",
          description: "Lets the canvas know whether or not translucency will be a factor. If the canvas knows there's no translucency, painting performance can be optimized. This is only supported by Mozilla-based browsers; use the standardized [`canvas.getContext('2d', { alpha: false })`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/getContext \"The HTMLCanvasElement.getContext() method returns a drawing context on the canvas, or null if the context identifier is not supported.\") instead."
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/canvas"
        }
      ]
    },
    {
      name: "slot",
      description: {
        kind: "markdown",
        value: "The slot element is a placeholder inside a web component that you can fill with your own markup, which lets you create separate DOM trees and present them together."
      },
      attributes: [
        {
          name: "name",
          description: {
            kind: "markdown",
            value: "The slot's name.\nA **named slot** is a `<slot>` element with a `name` attribute."
          }
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/slot"
        }
      ]
    },
    {
      name: "data",
      description: {
        kind: "markdown",
        value: "The data element links a given piece of content with a machine-readable translation."
      },
      attributes: [
        {
          name: "value",
          description: {
            kind: "markdown",
            value: "This attribute specifies the machine-readable translation of the content of the element."
          }
        }
      ],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/data"
        }
      ]
    },
    {
      name: "hgroup",
      description: {
        kind: "markdown",
        value: "The hgroup element represents a heading and related content. It groups a single h1–h6 element with one or more p."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/hgroup"
        }
      ]
    },
    {
      name: "menu",
      description: {
        kind: "markdown",
        value: "The menu element represents an unordered list of interactive items."
      },
      attributes: [],
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Element/menu"
        }
      ]
    }
  ],
  globalAttributes: [
    {
      name: "accesskey",
      description: {
        kind: "markdown",
        value: "Provides a hint for generating a keyboard shortcut for the current element. This attribute consists of a space-separated list of characters. The browser should use the first one that exists on the computer keyboard layout."
      },
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/accesskey"
        }
      ]
    },
    {
      name: "autocapitalize",
      description: {
        kind: "markdown",
        value: "Controls whether and how text input is automatically capitalized as it is entered/edited by the user. It can have the following values:\n\n*   `off` or `none`, no autocapitalization is applied (all letters default to lowercase)\n*   `on` or `sentences`, the first letter of each sentence defaults to a capital letter; all other letters default to lowercase\n*   `words`, the first letter of each word defaults to a capital letter; all other letters default to lowercase\n*   `characters`, all letters should default to uppercase"
      },
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/autocapitalize"
        }
      ]
    },
    {
      name: "class",
      description: {
        kind: "markdown",
        value: 'A space-separated list of the classes of the element. Classes allows CSS and JavaScript to select and access specific elements via the [class selectors](https://developer.mozilla.org/docs/Web/CSS/Class_selectors) or functions like the method [`Document.getElementsByClassName()`](https://developer.mozilla.org/docs/Web/API/Document/getElementsByClassName "returns an array-like object of all child elements which have all of the given class names.").'
      },
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/class"
        }
      ]
    },
    {
      name: "contenteditable",
      description: {
        kind: "markdown",
        value: "An enumerated attribute indicating if the element should be editable by the user. If so, the browser modifies its widget to allow editing. The attribute must take one of the following values:\n\n*   `true` or the _empty string_, which indicates that the element must be editable;\n*   `false`, which indicates that the element must not be editable."
      },
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/contenteditable"
        }
      ]
    },
    {
      name: "contextmenu",
      description: {
        kind: "markdown",
        value: 'The `[**id**](#attr-id)` of a [`<menu>`](https://developer.mozilla.org/docs/Web/HTML/Element/menu "The HTML <menu> element represents a group of commands that a user can perform or activate. This includes both list menus, which might appear across the top of a screen, as well as context menus, such as those that might appear underneath a button after it has been clicked.") to use as the contextual menu for this element.'
      }
    },
    {
      name: "dir",
      description: {
        kind: "markdown",
        value: "An enumerated attribute indicating the directionality of the element's text. It can have the following values:\n\n*   `ltr`, which means _left to right_ and is to be used for languages that are written from the left to the right (like English);\n*   `rtl`, which means _right to left_ and is to be used for languages that are written from the right to the left (like Arabic);\n*   `auto`, which lets the user agent decide. It uses a basic algorithm as it parses the characters inside the element until it finds a character with a strong directionality, then it applies that directionality to the whole element."
      },
      valueSet: "d",
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/dir"
        }
      ]
    },
    {
      name: "draggable",
      description: {
        kind: "markdown",
        value: "An enumerated attribute indicating whether the element can be dragged, using the [Drag and Drop API](https://developer.mozilla.org/docs/DragDrop/Drag_and_Drop). It can have the following values:\n\n*   `true`, which indicates that the element may be dragged\n*   `false`, which indicates that the element may not be dragged."
      },
      valueSet: "b",
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/draggable"
        }
      ]
    },
    {
      name: "dropzone",
      description: {
        kind: "markdown",
        value: "An enumerated attribute indicating what types of content can be dropped on an element, using the [Drag and Drop API](https://developer.mozilla.org/docs/DragDrop/Drag_and_Drop). It can have the following values:\n\n*   `copy`, which indicates that dropping will create a copy of the element that was dragged\n*   `move`, which indicates that the element that was dragged will be moved to this new location.\n*   `link`, will create a link to the dragged data."
      }
    },
    {
      name: "exportparts",
      description: {
        kind: "markdown",
        value: "Used to transitively export shadow parts from a nested shadow tree into a containing light tree."
      },
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/exportparts"
        }
      ]
    },
    {
      name: "hidden",
      description: {
        kind: "markdown",
        value: "A Boolean attribute indicates that the element is not yet, or is no longer, _relevant_. For example, it can be used to hide elements of the page that can't be used until the login process has been completed. The browser won't render such elements. This attribute must not be used to hide content that could legitimately be shown."
      },
      valueSet: "v",
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/hidden"
        }
      ]
    },
    {
      name: "id",
      description: {
        kind: "markdown",
        value: "Defines a unique identifier (ID) which must be unique in the whole document. Its purpose is to identify the element when linking (using a fragment identifier), scripting, or styling (with CSS)."
      },
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/id"
        }
      ]
    },
    {
      name: "inputmode",
      description: {
        kind: "markdown",
        value: 'Provides a hint to browsers as to the type of virtual keyboard configuration to use when editing this element or its contents. Used primarily on [`<input>`](https://developer.mozilla.org/docs/Web/HTML/Element/input "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") elements, but is usable on any element while in `[contenteditable](https://developer.mozilla.org/docs/Web/HTML/Global_attributes#attr-contenteditable)` mode.'
      },
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/inputmode"
        }
      ]
    },
    {
      name: "is",
      description: {
        kind: "markdown",
        value: "Allows you to specify that a standard HTML element should behave like a registered custom built-in element (see [Using custom elements](https://developer.mozilla.org/docs/Web/Web_Components/Using_custom_elements) for more details)."
      },
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/is"
        }
      ]
    },
    {
      name: "itemid",
      description: {
        kind: "markdown",
        value: "The unique, global identifier of an item."
      }
    },
    {
      name: "itemprop",
      description: {
        kind: "markdown",
        value: "Used to add properties to an item. Every HTML element may have an `itemprop` attribute specified, where an `itemprop` consists of a name and value pair."
      }
    },
    {
      name: "itemref",
      description: {
        kind: "markdown",
        value: "Properties that are not descendants of an element with the `itemscope` attribute can be associated with the item using an `itemref`. It provides a list of element ids (not `itemid`s) with additional properties elsewhere in the document."
      }
    },
    {
      name: "itemscope",
      description: {
        kind: "markdown",
        value: "`itemscope` (usually) works along with `[itemtype](https://developer.mozilla.org/docs/Web/HTML/Global_attributes#attr-itemtype)` to specify that the HTML contained in a block is about a particular item. `itemscope` creates the Item and defines the scope of the `itemtype` associated with it. `itemtype` is a valid URL of a vocabulary (such as [schema.org](https://schema.org/)) that describes the item and its properties context."
      },
      valueSet: "v"
    },
    {
      name: "itemtype",
      description: {
        kind: "markdown",
        value: "Specifies the URL of the vocabulary that will be used to define `itemprop`s (item properties) in the data structure. `[itemscope](https://developer.mozilla.org/docs/Web/HTML/Global_attributes#attr-itemscope)` is used to set the scope of where in the data structure the vocabulary set by `itemtype` will be active."
      }
    },
    {
      name: "lang",
      description: {
        kind: "markdown",
        value: "Helps define the language of an element: the language that non-editable elements are in, or the language that editable elements should be written in by the user. The attribute contains one “language tag” (made of hyphen-separated “language subtags”) in the format defined in [_Tags for Identifying Languages (BCP47)_](https://www.ietf.org/rfc/bcp/bcp47.txt). [**xml:lang**](#attr-xml:lang) has priority over it."
      },
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/lang"
        }
      ]
    },
    {
      name: "part",
      description: {
        kind: "markdown",
        value: 'A space-separated list of the part names of the element. Part names allows CSS to select and style specific elements in a shadow tree via the [`::part`](https://developer.mozilla.org/docs/Web/CSS/::part "The ::part CSS pseudo-element represents any element within a shadow tree that has a matching part attribute.") pseudo-element.'
      },
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/part"
        }
      ]
    },
    {
      name: "role",
      valueSet: "roles"
    },
    {
      name: "slot",
      description: {
        kind: "markdown",
        value: "Assigns a slot in a [shadow DOM](https://developer.mozilla.org/docs/Web/Web_Components/Shadow_DOM) shadow tree to an element: An element with a `slot` attribute is assigned to the slot created by the [`<slot>`](https://developer.mozilla.org/docs/Web/HTML/Element/slot \"The HTML <slot> element—part of the Web Components technology suite—is a placeholder inside a web component that you can fill with your own markup, which lets you create separate DOM trees and present them together.\") element whose `[name](https://developer.mozilla.org/docs/Web/HTML/Element/slot#attr-name)` attribute's value matches that `slot` attribute's value."
      },
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/slot"
        }
      ]
    },
    {
      name: "spellcheck",
      description: {
        kind: "markdown",
        value: "An enumerated attribute defines whether the element may be checked for spelling errors. It may have the following values:\n\n*   `true`, which indicates that the element should be, if possible, checked for spelling errors;\n*   `false`, which indicates that the element should not be checked for spelling errors."
      },
      valueSet: "b",
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/spellcheck"
        }
      ]
    },
    {
      name: "style",
      description: {
        kind: "markdown",
        value: 'Contains [CSS](https://developer.mozilla.org/docs/Web/CSS) styling declarations to be applied to the element. Note that it is recommended for styles to be defined in a separate file or files. This attribute and the [`<style>`](https://developer.mozilla.org/docs/Web/HTML/Element/style "The HTML <style> element contains style information for a document, or part of a document.") element have mainly the purpose of allowing for quick styling, for example for testing purposes.'
      },
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/style"
        }
      ]
    },
    {
      name: "tabindex",
      description: {
        kind: "markdown",
        value: "An integer attribute indicating if the element can take input focus (is _focusable_), if it should participate to sequential keyboard navigation, and if so, at what position. It can take several values:\n\n*   a _negative value_ means that the element should be focusable, but should not be reachable via sequential keyboard navigation;\n*   `0` means that the element should be focusable and reachable via sequential keyboard navigation, but its relative order is defined by the platform convention;\n*   a _positive value_ means that the element should be focusable and reachable via sequential keyboard navigation; the order in which the elements are focused is the increasing value of the [**tabindex**](#attr-tabindex). If several elements share the same tabindex, their relative order follows their relative positions in the document."
      },
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/tabindex"
        }
      ]
    },
    {
      name: "title",
      description: {
        kind: "markdown",
        value: "Contains a text representing advisory information related to the element it belongs to. Such information can typically, but not necessarily, be presented to the user as a tooltip."
      },
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/title"
        }
      ]
    },
    {
      name: "translate",
      description: {
        kind: "markdown",
        value: "An enumerated attribute that is used to specify whether an element's attribute values and the values of its [`Text`](https://developer.mozilla.org/docs/Web/API/Text \"The Text interface represents the textual content of Element or Attr. If an element has no markup within its content, it has a single child implementing Text that contains the element's text. However, if the element contains markup, it is parsed into information items and Text nodes that form its children.\") node children are to be translated when the page is localized, or whether to leave them unchanged. It can have the following values:\n\n*   empty string and `yes`, which indicates that the element will be translated.\n*   `no`, which indicates that the element will not be translated."
      },
      valueSet: "y",
      references: [
        {
          name: "MDN Reference",
          url: "https://developer.mozilla.org/docs/Web/HTML/Global_attributes/translate"
        }
      ]
    },
    {
      name: "onabort",
      description: {
        kind: "markdown",
        value: "The loading of a resource has been aborted."
      }
    },
    {
      name: "onblur",
      description: {
        kind: "markdown",
        value: "An element has lost focus (does not bubble)."
      }
    },
    {
      name: "oncanplay",
      description: {
        kind: "markdown",
        value: "The user agent can play the media, but estimates that not enough data has been loaded to play the media up to its end without having to stop for further buffering of content."
      }
    },
    {
      name: "oncanplaythrough",
      description: {
        kind: "markdown",
        value: "The user agent can play the media up to its end without having to stop for further buffering of content."
      }
    },
    {
      name: "onchange",
      description: {
        kind: "markdown",
        value: "The change event is fired for <input>, <select>, and <textarea> elements when a change to the element's value is committed by the user."
      }
    },
    {
      name: "onclick",
      description: {
        kind: "markdown",
        value: "A pointing device button has been pressed and released on an element."
      }
    },
    {
      name: "oncontextmenu",
      description: {
        kind: "markdown",
        value: "The right button of the mouse is clicked (before the context menu is displayed)."
      }
    },
    {
      name: "ondblclick",
      description: {
        kind: "markdown",
        value: "A pointing device button is clicked twice on an element."
      }
    },
    {
      name: "ondrag",
      description: {
        kind: "markdown",
        value: "An element or text selection is being dragged (every 350ms)."
      }
    },
    {
      name: "ondragend",
      description: {
        kind: "markdown",
        value: "A drag operation is being ended (by releasing a mouse button or hitting the escape key)."
      }
    },
    {
      name: "ondragenter",
      description: {
        kind: "markdown",
        value: "A dragged element or text selection enters a valid drop target."
      }
    },
    {
      name: "ondragleave",
      description: {
        kind: "markdown",
        value: "A dragged element or text selection leaves a valid drop target."
      }
    },
    {
      name: "ondragover",
      description: {
        kind: "markdown",
        value: "An element or text selection is being dragged over a valid drop target (every 350ms)."
      }
    },
    {
      name: "ondragstart",
      description: {
        kind: "markdown",
        value: "The user starts dragging an element or text selection."
      }
    },
    {
      name: "ondrop",
      description: {
        kind: "markdown",
        value: "An element is dropped on a valid drop target."
      }
    },
    {
      name: "ondurationchange",
      description: {
        kind: "markdown",
        value: "The duration attribute has been updated."
      }
    },
    {
      name: "onemptied",
      description: {
        kind: "markdown",
        value: "The media has become empty; for example, this event is sent if the media has already been loaded (or partially loaded), and the load() method is called to reload it."
      }
    },
    {
      name: "onended",
      description: {
        kind: "markdown",
        value: "Playback has stopped because the end of the media was reached."
      }
    },
    {
      name: "onerror",
      description: {
        kind: "markdown",
        value: "A resource failed to load."
      }
    },
    {
      name: "onfocus",
      description: {
        kind: "markdown",
        value: "An element has received focus (does not bubble)."
      }
    },
    {
      name: "onformchange"
    },
    {
      name: "onforminput"
    },
    {
      name: "oninput",
      description: {
        kind: "markdown",
        value: "The value of an element changes or the content of an element with the attribute contenteditable is modified."
      }
    },
    {
      name: "oninvalid",
      description: {
        kind: "markdown",
        value: "A submittable element has been checked and doesn't satisfy its constraints."
      }
    },
    {
      name: "onkeydown",
      description: {
        kind: "markdown",
        value: "A key is pressed down."
      }
    },
    {
      name: "onkeypress",
      description: {
        kind: "markdown",
        value: "A key is pressed down and that key normally produces a character value (use input instead)."
      }
    },
    {
      name: "onkeyup",
      description: {
        kind: "markdown",
        value: "A key is released."
      }
    },
    {
      name: "onload",
      description: {
        kind: "markdown",
        value: "A resource and its dependent resources have finished loading."
      }
    },
    {
      name: "onloadeddata",
      description: {
        kind: "markdown",
        value: "The first frame of the media has finished loading."
      }
    },
    {
      name: "onloadedmetadata",
      description: {
        kind: "markdown",
        value: "The metadata has been loaded."
      }
    },
    {
      name: "onloadstart",
      description: {
        kind: "markdown",
        value: "Progress has begun."
      }
    },
    {
      name: "onmousedown",
      description: {
        kind: "markdown",
        value: "A pointing device button (usually a mouse) is pressed on an element."
      }
    },
    {
      name: "onmousemove",
      description: {
        kind: "markdown",
        value: "A pointing device is moved over an element."
      }
    },
    {
      name: "onmouseout",
      description: {
        kind: "markdown",
        value: "A pointing device is moved off the element that has the listener attached or off one of its children."
      }
    },
    {
      name: "onmouseover",
      description: {
        kind: "markdown",
        value: "A pointing device is moved onto the element that has the listener attached or onto one of its children."
      }
    },
    {
      name: "onmouseup",
      description: {
        kind: "markdown",
        value: "A pointing device button is released over an element."
      }
    },
    {
      name: "onmousewheel"
    },
    {
      name: "onmouseenter",
      description: {
        kind: "markdown",
        value: "A pointing device is moved onto the element that has the listener attached."
      }
    },
    {
      name: "onmouseleave",
      description: {
        kind: "markdown",
        value: "A pointing device is moved off the element that has the listener attached."
      }
    },
    {
      name: "onpause",
      description: {
        kind: "markdown",
        value: "Playback has been paused."
      }
    },
    {
      name: "onplay",
      description: {
        kind: "markdown",
        value: "Playback has begun."
      }
    },
    {
      name: "onplaying",
      description: {
        kind: "markdown",
        value: "Playback is ready to start after having been paused or delayed due to lack of data."
      }
    },
    {
      name: "onprogress",
      description: {
        kind: "markdown",
        value: "In progress."
      }
    },
    {
      name: "onratechange",
      description: {
        kind: "markdown",
        value: "The playback rate has changed."
      }
    },
    {
      name: "onreset",
      description: {
        kind: "markdown",
        value: "A form is reset."
      }
    },
    {
      name: "onresize",
      description: {
        kind: "markdown",
        value: "The document view has been resized."
      }
    },
    {
      name: "onreadystatechange",
      description: {
        kind: "markdown",
        value: "The readyState attribute of a document has changed."
      }
    },
    {
      name: "onscroll",
      description: {
        kind: "markdown",
        value: "The document view or an element has been scrolled."
      }
    },
    {
      name: "onseeked",
      description: {
        kind: "markdown",
        value: "A seek operation completed."
      }
    },
    {
      name: "onseeking",
      description: {
        kind: "markdown",
        value: "A seek operation began."
      }
    },
    {
      name: "onselect",
      description: {
        kind: "markdown",
        value: "Some text is being selected."
      }
    },
    {
      name: "onshow",
      description: {
        kind: "markdown",
        value: "A contextmenu event was fired on/bubbled to an element that has a contextmenu attribute"
      }
    },
    {
      name: "onstalled",
      description: {
        kind: "markdown",
        value: "The user agent is trying to fetch media data, but data is unexpectedly not forthcoming."
      }
    },
    {
      name: "onsubmit",
      description: {
        kind: "markdown",
        value: "A form is submitted."
      }
    },
    {
      name: "onsuspend",
      description: {
        kind: "markdown",
        value: "Media data loading has been suspended."
      }
    },
    {
      name: "ontimeupdate",
      description: {
        kind: "markdown",
        value: "The time indicated by the currentTime attribute has been updated."
      }
    },
    {
      name: "onvolumechange",
      description: {
        kind: "markdown",
        value: "The volume has changed."
      }
    },
    {
      name: "onwaiting",
      description: {
        kind: "markdown",
        value: "Playback has stopped because of a temporary lack of data."
      }
    },
    {
      name: "onpointercancel",
      description: {
        kind: "markdown",
        value: "The pointer is unlikely to produce any more events."
      }
    },
    {
      name: "onpointerdown",
      description: {
        kind: "markdown",
        value: "The pointer enters the active buttons state."
      }
    },
    {
      name: "onpointerenter",
      description: {
        kind: "markdown",
        value: "Pointing device is moved inside the hit-testing boundary."
      }
    },
    {
      name: "onpointerleave",
      description: {
        kind: "markdown",
        value: "Pointing device is moved out of the hit-testing boundary."
      }
    },
    {
      name: "onpointerlockchange",
      description: {
        kind: "markdown",
        value: "The pointer was locked or released."
      }
    },
    {
      name: "onpointerlockerror",
      description: {
        kind: "markdown",
        value: "It was impossible to lock the pointer for technical reasons or because the permission was denied."
      }
    },
    {
      name: "onpointermove",
      description: {
        kind: "markdown",
        value: "The pointer changed coordinates."
      }
    },
    {
      name: "onpointerout",
      description: {
        kind: "markdown",
        value: "The pointing device moved out of hit-testing boundary or leaves detectable hover range."
      }
    },
    {
      name: "onpointerover",
      description: {
        kind: "markdown",
        value: "The pointing device is moved into the hit-testing boundary."
      }
    },
    {
      name: "onpointerup",
      description: {
        kind: "markdown",
        value: "The pointer leaves the active buttons state."
      }
    },
    {
      name: "aria-activedescendant",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-activedescendant"
        }
      ],
      description: {
        kind: "markdown",
        value: "Identifies the currently active element when DOM focus is on a [`composite`](https://www.w3.org/TR/wai-aria-1.1/#composite) widget, [`textbox`](https://www.w3.org/TR/wai-aria-1.1/#textbox), [`group`](https://www.w3.org/TR/wai-aria-1.1/#group), or [`application`](https://www.w3.org/TR/wai-aria-1.1/#application)."
      }
    },
    {
      name: "aria-atomic",
      valueSet: "b",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-atomic"
        }
      ],
      description: {
        kind: "markdown",
        value: "Indicates whether [assistive technologies](https://www.w3.org/TR/wai-aria-1.1/#dfn-assistive-technology) will present all, or only parts of, the changed region based on the change notifications defined by the [`aria-relevant`](https://www.w3.org/TR/wai-aria-1.1/#aria-relevant) attribute."
      }
    },
    {
      name: "aria-autocomplete",
      valueSet: "autocomplete",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-autocomplete"
        }
      ],
      description: {
        kind: "markdown",
        value: "Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be presented if they are made."
      }
    },
    {
      name: "aria-busy",
      valueSet: "b",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-busy"
        }
      ],
      description: {
        kind: "markdown",
        value: "Indicates an element is being modified and that assistive technologies _MAY_ want to wait until the modifications are complete before exposing them to the user."
      }
    },
    {
      name: "aria-checked",
      valueSet: "tristate",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-checked"
        }
      ],
      description: {
        kind: "markdown",
        value: 'Indicates the current "checked" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of checkboxes, radio buttons, and other [widgets](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-pressed`](https://www.w3.org/TR/wai-aria-1.1/#aria-pressed) and [`aria-selected`](https://www.w3.org/TR/wai-aria-1.1/#aria-selected).'
      }
    },
    {
      name: "aria-colcount",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-colcount"
        }
      ],
      description: {
        kind: "markdown",
        value: "Defines the total number of columns in a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-colindex)."
      }
    },
    {
      name: "aria-colindex",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-colindex"
        }
      ],
      description: {
        kind: "markdown",
        value: "Defines an [element's](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) column index or position with respect to the total number of columns within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colcount`](https://www.w3.org/TR/wai-aria-1.1/#aria-colcount) and [`aria-colspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-colspan)."
      }
    },
    {
      name: "aria-colspan",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-colspan"
        }
      ],
      description: {
        kind: "markdown",
        value: "Defines the number of columns spanned by a cell or gridcell within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-colindex) and [`aria-rowspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan)."
      }
    },
    {
      name: "aria-controls",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-controls"
        }
      ],
      description: {
        kind: "markdown",
        value: "Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) whose contents or presence are controlled by the current element. See related [`aria-owns`](https://www.w3.org/TR/wai-aria-1.1/#aria-owns)."
      }
    },
    {
      name: "aria-current",
      valueSet: "current",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-current"
        }
      ],
      description: {
        kind: "markdown",
        value: "Indicates the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that represents the current item within a container or set of related elements."
      }
    },
    {
      name: "aria-describedby",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-describedby"
        }
      ],
      description: {
        kind: "markdown",
        value: "Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) that describes the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-labelledby`](https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby)."
      }
    },
    {
      name: "aria-disabled",
      valueSet: "b",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-disabled"
        }
      ],
      description: {
        kind: "markdown",
        value: "Indicates that the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is [perceivable](https://www.w3.org/TR/wai-aria-1.1/#dfn-perceivable) but disabled, so it is not editable or otherwise [operable](https://www.w3.org/TR/wai-aria-1.1/#dfn-operable). See related [`aria-hidden`](https://www.w3.org/TR/wai-aria-1.1/#aria-hidden) and [`aria-readonly`](https://www.w3.org/TR/wai-aria-1.1/#aria-readonly)."
      }
    },
    {
      name: "aria-dropeffect",
      valueSet: "dropeffect",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-dropeffect"
        }
      ],
      description: {
        kind: "markdown",
        value: "\\[Deprecated in ARIA 1.1\\] Indicates what functions can be performed when a dragged object is released on the drop target."
      }
    },
    {
      name: "aria-errormessage",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-errormessage"
        }
      ],
      description: {
        kind: "markdown",
        value: "Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that provides an error message for the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-invalid`](https://www.w3.org/TR/wai-aria-1.1/#aria-invalid) and [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby)."
      }
    },
    {
      name: "aria-expanded",
      valueSet: "u",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-expanded"
        }
      ],
      description: {
        kind: "markdown",
        value: "Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed."
      }
    },
    {
      name: "aria-flowto",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-flowto"
        }
      ],
      description: {
        kind: "markdown",
        value: "Identifies the next [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) in an alternate reading order of content which, at the user's discretion, allows assistive technology to override the general default of reading in document source order."
      }
    },
    {
      name: "aria-grabbed",
      valueSet: "u",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-grabbed"
        }
      ],
      description: {
        kind: "markdown",
        value: '\\[Deprecated in ARIA 1.1\\] Indicates an element\'s "grabbed" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) in a drag-and-drop operation.'
      }
    },
    {
      name: "aria-haspopup",
      valueSet: "haspopup",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-haspopup"
        }
      ],
      description: {
        kind: "markdown",
        value: "Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element)."
      }
    },
    {
      name: "aria-hidden",
      valueSet: "b",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-hidden"
        }
      ],
      description: {
        kind: "markdown",
        value: "Indicates whether the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is exposed to an accessibility API. See related [`aria-disabled`](https://www.w3.org/TR/wai-aria-1.1/#aria-disabled)."
      }
    },
    {
      name: "aria-invalid",
      valueSet: "invalid",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-invalid"
        }
      ],
      description: {
        kind: "markdown",
        value: "Indicates the entered value does not conform to the format expected by the application. See related [`aria-errormessage`](https://www.w3.org/TR/wai-aria-1.1/#aria-errormessage)."
      }
    },
    {
      name: "aria-label",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-label"
        }
      ],
      description: {
        kind: "markdown",
        value: "Defines a string value that labels the current element. See related [`aria-labelledby`](https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby)."
      }
    },
    {
      name: "aria-labelledby",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby"
        }
      ],
      description: {
        kind: "markdown",
        value: "Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) that labels the current element. See related [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby)."
      }
    },
    {
      name: "aria-level",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-level"
        }
      ],
      description: {
        kind: "markdown",
        value: "Defines the hierarchical level of an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) within a structure."
      }
    },
    {
      name: "aria-live",
      valueSet: "live",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-live"
        }
      ],
      description: {
        kind: "markdown",
        value: "Indicates that an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) will be updated, and describes the types of updates the [user agents](https://www.w3.org/TR/wai-aria-1.1/#dfn-user-agent), [assistive technologies](https://www.w3.org/TR/wai-aria-1.1/#dfn-assistive-technology), and user can expect from the [live region](https://www.w3.org/TR/wai-aria-1.1/#dfn-live-region)."
      }
    },
    {
      name: "aria-modal",
      valueSet: "b",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-modal"
        }
      ],
      description: {
        kind: "markdown",
        value: "Indicates whether an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is modal when displayed."
      }
    },
    {
      name: "aria-multiline",
      valueSet: "b",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-multiline"
        }
      ],
      description: {
        kind: "markdown",
        value: "Indicates whether a text box accepts multiple lines of input or only a single line."
      }
    },
    {
      name: "aria-multiselectable",
      valueSet: "b",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-multiselectable"
        }
      ],
      description: {
        kind: "markdown",
        value: "Indicates that the user may select more than one item from the current selectable descendants."
      }
    },
    {
      name: "aria-orientation",
      valueSet: "orientation",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-orientation"
        }
      ],
      description: {
        kind: "markdown",
        value: "Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous."
      }
    },
    {
      name: "aria-owns",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-owns"
        }
      ],
      description: {
        kind: "markdown",
        value: "Identifies an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) in order to define a visual, functional, or contextual parent/child [relationship](https://www.w3.org/TR/wai-aria-1.1/#dfn-relationship) between DOM elements where the DOM hierarchy cannot be used to represent the relationship. See related [`aria-controls`](https://www.w3.org/TR/wai-aria-1.1/#aria-controls)."
      }
    },
    {
      name: "aria-placeholder",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-placeholder"
        }
      ],
      description: {
        kind: "markdown",
        value: "Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value. A hint could be a sample value or a brief description of the expected format."
      }
    },
    {
      name: "aria-posinset",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-posinset"
        }
      ],
      description: {
        kind: "markdown",
        value: "Defines an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element)'s number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. See related [`aria-setsize`](https://www.w3.org/TR/wai-aria-1.1/#aria-setsize)."
      }
    },
    {
      name: "aria-pressed",
      valueSet: "tristate",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-pressed"
        }
      ],
      description: {
        kind: "markdown",
        value: 'Indicates the current "pressed" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of toggle buttons. See related [`aria-checked`](https://www.w3.org/TR/wai-aria-1.1/#aria-checked) and [`aria-selected`](https://www.w3.org/TR/wai-aria-1.1/#aria-selected).'
      }
    },
    {
      name: "aria-readonly",
      valueSet: "b",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-readonly"
        }
      ],
      description: {
        kind: "markdown",
        value: "Indicates that the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is not editable, but is otherwise [operable](https://www.w3.org/TR/wai-aria-1.1/#dfn-operable). See related [`aria-disabled`](https://www.w3.org/TR/wai-aria-1.1/#aria-disabled)."
      }
    },
    {
      name: "aria-relevant",
      valueSet: "relevant",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-relevant"
        }
      ],
      description: {
        kind: "markdown",
        value: "Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified. See related [`aria-atomic`](https://www.w3.org/TR/wai-aria-1.1/#aria-atomic)."
      }
    },
    {
      name: "aria-required",
      valueSet: "b",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-required"
        }
      ],
      description: {
        kind: "markdown",
        value: "Indicates that user input is required on the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) before a form may be submitted."
      }
    },
    {
      name: "aria-roledescription",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-roledescription"
        }
      ],
      description: {
        kind: "markdown",
        value: "Defines a human-readable, author-localized description for the [role](https://www.w3.org/TR/wai-aria-1.1/#dfn-role) of an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element)."
      }
    },
    {
      name: "aria-rowcount",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-rowcount"
        }
      ],
      description: {
        kind: "markdown",
        value: "Defines the total number of rows in a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex)."
      }
    },
    {
      name: "aria-rowindex",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex"
        }
      ],
      description: {
        kind: "markdown",
        value: "Defines an [element's](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) row index or position with respect to the total number of rows within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowcount`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowcount) and [`aria-rowspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan)."
      }
    },
    {
      name: "aria-rowspan",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan"
        }
      ],
      description: {
        kind: "markdown",
        value: "Defines the number of rows spanned by a cell or gridcell within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex) and [`aria-colspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-colspan)."
      }
    },
    {
      name: "aria-selected",
      valueSet: "u",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-selected"
        }
      ],
      description: {
        kind: "markdown",
        value: 'Indicates the current "selected" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of various [widgets](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-checked`](https://www.w3.org/TR/wai-aria-1.1/#aria-checked) and [`aria-pressed`](https://www.w3.org/TR/wai-aria-1.1/#aria-pressed).'
      }
    },
    {
      name: "aria-setsize",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-setsize"
        }
      ],
      description: {
        kind: "markdown",
        value: "Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. See related [`aria-posinset`](https://www.w3.org/TR/wai-aria-1.1/#aria-posinset)."
      }
    },
    {
      name: "aria-sort",
      valueSet: "sort",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-sort"
        }
      ],
      description: {
        kind: "markdown",
        value: "Indicates if items in a table or grid are sorted in ascending or descending order."
      }
    },
    {
      name: "aria-valuemax",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-valuemax"
        }
      ],
      description: {
        kind: "markdown",
        value: "Defines the maximum allowed value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget)."
      }
    },
    {
      name: "aria-valuemin",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-valuemin"
        }
      ],
      description: {
        kind: "markdown",
        value: "Defines the minimum allowed value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget)."
      }
    },
    {
      name: "aria-valuenow",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-valuenow"
        }
      ],
      description: {
        kind: "markdown",
        value: "Defines the current value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-valuetext`](https://www.w3.org/TR/wai-aria-1.1/#aria-valuetext)."
      }
    },
    {
      name: "aria-valuetext",
      references: [
        {
          name: "WAI-ARIA Reference",
          url: "https://www.w3.org/TR/wai-aria-1.1/#aria-valuetext"
        }
      ],
      description: {
        kind: "markdown",
        value: "Defines the human readable text alternative of [`aria-valuenow`](https://www.w3.org/TR/wai-aria-1.1/#aria-valuenow) for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget)."
      }
    },
    {
      name: "aria-details",
      description: {
        kind: "markdown",
        value: "Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that provides a detailed, extended description for the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby)."
      }
    },
    {
      name: "aria-keyshortcuts",
      description: {
        kind: "markdown",
        value: "Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element."
      }
    }
  ],
  valueSets: [
    {
      name: "b",
      values: [
        {
          name: "true"
        },
        {
          name: "false"
        }
      ]
    },
    {
      name: "u",
      values: [
        {
          name: "true"
        },
        {
          name: "false"
        },
        {
          name: "undefined"
        }
      ]
    },
    {
      name: "o",
      values: [
        {
          name: "on"
        },
        {
          name: "off"
        }
      ]
    },
    {
      name: "y",
      values: [
        {
          name: "yes"
        },
        {
          name: "no"
        }
      ]
    },
    {
      name: "w",
      values: [
        {
          name: "soft"
        },
        {
          name: "hard"
        }
      ]
    },
    {
      name: "d",
      values: [
        {
          name: "ltr"
        },
        {
          name: "rtl"
        },
        {
          name: "auto"
        }
      ]
    },
    {
      name: "m",
      values: [
        {
          name: "get",
          description: {
            kind: "markdown",
            value: "Corresponds to the HTTP [GET method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3); form data are appended to the `action` attribute URI with a '?' as separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters."
          }
        },
        {
          name: "post",
          description: {
            kind: "markdown",
            value: "Corresponds to the HTTP [POST method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5); form data are included in the body of the form and sent to the server."
          }
        },
        {
          name: "dialog",
          description: {
            kind: "markdown",
            value: "Use when the form is inside a [`<dialog>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog) element to close the dialog when submitted."
          }
        }
      ]
    },
    {
      name: "fm",
      values: [
        {
          name: "get"
        },
        {
          name: "post"
        }
      ]
    },
    {
      name: "s",
      values: [
        {
          name: "row"
        },
        {
          name: "col"
        },
        {
          name: "rowgroup"
        },
        {
          name: "colgroup"
        }
      ]
    },
    {
      name: "t",
      values: [
        {
          name: "hidden"
        },
        {
          name: "text"
        },
        {
          name: "search"
        },
        {
          name: "tel"
        },
        {
          name: "url"
        },
        {
          name: "email"
        },
        {
          name: "password"
        },
        {
          name: "datetime"
        },
        {
          name: "date"
        },
        {
          name: "month"
        },
        {
          name: "week"
        },
        {
          name: "time"
        },
        {
          name: "datetime-local"
        },
        {
          name: "number"
        },
        {
          name: "range"
        },
        {
          name: "color"
        },
        {
          name: "checkbox"
        },
        {
          name: "radio"
        },
        {
          name: "file"
        },
        {
          name: "submit"
        },
        {
          name: "image"
        },
        {
          name: "reset"
        },
        {
          name: "button"
        }
      ]
    },
    {
      name: "im",
      values: [
        {
          name: "verbatim"
        },
        {
          name: "latin"
        },
        {
          name: "latin-name"
        },
        {
          name: "latin-prose"
        },
        {
          name: "full-width-latin"
        },
        {
          name: "kana"
        },
        {
          name: "kana-name"
        },
        {
          name: "katakana"
        },
        {
          name: "numeric"
        },
        {
          name: "tel"
        },
        {
          name: "email"
        },
        {
          name: "url"
        }
      ]
    },
    {
      name: "bt",
      values: [
        {
          name: "button"
        },
        {
          name: "submit"
        },
        {
          name: "reset"
        },
        {
          name: "menu"
        }
      ]
    },
    {
      name: "lt",
      values: [
        {
          name: "1"
        },
        {
          name: "a"
        },
        {
          name: "A"
        },
        {
          name: "i"
        },
        {
          name: "I"
        }
      ]
    },
    {
      name: "mt",
      values: [
        {
          name: "context"
        },
        {
          name: "toolbar"
        }
      ]
    },
    {
      name: "mit",
      values: [
        {
          name: "command"
        },
        {
          name: "checkbox"
        },
        {
          name: "radio"
        }
      ]
    },
    {
      name: "et",
      values: [
        {
          name: "application/x-www-form-urlencoded"
        },
        {
          name: "multipart/form-data"
        },
        {
          name: "text/plain"
        }
      ]
    },
    {
      name: "tk",
      values: [
        {
          name: "subtitles"
        },
        {
          name: "captions"
        },
        {
          name: "descriptions"
        },
        {
          name: "chapters"
        },
        {
          name: "metadata"
        }
      ]
    },
    {
      name: "pl",
      values: [
        {
          name: "none"
        },
        {
          name: "metadata"
        },
        {
          name: "auto"
        }
      ]
    },
    {
      name: "sh",
      values: [
        {
          name: "circle"
        },
        {
          name: "default"
        },
        {
          name: "poly"
        },
        {
          name: "rect"
        }
      ]
    },
    {
      name: "xo",
      values: [
        {
          name: "anonymous"
        },
        {
          name: "use-credentials"
        }
      ]
    },
    {
      name: "target",
      values: [
        {
          name: "_self"
        },
        {
          name: "_blank"
        },
        {
          name: "_parent"
        },
        {
          name: "_top"
        }
      ]
    },
    {
      name: "sb",
      values: [
        {
          name: "allow-forms"
        },
        {
          name: "allow-modals"
        },
        {
          name: "allow-pointer-lock"
        },
        {
          name: "allow-popups"
        },
        {
          name: "allow-popups-to-escape-sandbox"
        },
        {
          name: "allow-same-origin"
        },
        {
          name: "allow-scripts"
        },
        {
          name: "allow-top-navigation"
        }
      ]
    },
    {
      name: "tristate",
      values: [
        {
          name: "true"
        },
        {
          name: "false"
        },
        {
          name: "mixed"
        },
        {
          name: "undefined"
        }
      ]
    },
    {
      name: "inputautocomplete",
      values: [
        {
          name: "additional-name"
        },
        {
          name: "address-level1"
        },
        {
          name: "address-level2"
        },
        {
          name: "address-level3"
        },
        {
          name: "address-level4"
        },
        {
          name: "address-line1"
        },
        {
          name: "address-line2"
        },
        {
          name: "address-line3"
        },
        {
          name: "bday"
        },
        {
          name: "bday-year"
        },
        {
          name: "bday-day"
        },
        {
          name: "bday-month"
        },
        {
          name: "billing"
        },
        {
          name: "cc-additional-name"
        },
        {
          name: "cc-csc"
        },
        {
          name: "cc-exp"
        },
        {
          name: "cc-exp-month"
        },
        {
          name: "cc-exp-year"
        },
        {
          name: "cc-family-name"
        },
        {
          name: "cc-given-name"
        },
        {
          name: "cc-name"
        },
        {
          name: "cc-number"
        },
        {
          name: "cc-type"
        },
        {
          name: "country"
        },
        {
          name: "country-name"
        },
        {
          name: "current-password"
        },
        {
          name: "email"
        },
        {
          name: "family-name"
        },
        {
          name: "fax"
        },
        {
          name: "given-name"
        },
        {
          name: "home"
        },
        {
          name: "honorific-prefix"
        },
        {
          name: "honorific-suffix"
        },
        {
          name: "impp"
        },
        {
          name: "language"
        },
        {
          name: "mobile"
        },
        {
          name: "name"
        },
        {
          name: "new-password"
        },
        {
          name: "nickname"
        },
        {
          name: "off"
        },
        {
          name: "on"
        },
        {
          name: "organization"
        },
        {
          name: "organization-title"
        },
        {
          name: "pager"
        },
        {
          name: "photo"
        },
        {
          name: "postal-code"
        },
        {
          name: "sex"
        },
        {
          name: "shipping"
        },
        {
          name: "street-address"
        },
        {
          name: "tel-area-code"
        },
        {
          name: "tel"
        },
        {
          name: "tel-country-code"
        },
        {
          name: "tel-extension"
        },
        {
          name: "tel-local"
        },
        {
          name: "tel-local-prefix"
        },
        {
          name: "tel-local-suffix"
        },
        {
          name: "tel-national"
        },
        {
          name: "transaction-amount"
        },
        {
          name: "transaction-currency"
        },
        {
          name: "url"
        },
        {
          name: "username"
        },
        {
          name: "work"
        }
      ]
    },
    {
      name: "autocomplete",
      values: [
        {
          name: "inline"
        },
        {
          name: "list"
        },
        {
          name: "both"
        },
        {
          name: "none"
        }
      ]
    },
    {
      name: "current",
      values: [
        {
          name: "page"
        },
        {
          name: "step"
        },
        {
          name: "location"
        },
        {
          name: "date"
        },
        {
          name: "time"
        },
        {
          name: "true"
        },
        {
          name: "false"
        }
      ]
    },
    {
      name: "dropeffect",
      values: [
        {
          name: "copy"
        },
        {
          name: "move"
        },
        {
          name: "link"
        },
        {
          name: "execute"
        },
        {
          name: "popup"
        },
        {
          name: "none"
        }
      ]
    },
    {
      name: "invalid",
      values: [
        {
          name: "grammar"
        },
        {
          name: "false"
        },
        {
          name: "spelling"
        },
        {
          name: "true"
        }
      ]
    },
    {
      name: "live",
      values: [
        {
          name: "off"
        },
        {
          name: "polite"
        },
        {
          name: "assertive"
        }
      ]
    },
    {
      name: "orientation",
      values: [
        {
          name: "vertical"
        },
        {
          name: "horizontal"
        },
        {
          name: "undefined"
        }
      ]
    },
    {
      name: "relevant",
      values: [
        {
          name: "additions"
        },
        {
          name: "removals"
        },
        {
          name: "text"
        },
        {
          name: "all"
        },
        {
          name: "additions text"
        }
      ]
    },
    {
      name: "sort",
      values: [
        {
          name: "ascending"
        },
        {
          name: "descending"
        },
        {
          name: "none"
        },
        {
          name: "other"
        }
      ]
    },
    {
      name: "roles",
      values: [
        {
          name: "alert"
        },
        {
          name: "alertdialog"
        },
        {
          name: "button"
        },
        {
          name: "checkbox"
        },
        {
          name: "dialog"
        },
        {
          name: "gridcell"
        },
        {
          name: "link"
        },
        {
          name: "log"
        },
        {
          name: "marquee"
        },
        {
          name: "menuitem"
        },
        {
          name: "menuitemcheckbox"
        },
        {
          name: "menuitemradio"
        },
        {
          name: "option"
        },
        {
          name: "progressbar"
        },
        {
          name: "radio"
        },
        {
          name: "scrollbar"
        },
        {
          name: "searchbox"
        },
        {
          name: "slider"
        },
        {
          name: "spinbutton"
        },
        {
          name: "status"
        },
        {
          name: "switch"
        },
        {
          name: "tab"
        },
        {
          name: "tabpanel"
        },
        {
          name: "textbox"
        },
        {
          name: "timer"
        },
        {
          name: "tooltip"
        },
        {
          name: "treeitem"
        },
        {
          name: "combobox"
        },
        {
          name: "grid"
        },
        {
          name: "listbox"
        },
        {
          name: "menu"
        },
        {
          name: "menubar"
        },
        {
          name: "radiogroup"
        },
        {
          name: "tablist"
        },
        {
          name: "tree"
        },
        {
          name: "treegrid"
        },
        {
          name: "application"
        },
        {
          name: "article"
        },
        {
          name: "cell"
        },
        {
          name: "columnheader"
        },
        {
          name: "definition"
        },
        {
          name: "directory"
        },
        {
          name: "document"
        },
        {
          name: "feed"
        },
        {
          name: "figure"
        },
        {
          name: "group"
        },
        {
          name: "heading"
        },
        {
          name: "img"
        },
        {
          name: "list"
        },
        {
          name: "listitem"
        },
        {
          name: "math"
        },
        {
          name: "none"
        },
        {
          name: "note"
        },
        {
          name: "presentation"
        },
        {
          name: "region"
        },
        {
          name: "row"
        },
        {
          name: "rowgroup"
        },
        {
          name: "rowheader"
        },
        {
          name: "separator"
        },
        {
          name: "table"
        },
        {
          name: "term"
        },
        {
          name: "text"
        },
        {
          name: "toolbar"
        },
        {
          name: "banner"
        },
        {
          name: "complementary"
        },
        {
          name: "contentinfo"
        },
        {
          name: "form"
        },
        {
          name: "main"
        },
        {
          name: "navigation"
        },
        {
          name: "region"
        },
        {
          name: "search"
        },
        {
          name: "doc-abstract"
        },
        {
          name: "doc-acknowledgments"
        },
        {
          name: "doc-afterword"
        },
        {
          name: "doc-appendix"
        },
        {
          name: "doc-backlink"
        },
        {
          name: "doc-biblioentry"
        },
        {
          name: "doc-bibliography"
        },
        {
          name: "doc-biblioref"
        },
        {
          name: "doc-chapter"
        },
        {
          name: "doc-colophon"
        },
        {
          name: "doc-conclusion"
        },
        {
          name: "doc-cover"
        },
        {
          name: "doc-credit"
        },
        {
          name: "doc-credits"
        },
        {
          name: "doc-dedication"
        },
        {
          name: "doc-endnote"
        },
        {
          name: "doc-endnotes"
        },
        {
          name: "doc-epigraph"
        },
        {
          name: "doc-epilogue"
        },
        {
          name: "doc-errata"
        },
        {
          name: "doc-example"
        },
        {
          name: "doc-footnote"
        },
        {
          name: "doc-foreword"
        },
        {
          name: "doc-glossary"
        },
        {
          name: "doc-glossref"
        },
        {
          name: "doc-index"
        },
        {
          name: "doc-introduction"
        },
        {
          name: "doc-noteref"
        },
        {
          name: "doc-notice"
        },
        {
          name: "doc-pagebreak"
        },
        {
          name: "doc-pagelist"
        },
        {
          name: "doc-part"
        },
        {
          name: "doc-preface"
        },
        {
          name: "doc-prologue"
        },
        {
          name: "doc-pullquote"
        },
        {
          name: "doc-qna"
        },
        {
          name: "doc-subtitle"
        },
        {
          name: "doc-tip"
        },
        {
          name: "doc-toc"
        }
      ]
    },
    {
      name: "metanames",
      values: [
        {
          name: "application-name"
        },
        {
          name: "author"
        },
        {
          name: "description"
        },
        {
          name: "format-detection"
        },
        {
          name: "generator"
        },
        {
          name: "keywords"
        },
        {
          name: "publisher"
        },
        {
          name: "referrer"
        },
        {
          name: "robots"
        },
        {
          name: "theme-color"
        },
        {
          name: "viewport"
        }
      ]
    },
    {
      name: "haspopup",
      values: [
        {
          name: "false",
          description: {
            kind: "markdown",
            value: "(default) Indicates the element does not have a popup."
          }
        },
        {
          name: "true",
          description: {
            kind: "markdown",
            value: "Indicates the popup is a menu."
          }
        },
        {
          name: "menu",
          description: {
            kind: "markdown",
            value: "Indicates the popup is a menu."
          }
        },
        {
          name: "listbox",
          description: {
            kind: "markdown",
            value: "Indicates the popup is a listbox."
          }
        },
        {
          name: "tree",
          description: {
            kind: "markdown",
            value: "Indicates the popup is a tree."
          }
        },
        {
          name: "grid",
          description: {
            kind: "markdown",
            value: "Indicates the popup is a grid."
          }
        },
        {
          name: "dialog",
          description: {
            kind: "markdown",
            value: "Indicates the popup is a dialog."
          }
        }
      ]
    },
    {
      name: "decoding",
      values: [
        {
          name: "sync"
        },
        {
          name: "async"
        },
        {
          name: "auto"
        }
      ]
    },
    {
      name: "loading",
      values: [
        {
          name: "eager",
          description: {
            kind: "markdown",
            value: "Loads the image immediately, regardless of whether or not the image is currently within the visible viewport (this is the default value)."
          }
        },
        {
          name: "lazy",
          description: {
            kind: "markdown",
            value: "Defers loading the image until it reaches a calculated distance from the viewport, as defined by the browser. The intent is to avoid the network and storage bandwidth needed to handle the image until it's reasonably certain that it will be needed. This generally improves the performance of the content in most typical use cases."
          }
        }
      ]
    },
    {
      name: "referrerpolicy",
      values: [
        {
          name: "no-referrer"
        },
        {
          name: "no-referrer-when-downgrade"
        },
        {
          name: "origin"
        },
        {
          name: "origin-when-cross-origin"
        },
        {
          name: "same-origin"
        },
        {
          name: "strict-origin"
        },
        {
          name: "strict-origin-when-cross-origin"
        },
        {
          name: "unsafe-url"
        }
      ]
    }
  ]
};
class Ddr {
  constructor(t) {
    this.dataProviders = [], this.setDataProviders(t.useDefaultDataProvider !== !1, t.customDataProviders || []);
  }
  setDataProviders(t, r) {
    this.dataProviders = [], t && this.dataProviders.push(new ASe("html5", NSe)), this.dataProviders.push(...r);
  }
  getDataProviders() {
    return this.dataProviders;
  }
  isVoidElement(t, r) {
    return !!t && qhr(r, t.toLowerCase(), (i, n) => i.localeCompare(n)) >= 0;
  }
  getVoidElements(t) {
    const r = Array.isArray(t) ? t : this.getDataProviders().filter((n) => n.isApplicable(t)), i = [];
    return r.forEach((n) => {
      n.provideTags().filter((s) => s.void).forEach((s) => i.push(s.name));
    }), i.sort();
  }
  isPathAttribute(t, r) {
    if (r === "src" || r === "href")
      return !0;
    const i = Ldr[t];
    return i ? typeof i == "string" ? i === r : i.indexOf(r) !== -1 : !1;
  }
}
const Ldr = {
  // HTML 4
  a: "href",
  area: "href",
  body: "background",
  blockquote: "cite",
  del: "cite",
  form: "action",
  frame: ["src", "longdesc"],
  img: ["src", "longdesc"],
  ins: "cite",
  link: "href",
  object: "data",
  q: "cite",
  script: "src",
  // HTML 5
  audio: "src",
  button: "formaction",
  command: "icon",
  embed: "src",
  html: "manifest",
  input: ["src", "formaction"],
  source: "src",
  track: "src",
  video: ["src", "poster"]
}, Mdr = {};
function Rdr(e = Mdr) {
  const t = new Ddr(e), r = new udr(e, t), i = new sdr(e, t), n = new Vhr(t), s = new Ndr(n), a = new Odr(t), o = new Pdr(t);
  return {
    setDataProviders: t.setDataProviders.bind(t),
    createScanner: Eo,
    parseHTMLDocument: n.parseDocument.bind(n),
    doComplete: i.doComplete.bind(i),
    doComplete2: i.doComplete2.bind(i),
    setCompletionParticipants: i.setCompletionParticipants.bind(i),
    doHover: r.doHover.bind(r),
    format: ddr,
    findDocumentHighlights: wdr,
    findDocumentLinks: o.findDocumentLinks.bind(o),
    findDocumentSymbols: Adr,
    findDocumentSymbols2: kSe,
    getFoldingRanges: a.getFoldingRanges.bind(a),
    getSelectionRanges: s.getSelectionRanges.bind(s),
    doQuoteComplete: i.doQuoteComplete.bind(i),
    doTagComplete: i.doTagComplete.bind(i),
    doRename: _dr,
    findMatchingTagPosition: kdr,
    findOnTypeRenameRanges: ine,
    findLinkedEditingRanges: ine
  };
}
function DSe(e, t) {
  return new ASe(e, t);
}
function Bdr() {
  return DSe("default", NSe);
}
const Fdr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  get ClientCapabilities() {
    return t4;
  },
  get Color() {
    return CA;
  },
  get ColorInformation() {
    return Nj;
  },
  get ColorPresentation() {
    return Dj;
  },
  get Command() {
    return Zd;
  },
  get CompletionItem() {
    return Hj;
  },
  get CompletionItemKind() {
    return ia;
  },
  get CompletionItemTag() {
    return qj;
  },
  get CompletionList() {
    return Kj;
  },
  get Diagnostic() {
    return yT;
  },
  get DocumentHighlight() {
    return Gj;
  },
  get DocumentHighlightKind() {
    return bT;
  },
  get DocumentLink() {
    return Xj;
  },
  get DocumentSymbol() {
    return OA;
  },
  get DocumentUri() {
    return kj;
  },
  get FileType() {
    return DA;
  },
  get FoldingRange() {
    return Lj;
  },
  get FoldingRangeKind() {
    return mT;
  },
  get FormattingOptions() {
    return Yj;
  },
  get Hover() {
    return zj;
  },
  get InsertReplaceEdit() {
    return Vj;
  },
  get InsertTextFormat() {
    return Al;
  },
  get InsertTextMode() {
    return Wj;
  },
  get Location() {
    return dT;
  },
  get MarkedString() {
    return gT;
  },
  get MarkupContent() {
    return lg;
  },
  get MarkupKind() {
    return cp;
  },
  get Position() {
    return Un;
  },
  get Range() {
    return Xr;
  },
  get ScannerState() {
    return mr;
  },
  get SelectionRange() {
    return vT;
  },
  get SymbolInformation() {
    return kA;
  },
  get SymbolKind() {
    return IA;
  },
  get TextDocument() {
    return Zj;
  },
  get TextEdit() {
    return Yn;
  },
  get TokenType() {
    return xt;
  },
  get WorkspaceEdit() {
    return _A;
  },
  getDefaultHTMLDataProvider: Bdr,
  getLanguageService: Rdr,
  newHTMLDataProvider: DSe
}, Symbol.toStringTag, { value: "Module" })), jdr = /* @__PURE__ */ EC(Fdr);
Object.defineProperty(Eq, "__esModule", { value: !0 });
Eq.register = qdr;
const $dr = jdr, Udr = wm, nne = Er;
function qdr(e) {
  const t = $dr.TextDocument.create("file:///foo.html", "html", 0, "< />"), r = e.parseHTMLDocument(t), i = t.positionAt(1);
  return (n, s, a, o, l) => hr(this, null, function* () {
    const u = n.pugTextDocument.offsetAt(s);
    if (n.emptyLineEnds.includes(u)) {
      const c = e.doComplete(t, i, r, l);
      for (const f of c.items)
        f.textEdit = void 0;
      return c;
    }
    for (const c of (0, nne.getGeneratedPositions)(n.docs, s)) {
      const f = o ? yield e.doComplete2(n.docs[1], c, n.htmlDocument, o, l) : e.doComplete(n.docs[1], c, n.htmlDocument, l);
      return (0, Udr.transformCompletionList)(f, (h) => (0, nne.getSourceRange)(n.docs, h), n.docs[1], a);
    }
  });
}
var Pq = {};
Object.defineProperty(Pq, "__esModule", { value: !0 });
Pq.register = Wdr;
const Vdr = wm, sne = Er;
function Wdr(e) {
  return (t, r) => {
    for (const i of (0, sne.getGeneratedPositions)(t.docs, r)) {
      const n = e.findDocumentHighlights(t.docs[1], i, t.htmlDocument);
      return (0, Vdr.transformLocations)(n, (s) => (0, sne.getSourceRange)(t.docs, s));
    }
  };
}
var wq = {};
Object.defineProperty(wq, "__esModule", { value: !0 });
wq.register = zdr;
const Hdr = wm, Kdr = Er;
function zdr(e) {
  return (t, r) => {
    const i = e.findDocumentLinks(t.docs[1], r);
    return (0, Hdr.transformLocations)(i, (n) => (0, Kdr.getSourceRange)(t.docs, n));
  };
}
var Aq = {};
Object.defineProperty(Aq, "__esModule", { value: !0 });
Aq.register = Ydr;
const Gdr = wm, ane = Er;
function Ydr(e) {
  return (t, r, i) => {
    for (const n of (0, ane.getGeneratedPositions)(t.docs, r)) {
      const s = e.doHover(t.docs[1], n, t.htmlDocument, i);
      return s ? (0, Gdr.transformHover)(s, (a) => (0, ane.getSourceRange)(t.docs, a)) : void 0;
    }
  };
}
var Cq = {};
Object.defineProperty(Cq, "__esModule", { value: !0 });
Cq.register = Xdr;
function Xdr(e) {
  return (t, r = 0) => {
    var a;
    const i = (a = t.docs[2].mappings.filter((o) => o.sourceOffsets[0] >= r).sort((o, l) => o.generatedOffsets[0] - l.generatedOffsets[0])[0]) == null ? void 0 : a.generatedOffsets[0];
    if (i === void 0)
      return;
    const n = e.createScanner(t.docs[1].getText(), i);
    return {
      scan: () => n.scan(),
      getTokenOffset: () => {
        for (const [o] of t.docs[2].toSourceLocation(n.getTokenOffset()))
          return o;
        return -1;
      },
      getTokenEnd: () => {
        for (const [o] of t.docs[2].toSourceLocation(n.getTokenEnd()))
          return o;
        return -1;
      },
      getTokenText: n.getTokenText,
      getTokenLength: n.getTokenLength,
      getTokenError: n.getTokenError,
      getScannerState: n.getScannerState
    };
  };
}
var _q = {};
Object.defineProperty(_q, "__esModule", { value: !0 });
_q.register = Qdr;
const Jdr = wm, one = Er;
function Qdr(e) {
  return (t, r) => {
    const i = r.map((s) => {
      for (const a of (0, one.getGeneratedPositions)(t.docs, s))
        return a;
    }).filter((s) => !!s), n = e.getSelectionRanges(t.docs[1], i);
    return (0, Jdr.transformLocations)(n, (s) => (0, one.getSourceRange)(t.docs, s));
  };
}
var Iq = {};
Object.defineProperty(Iq, "__esModule", { value: !0 });
Iq.register = Zdr;
function Zdr() {
  return (e) => {
    const t = [], r = e.pugTextDocument.positionAt(e.pugTextDocument.getText().length);
    return e.ast && i(e.ast, n(r.line)), t;
    function i(a, o) {
      if (a.type === "Block")
        for (let l = 0; l < a.nodes.length; l++) {
          const u = a.nodes[l], c = l + 1 < a.nodes.length ? a.nodes[l + 1] : void 0;
          i(u, c ? n(c.line - 2) : o);
        }
      else if (a.type === "Tag" || a.type === "BlockComment") {
        const l = a.line - 1;
        l !== o && t.push({
          startLine: l,
          endLine: o,
          kind: a.type === "BlockComment" ? "comment" : void 0
        }), i(a.block, o);
      }
    }
    function n(a) {
      for (; a > 0 && s(a).trim() === ""; )
        a--;
      return a;
    }
    function s(a) {
      if (a === r.line)
        return e.pugTextDocument.getText({
          start: { line: a, character: 0 },
          end: r
        });
      const o = e.pugTextDocument.getText({
        start: { line: a, character: 0 },
        end: { line: a + 1, character: 0 }
      });
      return o.substring(0, o.length - 1);
    }
  };
}
var kq = {};
Object.defineProperty(kq, "__esModule", { value: !0 });
kq.register = tmr;
const emr = Er;
function tmr(e) {
  return (t, r, i) => {
    for (const n of (0, emr.getGeneratedPositions)(t.docs, r))
      return e.doQuoteComplete(t.docs[1], n, t.htmlDocument, i);
  };
}
(function(e) {
  var t = jt && jt.__createBinding || (Object.create ? function(m, g, y, v) {
    v === void 0 && (v = y);
    var T = Object.getOwnPropertyDescriptor(g, y);
    (!T || ("get" in T ? !g.__esModule : T.writable || T.configurable)) && (T = { enumerable: !0, get: function() {
      return g[y];
    } }), Object.defineProperty(m, v, T);
  } : function(m, g, y, v) {
    v === void 0 && (v = y), m[v] = g[y];
  }), r = jt && jt.__exportStar || function(m, g) {
    for (var y in m)
      y !== "default" && !Object.prototype.hasOwnProperty.call(g, y) && t(g, m, y);
  };
  Object.defineProperty(e, "__esModule", { value: !0 }), e.getLanguageService = h;
  const i = CU, n = Eq, s = Pq, a = wq, o = Aq, l = Cq, u = _q, c = Iq, f = kq;
  r(pL, e);
  function h(m) {
    return {
      parsePugDocument: (0, i.register)(m),
      doComplete: (0, n.register)(m),
      findDocumentHighlights: (0, s.register)(m),
      findDocumentLinks: (0, a.register)(m),
      doHover: (0, o.register)(m),
      createScanner: (0, l.register)(m),
      getSelectionRanges: (0, u.register)(m),
      doQuoteComplete: (0, f.register)(m),
      getFoldingRanges: (0, c.register)()
    };
  }
})(CTe);
function rmr() {
  try {
    return HSe("git rev-parse --show-toplevel", {
      encoding: "utf-8",
      stdio: ["pipe", "pipe", "pipe"]
    }).trim();
  } catch (e) {
    return "";
  }
}
const Ah = rmr();
function imr(e) {
  return Ah ? e.replace("".concat(Ah, "/"), "") : e;
}
function nmr(e, t) {
  return t === "relative" ? imr(e) : e;
}
function smr(e, t) {
  var i;
  const r = qSe.createServer((n, s) => {
    var c, f;
    const a = new URLSearchParams(n.url.slice(1));
    let o = decodeURIComponent(a.get("file"));
    if (Ah && !xs.isAbsolute(o) && (o = "".concat(Ah, "/").concat(o)), (t == null ? void 0 : t.pathType) === "relative" && Ah && !o.startsWith(Ah)) {
      s.writeHead(403, {
        "Access-Control-Allow-Origin": "*",
        "Access-Control-Allow-Methods": "*",
        "Access-Control-Allow-Headers": "*",
        "Access-Control-Allow-Private-Network": "true"
      }), s.end("not allowed to open this file");
      return;
    }
    const l = Number(a.get("line")), u = Number(a.get("column"));
    s.writeHead(200, {
      "Access-Control-Allow-Origin": "*",
      "Access-Control-Allow-Methods": "*",
      "Access-Control-Allow-Headers": "*",
      "Access-Control-Allow-Private-Network": "true"
    }), s.end("ok"), (f = (c = t == null ? void 0 : t.hooks) == null ? void 0 : c.afterInspectRequest) == null || f.call(c, t, { file: o, line: l, column: u }), WSe({
      file: o,
      line: l,
      column: u,
      editor: t == null ? void 0 : t.editor,
      method: t == null ? void 0 : t.openIn,
      format: t == null ? void 0 : t.pathFormat
    });
  });
  return VSe.getPort(
    { port: (i = t == null ? void 0 : t.port) != null ? i : Ope },
    (n, s) => {
      if (n)
        throw n;
      r.listen(s, () => {
        e(s);
      });
    }
  ), r;
}
const BB = /* @__PURE__ */ new Map();
function amr(e, t) {
  return hr(this, null, function* () {
    t.port || (t.findPort || (t.findPort = new Promise((r) => {
      var s;
      const i = process.cwd();
      BB.has(i) && ((s = BB.get(i)) == null || s.close());
      const n = smr((a) => {
        var o;
        r(a), e.printServer && console.log(
          yo.blue("[code-inspector-plugin] ") + yo.white("Server is running on: ") + yo.green(
            "http://".concat(Npe(e.ip || "localhost"), ":").concat((o = e.port) != null ? o : Ope)
          )
        );
      }, e);
      BB.set(i, n);
    })), t.port = yield t.findPort);
  });
}
const lne = 1, omr = 6, JP = /* @__PURE__ */ new Map();
function lmr(e, t, r) {
  return e.line > t.line && e.line < r.line || e.line === t.line && (e.column >= t.column || e.column === void 0) || e.line === r.line && (e.column <= r.column || e.column === void 0);
}
function uy(e) {
  var a, o, l;
  const { node: t, templateNode: r, escapeTags: i, s: n, filePath: s } = e;
  if (t)
    if (t.type === "Block")
      t.nodes.forEach((u) => {
        uy(zr($t({}, e), { node: u }));
      });
    else if (t.type === "Tag") {
      const u = r.loc.start.line - 1, c = {
        line: t.line + u,
        column: t.column
      };
      if (lmr(
        c,
        r.loc.start,
        r.loc.end
      ) && !t.attrs.some((h) => h.name === fa) && !PC(i, t.name)) {
        const { offsets: h, content: m } = JP.get(s), g = h[c.line - 1] + c.column - 1;
        let y = g;
        if (t.name === m.slice(g, g + t.name.length))
          y += t.name.length;
        else
          for (let v = 0; v < t.attrs.length; v++) {
            const T = t.attrs[v];
            ["class", "id"].includes(T.name) && !T.mustEscape && (y = // @ts-ignore
            h[T.line + u - 1] + T.column + (T.val.length - 2));
          }
        if (m[y] === "(") {
          const v = "".concat(fa, '="').concat(s, ":").concat(c.line, ":").concat(c.column, ":").concat(t.name, '", ');
          n.prependLeft(y + 1, v);
        } else {
          const v = "(".concat(fa, '="').concat(s, ":").concat(c.line, ":").concat(c.column, ":").concat(t.name, '")');
          n.prependLeft(y, v);
        }
      }
      uy(zr($t({}, e), { node: t.block }));
    } else
      ["Case", "Code", "When", "Each", "While"].includes(t.type) ? t.block && (((a = t.block) == null ? void 0 : a.nodes) || []).forEach((u) => {
        uy(zr($t({}, e), { node: u }));
      }) : t.type === "Conditional" && ((((o = t.consequent) == null ? void 0 : o.nodes) || []).forEach((u) => {
        uy(zr($t({}, e), { node: u }));
      }), (((l = t.alternate) == null ? void 0 : l.nodes) || []).forEach((u) => {
        uy(zr($t({}, e), { node: u }));
      }));
}
function umr(e, t, r) {
  let i = "", n = "";
  if (JP.has(t))
    try {
      const u = Ah && !xs.isAbsolute(t) ? "".concat(Ah, "/").concat(t) : t, c = $l.readFileSync(u, "utf-8");
      if (!e.includes(fa)) {
        const f = c.indexOf(e);
        i = c.slice(0, f), n = c.slice(f + e.length), e = c;
      }
    } catch (u) {
    }
  const s = new IT(e), a = $Se(e, {
    comments: !0
  }), o = a.children.find(
    (u) => u.type === lne && u.tag === "template"
  );
  if (o && (o.props || []).some(
    (u) => {
      var c;
      return u.type === omr && u.name === "lang" && ((c = u.value) == null ? void 0 : c.content) === "pug";
    }
  )) {
    const u = e.split("\n"), c = new Array(u.length);
    c[0] = 0;
    for (let f = 1; f < c.length; f++)
      c[f] = c[f - 1] + u[f - 1].length + 1;
    JP.set(t, { content: e, offsets: c });
  }
  if (JP.has(t) && o) {
    const u = " ".repeat(o.loc.start.offset - 0) + e.slice(
      o.loc.start.offset,
      o.loc.end.offset
    ) + " ".repeat(e.length - o.loc.end.offset), c = CTe.baseParse(u);
    uy({
      node: c.ast,
      filePath: t,
      s,
      escapeTags: r,
      templateNode: o
    });
  } else
    USe(a, {
      nodeTransforms: [
        (u) => {
          if (!u.loc.source.includes(fa) && u.type === lne && !PC(r, u.tag)) {
            const c = u.loc.start.offset + u.tag.length + 1, { line: f, column: h } = u.loc.start, m = " ".concat(fa, '="').concat(t, ":").concat(f, ":").concat(h, ":").concat(u.tag, '"').concat(u.props.length ? " " : "");
            s.prependLeft(c, m);
          }
        }
      ]
    });
  let l = s.toString();
  return s.toString().slice(i.length, l.length - n.length);
}
const cmr = [
  "style",
  "script",
  "template",
  "transition",
  "keepalive",
  "keep-alive",
  "component",
  "slot",
  "teleport",
  "transition-group",
  "transitiongroup",
  "suspense",
  "fragment"
];
function jbr(e) {
  let { content: t, filePath: r, fileType: i, escapeTags: n = [], pathType: s = "relative" } = e;
  const a = [
    ...cmr,
    ...n
  ];
  r = nmr(r, s);
  try {
    return i === "vue" ? umr(t, r, a) : i === "jsx" ? M4t(t, r, a) : i === "svelte" ? Mlr(t, r, a) : t;
  } catch (o) {
    return t;
  }
}
let i4 = "";
typeof __dirname != "undefined" ? i4 = __dirname : i4 = BSe(MOe(import.meta.url));
const pmr = xs.resolve(i4, "./client.umd.js"), fmr = $l.readFileSync(pmr, "utf-8");
function hmr(e, t) {
  let r = "'use client';";
  return r += mmr(), e != null && e.hideDomPathAttr && (r += ymr()), r += dmr(e, t), "/* eslint-disable */\n" + r.replace(/\n/g, "");
}
function dmr(e, t) {
  var c;
  const {
    hotKeys: r = ["shiftKey", "altKey"],
    showSwitch: i = !1,
    hideConsole: n = !1,
    autoToggle: s = !0,
    behavior: a = {},
    ip: o = !1
  } = e || {}, { locate: l = !0, copy: u = !1 } = a;
  return "\n;(function (){\n  if (typeof window !== 'undefined') {\n    if (!document.documentElement.querySelector('code-inspector-component')) {\n      ".concat(fmr, ";\n      \n      var inspector = document.createElement('code-inspector-component');\n      inspector.port = ").concat(t, ";\n      inspector.hotKeys = '").concat((c = r || []) == null ? void 0 : c.join(","), "';\n      inspector.showSwitch = !!").concat(i, ";\n      inspector.autoToggle = !!").concat(s, ";\n      inspector.hideConsole = !!").concat(n, ";\n      inspector.locate = !!").concat(l, ";\n      inspector.copy = ").concat(typeof u == "string" ? "'".concat(u, "'") : !!u, ";\n      inspector.ip = '").concat(Npe(o), "';\n      document.documentElement.append(inspector);\n    }\n  }\n})();\n");
}
function mmr() {
  return "\n  ;(function(){\n    if (typeof globalThis === 'undefined' || globalThis.__code_inspector_console) {\n      return;\n    };\n    var path = \"".concat(fa, "\";\n    globalThis.__code_inspector_console = true;\n    var wrappers = [\n      {\n        type: 'error',\n        origin: console.error,\n      },\n      {\n        type: 'warn',\n        origin: console.warn,\n      },\n    ];\n    wrappers.forEach(wrapper => {\n      console[wrapper.type] = function () {\n        var args = Array.prototype.slice.call(arguments) || [];\n        var hasVueWarning = typeof args[0] === 'string' && args[0].indexOf(path) !== -1; /* compatible for vue warning */\n        if (hasVueWarning) {\n          return;\n        }\n        var hasNextWarning = typeof args[1] === 'string' && args[1].indexOf(path) !== -1; /* compatible for nextjs hydrate */\n        if (hasNextWarning) {\n          return;\n        }\n        var hasNextWarningV15 = typeof args[2] === 'string' && args[2].indexOf(path) !== -1; /* compatible for nextjs(v15.0.0+) hydrate */\n        if (hasNextWarningV15) {\n          return;\n        }\n        wrapper.origin.apply(null, args);\n      };\n    });\n  })();\n  ");
}
function ymr() {
  return "\n  ;(function(){\n    if (typeof window === 'undefined' || window.__code_inspector_observed) {\n      return;\n    };\n    function observe() {\n      document.querySelectorAll(\"[".concat(fa, ']").forEach((node) => {\n        node["').concat(fa, '"] = node.getAttribute("').concat(fa, '");\n        node.removeAttribute("').concat(fa, '");\n      });\n      setTimeout(observe, 1000);\n    }\n    observe();\n    window.__code_inspector_observed = true;\n  })();\n  ');
}
function gmr(e, t) {
  if (!e.entry && X$(t) && !xmr(t)) {
    if (t.includes("/.svelte-kit/") || t.replace(xs.extname(t), "").endsWith("/app/layout"))
      return;
    e.entry = J$(t);
  }
}
function bmr(e, t) {
  return hr(this, null, function* () {
    var i;
    const r = yield t.inputs || [];
    return X$(e) && J$(e) === t.entry || e === LOe || ((i = t.injectTo) == null ? void 0 : i.includes(xF(e))) || (r == null ? void 0 : r.includes(xF(e)));
  });
}
function vmr(e, t) {
  if (t != null && t.injectTo) {
    const r = Array.isArray(t.injectTo) ? t.injectTo : [t.injectTo];
    r.forEach((i) => {
      FSe(i) ? X$(i) || console.log(
        yo.red("The ext of ") + yo.cyan("injectTo") + yo.red(" in ") + yo.cyan("code-inspector-plugin") + yo.red("must in .js/.ts/.mjs/.mts/.jsx/.tsx")
      ) : console.log(
        yo.cyan("injectTo") + yo.red(" in ") + yo.cyan("code-inspector-plugin") + yo.red("must be an absolute file path!")
      );
    }), e.injectTo = (r || []).map((i) => xF(i));
  }
}
function $br(s) {
  return hr(this, arguments, function* ({
    options: e,
    record: t,
    file: r,
    code: i,
    inject: n = !1
  }) {
    if (yield amr(e, t), vmr(t, e), gmr(t, r), (yield bmr(r, t)) || n) {
      const o = hmr(e, t.port);
      if (LSe() || e.importClient === "file") {
        Tmr(t.output);
        const l = Smr(
          t.output,
          o,
          t.port
        );
        r.match(l) || (i = "import '".concat(l, "';").concat(i));
      } else
        i = "".concat(o, ";").concat(i);
    }
    return i;
  });
}
function Tmr(e) {
  const t = xs.resolve(e, "./.eslintrc.js");
  if (!$l.existsSync(t)) {
    const r = "\nmodule.exports = {\n  root: true,\n  parserOptions: {\n    ecmaVersion: 6\n  },\n}\n";
    $l.writeFileSync(t, r, "utf-8");
  }
}
function Smr(e, t, r) {
  const i = "append-code-".concat(r, ".js"), n = "code-inspector-plugin/dist/".concat(i), s = xs.resolve(e, i);
  return $l.writeFileSync(s, t, "utf-8"), n;
}
function LSe() {
  return ROe().includes("next");
}
function xmr(e) {
  return LSe() && J$(e).endsWith("/instrumentation");
}
export {
  LOe as AstroToolbarFile,
  Lyr as ColumnName,
  Ope as DefaultPort,
  DOe as JsFileExtList,
  Dyr as LineName,
  Myr as NodeName,
  fa as PathName,
  Ah as ProjectRootPath,
  pmr as clientJsPath,
  smr as createServer,
  MOe as fileURLToPath,
  $br as getCodeWithWebComponent,
  ROe as getDenpendencies,
  mmr as getEliminateWarningCode,
  J$ as getFilePathWithoutExt,
  ymr as getHidePathAttrCode,
  Npe as getIP,
  hmr as getInjectedCode,
  Byr as getMappingFilePath,
  nmr as getRelativeOrAbsolutePath,
  imr as getRelativePath,
  dmr as getWebComponentCode,
  Ryr as isDev,
  PC as isEscapeTags,
  X$ as isJsTypeFile,
  BOe as matchCondition,
  xF as normalizePath,
  myr as parseSFC,
  amr as startServer,
  jbr as transformCode
};
